Mercurial > hg > orthanc-tests
comparison Tests/Tests.py @ 179:8a2dd77d4035
testing split/merge
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Mon, 01 Oct 2018 17:54:32 +0200 |
parents | ef6b791c6d62 |
children | 911070f790e3 |
comparison
equal
deleted
inserted
replaced
178:c896ac762b9f | 179:8a2dd77d4035 |
---|---|
3844 # one of the Generic Group Length tags (*, 0x0000) | 3844 # one of the Generic Group Length tags (*, 0x0000) |
3845 a = UploadInstance(_REMOTE, 'Brainix/Flair/IM-0001-0001.dcm')['ID'] | 3845 a = UploadInstance(_REMOTE, 'Brainix/Flair/IM-0001-0001.dcm')['ID'] |
3846 result = CallFindScu([ '-k', '0008,0052=STUDY', '-k', '0008,0000=80' ]) | 3846 result = CallFindScu([ '-k', '0008,0052=STUDY', '-k', '0008,0000=80' ]) |
3847 self.assertFalse('UnableToProcess' in result) | 3847 self.assertFalse('UnableToProcess' in result) |
3848 self.assertFalse('E:' in result) | 3848 self.assertFalse('E:' in result) |
3849 | |
3850 | |
3851 def test_split(self): | |
3852 UploadInstance(_REMOTE, 'Knee/T1/IM-0001-0001.dcm') | |
3853 UploadInstance(_REMOTE, 'Knee/T2/IM-0001-0001.dcm') | |
3854 study = '0a9b3153-2512774b-2d9580de-1fc3dcf6-3bd83918' | |
3855 t1 = '6de73705-c4e65c1b-9d9ea1b5-cabcd8e7-f15e4285' | |
3856 t2 = 'bbf7a453-0d34251a-03663b55-46bb31b9-ffd74c59' | |
3857 | |
3858 self.assertEqual(1, len(DoGet(_REMOTE, '/studies'))) | |
3859 self.assertEqual(2, len(DoGet(_REMOTE, '/series'))) | |
3860 | |
3861 info = DoGet(_REMOTE, '/studies/%s' % study) | |
3862 self.assertTrue('ReferringPhysicianName' in info['MainDicomTags']) | |
3863 | |
3864 job = MonitorJob2(_REMOTE, lambda: DoPost | |
3865 (_REMOTE, '/studies/%s/split' % study, { | |
3866 'Series' : [ t2 ], | |
3867 'Replace' : { 'PatientName' : 'Hello' }, | |
3868 'Remove' : [ 'ReferringPhysicianName' ], | |
3869 'KeepSource' : False | |
3870 })) | |
3871 | |
3872 self.assertNotEqual(None, job) | |
3873 | |
3874 studies = set(DoGet(_REMOTE, '/studies')) | |
3875 self.assertEqual(2, len(studies)) | |
3876 | |
3877 series = set(DoGet(_REMOTE, '/series')) | |
3878 self.assertEqual(2, len(series)) | |
3879 self.assertTrue(t1 in series) | |
3880 | |
3881 study2 = DoGet(_REMOTE, '/jobs/%s' % job)['Content']['TargetStudy'] | |
3882 self.assertTrue(study in studies) | |
3883 self.assertTrue(study2 in studies) | |
3884 | |
3885 info = DoGet(_REMOTE, '/studies/%s' % study2) | |
3886 self.assertTrue('Hello', info['PatientMainDicomTags']['PatientName']) | |
3887 self.assertFalse('ReferringPhysicianName' in info['MainDicomTags']) | |
3888 | |
3889 | |
3890 def test_merge(self): | |
3891 UploadInstance(_REMOTE, 'Knee/T1/IM-0001-0001.dcm') | |
3892 UploadInstance(_REMOTE, 'Brainix/Flair/IM-0001-0001.dcm')['ID'] | |
3893 knee = '0a9b3153-2512774b-2d9580de-1fc3dcf6-3bd83918' | |
3894 t1 = '6de73705-c4e65c1b-9d9ea1b5-cabcd8e7-f15e4285' | |
3895 brainix = '27f7126f-4f66fb14-03f4081b-f9341db2-53925988' | |
3896 flair = '1e2c125c-411b8e86-3f4fe68e-a7584dd3-c6da78f0' | |
3897 | |
3898 self.assertEqual(2, len(DoGet(_REMOTE, '/studies'))) | |
3899 self.assertEqual(2, len(DoGet(_REMOTE, '/series'))) | |
3900 | |
3901 job = MonitorJob2(_REMOTE, lambda: DoPost | |
3902 (_REMOTE, '/studies/%s/merge' % knee, { | |
3903 'Resources' : [ brainix ], | |
3904 'KeepSource' : True | |
3905 })) | |
3906 | |
3907 self.assertNotEqual(None, job) | |
3908 | |
3909 studies = set(DoGet(_REMOTE, '/studies')) | |
3910 self.assertEqual(2, len(studies)) | |
3911 self.assertTrue(knee in studies) | |
3912 self.assertTrue(brainix in studies) | |
3913 | |
3914 series = set(DoGet(_REMOTE, '/studies/%s' % knee)['Series']) | |
3915 self.assertTrue(t1 in series) | |
3916 series.remove(t1) | |
3917 self.assertEqual(1, len(series)) | |
3918 | |
3919 instances = DoGet(_REMOTE, '/series/%s' % list(series)[0])['Instances'] | |
3920 self.assertEqual(1, len(instances)) | |
3921 merged = DoGet(_REMOTE, '/instances/%s/tags?simplify' % instances[0]) | |
3922 | |
3923 instances = DoGet(_REMOTE, '/series/%s' % t1)['Instances'] | |
3924 self.assertEqual(1, len(instances)) | |
3925 a = DoGet(_REMOTE, '/instances/%s/tags?simplify' % instances[0]) | |
3926 | |
3927 instances = DoGet(_REMOTE, '/series/%s' % flair)['Instances'] | |
3928 self.assertEqual(1, len(instances)) | |
3929 b = DoGet(_REMOTE, '/instances/%s/tags?simplify' % instances[0]) | |
3930 | |
3931 tags = DoGet(_REMOTE, '/studies/%s' % knee) | |
3932 | |
3933 for key in tags['PatientMainDicomTags']: | |
3934 self.assertEqual(a[key], merged[key]) | |
3935 if (key in b and key != 'PatientSex'): | |
3936 self.assertNotEqual(a[key], b[key]) | |
3937 | |
3938 for key in tags['MainDicomTags']: | |
3939 # Not in the patient/study module | |
3940 if (not key in [ 'InstitutionName', | |
3941 'RequestingPhysician', | |
3942 'RequestedProcedureDescription', ]): | |
3943 self.assertEqual(a[key], merged[key]) | |
3944 if (key in b): | |
3945 self.assertNotEqual(a[key], b[key]) | |
3946 |