Mercurial > hg > orthanc-tests
comparison Tests/Tests.py @ 256:397bcd1d16b2
tests for RT-STRUCT anonymization
author | amazy |
---|---|
date | Thu, 05 Sep 2019 13:12:13 +0200 |
parents | 02c3d91b155c |
children | 943166deebcb |
comparison
equal
deleted
inserted
replaced
255:02c3d91b155c | 256:397bcd1d16b2 |
---|---|
4705 aSeries = DoGet(_REMOTE, '/studies/%s/series' % aStudyId) | 4705 aSeries = DoGet(_REMOTE, '/studies/%s/series' % aStudyId) |
4706 self.assertEqual(2, len(aSeries)) | 4706 self.assertEqual(2, len(aSeries)) |
4707 | 4707 |
4708 aCt = list(filter(lambda x: x['MainDicomTags']['Modality'] == 'CT', aSeries)) | 4708 aCt = list(filter(lambda x: x['MainDicomTags']['Modality'] == 'CT', aSeries)) |
4709 aRt = list(filter(lambda x: x['MainDicomTags']['Modality'] == 'RTSTRUCT', aSeries)) | 4709 aRt = list(filter(lambda x: x['MainDicomTags']['Modality'] == 'RTSTRUCT', aSeries)) |
4710 | |
4711 aCtInstanceId = aCt[0]['Instances'][0] | 4710 aCtInstanceId = aCt[0]['Instances'][0] |
4712 aRtInstanceId = aRt[0]['Instances'][0] | 4711 aRtInstanceId = aRt[0]['Instances'][0] |
4713 | |
4714 aCtTags = DoGet(_REMOTE, '/instances/%s/tags?simplify' % aCtInstanceId) | 4712 aCtTags = DoGet(_REMOTE, '/instances/%s/tags?simplify' % aCtInstanceId) |
4715 aRtTags = DoGet(_REMOTE, '/instances/%s/tags?simplify' % aRtInstanceId) | 4713 aRtTags = DoGet(_REMOTE, '/instances/%s/tags?simplify' % aRtInstanceId) |
4716 | 4714 |
4717 # now validate the relationships in the anonymized data | 4715 # now validate the relationships in the anonymized data |
4718 aStudyUID = aCtTags['StudyInstanceUID'] | 4716 aStudyUID = aCtTags['StudyInstanceUID'] |
4734 self.assertNotEqual(oCtFrameOfReferenceUID, aCtFrameOfReferenceUID) | 4732 self.assertNotEqual(oCtFrameOfReferenceUID, aCtFrameOfReferenceUID) |
4735 | 4733 |
4736 # validate the relationships | 4734 # validate the relationships |
4737 self.assertEqual(oContourSequenceCount, aContourSequenceCount) | 4735 self.assertEqual(oContourSequenceCount, aContourSequenceCount) |
4738 self.assertEqual(aCtFrameOfReferenceUID, aRtFrameOfReferenceUID) | 4736 self.assertEqual(aCtFrameOfReferenceUID, aRtFrameOfReferenceUID) |
4739 # fails !!! self.assertEqual(aStudyUID, aRtTags['ReferencedFrameOfReferenceSequence'][0]['RTReferencedStudySequence'][0]['ReferencedSOPInstanceUID']) | 4737 self.assertEqual(aStudyUID, aRtTags['ReferencedFrameOfReferenceSequence'][0]['RTReferencedStudySequence'][0]['ReferencedSOPInstanceUID']) |
4740 # fails !!! self.assertEqual(aCtSeriesUID, aRtTags['ReferencedFrameOfReferenceSequence'][0]['RTReferencedStudySequence'][0]['RTReferencedSeriesSequence'][0]['SeriesInstanceUID']) | 4738 self.assertEqual(aCtSeriesUID, aRtTags['ReferencedFrameOfReferenceSequence'][0]['RTReferencedStudySequence'][0]['RTReferencedSeriesSequence'][0]['SeriesInstanceUID']) |
4741 self.assertEqual(aCtInstanceUID, aRtTags['ReferencedFrameOfReferenceSequence'][0]['RTReferencedStudySequence'][0]['RTReferencedSeriesSequence'][0]['ContourImageSequence'][0]['ReferencedSOPInstanceUID']) | 4739 self.assertEqual(aCtInstanceUID, aRtTags['ReferencedFrameOfReferenceSequence'][0]['RTReferencedStudySequence'][0]['RTReferencedSeriesSequence'][0]['ContourImageSequence'][0]['ReferencedSOPInstanceUID']) |
4742 self.assertEqual(aCtInstanceUID, aRtTags['ROIContourSequence'][0]['ContourSequence'][aContourSequenceCount-1]['ContourImageSequence'][0]['ReferencedSOPInstanceUID']) | 4740 self.assertEqual(aCtInstanceUID, aRtTags['ROIContourSequence'][0]['ContourSequence'][aContourSequenceCount-1]['ContourImageSequence'][0]['ReferencedSOPInstanceUID']) |
4743 | 4741 |
4742 def test_anonymize_relationships_5b(self): | |
4743 # same test as previous one but, this time, we force the StudyInstanceUID | |
4744 ct1 = UploadInstance(_REMOTE, 'HierarchicalAnonymization/RTH/CT01.dcm') | |
4745 rt1 = UploadInstance(_REMOTE, 'HierarchicalAnonymization/RTH/RT.dcm') | |
4746 oStudyId = ct1['ParentStudy'] | |
4747 oCtInstanceId = ct1['ID'] | |
4748 oRtInstanceId = rt1['ID'] | |
4749 | |
4750 oCtTags = DoGet(_REMOTE, '/instances/%s/tags?simplify' % oCtInstanceId) | |
4751 oRtTags = DoGet(_REMOTE, '/instances/%s/tags?simplify' % oRtInstanceId) | |
4752 | |
4753 ### anonymize while forcing the StudyInstanceUID | |
4754 | |
4755 aStudyId = DoPost(_REMOTE, '/studies/%s/anonymize' % oStudyId, '{ "Replace" : { "StudyInstanceUID" : "1.2.3.4"}, "Force": true}', | |
4756 'application/json')['ID'] | |
4757 | |
4758 ### validate | |
4759 | |
4760 aSeries = DoGet(_REMOTE, '/studies/%s/series' % aStudyId) | |
4761 self.assertEqual(2, len(aSeries)) | |
4762 | |
4763 aCt = list(filter(lambda x: x['MainDicomTags']['Modality'] == 'CT', aSeries)) | |
4764 aRt = list(filter(lambda x: x['MainDicomTags']['Modality'] == 'RTSTRUCT', aSeries)) | |
4765 aCtInstanceId = aCt[0]['Instances'][0] | |
4766 aRtInstanceId = aRt[0]['Instances'][0] | |
4767 aCtTags = DoGet(_REMOTE, '/instances/%s/tags?simplify' % aCtInstanceId) | |
4768 aRtTags = DoGet(_REMOTE, '/instances/%s/tags?simplify' % aRtInstanceId) | |
4769 | |
4770 self.assertEqual("1.2.3.4", aCtTags['StudyInstanceUID']) | |
4771 self.assertEqual("1.2.3.4", aRtTags['StudyInstanceUID']) | |
4772 self.assertEqual("1.2.3.4", aRtTags['ReferencedFrameOfReferenceSequence'][0]['RTReferencedStudySequence'][0]['ReferencedSOPInstanceUID']) | |
4744 | 4773 |
4745 | 4774 |
4746 | 4775 |
4747 @unittest.skip('Not fixed yet in Orthanc') | 4776 @unittest.skip('Not fixed yet in Orthanc') |
4748 def test_bitbucket_issue_140(self): | 4777 def test_bitbucket_issue_140(self): |