comparison Tests/Tests.py @ 685:bd5dab887f34

fixes
author Alain Mazy <am@orthanc.team>
date Mon, 09 Sep 2024 15:15:22 +0200
parents 3476dc32c39b
children 992f0e405c4f
comparison
equal deleted inserted replaced
684:8d0065a622d7 685:bd5dab887f34
1897 1897
1898 self.assertEqual(study, DoGet(_REMOTE, '/series/%s' % modified['ID']) ['ParentStudy']) 1898 self.assertEqual(study, DoGet(_REMOTE, '/series/%s' % modified['ID']) ['ParentStudy'])
1899 1899
1900 1900
1901 def test_create(self): 1901 def test_create(self):
1902 payload = {
1903 'PatientName' : 'Jodogne',
1904 'Modality' : 'CT',
1905 'SOPClassUID' : '1.2.840.10008.5.1.4.1.1.1',
1906 'PixelData' : 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg==' # red dot in RGBA
1907 }
1908
1909 if IsOrthancVersionAbove(_REMOTE, 1, 12, 5):
1910 payload['TimeRange'] = '3.12\\4.12', # https://discourse.orthanc-server.org/t/multiplicity-on-dicom-tags/5144
1911
1902 i = DoPost(_REMOTE, '/tools/create-dicom', 1912 i = DoPost(_REMOTE, '/tools/create-dicom',
1903 json.dumps({ 1913 json.dumps(payload))
1904 'PatientName' : 'Jodogne',
1905 'Modality' : 'CT',
1906 'SOPClassUID' : '1.2.840.10008.5.1.4.1.1.1',
1907 'TimeRange': '3.12\\4.12', # https://discourse.orthanc-server.org/t/multiplicity-on-dicom-tags/5144
1908 'PixelData' : 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg==' # red dot in RGBA
1909 }))
1910 1914
1911 self.assertEqual('Jodogne', DoGet(_REMOTE, '/instances/%s/content/PatientName' % i['ID']).strip()) 1915 self.assertEqual('Jodogne', DoGet(_REMOTE, '/instances/%s/content/PatientName' % i['ID']).strip())
1912 self.assertEqual('CT', DoGet(_REMOTE, '/instances/%s/content/Modality' % i['ID']).strip()) 1916 self.assertEqual('CT', DoGet(_REMOTE, '/instances/%s/content/Modality' % i['ID']).strip())
1913 tags = DoGet(_REMOTE, '/instances/%s/tags?simplify' % i['ID']) 1917 tags = DoGet(_REMOTE, '/instances/%s/tags?simplify' % i['ID'])
1914 self.assertIn("3.12", tags["TimeRange"]) 1918 self.assertIn("3.12", tags["TimeRange"])
10624 instance = 'ee693caa-9786a685-4f0f9fb0-4411cc8b-988f5574' 10628 instance = 'ee693caa-9786a685-4f0f9fb0-4411cc8b-988f5574'
10625 series = '318603c5-03e8cffc-a82b6ee1-3ccd3c1e-18d7e3bb' 10629 series = '318603c5-03e8cffc-a82b6ee1-3ccd3c1e-18d7e3bb'
10626 study = '6c65289b-db2fcb71-7eaf73f4-8e12470c-a4d6d7cf' 10630 study = '6c65289b-db2fcb71-7eaf73f4-8e12470c-a4d6d7cf'
10627 patient = '0946fcb6-cf12ab43-bad958c1-bf057ad5-0fc6f54c' 10631 patient = '0946fcb6-cf12ab43-bad958c1-bf057ad5-0fc6f54c'
10628 10632
10629 a = DoGet(_REMOTE, '/instances/%s?requested-tags=0008,0056' % instance) 10633 if IsOrthancVersionAbove(_REMOTE, 1, 12, 4): # the old syntax is still required for the upgrade/downgrade PG tests
10634 a = DoGet(_REMOTE, '/instances/%s?requested-tags=0008,0056' % instance)
10635 else:
10636 a = DoGet(_REMOTE, '/instances/%s?RequestedTags=0008,0056' % instance)
10637
10630 self.assertEqual(1, len(a['RequestedTags'])) 10638 self.assertEqual(1, len(a['RequestedTags']))
10631 self.assertEqual('ONLINE', a['RequestedTags']['InstanceAvailability']) 10639 self.assertEqual('ONLINE', a['RequestedTags']['InstanceAvailability'])
10632 10640
10633 a = DoGet(_REMOTE, '/series/%s?requested-tags=0020,1209' % series) 10641 if IsOrthancVersionAbove(_REMOTE, 1, 12, 4):
10642 a = DoGet(_REMOTE, '/series/%s?requested-tags=0020,1209' % series)
10643 else:
10644 a = DoGet(_REMOTE, '/series/%s?RequestedTags=0020,1209' % series)
10634 self.assertEqual(1, len(a['RequestedTags'])) 10645 self.assertEqual(1, len(a['RequestedTags']))
10635 self.assertEqual(2, int(a['RequestedTags']['NumberOfSeriesRelatedInstances'])) 10646 self.assertEqual(2, int(a['RequestedTags']['NumberOfSeriesRelatedInstances']))
10636 10647
10637 a = DoGet(_REMOTE, '/studies/%s?requested-tags=0008,0061;0008,0062;0020,1206;0020,1208' % study) 10648 if IsOrthancVersionAbove(_REMOTE, 1, 12, 4):
10649 a = DoGet(_REMOTE, '/studies/%s?requested-tags=0008,0061;0008,0062;0020,1206;0020,1208' % study)
10650 else:
10651 a = DoGet(_REMOTE, '/studies/%s?RequestedTags=0008,0061;0008,0062;0020,1206;0020,1208' % study)
10652
10638 self.assertEqual(4, len(a['RequestedTags'])) 10653 self.assertEqual(4, len(a['RequestedTags']))
10639 self.assertEqual('CT\\PT', a['RequestedTags']['ModalitiesInStudy']) 10654 self.assertEqual('CT\\PT', a['RequestedTags']['ModalitiesInStudy'])
10640 self.assertEqual('1.2.840.10008.5.1.4.1.1.128\\1.2.840.10008.5.1.4.1.1.2', a['RequestedTags']['SOPClassesInStudy']) 10655 self.assertEqual('1.2.840.10008.5.1.4.1.1.128\\1.2.840.10008.5.1.4.1.1.2', a['RequestedTags']['SOPClassesInStudy'])
10641 self.assertEqual(2, int(a['RequestedTags']['NumberOfStudyRelatedSeries'])) 10656 self.assertEqual(2, int(a['RequestedTags']['NumberOfStudyRelatedSeries']))
10642 self.assertEqual(4, int(a['RequestedTags']['NumberOfStudyRelatedInstances'])) 10657 self.assertEqual(4, int(a['RequestedTags']['NumberOfStudyRelatedInstances']))
10643 10658
10644 a = DoGet(_REMOTE, '/patients/%s?requested-tags=0020,1200;0020,1202;0020,1204' % patient) 10659 if IsOrthancVersionAbove(_REMOTE, 1, 12, 4):
10660 a = DoGet(_REMOTE, '/patients/%s?requested-tags=0020,1200;0020,1202;0020,1204' % patient)
10661 else:
10662 a = DoGet(_REMOTE, '/studies/%s?RequestedTags=0020,1200;0020,1202;0020,1204' % study)
10645 self.assertEqual(3, len(a['RequestedTags'])) 10663 self.assertEqual(3, len(a['RequestedTags']))
10646 self.assertEqual(1, int(a['RequestedTags']['NumberOfPatientRelatedStudies'])) 10664 self.assertEqual(1, int(a['RequestedTags']['NumberOfPatientRelatedStudies']))
10647 self.assertEqual(2, int(a['RequestedTags']['NumberOfPatientRelatedSeries'])) 10665 self.assertEqual(2, int(a['RequestedTags']['NumberOfPatientRelatedSeries']))
10648 self.assertEqual(4, int(a['RequestedTags']['NumberOfPatientRelatedInstances'])) 10666 self.assertEqual(4, int(a['RequestedTags']['NumberOfPatientRelatedInstances']))
10649 10667