# HG changeset patch # User Sebastien Jodogne # Date 1554476677 -7200 # Node ID 93cd4fdd4a67e8f32609c2596810f259d544235b # Parent ce0b19a2c80722ff5c2cb96da19c429badc07d64 test_anonymize_relationships_4 diff -r ce0b19a2c807 -r 93cd4fdd4a67 Database/HierarchicalAnonymization/2019-03-28/CR000000.dcm Binary file Database/HierarchicalAnonymization/2019-03-28/CR000000.dcm has changed diff -r ce0b19a2c807 -r 93cd4fdd4a67 Database/HierarchicalAnonymization/2019-03-28/PR000000.dcm Binary file Database/HierarchicalAnonymization/2019-03-28/PR000000.dcm has changed diff -r ce0b19a2c807 -r 93cd4fdd4a67 Database/Issue137.cfg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Database/Issue137.cfg Fri Apr 05 17:04:37 2019 +0200 @@ -0,0 +1,19 @@ +## +## Command to upload: +## +## $ storescu localhost 4242 -xf ./Issue137.cfg Default ./Issue137.dcm +## + + +[[TransferSyntaxes]] +[Uncompressed] +TransferSyntax1 = LittleEndianExplicit + +[[PresentationContexts]] +[StorageCompressedAndUncompressed] +PresentationContext1 = 1.2.840.10008.5.1.4.1.1.104.3\Uncompressed +#PresentationContext1 = EncapsulatedSTLStorage\Uncompressed + +[[Profiles]] +[Default] +PresentationContexts = StorageCompressedAndUncompressed diff -r ce0b19a2c807 -r 93cd4fdd4a67 Tests/Tests.py --- a/Tests/Tests.py Fri Apr 05 13:34:41 2019 +0200 +++ b/Tests/Tests.py Fri Apr 05 17:04:37 2019 +0200 @@ -4609,3 +4609,34 @@ patientNames = re.findall('\(0010,0010\).*?\[(.*?)\]', i) self.assertEqual(1, len(patientNames)) self.assertEqual('John Doe', patientNames[0]) + + + def test_anonymize_relationships_4(self): + # https://groups.google.com/d/msg/orthanc-users/UkcsqyTpszE/bXUpzU0vAAAJ + sr1 = UploadInstance(_REMOTE, 'HierarchicalAnonymization/2019-03-28/CR000000.dcm')['ID'] + mr1 = UploadInstance(_REMOTE, 'HierarchicalAnonymization/2019-03-28/PR000000.dcm')['ID'] + study = '0c923249-d52121a9-2b7167f7-6b85534f-0943697e' + + anonymized = DoPost(_REMOTE, '/studies/%s/anonymize' % study, '{}', + 'application/json')['ID'] + series = DoGet(_REMOTE, '/studies/%s/series' % anonymized) + self.assertEqual(2, len(series)) + + cr = list(filter(lambda x: x['MainDicomTags']['Modality'] == 'CR', series)) + pr = list(filter(lambda x: x['MainDicomTags']['Modality'] == 'PR', series)) + self.assertEqual(1, len(cr)) + self.assertEqual(1, len(pr)) + self.assertEqual(1, len(cr[0]['Instances'])) + self.assertEqual(1, len(pr[0]['Instances'])) + + crinstance = DoGet(_REMOTE, '/instances/%s' % cr[0]['Instances'][0]) + tags = DoGet(_REMOTE, '/instances/%s/tags?short' % pr[0]['Instances'][0]) + + self.assertEqual(tags['0008,1115'][0]['0008,1140'][0]['0008,1155'], + crinstance['MainDicomTags']['SOPInstanceUID']) + self.assertEqual(tags['0008,1115'][0]['0008,1140'][0]['0008,1150'], + '1.2.840.10008.5.1.4.1.1.1') # SOP class for CR Image Storage + + # This fails on Orthanc <= 1.5.6 + self.assertEqual(tags['0008,1115'][0]['0020,000e'], + cr[0]['MainDicomTags']['SeriesInstanceUID'])