Mercurial > hg > orthanc-tests
comparison Plugins/DicomWeb/Run.py @ 588:8aa101e126d0
migration to UCLouvain servers
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Wed, 22 Nov 2023 07:28:23 +0100 |
parents | 4ee2cdbfc602 |
children | ba06331ac8dd |
comparison
equal
deleted
inserted
replaced
587:f29d3ff889bf | 588:8aa101e126d0 |
---|---|
388 self.assertEqual(1, int(t[COUNT])) | 388 self.assertEqual(1, int(t[COUNT])) |
389 | 389 |
390 | 390 |
391 def test_bitbucket_issue_53(self): | 391 def test_bitbucket_issue_53(self): |
392 # DICOMWeb plugin support for "limit" and "offset" parameters in QIDO-RS | 392 # DICOMWeb plugin support for "limit" and "offset" parameters in QIDO-RS |
393 # https://bugs.orthanc-server.com/show_bug.cgi?id=53 | 393 # https://orthanc.uclouvain.be/bugs/show_bug.cgi?id=53 |
394 | 394 |
395 UploadInstance(ORTHANC, 'Brainix/Flair/IM-0001-0001.dcm') | 395 UploadInstance(ORTHANC, 'Brainix/Flair/IM-0001-0001.dcm') |
396 UploadInstance(ORTHANC, 'Knee/T1/IM-0001-0001.dcm') | 396 UploadInstance(ORTHANC, 'Knee/T1/IM-0001-0001.dcm') |
397 | 397 |
398 brainix = '2.16.840.1.113669.632.20.1211.10000357775' | 398 brainix = '2.16.840.1.113669.632.20.1211.10000357775' |
417 self.assertTrue(knee in b) | 417 self.assertTrue(knee in b) |
418 | 418 |
419 | 419 |
420 def test_bitbucket_issue_111(self): | 420 def test_bitbucket_issue_111(self): |
421 # Wrong serialization of empty values | 421 # Wrong serialization of empty values |
422 # https://bugs.orthanc-server.com/show_bug.cgi?id=111 | 422 # https://orthanc.uclouvain.be/bugs/show_bug.cgi?id=111 |
423 # https://bitbucket.org/sjodogne/orthanc-dicomweb/issues/3 | 423 # https://bitbucket.org/sjodogne/orthanc-dicomweb/issues/3 |
424 | 424 |
425 # According to the standard, section F.2.5 | 425 # According to the standard, section F.2.5 |
426 # (http://dicom.nema.org/medical/dicom/current/output/chtml/part18/sect_F.2.5.html), | 426 # (http://dicom.nema.org/medical/dicom/current/output/chtml/part18/sect_F.2.5.html), |
427 # null values behave as follows: If an attribute is present in | 427 # null values behave as follows: If an attribute is present in |
428 # DICOM but empty (i.e., Value Length is 0), it shall be | 428 # DICOM but empty (i.e., Value Length is 0), it shall be |
429 # preserved in the DICOM JSON attribute object containing no | 429 # preserved in the DICOM JSON attribute object containing no |
430 # "Value", "BulkDataURI" or "InlineBinary". | 430 # "Value", "BulkDataURI" or "InlineBinary". |
431 # https://bugs.orthanc-server.com/show_bug.cgi?id=111 | 431 # https://orthanc.uclouvain.be/bugs/show_bug.cgi?id=111 |
432 | 432 |
433 UploadInstance(ORTHANC, 'Issue111.dcm') | 433 UploadInstance(ORTHANC, 'Issue111.dcm') |
434 | 434 |
435 # Test WADO-RS | 435 # Test WADO-RS |
436 a = DoGet(ORTHANC, '/dicom-web/studies/1.2.276.0.7230010.3.1.2.8323329.30185.1551199973.371589/metadata') | 436 a = DoGet(ORTHANC, '/dicom-web/studies/1.2.276.0.7230010.3.1.2.8323329.30185.1551199973.371589/metadata') |
536 self.assertEqual(b, c[0]) | 536 self.assertEqual(b, c[0]) |
537 | 537 |
538 | 538 |
539 def test_bitbucket_issue_112(self): | 539 def test_bitbucket_issue_112(self): |
540 # Wrong serialization of number values | 540 # Wrong serialization of number values |
541 # https://bugs.orthanc-server.com/show_bug.cgi?id=112 | 541 # https://orthanc.uclouvain.be/bugs/show_bug.cgi?id=112 |
542 # https://bitbucket.org/sjodogne/orthanc-dicomweb/issues/4/ | 542 # https://bitbucket.org/sjodogne/orthanc-dicomweb/issues/4/ |
543 | 543 |
544 UploadInstance(ORTHANC, 'DummyCT.dcm') | 544 UploadInstance(ORTHANC, 'DummyCT.dcm') |
545 study = '1.2.840.113619.2.176.2025.1499492.7391.1171285944.390' | 545 study = '1.2.840.113619.2.176.2025.1499492.7391.1171285944.390' |
546 | 546 |
568 self.assertEqual(1, b) | 568 self.assertEqual(1, b) |
569 | 569 |
570 | 570 |
571 def test_bitbucket_issue_113(self): | 571 def test_bitbucket_issue_113(self): |
572 # Wrong serialization of PN VR | 572 # Wrong serialization of PN VR |
573 # https://bugs.orthanc-server.com/show_bug.cgi?id=113 | 573 # https://orthanc.uclouvain.be/bugs/show_bug.cgi?id=113 |
574 # https://bitbucket.org/sjodogne/orthanc-dicomweb/issues/2/ | 574 # https://bitbucket.org/sjodogne/orthanc-dicomweb/issues/2/ |
575 | 575 |
576 # Make sure UTF-8 encoding is used | 576 # Make sure UTF-8 encoding is used |
577 self.assertEqual('Utf8', DoPut(ORTHANC, '/tools/default-encoding', 'Utf8')) | 577 self.assertEqual('Utf8', DoPut(ORTHANC, '/tools/default-encoding', 'Utf8')) |
578 | 578 |
600 self.assertEqual(u'王^小東', pn['Value'][0]['Ideographic']) | 600 self.assertEqual(u'王^小東', pn['Value'][0]['Ideographic']) |
601 | 601 |
602 | 602 |
603 def test_bitbucket_issue_96(self): | 603 def test_bitbucket_issue_96(self): |
604 # WADO-RS RetrieveFrames rejects valid accept headers | 604 # WADO-RS RetrieveFrames rejects valid accept headers |
605 # https://bugs.orthanc-server.com/show_bug.cgi?id=96 | 605 # https://orthanc.uclouvain.be/bugs/show_bug.cgi?id=96 |
606 # https://bitbucket.org/sjodogne/orthanc-dicomweb/issues/5/ | 606 # https://bitbucket.org/sjodogne/orthanc-dicomweb/issues/5/ |
607 | 607 |
608 UploadInstance(ORTHANC, 'Brainix/Epi/IM-0001-0001.dcm') | 608 UploadInstance(ORTHANC, 'Brainix/Epi/IM-0001-0001.dcm') |
609 | 609 |
610 a = DoGet(ORTHANC, '/dicom-web/instances') | 610 a = DoGet(ORTHANC, '/dicom-web/instances') |
805 | 805 |
806 | 806 |
807 def test_bitbucket_issue_143(self): | 807 def test_bitbucket_issue_143(self): |
808 # WADO-RS metadata request returns "500 Internal Server Error" | 808 # WADO-RS metadata request returns "500 Internal Server Error" |
809 # instead of "404 Not Found" for missing instance | 809 # instead of "404 Not Found" for missing instance |
810 # https://bugs.orthanc-server.com/show_bug.cgi?id=143 | 810 # https://orthanc.uclouvain.be/bugs/show_bug.cgi?id=143 |
811 UploadInstance(ORTHANC, 'Issue143.dcm') | 811 UploadInstance(ORTHANC, 'Issue143.dcm') |
812 | 812 |
813 e = DoGetRaw(ORTHANC, '/dicom-web/studies/1.2.840.113619.2.55.3.671756986.106.1316467036.460/series/1.2.840.113619.2.55.3.671756986.106.1316467036.465/instances/0.0.0.0.0/metadata') | 813 e = DoGetRaw(ORTHANC, '/dicom-web/studies/1.2.840.113619.2.55.3.671756986.106.1316467036.460/series/1.2.840.113619.2.55.3.671756986.106.1316467036.465/instances/0.0.0.0.0/metadata') |
814 self.assertEqual(404, int(e[0]['status'])) | 814 self.assertEqual(404, int(e[0]['status'])) |
815 | 815 |
1059 | 1059 |
1060 | 1060 |
1061 #@unittest.skip("Skip this test on GDCM 2.8.4") | 1061 #@unittest.skip("Skip this test on GDCM 2.8.4") |
1062 def test_bitbucket_issue_164(self): | 1062 def test_bitbucket_issue_164(self): |
1063 # WARNING - This makes GDCM 2.8.4 crash | 1063 # WARNING - This makes GDCM 2.8.4 crash |
1064 # https://bugs.orthanc-server.com/show_bug.cgi?id=164 | 1064 # https://orthanc.uclouvain.be/bugs/show_bug.cgi?id=164 |
1065 UploadInstance(ORTHANC, 'Issue164.dcm') | 1065 UploadInstance(ORTHANC, 'Issue164.dcm') |
1066 | 1066 |
1067 p = DoGetMultipart(ORTHANC, 'dicom-web/studies/1.2.276.0.26.1.1.1.2.2020.45.52293.1506048/series/1.2.276.0.26.1.1.1.2.2020.45.52293.6384450/instances/1.2.276.0.26.1.1.1.2.2020.45.52366.2551599.179568640/frames/5') | 1067 p = DoGetMultipart(ORTHANC, 'dicom-web/studies/1.2.276.0.26.1.1.1.2.2020.45.52293.1506048/series/1.2.276.0.26.1.1.1.2.2020.45.52293.6384450/instances/1.2.276.0.26.1.1.1.2.2020.45.52366.2551599.179568640/frames/5') |
1068 self.assertEqual(1, len(p)) | 1068 self.assertEqual(1, len(p)) |
1069 self.assertEqual(743 * 975 * 3, len(p[0])) | 1069 self.assertEqual(743 * 975 * 3, len(p[0])) |
1089 | 1089 |
1090 def test_bitbucket_issue_168(self): | 1090 def test_bitbucket_issue_168(self): |
1091 # "Plugins can't read private tags from the configuration | 1091 # "Plugins can't read private tags from the configuration |
1092 # file" This test will fail if DCMTK <= 3.6.1 (e.g. on Ubuntu | 1092 # file" This test will fail if DCMTK <= 3.6.1 (e.g. on Ubuntu |
1093 # 16.04), or if Orthanc <= 1.5.8 | 1093 # 16.04), or if Orthanc <= 1.5.8 |
1094 # https://bugs.orthanc-server.com/show_bug.cgi?id=168 | 1094 # https://orthanc.uclouvain.be/bugs/show_bug.cgi?id=168 |
1095 | 1095 |
1096 UploadInstance(ORTHANC, 'Issue168.dcm') | 1096 UploadInstance(ORTHANC, 'Issue168.dcm') |
1097 | 1097 |
1098 a = DoGet(ORTHANC, '/dicom-web/studies') | 1098 a = DoGet(ORTHANC, '/dicom-web/studies') |
1099 self.assertEqual(1, len(a)) | 1099 self.assertEqual(1, len(a)) |
1197 | 1197 |
1198 | 1198 |
1199 def test_bitbucket_issue_56(self): | 1199 def test_bitbucket_issue_56(self): |
1200 # "Case-insensitive matching over accents" => DICOMweb part | 1200 # "Case-insensitive matching over accents" => DICOMweb part |
1201 # from AlexanderM on 2020-03-20 | 1201 # from AlexanderM on 2020-03-20 |
1202 # https://bugs.orthanc-server.com/show_bug.cgi?id=56 | 1202 # https://orthanc.uclouvain.be/bugs/show_bug.cgi?id=56 |
1203 UploadInstance(ORTHANC, 'Issue56-NoPixelData.dcm') | 1203 UploadInstance(ORTHANC, 'Issue56-NoPixelData.dcm') |
1204 | 1204 |
1205 self.assertEqual(1, len(DoPost(ORTHANC, '/tools/find', { | 1205 self.assertEqual(1, len(DoPost(ORTHANC, '/tools/find', { |
1206 'Level' : 'Patient', | 1206 'Level' : 'Patient', |
1207 'Query' : { | 1207 'Query' : { |
1496 self.assertLessEqual(abs(bbox[3] - bbox[1]), 1) | 1496 self.assertLessEqual(abs(bbox[3] - bbox[1]), 1) |
1497 | 1497 |
1498 | 1498 |
1499 def test_issue_195(self): | 1499 def test_issue_195(self): |
1500 # This fails on Orthanc <= 1.9.2 | 1500 # This fails on Orthanc <= 1.9.2 |
1501 # https://bugs.orthanc-server.com/show_bug.cgi?id=195 | 1501 # https://orthanc.uclouvain.be/bugs/show_bug.cgi?id=195 |
1502 a = UploadInstance(ORTHANC, 'Issue195.dcm') ['ID'] | 1502 a = UploadInstance(ORTHANC, 'Issue195.dcm') ['ID'] |
1503 b = DoGet(ORTHANC, 'dicom-web/studies/1.2.276.0.7230010.3.1.2.8323329.13188.1620309604.848733/series/1.2.276.0.7230010.3.1.3.8323329.13188.1620309604.848734/instances/1.2.276.0.7230010.3.1.4.8323329.13188.1620309604.848735/metadata', | 1503 b = DoGet(ORTHANC, 'dicom-web/studies/1.2.276.0.7230010.3.1.2.8323329.13188.1620309604.848733/series/1.2.276.0.7230010.3.1.3.8323329.13188.1620309604.848734/instances/1.2.276.0.7230010.3.1.4.8323329.13188.1620309604.848735/metadata', |
1504 headers = { 'Accept' : 'application/dicom+json' }) | 1504 headers = { 'Accept' : 'application/dicom+json' }) |
1505 | 1505 |
1506 self.assertEqual(1, len(b)) | 1506 self.assertEqual(1, len(b)) |
1722 self.assertEqual(studyUid, m[0]['0020000D']['Value'][0]) | 1722 self.assertEqual(studyUid, m[0]['0020000D']['Value'][0]) |
1723 | 1723 |
1724 if IsPluginVersionAbove(ORTHANC, "dicom-web", 1, 13, 1) and IsOrthancVersionAbove(ORTHANC, 1, 12, 1): | 1724 if IsPluginVersionAbove(ORTHANC, "dicom-web", 1, 13, 1) and IsOrthancVersionAbove(ORTHANC, 1, 12, 1): |
1725 # This fails on DICOMweb <= 1.13 because of the "; q=.2", | 1725 # This fails on DICOMweb <= 1.13 because of the "; q=.2", |
1726 # since multiple accepts were not supported | 1726 # since multiple accepts were not supported |
1727 # https://bugs.orthanc-server.com/show_bug.cgi?id=216 | 1727 # https://orthanc.uclouvain.be/bugs/show_bug.cgi?id=216 |
1728 m = DoGet(ORTHANC, '/dicom-web/studies/%s/metadata' % studyUid, headers = { | 1728 m = DoGet(ORTHANC, '/dicom-web/studies/%s/metadata' % studyUid, headers = { |
1729 'accept': 'text/html, image/gif, image/jpeg, */*; q=.2, */*; q=.2' | 1729 'accept': 'text/html, image/gif, image/jpeg, */*; q=.2, */*; q=.2' |
1730 }) | 1730 }) |
1731 self.assertEqual(1, len(m)) | 1731 self.assertEqual(1, len(m)) |
1732 self.assertEqual(studyUid, m[0]['0020000D']['Value'][0]) | 1732 self.assertEqual(studyUid, m[0]['0020000D']['Value'][0]) |