comparison Tests/Tests.py @ 71:48740070cbf1

TDD: tests for ongoing development of counter tags in C-Find
author Sebastien Jodogne <s.jodogne@gmail.com>
date Sun, 20 Dec 2015 21:16:40 +0100
parents 9e7b5809481f
children 8d16ed93ce09
comparison
equal deleted inserted replaced
70:9e7b5809481f 71:48740070cbf1
73 d = a[i] - b[i] 73 d = a[i] - b[i]
74 if abs(d) >= 0.51: # Add some tolerance for rounding errors 74 if abs(d) >= 0.51: # Add some tolerance for rounding errors
75 return False 75 return False
76 76
77 return True 77 return True
78
79
80 def CallFindScu(args):
81 p = subprocess.Popen([ FindExecutable('findscu'),
82 '-P', '-aec', _REMOTE['DicomAet'], '-aet', _LOCAL['DicomAet'],
83 _REMOTE['Server'], str(_REMOTE['DicomPort']) ] + args,
84 stderr=subprocess.PIPE)
85 return p.communicate()[1]
78 86
79 87
80 def CallMoveScu(args): 88 def CallMoveScu(args):
81 subprocess.check_call([ FindExecutable('movescu'), 89 subprocess.check_call([ FindExecutable('movescu'),
82 '--move', _LOCAL['DicomAet'], # Target AET (i.e. storescp) 90 '--move', _LOCAL['DicomAet'], # Target AET (i.e. storescp)
1031 self.assertEqual(DoGet(_REMOTE, '/instances/%s/metadata/Origin' % i[0]), 'DicomProtocol') 1039 self.assertEqual(DoGet(_REMOTE, '/instances/%s/metadata/Origin' % i[0]), 'DicomProtocol')
1032 self.assertEqual(DoGet(_REMOTE, '/instances/%s/metadata/RemoteAET' % i[0]), 'STORESCU') 1040 self.assertEqual(DoGet(_REMOTE, '/instances/%s/metadata/RemoteAET' % i[0]), 'STORESCU')
1033 1041
1034 1042
1035 def test_incoming_findscu(self): 1043 def test_incoming_findscu(self):
1036 def CallFindScu(args):
1037 p = subprocess.Popen([ FindExecutable('findscu'),
1038 '-P', '-aec', _REMOTE['DicomAet'], '-aet', _LOCAL['DicomAet'],
1039 _REMOTE['Server'], str(_REMOTE['DicomPort']) ] + args,
1040 stderr=subprocess.PIPE)
1041 return p.communicate()[1]
1042
1043 UploadInstance(_REMOTE, 'Multiframe.dcm') 1044 UploadInstance(_REMOTE, 'Multiframe.dcm')
1044 UploadInstance(_REMOTE, 'ColorTestImageJ.dcm') 1045 UploadInstance(_REMOTE, 'ColorTestImageJ.dcm')
1045 1046
1046 i = CallFindScu([ '-k', '0008,0052=PATIENT', '-k', '0010,0010' ]) 1047 i = CallFindScu([ '-k', '0008,0052=PATIENT', '-k', '0010,0010' ])
1047 patientNames = re.findall('\(0010,0010\).*?\[(.*?)\]', i) 1048 patientNames = re.findall('\(0010,0010\).*?\[(.*?)\]', i)
2683 self.assertTrue(re.search('1.3.46.670589.11.17521.5.0.3124.2008081908590448738', a) != None) 2684 self.assertTrue(re.search('1.3.46.670589.11.17521.5.0.3124.2008081908590448738', a) != None)
2684 self.assertTrue(re.search('1.3.46.670589.11.0.0.11.4.2.0.8743.5.5396.2006120114333648576', a) != None) 2685 self.assertTrue(re.search('1.3.46.670589.11.0.0.11.4.2.0.8743.5.5396.2006120114333648576', a) != None)
2685 self.assertTrue(re.search('1.2.826.0.1.3680043.2.1569.1.4.323026757.1700.1399452091.57', a) != None) 2686 self.assertTrue(re.search('1.2.826.0.1.3680043.2.1569.1.4.323026757.1700.1399452091.57', a) != None)
2686 2687
2687 os.remove('/tmp/DICOMDIR') 2688 os.remove('/tmp/DICOMDIR')
2689
2690
2691 def test_findscu_counters(self):
2692 UploadInstance(_REMOTE, 'Comunix/Ct/IM-0001-0001.dcm')
2693 UploadInstance(_REMOTE, 'Comunix/Pet/IM-0001-0001.dcm')
2694 UploadInstance(_REMOTE, 'Comunix/Pet/IM-0001-0002.dcm')
2695
2696 i = CallFindScu([ '-k', '0008,0052=PATIENT', '-k', 'NumberOfPatientRelatedStudies' ])
2697 s = re.findall('\(0020,1200\).*?\[(.*?)\]', i)
2698 self.assertEqual(1, len(s))
2699 self.assertTrue('1 ' in s)
2700
2701 i = CallFindScu([ '-k', '0008,0052=PATIENT', '-k', 'NumberOfPatientRelatedSeries' ])
2702 s = re.findall('\(0020,1202\).*?\[(.*?)\]', i)
2703 self.assertEqual(1, len(s))
2704 self.assertTrue('2 ' in s)
2705
2706 i = CallFindScu([ '-k', '0008,0052=PATIENT', '-k', 'NumberOfPatientRelatedInstances' ])
2707 s = re.findall('\(0020,1204\).*?\[(.*?)\]', i)
2708 self.assertEqual(1, len(s))
2709 self.assertTrue('3 ' in s)
2710
2711 i = CallFindScu([ '-k', '0008,0052=STUDY', '-k', 'NumberOfStudyRelatedSeries' ])
2712 s = re.findall('\(0020,1206\).*?\[(.*?)\]', i)
2713 self.assertEqual(1, len(s))
2714 self.assertTrue('2 ' in s)
2715
2716 i = CallFindScu([ '-k', '0008,0052=STUDY', '-k', 'NumberOfStudyRelatedInstances' ])
2717 s = re.findall('\(0020,1208\).*?\[(.*?)\]', i)
2718 self.assertEqual(1, len(s))
2719 self.assertTrue('3 ' in s)
2720
2721 i = CallFindScu([ '-k', '0008,0052=SERIES', '-k', 'NumberOfSeriesRelatedInstances' ])
2722 s = re.findall('\(0020,1209\).*?\[(.*?)\]', i)
2723 self.assertEqual(2, len(s))
2724 self.assertTrue('1 ' in s)
2725 self.assertTrue('2 ' in s)
2726
2727 i = CallFindScu([ '-k', '0008,0052=STUDY', '-k', 'ModalitiesInStudy' ])
2728 s = re.findall('\(0008,0061\).*?\[(.*?)\]', i)
2729 self.assertEqual(1, len(s))
2730 t = map(lambda x: x.strip(), s[0].split('\\'))
2731 self.assertTrue('PT' in t)
2732 self.assertTrue('CT' in t)
2733
2734 i = CallFindScu([ '-k', '0008,0052=STUDY', '-k', 'SOPClassesInStudy' ])
2735 s = re.findall('\(0008,0062\).*?\[(.*?)\]', i)
2736 self.assertEqual(1, len(s))
2737 t = map(lambda x: x.strip(), s[0].split('\\'))
2738 self.assertTrue('1.2.840.10008.5.1.4.1.1.2' in t)
2739 self.assertTrue('1.2.840.10008.5.1.4.1.1.128' in t)
2740
2741