comparison Tests/Tests.py @ 451:33051f9ac850 more-tags

new metadata MainDicomTagsSignature
author Alain Mazy <am@osimis.io>
date Thu, 10 Mar 2022 12:07:54 +0100
parents 06eea14c5906
children 45dd181b0f17
comparison
equal deleted inserted replaced
450:eb46265e214f 451:33051f9ac850
1113 p = DoGet(_REMOTE, '/patients')[0] 1113 p = DoGet(_REMOTE, '/patients')[0]
1114 i = DoGet(_REMOTE, '/instances')[0] 1114 i = DoGet(_REMOTE, '/instances')[0]
1115 series = DoGet(_REMOTE, '/series')[0] 1115 series = DoGet(_REMOTE, '/series')[0]
1116 1116
1117 m = DoGet(_REMOTE, '/patients/%s/metadata' % p) 1117 m = DoGet(_REMOTE, '/patients/%s/metadata' % p)
1118 self.assertEqual(1, len(m)) 1118 if IsOrthancVersionAbove(_REMOTE, 1, 11, 0):
1119 self.assertEqual('LastUpdate', m[0]) 1119 self.assertEqual(2, len(m))
1120 self.assertTrue('MainDicomTagsSignature' in m)
1121 else:
1122 self.assertEqual(1, len(m))
1123 self.assertTrue('LastUpdate' in m)
1120 1124
1121 # The lines below failed on Orthanc <= 1.8.2 1125 # The lines below failed on Orthanc <= 1.8.2
1122 self.assertRaises(Exception, lambda: DoGet(_REMOTE, '/studies/%s/metadata' % p)) 1126 self.assertRaises(Exception, lambda: DoGet(_REMOTE, '/studies/%s/metadata' % p))
1123 self.assertRaises(Exception, lambda: DoGet(_REMOTE, '/series/%s/metadata' % p)) 1127 self.assertRaises(Exception, lambda: DoGet(_REMOTE, '/series/%s/metadata' % p))
1124 self.assertRaises(Exception, lambda: DoGet(_REMOTE, '/instances/%s/metadata' % p)) 1128 self.assertRaises(Exception, lambda: DoGet(_REMOTE, '/instances/%s/metadata' % p))
1125 1129
1126 m = DoGet(_REMOTE, '/studies/%s/metadata' % DoGet(_REMOTE, '/studies')[0]) 1130 m = DoGet(_REMOTE, '/studies/%s/metadata' % DoGet(_REMOTE, '/studies')[0])
1127 self.assertEqual(1, len(m)) 1131 if IsOrthancVersionAbove(_REMOTE, 1, 11, 0):
1128 self.assertEqual('LastUpdate', m[0]) 1132 self.assertEqual(2, len(m))
1133 self.assertTrue('MainDicomTagsSignature' in m)
1134 else:
1135 self.assertEqual(1, len(m))
1136 self.assertTrue('LastUpdate' in m)
1129 1137
1130 m = DoGet(_REMOTE, '/series/%s/metadata' % series) 1138 m = DoGet(_REMOTE, '/series/%s/metadata' % series)
1131 self.assertEqual(2, len(m)) 1139 if IsOrthancVersionAbove(_REMOTE, 1, 11, 0):
1140 self.assertEqual(3, len(m))
1141 self.assertTrue('MainDicomTagsSignature' in m)
1142 else:
1143 self.assertEqual(2, len(m))
1132 self.assertTrue('LastUpdate' in m) 1144 self.assertTrue('LastUpdate' in m)
1133 1145
1134 # New in Orthanc 1.9.0 1146 # New in Orthanc 1.9.0
1135 self.assertTrue('RemoteAET' in m) 1147 self.assertTrue('RemoteAET' in m)
1136 self.assertEqual(DoGet(_REMOTE, '/series/%s/metadata/RemoteAET' % series), '') # None, received by REST API 1148 self.assertEqual(DoGet(_REMOTE, '/series/%s/metadata/RemoteAET' % series), '') # None, received by REST API
1137 1149
1138 m = DoGet(_REMOTE, '/instances/%s/metadata' % i) 1150 m = DoGet(_REMOTE, '/instances/%s/metadata' % i)
1139 if IsOrthancVersionAbove(_REMOTE, 1, 9, 1): 1151 if IsOrthancVersionAbove(_REMOTE, 1, 11, 0):
1152 self.assertEqual(10, len(m))
1153 self.assertTrue('MainDicomTagsSignature' in m)
1154 elif IsOrthancVersionAbove(_REMOTE, 1, 9, 1):
1140 self.assertEqual(9, len(m)) 1155 self.assertEqual(9, len(m))
1141 self.assertTrue('PixelDataOffset' in m) # New in Orthanc 1.9.1 1156 self.assertTrue('PixelDataOffset' in m) # New in Orthanc 1.9.1
1142 self.assertEqual(int(DoGet(_REMOTE, '/instances/%s/metadata/PixelDataOffset' % i)), 0x0c78) 1157 self.assertEqual(int(DoGet(_REMOTE, '/instances/%s/metadata/PixelDataOffset' % i)), 0x0c78)
1143 else: 1158 else:
1144 self.assertEqual(8, len(m)) 1159 self.assertEqual(8, len(m))
1167 else: 1182 else:
1168 self.assertFalse('ETag' in headers) 1183 self.assertFalse('ETag' in headers)
1169 self.assertFalse('etag' in headers) 1184 self.assertFalse('etag' in headers)
1170 1185
1171 m = DoGet(_REMOTE, '/patients/%s/metadata' % p) 1186 m = DoGet(_REMOTE, '/patients/%s/metadata' % p)
1172 self.assertEqual(2, len(m)) 1187 if IsOrthancVersionAbove(_REMOTE, 1, 11, 0):
1188 self.assertEqual(3, len(m))
1189 self.assertTrue('MainDicomTagsSignature' in m)
1190 else:
1191 self.assertEqual(2, len(m))
1173 self.assertTrue('LastUpdate' in m) 1192 self.assertTrue('LastUpdate' in m)
1174 self.assertTrue('5555' in m) 1193 self.assertTrue('5555' in m)
1175 self.assertEqual('coucou', DoGet(_REMOTE, '/patients/%s/metadata/5555' % p)) 1194 self.assertEqual('coucou', DoGet(_REMOTE, '/patients/%s/metadata/5555' % p))
1176 1195
1177 if IsOrthancVersionAbove(_REMOTE, 1, 9, 2): 1196 if IsOrthancVersionAbove(_REMOTE, 1, 9, 2):
1191 }) 1210 })
1192 else: 1211 else:
1193 DoDelete(_REMOTE, '/patients/%s/metadata/5555' % p) 1212 DoDelete(_REMOTE, '/patients/%s/metadata/5555' % p)
1194 1213
1195 m = DoGet(_REMOTE, '/patients/%s/metadata' % p) 1214 m = DoGet(_REMOTE, '/patients/%s/metadata' % p)
1196 self.assertEqual(1, len(m)) 1215 if IsOrthancVersionAbove(_REMOTE, 1, 11, 0):
1216 self.assertEqual(2, len(m))
1217 self.assertTrue('MainDicomTagsSignature' in m)
1218 else:
1219 self.assertEqual(1, len(m))
1197 self.assertTrue('LastUpdate' in m) 1220 self.assertTrue('LastUpdate' in m)
1198 1221
1199 1222
1200 def test_statistics(self): 1223 def test_statistics(self):
1201 # Upload 16 instances 1224 # Upload 16 instances
1334 1357
1335 i = DoGet(_REMOTE, '/instances') 1358 i = DoGet(_REMOTE, '/instances')
1336 self.assertEqual(1, len(i)) 1359 self.assertEqual(1, len(i))
1337 m = DoGet(_REMOTE, '/instances/%s/metadata' % i[0]) 1360 m = DoGet(_REMOTE, '/instances/%s/metadata' % i[0])
1338 1361
1339 if IsOrthancVersionAbove(_REMOTE, 1, 9, 1): 1362 if IsOrthancVersionAbove(_REMOTE, 1, 11, 0):
1363 self.assertEqual(10, len(m))
1364 self.assertTrue('MainDicomTagsSignature' in m) # New in Orthanc 1.11.0
1365 elif IsOrthancVersionAbove(_REMOTE, 1, 9, 1):
1340 self.assertEqual(9, len(m)) 1366 self.assertEqual(9, len(m))
1341 self.assertTrue('PixelDataOffset' in m) # New in Orthanc 1.9.1 1367 self.assertTrue('PixelDataOffset' in m) # New in Orthanc 1.9.1
1342 else: 1368 else:
1343 self.assertEqual(8, len(m)) 1369 self.assertEqual(8, len(m))
1344 1370
1356 self.assertEqual(DoGet(_REMOTE, '/instances/%s/metadata/TransferSyntax' % i[0]), '1.2.840.10008.1.2.1') 1382 self.assertEqual(DoGet(_REMOTE, '/instances/%s/metadata/TransferSyntax' % i[0]), '1.2.840.10008.1.2.1')
1357 self.assertEqual(DoGet(_REMOTE, '/instances/%s/metadata/SopClassUid' % i[0]), '1.2.840.10008.5.1.4.1.1.7') 1383 self.assertEqual(DoGet(_REMOTE, '/instances/%s/metadata/SopClassUid' % i[0]), '1.2.840.10008.5.1.4.1.1.7')
1358 1384
1359 series = DoGet(_REMOTE, '/series')[0] 1385 series = DoGet(_REMOTE, '/series')[0]
1360 m = DoGet(_REMOTE, '/series/%s/metadata' % series) 1386 m = DoGet(_REMOTE, '/series/%s/metadata' % series)
1361 self.assertEqual(2, len(m)) 1387 if IsOrthancVersionAbove(_REMOTE, 1, 11, 0):
1388 self.assertEqual(3, len(m))
1389 self.assertTrue('MainDicomTagsSignature' in m)
1390 else:
1391 self.assertEqual(2, len(m))
1362 self.assertTrue('LastUpdate' in m) 1392 self.assertTrue('LastUpdate' in m)
1363 self.assertTrue('RemoteAET' in m) 1393 self.assertTrue('RemoteAET' in m)
1364 self.assertEqual(DoGet(_REMOTE, '/series/%s/metadata/RemoteAET' % series), 'STORESCU') 1394 self.assertEqual(DoGet(_REMOTE, '/series/%s/metadata/RemoteAET' % series), 'STORESCU')
1365 self.assertEqual(DoGet(_REMOTE, '/series/%s/metadata/LastUpdate' % series), 1395 self.assertEqual(DoGet(_REMOTE, '/series/%s/metadata/LastUpdate' % series),
1366 DoGet(_REMOTE, '/instances/%s/metadata/ReceptionDate' % i[0])) 1396 DoGet(_REMOTE, '/instances/%s/metadata/ReceptionDate' % i[0]))
7760 self.assertEqual(1, len(a)) 7790 self.assertEqual(1, len(a))
7761 self.assertEqual(DoGet(_REMOTE, '/instances/%s/patient' % knee1) ['ID'], a[0]['ID']) 7791 self.assertEqual(DoGet(_REMOTE, '/instances/%s/patient' % knee1) ['ID'], a[0]['ID'])
7762 self.assertEqual('Patient', a[0]['Type']) 7792 self.assertEqual('Patient', a[0]['Type'])
7763 self.assertEqual('KNEE', a[0]['MainDicomTags']['PatientName']) 7793 self.assertEqual('KNEE', a[0]['MainDicomTags']['PatientName'])
7764 self.assertTrue('Metadata' in a[0]) 7794 self.assertTrue('Metadata' in a[0])
7765 self.assertEqual(1, len(a[0]['Metadata'])) 7795 if IsOrthancVersionAbove(_REMOTE, 1, 11, 0):
7766 self.assertTrue('LastUpdate' in a[0]['Metadata']) 7796 self.assertEqual(2, len(a[0]['Metadata']))
7797 self.assertTrue('MainDicomTagsSignature' in a[0]['Metadata'])
7798 else:
7799 self.assertEqual(1, len(a[0]['Metadata']))
7800 self.assertTrue('LastUpdate' in a[0]['Metadata'])
7767 7801
7768 for level in [ 'Instance', 'Series', 'Study', 'Patient' ]: 7802 for level in [ 'Instance', 'Series', 'Study', 'Patient' ]:
7769 a = DoPost(_REMOTE, '/tools/bulk-content', { 'Resources' : [ knee1, brainix ], 7803 a = DoPost(_REMOTE, '/tools/bulk-content', { 'Resources' : [ knee1, brainix ],
7770 'Level' : level }) 7804 'Level' : level })
7771 self.assertEqual(2, len(a)) 7805 self.assertEqual(2, len(a))