comparison Tests/Tests.py @ 377:cc79fa4945da

test_pixel_data_offset
author Sebastien Jodogne <s.jodogne@gmail.com>
date Thu, 04 Feb 2021 15:31:11 +0100
parents 78bef07c4118
children a4b8450a1158
comparison
equal deleted inserted replaced
376:2ef8a094a056 377:cc79fa4945da
1041 # New in Orthanc 1.9.0 1041 # New in Orthanc 1.9.0
1042 self.assertTrue('RemoteAET' in m) 1042 self.assertTrue('RemoteAET' in m)
1043 self.assertEqual(DoGet(_REMOTE, '/series/%s/metadata/RemoteAET' % series), '') # None, received by REST API 1043 self.assertEqual(DoGet(_REMOTE, '/series/%s/metadata/RemoteAET' % series), '') # None, received by REST API
1044 1044
1045 m = DoGet(_REMOTE, '/instances/%s/metadata' % i) 1045 m = DoGet(_REMOTE, '/instances/%s/metadata' % i)
1046 self.assertEqual(8, len(m)) 1046 self.assertEqual(9, len(m))
1047 self.assertTrue('IndexInSeries' in m) 1047 self.assertTrue('IndexInSeries' in m)
1048 self.assertTrue('ReceptionDate' in m) 1048 self.assertTrue('ReceptionDate' in m)
1049 self.assertTrue('RemoteAET' in m) 1049 self.assertTrue('RemoteAET' in m)
1050 self.assertTrue('Origin' in m) 1050 self.assertTrue('Origin' in m)
1051 self.assertTrue('TransferSyntax' in m) 1051 self.assertTrue('TransferSyntax' in m)
1052 self.assertTrue('SopClassUid' in m) 1052 self.assertTrue('SopClassUid' in m)
1053 self.assertTrue('RemoteIP' in m) 1053 self.assertTrue('RemoteIP' in m)
1054 self.assertTrue('HttpUsername' in m) 1054 self.assertTrue('HttpUsername' in m)
1055 self.assertTrue('PixelDataOffset' in m) # New in Orthanc 1.9.1
1055 self.assertEqual(DoGet(_REMOTE, '/instances/%s/metadata/IndexInSeries' % i), 1) 1056 self.assertEqual(DoGet(_REMOTE, '/instances/%s/metadata/IndexInSeries' % i), 1)
1056 self.assertEqual(DoGet(_REMOTE, '/instances/%s/metadata/Origin' % i), 'RestApi') 1057 self.assertEqual(DoGet(_REMOTE, '/instances/%s/metadata/Origin' % i), 'RestApi')
1057 self.assertEqual(DoGet(_REMOTE, '/instances/%s/metadata/RemoteAET' % i), '') # None, received by REST API 1058 self.assertEqual(DoGet(_REMOTE, '/instances/%s/metadata/RemoteAET' % i), '') # None, received by REST API
1058 self.assertEqual(DoGet(_REMOTE, '/instances/%s/metadata/TransferSyntax' % i), '1.2.840.10008.1.2.4.91') # JPEG2k 1059 self.assertEqual(DoGet(_REMOTE, '/instances/%s/metadata/TransferSyntax' % i), '1.2.840.10008.1.2.4.91') # JPEG2k
1059 self.assertEqual(DoGet(_REMOTE, '/instances/%s/metadata/SopClassUid' % i), '1.2.840.10008.5.1.4.1.1.4') 1060 self.assertEqual(DoGet(_REMOTE, '/instances/%s/metadata/SopClassUid' % i), '1.2.840.10008.5.1.4.1.1.4')
1061 self.assertEqual(int(DoGet(_REMOTE, '/instances/%s/metadata/PixelDataOffset' % i)), 0x0c78)
1060 1062
1061 # Play with custom metadata 1063 # Play with custom metadata
1062 DoPut(_REMOTE, '/patients/%s/metadata/5555' % p, 'coucou') 1064 DoPut(_REMOTE, '/patients/%s/metadata/5555' % p, 'coucou')
1063 m = DoGet(_REMOTE, '/patients/%s/metadata' % p) 1065 m = DoGet(_REMOTE, '/patients/%s/metadata' % p)
1064 self.assertEqual(2, len(m)) 1066 self.assertEqual(2, len(m))
1169 self.assertEqual(1, len(DoGet(_REMOTE, '/patients'))) 1171 self.assertEqual(1, len(DoGet(_REMOTE, '/patients')))
1170 1172
1171 i = DoGet(_REMOTE, '/instances') 1173 i = DoGet(_REMOTE, '/instances')
1172 self.assertEqual(1, len(i)) 1174 self.assertEqual(1, len(i))
1173 m = DoGet(_REMOTE, '/instances/%s/metadata' % i[0]) 1175 m = DoGet(_REMOTE, '/instances/%s/metadata' % i[0])
1174 self.assertEqual(8, len(m)) 1176 self.assertEqual(9, len(m))
1175 self.assertTrue('IndexInSeries' in m) 1177 self.assertTrue('IndexInSeries' in m)
1176 self.assertTrue('ReceptionDate' in m) 1178 self.assertTrue('ReceptionDate' in m)
1177 self.assertTrue('RemoteAET' in m) 1179 self.assertTrue('RemoteAET' in m)
1178 self.assertTrue('Origin' in m) 1180 self.assertTrue('Origin' in m)
1179 self.assertTrue('TransferSyntax' in m) 1181 self.assertTrue('TransferSyntax' in m)
1180 self.assertTrue('SopClassUid' in m) 1182 self.assertTrue('SopClassUid' in m)
1181 self.assertTrue('RemoteIP' in m) 1183 self.assertTrue('RemoteIP' in m)
1182 self.assertTrue('CalledAET' in m) 1184 self.assertTrue('CalledAET' in m)
1185 self.assertTrue('PixelDataOffset' in m) # New in Orthanc 1.9.1
1183 self.assertEqual(DoGet(_REMOTE, '/instances/%s/metadata/IndexInSeries' % i[0]), 1) 1186 self.assertEqual(DoGet(_REMOTE, '/instances/%s/metadata/IndexInSeries' % i[0]), 1)
1184 self.assertEqual(DoGet(_REMOTE, '/instances/%s/metadata/Origin' % i[0]), 'DicomProtocol') 1187 self.assertEqual(DoGet(_REMOTE, '/instances/%s/metadata/Origin' % i[0]), 'DicomProtocol')
1185 self.assertEqual(DoGet(_REMOTE, '/instances/%s/metadata/RemoteAET' % i[0]), 'STORESCU') 1188 self.assertEqual(DoGet(_REMOTE, '/instances/%s/metadata/RemoteAET' % i[0]), 'STORESCU')
1186 self.assertEqual(DoGet(_REMOTE, '/instances/%s/metadata/TransferSyntax' % i[0]), '1.2.840.10008.1.2.1') 1189 self.assertEqual(DoGet(_REMOTE, '/instances/%s/metadata/TransferSyntax' % i[0]), '1.2.840.10008.1.2.1')
1187 self.assertEqual(DoGet(_REMOTE, '/instances/%s/metadata/SopClassUid' % i[0]), '1.2.840.10008.5.1.4.1.1.7') 1190 self.assertEqual(DoGet(_REMOTE, '/instances/%s/metadata/SopClassUid' % i[0]), '1.2.840.10008.5.1.4.1.1.7')
6311 'X-File-Name' : 'DummyCT.dcm', 6314 'X-File-Name' : 'DummyCT.dcm',
6312 'X-File-Size' : str(len(dcm)), 6315 'X-File-Size' : str(len(dcm)),
6313 }) 6316 })
6314 6317
6315 self.assertEqual(2, len(DoGet(_REMOTE, '/instances'))) 6318 self.assertEqual(2, len(DoGet(_REMOTE, '/instances')))
6319
6320
6321 def test_pixel_data_offset(self):
6322 # New in Orthanc 1.9.1
6323 def Check(path, offset):
6324 i = UploadInstance(_REMOTE, path) ['ID']
6325 metadata = DoGetRaw(_REMOTE, '/instances/%s/metadata/PixelDataOffset' % i) [1]
6326 self.assertEqual(offset, metadata)
6327
6328 Check('ColorTestMalaterre.dcm', str(0x03a0))
6329 Check('TransferSyntaxes/1.2.840.10008.1.2.1.dcm', str(0x037c))
6330 Check('TransferSyntaxes/1.2.840.10008.1.2.2.dcm', str(0x03e8)) # Big endian
6331 Check('TransferSyntaxes/1.2.840.10008.1.2.4.50.dcm', str(0x04ac))
6332 Check('TransferSyntaxes/1.2.840.10008.1.2.4.51.dcm', str(0x072c))
6333 Check('TransferSyntaxes/1.2.840.10008.1.2.4.57.dcm', str(0x0620))
6334 Check('TransferSyntaxes/1.2.840.10008.1.2.4.70.dcm', str(0x065a))
6335 Check('TransferSyntaxes/1.2.840.10008.1.2.4.80.dcm', str(0x0b46))
6336 Check('TransferSyntaxes/1.2.840.10008.1.2.4.81.dcm', str(0x073e))
6337 Check('TransferSyntaxes/1.2.840.10008.1.2.4.90.dcm', str(0x0b66))
6338 Check('TransferSyntaxes/1.2.840.10008.1.2.4.91.dcm', str(0x19b8))
6339 Check('TransferSyntaxes/1.2.840.10008.1.2.5.dcm', str(0x0b0a))
6340 Check('TransferSyntaxes/1.2.840.10008.1.2.dcm', '') # No valid DICOM preamble