comparison Tests/Tests.py @ 565:855c3720902a Orthanc-1.12.1

added test_encapsulate_stl
author Sebastien Jodogne <s.jodogne@gmail.com>
date Sun, 02 Jul 2023 16:13:18 +0200
parents 1cdb14a679f2
children 31ab8bb2ac5a
comparison
equal deleted inserted replaced
564:42a6d327f59c 565:855c3720902a
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' },
9818 Check('TransferSyntaxes/1.2.840.10008.1.2.1.dcm', True, False, 'OB') # Explicit Little Endian, 8bpp 9826 Check('TransferSyntaxes/1.2.840.10008.1.2.1.dcm', True, False, 'OB') # Explicit Little Endian, 8bpp
9819 Check('Phenix/IM-0001-0001.dcm', True, False, 'OW') # Explicit Little Endian, 16bpp 9827 Check('Phenix/IM-0001-0001.dcm', True, False, 'OW') # Explicit Little Endian, 16bpp
9820 Check('TransferSyntaxes/1.2.840.10008.1.2.2.dcm', True, False, 'OB') # Explicit Big Endian, 8bpp 9828 Check('TransferSyntaxes/1.2.840.10008.1.2.2.dcm', True, False, 'OB') # Explicit Big Endian, 8bpp
9821 Check('TransferSyntaxes/1.2.840.10008.1.2.4.50.dcm', True, False, 'OB') # JPEG 9829 Check('TransferSyntaxes/1.2.840.10008.1.2.4.50.dcm', True, False, 'OB') # JPEG
9822 Check('Knee/T1/IM-0001-0001.dcm', True, False, 'OB') # JPEG2k 9830 Check('Knee/T1/IM-0001-0001.dcm', True, False, 'OB') # JPEG2k
9831
9832 def test_encapsulate_stl(self):
9833 if IsOrthancVersionAbove(_REMOTE, 1, 12, 1):
9834 stl = b'Hello, world'
9835
9836 i = DoPost(_REMOTE, '/tools/create-dicom', json.dumps({
9837 'Content' : 'data:model/stl;base64,%s' % base64.b64encode(stl).decode(),
9838 'Force' : True,
9839 'Tags' : {
9840 'PatientName' : 'Jodogne'
9841 }
9842 })) ['ID']
9843
9844 tags = DoGet(_REMOTE, '/instances/%s/tags?simplify' % i)
9845 self.assertEqual('Jodogne', tags['PatientName'])
9846 self.assertEqual('M3D', tags['Modality'])
9847 self.assertEqual('model/stl', tags['MIMETypeOfEncapsulatedDocument'])
9848 self.assertEqual('1.2.840.10008.5.1.4.1.1.104.3', tags['SOPClassUID'])
9849
9850 i = DoPost(_REMOTE, '/tools/create-dicom', json.dumps({
9851 'Content' : 'data:model/mtl;base64,%s' % base64.b64encode(stl).decode(),
9852 'Tags' : {}
9853 })) ['ID']
9854
9855 tags = DoGet(_REMOTE, '/instances/%s/tags?simplify' % i)
9856 self.assertFalse('PatientName' in tags)
9857 self.assertEqual('M3D', tags['Modality'])
9858 self.assertEqual('model/mtl', tags['MIMETypeOfEncapsulatedDocument'])
9859 self.assertEqual('1.2.840.10008.5.1.4.1.1.104.5', tags['SOPClassUID'])
9860
9861 i = DoPost(_REMOTE, '/tools/create-dicom', json.dumps({
9862 'Content' : 'data:model/obj;base64,%s' % base64.b64encode(stl).decode(),
9863 'Tags' : {}
9864 })) ['ID']
9865
9866 tags = DoGet(_REMOTE, '/instances/%s/tags?simplify' % i)
9867 self.assertFalse('PatientName' in tags)
9868 self.assertEqual('M3D', tags['Modality'])
9869 self.assertEqual('model/obj', tags['MIMETypeOfEncapsulatedDocument'])
9870 self.assertEqual('1.2.840.10008.5.1.4.1.1.104.4', tags['SOPClassUID'])