Mercurial > hg > orthanc-tests
comparison Tests/Tests.py @ 92:dbcbffb889da
test_findscu_encoding
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Thu, 08 Dec 2016 12:46:04 +0100 |
parents | 74b7b9aed5f8 |
children | a807a4699eb4 |
comparison
equal
deleted
inserted
replaced
91:ba5619c3941d | 92:dbcbffb889da |
---|---|
2088 | 2088 |
2089 self.assertEqual('b57e6c872a3da50877c7da689b03a444', ComputeMD5(DoGet(_REMOTE, '/instances/%s/matlab' % signed))) | 2089 self.assertEqual('b57e6c872a3da50877c7da689b03a444', ComputeMD5(DoGet(_REMOTE, '/instances/%s/matlab' % signed))) |
2090 | 2090 |
2091 | 2091 |
2092 def test_googlecode_issue_32(self): | 2092 def test_googlecode_issue_32(self): |
2093 self.assertRaises(Exception, lambda: DoPut(_REMOTE, '/tools/default-encoding', 'nope')) | |
2094 self.assertEqual('Windows1251', DoPut(_REMOTE, '/tools/default-encoding', 'Windows1251')) | |
2095 self.assertEqual('Windows1251', DoGet(_REMOTE, '/tools/default-encoding')) | |
2096 | |
2093 f = UploadInstance(_REMOTE, 'Issue32.dcm')['ID'] | 2097 f = UploadInstance(_REMOTE, 'Issue32.dcm')['ID'] |
2094 tags = DoGet(_REMOTE, '/instances/%s/tags?simplify' % f) | 2098 tags = DoGet(_REMOTE, '/instances/%s/tags?simplify' % f) |
2095 self.assertEqual(u'Рентгенография', tags['SeriesDescription']) | 2099 self.assertEqual(u'Рентгенография', tags['SeriesDescription']) |
2096 self.assertEqual(u'Таз', tags['BodyPartExamined']) | 2100 self.assertEqual(u'Таз', tags['BodyPartExamined']) |
2097 self.assertEqual(u'Прямая', tags['ViewPosition']) | 2101 self.assertEqual(u'Прямая', tags['ViewPosition']) |
2098 | 2102 |
2099 | 2103 # Replay the same test using Latin1 as default encoding: This must fail |
2104 self.assertEqual('Latin1', DoPut(_REMOTE, '/tools/default-encoding', 'Latin1')) | |
2105 | |
2106 DoDelete(_REMOTE, '/instances/%s' % f) | |
2107 f = UploadInstance(_REMOTE, 'Issue32.dcm')['ID'] | |
2108 tags = DoGet(_REMOTE, '/instances/%s/tags?simplify' % f) | |
2109 self.assertNotEqual(u'Рентгенография', tags['SeriesDescription']) | |
2110 | |
2111 | |
2100 def test_encodings(self): | 2112 def test_encodings(self): |
2101 # Latin-1 (ISO_IR 100) | 2113 # Latin-1 (ISO_IR 100) |
2102 brainix = UploadInstance(_REMOTE, 'Brainix/Epi/IM-0001-0001.dcm')['ID'] | 2114 brainix = UploadInstance(_REMOTE, 'Brainix/Epi/IM-0001-0001.dcm')['ID'] |
2103 tags = DoGet(_REMOTE, '/instances/%s/tags?simplify' % brainix) | 2115 tags = DoGet(_REMOTE, '/instances/%s/tags?simplify' % brainix) |
2104 self.assertEqual(u'IRM cérébrale, neuro-crâne', tags['StudyDescription']) | 2116 self.assertEqual(u'IRM cérébrale, neuro-crâne', tags['StudyDescription']) |
2987 i = UploadInstance(_REMOTE, 'PrivateMDNTags.dcm')['ID'] | 2999 i = UploadInstance(_REMOTE, 'PrivateMDNTags.dcm')['ID'] |
2988 t = DoGet(_REMOTE, '/instances/%s/tags?simplify' % i) | 3000 t = DoGet(_REMOTE, '/instances/%s/tags?simplify' % i) |
2989 self.assertEqual('1.2.840.113704.1.111.6320.1342451261.21', t['PET-CT Multi Modality Name']) | 3001 self.assertEqual('1.2.840.113704.1.111.6320.1342451261.21', t['PET-CT Multi Modality Name']) |
2990 self.assertEqual('p37s0_na_ctac.img', t['Original Image Filename']) | 3002 self.assertEqual('p37s0_na_ctac.img', t['Original Image Filename']) |
2991 | 3003 |
3004 | |
3005 def test_findscu_encoding(self): | |
3006 # Check out ../Database/Encodings/Generate.sh | |
3007 TEST = u'Test-éüäöòДΘĝדصķћ๛ネİ' | |
3008 ENCODINGS = { | |
3009 'Arabic' : [ 'ISO_IR 127' ], | |
3010 'Ascii' : [ 'ISO_IR 6' ], # More accurately, ISO 646 | |
3011 'Cyrillic' : [ 'ISO_IR 144' ], | |
3012 'Greek' : [ 'ISO_IR 126' ], | |
3013 'Hebrew' : [ 'ISO_IR 138' ], | |
3014 'Japanese' : [ 'ISO_IR 13', 'shift-jis' ], | |
3015 'Latin1' : [ 'ISO_IR 100' ], | |
3016 'Latin2' : [ 'ISO_IR 101' ], | |
3017 'Latin3' : [ 'ISO_IR 109' ], | |
3018 'Latin4' : [ 'ISO_IR 110' ], | |
3019 'Latin5' : [ 'ISO_IR 148' ], | |
3020 'Thai' : [ 'ISO_IR 166', 'tis-620' ], | |
3021 'Utf8' : [ 'ISO_IR 192' ], | |
3022 } | |
3023 | |
3024 for name in ENCODINGS.iterkeys(): | |
3025 if len(ENCODINGS[name]) == 1: | |
3026 ENCODINGS[name].append(name.lower()) | |
3027 | |
3028 UploadInstance(_REMOTE, 'Encodings/Lena-utf8.dcm') | |
3029 | |
3030 for name in ENCODINGS.iterkeys(): | |
3031 self.assertEqual(name, DoPut(_REMOTE, '/tools/default-encoding', name)) | |
3032 self.assertEqual(name, DoGet(_REMOTE, '/tools/default-encoding')) | |
3033 | |
3034 i = CallFindScu([ '-k', '0008,0052=STUDY', | |
3035 '-k', 'SpecificCharacterSet', | |
3036 '-k', 'PatientName' ]) | |
3037 | |
3038 characterSet = re.findall('\(0008,0005\).*?\[(.*?)\]', i) | |
3039 self.assertEqual(1, len(characterSet)) | |
3040 self.assertEqual(ENCODINGS[name][0], characterSet[0].strip()) | |
3041 | |
3042 patientName = re.findall('\(0010,0010\).*?\[(.*?)\]', i) | |
3043 self.assertEqual(1, len(patientName)) | |
3044 | |
3045 expected = TEST.encode(ENCODINGS[name][1], 'ignore') | |
3046 self.assertEqual(expected, patientName[0].strip()) | |
3047 | |
3048 | |
3049 #for master in ENCODINGS: | |
3050 for master in [ 'Latin1', 'Utf8', 'Cyrillic' ]: # Shortcut to speedup tests | |
3051 self.assertEqual(master, DoPut(_REMOTE, '/tools/default-encoding', master)) | |
3052 self.assertEqual(master, DoGet(_REMOTE, '/tools/default-encoding')) | |
3053 | |
3054 for name in ENCODINGS: | |
3055 DropOrthanc(_REMOTE) | |
3056 UploadInstance(_REMOTE, 'Encodings/Lena-%s.dcm' % ENCODINGS[name][1]) | |
3057 | |
3058 i = CallFindScu([ '-k', '0008,0052=STUDY', | |
3059 '-k', 'PatientID', | |
3060 '-k', 'SpecificCharacterSet', | |
3061 '-k', 'PatientName' ]) | |
3062 i = i.decode(ENCODINGS[master][1]) | |
3063 | |
3064 characterSet = re.findall('\(0008,0005\).*?\[(.*?)\]', i) | |
3065 self.assertEqual(1, len(characterSet)) | |
3066 self.assertEqual(ENCODINGS[master][0], characterSet[0].strip()) | |
3067 | |
3068 patientId = re.findall('\(0010,0020\).*?\[(.*?)\]', i) | |
3069 self.assertEqual(1, len(patientId)) | |
3070 self.assertEqual(ENCODINGS[name][1], patientId[0].strip()) | |
3071 | |
3072 patientName = re.findall('\(0010,0010\).*?\[(.*?)\]', i) | |
3073 self.assertEqual(1, len(patientName)) | |
3074 | |
3075 tmp = ENCODINGS[name][1] | |
3076 expected = TEST.encode(tmp, 'ignore').decode(tmp) | |
3077 tmp = ENCODINGS[master][1] | |
3078 expected = expected.encode(tmp, 'ignore').decode(tmp) | |
3079 | |
3080 self.assertEqual(expected, patientName[0].strip()) | |
3081 | |
3082 | |
3083 a = DoPost(_REMOTE, '/tools/find', { 'Expand' : True, | |
3084 'Level' : 'Study', | |
3085 'Query' : { }}) | |
3086 self.assertEqual(1, len(a)) | |
3087 | |
3088 tmp = ENCODINGS[name][1] | |
3089 self.assertEqual(TEST.encode(tmp, 'ignore').decode(tmp), a[0]["PatientMainDicomTags"]["PatientName"]) |