Mercurial > hg > orthanc-tests
comparison Tests/Tests.py @ 118:a954c535fef6
test_bitbucket_issue_55
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Fri, 14 Jul 2017 11:43:16 +0200 |
parents | d87bf4fbbf83 |
children | 7ecd26982dd7 |
comparison
equal
deleted
inserted
replaced
117:d87bf4fbbf83 | 118:a954c535fef6 |
---|---|
528 "Replace" : { | 528 "Replace" : { |
529 "PatientName" : "hello", | 529 "PatientName" : "hello", |
530 #"PatientID" : "world" | 530 #"PatientID" : "world" |
531 }, | 531 }, |
532 "Remove" : [ "StationName" ], | 532 "Remove" : [ "StationName" ], |
533 "RemovePrivateTags" : None | 533 "RemovePrivateTags" : True |
534 }), | 534 }), |
535 'application/json') | 535 'application/json') |
536 j = DoPost(_REMOTE, '/instances', modified, 'application/dicom')['ID'] | 536 j = DoPost(_REMOTE, '/instances', modified, 'application/dicom')['ID'] |
537 | 537 |
538 self.assertNotEqual('hello', DoGet(_REMOTE, '/instances/%s/content/0010-0010' % i).strip()) | 538 self.assertNotEqual('hello', DoGet(_REMOTE, '/instances/%s/content/0010-0010' % i).strip()) |
1889 b = AnonymizeAndUpload(a, '{"Keep":["PatientName"],"Replace":{"00e1,10c2":"Hello"}}') | 1889 b = AnonymizeAndUpload(a, '{"Keep":["PatientName"],"Replace":{"00e1,10c2":"Hello"}}') |
1890 self.assertEqual(s1, DoGet(_REMOTE, '/instances/%s/content/PatientName' % b)) | 1890 self.assertEqual(s1, DoGet(_REMOTE, '/instances/%s/content/PatientName' % b)) |
1891 self.assertTrue(DoGet(_REMOTE, '/instances/%s/content/00e1-10c2' % b).startswith('Hello')) | 1891 self.assertTrue(DoGet(_REMOTE, '/instances/%s/content/00e1-10c2' % b).startswith('Hello')) |
1892 | 1892 |
1893 # Examples from the Wiki | 1893 # Examples from the Wiki |
1894 b = AnonymizeAndUpload(a, '{"Replace":{"PatientName":"hello","0010-0020":"world"},"Keep":["StudyDescription", "SeriesDescription"],"KeepPrivateTags": null}') | 1894 b = AnonymizeAndUpload(a, '{"Replace":{"PatientName":"hello","0010-0020":"world"},"Keep":["StudyDescription", "SeriesDescription"],"KeepPrivateTags": true,"Force":true}') |
1895 self.assertEqual('hello', DoGet(_REMOTE, '/instances/%s/content/0010-0010' % b).strip()) | 1895 self.assertEqual('hello', DoGet(_REMOTE, '/instances/%s/content/0010-0010' % b).strip()) |
1896 self.assertEqual('world', DoGet(_REMOTE, '/instances/%s/content/PatientID' % b).strip()) | 1896 self.assertEqual('world', DoGet(_REMOTE, '/instances/%s/content/PatientID' % b).strip()) |
1897 self.assertEqual(s3, DoGet(_REMOTE, '/instances/%s/content/0008,1030' % b)) | 1897 self.assertEqual(s3, DoGet(_REMOTE, '/instances/%s/content/0008,1030' % b)) |
1898 self.assertEqual(s4, DoGet(_REMOTE, '/instances/%s/content/0008,103e' % b)) | 1898 self.assertEqual(s4, DoGet(_REMOTE, '/instances/%s/content/0008,103e' % b)) |
1899 self.assertEqual(s4, DoGet(_REMOTE, '/instances/%s/content/0008-103E' % b)) | 1899 self.assertEqual(s4, DoGet(_REMOTE, '/instances/%s/content/0008-103E' % b)) |
1900 self.assertEqual(s2, DoGet(_REMOTE, '/instances/%s/content/00e1-10c2' % b)) | 1900 self.assertEqual(s2, DoGet(_REMOTE, '/instances/%s/content/00e1-10c2' % b)) |
1901 DoGet(_REMOTE, '/instances/%s/content/InstitutionName' % a) | 1901 DoGet(_REMOTE, '/instances/%s/content/InstitutionName' % a) |
1902 self.assertRaises(Exception, lambda: DoGet(_REMOTE, '/instances/%s/content/InstitutionName' % b)) | 1902 self.assertRaises(Exception, lambda: DoGet(_REMOTE, '/instances/%s/content/InstitutionName' % b)) |
1903 | 1903 |
1904 b = ModifyAndUpload(a, '{"Replace":{"PatientName":"hello","PatientID":"world"},"Remove":["InstitutionName"],"RemovePrivateTags": null}') | 1904 b = ModifyAndUpload(a, '{"Replace":{"PatientName":"hello","PatientID":"world"},"Remove":["InstitutionName"],"RemovePrivateTags": true,"Force":true}') |
1905 self.assertEqual('hello', DoGet(_REMOTE, '/instances/%s/content/0010-0010' % b).strip()) | 1905 self.assertEqual('hello', DoGet(_REMOTE, '/instances/%s/content/0010-0010' % b).strip()) |
1906 self.assertEqual('world', DoGet(_REMOTE, '/instances/%s/content/PatientID' % b).strip()) | 1906 self.assertEqual('world', DoGet(_REMOTE, '/instances/%s/content/PatientID' % b).strip()) |
1907 self.assertEqual(s3, DoGet(_REMOTE, '/instances/%s/content/0008,1030' % b)) | 1907 self.assertEqual(s3, DoGet(_REMOTE, '/instances/%s/content/0008,1030' % b)) |
1908 self.assertEqual(s4, DoGet(_REMOTE, '/instances/%s/content/0008,103e' % b)) | 1908 self.assertEqual(s4, DoGet(_REMOTE, '/instances/%s/content/0008,103e' % b)) |
1909 self.assertRaises(Exception, lambda: DoGet(_REMOTE, '/instances/%s/content/00e1-10c2' % b)) | 1909 self.assertRaises(Exception, lambda: DoGet(_REMOTE, '/instances/%s/content/00e1-10c2' % b)) |
1910 self.assertRaises(Exception, lambda: DoGet(_REMOTE, '/instances/%s/content/InstitutionName' % b)) | 1910 self.assertRaises(Exception, lambda: DoGet(_REMOTE, '/instances/%s/content/InstitutionName' % b)) |
1911 | 1911 |
1912 b = ModifyAndUpload(a, '{"Replace":{"PatientName":"hello","PatientID":"world"}}') | 1912 b = ModifyAndUpload(a, '{"Replace":{"PatientName":"hello","PatientID":"world"},"Force":true}') |
1913 self.assertEqual('hello', DoGet(_REMOTE, '/instances/%s/content/0010-0010' % b).strip()) | 1913 self.assertEqual('hello', DoGet(_REMOTE, '/instances/%s/content/0010-0010' % b).strip()) |
1914 self.assertEqual('world', DoGet(_REMOTE, '/instances/%s/content/PatientID' % b).strip()) | 1914 self.assertEqual('world', DoGet(_REMOTE, '/instances/%s/content/PatientID' % b).strip()) |
1915 self.assertEqual(s2, DoGet(_REMOTE, '/instances/%s/content/00e1,10c2' % b)) | 1915 self.assertEqual(s2, DoGet(_REMOTE, '/instances/%s/content/00e1,10c2' % b)) |
1916 self.assertEqual(s3, DoGet(_REMOTE, '/instances/%s/content/0008,1030' % b)) | 1916 self.assertEqual(s3, DoGet(_REMOTE, '/instances/%s/content/0008,1030' % b)) |
1917 self.assertEqual(s4, DoGet(_REMOTE, '/instances/%s/content/0008-103E' % b)) | 1917 self.assertEqual(s4, DoGet(_REMOTE, '/instances/%s/content/0008-103E' % b)) |
3279 | 3279 |
3280 instance = a[0]['ID'] | 3280 instance = a[0]['ID'] |
3281 | 3281 |
3282 return (instance, DoGet(_REMOTE, '/instances/%s/tags' % instance)) | 3282 return (instance, DoGet(_REMOTE, '/instances/%s/tags' % instance)) |
3283 | 3283 |
3284 # Use a sample DICOM image that already contains the 0010,1060 | |
3285 # (RequestingService) tag | |
3286 UploadInstance(_REMOTE, 'Issue44/Monochrome1.dcm') | 3284 UploadInstance(_REMOTE, 'Issue44/Monochrome1.dcm') |
3287 origStudy = '6068a14b-d4df27af-9ec22145-538772d8-74f228ff' | 3285 origStudy = '6068a14b-d4df27af-9ec22145-538772d8-74f228ff' |
3288 | 3286 |
3289 # Add the 0032,1033 (Requesting Service) and the 0010,1060 | 3287 # Add the 0032,1033 (Requesting Service) and the 0010,1060 |
3290 # (Patient's Mother's Birth Name) tags | 3288 # (Patient's Mother's Birth Name) tags |
3318 # Run "dciodvfy" on the anonymized file to be sure it is still valid | 3316 # Run "dciodvfy" on the anonymized file to be sure it is still valid |
3319 f.write(DoGet(_REMOTE, '/instances/%s/file' % instance)) | 3317 f.write(DoGet(_REMOTE, '/instances/%s/file' % instance)) |
3320 f.flush() | 3318 f.flush() |
3321 subprocess.check_output([ FindExecutable('dciodvfy'), f.name ], | 3319 subprocess.check_output([ FindExecutable('dciodvfy'), f.name ], |
3322 stderr = subprocess.STDOUT).split('\n') | 3320 stderr = subprocess.STDOUT).split('\n') |
3321 | |
3322 | |
3323 def test_bitbucket_issue_55(self): | |
3324 def Run(modify, query): | |
3325 self.assertEqual(1, len(DoGet(_REMOTE, '/instances'))) | |
3326 | |
3327 operation = 'modify' if modify else 'anonymize' | |
3328 | |
3329 self.assertRaises(Exception, lambda: DoPost( | |
3330 _REMOTE, '/studies/%s/%s' % (study, operation), query)) | |
3331 self.assertEqual(1, len(DoGet(_REMOTE, '/instances'))) | |
3332 | |
3333 query["Force"] = True | |
3334 a = DoPost(_REMOTE, '/studies/%s/%s' % (study, operation), query)['Path'] | |
3335 self.assertEqual(2, len(DoGet(_REMOTE, '/instances'))) | |
3336 DoDelete(_REMOTE, a) | |
3337 | |
3338 self.assertEqual(1, len(DoGet(_REMOTE, '/instances'))) | |
3339 | |
3340 UploadInstance(_REMOTE, 'DummyCT.dcm') | |
3341 study = 'b9c08539-26f93bde-c81ab0d7-bffaf2cb-a4d0bdd0' | |
3342 | |
3343 Run(True, { "Replace" : { "StudyInstanceUID" : "world" } }) | |
3344 Run(True, { "Replace" : { "SeriesInstanceUID" : "world" } }) | |
3345 Run(True, { "Replace" : { "SOPInstanceUID" : "world" } }) | |
3346 | |
3347 Run(False, { "Keep" : [ "StudyInstanceUID" ]}) | |
3348 Run(False, { "Keep" : [ "SeriesInstanceUID" ]}) | |
3349 Run(False, { "Keep" : [ "SOPInstanceUID" ]}) | |
3350 | |
3351 Run(False, { "Replace" : { "StudyInstanceUID" : "world" } }) | |
3352 Run(False, { "Replace" : { "SeriesInstanceUID" : "world" } }) | |
3353 Run(False, { "Replace" : { "SOPInstanceUID" : "world" } }) | |
3354 |