comparison Tests/Tests.py @ 582:615201c822d8

new test for PatientName used when exporting an archive
author Alain Mazy <am@osimis.io>
date Mon, 16 Oct 2023 17:32:29 +0200
parents 31ab8bb2ac5a
children b9dffa48f74a
comparison
equal deleted inserted replaced
581:cbb9045e0ffa 582:615201c822d8
627 627
628 628
629 def test_archive(self): 629 def test_archive(self):
630 UploadInstance(_REMOTE, 'Knee/T1/IM-0001-0001.dcm') 630 UploadInstance(_REMOTE, 'Knee/T1/IM-0001-0001.dcm')
631 UploadInstance(_REMOTE, 'Knee/T2/IM-0001-0001.dcm') 631 UploadInstance(_REMOTE, 'Knee/T2/IM-0001-0001.dcm')
632 knee = 'ca29faea-b6a0e17f-067743a1-8b778011-a48b2a17' 632 kneePatient = 'ca29faea-b6a0e17f-067743a1-8b778011-a48b2a17'
633 633 kneeStudy = DoGet(_REMOTE, '/studies')[0]
634 z = GetArchive(_REMOTE, '/patients/%s/archive' % knee) 634 kneeSeries = DoGet(_REMOTE, '/series')[0]
635
636 z = GetArchive(_REMOTE, '/patients/%s/archive' % kneePatient)
635 self.assertEqual(2, len(z.namelist())) 637 self.assertEqual(2, len(z.namelist()))
636 638 self.assertIn('887 KNEE/A10003245599 IRM DU GENOU/MR T1W_aTSE/MR000000.dcm', z.namelist())
637 z = GetArchive(_REMOTE, '/studies/%s/archive' % DoGet(_REMOTE, '/studies')[0]) 639
640 z = GetArchive(_REMOTE, '/studies/%s/archive' % kneeStudy)
638 self.assertEqual(2, len(z.namelist())) 641 self.assertEqual(2, len(z.namelist()))
639 642 self.assertIn('887 KNEE/A10003245599 IRM DU GENOU/MR T1W_aTSE/MR000000.dcm', z.namelist())
640 z = GetArchive(_REMOTE, '/series/%s/archive' % DoGet(_REMOTE, '/series')[0]) 643
644 z = GetArchive(_REMOTE, '/series/%s/archive' % kneeSeries)
641 self.assertEqual(1, len(z.namelist())) 645 self.assertEqual(1, len(z.namelist()))
646 self.assertIn('MR T1W_aTSE/MR000000.dcm', z.namelist())
642 647
643 UploadInstance(_REMOTE, 'Brainix/Flair/IM-0001-0001.dcm') 648 UploadInstance(_REMOTE, 'Brainix/Flair/IM-0001-0001.dcm')
644 brainix = '16738bc3-e47ed42a-43ce044c-a3414a45-cb069bd0' 649 brainixPatient = '16738bc3-e47ed42a-43ce044c-a3414a45-cb069bd0'
645 650 brainixStudy = '27f7126f-4f66fb14-03f4081b-f9341db2-53925988'
646 z = GetArchive(_REMOTE, '/patients/%s/archive' % knee) 651
652 z = GetArchive(_REMOTE, '/patients/%s/archive' % kneePatient)
647 self.assertEqual(2, len(z.namelist())) 653 self.assertEqual(2, len(z.namelist()))
648 654
655 # archive with 2 patients
649 z = PostArchive(_REMOTE, '/tools/create-archive', { 656 z = PostArchive(_REMOTE, '/tools/create-archive', {
650 'Resources' : [ brainix, knee ] 657 'Resources' : [ brainixPatient, kneePatient ]
651 }) 658 })
652 self.assertEqual(3, len(z.namelist())) 659 self.assertEqual(3, len(z.namelist()))
653 660 self.assertIn('5Yp0E BRAINIX/0 IRM crbrale neurocrne/MR sT2WFLAIR/MR000000.dcm', z.namelist())
654 z = PostArchive(_REMOTE, '/patients/%s/archive' % knee, { 661 self.assertIn('887 KNEE/A10003245599 IRM DU GENOU/MR T1W_aTSE/MR000000.dcm', z.namelist())
662
663 z = PostArchive(_REMOTE, '/patients/%s/archive' % kneePatient, {
655 'Synchronous' : True 664 'Synchronous' : True
656 }) 665 })
657 self.assertEqual(2, len(z.namelist())) 666 self.assertEqual(2, len(z.namelist()))
658 667
668 # archive with 2 studies
669 z = PostArchive(_REMOTE, '/tools/create-archive', {
670 'Resources' : [ brainixStudy, kneeStudy ]
671 })
672 self.assertEqual(3, len(z.namelist()))
673 self.assertIn('5Yp0E BRAINIX/0 IRM crbrale neurocrne/MR sT2WFLAIR/MR000000.dcm', z.namelist())
674 self.assertIn('887 KNEE/A10003245599 IRM DU GENOU/MR T1W_aTSE/MR000000.dcm', z.namelist())
675
676 # archive with 1 patient & 1 study
677 z = PostArchive(_REMOTE, '/tools/create-archive', {
678 'Resources' : [ brainixPatient, kneeStudy ]
679 })
680 self.assertEqual(3, len(z.namelist()))
681 self.assertIn('5Yp0E BRAINIX/0 IRM crbrale neurocrne/MR sT2WFLAIR/MR000000.dcm', z.namelist())
682 self.assertIn('887 KNEE/A10003245599 IRM DU GENOU/MR T1W_aTSE/MR000000.dcm', z.namelist())
683
684
685 def test_archive_with_patient_ids_collision(self):
686 if IsOrthancVersionAbove(_REMOTE, 1, 12, 2):
687 # one PatientID: COMMON
688 # 2 PatientName: HELLO & WORLD
689
690 hello = UploadInstance(_REMOTE, 'PatientIdsCollision/Image1.dcm')
691 world = UploadInstance(_REMOTE, 'PatientIdsCollision/Image2.dcm')
692 helloStudy = hello['ParentStudy']
693 worldStudy = world['ParentStudy']
694 helloPatient = hello['ParentPatient']
695 worldPatient = world['ParentPatient']
696
697 self.assertEqual(helloPatient, worldPatient)
698
699 # when downloading the Patient, we do not really know what PatientName we will get in the zip
700 z = GetArchive(_REMOTE, '/patients/%s/archive' % helloPatient)
701 self.assertEqual(2, len(z.namelist()))
702
703 # when downloading studies individually, we want to have the PatientName that appears in the study
704 z = GetArchive(_REMOTE, '/studies/%s/archive' % helloStudy)
705 self.assertEqual(1, len(z.namelist()))
706 self.assertIn('COMMON HELLO/HELLO SERIES/Unknown Series/00000000.dcm', z.namelist())
707
708 z = GetArchive(_REMOTE, '/studies/%s/archive' % worldStudy)
709 self.assertEqual(1, len(z.namelist()))
710 self.assertIn('COMMON WORLD/WORLD SERIES/Unknown Series/00000000.dcm', z.namelist())
711
712
659 713
660 def test_media_archive(self): 714 def test_media_archive(self):
661 UploadInstance(_REMOTE, 'Knee/T1/IM-0001-0001.dcm') 715 UploadInstance(_REMOTE, 'Knee/T1/IM-0001-0001.dcm')
662 UploadInstance(_REMOTE, 'Knee/T2/IM-0001-0001.dcm') 716 UploadInstance(_REMOTE, 'Knee/T2/IM-0001-0001.dcm')
663 717