Skip to content

Latest commit

 

History

History
executable file
·
166 lines (137 loc) · 8.47 KB

Collections.rst

File metadata and controls

executable file
·
166 lines (137 loc) · 8.47 KB

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