comparison Tests/Tests.py @ 220:7b1c976caa9b Orthanc-1.5.5

fix
author Sebastien Jodogne <s.jodogne@gmail.com>
date Mon, 25 Feb 2019 10:57:28 +0100
parents 00e5aeea33dd
children 4087505ddfe3
comparison
equal deleted inserted replaced
219:00e5aeea33dd 220:7b1c976caa9b
4436 a = UploadInstance(_REMOTE, dicom) ['ID'] 4436 a = UploadInstance(_REMOTE, dicom) ['ID']
4437 b = DoGet(_REMOTE, '/instances/%s/file' % a, 4437 b = DoGet(_REMOTE, '/instances/%s/file' % a,
4438 headers = { 'Accept' : 'application/dicom+json' }) 4438 headers = { 'Accept' : 'application/dicom+json' })
4439 with open(GetDatabasePath(reference), 'rb') as c: 4439 with open(GetDatabasePath(reference), 'rb') as c:
4440 d = json.load(c) 4440 d = json.load(c)
4441 self.assertEqual(d, b) 4441 AssertAlmostEqualRecursive(self, d, b)
4442 4442
4443 Compare('DummyCT.dcm', 'DummyCT.json') 4443 Compare('DummyCT.dcm', 'DummyCT.json')
4444 Compare('MarekLatin2.dcm', 'MarekLatin2.json') 4444 Compare('MarekLatin2.dcm', 'MarekLatin2.json')
4445 Compare('HierarchicalAnonymization/StructuredReports/IM0', 4445 Compare('HierarchicalAnonymization/StructuredReports/IM0',
4446 'HierarchicalAnonymization/StructuredReports/IM0.json') 4446 'HierarchicalAnonymization/StructuredReports/IM0.json')
4544 4544
4545 # 1 study is matched 4545 # 1 study is matched
4546 self.assertEqual(1, len(DoGet(_REMOTE, '/queries/%s/answers' % a))) 4546 self.assertEqual(1, len(DoGet(_REMOTE, '/queries/%s/answers' % a)))
4547 4547
4548 self.assertEqual(0, len(DoGet(_LOCAL, '/instances'))) 4548 self.assertEqual(0, len(DoGet(_LOCAL, '/instances')))
4549 self.assertTrue(MonitorJob(_REMOTE, lambda: DoPost 4549 WaitAllNewJobsDone(_REMOTE, lambda: DoPost
4550 (_REMOTE, '/queries/%s/retrieve' % a, 4550 (_REMOTE, '/queries/%s/retrieve' % a,
4551 '{"TargetAet":"ORTHANCTEST","Synchronous":false}'))) 4551 '{"TargetAet":"ORTHANCTEST","Synchronous":false}'))
4552 4552
4553 # The two studies are matched, as we made the request at the 4553 # The two studies are matched, as we made the request at the
4554 # Study level, thus the shared StudyInstanceUID is used as the key 4554 # Study level, thus the shared StudyInstanceUID is used as the key
4555 self.assertEqual(2, len(DoGet(_LOCAL, '/instances'))) 4555 self.assertEqual(2, len(DoGet(_LOCAL, '/instances')))
4556 4556
4560 'Level' : 'Study', 4560 'Level' : 'Study',
4561 'Query' : {"StudyInstanceUID": "2.25.123" }})['ID'] 4561 'Query' : {"StudyInstanceUID": "2.25.123" }})['ID']
4562 self.assertEqual(2, len(DoGet(_REMOTE, '/queries/%s/answers' % a))) 4562 self.assertEqual(2, len(DoGet(_REMOTE, '/queries/%s/answers' % a)))
4563 DropOrthanc(_LOCAL) 4563 DropOrthanc(_LOCAL)
4564 self.assertEqual(0, len(DoGet(_LOCAL, '/instances'))) 4564 self.assertEqual(0, len(DoGet(_LOCAL, '/instances')))
4565 self.assertTrue(MonitorJob(_REMOTE, lambda: DoPost 4565 WaitAllNewJobsDone(_REMOTE, lambda: DoPost
4566 (_REMOTE, '/queries/%s/retrieve' % a, 4566 (_REMOTE, '/queries/%s/retrieve' % a,
4567 '{"TargetAet":"ORTHANCTEST","Synchronous":false}'))) 4567 '{"TargetAet":"ORTHANCTEST","Synchronous":false}'))
4568 self.assertEqual(2, len(DoGet(_LOCAL, '/instances'))) 4568 self.assertEqual(2, len(DoGet(_LOCAL, '/instances')))
4569 4569
4570 4570
4571 # Same test, at the patient level => only 1 instance is transfered 4571 # Same test, at the patient level => only 1 instance is transfered
4572 a = DoPost(_REMOTE, '/modalities/self/query', { 4572 a = DoPost(_REMOTE, '/modalities/self/query', {
4573 'Level' : 'Patient', 4573 'Level' : 'Patient',
4574 'Query' : {"PatientID": "A" }})['ID'] 4574 'Query' : {"PatientID": "A" }})['ID']
4575 self.assertEqual(1, len(DoGet(_REMOTE, '/queries/%s/answers' % a))) 4575 self.assertEqual(1, len(DoGet(_REMOTE, '/queries/%s/answers' % a)))
4576 DropOrthanc(_LOCAL) 4576 DropOrthanc(_LOCAL)
4577 self.assertEqual(0, len(DoGet(_LOCAL, '/instances'))) 4577 self.assertEqual(0, len(DoGet(_LOCAL, '/instances')))
4578 self.assertTrue(MonitorJob(_REMOTE, lambda: DoPost 4578 WaitAllNewJobsDone(_REMOTE, lambda: DoPost
4579 (_REMOTE, '/queries/%s/retrieve' % a, 4579 (_REMOTE, '/queries/%s/retrieve' % a,
4580 '{"TargetAet":"ORTHANCTEST","Synchronous":false}'))) 4580 '{"TargetAet":"ORTHANCTEST","Synchronous":false}'))
4581 self.assertEqual(1, len(DoGet(_LOCAL, '/instances'))) 4581 self.assertEqual(1, len(DoGet(_LOCAL, '/instances')))
4582 4582
4583 4583
4584 # Same test, at the series level => only 1 instance is transfered 4584 # Same test, at the series level => only 1 instance is transfered
4585 a = DoPost(_REMOTE, '/modalities/self/query', { 4585 a = DoPost(_REMOTE, '/modalities/self/query', {
4586 'Level' : 'Series', 4586 'Level' : 'Series',
4587 'Query' : {"PatientID": "A" }})['ID'] 4587 'Query' : {"PatientID": "A" }})['ID']
4588 self.assertEqual(1, len(DoGet(_REMOTE, '/queries/%s/answers' % a))) 4588 self.assertEqual(1, len(DoGet(_REMOTE, '/queries/%s/answers' % a)))
4589 DropOrthanc(_LOCAL) 4589 DropOrthanc(_LOCAL)
4590 self.assertEqual(0, len(DoGet(_LOCAL, '/instances'))) 4590 self.assertEqual(0, len(DoGet(_LOCAL, '/instances')))
4591 self.assertTrue(MonitorJob(_REMOTE, lambda: DoPost 4591 WaitAllNewJobsDone(_REMOTE, lambda: DoPost
4592 (_REMOTE, '/queries/%s/retrieve' % a, 4592 (_REMOTE, '/queries/%s/retrieve' % a,
4593 '{"TargetAet":"ORTHANCTEST","Synchronous":false}'))) 4593 '{"TargetAet":"ORTHANCTEST","Synchronous":false}'))
4594 self.assertEqual(1, len(DoGet(_LOCAL, '/instances'))) 4594 self.assertEqual(1, len(DoGet(_LOCAL, '/instances')))
4595 4595