Mercurial > hg > orthanc-tests
annotate Plugins/DicomWeb/Run.py @ 277:95c47602990c
fix
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Wed, 04 Mar 2020 13:10:29 +0100 |
parents | cc10eefaf908 |
children | 514785dacd6d |
rev | line source |
---|---|
32
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1 #!/usr/bin/python |
224
f5414254ccaa
test_bitbucket_issue_113
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
223
diff
changeset
|
2 # -*- coding: utf-8 -*- |
f5414254ccaa
test_bitbucket_issue_113
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
223
diff
changeset
|
3 |
32
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
4 |
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
5 # Orthanc - A Lightweight, RESTful DICOM Store |
73 | 6 # Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics |
32
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
7 # Department, University Hospital of Liege, Belgium |
260
943166deebcb
upgrade to year 2020
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
259
diff
changeset
|
8 # Copyright (C) 2017-2020 Osimis S.A., Belgium |
32
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
9 # |
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
10 # This program is free software: you can redistribute it and/or |
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
11 # modify it under the terms of the GNU General Public License as |
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
12 # published by the Free Software Foundation, either version 3 of the |
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
13 # License, or (at your option) any later version. |
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
14 # |
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
15 # This program is distributed in the hope that it will be useful, but |
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
16 # WITHOUT ANY WARRANTY; without even the implied warranty of |
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
17 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
18 # General Public License for more details. |
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
19 # |
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
20 # You should have received a copy of the GNU General Public License |
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
21 # along with this program. If not, see <http://www.gnu.org/licenses/>. |
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
22 |
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
23 |
85 | 24 |
25 # You must add the following to the configuration file: | |
26 # | |
27 # "DicomWeb" : { | |
28 # "Servers" : { | |
29 # "sample" : [ "http://localhost:8042/dicom-web/", "alice", "orthanctest" ] | |
30 # } | |
31 # } | |
32 | |
33 | |
34 | |
35 | |
32
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
36 import os |
33 | 37 import pprint |
32
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
38 import sys |
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
39 import argparse |
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
40 import unittest |
83 | 41 import re |
33 | 42 from DicomWeb import * |
32
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
43 |
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
44 sys.path.append(os.path.join(os.path.dirname(__file__), '..', '..', 'Tests')) |
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
45 from Toolbox import * |
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
46 |
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
47 |
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
48 ## |
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
49 ## Parse the command-line arguments |
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
50 ## |
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
51 |
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
52 parser = argparse.ArgumentParser(description = 'Run the integration tests for the DICOMweb plugin.') |
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
53 |
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
54 parser.add_argument('--server', |
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
55 default = 'localhost', |
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
56 help = 'Address of the Orthanc server to test') |
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
57 parser.add_argument('--rest', |
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
58 type = int, |
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
59 default = 8042, |
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
60 help = 'Port to the REST API') |
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
61 parser.add_argument('--username', |
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
62 default = 'alice', |
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
63 help = 'Username to the REST API') |
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
64 parser.add_argument('--password', |
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
65 default = 'orthanctest', |
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
66 help = 'Password to the REST API') |
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
67 parser.add_argument('--wado', |
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
68 default = '/wado', |
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
69 help = 'Path to the WADO API') |
33 | 70 parser.add_argument('--dicomweb', |
32
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
71 default = '/dicom-web/', |
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
72 help = 'Path to the DICOMweb API') |
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
73 parser.add_argument('--force', help = 'Do not warn the user', |
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
74 action = 'store_true') |
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
75 parser.add_argument('options', metavar = 'N', nargs = '*', |
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
76 help='Arguments to Python unittest') |
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
77 |
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
78 args = parser.parse_args() |
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
79 |
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
80 |
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
81 ## |
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
82 ## Configure the testing context |
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
83 ## |
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
84 |
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
85 if not args.force: |
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
86 print(""" |
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
87 WARNING: This test will remove all the content of your |
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
88 Orthanc instance running on %s! |
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
89 |
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
90 Are you sure ["yes" to go on]?""" % args.server) |
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
91 |
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
92 if sys.stdin.readline().strip() != 'yes': |
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
93 print('Aborting...') |
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
94 exit(0) |
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
95 |
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
96 |
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
97 ORTHANC = DefineOrthanc(server = args.server, |
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
98 username = args.username, |
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
99 password = args.password, |
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
100 restPort = args.rest) |
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
101 |
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
102 |
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
103 ## |
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
104 ## The tests |
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
105 ## |
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
106 |
249
24e5c8ca9440
DICOMweb: test_rendered
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
248
diff
changeset
|
107 |
24e5c8ca9440
DICOMweb: test_rendered
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
248
diff
changeset
|
108 def UploadAndGetWadoPath(dicom): |
24e5c8ca9440
DICOMweb: test_rendered
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
248
diff
changeset
|
109 i = UploadInstance(ORTHANC, dicom) ['ID'] |
24e5c8ca9440
DICOMweb: test_rendered
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
248
diff
changeset
|
110 study = DoGet(ORTHANC, '/instances/%s/tags?simplify' % i) ['StudyInstanceUID'] |
24e5c8ca9440
DICOMweb: test_rendered
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
248
diff
changeset
|
111 series = DoGet(ORTHANC, '/instances/%s/tags?simplify' % i) ['SeriesInstanceUID'] |
24e5c8ca9440
DICOMweb: test_rendered
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
248
diff
changeset
|
112 instance = DoGet(ORTHANC, '/instances/%s/tags?simplify' % i) ['SOPInstanceUID'] |
24e5c8ca9440
DICOMweb: test_rendered
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
248
diff
changeset
|
113 return '/studies/%s/series/%s/instances/%s' % (study, series, instance) |
24e5c8ca9440
DICOMweb: test_rendered
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
248
diff
changeset
|
114 |
24e5c8ca9440
DICOMweb: test_rendered
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
248
diff
changeset
|
115 |
24e5c8ca9440
DICOMweb: test_rendered
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
248
diff
changeset
|
116 |
32
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
117 class Orthanc(unittest.TestCase): |
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
118 def setUp(self): |
83 | 119 if (sys.version_info >= (3, 0)): |
120 # Remove annoying warnings about unclosed socket in Python 3 | |
121 import warnings | |
122 warnings.simplefilter("ignore", ResourceWarning) | |
123 | |
270
082f35cb4459
test_bitbuck_issue_168
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
261
diff
changeset
|
124 #print("In test: ", self._testMethodName) |
082f35cb4459
test_bitbuck_issue_168
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
261
diff
changeset
|
125 |
32
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
126 DropOrthanc(ORTHANC) |
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
127 |
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
128 def test_wado_dicom(self): |
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
129 UploadInstance(ORTHANC, 'Brainix/Flair/IM-0001-0001.dcm') |
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
130 |
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
131 SIZE = 169478 |
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
132 INSTANCE = '1.3.46.670589.11.0.0.11.4.2.0.8743.5.5396.2006120114314079549' |
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
133 SERIES = '1.3.46.670589.11.0.0.11.4.2.0.8743.5.5396.2006120114285654497' |
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
134 STUDY = '2.16.840.1.113669.632.20.1211.10000357775' |
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
135 |
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
136 self.assertRaises(Exception, lambda: DoGet(ORTHANC, args.wado)) |
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
137 self.assertRaises(Exception, lambda: DoGet(ORTHANC, args.wado + '?requestType=WADO')) |
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
138 self.assertRaises(Exception, lambda: DoGet(ORTHANC, args.wado + '?objectUID=%s' % INSTANCE)) |
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
139 |
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
140 dicom = DoGet(ORTHANC, args.wado + '?contentType=application/dicom&requestType=WADO&objectUID=%s' % INSTANCE) |
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
141 self.assertEqual(SIZE, len(dicom)) |
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
142 |
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
143 dicom = DoGet(ORTHANC, args.wado + '?contentType=application/dicom&requestType=WADO&objectUID=%s&seriesUID=%s' % (INSTANCE, SERIES)) |
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
144 self.assertEqual(SIZE, len(dicom)) |
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
145 |
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
146 dicom = DoGet(ORTHANC, args.wado + '?contentType=application/dicom&requestType=WADO&objectUID=%s&seriesUID=%s&studyUID=%s' % (INSTANCE, SERIES, STUDY)) |
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
147 self.assertEqual(SIZE, len(dicom)) |
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
148 |
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
149 dicom = DoGet(ORTHANC, args.wado + '?contentType=application/dicom&requestType=WADO&objectUID=%s&seriesUID=%s' % (INSTANCE, SERIES)) |
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
150 self.assertEqual(SIZE, len(dicom)) |
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
151 |
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
152 dicom = DoGet(ORTHANC, args.wado + '?contentType=application/dicom&requestType=WADO&objectUID=%s&studyUID=%s' % (INSTANCE, STUDY)) |
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
153 self.assertEqual(SIZE, len(dicom)) |
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
154 |
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
155 self.assertRaises(Exception, lambda: DoGet(ORTHANC, args.wado + '?requestType=WADO&objectUID=%s&seriesUID=nope' % INSTANCE)) |
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
156 self.assertRaises(Exception, lambda: DoGet(ORTHANC, args.wado + '?requestType=WADO&objectUID=%s&studyUID=nope' % INSTANCE)) |
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
157 self.assertRaises(Exception, lambda: DoGet(ORTHANC, args.wado + '?requestType=WADO&objectUID=%s&seriesUID=nope&studyUID=nope' % INSTANCE)) |
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
158 |
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
159 def test_wado_image(self): |
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
160 UploadInstance(ORTHANC, 'Phenix/IM-0001-0001.dcm') |
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
161 INSTANCE = '1.2.840.113704.7.1.1.6632.1127829031.2' |
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
162 |
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
163 im = GetImage(ORTHANC, args.wado + '?requestType=WADO&objectUID=%s' % INSTANCE) |
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
164 self.assertEqual('JPEG', im.format) |
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
165 self.assertEqual('L', im.mode) |
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
166 self.assertEqual(512, im.size[0]) |
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
167 self.assertEqual(358, im.size[1]) |
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
168 |
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
169 im = GetImage(ORTHANC, args.wado + '?contentType=image/jpg&requestType=WADO&objectUID=%s' % INSTANCE) |
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
170 self.assertEqual('JPEG', im.format) |
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
171 |
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
172 im = GetImage(ORTHANC, args.wado + '?contentType=image/png&requestType=WADO&objectUID=%s' % INSTANCE) |
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
173 self.assertEqual('PNG', im.format) |
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
174 self.assertEqual('L', im.mode) |
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
175 self.assertEqual(512, im.size[0]) |
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
176 self.assertEqual(358, im.size[1]) |
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
177 |
33 | 178 def test_stow(self): |
179 self.assertEqual(0, len(DoGet(ORTHANC, '/instances'))) | |
180 SendStow(ORTHANC, args.dicomweb + '/studies', GetDatabasePath('Phenix/IM-0001-0001.dcm')) | |
181 self.assertEqual(1, len(DoGet(ORTHANC, '/instances'))) | |
182 a = SendStow(ORTHANC, args.dicomweb + '/studies', GetDatabasePath('Phenix/IM-0001-0001.dcm')) | |
183 self.assertEqual(1, len(DoGet(ORTHANC, '/instances'))) | |
184 | |
227
875ff7460ae8
test_qido_fields, test_stow_errors
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
226
diff
changeset
|
185 self.assertEqual(4, len(a)) |
875ff7460ae8
test_qido_fields, test_stow_errors
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
226
diff
changeset
|
186 |
875ff7460ae8
test_qido_fields, test_stow_errors
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
226
diff
changeset
|
187 # Specific character set |
875ff7460ae8
test_qido_fields, test_stow_errors
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
226
diff
changeset
|
188 self.assertTrue('00080005' in a) |
875ff7460ae8
test_qido_fields, test_stow_errors
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
226
diff
changeset
|
189 self.assertEqual('CS', a['00080005']['vr']) |
33 | 190 |
191 self.assertTrue(a['00081190']['Value'][0].endswith('studies/2.16.840.1.113669.632.20.1211.10000098591')) | |
227
875ff7460ae8
test_qido_fields, test_stow_errors
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
226
diff
changeset
|
192 self.assertEqual('UR', a['00081190']['vr']) |
875ff7460ae8
test_qido_fields, test_stow_errors
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
226
diff
changeset
|
193 |
875ff7460ae8
test_qido_fields, test_stow_errors
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
226
diff
changeset
|
194 self.assertFalse('Value' in a['00081198']) # No error => empty sequence |
875ff7460ae8
test_qido_fields, test_stow_errors
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
226
diff
changeset
|
195 self.assertEqual('SQ', a['00081198']['vr']) |
875ff7460ae8
test_qido_fields, test_stow_errors
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
226
diff
changeset
|
196 |
875ff7460ae8
test_qido_fields, test_stow_errors
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
226
diff
changeset
|
197 self.assertEqual(1, len(a['00081199']['Value'])) # 1 success |
875ff7460ae8
test_qido_fields, test_stow_errors
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
226
diff
changeset
|
198 self.assertEqual('SQ', a['00081199']['vr']) |
875ff7460ae8
test_qido_fields, test_stow_errors
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
226
diff
changeset
|
199 |
875ff7460ae8
test_qido_fields, test_stow_errors
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
226
diff
changeset
|
200 b = a['00081199']['Value'][0] |
875ff7460ae8
test_qido_fields, test_stow_errors
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
226
diff
changeset
|
201 |
875ff7460ae8
test_qido_fields, test_stow_errors
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
226
diff
changeset
|
202 # Referenced SOP class UID |
875ff7460ae8
test_qido_fields, test_stow_errors
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
226
diff
changeset
|
203 self.assertEqual('UI', b['00081150']['vr']) |
875ff7460ae8
test_qido_fields, test_stow_errors
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
226
diff
changeset
|
204 self.assertEqual(1, len(b['00081150']['Value'])) |
875ff7460ae8
test_qido_fields, test_stow_errors
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
226
diff
changeset
|
205 self.assertEqual('1.2.840.10008.5.1.4.1.1.2', b['00081150']['Value'][0]) |
875ff7460ae8
test_qido_fields, test_stow_errors
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
226
diff
changeset
|
206 |
875ff7460ae8
test_qido_fields, test_stow_errors
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
226
diff
changeset
|
207 # Referenced SOP instance UID |
875ff7460ae8
test_qido_fields, test_stow_errors
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
226
diff
changeset
|
208 self.assertEqual('UI', b['00081155']['vr']) |
875ff7460ae8
test_qido_fields, test_stow_errors
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
226
diff
changeset
|
209 self.assertEqual(1, len(b['00081155']['Value'])) |
875ff7460ae8
test_qido_fields, test_stow_errors
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
226
diff
changeset
|
210 self.assertEqual('1.2.840.113704.7.1.1.6632.1127829031.2', b['00081155']['Value'][0]) |
875ff7460ae8
test_qido_fields, test_stow_errors
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
226
diff
changeset
|
211 |
875ff7460ae8
test_qido_fields, test_stow_errors
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
226
diff
changeset
|
212 # Retrieve URL |
875ff7460ae8
test_qido_fields, test_stow_errors
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
226
diff
changeset
|
213 self.assertEqual('UR', b['00081190']['vr']) |
875ff7460ae8
test_qido_fields, test_stow_errors
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
226
diff
changeset
|
214 self.assertEqual(1, len(b['00081190']['Value'])) |
875ff7460ae8
test_qido_fields, test_stow_errors
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
226
diff
changeset
|
215 self.assertTrue(b['00081190']['Value'][0]. |
33 | 216 endswith('series/1.2.840.113704.1.111.5692.1127828999.2/instances/1.2.840.113704.7.1.1.6632.1127829031.2')) |
217 | |
83 | 218 # Remove the "http://localhost:8042" prefix |
219 url = a['00081190']['Value'][0] | |
220 url = re.sub(r'(http|https)://[^/]+(/.*)', r'\2', url) | |
221 | |
222 # Get the content-length of all the multiparts of this WADO-RS request | |
223 b = DoGet(ORTHANC, url).decode('utf-8', 'ignore') | |
224 parts = re.findall(r'^Content-Length:\s*(\d+)\s*', b, re.IGNORECASE | re.MULTILINE) | |
225 self.assertEqual(1, len(parts)) | |
226 self.assertEqual(os.path.getsize(GetDatabasePath('Phenix/IM-0001-0001.dcm')), int(parts[0])) | |
33 | 227 |
227
875ff7460ae8
test_qido_fields, test_stow_errors
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
226
diff
changeset
|
228 |
84 | 229 def test_server_get(self): |
277 | 230 try: |
231 DoDelete(ORTHANC, '/dicom-web/servers/google') # If "AllWindowsStart.sh" is used | |
232 except: | |
233 pass | |
234 | |
84 | 235 UploadInstance(ORTHANC, 'Knee/T1/IM-0001-0001.dcm') |
236 | |
237 self.assertEqual(1, len(DoGet(ORTHANC, '/dicom-web/servers'))) | |
238 self.assertTrue('sample' in DoGet(ORTHANC, '/dicom-web/servers')) | |
239 | |
129 | 240 serversReadback = DoGet(ORTHANC, '/dicom-web/servers?expand') |
241 self.assertEqual('http://localhost:8042/dicom-web/', serversReadback['sample']['Url']) | |
242 self.assertEqual('alice', serversReadback['sample']['Username']) | |
243 | |
84 | 244 sample = DoGet(ORTHANC, '/dicom-web/servers/sample') |
244 | 245 self.assertEqual(5, len(sample)) |
84 | 246 self.assertTrue('stow' in sample) |
247 self.assertTrue('retrieve' in sample) | |
248 self.assertTrue('get' in sample) | |
244 | 249 self.assertTrue('wado' in sample) # New in 0.7 |
250 self.assertTrue('qido' in sample) # New in 0.7 | |
84 | 251 |
252 # application/dicom+xml | |
131
90e5331ddee9
application/dicom+json is now the default in DICOMweb
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
130
diff
changeset
|
253 self.assertEqual(2, len(re.findall('^--', DoGet(ORTHANC, '/dicom-web/studies', |
90e5331ddee9
application/dicom+json is now the default in DICOMweb
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
130
diff
changeset
|
254 headers = { 'Accept' : 'application/dicom+xml' }), |
90e5331ddee9
application/dicom+json is now the default in DICOMweb
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
130
diff
changeset
|
255 re.MULTILINE))) |
90e5331ddee9
application/dicom+json is now the default in DICOMweb
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
130
diff
changeset
|
256 self.assertEqual(2, len(re.findall('^--', DoPost |
90e5331ddee9
application/dicom+json is now the default in DICOMweb
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
130
diff
changeset
|
257 (ORTHANC, '/dicom-web/servers/sample/get', |
90e5331ddee9
application/dicom+json is now the default in DICOMweb
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
130
diff
changeset
|
258 { 'Uri' : '/studies', |
90e5331ddee9
application/dicom+json is now the default in DICOMweb
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
130
diff
changeset
|
259 'HttpHeaders' : { 'Accept' : 'application/dicom+xml' } |
90e5331ddee9
application/dicom+json is now the default in DICOMweb
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
130
diff
changeset
|
260 }), re.MULTILINE))) |
84 | 261 |
262 # application/dicom+json | |
131
90e5331ddee9
application/dicom+json is now the default in DICOMweb
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
130
diff
changeset
|
263 self.assertEqual(1, len(DoGet(ORTHANC, '/dicom-web/studies', |
90e5331ddee9
application/dicom+json is now the default in DICOMweb
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
130
diff
changeset
|
264 headers = { 'Accept' : 'application/dicom+json' }))) |
90e5331ddee9
application/dicom+json is now the default in DICOMweb
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
130
diff
changeset
|
265 self.assertEqual(1, len(DoPost(ORTHANC, '/dicom-web/servers/sample/get', |
90e5331ddee9
application/dicom+json is now the default in DICOMweb
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
130
diff
changeset
|
266 { 'Uri' : '/studies', |
90e5331ddee9
application/dicom+json is now the default in DICOMweb
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
130
diff
changeset
|
267 'HttpHeaders' : { 'Accept' : 'application/dicom+json' }}))) |
90e5331ddee9
application/dicom+json is now the default in DICOMweb
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
130
diff
changeset
|
268 |
90e5331ddee9
application/dicom+json is now the default in DICOMweb
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
130
diff
changeset
|
269 # application/json |
90e5331ddee9
application/dicom+json is now the default in DICOMweb
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
130
diff
changeset
|
270 self.assertEqual(1, len(DoGet(ORTHANC, '/dicom-web/studies', |
90e5331ddee9
application/dicom+json is now the default in DICOMweb
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
130
diff
changeset
|
271 headers = { 'Accept' : 'application/json' }))) |
84 | 272 self.assertEqual(1, len(DoPost(ORTHANC, '/dicom-web/servers/sample/get', |
273 { 'Uri' : '/studies', | |
274 'HttpHeaders' : { 'Accept' : 'application/json' }}))) | |
275 | |
131
90e5331ddee9
application/dicom+json is now the default in DICOMweb
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
130
diff
changeset
|
276 # application/dicom+json is the default as of OrthancDicomWeb-0.5 |
90e5331ddee9
application/dicom+json is now the default in DICOMweb
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
130
diff
changeset
|
277 self.assertEqual(1, len(DoGet(ORTHANC, '/dicom-web/studies'))) |
90e5331ddee9
application/dicom+json is now the default in DICOMweb
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
130
diff
changeset
|
278 self.assertEqual(1, len(DoPost(ORTHANC, '/dicom-web/servers/sample/get', |
90e5331ddee9
application/dicom+json is now the default in DICOMweb
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
130
diff
changeset
|
279 { 'Uri' : '/studies' }))) |
90e5331ddee9
application/dicom+json is now the default in DICOMweb
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
130
diff
changeset
|
280 |
84 | 281 |
282 def test_server_stow(self): | |
283 UploadInstance(ORTHANC, 'Knee/T1/IM-0001-0001.dcm') | |
284 | |
285 self.assertRaises(Exception, lambda: | |
286 DoPost(ORTHANC, '/dicom-web/servers/sample/stow', | |
246
e4e0e2ff91ae
test_bitbucket_issue_143
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
244
diff
changeset
|
287 { 'Resources' : [ 'nope' ], |
e4e0e2ff91ae
test_bitbucket_issue_143
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
244
diff
changeset
|
288 'Synchronous' : True })) # inexisting resource |
84 | 289 |
246
e4e0e2ff91ae
test_bitbucket_issue_143
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
244
diff
changeset
|
290 l = 2 # For >= 0.7 |
e4e0e2ff91ae
test_bitbucket_issue_143
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
244
diff
changeset
|
291 #l = 0 # For <= 0.6 |
e4e0e2ff91ae
test_bitbucket_issue_143
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
244
diff
changeset
|
292 |
e4e0e2ff91ae
test_bitbucket_issue_143
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
244
diff
changeset
|
293 self.assertEqual(l, len(DoPost(ORTHANC, '/dicom-web/servers/sample/stow', |
e4e0e2ff91ae
test_bitbucket_issue_143
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
244
diff
changeset
|
294 { 'Resources' : [ '0a9b3153-2512774b-2d9580de-1fc3dcf6-3bd83918' ], |
e4e0e2ff91ae
test_bitbucket_issue_143
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
244
diff
changeset
|
295 'Synchronous' : True }))) # study |
84 | 296 |
246
e4e0e2ff91ae
test_bitbucket_issue_143
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
244
diff
changeset
|
297 self.assertEqual(l, len(DoPost(ORTHANC, '/dicom-web/servers/sample/stow', |
e4e0e2ff91ae
test_bitbucket_issue_143
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
244
diff
changeset
|
298 { 'Resources' : [ '6de73705-c4e65c1b-9d9ea1b5-cabcd8e7-f15e4285' ], |
e4e0e2ff91ae
test_bitbucket_issue_143
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
244
diff
changeset
|
299 'Synchronous' : True }))) # series |
84 | 300 |
246
e4e0e2ff91ae
test_bitbucket_issue_143
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
244
diff
changeset
|
301 self.assertEqual(l, len(DoPost(ORTHANC, '/dicom-web/servers/sample/stow', |
e4e0e2ff91ae
test_bitbucket_issue_143
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
244
diff
changeset
|
302 { 'Resources' : [ 'c8df6478-d7794217-0f11c293-a41237c9-31d98357' ], |
e4e0e2ff91ae
test_bitbucket_issue_143
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
244
diff
changeset
|
303 'Synchronous' : True }))) # instance |
84 | 304 |
246
e4e0e2ff91ae
test_bitbucket_issue_143
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
244
diff
changeset
|
305 self.assertEqual(l, len(DoPost(ORTHANC, '/dicom-web/servers/sample/stow', |
84 | 306 { 'Resources' : [ |
307 'ca29faea-b6a0e17f-067743a1-8b778011-a48b2a17', | |
308 '0a9b3153-2512774b-2d9580de-1fc3dcf6-3bd83918', | |
309 '6de73705-c4e65c1b-9d9ea1b5-cabcd8e7-f15e4285', | |
246
e4e0e2ff91ae
test_bitbucket_issue_143
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
244
diff
changeset
|
310 'c8df6478-d7794217-0f11c293-a41237c9-31d98357' ], |
e4e0e2ff91ae
test_bitbucket_issue_143
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
244
diff
changeset
|
311 'Synchronous' : True }))) # altogether |
84 | 312 |
313 | |
314 def test_server_retrieve(self): | |
244 | 315 COUNT = 'ReceivedInstancesCount' |
316 #COUNT = 'Instances' # In version <= 0.6 | |
317 | |
84 | 318 UploadInstance(ORTHANC, 'Knee/T1/IM-0001-0001.dcm') |
319 UploadInstance(ORTHANC, 'Knee/T1/IM-0001-0002.dcm') | |
320 UploadInstance(ORTHANC, 'Knee/T2/IM-0001-0001.dcm') | |
321 | |
322 self.assertRaises(Exception, lambda: | |
323 DoPost(ORTHANC, '/dicom-web/servers/sample/retrieve', | |
324 { 'Resources' : [ { 'Study' : 'nope' } ]})) # inexisting resource | |
325 | |
326 t = DoPost(ORTHANC, '/dicom-web/servers/sample/retrieve', | |
327 { 'Resources' : [ { 'Study' : '2.16.840.1.113669.632.20.121711.10000160881' } ] }) | |
244 | 328 self.assertEqual(3, int(t[COUNT])) |
84 | 329 |
330 # Missing "Study" field | |
331 self.assertRaises(Exception, lambda: | |
332 DoPost(ORTHANC, '/dicom-web/servers/sample/retrieve', | |
333 { 'Resources' : [ { 'Series' : '1.3.46.670589.11.17521.5.0.3124.2008081908564160709' } ]})) | |
334 | |
335 t = DoPost(ORTHANC, '/dicom-web/servers/sample/retrieve', | |
336 { 'Resources' : [ { 'Study' : '2.16.840.1.113669.632.20.121711.10000160881', | |
337 'Series' : '1.3.46.670589.11.17521.5.0.3124.2008081908564160709' } ] }) | |
244 | 338 self.assertEqual(2, int(t[COUNT])) |
84 | 339 |
340 t = DoPost(ORTHANC, '/dicom-web/servers/sample/retrieve', | |
341 { 'Resources' : [ { 'Study' : '2.16.840.1.113669.632.20.121711.10000160881', | |
342 'Series' : '1.3.46.670589.11.17521.5.0.3124.2008081909090037350' } ] }) | |
244 | 343 self.assertEqual(1, int(t[COUNT])) |
84 | 344 |
345 t = DoPost(ORTHANC, '/dicom-web/servers/sample/retrieve', | |
346 { 'Resources' : [ { 'Study' : '2.16.840.1.113669.632.20.121711.10000160881', | |
347 'Series' : '1.3.46.670589.11.17521.5.0.3124.2008081909090037350' }, | |
348 { 'Study' : '2.16.840.1.113669.632.20.121711.10000160881', | |
349 'Series' : '1.3.46.670589.11.17521.5.0.3124.2008081908564160709' } ] }) | |
244 | 350 self.assertEqual(3, int(t[COUNT])) |
84 | 351 |
352 t = DoPost(ORTHANC, '/dicom-web/servers/sample/retrieve', | |
353 { 'Resources' : [ { 'Study' : '2.16.840.1.113669.632.20.121711.10000160881', | |
354 'Series' : '1.3.46.670589.11.17521.5.0.3124.2008081909090037350', | |
355 'Instance' : '1.3.46.670589.11.17521.5.0.3124.2008081909113806560' } ] }) | |
244 | 356 self.assertEqual(1, int(t[COUNT])) |
84 | 357 |
358 | |
114
a6019560272f
test_bitbucket_issue_53
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
100
diff
changeset
|
359 def test_bitbucket_issue_53(self): |
a6019560272f
test_bitbucket_issue_53
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
100
diff
changeset
|
360 # DICOMWeb plugin support for "limit" and "offset" parameters in QIDO-RS |
a6019560272f
test_bitbucket_issue_53
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
100
diff
changeset
|
361 # https://bitbucket.org/sjodogne/orthanc/issues/53 |
a6019560272f
test_bitbucket_issue_53
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
100
diff
changeset
|
362 |
a6019560272f
test_bitbucket_issue_53
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
100
diff
changeset
|
363 UploadInstance(ORTHANC, 'Brainix/Flair/IM-0001-0001.dcm') |
a6019560272f
test_bitbucket_issue_53
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
100
diff
changeset
|
364 UploadInstance(ORTHANC, 'Knee/T1/IM-0001-0001.dcm') |
a6019560272f
test_bitbucket_issue_53
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
100
diff
changeset
|
365 |
a6019560272f
test_bitbucket_issue_53
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
100
diff
changeset
|
366 brainix = '2.16.840.1.113669.632.20.1211.10000357775' |
a6019560272f
test_bitbucket_issue_53
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
100
diff
changeset
|
367 knee = '2.16.840.1.113669.632.20.121711.10000160881' |
a6019560272f
test_bitbucket_issue_53
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
100
diff
changeset
|
368 |
a6019560272f
test_bitbucket_issue_53
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
100
diff
changeset
|
369 a = DoGet(ORTHANC, '/dicom-web/studies', |
a6019560272f
test_bitbucket_issue_53
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
100
diff
changeset
|
370 headers = { 'accept' : 'application/json' }) |
a6019560272f
test_bitbucket_issue_53
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
100
diff
changeset
|
371 self.assertEqual(2, len(a)) |
a6019560272f
test_bitbucket_issue_53
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
100
diff
changeset
|
372 |
a6019560272f
test_bitbucket_issue_53
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
100
diff
changeset
|
373 b = [] |
a6019560272f
test_bitbucket_issue_53
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
100
diff
changeset
|
374 a = DoGet(ORTHANC, '/dicom-web/studies?limit=1', |
a6019560272f
test_bitbucket_issue_53
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
100
diff
changeset
|
375 headers = { 'accept' : 'application/json' }) |
a6019560272f
test_bitbucket_issue_53
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
100
diff
changeset
|
376 self.assertEqual(1, len(a)) |
a6019560272f
test_bitbucket_issue_53
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
100
diff
changeset
|
377 b.append(a[0]['0020000D']['Value'][0]) |
a6019560272f
test_bitbucket_issue_53
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
100
diff
changeset
|
378 |
a6019560272f
test_bitbucket_issue_53
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
100
diff
changeset
|
379 a = DoGet(ORTHANC, '/dicom-web/studies?limit=1&offset=1', |
a6019560272f
test_bitbucket_issue_53
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
100
diff
changeset
|
380 headers = { 'accept' : 'application/json' }) |
a6019560272f
test_bitbucket_issue_53
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
100
diff
changeset
|
381 self.assertEqual(1, len(a)) |
a6019560272f
test_bitbucket_issue_53
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
100
diff
changeset
|
382 b.append(a[0]['0020000D']['Value'][0]) |
a6019560272f
test_bitbucket_issue_53
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
100
diff
changeset
|
383 |
a6019560272f
test_bitbucket_issue_53
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
100
diff
changeset
|
384 self.assertTrue(brainix in b) |
a6019560272f
test_bitbucket_issue_53
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
100
diff
changeset
|
385 self.assertTrue(knee in b) |
32
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
386 |
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
387 |
184
e244312964d6
test_bitbucket_issue_111
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
131
diff
changeset
|
388 def test_bitbucket_issue_111(self): |
223
f5aca0917d60
DICOMweb: test_bitbucket_issue_111
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
222
diff
changeset
|
389 # Wrong serialization of empty values |
f5aca0917d60
DICOMweb: test_bitbucket_issue_111
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
222
diff
changeset
|
390 # https://bitbucket.org/sjodogne/orthanc/issues/111 |
f5aca0917d60
DICOMweb: test_bitbucket_issue_111
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
222
diff
changeset
|
391 # https://bitbucket.org/sjodogne/orthanc-dicomweb/issues/3/ |
f5aca0917d60
DICOMweb: test_bitbucket_issue_111
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
222
diff
changeset
|
392 |
184
e244312964d6
test_bitbucket_issue_111
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
131
diff
changeset
|
393 # According to the standard, section F.2.5 |
e244312964d6
test_bitbucket_issue_111
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
131
diff
changeset
|
394 # (http://dicom.nema.org/medical/dicom/current/output/chtml/part18/sect_F.2.5.html), |
e244312964d6
test_bitbucket_issue_111
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
131
diff
changeset
|
395 # null values behave as follows: If an attribute is present in |
e244312964d6
test_bitbucket_issue_111
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
131
diff
changeset
|
396 # DICOM but empty (i.e., Value Length is 0), it shall be |
e244312964d6
test_bitbucket_issue_111
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
131
diff
changeset
|
397 # preserved in the DICOM JSON attribute object containing no |
e244312964d6
test_bitbucket_issue_111
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
131
diff
changeset
|
398 # "Value", "BulkDataURI" or "InlineBinary". |
e244312964d6
test_bitbucket_issue_111
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
131
diff
changeset
|
399 # https://bitbucket.org/sjodogne/orthanc/issues/111/qido-rs-wrong-serialization-of-empty |
e244312964d6
test_bitbucket_issue_111
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
131
diff
changeset
|
400 |
223
f5aca0917d60
DICOMweb: test_bitbucket_issue_111
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
222
diff
changeset
|
401 UploadInstance(ORTHANC, 'Issue111.dcm') |
184
e244312964d6
test_bitbucket_issue_111
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
131
diff
changeset
|
402 |
223
f5aca0917d60
DICOMweb: test_bitbucket_issue_111
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
222
diff
changeset
|
403 # Test WADO-RS |
f5aca0917d60
DICOMweb: test_bitbucket_issue_111
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
222
diff
changeset
|
404 a = DoGet(ORTHANC, '/dicom-web/studies/1.2.276.0.7230010.3.1.2.8323329.30185.1551199973.371589/metadata') |
f5aca0917d60
DICOMweb: test_bitbucket_issue_111
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
222
diff
changeset
|
405 self.assertEqual(1, len(a)) |
f5aca0917d60
DICOMweb: test_bitbucket_issue_111
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
222
diff
changeset
|
406 self.assertTrue('00080050' in a[0]) # AccessionNumber is null |
f5aca0917d60
DICOMweb: test_bitbucket_issue_111
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
222
diff
changeset
|
407 self.assertEqual(1, len(a[0]['00080050'])) # 'vr' is the only field to be present |
f5aca0917d60
DICOMweb: test_bitbucket_issue_111
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
222
diff
changeset
|
408 self.assertEqual('SH', a[0]['00080050']['vr']) |
184
e244312964d6
test_bitbucket_issue_111
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
131
diff
changeset
|
409 |
223
f5aca0917d60
DICOMweb: test_bitbucket_issue_111
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
222
diff
changeset
|
410 # Test QIDO-RS |
f5aca0917d60
DICOMweb: test_bitbucket_issue_111
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
222
diff
changeset
|
411 a = DoGet(ORTHANC, '/dicom-web/studies') |
184
e244312964d6
test_bitbucket_issue_111
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
131
diff
changeset
|
412 self.assertEqual(1, len(a)) |
e244312964d6
test_bitbucket_issue_111
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
131
diff
changeset
|
413 self.assertTrue('00080050' in a[0]) # AccessionNumber is null |
e244312964d6
test_bitbucket_issue_111
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
131
diff
changeset
|
414 self.assertEqual(1, len(a[0]['00080050'])) # 'vr' is the only field to be present |
e244312964d6
test_bitbucket_issue_111
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
131
diff
changeset
|
415 self.assertEqual('SH', a[0]['00080050']['vr']) |
e244312964d6
test_bitbucket_issue_111
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
131
diff
changeset
|
416 |
222
0f03ee6ffa80
DICOMweb: test_wado_hierarchy, test_wado_bulk, test_bitbucket_issue_112
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
195
diff
changeset
|
417 |
0f03ee6ffa80
DICOMweb: test_wado_hierarchy, test_wado_bulk, test_bitbucket_issue_112
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
195
diff
changeset
|
418 def test_wado_hierarchy(self): |
0f03ee6ffa80
DICOMweb: test_wado_hierarchy, test_wado_bulk, test_bitbucket_issue_112
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
195
diff
changeset
|
419 def CheckJson(uri, headers = {}): |
0f03ee6ffa80
DICOMweb: test_wado_hierarchy, test_wado_bulk, test_bitbucket_issue_112
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
195
diff
changeset
|
420 with open(GetDatabasePath('DummyCT.json'), 'r') as f: |
0f03ee6ffa80
DICOMweb: test_wado_hierarchy, test_wado_bulk, test_bitbucket_issue_112
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
195
diff
changeset
|
421 expected = json.loads(f.read()) |
0f03ee6ffa80
DICOMweb: test_wado_hierarchy, test_wado_bulk, test_bitbucket_issue_112
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
195
diff
changeset
|
422 actual = DoGet(ORTHANC, uri, headers) |
0f03ee6ffa80
DICOMweb: test_wado_hierarchy, test_wado_bulk, test_bitbucket_issue_112
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
195
diff
changeset
|
423 self.assertEqual(1, len(actual)) |
0f03ee6ffa80
DICOMweb: test_wado_hierarchy, test_wado_bulk, test_bitbucket_issue_112
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
195
diff
changeset
|
424 AssertAlmostEqualRecursive(self, expected, actual[0]) |
0f03ee6ffa80
DICOMweb: test_wado_hierarchy, test_wado_bulk, test_bitbucket_issue_112
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
195
diff
changeset
|
425 |
0f03ee6ffa80
DICOMweb: test_wado_hierarchy, test_wado_bulk, test_bitbucket_issue_112
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
195
diff
changeset
|
426 UploadInstance(ORTHANC, 'DummyCT.dcm') |
0f03ee6ffa80
DICOMweb: test_wado_hierarchy, test_wado_bulk, test_bitbucket_issue_112
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
195
diff
changeset
|
427 study = '1.2.840.113619.2.176.2025.1499492.7391.1171285944.390' |
0f03ee6ffa80
DICOMweb: test_wado_hierarchy, test_wado_bulk, test_bitbucket_issue_112
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
195
diff
changeset
|
428 series = '1.2.840.113619.2.176.2025.1499492.7391.1171285944.394' |
0f03ee6ffa80
DICOMweb: test_wado_hierarchy, test_wado_bulk, test_bitbucket_issue_112
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
195
diff
changeset
|
429 instance = '1.2.840.113619.2.176.2025.1499492.7040.1171286242.109' |
0f03ee6ffa80
DICOMweb: test_wado_hierarchy, test_wado_bulk, test_bitbucket_issue_112
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
195
diff
changeset
|
430 |
0f03ee6ffa80
DICOMweb: test_wado_hierarchy, test_wado_bulk, test_bitbucket_issue_112
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
195
diff
changeset
|
431 URI = '/dicom-web/studies/%s/series/%s/instances/%s/metadata' |
0f03ee6ffa80
DICOMweb: test_wado_hierarchy, test_wado_bulk, test_bitbucket_issue_112
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
195
diff
changeset
|
432 self.assertRaises(Exception, lambda: DoGet(ORTHANC, URI % (study, series, instance), |
0f03ee6ffa80
DICOMweb: test_wado_hierarchy, test_wado_bulk, test_bitbucket_issue_112
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
195
diff
changeset
|
433 headers = { 'accept' : 'application/nope' })) |
0f03ee6ffa80
DICOMweb: test_wado_hierarchy, test_wado_bulk, test_bitbucket_issue_112
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
195
diff
changeset
|
434 |
0f03ee6ffa80
DICOMweb: test_wado_hierarchy, test_wado_bulk, test_bitbucket_issue_112
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
195
diff
changeset
|
435 CheckJson(URI % (study, series, instance), headers = { 'accept' : 'application/dicom+json' }) |
0f03ee6ffa80
DICOMweb: test_wado_hierarchy, test_wado_bulk, test_bitbucket_issue_112
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
195
diff
changeset
|
436 CheckJson('/dicom-web/studies/%s/series/%s/metadata' % (study, series)) |
0f03ee6ffa80
DICOMweb: test_wado_hierarchy, test_wado_bulk, test_bitbucket_issue_112
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
195
diff
changeset
|
437 CheckJson('/dicom-web/studies/%s/metadata' % study) |
0f03ee6ffa80
DICOMweb: test_wado_hierarchy, test_wado_bulk, test_bitbucket_issue_112
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
195
diff
changeset
|
438 |
0f03ee6ffa80
DICOMweb: test_wado_hierarchy, test_wado_bulk, test_bitbucket_issue_112
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
195
diff
changeset
|
439 self.assertRaises(Exception, lambda: DoGet(ORTHANC, URI % ('nope', series, instance))) |
0f03ee6ffa80
DICOMweb: test_wado_hierarchy, test_wado_bulk, test_bitbucket_issue_112
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
195
diff
changeset
|
440 self.assertRaises(Exception, lambda: DoGet(ORTHANC, URI % (study, 'nope', instance))) |
0f03ee6ffa80
DICOMweb: test_wado_hierarchy, test_wado_bulk, test_bitbucket_issue_112
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
195
diff
changeset
|
441 self.assertRaises(Exception, lambda: DoGet(ORTHANC, URI % (study, series, 'nope'))) |
0f03ee6ffa80
DICOMweb: test_wado_hierarchy, test_wado_bulk, test_bitbucket_issue_112
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
195
diff
changeset
|
442 self.assertRaises(Exception, lambda: DoGet(ORTHANC, '/dicom-web/studies/%s/series/%s/metadata' % ('nope', series))) |
0f03ee6ffa80
DICOMweb: test_wado_hierarchy, test_wado_bulk, test_bitbucket_issue_112
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
195
diff
changeset
|
443 self.assertRaises(Exception, lambda: DoGet(ORTHANC, '/dicom-web/studies/%s/series/%s/metadata' % (study, 'nope'))) |
0f03ee6ffa80
DICOMweb: test_wado_hierarchy, test_wado_bulk, test_bitbucket_issue_112
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
195
diff
changeset
|
444 self.assertRaises(Exception, lambda: DoGet(ORTHANC, '/dicom-web/studies/%s/metadata' % 'nope')) |
0f03ee6ffa80
DICOMweb: test_wado_hierarchy, test_wado_bulk, test_bitbucket_issue_112
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
195
diff
changeset
|
445 |
0f03ee6ffa80
DICOMweb: test_wado_hierarchy, test_wado_bulk, test_bitbucket_issue_112
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
195
diff
changeset
|
446 |
228 | 447 def test_wado_pixel_data(self): |
448 orthanc = UploadInstance(ORTHANC, 'Issue29.dcm') ['ID'] | |
449 a = DoGet(ORTHANC, '/dicom-web/instances') | |
450 self.assertEqual(1, len(a)) | |
451 url = a[0]['00081190']['Value'][0] | |
452 | |
453 prefix = 'http://localhost:8042' | |
454 self.assertTrue(url.startswith(prefix)) | |
455 | |
456 b = DoGet(ORTHANC, url[len(prefix):] + '/metadata') | |
457 self.assertEqual('OB', b[0]['7FE00010']['vr']) | |
458 self.assertEqual(2, len(b[0]['7FE00010'])) | |
459 self.assertTrue('BulkDataURI' in b[0]['7FE00010']) | |
460 | |
461 url = b[0]['7FE00010']['BulkDataURI'] | |
462 self.assertTrue(url.startswith(prefix)) | |
463 | |
464 p = DoGetMultipart(ORTHANC, url[len(prefix):]) | |
465 | |
466 self.assertEqual(2, len(p)) # There are 2 fragments in this image | |
467 self.assertEqual(4, len(p[0])) | |
468 self.assertEqual(114486, len(p[1])) | |
469 | |
470 | |
471 def test_wado_hierarchy_bulk(self): | |
222
0f03ee6ffa80
DICOMweb: test_wado_hierarchy, test_wado_bulk, test_bitbucket_issue_112
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
195
diff
changeset
|
472 def CheckBulk(value, bulk): |
0f03ee6ffa80
DICOMweb: test_wado_hierarchy, test_wado_bulk, test_bitbucket_issue_112
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
195
diff
changeset
|
473 self.assertEqual(2, len(value)) |
0f03ee6ffa80
DICOMweb: test_wado_hierarchy, test_wado_bulk, test_bitbucket_issue_112
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
195
diff
changeset
|
474 self.assertTrue('BulkDataURI' in value) |
0f03ee6ffa80
DICOMweb: test_wado_hierarchy, test_wado_bulk, test_bitbucket_issue_112
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
195
diff
changeset
|
475 self.assertTrue('vr' in value) |
0f03ee6ffa80
DICOMweb: test_wado_hierarchy, test_wado_bulk, test_bitbucket_issue_112
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
195
diff
changeset
|
476 self.assertEqual(value['BulkDataURI'], bulk) |
0f03ee6ffa80
DICOMweb: test_wado_hierarchy, test_wado_bulk, test_bitbucket_issue_112
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
195
diff
changeset
|
477 |
0f03ee6ffa80
DICOMweb: test_wado_hierarchy, test_wado_bulk, test_bitbucket_issue_112
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
195
diff
changeset
|
478 orthanc = UploadInstance(ORTHANC, 'PrivateTags.dcm') ['ID'] |
0f03ee6ffa80
DICOMweb: test_wado_hierarchy, test_wado_bulk, test_bitbucket_issue_112
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
195
diff
changeset
|
479 study = '1.2.840.113619.2.115.147416.1094281639.0.29' |
0f03ee6ffa80
DICOMweb: test_wado_hierarchy, test_wado_bulk, test_bitbucket_issue_112
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
195
diff
changeset
|
480 series = '1.2.840.113619.2.115.147416.1094281639.0.30' |
0f03ee6ffa80
DICOMweb: test_wado_hierarchy, test_wado_bulk, test_bitbucket_issue_112
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
195
diff
changeset
|
481 sop = '1.2.840.113619.2.115.147416.1094281639.0.38' |
0f03ee6ffa80
DICOMweb: test_wado_hierarchy, test_wado_bulk, test_bitbucket_issue_112
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
195
diff
changeset
|
482 |
228 | 483 # WARNING: This test will fail on Orthanc <= 1.5.5, because |
484 # the following fix is not included yet: | |
485 # https://bitbucket.org/sjodogne/orthanc/commits/b88937ef597b33c4387a546c751827019bcdc205 | |
486 | |
222
0f03ee6ffa80
DICOMweb: test_wado_hierarchy, test_wado_bulk, test_bitbucket_issue_112
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
195
diff
changeset
|
487 a = DoGet(ORTHANC, '/dicom-web/studies/%s/metadata' % study) |
0f03ee6ffa80
DICOMweb: test_wado_hierarchy, test_wado_bulk, test_bitbucket_issue_112
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
195
diff
changeset
|
488 self.assertEqual(1, len(a)) |
0f03ee6ffa80
DICOMweb: test_wado_hierarchy, test_wado_bulk, test_bitbucket_issue_112
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
195
diff
changeset
|
489 |
0f03ee6ffa80
DICOMweb: test_wado_hierarchy, test_wado_bulk, test_bitbucket_issue_112
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
195
diff
changeset
|
490 BASE_URI = '/dicom-web/studies/%s/series/%s/instances/%s/bulk' % (study, series, sop) |
0f03ee6ffa80
DICOMweb: test_wado_hierarchy, test_wado_bulk, test_bitbucket_issue_112
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
195
diff
changeset
|
491 BASE_URL = 'http://localhost:8042%s' % BASE_URI |
0f03ee6ffa80
DICOMweb: test_wado_hierarchy, test_wado_bulk, test_bitbucket_issue_112
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
195
diff
changeset
|
492 |
0f03ee6ffa80
DICOMweb: test_wado_hierarchy, test_wado_bulk, test_bitbucket_issue_112
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
195
diff
changeset
|
493 self.assertEqual(2, len(a[0]['60031010']['Value'])) |
0f03ee6ffa80
DICOMweb: test_wado_hierarchy, test_wado_bulk, test_bitbucket_issue_112
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
195
diff
changeset
|
494 CheckBulk(a[0]['60031010']['Value'][0]['60031011'], '%s/60031010/1/60031011' % BASE_URL) |
0f03ee6ffa80
DICOMweb: test_wado_hierarchy, test_wado_bulk, test_bitbucket_issue_112
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
195
diff
changeset
|
495 CheckBulk(a[0]['60031010']['Value'][1]['60031011'], '%s/60031010/2/60031011' % BASE_URL) |
0f03ee6ffa80
DICOMweb: test_wado_hierarchy, test_wado_bulk, test_bitbucket_issue_112
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
195
diff
changeset
|
496 CheckBulk(a[0]['7FE00010'], '%s/7fe00010' % BASE_URL) |
0f03ee6ffa80
DICOMweb: test_wado_hierarchy, test_wado_bulk, test_bitbucket_issue_112
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
195
diff
changeset
|
497 |
0f03ee6ffa80
DICOMweb: test_wado_hierarchy, test_wado_bulk, test_bitbucket_issue_112
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
195
diff
changeset
|
498 b = DoGetRaw(ORTHANC, '/instances/%s/content/6003-1010/0/6003-1011' % orthanc) [1] |
0f03ee6ffa80
DICOMweb: test_wado_hierarchy, test_wado_bulk, test_bitbucket_issue_112
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
195
diff
changeset
|
499 c = DoGetMultipart(ORTHANC, '%s/60031010/1/60031011' % BASE_URI) |
0f03ee6ffa80
DICOMweb: test_wado_hierarchy, test_wado_bulk, test_bitbucket_issue_112
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
195
diff
changeset
|
500 |
0f03ee6ffa80
DICOMweb: test_wado_hierarchy, test_wado_bulk, test_bitbucket_issue_112
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
195
diff
changeset
|
501 self.assertEqual(12288, len(b)) |
0f03ee6ffa80
DICOMweb: test_wado_hierarchy, test_wado_bulk, test_bitbucket_issue_112
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
195
diff
changeset
|
502 self.assertEqual(1, len(c)) |
0f03ee6ffa80
DICOMweb: test_wado_hierarchy, test_wado_bulk, test_bitbucket_issue_112
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
195
diff
changeset
|
503 self.assertEqual(b, c[0]) |
0f03ee6ffa80
DICOMweb: test_wado_hierarchy, test_wado_bulk, test_bitbucket_issue_112
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
195
diff
changeset
|
504 |
0f03ee6ffa80
DICOMweb: test_wado_hierarchy, test_wado_bulk, test_bitbucket_issue_112
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
195
diff
changeset
|
505 |
0f03ee6ffa80
DICOMweb: test_wado_hierarchy, test_wado_bulk, test_bitbucket_issue_112
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
195
diff
changeset
|
506 def test_bitbucket_issue_112(self): |
223
f5aca0917d60
DICOMweb: test_bitbucket_issue_111
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
222
diff
changeset
|
507 # Wrong serialization of number values |
222
0f03ee6ffa80
DICOMweb: test_wado_hierarchy, test_wado_bulk, test_bitbucket_issue_112
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
195
diff
changeset
|
508 # https://bitbucket.org/sjodogne/orthanc/issues/112 |
0f03ee6ffa80
DICOMweb: test_wado_hierarchy, test_wado_bulk, test_bitbucket_issue_112
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
195
diff
changeset
|
509 # https://bitbucket.org/sjodogne/orthanc-dicomweb/issues/4/ |
0f03ee6ffa80
DICOMweb: test_wado_hierarchy, test_wado_bulk, test_bitbucket_issue_112
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
195
diff
changeset
|
510 |
0f03ee6ffa80
DICOMweb: test_wado_hierarchy, test_wado_bulk, test_bitbucket_issue_112
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
195
diff
changeset
|
511 UploadInstance(ORTHANC, 'DummyCT.dcm') |
0f03ee6ffa80
DICOMweb: test_wado_hierarchy, test_wado_bulk, test_bitbucket_issue_112
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
195
diff
changeset
|
512 study = '1.2.840.113619.2.176.2025.1499492.7391.1171285944.390' |
0f03ee6ffa80
DICOMweb: test_wado_hierarchy, test_wado_bulk, test_bitbucket_issue_112
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
195
diff
changeset
|
513 |
0f03ee6ffa80
DICOMweb: test_wado_hierarchy, test_wado_bulk, test_bitbucket_issue_112
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
195
diff
changeset
|
514 # This is the WADO-RS testing |
0f03ee6ffa80
DICOMweb: test_wado_hierarchy, test_wado_bulk, test_bitbucket_issue_112
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
195
diff
changeset
|
515 a = DoGet(ORTHANC, '/dicom-web/studies/%s/metadata' % study) |
0f03ee6ffa80
DICOMweb: test_wado_hierarchy, test_wado_bulk, test_bitbucket_issue_112
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
195
diff
changeset
|
516 self.assertEqual(1, len(a)) |
0f03ee6ffa80
DICOMweb: test_wado_hierarchy, test_wado_bulk, test_bitbucket_issue_112
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
195
diff
changeset
|
517 self.assertEqual('IS', a[0]['00180091']['vr']) # EchoTrainLength |
0f03ee6ffa80
DICOMweb: test_wado_hierarchy, test_wado_bulk, test_bitbucket_issue_112
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
195
diff
changeset
|
518 |
226
230aede7f8d5
test_bitbucket_issue_96
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
225
diff
changeset
|
519 if (sys.version_info >= (3, 0)): |
230aede7f8d5
test_bitbucket_issue_96
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
225
diff
changeset
|
520 types = (int) |
230aede7f8d5
test_bitbucket_issue_96
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
225
diff
changeset
|
521 else: |
230aede7f8d5
test_bitbucket_issue_96
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
225
diff
changeset
|
522 types = (int, long) |
230aede7f8d5
test_bitbucket_issue_96
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
225
diff
changeset
|
523 |
222
0f03ee6ffa80
DICOMweb: test_wado_hierarchy, test_wado_bulk, test_bitbucket_issue_112
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
195
diff
changeset
|
524 b = a[0]['00180091']['Value'][0] |
226
230aede7f8d5
test_bitbucket_issue_96
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
225
diff
changeset
|
525 self.assertTrue(isinstance(b, types)) |
222
0f03ee6ffa80
DICOMweb: test_wado_hierarchy, test_wado_bulk, test_bitbucket_issue_112
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
195
diff
changeset
|
526 self.assertEqual(10, b) |
0f03ee6ffa80
DICOMweb: test_wado_hierarchy, test_wado_bulk, test_bitbucket_issue_112
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
195
diff
changeset
|
527 |
0f03ee6ffa80
DICOMweb: test_wado_hierarchy, test_wado_bulk, test_bitbucket_issue_112
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
195
diff
changeset
|
528 # This is the QIDO-RS testing |
0f03ee6ffa80
DICOMweb: test_wado_hierarchy, test_wado_bulk, test_bitbucket_issue_112
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
195
diff
changeset
|
529 a = DoGet(ORTHANC, '/dicom-web/studies') |
0f03ee6ffa80
DICOMweb: test_wado_hierarchy, test_wado_bulk, test_bitbucket_issue_112
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
195
diff
changeset
|
530 self.assertEqual(1, len(a)) |
0f03ee6ffa80
DICOMweb: test_wado_hierarchy, test_wado_bulk, test_bitbucket_issue_112
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
195
diff
changeset
|
531 self.assertEqual('IS', a[0]['00201208']['vr']) # Number of Study Related Instances |
0f03ee6ffa80
DICOMweb: test_wado_hierarchy, test_wado_bulk, test_bitbucket_issue_112
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
195
diff
changeset
|
532 |
0f03ee6ffa80
DICOMweb: test_wado_hierarchy, test_wado_bulk, test_bitbucket_issue_112
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
195
diff
changeset
|
533 b = a[0]['00201208']['Value'][0] |
226
230aede7f8d5
test_bitbucket_issue_96
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
225
diff
changeset
|
534 self.assertTrue(isinstance(b, types)) |
222
0f03ee6ffa80
DICOMweb: test_wado_hierarchy, test_wado_bulk, test_bitbucket_issue_112
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
195
diff
changeset
|
535 self.assertEqual(1, b) |
223
f5aca0917d60
DICOMweb: test_bitbucket_issue_111
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
222
diff
changeset
|
536 |
222
0f03ee6ffa80
DICOMweb: test_wado_hierarchy, test_wado_bulk, test_bitbucket_issue_112
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
195
diff
changeset
|
537 |
224
f5414254ccaa
test_bitbucket_issue_113
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
223
diff
changeset
|
538 def test_bitbucket_issue_113(self): |
f5414254ccaa
test_bitbucket_issue_113
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
223
diff
changeset
|
539 # Wrong serialization of PN VR |
f5414254ccaa
test_bitbucket_issue_113
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
223
diff
changeset
|
540 # https://bitbucket.org/sjodogne/orthanc/issues/113 |
f5414254ccaa
test_bitbucket_issue_113
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
223
diff
changeset
|
541 # https://bitbucket.org/sjodogne/orthanc-dicomweb/issues/2/ |
f5414254ccaa
test_bitbucket_issue_113
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
223
diff
changeset
|
542 |
f5414254ccaa
test_bitbucket_issue_113
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
223
diff
changeset
|
543 UploadInstance(ORTHANC, 'Encodings/DavidClunie/SCSX1') |
f5414254ccaa
test_bitbucket_issue_113
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
223
diff
changeset
|
544 study = '1.3.6.1.4.1.5962.1.2.0.1175775771.5711.0' |
f5414254ccaa
test_bitbucket_issue_113
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
223
diff
changeset
|
545 |
f5414254ccaa
test_bitbucket_issue_113
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
223
diff
changeset
|
546 # This is the WADO-RS testing |
f5414254ccaa
test_bitbucket_issue_113
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
223
diff
changeset
|
547 a = DoGet(ORTHANC, '/dicom-web/studies/%s/metadata' % study) |
f5414254ccaa
test_bitbucket_issue_113
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
223
diff
changeset
|
548 self.assertEqual(1, len(a)) |
f5414254ccaa
test_bitbucket_issue_113
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
223
diff
changeset
|
549 |
f5414254ccaa
test_bitbucket_issue_113
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
223
diff
changeset
|
550 pn = a[0]['00100010'] # Patient name |
f5414254ccaa
test_bitbucket_issue_113
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
223
diff
changeset
|
551 self.assertEqual('PN', pn['vr']) |
f5414254ccaa
test_bitbucket_issue_113
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
223
diff
changeset
|
552 self.assertEqual(1, len(pn['Value'])) |
f5414254ccaa
test_bitbucket_issue_113
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
223
diff
changeset
|
553 self.assertEqual('Wang^XiaoDong', pn['Value'][0]['Alphabetic']) |
f5414254ccaa
test_bitbucket_issue_113
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
223
diff
changeset
|
554 self.assertEqual(u'王^小東', pn['Value'][0]['Ideographic']) |
f5414254ccaa
test_bitbucket_issue_113
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
223
diff
changeset
|
555 |
f5414254ccaa
test_bitbucket_issue_113
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
223
diff
changeset
|
556 # This is the QIDO-RS testing |
f5414254ccaa
test_bitbucket_issue_113
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
223
diff
changeset
|
557 a = DoGet(ORTHANC, '/dicom-web/studies') |
f5414254ccaa
test_bitbucket_issue_113
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
223
diff
changeset
|
558 self.assertEqual(1, len(a)) |
f5414254ccaa
test_bitbucket_issue_113
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
223
diff
changeset
|
559 |
f5414254ccaa
test_bitbucket_issue_113
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
223
diff
changeset
|
560 pn = a[0]['00100010'] # Patient name |
f5414254ccaa
test_bitbucket_issue_113
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
223
diff
changeset
|
561 self.assertEqual('PN', pn['vr']) |
f5414254ccaa
test_bitbucket_issue_113
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
223
diff
changeset
|
562 self.assertEqual(1, len(pn['Value'])) |
f5414254ccaa
test_bitbucket_issue_113
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
223
diff
changeset
|
563 self.assertEqual('Wang^XiaoDong', pn['Value'][0]['Alphabetic']) |
f5414254ccaa
test_bitbucket_issue_113
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
223
diff
changeset
|
564 self.assertEqual(u'王^小東', pn['Value'][0]['Ideographic']) |
f5414254ccaa
test_bitbucket_issue_113
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
223
diff
changeset
|
565 |
222
0f03ee6ffa80
DICOMweb: test_wado_hierarchy, test_wado_bulk, test_bitbucket_issue_112
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
195
diff
changeset
|
566 |
225 | 567 def test_bitbucket_issue_96(self): |
568 # WADO-RS RetrieveFrames rejects valid accept headers | |
569 # https://bitbucket.org/sjodogne/orthanc/issues/96 | |
570 # https://bitbucket.org/sjodogne/orthanc-dicomweb/issues/5/ | |
571 | |
228 | 572 UploadInstance(ORTHANC, 'Brainix/Epi/IM-0001-0001.dcm') |
225 | 573 |
574 a = DoGet(ORTHANC, '/dicom-web/instances') | |
575 self.assertEqual(1, len(a)) | |
228 | 576 self.assertEqual(256, a[0]['00280010']['Value'][0]) # Rows |
577 self.assertEqual(256, a[0]['00280011']['Value'][0]) # Columns | |
578 self.assertEqual(16, a[0]['00280100']['Value'][0]) # Bits allocated | |
226
230aede7f8d5
test_bitbucket_issue_96
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
225
diff
changeset
|
579 |
225 | 580 url = a[0]['00081190']['Value'][0] |
581 | |
582 prefix = 'http://localhost:8042' | |
583 self.assertTrue(url.startswith(prefix)) | |
584 uri = url[len(prefix):] | |
585 | |
226
230aede7f8d5
test_bitbucket_issue_96
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
225
diff
changeset
|
586 self.assertRaises(Exception, lambda: DoGetMultipart(ORTHANC, '%s/frames/%d' % (uri, 0))) |
228 | 587 self.assertRaises(Exception, lambda: DoGetMultipart(ORTHANC, '%s/frames/%d' % (uri, 2))) |
588 | |
226
230aede7f8d5
test_bitbucket_issue_96
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
225
diff
changeset
|
589 b = DoGetMultipart(ORTHANC, '%s/frames/%d' % (uri, 1)) |
230aede7f8d5
test_bitbucket_issue_96
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
225
diff
changeset
|
590 self.assertEqual(1, len(b)) |
228 | 591 self.assertEqual(256 * 256 * 2, len(b[0])) |
225 | 592 |
228 | 593 c = DoGetMultipart(ORTHANC, '%s/frames/%d' % (uri, 1), |
226
230aede7f8d5
test_bitbucket_issue_96
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
225
diff
changeset
|
594 headers = { 'Accept' : 'multipart/related; type=application/octet-stream' }) |
230aede7f8d5
test_bitbucket_issue_96
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
225
diff
changeset
|
595 self.assertEqual(1, len(c)) |
230aede7f8d5
test_bitbucket_issue_96
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
225
diff
changeset
|
596 self.assertEqual(b[0], c[0]) |
230aede7f8d5
test_bitbucket_issue_96
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
225
diff
changeset
|
597 |
228 | 598 c = DoGetMultipart(ORTHANC, '%s/frames/%d' % (uri, 1), |
226
230aede7f8d5
test_bitbucket_issue_96
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
225
diff
changeset
|
599 headers = { 'Accept' : 'multipart/related; type="application/octet-stream"' }) |
230aede7f8d5
test_bitbucket_issue_96
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
225
diff
changeset
|
600 self.assertEqual(1, len(c)) |
230aede7f8d5
test_bitbucket_issue_96
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
225
diff
changeset
|
601 self.assertEqual(b[0], c[0]) |
227
875ff7460ae8
test_qido_fields, test_stow_errors
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
226
diff
changeset
|
602 |
228 | 603 self.assertRaises(Exception, lambda: DoGetMultipart(ORTHANC, '%s/frames/%d' % (uri, 1), |
604 headers = { 'Accept' : 'multipart/related; type="nope"' })) | |
605 | |
606 self.assertRaises(Exception, lambda: DoGetMultipart(ORTHANC, '%s/frames/%d' % (uri, 1), | |
607 headers = { 'Accept' : 'multipart/related; type=nope' })) | |
608 | |
609 self.assertRaises(Exception, lambda: DoGetMultipart(ORTHANC, '%s/frames/%d' % (uri, 1), | |
610 headers = { 'Accept' : 'nope' })) | |
611 | |
227
875ff7460ae8
test_qido_fields, test_stow_errors
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
226
diff
changeset
|
612 |
875ff7460ae8
test_qido_fields, test_stow_errors
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
226
diff
changeset
|
613 def test_qido_fields(self): |
875ff7460ae8
test_qido_fields, test_stow_errors
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
226
diff
changeset
|
614 UploadInstance(ORTHANC, 'DummyCT.dcm') |
875ff7460ae8
test_qido_fields, test_stow_errors
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
226
diff
changeset
|
615 |
875ff7460ae8
test_qido_fields, test_stow_errors
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
226
diff
changeset
|
616 a = DoGet(ORTHANC, '/dicom-web/studies') |
875ff7460ae8
test_qido_fields, test_stow_errors
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
226
diff
changeset
|
617 self.assertEqual(1, len(a)) |
875ff7460ae8
test_qido_fields, test_stow_errors
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
226
diff
changeset
|
618 self.assertFalse('00280010' in a[0]) # Rows |
875ff7460ae8
test_qido_fields, test_stow_errors
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
226
diff
changeset
|
619 |
875ff7460ae8
test_qido_fields, test_stow_errors
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
226
diff
changeset
|
620 a = DoGet(ORTHANC, '/dicom-web/studies?includefield=Rows') |
875ff7460ae8
test_qido_fields, test_stow_errors
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
226
diff
changeset
|
621 self.assertEqual(1, len(a)) |
875ff7460ae8
test_qido_fields, test_stow_errors
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
226
diff
changeset
|
622 self.assertTrue('00280010' in a[0]) |
875ff7460ae8
test_qido_fields, test_stow_errors
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
226
diff
changeset
|
623 self.assertEqual(512, a[0]['00280010']['Value'][0]) |
875ff7460ae8
test_qido_fields, test_stow_errors
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
226
diff
changeset
|
624 |
875ff7460ae8
test_qido_fields, test_stow_errors
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
226
diff
changeset
|
625 a = DoGet(ORTHANC, '/dicom-web/studies?Rows=128') |
875ff7460ae8
test_qido_fields, test_stow_errors
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
226
diff
changeset
|
626 self.assertEqual(0, len(a)) |
875ff7460ae8
test_qido_fields, test_stow_errors
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
226
diff
changeset
|
627 |
875ff7460ae8
test_qido_fields, test_stow_errors
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
226
diff
changeset
|
628 a = DoGet(ORTHANC, '/dicom-web/studies?Rows=512') |
875ff7460ae8
test_qido_fields, test_stow_errors
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
226
diff
changeset
|
629 self.assertEqual(1, len(a)) |
875ff7460ae8
test_qido_fields, test_stow_errors
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
226
diff
changeset
|
630 self.assertTrue('00280010' in a[0]) |
875ff7460ae8
test_qido_fields, test_stow_errors
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
226
diff
changeset
|
631 self.assertEqual(512, a[0]['00280010']['Value'][0]) |
875ff7460ae8
test_qido_fields, test_stow_errors
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
226
diff
changeset
|
632 |
226
230aede7f8d5
test_bitbucket_issue_96
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
225
diff
changeset
|
633 |
227
875ff7460ae8
test_qido_fields, test_stow_errors
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
226
diff
changeset
|
634 def test_stow_errors(self): |
875ff7460ae8
test_qido_fields, test_stow_errors
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
226
diff
changeset
|
635 # Pushing an instance to a study that is not its parent |
875ff7460ae8
test_qido_fields, test_stow_errors
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
226
diff
changeset
|
636 a = SendStow(ORTHANC, args.dicomweb + '/studies/nope', GetDatabasePath('Phenix/IM-0001-0001.dcm')) |
875ff7460ae8
test_qido_fields, test_stow_errors
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
226
diff
changeset
|
637 self.assertEqual(3, len(a)) |
875ff7460ae8
test_qido_fields, test_stow_errors
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
226
diff
changeset
|
638 self.assertTrue('00080005' in a) |
875ff7460ae8
test_qido_fields, test_stow_errors
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
226
diff
changeset
|
639 self.assertEqual('CS', a['00080005']['vr']) |
875ff7460ae8
test_qido_fields, test_stow_errors
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
226
diff
changeset
|
640 self.assertTrue('00081198' in a) |
875ff7460ae8
test_qido_fields, test_stow_errors
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
226
diff
changeset
|
641 self.assertEqual('SQ', a['00081198']['vr']) |
875ff7460ae8
test_qido_fields, test_stow_errors
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
226
diff
changeset
|
642 self.assertEqual(1, len(['00081198'])) |
875ff7460ae8
test_qido_fields, test_stow_errors
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
226
diff
changeset
|
643 self.assertTrue('00081199' in a) |
875ff7460ae8
test_qido_fields, test_stow_errors
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
226
diff
changeset
|
644 self.assertEqual('SQ', a['00081199']['vr']) |
875ff7460ae8
test_qido_fields, test_stow_errors
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
226
diff
changeset
|
645 self.assertEqual(1, len(['00081199'])) |
875ff7460ae8
test_qido_fields, test_stow_errors
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
226
diff
changeset
|
646 |
875ff7460ae8
test_qido_fields, test_stow_errors
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
226
diff
changeset
|
647 # Pushing an instance with missing tags |
875ff7460ae8
test_qido_fields, test_stow_errors
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
226
diff
changeset
|
648 a = SendStow(ORTHANC, args.dicomweb + '/studies', GetDatabasePath('Issue111.dcm')) |
875ff7460ae8
test_qido_fields, test_stow_errors
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
226
diff
changeset
|
649 self.assertEqual(3, len(a)) |
875ff7460ae8
test_qido_fields, test_stow_errors
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
226
diff
changeset
|
650 self.assertTrue('00080005' in a) |
875ff7460ae8
test_qido_fields, test_stow_errors
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
226
diff
changeset
|
651 self.assertEqual('CS', a['00080005']['vr']) |
875ff7460ae8
test_qido_fields, test_stow_errors
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
226
diff
changeset
|
652 self.assertTrue('00081198' in a) |
875ff7460ae8
test_qido_fields, test_stow_errors
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
226
diff
changeset
|
653 self.assertEqual('SQ', a['00081198']['vr']) |
875ff7460ae8
test_qido_fields, test_stow_errors
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
226
diff
changeset
|
654 self.assertEqual(1, len(['00081198'])) |
875ff7460ae8
test_qido_fields, test_stow_errors
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
226
diff
changeset
|
655 self.assertTrue('00081199' in a) |
875ff7460ae8
test_qido_fields, test_stow_errors
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
226
diff
changeset
|
656 self.assertEqual('SQ', a['00081199']['vr']) |
875ff7460ae8
test_qido_fields, test_stow_errors
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
226
diff
changeset
|
657 self.assertEqual(1, len(['00081199'])) |
875ff7460ae8
test_qido_fields, test_stow_errors
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
226
diff
changeset
|
658 |
875ff7460ae8
test_qido_fields, test_stow_errors
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
226
diff
changeset
|
659 # Pushing a file that is not in the DICOM format |
875ff7460ae8
test_qido_fields, test_stow_errors
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
226
diff
changeset
|
660 a = SendStow(ORTHANC, args.dicomweb + '/studies', GetDatabasePath('Issue111.dump')) |
875ff7460ae8
test_qido_fields, test_stow_errors
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
226
diff
changeset
|
661 self.assertEqual(3, len(a)) |
875ff7460ae8
test_qido_fields, test_stow_errors
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
226
diff
changeset
|
662 self.assertTrue('00080005' in a) |
875ff7460ae8
test_qido_fields, test_stow_errors
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
226
diff
changeset
|
663 self.assertEqual('CS', a['00080005']['vr']) |
875ff7460ae8
test_qido_fields, test_stow_errors
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
226
diff
changeset
|
664 self.assertTrue('00081198' in a) |
875ff7460ae8
test_qido_fields, test_stow_errors
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
226
diff
changeset
|
665 self.assertEqual('SQ', a['00081198']['vr']) |
875ff7460ae8
test_qido_fields, test_stow_errors
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
226
diff
changeset
|
666 self.assertEqual(1, len(['00081198'])) |
875ff7460ae8
test_qido_fields, test_stow_errors
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
226
diff
changeset
|
667 self.assertTrue('00081199' in a) |
875ff7460ae8
test_qido_fields, test_stow_errors
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
226
diff
changeset
|
668 self.assertEqual('SQ', a['00081199']['vr']) |
875ff7460ae8
test_qido_fields, test_stow_errors
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
226
diff
changeset
|
669 self.assertEqual(1, len(['00081199'])) |
875ff7460ae8
test_qido_fields, test_stow_errors
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
226
diff
changeset
|
670 |
239
8980bd19e31d
dicomweb: test_allowed_methods
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
229
diff
changeset
|
671 |
8980bd19e31d
dicomweb: test_allowed_methods
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
229
diff
changeset
|
672 def test_allowed_methods(self): |
8980bd19e31d
dicomweb: test_allowed_methods
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
229
diff
changeset
|
673 self.assertEqual(0, len(DoGet(ORTHANC, '/dicom-web/studies'))) |
8980bd19e31d
dicomweb: test_allowed_methods
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
229
diff
changeset
|
674 |
8980bd19e31d
dicomweb: test_allowed_methods
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
229
diff
changeset
|
675 with self.assertRaises(Exception) as e: |
8980bd19e31d
dicomweb: test_allowed_methods
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
229
diff
changeset
|
676 DoPut(ORTHANC, '/dicom-web/studies') |
8980bd19e31d
dicomweb: test_allowed_methods
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
229
diff
changeset
|
677 |
8980bd19e31d
dicomweb: test_allowed_methods
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
229
diff
changeset
|
678 self.assertEqual(405, e.exception[0]) |
8980bd19e31d
dicomweb: test_allowed_methods
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
229
diff
changeset
|
679 self.assertEqual("GET,POST", e.exception[1]['allow']) |
8980bd19e31d
dicomweb: test_allowed_methods
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
229
diff
changeset
|
680 |
8980bd19e31d
dicomweb: test_allowed_methods
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
229
diff
changeset
|
681 with self.assertRaises(Exception) as e: |
8980bd19e31d
dicomweb: test_allowed_methods
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
229
diff
changeset
|
682 DoDelete(ORTHANC, '/dicom-web/studies') |
8980bd19e31d
dicomweb: test_allowed_methods
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
229
diff
changeset
|
683 |
8980bd19e31d
dicomweb: test_allowed_methods
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
229
diff
changeset
|
684 self.assertEqual(405, e.exception[0]) |
8980bd19e31d
dicomweb: test_allowed_methods
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
229
diff
changeset
|
685 self.assertEqual("GET,POST", e.exception[1]['allow']) |
241
adc6372b8820
dicomweb: test_add_server
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
239
diff
changeset
|
686 |
adc6372b8820
dicomweb: test_add_server
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
239
diff
changeset
|
687 |
adc6372b8820
dicomweb: test_add_server
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
239
diff
changeset
|
688 def test_add_server(self): |
adc6372b8820
dicomweb: test_add_server
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
239
diff
changeset
|
689 try: |
adc6372b8820
dicomweb: test_add_server
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
239
diff
changeset
|
690 DoDelete(ORTHANC, '/dicom-web/servers/hello') |
adc6372b8820
dicomweb: test_add_server
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
239
diff
changeset
|
691 except: |
adc6372b8820
dicomweb: test_add_server
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
239
diff
changeset
|
692 pass |
adc6372b8820
dicomweb: test_add_server
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
239
diff
changeset
|
693 |
277 | 694 try: |
695 DoDelete(ORTHANC, '/dicom-web/servers/google') # If "AllWindowsStart.sh" is used | |
696 except: | |
697 pass | |
698 | |
241
adc6372b8820
dicomweb: test_add_server
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
239
diff
changeset
|
699 l = DoGet(ORTHANC, '/dicom-web/servers') |
adc6372b8820
dicomweb: test_add_server
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
239
diff
changeset
|
700 self.assertEqual(1, len(l)) |
adc6372b8820
dicomweb: test_add_server
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
239
diff
changeset
|
701 self.assertTrue('sample' in l) |
adc6372b8820
dicomweb: test_add_server
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
239
diff
changeset
|
702 |
adc6372b8820
dicomweb: test_add_server
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
239
diff
changeset
|
703 url = 'http://localhost:8042/dicom-web/' |
adc6372b8820
dicomweb: test_add_server
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
239
diff
changeset
|
704 DoPut(ORTHANC, '/dicom-web/servers/hello', { |
adc6372b8820
dicomweb: test_add_server
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
239
diff
changeset
|
705 'Url': url, |
adc6372b8820
dicomweb: test_add_server
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
239
diff
changeset
|
706 'HttpHeaders' : { |
adc6372b8820
dicomweb: test_add_server
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
239
diff
changeset
|
707 'Hello' : 'World' |
adc6372b8820
dicomweb: test_add_server
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
239
diff
changeset
|
708 }, |
adc6372b8820
dicomweb: test_add_server
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
239
diff
changeset
|
709 'Username' : 'bob', |
242 | 710 'Password' : 'password', |
711 'UserProperty' : 'Test', | |
249
24e5c8ca9440
DICOMweb: test_rendered
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
248
diff
changeset
|
712 'HasDelete' : True, |
241
adc6372b8820
dicomweb: test_add_server
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
239
diff
changeset
|
713 }) |
adc6372b8820
dicomweb: test_add_server
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
239
diff
changeset
|
714 |
adc6372b8820
dicomweb: test_add_server
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
239
diff
changeset
|
715 l = DoGet(ORTHANC, '/dicom-web/servers') |
adc6372b8820
dicomweb: test_add_server
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
239
diff
changeset
|
716 self.assertEqual(2, len(l)) |
adc6372b8820
dicomweb: test_add_server
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
239
diff
changeset
|
717 self.assertTrue('sample' in l) |
adc6372b8820
dicomweb: test_add_server
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
239
diff
changeset
|
718 self.assertTrue('hello' in l) |
adc6372b8820
dicomweb: test_add_server
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
239
diff
changeset
|
719 |
249
24e5c8ca9440
DICOMweb: test_rendered
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
248
diff
changeset
|
720 o = DoGet(ORTHANC, '/dicom-web/servers/sample') |
24e5c8ca9440
DICOMweb: test_rendered
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
248
diff
changeset
|
721 self.assertEqual(5, len(o)) |
24e5c8ca9440
DICOMweb: test_rendered
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
248
diff
changeset
|
722 self.assertTrue('stow' in o) |
24e5c8ca9440
DICOMweb: test_rendered
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
248
diff
changeset
|
723 self.assertTrue('retrieve' in o) |
24e5c8ca9440
DICOMweb: test_rendered
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
248
diff
changeset
|
724 self.assertTrue('get' in o) |
24e5c8ca9440
DICOMweb: test_rendered
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
248
diff
changeset
|
725 self.assertTrue('wado' in o) # New in 0.7 |
24e5c8ca9440
DICOMweb: test_rendered
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
248
diff
changeset
|
726 self.assertTrue('qido' in o) # New in 0.7 |
24e5c8ca9440
DICOMweb: test_rendered
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
248
diff
changeset
|
727 |
24e5c8ca9440
DICOMweb: test_rendered
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
248
diff
changeset
|
728 o = DoGet(ORTHANC, '/dicom-web/servers/hello') |
24e5c8ca9440
DICOMweb: test_rendered
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
248
diff
changeset
|
729 self.assertEqual(6, len(o)) |
24e5c8ca9440
DICOMweb: test_rendered
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
248
diff
changeset
|
730 self.assertTrue('stow' in o) |
24e5c8ca9440
DICOMweb: test_rendered
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
248
diff
changeset
|
731 self.assertTrue('retrieve' in o) |
24e5c8ca9440
DICOMweb: test_rendered
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
248
diff
changeset
|
732 self.assertTrue('get' in o) |
24e5c8ca9440
DICOMweb: test_rendered
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
248
diff
changeset
|
733 self.assertTrue('wado' in o) # New in 0.7 |
24e5c8ca9440
DICOMweb: test_rendered
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
248
diff
changeset
|
734 self.assertTrue('qido' in o) # New in 0.7 |
24e5c8ca9440
DICOMweb: test_rendered
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
248
diff
changeset
|
735 self.assertTrue('delete' in o) # New in 0.7 |
24e5c8ca9440
DICOMweb: test_rendered
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
248
diff
changeset
|
736 |
241
adc6372b8820
dicomweb: test_add_server
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
239
diff
changeset
|
737 s = DoGet(ORTHANC, '/dicom-web/servers?expand') |
249
24e5c8ca9440
DICOMweb: test_rendered
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
248
diff
changeset
|
738 self.assertEqual(7, len(s['hello'])) |
241
adc6372b8820
dicomweb: test_add_server
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
239
diff
changeset
|
739 self.assertEqual(url, s['hello']['Url']) |
adc6372b8820
dicomweb: test_add_server
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
239
diff
changeset
|
740 self.assertEqual('bob', s['hello']['Username']) |
adc6372b8820
dicomweb: test_add_server
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
239
diff
changeset
|
741 self.assertEqual(None, s['hello']['Password']) |
adc6372b8820
dicomweb: test_add_server
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
239
diff
changeset
|
742 self.assertFalse(s['hello']['Pkcs11']) |
adc6372b8820
dicomweb: test_add_server
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
239
diff
changeset
|
743 self.assertEqual(1, len(s['hello']['HttpHeaders'])) |
adc6372b8820
dicomweb: test_add_server
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
239
diff
changeset
|
744 self.assertTrue('Hello' in s['hello']['HttpHeaders']) |
242 | 745 self.assertEqual('Test', s['hello']['UserProperty']) |
249
24e5c8ca9440
DICOMweb: test_rendered
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
248
diff
changeset
|
746 self.assertEqual('1', s['hello']['HasDelete']) |
241
adc6372b8820
dicomweb: test_add_server
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
239
diff
changeset
|
747 |
adc6372b8820
dicomweb: test_add_server
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
239
diff
changeset
|
748 DoDelete(ORTHANC, '/dicom-web/servers/hello') |
246
e4e0e2ff91ae
test_bitbucket_issue_143
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
244
diff
changeset
|
749 |
e4e0e2ff91ae
test_bitbucket_issue_143
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
244
diff
changeset
|
750 |
e4e0e2ff91ae
test_bitbucket_issue_143
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
244
diff
changeset
|
751 def test_bitbucket_issue_143(self): |
e4e0e2ff91ae
test_bitbucket_issue_143
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
244
diff
changeset
|
752 # WADO-RS metadata request returns "500 Internal Server Error" |
e4e0e2ff91ae
test_bitbucket_issue_143
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
244
diff
changeset
|
753 # instead of "404 Not Found" for missing instance |
e4e0e2ff91ae
test_bitbucket_issue_143
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
244
diff
changeset
|
754 # https://bitbucket.org/sjodogne/orthanc/issues/143 |
e4e0e2ff91ae
test_bitbucket_issue_143
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
244
diff
changeset
|
755 UploadInstance(ORTHANC, 'Issue143.dcm') |
e4e0e2ff91ae
test_bitbucket_issue_143
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
244
diff
changeset
|
756 |
e4e0e2ff91ae
test_bitbucket_issue_143
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
244
diff
changeset
|
757 try: |
e4e0e2ff91ae
test_bitbucket_issue_143
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
244
diff
changeset
|
758 DoGet(ORTHANC, '/dicom-web/studies/1.2.840.113619.2.55.3.671756986.106.1316467036.460/series/1.2.840.113619.2.55.3.671756986.106.1316467036.465/instances/0.0.0.0.0/metadata') |
e4e0e2ff91ae
test_bitbucket_issue_143
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
244
diff
changeset
|
759 self.assertFail() |
e4e0e2ff91ae
test_bitbucket_issue_143
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
244
diff
changeset
|
760 except Exception as e: |
e4e0e2ff91ae
test_bitbucket_issue_143
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
244
diff
changeset
|
761 self.assertEqual(404, e[0]) |
e4e0e2ff91ae
test_bitbucket_issue_143
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
244
diff
changeset
|
762 |
e4e0e2ff91ae
test_bitbucket_issue_143
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
244
diff
changeset
|
763 DoGet(ORTHANC, '/dicom-web/studies/1.3.6.1.4.1.34261.90254037371867.41912.1553085024.2/series/1.3.6.1.4.1.34261.90254037371867.41912.1553085024.3/instances/1.2.276.0.7230010.3.1.4.253549293.36648.1555586123.754/metadata') |
e4e0e2ff91ae
test_bitbucket_issue_143
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
244
diff
changeset
|
764 |
e4e0e2ff91ae
test_bitbucket_issue_143
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
244
diff
changeset
|
765 try: |
e4e0e2ff91ae
test_bitbucket_issue_143
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
244
diff
changeset
|
766 DoGet(ORTHANC, '/dicom-web/studies/0.0.0.0.0/series/1.3.6.1.4.1.34261.90254037371867.41912.1553085024.3/instances/1.2.276.0.7230010.3.1.4.253549293.36648.1555586123.754/metadata') |
e4e0e2ff91ae
test_bitbucket_issue_143
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
244
diff
changeset
|
767 self.fail() |
e4e0e2ff91ae
test_bitbucket_issue_143
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
244
diff
changeset
|
768 except Exception as e: |
e4e0e2ff91ae
test_bitbucket_issue_143
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
244
diff
changeset
|
769 self.assertEqual(404, e[0]) |
e4e0e2ff91ae
test_bitbucket_issue_143
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
244
diff
changeset
|
770 |
e4e0e2ff91ae
test_bitbucket_issue_143
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
244
diff
changeset
|
771 try: |
e4e0e2ff91ae
test_bitbucket_issue_143
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
244
diff
changeset
|
772 DoGet(ORTHANC, '/dicom-web/studies/1.3.6.1.4.1.34261.90254037371867.41912.1553085024.2/series/0.0.0.0.0/instances/1.2.276.0.7230010.3.1.4.253549293.36648.1555586123.754/metadata') |
e4e0e2ff91ae
test_bitbucket_issue_143
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
244
diff
changeset
|
773 self.assertFail() |
e4e0e2ff91ae
test_bitbucket_issue_143
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
244
diff
changeset
|
774 except Exception as e: |
e4e0e2ff91ae
test_bitbucket_issue_143
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
244
diff
changeset
|
775 self.assertEqual(404, e[0]) |
e4e0e2ff91ae
test_bitbucket_issue_143
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
244
diff
changeset
|
776 |
e4e0e2ff91ae
test_bitbucket_issue_143
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
244
diff
changeset
|
777 try: |
e4e0e2ff91ae
test_bitbucket_issue_143
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
244
diff
changeset
|
778 DoGet(ORTHANC, '/dicom-web/studies/0.0.0.0.0/series/0.0.0.0.0/instances/0.0.0.0.0/metadata') |
e4e0e2ff91ae
test_bitbucket_issue_143
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
244
diff
changeset
|
779 self.assertFail() |
e4e0e2ff91ae
test_bitbucket_issue_143
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
244
diff
changeset
|
780 except Exception as e: |
e4e0e2ff91ae
test_bitbucket_issue_143
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
244
diff
changeset
|
781 self.assertEqual(404, e[0]) |
e4e0e2ff91ae
test_bitbucket_issue_143
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
244
diff
changeset
|
782 |
248
26c3a1ed935a
testing of encodings in DICOMweb
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
246
diff
changeset
|
783 |
26c3a1ed935a
testing of encodings in DICOMweb
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
246
diff
changeset
|
784 def test_encodings_qido(self): |
26c3a1ed935a
testing of encodings in DICOMweb
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
246
diff
changeset
|
785 # The "DefaultEncoding" condifuration option is set to "UTF8" |
26c3a1ed935a
testing of encodings in DICOMweb
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
246
diff
changeset
|
786 # in the integration tests, so all the QIDO-RS requests must |
26c3a1ed935a
testing of encodings in DICOMweb
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
246
diff
changeset
|
787 # lead to a "ISO_IR 192" specific character set |
26c3a1ed935a
testing of encodings in DICOMweb
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
246
diff
changeset
|
788 def GetPatientName(dicom, onlyAlphabetic): |
26c3a1ed935a
testing of encodings in DICOMweb
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
246
diff
changeset
|
789 i = UploadInstance(ORTHANC, dicom) ['ID'] |
26c3a1ed935a
testing of encodings in DICOMweb
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
246
diff
changeset
|
790 j = DoGet(ORTHANC, '/instances/%s/tags?simplify' % i) ['StudyInstanceUID'] |
26c3a1ed935a
testing of encodings in DICOMweb
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
246
diff
changeset
|
791 qido = DoGet(ORTHANC, '/dicom-web/studies?0020000D=%s' % j) |
26c3a1ed935a
testing of encodings in DICOMweb
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
246
diff
changeset
|
792 self.assertEqual(1, len(qido)) |
26c3a1ed935a
testing of encodings in DICOMweb
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
246
diff
changeset
|
793 self.assertEqual('CS', qido[0]['00080005']['vr']) |
26c3a1ed935a
testing of encodings in DICOMweb
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
246
diff
changeset
|
794 self.assertEqual('ISO_IR 192', qido[0]['00080005']['Value'][0]) |
26c3a1ed935a
testing of encodings in DICOMweb
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
246
diff
changeset
|
795 if onlyAlphabetic: |
26c3a1ed935a
testing of encodings in DICOMweb
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
246
diff
changeset
|
796 self.assertEqual(1, len(qido[0]['00100010']['Value'][0])) |
26c3a1ed935a
testing of encodings in DICOMweb
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
246
diff
changeset
|
797 else: |
26c3a1ed935a
testing of encodings in DICOMweb
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
246
diff
changeset
|
798 self.assertEqual(3, len(qido[0]['00100010']['Value'][0])) |
26c3a1ed935a
testing of encodings in DICOMweb
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
246
diff
changeset
|
799 return qido[0]['00100010']['Value'][0] |
26c3a1ed935a
testing of encodings in DICOMweb
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
246
diff
changeset
|
800 |
26c3a1ed935a
testing of encodings in DICOMweb
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
246
diff
changeset
|
801 # Check out "test_issue_95_encodings" in "../../Tests/Tests.py" |
26c3a1ed935a
testing of encodings in DICOMweb
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
246
diff
changeset
|
802 |
26c3a1ed935a
testing of encodings in DICOMweb
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
246
diff
changeset
|
803 self.assertEqual(u'Buc^Jérôme', GetPatientName('Encodings/DavidClunie/SCSFREN', True) ['Alphabetic']) |
26c3a1ed935a
testing of encodings in DICOMweb
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
246
diff
changeset
|
804 self.assertEqual(u'Äneas^Rüdiger', GetPatientName('Encodings/DavidClunie/SCSGERM', True)['Alphabetic']) |
26c3a1ed935a
testing of encodings in DICOMweb
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
246
diff
changeset
|
805 self.assertEqual(u'Διονυσιος', GetPatientName('Encodings/DavidClunie/SCSGREEK', True)['Alphabetic']) |
26c3a1ed935a
testing of encodings in DICOMweb
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
246
diff
changeset
|
806 self.assertEqual(u'Люкceмбypг', GetPatientName('Encodings/DavidClunie/SCSRUSS', True)['Alphabetic']) |
26c3a1ed935a
testing of encodings in DICOMweb
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
246
diff
changeset
|
807 self.assertEqual(u'שרון^דבורה', GetPatientName('Encodings/DavidClunie/SCSHBRW', True)['Alphabetic']) |
26c3a1ed935a
testing of encodings in DICOMweb
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
246
diff
changeset
|
808 self.assertEqual(u'قباني^لنزار', GetPatientName('Encodings/DavidClunie/SCSARAB', True)['Alphabetic']) |
26c3a1ed935a
testing of encodings in DICOMweb
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
246
diff
changeset
|
809 |
26c3a1ed935a
testing of encodings in DICOMweb
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
246
diff
changeset
|
810 self.assertEqual(u'Hong^Gildong', GetPatientName('Encodings/DavidClunie/SCSI2', False)['Alphabetic']) |
26c3a1ed935a
testing of encodings in DICOMweb
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
246
diff
changeset
|
811 self.assertEqual(u'洪^吉洞', GetPatientName('Encodings/DavidClunie/SCSI2', False)['Ideographic']) |
26c3a1ed935a
testing of encodings in DICOMweb
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
246
diff
changeset
|
812 self.assertEqual(u'홍^길동', GetPatientName('Encodings/DavidClunie/SCSI2', False)['Phonetic']) |
26c3a1ed935a
testing of encodings in DICOMweb
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
246
diff
changeset
|
813 self.assertEqual(u'Wang^XiaoDong', GetPatientName('Encodings/DavidClunie/SCSX2', False)['Alphabetic']) |
26c3a1ed935a
testing of encodings in DICOMweb
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
246
diff
changeset
|
814 self.assertEqual(u'王^小东', GetPatientName('Encodings/DavidClunie/SCSX2', False)['Ideographic']) |
26c3a1ed935a
testing of encodings in DICOMweb
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
246
diff
changeset
|
815 self.assertEqual(u'', GetPatientName('Encodings/DavidClunie/SCSX2', False)['Phonetic']) |
26c3a1ed935a
testing of encodings in DICOMweb
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
246
diff
changeset
|
816 self.assertEqual(u'Wang^XiaoDong', GetPatientName('Encodings/DavidClunie/SCSX1', False)['Alphabetic']) |
26c3a1ed935a
testing of encodings in DICOMweb
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
246
diff
changeset
|
817 self.assertEqual(u'王^小東', GetPatientName('Encodings/DavidClunie/SCSX1', False)['Ideographic']) |
26c3a1ed935a
testing of encodings in DICOMweb
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
246
diff
changeset
|
818 self.assertEqual(u'', GetPatientName('Encodings/DavidClunie/SCSX1', False)['Phonetic']) |
26c3a1ed935a
testing of encodings in DICOMweb
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
246
diff
changeset
|
819 self.assertEqual(u'Yamada^Tarou', GetPatientName('Encodings/DavidClunie/SCSH31', False)['Alphabetic']) |
26c3a1ed935a
testing of encodings in DICOMweb
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
246
diff
changeset
|
820 self.assertEqual(u'山田^太郎', GetPatientName('Encodings/DavidClunie/SCSH31', False)['Ideographic']) |
26c3a1ed935a
testing of encodings in DICOMweb
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
246
diff
changeset
|
821 self.assertEqual(u'やまだ^たろう', GetPatientName('Encodings/DavidClunie/SCSH31', False)['Phonetic']) |
26c3a1ed935a
testing of encodings in DICOMweb
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
246
diff
changeset
|
822 self.assertEqual(u'ヤマダ^タロウ', GetPatientName('Encodings/DavidClunie/SCSH32', False)['Alphabetic']) |
26c3a1ed935a
testing of encodings in DICOMweb
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
246
diff
changeset
|
823 |
249
24e5c8ca9440
DICOMweb: test_rendered
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
248
diff
changeset
|
824 # TODO - Not supported yet by the Orthanc core as of 1.5.7 |
248
26c3a1ed935a
testing of encodings in DICOMweb
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
246
diff
changeset
|
825 #self.assertEqual(u'山田^太郎', GetPatientName('Encodings/DavidClunie/SCSH32')['Ideographic']) |
26c3a1ed935a
testing of encodings in DICOMweb
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
246
diff
changeset
|
826 #self.assertEqual(u'やまだ^たろう', GetPatientName('Encodings/DavidClunie/SCSH32')['Phonetic']) |
26c3a1ed935a
testing of encodings in DICOMweb
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
246
diff
changeset
|
827 |
26c3a1ed935a
testing of encodings in DICOMweb
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
246
diff
changeset
|
828 |
26c3a1ed935a
testing of encodings in DICOMweb
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
246
diff
changeset
|
829 def test_encodings_wado_metadata(self): |
26c3a1ed935a
testing of encodings in DICOMweb
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
246
diff
changeset
|
830 # If querying the instance metadata, the "DefaultEncoding" |
26c3a1ed935a
testing of encodings in DICOMweb
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
246
diff
changeset
|
831 # configuration is not used, but the actual encoding |
26c3a1ed935a
testing of encodings in DICOMweb
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
246
diff
changeset
|
832 def GetEncoding(dicom, length): |
249
24e5c8ca9440
DICOMweb: test_rendered
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
248
diff
changeset
|
833 qido = DoGet(ORTHANC, '/dicom-web/%s/metadata' % UploadAndGetWadoPath(dicom)) |
248
26c3a1ed935a
testing of encodings in DICOMweb
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
246
diff
changeset
|
834 self.assertEqual(1, len(qido)) |
26c3a1ed935a
testing of encodings in DICOMweb
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
246
diff
changeset
|
835 self.assertEqual(length, len(qido[0]['00080005']['Value'])) |
26c3a1ed935a
testing of encodings in DICOMweb
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
246
diff
changeset
|
836 self.assertEqual('CS', qido[0]['00080005']['vr']) |
26c3a1ed935a
testing of encodings in DICOMweb
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
246
diff
changeset
|
837 return qido[0]['00080005']['Value'] |
26c3a1ed935a
testing of encodings in DICOMweb
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
246
diff
changeset
|
838 |
26c3a1ed935a
testing of encodings in DICOMweb
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
246
diff
changeset
|
839 self.assertEqual('ISO_IR 100', GetEncoding('Encodings/DavidClunie/SCSFREN', 1)[0]) |
26c3a1ed935a
testing of encodings in DICOMweb
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
246
diff
changeset
|
840 self.assertEqual('ISO_IR 100', GetEncoding('Encodings/DavidClunie/SCSGERM', 1)[0]) |
26c3a1ed935a
testing of encodings in DICOMweb
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
246
diff
changeset
|
841 self.assertEqual('ISO_IR 126', GetEncoding('Encodings/DavidClunie/SCSGREEK', 1)[0]) |
26c3a1ed935a
testing of encodings in DICOMweb
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
246
diff
changeset
|
842 self.assertEqual('ISO_IR 144', GetEncoding('Encodings/DavidClunie/SCSRUSS', 1)[0]) |
26c3a1ed935a
testing of encodings in DICOMweb
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
246
diff
changeset
|
843 self.assertEqual('ISO_IR 138', GetEncoding('Encodings/DavidClunie/SCSHBRW', 1)[0]) |
26c3a1ed935a
testing of encodings in DICOMweb
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
246
diff
changeset
|
844 self.assertEqual('ISO_IR 127', GetEncoding('Encodings/DavidClunie/SCSARAB', 1)[0]) |
26c3a1ed935a
testing of encodings in DICOMweb
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
246
diff
changeset
|
845 self.assertEqual('ISO 2022 IR 149', GetEncoding('Encodings/DavidClunie/SCSI2', 1)[0]) |
26c3a1ed935a
testing of encodings in DICOMweb
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
246
diff
changeset
|
846 self.assertEqual('GB18030', GetEncoding('Encodings/DavidClunie/SCSX2', 1)[0]) |
26c3a1ed935a
testing of encodings in DICOMweb
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
246
diff
changeset
|
847 self.assertEqual('ISO_IR 192', GetEncoding('Encodings/DavidClunie/SCSX1', 1)[0]) |
26c3a1ed935a
testing of encodings in DICOMweb
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
246
diff
changeset
|
848 self.assertEqual('ISO 2022 IR 87', GetEncoding('Encodings/DavidClunie/SCSH31', 1)[0]) |
26c3a1ed935a
testing of encodings in DICOMweb
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
246
diff
changeset
|
849 self.assertEqual('ISO 2022 IR 13', GetEncoding('Encodings/DavidClunie/SCSH32', 2)[0]) |
26c3a1ed935a
testing of encodings in DICOMweb
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
246
diff
changeset
|
850 self.assertEqual('ISO 2022 IR 87', GetEncoding('Encodings/DavidClunie/SCSH32', 2)[1]) |
26c3a1ed935a
testing of encodings in DICOMweb
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
246
diff
changeset
|
851 |
249
24e5c8ca9440
DICOMweb: test_rendered
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
248
diff
changeset
|
852 |
24e5c8ca9440
DICOMweb: test_rendered
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
248
diff
changeset
|
853 def test_rendered(self): |
24e5c8ca9440
DICOMweb: test_rendered
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
248
diff
changeset
|
854 def RenderFrame(path, i): |
24e5c8ca9440
DICOMweb: test_rendered
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
248
diff
changeset
|
855 return DoPost(ORTHANC, '/dicom-web/servers/sample/get', { |
24e5c8ca9440
DICOMweb: test_rendered
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
248
diff
changeset
|
856 'Uri' : '%s/frames/%d/rendered' % (path, i) |
24e5c8ca9440
DICOMweb: test_rendered
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
248
diff
changeset
|
857 }) |
24e5c8ca9440
DICOMweb: test_rendered
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
248
diff
changeset
|
858 |
24e5c8ca9440
DICOMweb: test_rendered
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
248
diff
changeset
|
859 # This image has 76 frames |
24e5c8ca9440
DICOMweb: test_rendered
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
248
diff
changeset
|
860 path = UploadAndGetWadoPath('Multiframe.dcm') |
24e5c8ca9440
DICOMweb: test_rendered
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
248
diff
changeset
|
861 |
24e5c8ca9440
DICOMweb: test_rendered
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
248
diff
changeset
|
862 self.assertRaises(Exception, lambda: RenderFrame(path, 0)) |
24e5c8ca9440
DICOMweb: test_rendered
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
248
diff
changeset
|
863 |
24e5c8ca9440
DICOMweb: test_rendered
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
248
diff
changeset
|
864 frame1 = RenderFrame(path, 1) |
24e5c8ca9440
DICOMweb: test_rendered
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
248
diff
changeset
|
865 im = UncompressImage(frame1) |
24e5c8ca9440
DICOMweb: test_rendered
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
248
diff
changeset
|
866 self.assertEqual("L", im.mode) |
24e5c8ca9440
DICOMweb: test_rendered
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
248
diff
changeset
|
867 self.assertEqual(512, im.size[0]) |
24e5c8ca9440
DICOMweb: test_rendered
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
248
diff
changeset
|
868 self.assertEqual(512, im.size[1]) |
24e5c8ca9440
DICOMweb: test_rendered
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
248
diff
changeset
|
869 |
24e5c8ca9440
DICOMweb: test_rendered
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
248
diff
changeset
|
870 im = UncompressImage(RenderFrame(path, 76)) |
24e5c8ca9440
DICOMweb: test_rendered
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
248
diff
changeset
|
871 self.assertEqual("L", im.mode) |
24e5c8ca9440
DICOMweb: test_rendered
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
248
diff
changeset
|
872 self.assertEqual(512, im.size[0]) |
24e5c8ca9440
DICOMweb: test_rendered
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
248
diff
changeset
|
873 self.assertEqual(512, im.size[1]) |
24e5c8ca9440
DICOMweb: test_rendered
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
248
diff
changeset
|
874 |
24e5c8ca9440
DICOMweb: test_rendered
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
248
diff
changeset
|
875 self.assertRaises(Exception, lambda: RenderFrame(path, 77)) |
24e5c8ca9440
DICOMweb: test_rendered
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
248
diff
changeset
|
876 |
24e5c8ca9440
DICOMweb: test_rendered
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
248
diff
changeset
|
877 defaultFrame = DoPost(ORTHANC, '/dicom-web/servers/sample/get', { |
24e5c8ca9440
DICOMweb: test_rendered
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
248
diff
changeset
|
878 'Uri' : '%s/rendered' % path |
24e5c8ca9440
DICOMweb: test_rendered
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
248
diff
changeset
|
879 }) |
24e5c8ca9440
DICOMweb: test_rendered
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
248
diff
changeset
|
880 |
24e5c8ca9440
DICOMweb: test_rendered
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
248
diff
changeset
|
881 self.assertEqual(len(frame1), len(defaultFrame)) |
24e5c8ca9440
DICOMweb: test_rendered
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
248
diff
changeset
|
882 self.assertEqual(frame1, defaultFrame) |
24e5c8ca9440
DICOMweb: test_rendered
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
248
diff
changeset
|
883 |
24e5c8ca9440
DICOMweb: test_rendered
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
248
diff
changeset
|
884 |
24e5c8ca9440
DICOMweb: test_rendered
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
248
diff
changeset
|
885 # This image has 1 frame |
24e5c8ca9440
DICOMweb: test_rendered
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
248
diff
changeset
|
886 path = UploadAndGetWadoPath('Phenix/IM-0001-0001.dcm') |
24e5c8ca9440
DICOMweb: test_rendered
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
248
diff
changeset
|
887 |
24e5c8ca9440
DICOMweb: test_rendered
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
248
diff
changeset
|
888 self.assertRaises(Exception, lambda: RenderFrame(path, 0)) |
24e5c8ca9440
DICOMweb: test_rendered
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
248
diff
changeset
|
889 self.assertRaises(Exception, lambda: RenderFrame(path, 2)) |
24e5c8ca9440
DICOMweb: test_rendered
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
248
diff
changeset
|
890 |
24e5c8ca9440
DICOMweb: test_rendered
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
248
diff
changeset
|
891 frame1 = RenderFrame(path, 1) |
24e5c8ca9440
DICOMweb: test_rendered
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
248
diff
changeset
|
892 im = UncompressImage(frame1) |
24e5c8ca9440
DICOMweb: test_rendered
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
248
diff
changeset
|
893 self.assertEqual("L", im.mode) |
24e5c8ca9440
DICOMweb: test_rendered
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
248
diff
changeset
|
894 self.assertEqual(512, im.size[0]) |
24e5c8ca9440
DICOMweb: test_rendered
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
248
diff
changeset
|
895 self.assertEqual(358, im.size[1]) |
24e5c8ca9440
DICOMweb: test_rendered
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
248
diff
changeset
|
896 |
24e5c8ca9440
DICOMweb: test_rendered
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
248
diff
changeset
|
897 defaultFrame = DoPost(ORTHANC, '/dicom-web/servers/sample/get', { |
24e5c8ca9440
DICOMweb: test_rendered
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
248
diff
changeset
|
898 'Uri' : '%s/rendered' % path |
24e5c8ca9440
DICOMweb: test_rendered
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
248
diff
changeset
|
899 }) |
24e5c8ca9440
DICOMweb: test_rendered
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
248
diff
changeset
|
900 |
24e5c8ca9440
DICOMweb: test_rendered
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
248
diff
changeset
|
901 self.assertEqual(len(frame1), len(defaultFrame)) |
24e5c8ca9440
DICOMweb: test_rendered
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
248
diff
changeset
|
902 self.assertEqual(frame1, defaultFrame) |
259
298f80c6ccc4
test_qido_parent_attributes
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
249
diff
changeset
|
903 |
298f80c6ccc4
test_qido_parent_attributes
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
249
diff
changeset
|
904 |
298f80c6ccc4
test_qido_parent_attributes
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
249
diff
changeset
|
905 def test_qido_parent_attributes(self): |
298f80c6ccc4
test_qido_parent_attributes
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
249
diff
changeset
|
906 UploadInstance(ORTHANC, 'Brainix/Flair/IM-0001-0001.dcm') |
298f80c6ccc4
test_qido_parent_attributes
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
249
diff
changeset
|
907 study = '2.16.840.1.113669.632.20.1211.10000357775' |
298f80c6ccc4
test_qido_parent_attributes
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
249
diff
changeset
|
908 series = '1.3.46.670589.11.0.0.11.4.2.0.8743.5.5396.2006120114285654497' |
298f80c6ccc4
test_qido_parent_attributes
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
249
diff
changeset
|
909 instance = '1.3.46.670589.11.0.0.11.4.2.0.8743.5.5396.2006120114314079549' |
298f80c6ccc4
test_qido_parent_attributes
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
249
diff
changeset
|
910 |
298f80c6ccc4
test_qido_parent_attributes
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
249
diff
changeset
|
911 a = DoGet(ORTHANC, '/dicom-web/studies') |
298f80c6ccc4
test_qido_parent_attributes
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
249
diff
changeset
|
912 self.assertEqual(1, len(a)) |
298f80c6ccc4
test_qido_parent_attributes
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
249
diff
changeset
|
913 self.assertFalse('00080018' in a[0]) # SOPInstanceUID |
298f80c6ccc4
test_qido_parent_attributes
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
249
diff
changeset
|
914 self.assertFalse('0020000E' in a[0]) # SeriesInstanceUID |
298f80c6ccc4
test_qido_parent_attributes
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
249
diff
changeset
|
915 self.assertEqual(study, a[0]['0020000D']['Value'][0]) |
298f80c6ccc4
test_qido_parent_attributes
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
249
diff
changeset
|
916 self.assertEqual('BRAINIX', a[0]['00100010']['Value'][0]['Alphabetic']) |
298f80c6ccc4
test_qido_parent_attributes
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
249
diff
changeset
|
917 |
298f80c6ccc4
test_qido_parent_attributes
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
249
diff
changeset
|
918 a = DoGet(ORTHANC, '/dicom-web/studies?0020000D=%s' % study) |
298f80c6ccc4
test_qido_parent_attributes
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
249
diff
changeset
|
919 self.assertEqual(1, len(a)) |
298f80c6ccc4
test_qido_parent_attributes
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
249
diff
changeset
|
920 self.assertFalse('00080018' in a[0]) # SOPInstanceUID |
298f80c6ccc4
test_qido_parent_attributes
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
249
diff
changeset
|
921 self.assertFalse('0020000E' in a[0]) # SeriesInstanceUID |
298f80c6ccc4
test_qido_parent_attributes
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
249
diff
changeset
|
922 self.assertEqual(study, a[0]['0020000D']['Value'][0]) |
298f80c6ccc4
test_qido_parent_attributes
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
249
diff
changeset
|
923 self.assertEqual('BRAINIX', a[0]['00100010']['Value'][0]['Alphabetic']) |
298f80c6ccc4
test_qido_parent_attributes
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
249
diff
changeset
|
924 |
298f80c6ccc4
test_qido_parent_attributes
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
249
diff
changeset
|
925 a = DoGet(ORTHANC, '/dicom-web/series') |
298f80c6ccc4
test_qido_parent_attributes
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
249
diff
changeset
|
926 self.assertEqual(1, len(a)) |
298f80c6ccc4
test_qido_parent_attributes
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
249
diff
changeset
|
927 self.assertFalse('00080018' in a[0]) |
298f80c6ccc4
test_qido_parent_attributes
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
249
diff
changeset
|
928 self.assertEqual(study, a[0]['0020000D']['Value'][0]) |
298f80c6ccc4
test_qido_parent_attributes
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
249
diff
changeset
|
929 self.assertEqual(series, a[0]['0020000E']['Value'][0]) |
298f80c6ccc4
test_qido_parent_attributes
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
249
diff
changeset
|
930 self.assertEqual('MR', a[0]['00080060']['Value'][0]) |
298f80c6ccc4
test_qido_parent_attributes
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
249
diff
changeset
|
931 self.assertEqual('BRAINIX', a[0]['00100010']['Value'][0]['Alphabetic']) |
298f80c6ccc4
test_qido_parent_attributes
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
249
diff
changeset
|
932 |
298f80c6ccc4
test_qido_parent_attributes
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
249
diff
changeset
|
933 a = DoGet(ORTHANC, '/dicom-web/instances') |
298f80c6ccc4
test_qido_parent_attributes
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
249
diff
changeset
|
934 self.assertEqual(1, len(a)) |
298f80c6ccc4
test_qido_parent_attributes
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
249
diff
changeset
|
935 self.assertEqual(study, a[0]['0020000D']['Value'][0]) |
298f80c6ccc4
test_qido_parent_attributes
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
249
diff
changeset
|
936 self.assertEqual(series, a[0]['0020000E']['Value'][0]) |
298f80c6ccc4
test_qido_parent_attributes
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
249
diff
changeset
|
937 self.assertEqual(instance, a[0]['00080018']['Value'][0]) |
298f80c6ccc4
test_qido_parent_attributes
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
249
diff
changeset
|
938 self.assertEqual('MR', a[0]['00080060']['Value'][0]) |
298f80c6ccc4
test_qido_parent_attributes
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
249
diff
changeset
|
939 self.assertEqual('BRAINIX', a[0]['00100010']['Value'][0]['Alphabetic']) |
298f80c6ccc4
test_qido_parent_attributes
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
249
diff
changeset
|
940 |
298f80c6ccc4
test_qido_parent_attributes
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
249
diff
changeset
|
941 a = DoGet(ORTHANC, '/dicom-web/studies/%s/series' % study) |
298f80c6ccc4
test_qido_parent_attributes
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
249
diff
changeset
|
942 self.assertEqual(1, len(a)) |
298f80c6ccc4
test_qido_parent_attributes
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
249
diff
changeset
|
943 self.assertFalse('00080018' in a[0]) |
298f80c6ccc4
test_qido_parent_attributes
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
249
diff
changeset
|
944 self.assertEqual(study, a[0]['0020000D']['Value'][0]) |
298f80c6ccc4
test_qido_parent_attributes
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
249
diff
changeset
|
945 self.assertEqual(series, a[0]['0020000E']['Value'][0]) |
298f80c6ccc4
test_qido_parent_attributes
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
249
diff
changeset
|
946 self.assertEqual('MR', a[0]['00080060']['Value'][0]) |
298f80c6ccc4
test_qido_parent_attributes
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
249
diff
changeset
|
947 self.assertEqual('BRAINIX', a[0]['00100010']['Value'][0]['Alphabetic']) |
298f80c6ccc4
test_qido_parent_attributes
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
249
diff
changeset
|
948 |
298f80c6ccc4
test_qido_parent_attributes
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
249
diff
changeset
|
949 a = DoGet(ORTHANC, '/dicom-web/studies/%s/series/%s/instances' % (study, series)) |
298f80c6ccc4
test_qido_parent_attributes
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
249
diff
changeset
|
950 self.assertEqual(1, len(a)) |
298f80c6ccc4
test_qido_parent_attributes
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
249
diff
changeset
|
951 self.assertEqual(study, a[0]['0020000D']['Value'][0]) |
298f80c6ccc4
test_qido_parent_attributes
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
249
diff
changeset
|
952 self.assertEqual(series, a[0]['0020000E']['Value'][0]) |
298f80c6ccc4
test_qido_parent_attributes
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
249
diff
changeset
|
953 self.assertEqual(instance, a[0]['00080018']['Value'][0]) |
298f80c6ccc4
test_qido_parent_attributes
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
249
diff
changeset
|
954 self.assertEqual('MR', a[0]['00080060']['Value'][0]) |
298f80c6ccc4
test_qido_parent_attributes
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
249
diff
changeset
|
955 self.assertEqual('BRAINIX', a[0]['00100010']['Value'][0]['Alphabetic']) |
298f80c6ccc4
test_qido_parent_attributes
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
249
diff
changeset
|
956 |
298f80c6ccc4
test_qido_parent_attributes
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
249
diff
changeset
|
957 # "If {StudyInstanceUID} is not specified, all Study-level |
298f80c6ccc4
test_qido_parent_attributes
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
249
diff
changeset
|
958 # attributes specified in Table 6.7.1-2" => Here, |
298f80c6ccc4
test_qido_parent_attributes
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
249
diff
changeset
|
959 # {StudyInstanceUID} *is* specified, so we must *not* get the |
298f80c6ccc4
test_qido_parent_attributes
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
249
diff
changeset
|
960 # PatientName. |
298f80c6ccc4
test_qido_parent_attributes
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
249
diff
changeset
|
961 # http://dicom.nema.org/medical/dicom/2019a/output/html/part18.html#table_6.7.1-2a |
298f80c6ccc4
test_qido_parent_attributes
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
249
diff
changeset
|
962 a = DoGet(ORTHANC, '/dicom-web/series?0020000D=%s' % study) |
298f80c6ccc4
test_qido_parent_attributes
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
249
diff
changeset
|
963 self.assertEqual(1, len(a)) |
298f80c6ccc4
test_qido_parent_attributes
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
249
diff
changeset
|
964 self.assertFalse('00100010' in a[0]) # PatientName |
298f80c6ccc4
test_qido_parent_attributes
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
249
diff
changeset
|
965 self.assertEqual(study, a[0]['0020000D']['Value'][0]) |
298f80c6ccc4
test_qido_parent_attributes
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
249
diff
changeset
|
966 self.assertEqual(series, a[0]['0020000E']['Value'][0]) |
298f80c6ccc4
test_qido_parent_attributes
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
249
diff
changeset
|
967 self.assertEqual('MR', a[0]['00080060']['Value'][0]) |
298f80c6ccc4
test_qido_parent_attributes
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
249
diff
changeset
|
968 |
298f80c6ccc4
test_qido_parent_attributes
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
249
diff
changeset
|
969 # http://dicom.nema.org/medical/dicom/2019a/output/html/part18.html#table_6.7.1-2b |
298f80c6ccc4
test_qido_parent_attributes
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
249
diff
changeset
|
970 a = DoGet(ORTHANC, '/dicom-web/instances?0020000D=%s' % study) |
298f80c6ccc4
test_qido_parent_attributes
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
249
diff
changeset
|
971 self.assertEqual(1, len(a)) |
298f80c6ccc4
test_qido_parent_attributes
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
249
diff
changeset
|
972 self.assertFalse('00100010' in a[0]) # PatientName |
298f80c6ccc4
test_qido_parent_attributes
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
249
diff
changeset
|
973 self.assertEqual(study, a[0]['0020000D']['Value'][0]) |
298f80c6ccc4
test_qido_parent_attributes
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
249
diff
changeset
|
974 self.assertEqual(series, a[0]['0020000E']['Value'][0]) |
298f80c6ccc4
test_qido_parent_attributes
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
249
diff
changeset
|
975 self.assertEqual('MR', a[0]['00080060']['Value'][0]) |
298f80c6ccc4
test_qido_parent_attributes
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
249
diff
changeset
|
976 |
298f80c6ccc4
test_qido_parent_attributes
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
249
diff
changeset
|
977 a = DoGet(ORTHANC, '/dicom-web/instances?0020000E=%s' % series) |
298f80c6ccc4
test_qido_parent_attributes
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
249
diff
changeset
|
978 self.assertEqual(1, len(a)) |
298f80c6ccc4
test_qido_parent_attributes
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
249
diff
changeset
|
979 self.assertFalse('00080060' in a[0]) # Modality |
298f80c6ccc4
test_qido_parent_attributes
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
249
diff
changeset
|
980 self.assertEqual(study, a[0]['0020000D']['Value'][0]) |
298f80c6ccc4
test_qido_parent_attributes
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
249
diff
changeset
|
981 self.assertEqual(series, a[0]['0020000E']['Value'][0]) |
298f80c6ccc4
test_qido_parent_attributes
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
249
diff
changeset
|
982 self.assertEqual('BRAINIX', a[0]['00100010']['Value'][0]['Alphabetic']) |
298f80c6ccc4
test_qido_parent_attributes
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
249
diff
changeset
|
983 |
298f80c6ccc4
test_qido_parent_attributes
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
249
diff
changeset
|
984 a = DoGet(ORTHANC, '/dicom-web/instances?0020000D=%s&0020000E=%s' % (study, series)) |
298f80c6ccc4
test_qido_parent_attributes
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
249
diff
changeset
|
985 self.assertEqual(1, len(a)) |
298f80c6ccc4
test_qido_parent_attributes
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
249
diff
changeset
|
986 self.assertFalse('00100010' in a[0]) # PatientName |
298f80c6ccc4
test_qido_parent_attributes
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
249
diff
changeset
|
987 self.assertFalse('00080060' in a[0]) # Modality |
298f80c6ccc4
test_qido_parent_attributes
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
249
diff
changeset
|
988 self.assertEqual(study, a[0]['0020000D']['Value'][0]) |
298f80c6ccc4
test_qido_parent_attributes
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
249
diff
changeset
|
989 self.assertEqual(series, a[0]['0020000E']['Value'][0]) |
261
b8cdb0aef4b9
test_bitbucket_issue_164
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
260
diff
changeset
|
990 |
b8cdb0aef4b9
test_bitbucket_issue_164
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
260
diff
changeset
|
991 |
270
082f35cb4459
test_bitbuck_issue_168
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
261
diff
changeset
|
992 #@unittest.skip("Skip this test on GDCM 2.8.4") |
261
b8cdb0aef4b9
test_bitbucket_issue_164
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
260
diff
changeset
|
993 def test_bitbucket_issue_164(self): |
270
082f35cb4459
test_bitbuck_issue_168
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
261
diff
changeset
|
994 # WARNING - This makes GDCM 2.8.4 crash |
261
b8cdb0aef4b9
test_bitbucket_issue_164
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
260
diff
changeset
|
995 # https://bitbucket.org/sjodogne/orthanc/issues/164 |
b8cdb0aef4b9
test_bitbucket_issue_164
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
260
diff
changeset
|
996 UploadInstance(ORTHANC, 'Issue164.dcm') |
b8cdb0aef4b9
test_bitbucket_issue_164
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
260
diff
changeset
|
997 |
b8cdb0aef4b9
test_bitbucket_issue_164
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
260
diff
changeset
|
998 p = DoGetMultipart(ORTHANC, 'dicom-web/studies/1.2.276.0.26.1.1.1.2.2020.45.52293.1506048/series/1.2.276.0.26.1.1.1.2.2020.45.52293.6384450/instances/1.2.276.0.26.1.1.1.2.2020.45.52366.2551599.179568640/frames/5') |
b8cdb0aef4b9
test_bitbucket_issue_164
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
260
diff
changeset
|
999 self.assertEqual(1, len(p)) |
b8cdb0aef4b9
test_bitbucket_issue_164
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
260
diff
changeset
|
1000 self.assertEqual(743 * 975 * 3, len(p[0])) |
270
082f35cb4459
test_bitbuck_issue_168
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
261
diff
changeset
|
1001 |
082f35cb4459
test_bitbuck_issue_168
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
261
diff
changeset
|
1002 |
271 | 1003 def test_bitbucket_issue_168(self): |
276 | 1004 # "Plugins can't read private tags from the configuration |
1005 # file" This test will fail if DCMTK <= 3.6.1 (e.g. on Ubuntu | |
1006 # 16.04), or if Orthanc <= 1.5.8 | |
270
082f35cb4459
test_bitbuck_issue_168
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
261
diff
changeset
|
1007 # https://bitbucket.org/sjodogne/orthanc/issues/168/ |
082f35cb4459
test_bitbuck_issue_168
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
261
diff
changeset
|
1008 |
082f35cb4459
test_bitbuck_issue_168
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
261
diff
changeset
|
1009 UploadInstance(ORTHANC, 'Issue168.dcm') |
082f35cb4459
test_bitbuck_issue_168
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
261
diff
changeset
|
1010 |
082f35cb4459
test_bitbuck_issue_168
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
261
diff
changeset
|
1011 a = DoGet(ORTHANC, '/dicom-web/studies') |
082f35cb4459
test_bitbuck_issue_168
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
261
diff
changeset
|
1012 self.assertEqual(1, len(a)) |
082f35cb4459
test_bitbuck_issue_168
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
261
diff
changeset
|
1013 self.assertFalse('00090010' in a[0]) |
082f35cb4459
test_bitbuck_issue_168
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
261
diff
changeset
|
1014 self.assertFalse('00091001' in a[0]) |
082f35cb4459
test_bitbuck_issue_168
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
261
diff
changeset
|
1015 self.assertEqual('20170404', a[0]['00080020']['Value'][0]) |
082f35cb4459
test_bitbuck_issue_168
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
261
diff
changeset
|
1016 |
082f35cb4459
test_bitbuck_issue_168
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
261
diff
changeset
|
1017 a = DoGet(ORTHANC, '/dicom-web/studies?includefield=00091001') |
082f35cb4459
test_bitbuck_issue_168
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
261
diff
changeset
|
1018 self.assertEqual(1, len(a)) |
082f35cb4459
test_bitbuck_issue_168
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
261
diff
changeset
|
1019 self.assertFalse('00090010' in a[0]) |
082f35cb4459
test_bitbuck_issue_168
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
261
diff
changeset
|
1020 self.assertTrue('00091001' in a[0]) |
082f35cb4459
test_bitbuck_issue_168
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
261
diff
changeset
|
1021 self.assertEqual('DS', a[0]['00091001']['vr']) |
082f35cb4459
test_bitbuck_issue_168
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
261
diff
changeset
|
1022 self.assertEqual(1, len(a[0]['00091001']['Value'])) |
082f35cb4459
test_bitbuck_issue_168
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
261
diff
changeset
|
1023 self.assertAlmostEqual(98.41, a[0]['00091001']['Value'][0]) |
082f35cb4459
test_bitbuck_issue_168
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
261
diff
changeset
|
1024 |
082f35cb4459
test_bitbuck_issue_168
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
261
diff
changeset
|
1025 a = DoGet(ORTHANC, '/dicom-web/studies?00090010=Lunit&includefield=00091001') |
082f35cb4459
test_bitbuck_issue_168
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
261
diff
changeset
|
1026 self.assertEqual(1, len(a)) |
082f35cb4459
test_bitbuck_issue_168
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
261
diff
changeset
|
1027 self.assertTrue('00090010' in a[0]) |
082f35cb4459
test_bitbuck_issue_168
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
261
diff
changeset
|
1028 self.assertEqual('LO', a[0]['00090010']['vr']) |
082f35cb4459
test_bitbuck_issue_168
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
261
diff
changeset
|
1029 self.assertEqual(1, len(a[0]['00090010']['Value'])) |
082f35cb4459
test_bitbuck_issue_168
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
261
diff
changeset
|
1030 self.assertEqual('Lunit', a[0]['00090010']['Value'][0]) |
082f35cb4459
test_bitbuck_issue_168
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
261
diff
changeset
|
1031 self.assertTrue('00091001' in a[0]) |
082f35cb4459
test_bitbuck_issue_168
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
261
diff
changeset
|
1032 self.assertEqual('DS', a[0]['00091001']['vr']) |
082f35cb4459
test_bitbuck_issue_168
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
261
diff
changeset
|
1033 self.assertEqual(1, len(a[0]['00091001']['Value'])) |
082f35cb4459
test_bitbuck_issue_168
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
261
diff
changeset
|
1034 self.assertAlmostEqual(98.41, a[0]['00091001']['Value'][0]) |
249
24e5c8ca9440
DICOMweb: test_rendered
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
248
diff
changeset
|
1035 |
270
082f35cb4459
test_bitbuck_issue_168
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
261
diff
changeset
|
1036 a = DoGet(ORTHANC, '/dicom-web/studies?00090010=Lunit2&includefield=00091001') |
082f35cb4459
test_bitbuck_issue_168
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
261
diff
changeset
|
1037 self.assertEqual(0, len(a)) |
082f35cb4459
test_bitbuck_issue_168
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
261
diff
changeset
|
1038 |
082f35cb4459
test_bitbuck_issue_168
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
261
diff
changeset
|
1039 |
272
a94b0409fdac
test_rendered_studies_series
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
271
diff
changeset
|
1040 def test_rendered_studies_series(self): |
a94b0409fdac
test_rendered_studies_series
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
271
diff
changeset
|
1041 i = UploadInstance(ORTHANC, 'Phenix/IM-0001-0001.dcm') ['ID'] |
a94b0409fdac
test_rendered_studies_series
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
271
diff
changeset
|
1042 study = DoGet(ORTHANC, '/instances/%s/tags?simplify' % i) ['StudyInstanceUID'] |
a94b0409fdac
test_rendered_studies_series
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
271
diff
changeset
|
1043 series = DoGet(ORTHANC, '/instances/%s/tags?simplify' % i) ['SeriesInstanceUID'] |
a94b0409fdac
test_rendered_studies_series
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
271
diff
changeset
|
1044 instance = DoGet(ORTHANC, '/instances/%s/tags?simplify' % i) ['SOPInstanceUID'] |
a94b0409fdac
test_rendered_studies_series
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
271
diff
changeset
|
1045 |
a94b0409fdac
test_rendered_studies_series
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
271
diff
changeset
|
1046 a = DoPost(ORTHANC, '/dicom-web/servers/sample/get', { |
a94b0409fdac
test_rendered_studies_series
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
271
diff
changeset
|
1047 'Uri' : '/studies/%s/series/%s/instances/%s/rendered' % (study, series, instance) |
a94b0409fdac
test_rendered_studies_series
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
271
diff
changeset
|
1048 }) |
a94b0409fdac
test_rendered_studies_series
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
271
diff
changeset
|
1049 |
a94b0409fdac
test_rendered_studies_series
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
271
diff
changeset
|
1050 im = UncompressImage(a) |
a94b0409fdac
test_rendered_studies_series
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
271
diff
changeset
|
1051 self.assertEqual("L", im.mode) |
a94b0409fdac
test_rendered_studies_series
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
271
diff
changeset
|
1052 self.assertEqual(512, im.size[0]) |
a94b0409fdac
test_rendered_studies_series
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
271
diff
changeset
|
1053 self.assertEqual(358, im.size[1]) |
a94b0409fdac
test_rendered_studies_series
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
271
diff
changeset
|
1054 |
a94b0409fdac
test_rendered_studies_series
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
271
diff
changeset
|
1055 b = DoPost(ORTHANC, '/dicom-web/servers/sample/get', { |
a94b0409fdac
test_rendered_studies_series
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
271
diff
changeset
|
1056 'Uri' : '/studies/%s/series/%s/rendered' % (study, series) |
a94b0409fdac
test_rendered_studies_series
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
271
diff
changeset
|
1057 }) |
a94b0409fdac
test_rendered_studies_series
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
271
diff
changeset
|
1058 |
a94b0409fdac
test_rendered_studies_series
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
271
diff
changeset
|
1059 self.assertEqual(len(a), len(b)) |
a94b0409fdac
test_rendered_studies_series
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
271
diff
changeset
|
1060 self.assertEqual(a, b) |
a94b0409fdac
test_rendered_studies_series
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
271
diff
changeset
|
1061 |
a94b0409fdac
test_rendered_studies_series
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
271
diff
changeset
|
1062 c = DoPost(ORTHANC, '/dicom-web/servers/sample/get', { |
a94b0409fdac
test_rendered_studies_series
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
271
diff
changeset
|
1063 'Uri' : '/studies/%s/rendered' % study |
a94b0409fdac
test_rendered_studies_series
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
271
diff
changeset
|
1064 }) |
a94b0409fdac
test_rendered_studies_series
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
271
diff
changeset
|
1065 |
a94b0409fdac
test_rendered_studies_series
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
271
diff
changeset
|
1066 self.assertEqual(len(a), len(c)) |
a94b0409fdac
test_rendered_studies_series
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
271
diff
changeset
|
1067 self.assertEqual(a, c) |
a94b0409fdac
test_rendered_studies_series
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
271
diff
changeset
|
1068 |
a94b0409fdac
test_rendered_studies_series
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
271
diff
changeset
|
1069 |
273
afcd550a9216
test_multiple_mime_accept_wado_rs
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
272
diff
changeset
|
1070 def test_multiple_mime_accept_wado_rs(self): |
afcd550a9216
test_multiple_mime_accept_wado_rs
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
272
diff
changeset
|
1071 # "Multiple MIME type Accept Headers for Wado-RS" |
afcd550a9216
test_multiple_mime_accept_wado_rs
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
272
diff
changeset
|
1072 # https://groups.google.com/forum/#!msg/orthanc-users/P3B6J9abZpE/syn5dnW2AwAJ |
afcd550a9216
test_multiple_mime_accept_wado_rs
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
272
diff
changeset
|
1073 |
afcd550a9216
test_multiple_mime_accept_wado_rs
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
272
diff
changeset
|
1074 UploadInstance(ORTHANC, 'DummyCT.dcm') |
afcd550a9216
test_multiple_mime_accept_wado_rs
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
272
diff
changeset
|
1075 study = '1.2.840.113619.2.176.2025.1499492.7391.1171285944.390' |
afcd550a9216
test_multiple_mime_accept_wado_rs
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
272
diff
changeset
|
1076 |
afcd550a9216
test_multiple_mime_accept_wado_rs
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
272
diff
changeset
|
1077 self.assertEqual(1, len(DoGet(ORTHANC, '/dicom-web/studies/%s/metadata' % study))) |
afcd550a9216
test_multiple_mime_accept_wado_rs
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
272
diff
changeset
|
1078 |
afcd550a9216
test_multiple_mime_accept_wado_rs
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
272
diff
changeset
|
1079 self.assertEqual(1, len(DoGet(ORTHANC, '/dicom-web/studies/%s/metadata' % study, |
afcd550a9216
test_multiple_mime_accept_wado_rs
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
272
diff
changeset
|
1080 headers = { 'Accept' : 'application/json, application/dicom+json' }))) |
afcd550a9216
test_multiple_mime_accept_wado_rs
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
272
diff
changeset
|
1081 |
afcd550a9216
test_multiple_mime_accept_wado_rs
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
272
diff
changeset
|
1082 self.assertEqual(1, len(DoGet(ORTHANC, '/dicom-web/studies/%s/metadata' % study, |
274 | 1083 headers = { 'Accept' : 'application/json' }))) |
1084 | |
1085 self.assertEqual(1, len(DoGet(ORTHANC, '/dicom-web/studies/%s/metadata' % study, | |
1086 headers = { 'Accept' : 'application/dicom+json' }))) | |
1087 | |
1088 self.assertEqual(1, len(DoGet(ORTHANC, '/dicom-web/studies/%s/metadata' % study, | |
273
afcd550a9216
test_multiple_mime_accept_wado_rs
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
272
diff
changeset
|
1089 headers = { 'Accept' : 'toto, application/dicom+json' }))) |
afcd550a9216
test_multiple_mime_accept_wado_rs
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
272
diff
changeset
|
1090 |
afcd550a9216
test_multiple_mime_accept_wado_rs
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
272
diff
changeset
|
1091 self.assertEqual(1, len(DoGet(ORTHANC, '/dicom-web/studies/%s/metadata' % study, |
afcd550a9216
test_multiple_mime_accept_wado_rs
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
272
diff
changeset
|
1092 headers = { 'Accept' : 'application/json, tata' }))) |
afcd550a9216
test_multiple_mime_accept_wado_rs
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
272
diff
changeset
|
1093 |
afcd550a9216
test_multiple_mime_accept_wado_rs
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
272
diff
changeset
|
1094 self.assertRaises(Exception, lambda: DoGet(ORTHANC, '/dicom-web/studies/%s/metadata' % study, |
274 | 1095 headers = { 'Accept' : 'toto' })) |
1096 | |
1097 self.assertRaises(Exception, lambda: DoGet(ORTHANC, '/dicom-web/studies/%s/metadata' % study, | |
273
afcd550a9216
test_multiple_mime_accept_wado_rs
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
272
diff
changeset
|
1098 headers = { 'Accept' : 'toto, tata' })) |
275 | 1099 |
1100 # https://groups.google.com/d/msg/orthanc-users/9o5kItsMQI0/Og6B27YyBgAJ | |
1101 self.assertEqual(1, len(DoGetMultipart(ORTHANC, '/dicom-web/studies/%s/metadata' % study, | |
1102 headers = { 'Accept' : 'multipart/related;type=application/dicom+xml' }))) | |
1103 | |
1104 self.assertEqual(1, len(DoGet(ORTHANC, '/dicom-web/studies/%s/metadata' % study, | |
1105 headers = { 'Accept' : 'application/json, application/dicom+xml' }))) | |
1106 | |
1107 self.assertEqual(1, len(DoGet(ORTHANC, '/dicom-web/studies/%s/metadata' % study, | |
1108 headers = { 'Accept' : 'application/dicom+xml, application/json' }))) | |
273
afcd550a9216
test_multiple_mime_accept_wado_rs
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
272
diff
changeset
|
1109 |
afcd550a9216
test_multiple_mime_accept_wado_rs
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
272
diff
changeset
|
1110 |
afcd550a9216
test_multiple_mime_accept_wado_rs
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
272
diff
changeset
|
1111 |
32
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1112 try: |
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1113 print('\nStarting the tests...') |
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1114 unittest.main(argv = [ sys.argv[0] ] + args.options) |
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1115 |
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1116 finally: |
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1117 print('\nDone') |