Mercurial > hg > orthanc-tests
comparison Tests/Tests.py @ 36:42ad759ef40a
test PDF embedding
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Thu, 20 Aug 2015 17:05:58 +0200 |
parents | 1047d7bc5210 |
children | 6f86a5168e68 |
comparison
equal
deleted
inserted
replaced
35:f2dcf96fec51 | 36:42ad759ef40a |
---|---|
20 # along with this program. If not, see <http://www.gnu.org/licenses/>. | 20 # along with this program. If not, see <http://www.gnu.org/licenses/>. |
21 | 21 |
22 | 22 |
23 import tempfile | 23 import tempfile |
24 import unittest | 24 import unittest |
25 import base64 | |
25 | 26 |
26 from PIL import ImageChops | 27 from PIL import ImageChops |
27 from Toolbox import * | 28 from Toolbox import * |
28 from xml.dom import minidom | 29 from xml.dom import minidom |
29 | 30 |
2096 s[i] = None | 2097 s[i] = None |
2097 | 2098 |
2098 self.assertEqual(16, len(s)) | 2099 self.assertEqual(16, len(s)) |
2099 for instance in DoGet(_REMOTE, '/instances'): | 2100 for instance in DoGet(_REMOTE, '/instances'): |
2100 self.assertTrue(instance in s) | 2101 self.assertTrue(instance in s) |
2102 | |
2103 | |
2104 def test_create_pdf(self): | |
2105 # Upload 4 instances | |
2106 brainixInstance = UploadInstance(_REMOTE, 'Brainix/Flair/IM-0001-0001.dcm')['ID'] | |
2107 UploadInstance(_REMOTE, 'Brainix/Epi/IM-0001-0001.dcm') | |
2108 UploadInstance(_REMOTE, 'Knee/T1/IM-0001-0001.dcm') | |
2109 UploadInstance(_REMOTE, 'Knee/T2/IM-0001-0001.dcm') | |
2110 | |
2111 brainixPatient = '16738bc3-e47ed42a-43ce044c-a3414a45-cb069bd0' | |
2112 brainixStudy = '27f7126f-4f66fb14-03f4081b-f9341db2-53925988' | |
2113 brainixEpi = '2ac1316d-3e432022-62eabff2-c59f5475-9b1ac3f8' | |
2114 | |
2115 with open(GetDatabasePath('HelloWorld.pdf'), 'rb') as f: | |
2116 pdf = f.read() | |
2117 | |
2118 i = DoPost(_REMOTE, '/tools/create-dicom', | |
2119 json.dumps({ | |
2120 'Tags' : { | |
2121 'PatientName' : 'Jodogne', | |
2122 'Modality' : 'CT', | |
2123 }, | |
2124 'Content' : 'data:application/pdf;base64,' + base64.b64encode(pdf) | |
2125 })) | |
2126 | |
2127 self.assertEqual('Jodogne', DoGet(_REMOTE, '/instances/%s/content/PatientName' % i['ID']).strip()) | |
2128 self.assertEqual('OT', DoGet(_REMOTE, '/instances/%s/content/Modality' % i['ID']).strip()) | |
2129 | |
2130 b = DoGet(_REMOTE, '/instances/%s/content/0042-0011' % i['ID']) | |
2131 self.assertEqual(len(b), len(pdf) + 1) | |
2132 self.assertEqual(ComputeMD5(b), ComputeMD5(pdf + '\0')) | |
2133 | |
2134 self.assertRaises(Exception, lambda: DoPost(_REMOTE, '/tools/create-dicom', | |
2135 json.dumps({ | |
2136 'Parent' : brainixPatient, | |
2137 'Tags' : { | |
2138 'PatientName' : 'Jodogne', | |
2139 } | |
2140 }))) | |
2141 | |
2142 i = DoPost(_REMOTE, '/tools/create-dicom', | |
2143 json.dumps({ | |
2144 'Parent' : brainixPatient, | |
2145 'Tags' : { 'StudyDescription' : 'PDF^Patient' }, | |
2146 'Content' : 'data:application/pdf;base64,' + base64.b64encode(pdf) | |
2147 })) | |
2148 | |
2149 self.assertEqual(brainixPatient, DoGet(_REMOTE, '/instances/%s/patient' % i['ID'])['ID']) | |
2150 | |
2151 i = DoPost(_REMOTE, '/tools/create-dicom', | |
2152 json.dumps({ | |
2153 'Parent' : brainixStudy, | |
2154 'Tags' : { 'SeriesDescription' : 'PDF^Study' }, | |
2155 'Content' : 'data:application/pdf;base64,' + base64.b64encode(pdf) | |
2156 })) | |
2157 | |
2158 self.assertEqual(brainixStudy, DoGet(_REMOTE, '/instances/%s/study' % i['ID'])['ID']) | |
2159 | |
2160 i = DoPost(_REMOTE, '/tools/create-dicom', | |
2161 json.dumps({ | |
2162 'Parent' : brainixEpi, | |
2163 'Tags' : { }, | |
2164 'Content' : 'data:application/pdf;base64,' + base64.b64encode(pdf) | |
2165 })) | |
2166 | |
2167 self.assertEqual(brainixEpi, DoGet(_REMOTE, '/instances/%s/series' % i['ID'])['ID']) | |
2168 | |
2169 b = DoGet(_REMOTE, '/instances/%s/pdf' % i['ID']) | |
2170 self.assertEqual(len(b), len(pdf)) | |
2171 self.assertEqual(ComputeMD5(b), ComputeMD5(pdf)) | |
2172 | |
2173 self.assertRaises(Exception, lambda: DoGet(_REMOTE, '/instances/%s/pdf' % brainixInstance)) |