comparison Tests/Tests.py @ 471:1a4eb582cf03

skip tests for next version
author Alain Mazy <am@osimis.io>
date Tue, 26 Apr 2022 16:33:57 +0200
parents c19d33c5defe
children d9ceb0fd5995
comparison
equal deleted inserted replaced
470:1f6c9debddf6 471:1a4eb582cf03
204 def test_system(self): 204 def test_system(self):
205 self.assertTrue('Version' in DoGet(_REMOTE, '/system')) 205 self.assertTrue('Version' in DoGet(_REMOTE, '/system'))
206 self.assertEqual('0', DoGet(_REMOTE, '/statistics')['TotalDiskSize']) 206 self.assertEqual('0', DoGet(_REMOTE, '/statistics')['TotalDiskSize'])
207 self.assertEqual('0', DoGet(_REMOTE, '/statistics')['TotalUncompressedSize']) 207 self.assertEqual('0', DoGet(_REMOTE, '/statistics')['TotalUncompressedSize'])
208 208
209 if IsOrthancVersionAbove(_REMOTE, 1, 11, 0):
210 system = DoGet(_REMOTE, '/system')
211 self.assertIn("MainDicomTags", system)
212 self.assertIn("Patient", system["MainDicomTags"])
213 self.assertIn("Studies", system["MainDicomTags"])
214 self.assertIn("Series", system["MainDicomTags"])
215 self.assertIn("Instance", system["MainDicomTags"])
216
209 systemInfo = DoGet(_REMOTE, '/system') 217 systemInfo = DoGet(_REMOTE, '/system')
210 if systemInfo["Version"] == "mainline": 218 if systemInfo["Version"] == "mainline":
211 print("Skipping version checks since you're currently in mainline") 219 print("Skipping version checks since you're currently in mainline")
212 return 220 return
213 221
214 self.assertTrue(IsOrthancVersionAbove(_LOCAL, 0, 8, 6)) 222 self.assertTrue(IsOrthancVersionAbove(_LOCAL, 0, 8, 6))
215 self.assertFalse(IsOrthancVersionAbove(_LOCAL, 0, 8, 7)) 223 self.assertFalse(IsOrthancVersionAbove(_LOCAL, 0, 8, 7))
216 self.assertTrue(IsOrthancVersionAbove(_LOCAL, 0, 7, 6)) 224 self.assertTrue(IsOrthancVersionAbove(_LOCAL, 0, 7, 6))
217 self.assertFalse(IsOrthancVersionAbove(_LOCAL, 0, 9, 6)) 225 self.assertFalse(IsOrthancVersionAbove(_LOCAL, 0, 9, 6))
218 self.assertFalse(IsOrthancVersionAbove(_LOCAL, 1, 8, 6)) 226 self.assertFalse(IsOrthancVersionAbove(_LOCAL, 1, 8, 6))
219
220 system = DoGet(_REMOTE, '/system')
221 self.assertIn("MainDicomTags", system)
222 self.assertIn("Patient", system["MainDicomTags"])
223 self.assertIn("Studies", system["MainDicomTags"])
224 self.assertIn("Series", system["MainDicomTags"])
225 self.assertIn("Instance", system["MainDicomTags"])
226 227
227 228
228 def test_upload(self): 229 def test_upload(self):
229 self.assertEqual('0', DoGet(_REMOTE, '/statistics')['TotalDiskSize']) 230 self.assertEqual('0', DoGet(_REMOTE, '/statistics')['TotalDiskSize'])
230 self.assertEqual('0', DoGet(_REMOTE, '/statistics')['TotalUncompressedSize']) 231 self.assertEqual('0', DoGet(_REMOTE, '/statistics')['TotalUncompressedSize'])
8484 'Query' : { 'PatientName' : 'MyName2*' }}) 8485 'Query' : { 'PatientName' : 'MyName2*' }})
8485 self.assertEqual(1, len(a)) 8486 self.assertEqual(1, len(a))
8486 8487
8487 8488
8488 def test_rest_find_requested_tags(self): 8489 def test_rest_find_requested_tags(self):
8489 # Upload instances 8490 if IsOrthancVersionAbove(_REMOTE, 1, 11, 0):
8490 for i in range(2): 8491
8491 UploadInstance(_REMOTE, 'Brainix/Flair/IM-0001-000%d.dcm' % (i + 1)) 8492 # Upload instances
8492 8493 for i in range(2):
8493 # Patient level 8494 UploadInstance(_REMOTE, 'Brainix/Flair/IM-0001-000%d.dcm' % (i + 1))
8494 a = DoPost(_REMOTE, '/tools/find', { 'Level' : 'Patient', 8495
8495 'CaseSensitive' : False, 8496 # Patient level
8496 'Query' : { 'PatientName' : 'BRAINIX' }, 8497 a = DoPost(_REMOTE, '/tools/find', { 'Level' : 'Patient',
8497 'RequestedTags' : [ 'PatientName', 'PatientID', 'PatientSex', 'PatientBirthDate' ], 8498 'CaseSensitive' : False,
8498 'Expand': True 8499 'Query' : { 'PatientName' : 'BRAINIX' },
8499 }) 8500 'RequestedTags' : [ 'PatientName', 'PatientID', 'PatientSex', 'PatientBirthDate' ],
8500 self.assertEqual(1, len(a)) 8501 'Expand': True
8501 self.assertIn('PatientName', a[0]['RequestedTags']) 8502 })
8502 self.assertIn('PatientID', a[0]['RequestedTags']) 8503 self.assertEqual(1, len(a))
8503 self.assertIn('PatientSex', a[0]['RequestedTags']) 8504 self.assertIn('PatientName', a[0]['RequestedTags'])
8504 self.assertIn('PatientBirthDate', a[0]['RequestedTags']) 8505 self.assertIn('PatientID', a[0]['RequestedTags'])
8505 8506 self.assertIn('PatientSex', a[0]['RequestedTags'])
8506 self.assertEqual('BRAINIX', a[0]['RequestedTags']['PatientName']) 8507 self.assertIn('PatientBirthDate', a[0]['RequestedTags'])
8507 self.assertEqual('5Yp0E', a[0]['RequestedTags']['PatientID']) 8508
8508 self.assertEqual('0000', a[0]['RequestedTags']['PatientSex']) 8509 self.assertEqual('BRAINIX', a[0]['RequestedTags']['PatientName'])
8509 self.assertEqual('19490301', a[0]['RequestedTags']['PatientBirthDate']) 8510 self.assertEqual('5Yp0E', a[0]['RequestedTags']['PatientID'])
8510 8511 self.assertEqual('0000', a[0]['RequestedTags']['PatientSex'])
8511 # Study level, request patient tags too 8512 self.assertEqual('19490301', a[0]['RequestedTags']['PatientBirthDate'])
8512 a = DoPost(_REMOTE, '/tools/find', { 'Level' : 'Study', 8513
8513 'CaseSensitive' : False, 8514 # Study level, request patient tags too
8514 'Query' : { 'PatientName' : 'BRAINIX' }, 8515 a = DoPost(_REMOTE, '/tools/find', { 'Level' : 'Study',
8515 'RequestedTags' : [ 'PatientName', 'StudyInstanceUID'], 8516 'CaseSensitive' : False,
8516 'Expand': True 8517 'Query' : { 'PatientName' : 'BRAINIX' },
8517 }) 8518 'RequestedTags' : [ 'PatientName', 'StudyInstanceUID'],
8518 self.assertEqual(1, len(a)) 8519 'Expand': True
8519 self.assertIn('PatientName', a[0]['RequestedTags']) 8520 })
8520 self.assertIn('StudyInstanceUID', a[0]['RequestedTags']) 8521 self.assertEqual(1, len(a))
8521 8522 self.assertIn('PatientName', a[0]['RequestedTags'])
8522 self.assertEqual('BRAINIX', a[0]['RequestedTags']['PatientName']) 8523 self.assertIn('StudyInstanceUID', a[0]['RequestedTags'])
8523 self.assertEqual('2.16.840.1.113669.632.20.1211.10000357775', a[0]['RequestedTags']['StudyInstanceUID']) 8524
8524 8525 self.assertEqual('BRAINIX', a[0]['RequestedTags']['PatientName'])
8525 8526 self.assertEqual('2.16.840.1.113669.632.20.1211.10000357775', a[0]['RequestedTags']['StudyInstanceUID'])
8526 # Series level, request patient and study tags too 8527
8527 a = DoPost(_REMOTE, '/tools/find', { 'Level' : 'Series', 8528
8528 'CaseSensitive' : False, 8529 # Series level, request patient and study tags too
8529 'Query' : { 'PatientName' : 'BRAINIX' }, 8530 a = DoPost(_REMOTE, '/tools/find', { 'Level' : 'Series',
8530 'RequestedTags' : [ 'PatientName', 'StudyInstanceUID', 'SeriesInstanceUID'], 8531 'CaseSensitive' : False,
8531 'Expand': True 8532 'Query' : { 'PatientName' : 'BRAINIX' },
8532 }) 8533 'RequestedTags' : [ 'PatientName', 'StudyInstanceUID', 'SeriesInstanceUID'],
8533 self.assertEqual(1, len(a)) 8534 'Expand': True
8534 self.assertIn('PatientName', a[0]['RequestedTags']) 8535 })
8535 self.assertIn('StudyInstanceUID', a[0]['RequestedTags']) 8536 self.assertEqual(1, len(a))
8536 self.assertIn('SeriesInstanceUID', a[0]['RequestedTags']) 8537 self.assertIn('PatientName', a[0]['RequestedTags'])
8537 8538 self.assertIn('StudyInstanceUID', a[0]['RequestedTags'])
8538 self.assertEqual('BRAINIX', a[0]['RequestedTags']['PatientName']) 8539 self.assertIn('SeriesInstanceUID', a[0]['RequestedTags'])
8539 self.assertEqual('2.16.840.1.113669.632.20.1211.10000357775', a[0]['RequestedTags']['StudyInstanceUID']) 8540
8540 self.assertEqual('1.3.46.670589.11.0.0.11.4.2.0.8743.5.5396.2006120114285654497', a[0]['RequestedTags']['SeriesInstanceUID']) 8541 self.assertEqual('BRAINIX', a[0]['RequestedTags']['PatientName'])
8541 8542 self.assertEqual('2.16.840.1.113669.632.20.1211.10000357775', a[0]['RequestedTags']['StudyInstanceUID'])
8542 8543 self.assertEqual('1.3.46.670589.11.0.0.11.4.2.0.8743.5.5396.2006120114285654497', a[0]['RequestedTags']['SeriesInstanceUID'])
8543 # Instance level, request patient, study and series tags too, include tags that are not part of the main dicom tags 8544
8544 a = DoPost(_REMOTE, '/tools/find', { 'Level' : 'Series', 8545
8545 'CaseSensitive' : False, 8546 # Instance level, request patient, study and series tags too, include tags that are not part of the main dicom tags
8546 'Query' : { 'PatientName' : 'BRAINIX' }, 8547 a = DoPost(_REMOTE, '/tools/find', { 'Level' : 'Series',
8547 'RequestedTags' : [ 'PatientName', 'StudyInstanceUID', 'SeriesInstanceUID', 'SOPInstanceUID', 'PhotometricInterpretation'], 8548 'CaseSensitive' : False,
8548 'Expand': True 8549 'Query' : { 'PatientName' : 'BRAINIX' },
8549 }) 8550 'RequestedTags' : [ 'PatientName', 'StudyInstanceUID', 'SeriesInstanceUID', 'SOPInstanceUID', 'PhotometricInterpretation'],
8550 self.assertEqual(1, len(a)) 8551 'Expand': True
8551 self.assertIn('PatientName', a[0]['RequestedTags']) 8552 })
8552 self.assertIn('StudyInstanceUID', a[0]['RequestedTags']) 8553 self.assertEqual(1, len(a))
8553 self.assertIn('SeriesInstanceUID', a[0]['RequestedTags']) 8554 self.assertIn('PatientName', a[0]['RequestedTags'])
8554 self.assertIn('PhotometricInterpretation', a[0]['RequestedTags']) 8555 self.assertIn('StudyInstanceUID', a[0]['RequestedTags'])
8555 8556 self.assertIn('SeriesInstanceUID', a[0]['RequestedTags'])
8556 self.assertEqual('BRAINIX', a[0]['RequestedTags']['PatientName']) 8557 self.assertIn('PhotometricInterpretation', a[0]['RequestedTags'])
8557 self.assertEqual('2.16.840.1.113669.632.20.1211.10000357775', a[0]['RequestedTags']['StudyInstanceUID']) 8558
8558 self.assertEqual('1.3.46.670589.11.0.0.11.4.2.0.8743.5.5396.2006120114285654497', a[0]['RequestedTags']['SeriesInstanceUID']) 8559 self.assertEqual('BRAINIX', a[0]['RequestedTags']['PatientName'])
8559 self.assertEqual('MONOCHROME2', a[0]['RequestedTags']['PhotometricInterpretation']) 8560 self.assertEqual('2.16.840.1.113669.632.20.1211.10000357775', a[0]['RequestedTags']['StudyInstanceUID'])
8561 self.assertEqual('1.3.46.670589.11.0.0.11.4.2.0.8743.5.5396.2006120114285654497', a[0]['RequestedTags']['SeriesInstanceUID'])
8562 self.assertEqual('MONOCHROME2', a[0]['RequestedTags']['PhotometricInterpretation'])
8560 8563
8561 8564
8562 def test_rest_find_requested_tags_computed_tags(self): 8565 def test_rest_find_requested_tags_computed_tags(self):
8563 # Upload instances 8566 if IsOrthancVersionAbove(_REMOTE, 1, 11, 0):
8564 for i in range(2): 8567 # Upload instances
8565 UploadInstance(_REMOTE, 'Brainix/Flair/IM-0001-000%d.dcm' % (i + 1)) 8568 for i in range(2):
8566 8569 UploadInstance(_REMOTE, 'Brainix/Flair/IM-0001-000%d.dcm' % (i + 1))
8567 8570
8568 # Patient level 8571
8569 a = DoPost(_REMOTE, '/tools/find', { 'Level' : 'Patient', 8572 # Patient level
8570 'CaseSensitive' : False, 8573 a = DoPost(_REMOTE, '/tools/find', { 'Level' : 'Patient',
8571 'Query' : { 'PatientName' : 'BRAINIX' }, 8574 'CaseSensitive' : False,
8572 'RequestedTags' : [ 'PatientName', 'NumberOfPatientRelatedStudies', 'NumberOfPatientRelatedSeries', 'NumberOfPatientRelatedInstances'], 8575 'Query' : { 'PatientName' : 'BRAINIX' },
8573 'Expand': True 8576 'RequestedTags' : [ 'PatientName', 'NumberOfPatientRelatedStudies', 'NumberOfPatientRelatedSeries', 'NumberOfPatientRelatedInstances'],
8574 }) 8577 'Expand': True
8575 self.assertEqual(1, len(a)) 8578 })
8576 8579 self.assertEqual(1, len(a))
8577 self.assertEqual('BRAINIX', a[0]['RequestedTags']['PatientName']) 8580
8578 self.assertEqual('1', a[0]['RequestedTags']['NumberOfPatientRelatedStudies']) 8581 self.assertEqual('BRAINIX', a[0]['RequestedTags']['PatientName'])
8579 self.assertEqual('1', a[0]['RequestedTags']['NumberOfPatientRelatedSeries']) 8582 self.assertEqual('1', a[0]['RequestedTags']['NumberOfPatientRelatedStudies'])
8580 self.assertEqual('2', a[0]['RequestedTags']['NumberOfPatientRelatedInstances']) 8583 self.assertEqual('1', a[0]['RequestedTags']['NumberOfPatientRelatedSeries'])
8581 8584 self.assertEqual('2', a[0]['RequestedTags']['NumberOfPatientRelatedInstances'])
8582 # Study level 8585
8583 a = DoPost(_REMOTE, '/tools/find', { 'Level' : 'Study', 8586 # Study level
8584 'CaseSensitive' : False, 8587 a = DoPost(_REMOTE, '/tools/find', { 'Level' : 'Study',
8585 'Query' : { 'PatientName' : 'BRAINIX' }, 8588 'CaseSensitive' : False,
8586 'RequestedTags' : [ 'PatientName', 'StudyInstanceUID', 'ModalitiesInStudy', 'SOPClassesInStudy', 'NumberOfStudyRelatedInstances', 'NumberOfStudyRelatedSeries'], 8589 'Query' : { 'PatientName' : 'BRAINIX' },
8587 'Expand': True 8590 'RequestedTags' : [ 'PatientName', 'StudyInstanceUID', 'ModalitiesInStudy', 'SOPClassesInStudy', 'NumberOfStudyRelatedInstances', 'NumberOfStudyRelatedSeries'],
8588 }) 8591 'Expand': True
8589 self.assertEqual(1, len(a)) 8592 })
8590 8593 self.assertEqual(1, len(a))
8591 self.assertEqual('BRAINIX', a[0]['RequestedTags']['PatientName']) 8594
8592 self.assertEqual('2.16.840.1.113669.632.20.1211.10000357775', a[0]['RequestedTags']['StudyInstanceUID']) 8595 self.assertEqual('BRAINIX', a[0]['RequestedTags']['PatientName'])
8593 self.assertEqual('MR', a[0]['RequestedTags']['ModalitiesInStudy']) 8596 self.assertEqual('2.16.840.1.113669.632.20.1211.10000357775', a[0]['RequestedTags']['StudyInstanceUID'])
8594 self.assertEqual('1.2.840.10008.5.1.4.1.1.4', a[0]['RequestedTags']['SOPClassesInStudy']) 8597 self.assertEqual('MR', a[0]['RequestedTags']['ModalitiesInStudy'])
8595 self.assertEqual('2', a[0]['RequestedTags']['NumberOfStudyRelatedInstances']) 8598 self.assertEqual('1.2.840.10008.5.1.4.1.1.4', a[0]['RequestedTags']['SOPClassesInStudy'])
8596 self.assertEqual('1', a[0]['RequestedTags']['NumberOfStudyRelatedSeries']) 8599 self.assertEqual('2', a[0]['RequestedTags']['NumberOfStudyRelatedInstances'])
8597 8600 self.assertEqual('1', a[0]['RequestedTags']['NumberOfStudyRelatedSeries'])
8598 # Series level 8601
8599 a = DoPost(_REMOTE, '/tools/find', { 'Level' : 'Series', 8602 # Series level
8600 'CaseSensitive' : False, 8603 a = DoPost(_REMOTE, '/tools/find', { 'Level' : 'Series',
8601 'Query' : { 'PatientName' : 'BRAINIX' }, 8604 'CaseSensitive' : False,
8602 'RequestedTags' : [ 'PatientName', 'StudyInstanceUID', 'NumberOfSeriesRelatedInstances'], 8605 'Query' : { 'PatientName' : 'BRAINIX' },
8603 'Expand': True 8606 'RequestedTags' : [ 'PatientName', 'StudyInstanceUID', 'NumberOfSeriesRelatedInstances'],
8604 }) 8607 'Expand': True
8605 self.assertEqual(1, len(a)) 8608 })
8606 8609 self.assertEqual(1, len(a))
8607 self.assertEqual('BRAINIX', a[0]['RequestedTags']['PatientName']) 8610
8608 self.assertEqual('2.16.840.1.113669.632.20.1211.10000357775', a[0]['RequestedTags']['StudyInstanceUID']) 8611 self.assertEqual('BRAINIX', a[0]['RequestedTags']['PatientName'])
8609 self.assertEqual('2', a[0]['RequestedTags']['NumberOfSeriesRelatedInstances']) 8612 self.assertEqual('2.16.840.1.113669.632.20.1211.10000357775', a[0]['RequestedTags']['StudyInstanceUID'])
8610 8613 self.assertEqual('2', a[0]['RequestedTags']['NumberOfSeriesRelatedInstances'])
8611 # Instance level 8614
8612 a = DoPost(_REMOTE, '/tools/find', { 'Level' : 'Instance', 8615 # Instance level
8613 'CaseSensitive' : False, 8616 a = DoPost(_REMOTE, '/tools/find', { 'Level' : 'Instance',
8614 'Query' : { 'PatientName' : 'BRAINIX' }, 8617 'CaseSensitive' : False,
8615 'RequestedTags' : [ 'PatientName', 'StudyInstanceUID', 'SOPInstanceUID', 'InstanceAvailability'], 8618 'Query' : { 'PatientName' : 'BRAINIX' },
8616 'Expand': True 8619 'RequestedTags' : [ 'PatientName', 'StudyInstanceUID', 'SOPInstanceUID', 'InstanceAvailability'],
8617 }) 8620 'Expand': True
8618 self.assertEqual(2, len(a)) 8621 })
8619 8622 self.assertEqual(2, len(a))
8620 self.assertEqual('BRAINIX', a[0]['RequestedTags']['PatientName']) 8623
8621 self.assertEqual('2.16.840.1.113669.632.20.1211.10000357775', a[0]['RequestedTags']['StudyInstanceUID']) 8624 self.assertEqual('BRAINIX', a[0]['RequestedTags']['PatientName'])
8622 self.assertEqual('ONLINE', a[0]['RequestedTags']['InstanceAvailability']) 8625 self.assertEqual('2.16.840.1.113669.632.20.1211.10000357775', a[0]['RequestedTags']['StudyInstanceUID'])
8626 self.assertEqual('ONLINE', a[0]['RequestedTags']['InstanceAvailability'])
8623 8627
8624 def test_list_resources_requested_tags(self): 8628 def test_list_resources_requested_tags(self):
8625 8629
8626 instance = UploadInstance(_REMOTE, 'DummyCT.dcm') ['ID'] 8630 if IsOrthancVersionAbove(_REMOTE, 1, 11, 0):
8627 patient = DoGet(_REMOTE, '/instances/%s/patient' % instance) ['ID'] 8631 instance = UploadInstance(_REMOTE, 'DummyCT.dcm') ['ID']
8628 study = DoGet(_REMOTE, '/instances/%s/study' % instance) ['ID'] 8632 patient = DoGet(_REMOTE, '/instances/%s/patient' % instance) ['ID']
8629 8633 study = DoGet(_REMOTE, '/instances/%s/study' % instance) ['ID']
8630 # list series and request tags that are not in the default main dicom tags 8634
8631 a = DoGet(_REMOTE, '/studies/%s/series?expand&simplify&requestedTags=PatientName;Modality;SeriesInstanceUID;MRAcquisitionType' % study) 8635 # list series and request tags that are not in the default main dicom tags
8632 8636 a = DoGet(_REMOTE, '/studies/%s/series?expand&simplify&requestedTags=PatientName;Modality;SeriesInstanceUID;MRAcquisitionType' % study)
8633 self.assertEqual('2D', a[0]['RequestedTags']['MRAcquisitionType']) 8637
8634 self.assertEqual('MR', a[0]['RequestedTags']['Modality']) 8638 self.assertEqual('2D', a[0]['RequestedTags']['MRAcquisitionType'])
8635 self.assertEqual('KNIX', a[0]['RequestedTags']['PatientName']) 8639 self.assertEqual('MR', a[0]['RequestedTags']['Modality'])
8636 self.assertEqual('1.2.840.113619.2.176.2025.1499492.7391.1171285944.394', a[0]['RequestedTags']['SeriesInstanceUID']) 8640 self.assertEqual('KNIX', a[0]['RequestedTags']['PatientName'])
8637 8641 self.assertEqual('1.2.840.113619.2.176.2025.1499492.7391.1171285944.394', a[0]['RequestedTags']['SeriesInstanceUID'])
8638 # list studies and request patient and studies tags 8642
8639 a = DoGet(_REMOTE, '/patients/%s/studies?expand&simplify&requestedTags=PatientName;StudyInstanceUID' % patient) 8643 # list studies and request patient and studies tags
8640 8644 a = DoGet(_REMOTE, '/patients/%s/studies?expand&simplify&requestedTags=PatientName;StudyInstanceUID' % patient)
8641 self.assertEqual('1.2.840.113619.2.176.2025.1499492.7391.1171285944.390', a[0]['RequestedTags']['StudyInstanceUID']) 8645
8642 self.assertEqual('KNIX', a[0]['RequestedTags']['PatientName']) 8646 self.assertEqual('1.2.840.113619.2.176.2025.1499492.7391.1171285944.390', a[0]['RequestedTags']['StudyInstanceUID'])
8643 8647 self.assertEqual('KNIX', a[0]['RequestedTags']['PatientName'])
8644 8648
8645 # list instances and request patient, studies and series tags including tags that are not in main dicom tags 8649
8646 a = DoGet(_REMOTE, '/patients/%s/instances?expand&simplify&requestedTags=PatientName;StudyInstanceUID;SeriesInstanceUID;SOPInstanceUID;Rows;Columns;InstanceAvailability' % patient) 8650 # list instances and request patient, studies and series tags including tags that are not in main dicom tags
8647 8651 a = DoGet(_REMOTE, '/patients/%s/instances?expand&simplify&requestedTags=PatientName;StudyInstanceUID;SeriesInstanceUID;SOPInstanceUID;Rows;Columns;InstanceAvailability' % patient)
8648 self.assertEqual('1.2.840.113619.2.176.2025.1499492.7391.1171285944.390', a[0]['RequestedTags']['StudyInstanceUID']) 8652
8649 self.assertEqual('1.2.840.113619.2.176.2025.1499492.7391.1171285944.394', a[0]['RequestedTags']['SeriesInstanceUID']) 8653 self.assertEqual('1.2.840.113619.2.176.2025.1499492.7391.1171285944.390', a[0]['RequestedTags']['StudyInstanceUID'])
8650 self.assertEqual('1.2.840.113619.2.176.2025.1499492.7040.1171286242.109', a[0]['RequestedTags']['SOPInstanceUID']) 8654 self.assertEqual('1.2.840.113619.2.176.2025.1499492.7391.1171285944.394', a[0]['RequestedTags']['SeriesInstanceUID'])
8651 self.assertEqual('KNIX', a[0]['RequestedTags']['PatientName']) 8655 self.assertEqual('1.2.840.113619.2.176.2025.1499492.7040.1171286242.109', a[0]['RequestedTags']['SOPInstanceUID'])
8652 self.assertEqual('512', a[0]['RequestedTags']['Rows']) 8656 self.assertEqual('KNIX', a[0]['RequestedTags']['PatientName'])
8653 self.assertEqual('512', a[0]['RequestedTags']['Columns']) 8657 self.assertEqual('512', a[0]['RequestedTags']['Rows'])
8654 self.assertEqual('ONLINE', a[0]['RequestedTags']['InstanceAvailability']) 8658 self.assertEqual('512', a[0]['RequestedTags']['Columns'])
8659 self.assertEqual('ONLINE', a[0]['RequestedTags']['InstanceAvailability'])
8655 8660
8656 8661
8657 def test_list_resources_requested_tags_study_computed_tags(self): 8662 def test_list_resources_requested_tags_study_computed_tags(self):
8658 8663
8659 instance = UploadInstance(_REMOTE, 'DummyCT.dcm') ['ID'] 8664 if IsOrthancVersionAbove(_REMOTE, 1, 11, 0):
8660 patient = DoGet(_REMOTE, '/instances/%s/patient' % instance) ['ID'] 8665 instance = UploadInstance(_REMOTE, 'DummyCT.dcm') ['ID']
8661 study = DoGet(_REMOTE, '/instances/%s/study' % instance) ['ID'] 8666 patient = DoGet(_REMOTE, '/instances/%s/patient' % instance) ['ID']
8662 8667 study = DoGet(_REMOTE, '/instances/%s/study' % instance) ['ID']
8663 # list studies and request patient and studies tags, including ModalitiesInStudy 8668
8664 a = DoGet(_REMOTE, '/patients/%s/studies?expand&simplify&requestedTags=PatientName;StudyInstanceUID;ModalitiesInStudy;SOPClassesInStudy;NumberOfStudyRelatedInstances;NumberOfStudyRelatedSeries' % patient) 8669 # list studies and request patient and studies tags, including ModalitiesInStudy
8665 8670 a = DoGet(_REMOTE, '/patients/%s/studies?expand&simplify&requestedTags=PatientName;StudyInstanceUID;ModalitiesInStudy;SOPClassesInStudy;NumberOfStudyRelatedInstances;NumberOfStudyRelatedSeries' % patient)
8666 self.assertEqual('1.2.840.113619.2.176.2025.1499492.7391.1171285944.390', a[0]['RequestedTags']['StudyInstanceUID']) 8671
8667 self.assertEqual('KNIX', a[0]['RequestedTags']['PatientName']) 8672 self.assertEqual('1.2.840.113619.2.176.2025.1499492.7391.1171285944.390', a[0]['RequestedTags']['StudyInstanceUID'])
8668 self.assertEqual('MR', a[0]['RequestedTags']['ModalitiesInStudy']) 8673 self.assertEqual('KNIX', a[0]['RequestedTags']['PatientName'])
8669 self.assertEqual('1.2.840.10008.5.1.4.1.1.4', a[0]['RequestedTags']['SOPClassesInStudy']) 8674 self.assertEqual('MR', a[0]['RequestedTags']['ModalitiesInStudy'])
8670 self.assertEqual('1', a[0]['RequestedTags']['NumberOfStudyRelatedInstances']) 8675 self.assertEqual('1.2.840.10008.5.1.4.1.1.4', a[0]['RequestedTags']['SOPClassesInStudy'])
8671 self.assertEqual('1', a[0]['RequestedTags']['NumberOfStudyRelatedSeries']) 8676 self.assertEqual('1', a[0]['RequestedTags']['NumberOfStudyRelatedInstances'])
8677 self.assertEqual('1', a[0]['RequestedTags']['NumberOfStudyRelatedSeries'])
8672 8678
8673 8679
8674 def test_list_resources_requested_tags_series_computed_tags(self): 8680 def test_list_resources_requested_tags_series_computed_tags(self):
8675 8681
8676 instance = UploadInstance(_REMOTE, 'DummyCT.dcm') ['ID'] 8682 if IsOrthancVersionAbove(_REMOTE, 1, 11, 0):
8677 patient = DoGet(_REMOTE, '/instances/%s/patient' % instance) ['ID'] 8683 instance = UploadInstance(_REMOTE, 'DummyCT.dcm') ['ID']
8678 study = DoGet(_REMOTE, '/instances/%s/study' % instance) ['ID'] 8684 patient = DoGet(_REMOTE, '/instances/%s/patient' % instance) ['ID']
8679 8685 study = DoGet(_REMOTE, '/instances/%s/study' % instance) ['ID']
8680 # list studies and request patient and studies tags, including ModalitiesInStudy 8686
8681 a = DoGet(_REMOTE, '/studies/%s/series?expand&simplify&requestedTags=PatientName;SeriesInstanceUID;NumberOfSeriesRelatedInstances' % study) 8687 # list studies and request patient and studies tags, including ModalitiesInStudy
8682 8688 a = DoGet(_REMOTE, '/studies/%s/series?expand&simplify&requestedTags=PatientName;SeriesInstanceUID;NumberOfSeriesRelatedInstances' % study)
8683 self.assertEqual('1.2.840.113619.2.176.2025.1499492.7391.1171285944.394', a[0]['RequestedTags']['SeriesInstanceUID']) 8689
8684 self.assertEqual('KNIX', a[0]['RequestedTags']['PatientName']) 8690 self.assertEqual('1.2.840.113619.2.176.2025.1499492.7391.1171285944.394', a[0]['RequestedTags']['SeriesInstanceUID'])
8685 self.assertEqual('1', a[0]['RequestedTags']['NumberOfSeriesRelatedInstances']) 8691 self.assertEqual('KNIX', a[0]['RequestedTags']['PatientName'])
8692 self.assertEqual('1', a[0]['RequestedTags']['NumberOfSeriesRelatedInstances'])
8686 8693
8687 def test_dicomweb_jpeg2k_implicit(self): 8694 def test_dicomweb_jpeg2k_implicit(self):
8688 # This is a file encoded using 1.2.840.10008.1.2.4.90 transfer 8695 # This is a file encoded using 1.2.840.10008.1.2.4.90 transfer
8689 # syntax, in which most DICOM tags have the "UN" value 8696 # syntax, in which most DICOM tags have the "UN" value
8690 # representation. Support introduced in Orthanc 1.10.1. 8697 # representation. Support introduced in Orthanc 1.10.1.