@@ -5419,79 +5419,101 @@ def test_ct_construction(self):
54195419 image = self ._ref_ct_dataset ,
54205420 )
54215421 assert len (group ) == 17
5422- assert isinstance (group [0 ], CodeContentItem )
5423- assert group [0 ].name == codes .DCM .Modality
5424- assert group [0 ].value == codes .cid29 .ComputedTomography
5425- assert isinstance (group [1 ], UIDRefContentItem )
5426- assert group [1 ].name == codes .DCM .FrameOfReferenceUID
5427- assert group [1 ].value == self ._ref_ct_dataset .FrameOfReferenceUID
5428- assert isinstance (group [2 ], NumContentItem )
5429- assert group [2 ].name == codes .DCM .PixelDataRows
5430- assert group [2 ].value == self ._ref_ct_dataset .Rows
5431- assert isinstance (group [3 ], NumContentItem )
5432- assert group [3 ].name == codes .DCM .PixelDataColumns
5433- assert group [3 ].value == self ._ref_ct_dataset .Columns
5434- assert isinstance (group [4 ], NumContentItem )
5435- assert group [4 ].name == codes .DCM .HorizontalPixelSpacing
5436- assert group [4 ].value == self ._ref_ct_dataset .PixelSpacing [0 ]
5437- value_item = group [4 ].MeasuredValueSequence [0 ]
5422+
5423+ # Check Modality
5424+ modality = group .find (name = codes .DCM .Modality )[0 ]
5425+ assert isinstance (modality , CodeContentItem )
5426+ assert modality .value == codes .cid29 .ComputedTomography
5427+
5428+ # Check Frame of Reference UID
5429+ frame_ref = group .find (name = codes .DCM .FrameOfReferenceUID )[0 ]
5430+ assert isinstance (frame_ref , UIDRefContentItem )
5431+ assert frame_ref .value == self ._ref_ct_dataset .FrameOfReferenceUID
5432+
5433+ # Check Pixel Data Rows
5434+ rows = group .find (name = codes .DCM .PixelDataRows )[0 ]
5435+ assert isinstance (rows , NumContentItem )
5436+ assert rows .value == self ._ref_ct_dataset .Rows
5437+
5438+ # Check Pixel Data Columns
5439+ columns = group .find (name = codes .DCM .PixelDataColumns )[0 ]
5440+ assert isinstance (columns , NumContentItem )
5441+ assert columns .value == self ._ref_ct_dataset .Columns
5442+
5443+ # Check Horizontal Pixel Spacing
5444+ h_spacing = group .find (name = codes .DCM .HorizontalPixelSpacing )[0 ]
5445+ assert isinstance (h_spacing , NumContentItem )
5446+ assert h_spacing .value == self ._ref_ct_dataset .PixelSpacing [0 ]
5447+ value_item = h_spacing .MeasuredValueSequence [0 ]
54385448 unit_code_item = value_item .MeasurementUnitsCodeSequence [0 ]
54395449 assert unit_code_item .CodeValue == 'mm'
54405450 assert unit_code_item .CodeMeaning == 'mm'
54415451 assert unit_code_item .CodingSchemeDesignator == 'UCUM'
5442- assert isinstance (group [5 ], NumContentItem )
5443- assert group [5 ].name == codes .DCM .VerticalPixelSpacing
5444- assert group [5 ].value == self ._ref_ct_dataset .PixelSpacing [1 ]
5445- assert isinstance (group [6 ], NumContentItem )
5446- assert group [6 ].name == codes .DCM .SpacingBetweenSlices
5447- assert group [6 ].value == self ._ref_ct_dataset .SpacingBetweenSlices
5448- value_item = group [6 ].MeasuredValueSequence [0 ]
5452+
5453+ # Check Vertical Pixel Spacing
5454+ v_spacing = group .find (name = codes .DCM .VerticalPixelSpacing )[0 ]
5455+ assert isinstance (v_spacing , NumContentItem )
5456+ assert v_spacing .value == self ._ref_ct_dataset .PixelSpacing [1 ]
5457+
5458+ # Check Spacing Between Slices
5459+ slice_spacing = group .find (name = codes .DCM .SpacingBetweenSlices )[0 ]
5460+ assert isinstance (slice_spacing , NumContentItem )
5461+ assert slice_spacing .value == self ._ref_ct_dataset .SpacingBetweenSlices
5462+ value_item = slice_spacing .MeasuredValueSequence [0 ]
54495463 unit_code_item = value_item .MeasurementUnitsCodeSequence [0 ]
54505464 assert unit_code_item .CodeValue == 'mm'
54515465 assert unit_code_item .CodeMeaning == 'mm'
54525466 assert unit_code_item .CodingSchemeDesignator == 'UCUM'
5453- assert isinstance (group [7 ], NumContentItem )
5454- assert group [7 ].name == codes .DCM .SliceThickness
5455- assert group [7 ].value == self ._ref_ct_dataset .SliceThickness
5456- assert isinstance (group [8 ], NumContentItem )
5457- assert group [8 ].name == codes .DCM .ImagePositionPatientX
5458- assert group [8 ].value == self ._ref_ct_dataset .ImagePositionPatient [0 ]
5459- assert isinstance (group [9 ], NumContentItem )
5460- assert group [9 ].name == codes .DCM .ImagePositionPatientY
5461- assert group [9 ].value == self ._ref_ct_dataset .ImagePositionPatient [1 ]
5462- assert isinstance (group [10 ], NumContentItem )
5463- assert group [10 ].name == codes .DCM .ImagePositionPatientZ
5464- assert group [10 ].value == self ._ref_ct_dataset .ImagePositionPatient [2 ]
5465- assert isinstance (group [11 ], NumContentItem )
5466- assert group [11 ].name == codes .DCM .ImageOrientationPatientRowX
5467- assert group [11 ].value == \
5468- self ._ref_ct_dataset .ImageOrientationPatient [0 ]
5469- value_item = group [11 ].MeasuredValueSequence [0 ]
5467+
5468+ # Check Slice Thickness
5469+ thickness = group .find (name = codes .DCM .SliceThickness )[0 ]
5470+ assert isinstance (thickness , NumContentItem )
5471+ assert thickness .value == self ._ref_ct_dataset .SliceThickness
5472+
5473+ # Check Image Position Patient
5474+ pos_x = group .find (name = codes .DCM .ImagePositionPatientX )[0 ]
5475+ assert isinstance (pos_x , NumContentItem )
5476+ assert pos_x .value == self ._ref_ct_dataset .ImagePositionPatient [0 ]
5477+
5478+ pos_y = group .find (name = codes .DCM .ImagePositionPatientY )[0 ]
5479+ assert isinstance (pos_y , NumContentItem )
5480+ assert pos_y .value == self ._ref_ct_dataset .ImagePositionPatient [1 ]
5481+
5482+ pos_z = group .find (name = codes .DCM .ImagePositionPatientZ )[0 ]
5483+ assert isinstance (pos_z , NumContentItem )
5484+ assert pos_z .value == self ._ref_ct_dataset .ImagePositionPatient [2 ]
5485+
5486+ # Check Image Orientation Patient Row
5487+ row_x = group .find (name = codes .DCM .ImageOrientationPatientRowX )[0 ]
5488+ assert isinstance (row_x , NumContentItem )
5489+ assert row_x .value == self ._ref_ct_dataset .ImageOrientationPatient [0 ]
5490+ value_item = row_x .MeasuredValueSequence [0 ]
54705491 unit_code_item = value_item .MeasurementUnitsCodeSequence [0 ]
54715492 assert unit_code_item .CodeValue == '{-1:1}'
54725493 assert unit_code_item .CodeMeaning == '{-1:1}'
54735494 assert unit_code_item .CodingSchemeDesignator == 'UCUM'
5474- assert isinstance (group [12 ], NumContentItem )
5475- assert group [12 ].name == codes .DCM .ImageOrientationPatientRowY
5476- assert group [12 ].value == \
5477- self ._ref_ct_dataset .ImageOrientationPatient [1 ]
5478- assert isinstance (group [13 ], NumContentItem )
5479- assert group [13 ].name == codes .DCM .ImageOrientationPatientRowZ
5480- assert group [13 ].value == \
5481- self ._ref_ct_dataset .ImageOrientationPatient [2 ]
5482- assert isinstance (group [14 ], NumContentItem )
5483- assert group [14 ].name == codes .DCM .ImageOrientationPatientColumnX
5484- assert group [14 ].value == \
5485- self ._ref_ct_dataset .ImageOrientationPatient [3 ]
5486- assert isinstance (group [15 ], NumContentItem )
5487- assert group [15 ].name == codes .DCM .ImageOrientationPatientColumnY
5488- assert group [15 ].value == \
5489- self ._ref_ct_dataset .ImageOrientationPatient [4 ]
5490- assert isinstance (group [16 ], NumContentItem )
5491- assert group [16 ].name == codes .DCM .ImageOrientationPatientColumnZ
5492- assert group [16 ].value == \
5493- self ._ref_ct_dataset .ImageOrientationPatient [5 ]
5494- value_item = group [16 ].MeasuredValueSequence [0 ]
5495+
5496+ row_y = group .find (name = codes .DCM .ImageOrientationPatientRowY )[0 ]
5497+ assert isinstance (row_y , NumContentItem )
5498+ assert row_y .value == self ._ref_ct_dataset .ImageOrientationPatient [1 ]
5499+
5500+ row_z = group .find (name = codes .DCM .ImageOrientationPatientRowZ )[0 ]
5501+ assert isinstance (row_z , NumContentItem )
5502+ assert row_z .value == self ._ref_ct_dataset .ImageOrientationPatient [2 ]
5503+
5504+ # Check Image Orientation Patient Column
5505+ col_x = group .find (name = codes .DCM .ImageOrientationPatientColumnX )[0 ]
5506+ assert isinstance (col_x , NumContentItem )
5507+ assert col_x .value == self ._ref_ct_dataset .ImageOrientationPatient [3 ]
5508+
5509+ col_y = group .find (name = codes .DCM .ImageOrientationPatientColumnY )[0 ]
5510+ assert isinstance (col_y , NumContentItem )
5511+ assert col_y .value == self ._ref_ct_dataset .ImageOrientationPatient [4 ]
5512+
5513+ col_z = group .find (name = codes .DCM .ImageOrientationPatientColumnZ )[0 ]
5514+ assert isinstance (col_z , NumContentItem )
5515+ assert col_z .value == self ._ref_ct_dataset .ImageOrientationPatient [5 ]
5516+ value_item = col_z .MeasuredValueSequence [0 ]
54955517 unit_code_item = value_item .MeasurementUnitsCodeSequence [0 ]
54965518 assert unit_code_item .CodeValue == '{-1:1}'
54975519 assert unit_code_item .CodeMeaning == '{-1:1}'
@@ -5591,6 +5613,11 @@ def test_dx_construction(self):
55915613 assert group [8 ].name == codes .DCM .ContentTime
55925614 assert group [8 ].value == content_time
55935615
5616+ def test_optional_spacing_between_slices (self ):
5617+ del self ._ref_ct_dataset .SpacingBetweenSlices
5618+ group = ImageLibraryEntryDescriptors (image = self ._ref_ct_dataset )
5619+ assert not group .find (name = codes .DCM .SpacingBetweenSlices )
5620+
55945621
55955622class TestImageLibrary (unittest .TestCase ):
55965623
0 commit comments