Collections

Introduction

In addition to the Series level, there are collection classes Study, Patient and Cohort for the case when multiple Series will be handled.

Each of the collection classes will take a source, and sort the images into appropriate instances. In each case, the input order of each Series will be auto-detected. There is no way to set input order explicitly.

Note: At present, this works for DICOM data only.

Reading a Study of Multiple Series

The Study class can be used to sort DICOM files according to SeriesInstanceUID. The input order of each Series is auto-detected.

from imagedata import Study

vibe, dce = None
study = Study('data/dicom')
for uid in study:
    series = study[uid]
    if series.seriesDescription == 'vibe':
        vibe = series
    ...
If not (vibe and dce):
    raise ValueError('Some series not found in study.')

Study Attributes

Study property name

DICOM Attribute Name

Usage

studyDate

StudyDate

datetime.datetime

studyTime

StudyTime

datetime.datetime

studyDescription

StudyDescription

str

studyID

StudyID

str

studyInstanceUID

StudyInstanceUID

str

referringPhysiciansName

ReferringPhysiciansName

str

generalEquipment

Instance of GeneralEquipment class

GeneralEquipment

GeneralEquipment Attributes

Study property name

DICOM Attribute Name

Usage

manufacturer

Manufacturer

str

manufacturersModelName

ManufacturerModelName

str

stationName

StationName

str

deviceSerialNumber

DeviceSerialNumber

str

softwareVersions

SoftwareVersions

str

Reading a Patient with Multiple Study Instances

from imagedata import Patient

patient = Patient('data/dicom')
for uid in patient:
    study = patient[uid]
    print(study.studyDate, study.studyTime)

Patient Attributes

Patient property name

DICOM Attribute Name

Usage

patientName

PatientName

str

patientID

PatientID

str

patientBirthDate

PatientBirthDate

str

patientSex

PatientSex

str

patientAge

PatientAge

str

patientSize

PatientSize

float

patientWeight

PatientWeight

float

qualityControlSubject

QualityControlSubject

str

clinicalTrialSubject

Instance of ClinicalTrialSubject class

ClinicalTrialSubject

patientIdentityRemoved

PatientIdentityRemoved

str

deidentificationMethod

DeidentificationMethod

str

ClinicalTrialSubject Attributes

Patient property name

DICOM Attribute Name

Usage

sponsorName

ClinicalTrialSponsorName

protocolID

ClinicalTrialProtocolID

protocolName

ClinicalTrialProtocolName

siteID

ClinicalTrialSiteID

siteName

ClinicalTrialSiteName

subjectID

ClinicalTrialSubjectID

subjectReadingID

ClinicalTrialSubjectReadingID

protocolEthicsCommitteeName

ClinicalTrialProtocolEthicsCommitteeName

protocolEthicsCommitteeApprovalNumber

ClinicalTrialProtocolEthicsCommitteeApprovalNumber

Reading a Cohort of Multiple Patient Instances

from imagedata import Cohort

cohort = Cohort('data/dicom')
for id in cohort:
    patient = cohort[id]
    print(patient.patientName, patient.patientID)

Cohort Attributes

At present no Cohort attributes are implemented.

Cohort property name

DICOM Attribute Name

Usage

N/A

N/A

Not used