@@ -1104,6 +1104,7 @@ def test_nifti_dicom_extension():
1104
1104
dcmext = Nifti1DicomExtension (2 , dcmbytes_explicit )
1105
1105
assert_equal (dcmext .__class__ , Nifti1DicomExtension )
1106
1106
assert_equal (dcmext ._guess_implicit_VR (), False )
1107
+ assert_equal (dcmext ._is_little_endian , True )
1107
1108
assert_equal (dcmext .get_code (), 2 )
1108
1109
assert_equal (dcmext .get_content ().PatientID , 'NiPy' )
1109
1110
assert_equal (len (dcmext .get_content ().values ()), 1 )
@@ -1118,20 +1119,37 @@ def test_nifti_dicom_extension():
1118
1119
assert_equal (dcmext .get_code (), 2 )
1119
1120
assert_equal (dcmext .get_content ().PatientID , 'NiPy' )
1120
1121
assert_equal (len (dcmext .get_content ().values ()), 1 )
1121
- assert_equal (dcmext ._mangle (dcmext .get_content ()),dcmbytes_implicit )
1122
+ assert_equal (dcmext ._mangle (dcmext .get_content ()), dcmbytes_implicit )
1123
+ assert_equal (dcmext .get_sizeondisk () % 16 , 0 )
1124
+
1125
+ # create a single dicom tag (Patient ID, [0010,0020]) with Explicit VR / BE
1126
+ dcmbytes_explicit_be = struct .pack ('>2H2sH4s' , 0x10 , 0x20 ,
1127
+ 'LO' .encode ('utf-8' ), 4 ,
1128
+ 'NiPy' .encode ('utf-8' ))
1129
+ hdr_be = Nifti1Header (endianness = '>' ) # Big Endian Nifti1Header
1130
+ dcmext = Nifti1DicomExtension (2 , dcmbytes_explicit_be , parent_hdr = hdr_be )
1131
+ assert_equal (dcmext .__class__ , Nifti1DicomExtension )
1132
+ assert_equal (dcmext ._guess_implicit_VR (), False )
1133
+ assert_equal (dcmext .get_code (), 2 )
1134
+ assert_equal (dcmext .get_content ().PatientID , 'NiPy' )
1135
+ assert_equal (dcmext .get_content ()[0x10 , 0x20 ].value , 'NiPy' )
1136
+ assert_equal (len (dcmext .get_content ().values ()), 1 )
1137
+ assert_equal (dcmext ._mangle (dcmext .get_content ()), dcmbytes_explicit_be )
1122
1138
assert_equal (dcmext .get_sizeondisk () % 16 , 0 )
1123
1139
1140
+ # Check that a dicom dataset is written w/ BE encoding when not created
1141
+ # using BE bytestring when given a BE nifti header
1142
+ dcmext = Nifti1DicomExtension (2 , ds , parent_hdr = hdr_be )
1143
+ assert_equal (dcmext ._mangle (dcmext .get_content ()), dcmbytes_explicit_be )
1144
+
1124
1145
# dicom extension access from nifti extensions
1125
1146
assert_equal (exts_container .count ('dicom' ), 0 )
1126
1147
exts_container .append (dcmext )
1127
1148
assert_equal (exts_container .count ('dicom' ), 1 )
1128
1149
assert_equal (exts_container .get_codes (), [6 , 6 , 2 ])
1129
- assert_equal (dcmext ._mangle (dcmext .get_content ()), dcmbytes_implicit )
1150
+ assert_equal (dcmext ._mangle (dcmext .get_content ()), dcmbytes_explicit_be )
1130
1151
assert_equal (dcmext .get_sizeondisk () % 16 , 0 )
1131
1152
1132
- bio = BytesIO ()
1133
- dcmext .write_to (bio , False )
1134
-
1135
1153
1136
1154
class TestNifti1General (object ):
1137
1155
""" Test class to test nifti1 in general
0 commit comments