comparison Tests/Tests.py @ 573:31ab8bb2ac5a

merge
author Alain Mazy <am@osimis.io>
date Thu, 20 Jul 2023 10:57:39 +0200
parents 3a5260cc6d55 855c3720902a
children 615201c822d8
comparison
equal deleted inserted replaced
572:3a5260cc6d55 573:31ab8bb2ac5a
2883 }, 2883 },
2884 'Content' : 'data:application/pdf;base64,' + base64.b64encode(pdf) 2884 'Content' : 'data:application/pdf;base64,' + base64.b64encode(pdf)
2885 })) 2885 }))
2886 2886
2887 self.assertEqual('Jodogne', DoGet(_REMOTE, '/instances/%s/content/PatientName' % i['ID']).strip()) 2887 self.assertEqual('Jodogne', DoGet(_REMOTE, '/instances/%s/content/PatientName' % i['ID']).strip())
2888 self.assertEqual('1.2.840.10008.5.1.4.1.1.104.1', DoGet(_REMOTE, '/instances/%s/content/SOPClassUID' % i['ID']).strip('\x00'))
2889 self.assertEqual('WSD', DoGet(_REMOTE, '/instances/%s/content/ConversionType' % i['ID']).strip())
2890 self.assertEqual('application/pdf', DoGet(_REMOTE, '/instances/%s/content/MIMETypeOfEncapsulatedDocument' % i['ID']).strip())
2891
2888 # In Orthanc <= 1.9.7, the "CT" would have been replaced by "OT" 2892 # In Orthanc <= 1.9.7, the "CT" would have been replaced by "OT"
2889 # https://groups.google.com/g/orthanc-users/c/eNSddNrQDtM/m/wc1HahimAAAJ 2893 # https://groups.google.com/g/orthanc-users/c/eNSddNrQDtM/m/wc1HahimAAAJ
2890 self.assertEqual('CT', DoGet(_REMOTE, '/instances/%s/content/Modality' % i['ID']).strip()) 2894 self.assertEqual('CT', DoGet(_REMOTE, '/instances/%s/content/Modality' % i['ID']).strip())
2891 2895
2892 b = DoGet(_REMOTE, '/instances/%s/content/0042-0011' % i['ID']) 2896 b = DoGet(_REMOTE, '/instances/%s/content/0042-0011' % i['ID'])
2907 'Tags' : { 'StudyDescription' : 'PDF^Patient' }, 2911 'Tags' : { 'StudyDescription' : 'PDF^Patient' },
2908 'Content' : 'data:application/pdf;base64,' + base64.b64encode(pdf) 2912 'Content' : 'data:application/pdf;base64,' + base64.b64encode(pdf)
2909 })) 2913 }))
2910 2914
2911 self.assertEqual(brainixPatient, DoGet(_REMOTE, '/instances/%s/patient' % i['ID'])['ID']) 2915 self.assertEqual(brainixPatient, DoGet(_REMOTE, '/instances/%s/patient' % i['ID'])['ID'])
2916 self.assertEqual('1.2.840.10008.5.1.4.1.1.104.1', DoGet(_REMOTE, '/instances/%s/content/SOPClassUID' % i['ID']).strip('\x00'))
2917 self.assertEqual('OT', DoGet(_REMOTE, '/instances/%s/content/Modality' % i['ID']).strip('\x00'))
2918 self.assertEqual('WSD', DoGet(_REMOTE, '/instances/%s/content/ConversionType' % i['ID']).strip())
2919 self.assertEqual('application/pdf', DoGet(_REMOTE, '/instances/%s/content/MIMETypeOfEncapsulatedDocument' % i['ID']).strip())
2912 2920
2913 i = DoPost(_REMOTE, '/tools/create-dicom', 2921 i = DoPost(_REMOTE, '/tools/create-dicom',
2914 json.dumps({ 2922 json.dumps({
2915 'Parent' : brainixStudy, 2923 'Parent' : brainixStudy,
2916 'Tags' : { 'SeriesDescription' : 'PDF^Study' }, 2924 'Tags' : { 'SeriesDescription' : 'PDF^Study' },
9836 Check('TransferSyntaxes/1.2.840.10008.1.2.1.dcm', True, False, 'OB') # Explicit Little Endian, 8bpp 9844 Check('TransferSyntaxes/1.2.840.10008.1.2.1.dcm', True, False, 'OB') # Explicit Little Endian, 8bpp
9837 Check('Phenix/IM-0001-0001.dcm', True, False, 'OW') # Explicit Little Endian, 16bpp 9845 Check('Phenix/IM-0001-0001.dcm', True, False, 'OW') # Explicit Little Endian, 16bpp
9838 Check('TransferSyntaxes/1.2.840.10008.1.2.2.dcm', True, False, 'OB') # Explicit Big Endian, 8bpp 9846 Check('TransferSyntaxes/1.2.840.10008.1.2.2.dcm', True, False, 'OB') # Explicit Big Endian, 8bpp
9839 Check('TransferSyntaxes/1.2.840.10008.1.2.4.50.dcm', True, False, 'OB') # JPEG 9847 Check('TransferSyntaxes/1.2.840.10008.1.2.4.50.dcm', True, False, 'OB') # JPEG
9840 Check('Knee/T1/IM-0001-0001.dcm', True, False, 'OB') # JPEG2k 9848 Check('Knee/T1/IM-0001-0001.dcm', True, False, 'OB') # JPEG2k
9849
9850 def test_encapsulate_stl(self):
9851 if IsOrthancVersionAbove(_REMOTE, 1, 12, 1):
9852 stl = b'Hello, world'
9853
9854 i = DoPost(_REMOTE, '/tools/create-dicom', json.dumps({
9855 'Content' : 'data:model/stl;base64,%s' % base64.b64encode(stl).decode(),
9856 'Force' : True,
9857 'Tags' : {
9858 'PatientName' : 'Jodogne'
9859 }
9860 })) ['ID']
9861
9862 tags = DoGet(_REMOTE, '/instances/%s/tags?simplify' % i)
9863 self.assertEqual('Jodogne', tags['PatientName'])
9864 self.assertEqual('M3D', tags['Modality'])
9865 self.assertEqual('model/stl', tags['MIMETypeOfEncapsulatedDocument'])
9866 self.assertEqual('1.2.840.10008.5.1.4.1.1.104.3', tags['SOPClassUID'])
9867
9868 i = DoPost(_REMOTE, '/tools/create-dicom', json.dumps({
9869 'Content' : 'data:model/mtl;base64,%s' % base64.b64encode(stl).decode(),
9870 'Tags' : {}
9871 })) ['ID']
9872
9873 tags = DoGet(_REMOTE, '/instances/%s/tags?simplify' % i)
9874 self.assertFalse('PatientName' in tags)
9875 self.assertEqual('M3D', tags['Modality'])
9876 self.assertEqual('model/mtl', tags['MIMETypeOfEncapsulatedDocument'])
9877 self.assertEqual('1.2.840.10008.5.1.4.1.1.104.5', tags['SOPClassUID'])
9878
9879 i = DoPost(_REMOTE, '/tools/create-dicom', json.dumps({
9880 'Content' : 'data:model/obj;base64,%s' % base64.b64encode(stl).decode(),
9881 'Tags' : {}
9882 })) ['ID']
9883
9884 tags = DoGet(_REMOTE, '/instances/%s/tags?simplify' % i)
9885 self.assertFalse('PatientName' in tags)
9886 self.assertEqual('M3D', tags['Modality'])
9887 self.assertEqual('model/obj', tags['MIMETypeOfEncapsulatedDocument'])
9888 self.assertEqual('1.2.840.10008.5.1.4.1.1.104.4', tags['SOPClassUID'])