Mercurial > hg > orthanc-tests
comparison Tests/Tests.py @ 452:45dd181b0f17 more-tags
added test for requestedTags in tools/find + list-resources
author | Alain Mazy <am@osimis.io> |
---|---|
date | Mon, 14 Mar 2022 13:13:58 +0100 |
parents | 33051f9ac850 |
children | 46ae8fb09254 |
comparison
equal
deleted
inserted
replaced
451:33051f9ac850 | 452:45dd181b0f17 |
---|---|
8437 self.assertEqual(1, len(a)) | 8437 self.assertEqual(1, len(a)) |
8438 | 8438 |
8439 a = DoPost(_REMOTE, '/tools/find', { 'Level' : 'Patient', | 8439 a = DoPost(_REMOTE, '/tools/find', { 'Level' : 'Patient', |
8440 'Query' : { 'PatientName' : 'MyName2*' }}) | 8440 'Query' : { 'PatientName' : 'MyName2*' }}) |
8441 self.assertEqual(1, len(a)) | 8441 self.assertEqual(1, len(a)) |
8442 | |
8443 | |
8444 def test_rest_find_requested_tags(self): | |
8445 # Upload instances | |
8446 for i in range(2): | |
8447 UploadInstance(_REMOTE, 'Brainix/Flair/IM-0001-000%d.dcm' % (i + 1)) | |
8448 | |
8449 # Patient level | |
8450 a = DoPost(_REMOTE, '/tools/find', { 'Level' : 'Patient', | |
8451 'CaseSensitive' : False, | |
8452 'Query' : { 'PatientName' : 'BRAINIX' }, | |
8453 'RequestedTags' : [ 'PatientName', 'PatientID', 'PatientSex', 'PatientBirthDate' ], | |
8454 'Expand': True | |
8455 }) | |
8456 self.assertEqual(1, len(a)) | |
8457 self.assertIn('PatientName', a[0]['RequestedTags']) | |
8458 self.assertIn('PatientID', a[0]['RequestedTags']) | |
8459 self.assertIn('PatientSex', a[0]['RequestedTags']) | |
8460 self.assertIn('PatientBirthDate', a[0]['RequestedTags']) | |
8461 | |
8462 self.assertEqual('BRAINIX', a[0]['RequestedTags']['PatientName']) | |
8463 self.assertEqual('5Yp0E', a[0]['RequestedTags']['PatientID']) | |
8464 self.assertEqual('0000', a[0]['RequestedTags']['PatientSex']) | |
8465 self.assertEqual('19490301', a[0]['RequestedTags']['PatientBirthDate']) | |
8466 | |
8467 # Study level, request patient tags too | |
8468 a = DoPost(_REMOTE, '/tools/find', { 'Level' : 'Study', | |
8469 'CaseSensitive' : False, | |
8470 'Query' : { 'PatientName' : 'BRAINIX' }, | |
8471 'RequestedTags' : [ 'PatientName', 'StudyInstanceUID'], | |
8472 'Expand': True | |
8473 }) | |
8474 self.assertEqual(1, len(a)) | |
8475 self.assertIn('PatientName', a[0]['RequestedTags']) | |
8476 self.assertIn('StudyInstanceUID', a[0]['RequestedTags']) | |
8477 | |
8478 self.assertEqual('BRAINIX', a[0]['RequestedTags']['PatientName']) | |
8479 self.assertEqual('2.16.840.1.113669.632.20.1211.10000357775', a[0]['RequestedTags']['StudyInstanceUID']) | |
8480 | |
8481 | |
8482 # Series level, request patient and study tags too | |
8483 a = DoPost(_REMOTE, '/tools/find', { 'Level' : 'Series', | |
8484 'CaseSensitive' : False, | |
8485 'Query' : { 'PatientName' : 'BRAINIX' }, | |
8486 'RequestedTags' : [ 'PatientName', 'StudyInstanceUID', 'SeriesInstanceUID'], | |
8487 'Expand': True | |
8488 }) | |
8489 self.assertEqual(1, len(a)) | |
8490 self.assertIn('PatientName', a[0]['RequestedTags']) | |
8491 self.assertIn('StudyInstanceUID', a[0]['RequestedTags']) | |
8492 self.assertIn('SeriesInstanceUID', a[0]['RequestedTags']) | |
8493 | |
8494 pprint.pprint(a[0]) | |
8495 self.assertEqual('BRAINIX', a[0]['RequestedTags']['PatientName']) | |
8496 self.assertEqual('2.16.840.1.113669.632.20.1211.10000357775', a[0]['RequestedTags']['StudyInstanceUID']) | |
8497 self.assertEqual('1.3.46.670589.11.0.0.11.4.2.0.8743.5.5396.2006120114285654497', a[0]['RequestedTags']['SeriesInstanceUID']) | |
8498 | |
8499 | |
8500 # Instance level, request patient, study and series tags too, include tags that are not part of the main dicom tags | |
8501 a = DoPost(_REMOTE, '/tools/find', { 'Level' : 'Series', | |
8502 'CaseSensitive' : False, | |
8503 'Query' : { 'PatientName' : 'BRAINIX' }, | |
8504 'RequestedTags' : [ 'PatientName', 'StudyInstanceUID', 'SeriesInstanceUID', 'SOPInstanceUID', 'PhotometricInterpretation'], | |
8505 'Expand': True | |
8506 }) | |
8507 self.assertEqual(1, len(a)) | |
8508 self.assertIn('PatientName', a[0]['RequestedTags']) | |
8509 self.assertIn('StudyInstanceUID', a[0]['RequestedTags']) | |
8510 self.assertIn('SeriesInstanceUID', a[0]['RequestedTags']) | |
8511 self.assertIn('PhotometricInterpretation', a[0]['RequestedTags']) | |
8512 | |
8513 self.assertEqual('BRAINIX', a[0]['RequestedTags']['PatientName']) | |
8514 self.assertEqual('2.16.840.1.113669.632.20.1211.10000357775', a[0]['RequestedTags']['StudyInstanceUID']) | |
8515 self.assertEqual('1.3.46.670589.11.0.0.11.4.2.0.8743.5.5396.2006120114285654497', a[0]['RequestedTags']['SeriesInstanceUID']) | |
8516 self.assertEqual('MONOCHROME2', a[0]['RequestedTags']['PhotometricInterpretation']) | |
8517 | |
8518 | |
8519 # def test_rest_find_requested_tags_modalities_in_study(self): | |
8520 # # Upload instances | |
8521 # for i in range(2): | |
8522 # UploadInstance(_REMOTE, 'Brainix/Flair/IM-0001-000%d.dcm' % (i + 1)) | |
8523 | |
8524 # # Study level, request patient tags too | |
8525 # a = DoPost(_REMOTE, '/tools/find', { 'Level' : 'Study', | |
8526 # 'CaseSensitive' : False, | |
8527 # 'Query' : { 'PatientName' : 'BRAINIX' }, | |
8528 # 'RequestedTags' : [ 'PatientName', 'StudyInstanceUID', 'ModalitiesInStudy'], | |
8529 # 'Expand': True | |
8530 # }) | |
8531 # self.assertEqual(1, len(a)) | |
8532 # self.assertIn('PatientName', a[0]['RequestedTags']) | |
8533 # self.assertIn('StudyInstanceUID', a[0]['RequestedTags']) | |
8534 # self.assertIn('ModalitiesInStudy', a[0]['RequestedTags']) | |
8535 | |
8536 # self.assertEqual('BRAINIX', a[0]['RequestedTags']['PatientName']) | |
8537 # self.assertEqual('2.16.840.1.113669.632.20.1211.10000357775', a[0]['RequestedTags']['StudyInstanceUID']) | |
8538 | |
8539 | |
8540 def test_list_resources_requested_tags(self): | |
8541 | |
8542 instance = UploadInstance(_REMOTE, 'DummyCT.dcm') ['ID'] | |
8543 patient = DoGet(_REMOTE, '/instances/%s/patient' % instance) ['ID'] | |
8544 study = DoGet(_REMOTE, '/instances/%s/study' % instance) ['ID'] | |
8545 | |
8546 # list series and request tags that are not in the default main dicom tags | |
8547 a = DoGet(_REMOTE, '/studies/%s/series?expand&simplify&requestedTags=PatientName;Modality;SeriesInstanceUID;MRAcquisitionType' % study) | |
8548 | |
8549 self.assertEqual('2D', a[0]['RequestedTags']['MRAcquisitionType']) | |
8550 self.assertEqual('MR', a[0]['RequestedTags']['Modality']) | |
8551 self.assertEqual('KNIX', a[0]['RequestedTags']['PatientName']) | |
8552 self.assertEqual('1.2.840.113619.2.176.2025.1499492.7391.1171285944.394', a[0]['RequestedTags']['SeriesInstanceUID']) | |
8553 | |
8554 # list studies and request patient and studies tags | |
8555 a = DoGet(_REMOTE, '/patients/%s/studies?expand&simplify&requestedTags=PatientName;StudyInstanceUID' % patient) | |
8556 | |
8557 self.assertEqual('1.2.840.113619.2.176.2025.1499492.7391.1171285944.390', a[0]['RequestedTags']['StudyInstanceUID']) | |
8558 self.assertEqual('KNIX', a[0]['RequestedTags']['PatientName']) | |
8559 | |
8560 | |
8561 # list instances and request patient, studies and series tags including tags that are not in main dicom tags | |
8562 a = DoGet(_REMOTE, '/patients/%s/instances?expand&simplify&requestedTags=PatientName;StudyInstanceUID;SeriesInstanceUID;SOPInstanceUID;Rows;Columns' % patient) | |
8563 | |
8564 self.assertEqual('1.2.840.113619.2.176.2025.1499492.7391.1171285944.390', a[0]['RequestedTags']['StudyInstanceUID']) | |
8565 self.assertEqual('1.2.840.113619.2.176.2025.1499492.7391.1171285944.394', a[0]['RequestedTags']['SeriesInstanceUID']) | |
8566 self.assertEqual('1.2.840.113619.2.176.2025.1499492.7040.1171286242.109', a[0]['RequestedTags']['SOPInstanceUID']) | |
8567 self.assertEqual('KNIX', a[0]['RequestedTags']['PatientName']) | |
8568 self.assertEqual('512', a[0]['RequestedTags']['Rows']) | |
8569 self.assertEqual('512', a[0]['RequestedTags']['Columns']) | |
8570 | |
8571 pprint.pprint(a[0]) | |
8572 | |
8573 | |
8574 def test_list_resources_requested_tags_modalities_in_study(self): | |
8575 | |
8576 instance = UploadInstance(_REMOTE, 'DummyCT.dcm') ['ID'] | |
8577 patient = DoGet(_REMOTE, '/instances/%s/patient' % instance) ['ID'] | |
8578 study = DoGet(_REMOTE, '/instances/%s/study' % instance) ['ID'] | |
8579 | |
8580 # list studies and request patient and studies tags, including ModalitiesInStudy | |
8581 a = DoGet(_REMOTE, '/patients/%s/studies?expand&simplify&requestedTags=PatientName;StudyInstanceUID;ModalitiesInStudy' % patient) | |
8582 | |
8583 self.assertEqual('1.2.840.113619.2.176.2025.1499492.7391.1171285944.390', a[0]['RequestedTags']['StudyInstanceUID']) | |
8584 self.assertEqual('CT', a[0]['RequestedTags']['ModalitiesInStudy']) | |
8585 self.assertEqual('KNIX', a[0]['RequestedTags']['PatientName']) |