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.
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 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 |
Study property name | DICOM Attribute Name | Usage |
---|---|---|
manufacturer | Manufacturer | str |
manufacturersModelName | ManufacturerModelName | str |
stationName | StationName | str |
deviceSerialNumber | DeviceSerialNumber | str |
softwareVersions | SoftwareVersions | str |
from imagedata import Patient
patient = Patient('data/dicom')
for uid in patient:
study = patient[uid]
print(study.studyDate, study.studyTime)
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 |
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 |
from imagedata import Cohort
cohort = Cohort('data/dicom')
for id in cohort:
patient = cohort[id]
print(patient.patientName, patient.patientID)
At present no Cohort attributes are implemented.
Cohort property name | DICOM Attribute Name | Usage |
---|---|---|
N/A | N/A | Not used |