comparison Tests/Tests.py @ 133:f0d4c4707e64 Orthanc-1.3.2

test_anonymize_relationships_3
author Sebastien Jodogne <s.jodogne@gmail.com>
date Tue, 10 Apr 2018 19:38:26 +0200
parents 149144d854bb
children 5634ef96fcc5
comparison
equal deleted inserted replaced
132:149144d854bb 133:f0d4c4707e64
3509 3509
3510 os.remove('/tmp/DICOMDIR') 3510 os.remove('/tmp/DICOMDIR')
3511 3511
3512 3512
3513 def test_anonymize_relationships_1(self): 3513 def test_anonymize_relationships_1(self):
3514 UploadInstance(_REMOTE, 'Knee/T1/IM-0001-0001.dcm')['ID'] 3514 UploadInstance(_REMOTE, 'Knee/T1/IM-0001-0001.dcm')
3515 UploadInstance(_REMOTE, 'Knee/T1/IM-0001-0002.dcm')['ID'] 3515 UploadInstance(_REMOTE, 'Knee/T1/IM-0001-0002.dcm')
3516 study = '0a9b3153-2512774b-2d9580de-1fc3dcf6-3bd83918' 3516 study = '0a9b3153-2512774b-2d9580de-1fc3dcf6-3bd83918'
3517 3517
3518 anonymized = DoPost(_REMOTE, '/studies/%s/anonymize' % study, 3518 anonymized = DoPost(_REMOTE, '/studies/%s/anonymize' % study,
3519 '{}', 3519 '{}',
3520 'application/json')['ID'] 3520 'application/json')['ID']
3562 self.assertEqual(DoGet(_REMOTE, CLASS % (a2, i)), 3562 self.assertEqual(DoGet(_REMOTE, CLASS % (a2, i)),
3563 DoGet(_REMOTE, CLASS % (b2, i))) 3563 DoGet(_REMOTE, CLASS % (b2, i)))
3564 3564
3565 3565
3566 def test_anonymize_relationships_2(self): 3566 def test_anonymize_relationships_2(self):
3567 UploadInstance(_REMOTE, 'Comunix/Ct/IM-0001-0001.dcm')['ID'] 3567 UploadInstance(_REMOTE, 'Comunix/Ct/IM-0001-0001.dcm')
3568 UploadInstance(_REMOTE, 'Comunix/Ct/IM-0001-0002.dcm')['ID'] 3568 UploadInstance(_REMOTE, 'Comunix/Ct/IM-0001-0002.dcm')
3569 study = '6c65289b-db2fcb71-7eaf73f4-8e12470c-a4d6d7cf' 3569 study = '6c65289b-db2fcb71-7eaf73f4-8e12470c-a4d6d7cf'
3570 3570
3571 anonymized = DoPost(_REMOTE, '/studies/%s/anonymize' % study, 3571 anonymized = DoPost(_REMOTE, '/studies/%s/anonymize' % study,
3572 '{}', 3572 '{}',
3573 'application/json')['ID'] 3573 'application/json')['ID']
3600 DoGet(_REMOTE, SOP % (b2, 0))) 3600 DoGet(_REMOTE, SOP % (b2, 0)))
3601 self.assertEqual(DoGet(_REMOTE, CLASS % (a1, 0)), 3601 self.assertEqual(DoGet(_REMOTE, CLASS % (a1, 0)),
3602 DoGet(_REMOTE, CLASS % (b1, 0))) 3602 DoGet(_REMOTE, CLASS % (b1, 0)))
3603 self.assertEqual(DoGet(_REMOTE, CLASS % (a2, 0)), 3603 self.assertEqual(DoGet(_REMOTE, CLASS % (a2, 0)),
3604 DoGet(_REMOTE, CLASS % (b2, 0))) 3604 DoGet(_REMOTE, CLASS % (b2, 0)))
3605
3606
3607 def test_anonymize_relationships_3(self):
3608 sr1 = UploadInstance(_REMOTE, 'HierarchicalAnonymization/StructuredReports/IM0')['ID']
3609 mr1 = UploadInstance(_REMOTE, 'HierarchicalAnonymization/StructuredReports/IM631')['ID']
3610 study = 'ef351eb2-c1147229-062736b8-35a151e3-e32d526b'
3611
3612 anonymized = DoPost(_REMOTE, '/studies/%s/anonymize' % study,
3613 { "Keep" : [ "ContentSequence" ] }) ['ID']
3614
3615 a = DoGet(_REMOTE, '/studies/%s/instances' % anonymized)
3616 self.assertEqual(2, len(a))
3617
3618 if DoGet(_REMOTE, '/instances/%s/content/Modality' % a[0]['ID']) == 'SR':
3619 sr2 = a[0]['ID']
3620 mr2 = a[1]['ID']
3621 else:
3622 sr2 = a[1]['ID']
3623 mr2 = a[0]['ID']
3624
3625 self.assertEqual(DoGet(_REMOTE, '/instances/%s/content/Modality' % sr1),
3626 DoGet(_REMOTE, '/instances/%s/content/Modality' % sr2))
3627 self.assertEqual(DoGet(_REMOTE, '/instances/%s/content/Modality' % mr1),
3628 DoGet(_REMOTE, '/instances/%s/content/Modality' % mr2))
3629
3630 mrUid1 = DoGet(_REMOTE, '/instances/%s' % mr1)['MainDicomTags']['SOPInstanceUID']
3631 mrUid2 = DoGet(_REMOTE, '/instances/%s' % mr2)['MainDicomTags']['SOPInstanceUID']
3632 mrSeries1 = DoGet(_REMOTE, '/instances/%s/content/SeriesInstanceUID' % mr1).strip('\x00')
3633 mrSeries2 = DoGet(_REMOTE, '/instances/%s/content/SeriesInstanceUID' % mr2).strip('\x00')
3634 mrStudy1 = DoGet(_REMOTE, '/instances/%s/content/StudyInstanceUID' % mr1).strip('\x00')
3635 mrStudy2 = DoGet(_REMOTE, '/instances/%s/content/StudyInstanceUID' % mr2).strip('\x00')
3636
3637 PATH1 = '/instances/%s/content/CurrentRequestedProcedureEvidenceSequence'
3638 PATH2 = PATH1 + '/0/ReferencedSeriesSequence'
3639 PATH3 = PATH2 + '/0/ReferencedSOPSequence'
3640 PATH4 = PATH3 + '/0/ReferencedSOPInstanceUID'
3641 PATH5 = PATH3 + '/0/ReferencedSOPClassUID'
3642
3643 self.assertEqual(1, len(DoGet(_REMOTE, PATH1 % sr1)))
3644 self.assertEqual(1, len(DoGet(_REMOTE, PATH2 % sr1)))
3645 self.assertEqual(1, len(DoGet(_REMOTE, PATH3 % sr1)))
3646 self.assertEqual(DoGet(_REMOTE, PATH4 % sr1), mrUid1)
3647 self.assertEqual(mrSeries1, DoGet(_REMOTE, (PATH2 + '/0/SeriesInstanceUID') % sr1).strip('\x00'))
3648 self.assertEqual(mrStudy1, DoGet(_REMOTE, (PATH1 + '/0/StudyInstanceUID') % sr1).strip('\x00'))
3649
3650 self.assertEqual(1, len(DoGet(_REMOTE, PATH1 % sr2)))
3651 self.assertEqual(1, len(DoGet(_REMOTE, PATH2 % sr2)))
3652 self.assertEqual(1, len(DoGet(_REMOTE, PATH3 % sr2)))
3653 self.assertEqual(DoGet(_REMOTE, PATH5 % sr1), DoGet(_REMOTE, PATH5 % sr2))
3654
3655 self.assertEqual(mrUid2, DoGet(_REMOTE, PATH4 % sr2).strip('\x00'))
3656 self.assertEqual(mrSeries2, DoGet(_REMOTE, (PATH2 + '/0/SeriesInstanceUID') % sr2).strip('\x00'))
3657 self.assertEqual(mrStudy2, DoGet(_REMOTE, (PATH1 + '/0/StudyInstanceUID') % sr2).strip('\x00'))
3658
3659 content1 = DoGet(_REMOTE, '/instances/%s/tags?simplify' % sr1) ['ContentSequence']
3660 content2 = DoGet(_REMOTE, '/instances/%s/tags?simplify' % sr2) ['ContentSequence']
3661 self.assertEqual(str(content1), str(content2))