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])