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))