comparison Tests/Tests.py @ 189:11719f19bd62 Orthanc-1.5.0

test_dicom_disk_size
author Sebastien Jodogne <s.jodogne@gmail.com>
date Mon, 10 Dec 2018 10:33:01 +0100
parents 7d585263808b
children bc8bc83465dc
comparison
equal deleted inserted replaced
188:7d585263808b 189:11719f19bd62
22 22
23 23
24 import tempfile 24 import tempfile
25 import unittest 25 import unittest
26 import base64 26 import base64
27 import copy
27 28
28 from PIL import ImageChops 29 from PIL import ImageChops
29 from Toolbox import * 30 from Toolbox import *
30 from xml.dom import minidom 31 from xml.dom import minidom
31 32
4017 self.assertTrue('DICOMDIR' in z.namelist()) 4018 self.assertTrue('DICOMDIR' in z.namelist())
4018 4019
4019 4020
4020 def test_queries_hierarchy(self): 4021 def test_queries_hierarchy(self):
4021 UploadInstance(_REMOTE, 'Knee/T1/IM-0001-0001.dcm') 4022 UploadInstance(_REMOTE, 'Knee/T1/IM-0001-0001.dcm')
4023 UploadInstance(_REMOTE, 'Brainix/Flair/IM-0001-0001.dcm')
4022 4024
4023 tags = { 4025 tags = {
4024 'NumberOfPatientRelatedInstances' : '', 4026 'NumberOfPatientRelatedInstances' : '',
4025 'NumberOfPatientRelatedSeries' : '', 4027 'NumberOfPatientRelatedSeries' : '',
4026 'NumberOfPatientRelatedStudies' : '', 4028 'NumberOfPatientRelatedStudies' : '',
4027 'NumberOfStudyRelatedInstances' : '', 4029 'NumberOfStudyRelatedInstances' : '',
4028 'NumberOfStudyRelatedSeries' : '', 4030 'NumberOfStudyRelatedSeries' : '',
4029 'NumberOfSeriesRelatedInstances' : '', 4031 'NumberOfSeriesRelatedInstances' : '',
4030 } 4032 }
4031 4033
4034 tags2 = copy.copy(tags)
4035 tags2['PatientID'] = '887' # Only consider the "Knee" patient
4036
4032 patient = DoPost(_REMOTE, '/modalities/self/query', { 4037 patient = DoPost(_REMOTE, '/modalities/self/query', {
4033 'Level' : 'Patient', 4038 'Level' : 'Patient',
4034 'Query' : tags 4039 'Query' : tags2
4035 }) ['ID'] 4040 }) ['ID']
4036 4041
4037 study = DoPost(_REMOTE, '/modalities/self/query', { 4042 study = DoPost(_REMOTE, '/modalities/self/query', {
4038 'Level' : 'Study', 4043 'Level' : 'Study',
4039 'Query' : tags 4044 'Query' : tags2
4040 }) ['ID'] 4045 }) ['ID']
4041 4046
4042 series = DoPost(_REMOTE, '/modalities/self/query', { 4047 series = DoPost(_REMOTE, '/modalities/self/query', {
4043 'Level' : 'Series', 4048 'Level' : 'Series',
4044 'Query' : tags 4049 'Query' : tags2
4045 }) ['ID'] 4050 }) ['ID']
4046 4051
4047 instance = DoPost(_REMOTE, '/modalities/self/query', { 4052 instance = DoPost(_REMOTE, '/modalities/self/query', {
4048 'Level' : 'Instance', 4053 'Level' : 'Instance',
4049 'Query' : tags 4054 'Query' : tags2
4050 }) ['ID'] 4055 }) ['ID']
4051 4056
4052 p = DoGet(_REMOTE, '/queries/%s/answers?expand&simplify' % patient) 4057 p = DoGet(_REMOTE, '/queries/%s/answers?expand&simplify' % patient)
4053 self.assertEqual(1, len(p)) 4058 self.assertEqual(1, len(p))
4054 self.assertEqual('887', p[0]['PatientID']) 4059 self.assertEqual('887', p[0]['PatientID'])
4085 4090
4086 j = DoPost(_REMOTE, '/queries/%s/answers/0/query-studies' % patient, 4091 j = DoPost(_REMOTE, '/queries/%s/answers/0/query-studies' % patient,
4087 { 'Query' : tags }) ['ID'] 4092 { 'Query' : tags }) ['ID']
4088 self.assertEqual(DoGet(_REMOTE, '/queries/%s/answers?expand&simplify' % j), 4093 self.assertEqual(DoGet(_REMOTE, '/queries/%s/answers?expand&simplify' % j),
4089 DoGet(_REMOTE, '/queries/%s/answers?expand&simplify' % study)) 4094 DoGet(_REMOTE, '/queries/%s/answers?expand&simplify' % study))
4090 4095
4091 j = DoPost(_REMOTE, '/queries/%s/answers/0/query-series' % patient, 4096 j = DoPost(_REMOTE, '/queries/%s/answers/0/query-series' % patient,
4092 { 'Query' : tags }) ['ID'] 4097 { 'Query' : tags }) ['ID']
4093 self.assertEqual(DoGet(_REMOTE, '/queries/%s/answers?expand&simplify' % j), 4098 self.assertEqual(DoGet(_REMOTE, '/queries/%s/answers?expand&simplify' % j),
4094 DoGet(_REMOTE, '/queries/%s/answers?expand&simplify' % series)) 4099 DoGet(_REMOTE, '/queries/%s/answers?expand&simplify' % series))
4095 4100
4112 { 'Query' : tags }) ['ID'] 4117 { 'Query' : tags }) ['ID']
4113 self.assertEqual(DoGet(_REMOTE, '/queries/%s/answers?expand&simplify' % j), 4118 self.assertEqual(DoGet(_REMOTE, '/queries/%s/answers?expand&simplify' % j),
4114 DoGet(_REMOTE, '/queries/%s/answers?expand&simplify' % instance)) 4119 DoGet(_REMOTE, '/queries/%s/answers?expand&simplify' % instance))
4115 4120
4116 4121
4122 def test_dicom_disk_size(self):
4123 dicomSize = 0
4124
4125 UploadInstance(_REMOTE, 'Brainix/Flair/IM-0001-0001.dcm')
4126
4127 for i in range(2):
4128 p = 'Knee/T%d/IM-0001-0001.dcm' % (i + 1)
4129 UploadInstance(_REMOTE, p)
4130 dicomSize += os.path.getsize(GetDatabasePath(p))
4131
4132 s = DoGet(_REMOTE, '/patients/ca29faea-b6a0e17f-067743a1-8b778011-a48b2a17/statistics') # Consider Knee patient
4133 self.assertEqual(2, s['CountInstances'])
4134 self.assertEqual(2, s['CountSeries'])
4135 self.assertEqual(1, s['CountStudies'])
4136 self.assertEqual(dicomSize, int(s['DicomDiskSize']))
4137 self.assertEqual(dicomSize, int(s['DicomUncompressedSize']))
4138 self.assertLess(dicomSize, int(s['UncompressedSize']))
4139 self.assertEqual(s['UncompressedSize'], s['DiskSize'])
4140