# HG changeset patch # User Alain Mazy # Date 1657286847 -7200 # Node ID e904b2282b0ebd78033e33f7b773e6c1e547915e # Parent 18f2d55182fdd3591a34d7a808ecbade00fa406a Added support for RGBA64 images in tools/create-dicom and /preview (Contribution from James Manners - Pliny) diff -r 18f2d55182fd -r e904b2282b0e Database/Png16RBGATest.png Binary file Database/Png16RBGATest.png has changed diff -r 18f2d55182fd -r e904b2282b0e Database/README.txt --- a/Database/README.txt Wed Jun 29 11:23:33 2022 +0200 +++ b/Database/README.txt Fri Jul 08 15:27:27 2022 +0200 @@ -93,6 +93,7 @@ - Multiframe.dcm : From GDCM, "images_of_interest/PHILIPS_Integris_H-8-MONO2-Multiframe.dcm" - Phenix/* : From OsiriX, "PHENIX" (sample of uncompressed data). - PilatesArgenturGEUltrasoundOsiriX.dcm: From https://groups.google.com/d/msg/orthanc-users/m3zQLyl_jNc/TUrR462UKSMJ +- PNG16RGBATest.png : From http://www.schaik.com/pngsuite/#basic, License http://www.schaik.com/pngsuite/PngSuite.LICENSE - PrivateMDNTags.dcm : From University Hospital of Liege - PrivateTags.dcm : From GDCM, "images_of_interest/494APG9K.dcm" - SignedCT.dcm : From Sébastien Jodogne. diff -r 18f2d55182fd -r e904b2282b0e Tests/Tests.py --- a/Tests/Tests.py Wed Jun 29 11:23:33 2022 +0200 +++ b/Tests/Tests.py Fri Jul 08 15:27:27 2022 +0200 @@ -8821,3 +8821,28 @@ headers = { 'Accept' : 'application/dicom+json' }) self.assertEqual(b['0020000D']['Value'][0], '1.2.276.0.7230010.3.1.2.2358427580.3460.1646695830.793') self.assertEqual(b['0020000E']['Value'][0], '1.2.276.0.7230010.3.1.3.2358427580.3460.1646695830.794') + + def test_create_png16RBGA(self): + with open(GetDatabasePath('Png16RBGATest.png'), 'rb') as f: + png = f.read() + + i = DoPost(_REMOTE, '/tools/create-dicom', + json.dumps({ + 'PatientName' : 'Jodogne', + 'Modality' : 'CT', + 'SOPClassUID' : '1.2.840.10008.5.1.4.1.1.1', + 'PixelData' : 'data:image/png;base64,' + base64.b64encode(png) + })) + + self.assertEqual('Jodogne', DoGet(_REMOTE, '/instances/%s/content/PatientName' % i['ID']).strip()) + self.assertEqual('CT', DoGet(_REMOTE, '/instances/%s/content/Modality' % i['ID']).strip()) + + png = GetImage(_REMOTE, '/instances/%s/preview' % i['ID']) + self.assertEqual((32, 32), png.size) + + png = GetImage(_REMOTE, '/instances/%s/rendered' % i['ID']) + self.assertEqual((32, 32), png.size) + + j = DoGet(_REMOTE, i['Path']) + self.assertEqual('Instance', j['Type']) + self.assertEqual(j['ID'], i['ID'])