comparison Tests/Tests.py @ 646:0daf680aa3cc

added test_requested_tags
author Sebastien Jodogne <s.jodogne@gmail.com>
date Thu, 09 May 2024 11:30:18 +0200
parents 9f8276ac1cdd
children 5ee7be1be006
comparison
equal deleted inserted replaced
643:aa11ab24ff3c 646:0daf680aa3cc
9463 9463
9464 if IsOrthancVersionAbove(_REMOTE, 1, 12, 1): 9464 if IsOrthancVersionAbove(_REMOTE, 1, 12, 1):
9465 a = UploadInstance(_REMOTE, '2023-04-21-RLEPlanarConfigurationYBR_FULL.dcm') ['ID'] 9465 a = UploadInstance(_REMOTE, '2023-04-21-RLEPlanarConfigurationYBR_FULL.dcm') ['ID']
9466 uri = '/instances/%s/preview' % a 9466 uri = '/instances/%s/preview' % a
9467 im = GetImage(_REMOTE, uri) 9467 im = GetImage(_REMOTE, uri)
9468 pprint.pprint(im)
9469 self.assertEqual('RGB', im.mode) 9468 self.assertEqual('RGB', im.mode)
9470 self.assertEqual(1260, im.size[0]) 9469 self.assertEqual(1260, im.size[0])
9471 self.assertEqual(910, im.size[1]) 9470 self.assertEqual(910, im.size[1])
9472 self.assertEqual('07a3ea7ea08d54362f744cc5945e8743', ComputeMD5(DoGet(_REMOTE, uri))) 9471 self.assertEqual('07a3ea7ea08d54362f744cc5945e8743', ComputeMD5(DoGet(_REMOTE, uri)))
9473 9472
10147 10146
10148 i = CallFindScu([ '-k', '0008,0052=PATIENT', '-k', '0008,0000=22' ]) # GE like C-Find that includes group-length 10147 i = CallFindScu([ '-k', '0008,0052=PATIENT', '-k', '0008,0000=22' ]) # GE like C-Find that includes group-length
10149 # print(i) 10148 # print(i)
10150 s = re.findall('\(0008,0000\).*?\[(.*?)\]', i) 10149 s = re.findall('\(0008,0000\).*?\[(.*?)\]', i)
10151 self.assertEqual(0, len(s)) 10150 self.assertEqual(0, len(s))
10151
10152 def test_requested_tags(self):
10153 u = UploadInstance(_REMOTE, 'DummyCT.dcm')
10154
10155 def CheckPatientContent(patient):
10156 self.assertEqual(u['ParentPatient'], patient['ID'])
10157 self.assertEqual('Patient', patient['Type'])
10158 self.assertFalse(patient['IsStable'])
10159 self.assertEqual(0, len(patient['Labels']))
10160 self.assertTrue('LastUpdate' in patient)
10161 self.assertEqual(2, len(patient['MainDicomTags']))
10162 self.assertEqual('ozp00SjY2xG', patient['MainDicomTags']['PatientID'])
10163 self.assertEqual('KNIX', patient['MainDicomTags']['PatientName'])
10164 self.assertEqual(1, len(patient['Studies']))
10165 self.assertEqual(u['ParentStudy'], patient['Studies'][0])
10166
10167 def CheckStudyContent(study):
10168 self.assertEqual(u['ParentStudy'], study['ID'])
10169 self.assertEqual(u['ParentPatient'], study['ParentPatient'])
10170 self.assertEqual('Study', study['Type'])
10171 self.assertFalse(study['IsStable'])
10172 self.assertEqual(0, len(study['Labels']))
10173 self.assertTrue('LastUpdate' in study)
10174 self.assertEqual(7, len(study['MainDicomTags']))
10175 self.assertEqual('0ECJ52puWpVIjTuhnBA0um', study['MainDicomTags']['InstitutionName'])
10176 self.assertEqual('1', study['MainDicomTags']['ReferringPhysicianName'])
10177 self.assertEqual('20070101', study['MainDicomTags']['StudyDate'])
10178 self.assertEqual('Knee (R)', study['MainDicomTags']['StudyDescription'])
10179 self.assertEqual('1', study['MainDicomTags']['StudyID'])
10180 self.assertEqual('1.2.840.113619.2.176.2025.1499492.7391.1171285944.390', study['MainDicomTags']['StudyInstanceUID'])
10181 self.assertEqual('120000.000000', study['MainDicomTags']['StudyTime'])
10182 self.assertEqual(2, len(study['PatientMainDicomTags']))
10183 self.assertEqual('ozp00SjY2xG', study['PatientMainDicomTags']['PatientID'])
10184 self.assertEqual('KNIX', study['PatientMainDicomTags']['PatientName'])
10185 self.assertEqual(1, len(study['Series']))
10186 self.assertEqual(u['ParentSeries'], study['Series'][0])
10187
10188 def CheckSeriesContent(series):
10189 self.assertEqual(None, series['ExpectedNumberOfInstances'])
10190 self.assertEqual('Unknown', series['Status'])
10191 self.assertEqual(u['ParentSeries'], series['ID'])
10192 self.assertEqual(u['ParentStudy'], series['ParentStudy'])
10193 self.assertEqual('Series', series['Type'])
10194 self.assertFalse(series['IsStable'])
10195 self.assertEqual(0, len(series['Labels']))
10196 self.assertTrue('LastUpdate' in series)
10197 self.assertEqual(13, len(series['MainDicomTags']))
10198 self.assertEqual('0', series['MainDicomTags']['CardiacNumberOfImages'])
10199 self.assertEqual('0.999841\\0.000366209\\0.0178227\\-0.000427244\\0.999995\\0.00326545', series['MainDicomTags']['ImageOrientationPatient'])
10200 self.assertEqual('24', series['MainDicomTags']['ImagesInAcquisition'])
10201 self.assertEqual('GE MEDICAL SYSTEMS', series['MainDicomTags']['Manufacturer'])
10202 self.assertEqual('MR', series['MainDicomTags']['Modality'])
10203 self.assertEqual('ca', series['MainDicomTags']['OperatorsName'])
10204 self.assertEqual('324-58-2995/6', series['MainDicomTags']['ProtocolName'])
10205 self.assertEqual('20070101', series['MainDicomTags']['SeriesDate'])
10206 self.assertEqual('AX. FSE PD', series['MainDicomTags']['SeriesDescription'])
10207 self.assertEqual('1.2.840.113619.2.176.2025.1499492.7391.1171285944.394', series['MainDicomTags']['SeriesInstanceUID'])
10208 self.assertEqual('5', series['MainDicomTags']['SeriesNumber'])
10209 self.assertEqual('120000.000000', series['MainDicomTags']['SeriesTime'])
10210 self.assertEqual('TWINOW', series['MainDicomTags']['StationName'])
10211 self.assertEqual(1, len(series['Instances']))
10212 self.assertEqual(u['ID'], series['Instances'][0])
10213
10214 def CheckInstanceContent(instance):
10215 self.assertEqual(2472, instance['FileSize'])
10216 self.assertTrue('FileUuid' in instance)
10217 self.assertEqual(u['ID'], instance['ID'])
10218 self.assertEqual(u['ParentSeries'], instance['ParentSeries'])
10219 self.assertEqual('Instance', instance['Type'])
10220 self.assertEqual(1, instance['IndexInSeries'])
10221 self.assertEqual(0, len(instance['Labels']))
10222 self.assertEqual(7, len(instance['MainDicomTags']))
10223 self.assertEqual('1', instance['MainDicomTags']['AcquisitionNumber'])
10224 self.assertEqual('0.999841\\0.000366209\\0.0178227\\-0.000427244\\0.999995\\0.00326545', instance['MainDicomTags']['ImageOrientationPatient'])
10225 self.assertEqual('-149.033\\-118.499\\-61.0464', instance['MainDicomTags']['ImagePositionPatient'])
10226 self.assertEqual('20070101', instance['MainDicomTags']['InstanceCreationDate'])
10227 self.assertEqual('120000.000000', instance['MainDicomTags']['InstanceCreationTime'])
10228 self.assertEqual('1', instance['MainDicomTags']['InstanceNumber'])
10229 self.assertEqual('1.2.840.113619.2.176.2025.1499492.7040.1171286242.109', instance['MainDicomTags']['SOPInstanceUID'])
10230
10231 def CheckRequestedTags(resource):
10232 self.assertEqual(6, len(resource['RequestedTags']))
10233 self.assertEqual('ozp00SjY2xG', resource['RequestedTags']['PatientID'])
10234 self.assertEqual('Knee (R)', resource['RequestedTags']['StudyDescription'])
10235 self.assertEqual('AX. FSE PD', resource['RequestedTags']['SeriesDescription'])
10236 self.assertEqual('1.2.840.10008.5.1.4.1.1.4', resource['RequestedTags']['SOPClassUID'])
10237 self.assertEqual('2800', resource['RequestedTags']['RepetitionTime'])
10238 self.assertEqual(3, len(resource['RequestedTags']['DerivationCodeSequence'][0]))
10239 self.assertEqual('121327', resource['RequestedTags']['DerivationCodeSequence'][0]['CodeValue'])
10240
10241 requestedTags = 'PatientID;StudyDescription;SeriesDescription;SOPClassUID;RepetitionTime;DerivationCodeSequence'
10242
10243 a = DoGet(_REMOTE, '/patients?expand')
10244 self.assertEqual(1, len(a))
10245 self.assertEqual(7, len(a[0]))
10246 CheckPatientContent(a[0])
10247 self.assertFalse('RequestedTags' in a[0])
10248
10249 a = DoGet(_REMOTE, '/patients?expand&requestedTags=%s' % requestedTags)
10250 self.assertEqual(1, len(a))
10251 self.assertEqual(8, len(a[0]))
10252 CheckPatientContent(a[0])
10253 CheckRequestedTags(a[0])
10254
10255 a = DoGet(_REMOTE, '/studies?expand')
10256 self.assertEqual(1, len(a))
10257 self.assertEqual(9, len(a[0]))
10258 CheckStudyContent(a[0])
10259 self.assertFalse('RequestedTags' in a[0])
10260
10261 a = DoGet(_REMOTE, '/studies?expand&requestedTags=%s' % requestedTags)
10262 self.assertEqual(1, len(a))
10263 self.assertEqual(10, len(a[0]))
10264 CheckStudyContent(a[0])
10265 CheckRequestedTags(a[0])
10266
10267 a = DoGet(_REMOTE, '/series?expand')
10268 self.assertEqual(1, len(a))
10269 self.assertEqual(10, len(a[0]))
10270 CheckSeriesContent(a[0])
10271 self.assertFalse('RequestedTags' in a[0])
10272
10273 a = DoGet(_REMOTE, '/series?expand&requestedTags=%s' % requestedTags)
10274 self.assertEqual(1, len(a))
10275 self.assertEqual(11, len(a[0]))
10276 CheckSeriesContent(a[0])
10277 CheckRequestedTags(a[0])
10278
10279 a = DoGet(_REMOTE, '/instances?expand')
10280 self.assertEqual(1, len(a))
10281 self.assertEqual(8, len(a[0]))
10282 CheckInstanceContent(a[0])
10283 self.assertFalse('RequestedTags' in a[0])
10284
10285 a = DoGet(_REMOTE, '/instances?expand&requestedTags=%s' % requestedTags)
10286 self.assertEqual(1, len(a))
10287 self.assertEqual(9, len(a[0]))
10288 CheckInstanceContent(a[0])
10289 CheckRequestedTags(a[0])