comparison Tests/Tests.py @ 411:8cf866641fa7

testing bulk deletion
author Sebastien Jodogne <s.jodogne@gmail.com>
date Wed, 16 Jun 2021 17:38:11 +0200
parents d0c6afc1ff68
children cd9da28451cc
comparison
equal deleted inserted replaced
410:d0c6afc1ff68 411:8cf866641fa7
7255 7255
7256 7256
7257 def test_bulk_modify(self): 7257 def test_bulk_modify(self):
7258 # New in Orthanc 1.9.4 7258 # New in Orthanc 1.9.4
7259 7259
7260 def GetModified(result, resourceType, expectedCount = None): 7260 def GetModified(lst, resourceType, expectedCount = None):
7261 m = map(lambda x: x['ID'], filter(lambda x: x['Type'] == resourceType, a['Resources'])) 7261 m = map(lambda x: x['ID'], filter(lambda x: x['Type'] == resourceType, lst['Resources']))
7262 if expectedCount != None: 7262 if expectedCount != None:
7263 self.assertEqual(expectedCount, len(m)) 7263 self.assertEqual(expectedCount, len(m))
7264 return m 7264 return m
7265 7265
7266 instance = UploadInstance(_REMOTE, 'DummyCT.dcm') ['ID'] 7266 instance = UploadInstance(_REMOTE, 'DummyCT.dcm') ['ID']
7275 self.assertNotEqual(instance, GetModified(a, 'Instance', 1) [0]) 7275 self.assertNotEqual(instance, GetModified(a, 'Instance', 1) [0])
7276 self.assertEqual(series, GetModified(a, 'Series', 1) [0]) 7276 self.assertEqual(series, GetModified(a, 'Series', 1) [0])
7277 self.assertEqual(study, GetModified(a, 'Study', 1) [0]) 7277 self.assertEqual(study, GetModified(a, 'Study', 1) [0])
7278 self.assertEqual(patient, GetModified(a, 'Patient', 1) [0]) 7278 self.assertEqual(patient, GetModified(a, 'Patient', 1) [0])
7279 7279
7280 a = DoPost(_REMOTE, '/tools/bulk-anonymize', { 7280 b = DoPost(_REMOTE, '/tools/bulk-anonymize', {
7281 'Resources' : [ instance ] 7281 'Resources' : [ instance ]
7282 }) 7282 })
7283 7283
7284 self.assertNotEqual(instance, GetModified(a, 'Instance', 1) [0]) 7284 self.assertNotEqual(instance, GetModified(b, 'Instance', 1) [0])
7285 self.assertNotEqual(series, GetModified(a, 'Series', 1) [0]) 7285 self.assertNotEqual(series, GetModified(b, 'Series', 1) [0])
7286 self.assertNotEqual(study, GetModified(a, 'Study', 1) [0]) 7286 self.assertNotEqual(study, GetModified(b, 'Study', 1) [0])
7287 self.assertNotEqual(patient, GetModified(a, 'Patient', 1) [0]) 7287 self.assertNotEqual(patient, GetModified(b, 'Patient', 1) [0])
7288 7288
7289 self.assertEqual(3, len(DoGet(_REMOTE, '/instances'))) 7289 self.assertEqual(3, len(DoGet(_REMOTE, '/instances')))
7290 self.assertEqual(2, len(DoGet(_REMOTE, '/series'))) 7290 self.assertEqual(2, len(DoGet(_REMOTE, '/series')))
7291 self.assertEqual(2, len(DoGet(_REMOTE, '/studies'))) 7291 self.assertEqual(2, len(DoGet(_REMOTE, '/studies')))
7292 self.assertEqual(2, len(DoGet(_REMOTE, '/patients'))) 7292 self.assertEqual(2, len(DoGet(_REMOTE, '/patients')))
7293 7293
7294 DropOrthanc(_REMOTE) 7294 DoPost(_REMOTE, '/tools/bulk-delete', {
7295 UploadInstance(_REMOTE, 'DummyCT.dcm') 7295 'Resources' : GetModified(b, 'Patient', 1) + GetModified(a, 'Instance', 1)
7296 })
7297
7296 knee1 = UploadInstance(_REMOTE, 'Knee/T1/IM-0001-0001.dcm') ['ID'] 7298 knee1 = UploadInstance(_REMOTE, 'Knee/T1/IM-0001-0001.dcm') ['ID']
7297 knee2 = UploadInstance(_REMOTE, 'Knee/T2/IM-0001-0001.dcm') ['ID'] 7299 knee2 = UploadInstance(_REMOTE, 'Knee/T2/IM-0001-0001.dcm') ['ID']
7298 brainix = UploadInstance(_REMOTE, 'Brainix/Flair/IM-0001-0001.dcm') ['ID'] 7300 brainix = UploadInstance(_REMOTE, 'Brainix/Flair/IM-0001-0001.dcm') ['ID']
7299 7301
7300 self.assertEqual(4, len(DoGet(_REMOTE, '/instances'))) 7302 self.assertEqual(4, len(DoGet(_REMOTE, '/instances')))
7331 self.assertTrue(DoGet(_REMOTE, '/instances/%s/patient' % knee1) ['ID'] in b) 7333 self.assertTrue(DoGet(_REMOTE, '/instances/%s/patient' % knee1) ['ID'] in b)
7332 self.assertTrue(DoGet(_REMOTE, '/instances/%s/patient' % brainix) ['ID'] in b) 7334 self.assertTrue(DoGet(_REMOTE, '/instances/%s/patient' % brainix) ['ID'] in b)
7333 self.assertTrue(DoGet(_REMOTE, '/instances/%s/patient' % knee2) ['ID'] in b) 7335 self.assertTrue(DoGet(_REMOTE, '/instances/%s/patient' % knee2) ['ID'] in b)
7334 self.assertFalse(DoGet(_REMOTE, '/instances/%s/patient' % instance) ['ID'] in b) 7336 self.assertFalse(DoGet(_REMOTE, '/instances/%s/patient' % instance) ['ID'] in b)
7335 7337
7336 DropOrthanc(_REMOTE) 7338 DoPost(_REMOTE, '/tools/bulk-delete', {
7337 UploadInstance(_REMOTE, 'DummyCT.dcm') 7339 'Resources' : GetModified(a, 'Instance', 2)
7338 knee1 = UploadInstance(_REMOTE, 'Knee/T1/IM-0001-0001.dcm') ['ID'] 7340 })
7339 knee2 = UploadInstance(_REMOTE, 'Knee/T2/IM-0001-0001.dcm') ['ID']
7340 brainix = UploadInstance(_REMOTE, 'Brainix/Flair/IM-0001-0001.dcm') ['ID']
7341 7341
7342 sourceInstances = DoGet(_REMOTE, '/instances') 7342 sourceInstances = DoGet(_REMOTE, '/instances')
7343 sourceSeries = DoGet(_REMOTE, '/series') 7343 sourceSeries = DoGet(_REMOTE, '/series')
7344 sourceStudies = DoGet(_REMOTE, '/studies') 7344 sourceStudies = DoGet(_REMOTE, '/studies')
7345 sourcePatients = DoGet(_REMOTE, '/patients') 7345 sourcePatients = DoGet(_REMOTE, '/patients')
7370 self.assertTrue(DoGet(_REMOTE, '/studies/%s/metadata/AnonymizedFrom' % i) in sourceStudies) 7370 self.assertTrue(DoGet(_REMOTE, '/studies/%s/metadata/AnonymizedFrom' % i) in sourceStudies)
7371 7371
7372 for i in GetModified(a, 'Patient', 2): 7372 for i in GetModified(a, 'Patient', 2):
7373 self.assertFalse(i in sourcePatients) 7373 self.assertFalse(i in sourcePatients)
7374 self.assertTrue(DoGet(_REMOTE, '/patients/%s/metadata/AnonymizedFrom' % i) in sourcePatients) 7374 self.assertTrue(DoGet(_REMOTE, '/patients/%s/metadata/AnonymizedFrom' % i) in sourcePatients)
7375
7376 DoPost(_REMOTE, '/tools/bulk-delete', {
7377 'Resources' : GetModified(a, 'Patient', 2)
7378 })
7379
7380 self.assertEqual(4, len(DoGet(_REMOTE, '/instances')))
7381 self.assertEqual(4, len(DoGet(_REMOTE, '/series')))
7382 self.assertEqual(3, len(DoGet(_REMOTE, '/studies')))
7383 self.assertEqual(3, len(DoGet(_REMOTE, '/patients')))
7384
7385 DoPost(_REMOTE, '/tools/bulk-delete', {
7386 'Resources' : [ instance,
7387 DoGet(_REMOTE, '/instances/%s/patient' % knee1) ['ID'],
7388 DoGet(_REMOTE, '/instances/%s/series' % brainix) ['ID'] ]
7389 })
7390
7391 self.assertEqual(0, len(DoGet(_REMOTE, '/instances')))
7392 self.assertEqual(0, len(DoGet(_REMOTE, '/series')))
7393 self.assertEqual(0, len(DoGet(_REMOTE, '/studies')))
7394 self.assertEqual(0, len(DoGet(_REMOTE, '/patients')))