DICOM Attributes
Series properties
A handful of DICOM attributes are available directly as Series properties. The table below lists the available Series properties.
These attributes can be set and interrogated directly from the Series object:
from imagedata.series import Series
a = Series('in_dir')
patientName = a.patientName
a.seriesDescription = 'DWI MASK'
a.imageType = ['DERIVED', 'SECONDARY', 'MPR']
Series property name |
DICOM Attribute Name |
Usage |
---|---|---|
SOP Common Module |
||
SOPClassUID |
SOPClassUID |
str |
Patient Module Attributes |
||
patientName |
PatientName |
str |
patientID |
PatientID |
str |
patientBirthDate |
PatientBirthDate |
str |
General Study Module Attributes |
||
studyInstanceUID |
StudyInstanceUID |
str |
studyID |
StudyID |
str |
accessionNumber |
AccessionNumber |
str |
General Series Module Attributes |
||
seriesInstanceUID |
SeriesInstanceUID |
str |
seriesNumber |
SeriesNumber |
int |
seriesDescription |
SeriesDescription |
str |
Frame Of Reference Module Attributes |
||
frameOfReferenceUID |
FrameOfReferenceUID |
str |
General Image Module Attributes |
||
imageType |
ImageType |
List of str |
timeline |
AcquisitionTime |
Read-only numpy array (can be set using tags) |
bvalues |
DiffusionBValue or propietary |
Read-only numpy array |
Image Plane Module |
||
spacing |
PixelSpacing and SliceThickness |
numpy array(dz,dy,dx) in mm |
orientation |
ImageOrientationPatient |
numpy array with 6 elements |
imagePositions |
ImagePositionPatient |
dict of ImagePositions [z,y,x] of upper left hand corner (in mm). dict.keys() are slice numbers (int) |
sliceLocations |
SliceLocation |
numpy array (in mm) |
Image Pixel Module |
||
color |
SamplesPerPixel |
bool |
photometricInterpretation |
PhotometricInterpretation |
str |
rows |
Rows |
Read-only (int) |
columns |
Columns |
Read-only (int) |
Composite Attributes |
||
slices |
Read-only (int) |
|
tags |
Input order tag |
Tags for each slice. a.tags[slice][tag] |
axes |
List of Axis objects |
|
transformationMatrix |
numpy array 4x4 in z,y,x order |
Full access to DICOM attributes
Any DICOM attribute can be set or fetched using the getDicomAttribute() and setDicomAttribute() methods.
The getDicomAttribute() method will by default fetch the DICOM attribute for slice 0 and tag 0. When an attribute varies in a series, a specific slice and/or tag can be specified.
By default the setDicomAttribute() method will set an attribute for all slices and tags of a series. Alternatively, a specific slice and/or tag can be targeted.
# Fetch the MR Repetition Time
TR = a.getDicomAttribute('RepetitionTime')
# Fetch the Acquisition Time from tag 9, and duplicate this for tag 10
acqTime = a.getDicomAttribute('AcquisitionTime', slice=5, tag=9)
a.setDicomAttribute('AcquisitionTime', acqTime, slice=5, tag=10)