Mercurial > hg > orthanc-tests
annotate Plugins/DicomWeb/Run.py @ 246:e4e0e2ff91ae
test_bitbucket_issue_143
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Fri, 21 Jun 2019 18:25:44 +0200 |
parents | 49cf8ed97a28 |
children | 26c3a1ed935a |
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 |
195 | 8 # Copyright (C) 2017-2019 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 |
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
107 class Orthanc(unittest.TestCase): |
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
108 def setUp(self): |
83 | 109 if (sys.version_info >= (3, 0)): |
110 # Remove annoying warnings about unclosed socket in Python 3 | |
111 import warnings | |
112 warnings.simplefilter("ignore", ResourceWarning) | |
113 | |
32
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
114 DropOrthanc(ORTHANC) |
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
115 |
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
116 def test_wado_dicom(self): |
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
117 UploadInstance(ORTHANC, 'Brainix/Flair/IM-0001-0001.dcm') |
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
118 |
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
119 SIZE = 169478 |
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
120 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
|
121 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
|
122 STUDY = '2.16.840.1.113669.632.20.1211.10000357775' |
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
123 |
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
124 self.assertRaises(Exception, lambda: DoGet(ORTHANC, args.wado)) |
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
125 self.assertRaises(Exception, lambda: DoGet(ORTHANC, args.wado + '?requestType=WADO')) |
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
126 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
|
127 |
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
128 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
|
129 self.assertEqual(SIZE, len(dicom)) |
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 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
|
132 self.assertEqual(SIZE, len(dicom)) |
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
133 |
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
134 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
|
135 self.assertEqual(SIZE, len(dicom)) |
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
136 |
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
137 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
|
138 self.assertEqual(SIZE, len(dicom)) |
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&studyUID=%s' % (INSTANCE, STUDY)) |
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 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
|
144 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
|
145 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
|
146 |
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
147 def test_wado_image(self): |
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
148 UploadInstance(ORTHANC, 'Phenix/IM-0001-0001.dcm') |
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
149 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
|
150 |
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
151 im = GetImage(ORTHANC, args.wado + '?requestType=WADO&objectUID=%s' % INSTANCE) |
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
152 self.assertEqual('JPEG', im.format) |
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
153 self.assertEqual('L', im.mode) |
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
154 self.assertEqual(512, im.size[0]) |
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
155 self.assertEqual(358, im.size[1]) |
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
156 |
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
157 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
|
158 self.assertEqual('JPEG', im.format) |
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
159 |
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
160 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
|
161 self.assertEqual('PNG', im.format) |
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
162 self.assertEqual('L', im.mode) |
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
163 self.assertEqual(512, im.size[0]) |
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
164 self.assertEqual(358, im.size[1]) |
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
165 |
33 | 166 def test_stow(self): |
167 self.assertEqual(0, len(DoGet(ORTHANC, '/instances'))) | |
168 SendStow(ORTHANC, args.dicomweb + '/studies', GetDatabasePath('Phenix/IM-0001-0001.dcm')) | |
169 self.assertEqual(1, len(DoGet(ORTHANC, '/instances'))) | |
170 a = SendStow(ORTHANC, args.dicomweb + '/studies', GetDatabasePath('Phenix/IM-0001-0001.dcm')) | |
171 self.assertEqual(1, len(DoGet(ORTHANC, '/instances'))) | |
172 | |
227
875ff7460ae8
test_qido_fields, test_stow_errors
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
226
diff
changeset
|
173 self.assertEqual(4, len(a)) |
875ff7460ae8
test_qido_fields, test_stow_errors
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
226
diff
changeset
|
174 |
875ff7460ae8
test_qido_fields, test_stow_errors
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
226
diff
changeset
|
175 # Specific character set |
875ff7460ae8
test_qido_fields, test_stow_errors
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
226
diff
changeset
|
176 self.assertTrue('00080005' in a) |
875ff7460ae8
test_qido_fields, test_stow_errors
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
226
diff
changeset
|
177 self.assertEqual('CS', a['00080005']['vr']) |
33 | 178 |
179 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
|
180 self.assertEqual('UR', a['00081190']['vr']) |
875ff7460ae8
test_qido_fields, test_stow_errors
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
226
diff
changeset
|
181 |
875ff7460ae8
test_qido_fields, test_stow_errors
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
226
diff
changeset
|
182 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
|
183 self.assertEqual('SQ', a['00081198']['vr']) |
875ff7460ae8
test_qido_fields, test_stow_errors
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
226
diff
changeset
|
184 |
875ff7460ae8
test_qido_fields, test_stow_errors
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
226
diff
changeset
|
185 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
|
186 self.assertEqual('SQ', a['00081199']['vr']) |
875ff7460ae8
test_qido_fields, test_stow_errors
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
226
diff
changeset
|
187 |
875ff7460ae8
test_qido_fields, test_stow_errors
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
226
diff
changeset
|
188 b = a['00081199']['Value'][0] |
875ff7460ae8
test_qido_fields, test_stow_errors
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
226
diff
changeset
|
189 |
875ff7460ae8
test_qido_fields, test_stow_errors
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
226
diff
changeset
|
190 # Referenced SOP class UID |
875ff7460ae8
test_qido_fields, test_stow_errors
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
226
diff
changeset
|
191 self.assertEqual('UI', b['00081150']['vr']) |
875ff7460ae8
test_qido_fields, test_stow_errors
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
226
diff
changeset
|
192 self.assertEqual(1, len(b['00081150']['Value'])) |
875ff7460ae8
test_qido_fields, test_stow_errors
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
226
diff
changeset
|
193 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
|
194 |
875ff7460ae8
test_qido_fields, test_stow_errors
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
226
diff
changeset
|
195 # Referenced SOP instance UID |
875ff7460ae8
test_qido_fields, test_stow_errors
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
226
diff
changeset
|
196 self.assertEqual('UI', b['00081155']['vr']) |
875ff7460ae8
test_qido_fields, test_stow_errors
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
226
diff
changeset
|
197 self.assertEqual(1, len(b['00081155']['Value'])) |
875ff7460ae8
test_qido_fields, test_stow_errors
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
226
diff
changeset
|
198 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
|
199 |
875ff7460ae8
test_qido_fields, test_stow_errors
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
226
diff
changeset
|
200 # Retrieve URL |
875ff7460ae8
test_qido_fields, test_stow_errors
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
226
diff
changeset
|
201 self.assertEqual('UR', b['00081190']['vr']) |
875ff7460ae8
test_qido_fields, test_stow_errors
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
226
diff
changeset
|
202 self.assertEqual(1, len(b['00081190']['Value'])) |
875ff7460ae8
test_qido_fields, test_stow_errors
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
226
diff
changeset
|
203 self.assertTrue(b['00081190']['Value'][0]. |
33 | 204 endswith('series/1.2.840.113704.1.111.5692.1127828999.2/instances/1.2.840.113704.7.1.1.6632.1127829031.2')) |
205 | |
83 | 206 # Remove the "http://localhost:8042" prefix |
207 url = a['00081190']['Value'][0] | |
208 url = re.sub(r'(http|https)://[^/]+(/.*)', r'\2', url) | |
209 | |
210 # Get the content-length of all the multiparts of this WADO-RS request | |
211 b = DoGet(ORTHANC, url).decode('utf-8', 'ignore') | |
212 parts = re.findall(r'^Content-Length:\s*(\d+)\s*', b, re.IGNORECASE | re.MULTILINE) | |
213 self.assertEqual(1, len(parts)) | |
214 self.assertEqual(os.path.getsize(GetDatabasePath('Phenix/IM-0001-0001.dcm')), int(parts[0])) | |
33 | 215 |
227
875ff7460ae8
test_qido_fields, test_stow_errors
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
226
diff
changeset
|
216 |
84 | 217 def test_server_get(self): |
218 UploadInstance(ORTHANC, 'Knee/T1/IM-0001-0001.dcm') | |
219 | |
220 self.assertEqual(1, len(DoGet(ORTHANC, '/dicom-web/servers'))) | |
221 self.assertTrue('sample' in DoGet(ORTHANC, '/dicom-web/servers')) | |
222 | |
129 | 223 serversReadback = DoGet(ORTHANC, '/dicom-web/servers?expand') |
224 self.assertEqual('http://localhost:8042/dicom-web/', serversReadback['sample']['Url']) | |
225 self.assertEqual('alice', serversReadback['sample']['Username']) | |
226 | |
84 | 227 sample = DoGet(ORTHANC, '/dicom-web/servers/sample') |
244 | 228 self.assertEqual(5, len(sample)) |
84 | 229 self.assertTrue('stow' in sample) |
230 self.assertTrue('retrieve' in sample) | |
231 self.assertTrue('get' in sample) | |
244 | 232 self.assertTrue('wado' in sample) # New in 0.7 |
233 self.assertTrue('qido' in sample) # New in 0.7 | |
84 | 234 |
235 # application/dicom+xml | |
131
90e5331ddee9
application/dicom+json is now the default in DICOMweb
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
130
diff
changeset
|
236 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
|
237 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
|
238 re.MULTILINE))) |
90e5331ddee9
application/dicom+json is now the default in DICOMweb
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
130
diff
changeset
|
239 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
|
240 (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
|
241 { 'Uri' : '/studies', |
90e5331ddee9
application/dicom+json is now the default in DICOMweb
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
130
diff
changeset
|
242 '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
|
243 }), re.MULTILINE))) |
84 | 244 |
245 # application/dicom+json | |
131
90e5331ddee9
application/dicom+json is now the default in DICOMweb
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
130
diff
changeset
|
246 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
|
247 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
|
248 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
|
249 { 'Uri' : '/studies', |
90e5331ddee9
application/dicom+json is now the default in DICOMweb
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
130
diff
changeset
|
250 '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
|
251 |
90e5331ddee9
application/dicom+json is now the default in DICOMweb
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
130
diff
changeset
|
252 # application/json |
90e5331ddee9
application/dicom+json is now the default in DICOMweb
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
130
diff
changeset
|
253 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
|
254 headers = { 'Accept' : 'application/json' }))) |
84 | 255 self.assertEqual(1, len(DoPost(ORTHANC, '/dicom-web/servers/sample/get', |
256 { 'Uri' : '/studies', | |
257 'HttpHeaders' : { 'Accept' : 'application/json' }}))) | |
258 | |
131
90e5331ddee9
application/dicom+json is now the default in DICOMweb
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
130
diff
changeset
|
259 # 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
|
260 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
|
261 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
|
262 { 'Uri' : '/studies' }))) |
90e5331ddee9
application/dicom+json is now the default in DICOMweb
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
130
diff
changeset
|
263 |
84 | 264 |
265 def test_server_stow(self): | |
266 UploadInstance(ORTHANC, 'Knee/T1/IM-0001-0001.dcm') | |
267 | |
268 self.assertRaises(Exception, lambda: | |
269 DoPost(ORTHANC, '/dicom-web/servers/sample/stow', | |
246
e4e0e2ff91ae
test_bitbucket_issue_143
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
244
diff
changeset
|
270 { 'Resources' : [ 'nope' ], |
e4e0e2ff91ae
test_bitbucket_issue_143
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
244
diff
changeset
|
271 'Synchronous' : True })) # inexisting resource |
84 | 272 |
246
e4e0e2ff91ae
test_bitbucket_issue_143
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
244
diff
changeset
|
273 l = 2 # For >= 0.7 |
e4e0e2ff91ae
test_bitbucket_issue_143
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
244
diff
changeset
|
274 #l = 0 # For <= 0.6 |
e4e0e2ff91ae
test_bitbucket_issue_143
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
244
diff
changeset
|
275 |
e4e0e2ff91ae
test_bitbucket_issue_143
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
244
diff
changeset
|
276 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
|
277 { 'Resources' : [ '0a9b3153-2512774b-2d9580de-1fc3dcf6-3bd83918' ], |
e4e0e2ff91ae
test_bitbucket_issue_143
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
244
diff
changeset
|
278 'Synchronous' : True }))) # study |
84 | 279 |
246
e4e0e2ff91ae
test_bitbucket_issue_143
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
244
diff
changeset
|
280 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
|
281 { 'Resources' : [ '6de73705-c4e65c1b-9d9ea1b5-cabcd8e7-f15e4285' ], |
e4e0e2ff91ae
test_bitbucket_issue_143
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
244
diff
changeset
|
282 'Synchronous' : True }))) # series |
84 | 283 |
246
e4e0e2ff91ae
test_bitbucket_issue_143
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
244
diff
changeset
|
284 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
|
285 { 'Resources' : [ 'c8df6478-d7794217-0f11c293-a41237c9-31d98357' ], |
e4e0e2ff91ae
test_bitbucket_issue_143
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
244
diff
changeset
|
286 'Synchronous' : True }))) # instance |
84 | 287 |
246
e4e0e2ff91ae
test_bitbucket_issue_143
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
244
diff
changeset
|
288 self.assertEqual(l, len(DoPost(ORTHANC, '/dicom-web/servers/sample/stow', |
84 | 289 { 'Resources' : [ |
290 'ca29faea-b6a0e17f-067743a1-8b778011-a48b2a17', | |
291 '0a9b3153-2512774b-2d9580de-1fc3dcf6-3bd83918', | |
292 '6de73705-c4e65c1b-9d9ea1b5-cabcd8e7-f15e4285', | |
246
e4e0e2ff91ae
test_bitbucket_issue_143
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
244
diff
changeset
|
293 'c8df6478-d7794217-0f11c293-a41237c9-31d98357' ], |
e4e0e2ff91ae
test_bitbucket_issue_143
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
244
diff
changeset
|
294 'Synchronous' : True }))) # altogether |
84 | 295 |
296 | |
297 def test_server_retrieve(self): | |
244 | 298 COUNT = 'ReceivedInstancesCount' |
299 #COUNT = 'Instances' # In version <= 0.6 | |
300 | |
84 | 301 UploadInstance(ORTHANC, 'Knee/T1/IM-0001-0001.dcm') |
302 UploadInstance(ORTHANC, 'Knee/T1/IM-0001-0002.dcm') | |
303 UploadInstance(ORTHANC, 'Knee/T2/IM-0001-0001.dcm') | |
304 | |
305 self.assertRaises(Exception, lambda: | |
306 DoPost(ORTHANC, '/dicom-web/servers/sample/retrieve', | |
307 { 'Resources' : [ { 'Study' : 'nope' } ]})) # inexisting resource | |
308 | |
309 t = DoPost(ORTHANC, '/dicom-web/servers/sample/retrieve', | |
310 { 'Resources' : [ { 'Study' : '2.16.840.1.113669.632.20.121711.10000160881' } ] }) | |
244 | 311 self.assertEqual(3, int(t[COUNT])) |
84 | 312 |
313 # Missing "Study" field | |
314 self.assertRaises(Exception, lambda: | |
315 DoPost(ORTHANC, '/dicom-web/servers/sample/retrieve', | |
316 { 'Resources' : [ { 'Series' : '1.3.46.670589.11.17521.5.0.3124.2008081908564160709' } ]})) | |
317 | |
318 t = DoPost(ORTHANC, '/dicom-web/servers/sample/retrieve', | |
319 { 'Resources' : [ { 'Study' : '2.16.840.1.113669.632.20.121711.10000160881', | |
320 'Series' : '1.3.46.670589.11.17521.5.0.3124.2008081908564160709' } ] }) | |
244 | 321 self.assertEqual(2, int(t[COUNT])) |
84 | 322 |
323 t = DoPost(ORTHANC, '/dicom-web/servers/sample/retrieve', | |
324 { 'Resources' : [ { 'Study' : '2.16.840.1.113669.632.20.121711.10000160881', | |
325 'Series' : '1.3.46.670589.11.17521.5.0.3124.2008081909090037350' } ] }) | |
244 | 326 self.assertEqual(1, int(t[COUNT])) |
84 | 327 |
328 t = DoPost(ORTHANC, '/dicom-web/servers/sample/retrieve', | |
329 { 'Resources' : [ { 'Study' : '2.16.840.1.113669.632.20.121711.10000160881', | |
330 'Series' : '1.3.46.670589.11.17521.5.0.3124.2008081909090037350' }, | |
331 { 'Study' : '2.16.840.1.113669.632.20.121711.10000160881', | |
332 'Series' : '1.3.46.670589.11.17521.5.0.3124.2008081908564160709' } ] }) | |
244 | 333 self.assertEqual(3, int(t[COUNT])) |
84 | 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.2008081909090037350', | |
338 'Instance' : '1.3.46.670589.11.17521.5.0.3124.2008081909113806560' } ] }) | |
244 | 339 self.assertEqual(1, int(t[COUNT])) |
84 | 340 |
341 | |
114
a6019560272f
test_bitbucket_issue_53
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
100
diff
changeset
|
342 def test_bitbucket_issue_53(self): |
a6019560272f
test_bitbucket_issue_53
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
100
diff
changeset
|
343 # 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
|
344 # https://bitbucket.org/sjodogne/orthanc/issues/53 |
a6019560272f
test_bitbucket_issue_53
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
100
diff
changeset
|
345 |
a6019560272f
test_bitbucket_issue_53
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
100
diff
changeset
|
346 UploadInstance(ORTHANC, 'Brainix/Flair/IM-0001-0001.dcm') |
a6019560272f
test_bitbucket_issue_53
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
100
diff
changeset
|
347 UploadInstance(ORTHANC, 'Knee/T1/IM-0001-0001.dcm') |
a6019560272f
test_bitbucket_issue_53
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
100
diff
changeset
|
348 |
a6019560272f
test_bitbucket_issue_53
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
100
diff
changeset
|
349 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
|
350 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
|
351 |
a6019560272f
test_bitbucket_issue_53
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
100
diff
changeset
|
352 a = DoGet(ORTHANC, '/dicom-web/studies', |
a6019560272f
test_bitbucket_issue_53
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
100
diff
changeset
|
353 headers = { 'accept' : 'application/json' }) |
a6019560272f
test_bitbucket_issue_53
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
100
diff
changeset
|
354 self.assertEqual(2, len(a)) |
a6019560272f
test_bitbucket_issue_53
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
100
diff
changeset
|
355 |
a6019560272f
test_bitbucket_issue_53
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
100
diff
changeset
|
356 b = [] |
a6019560272f
test_bitbucket_issue_53
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
100
diff
changeset
|
357 a = DoGet(ORTHANC, '/dicom-web/studies?limit=1', |
a6019560272f
test_bitbucket_issue_53
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
100
diff
changeset
|
358 headers = { 'accept' : 'application/json' }) |
a6019560272f
test_bitbucket_issue_53
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
100
diff
changeset
|
359 self.assertEqual(1, len(a)) |
a6019560272f
test_bitbucket_issue_53
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
100
diff
changeset
|
360 b.append(a[0]['0020000D']['Value'][0]) |
a6019560272f
test_bitbucket_issue_53
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
100
diff
changeset
|
361 |
a6019560272f
test_bitbucket_issue_53
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
100
diff
changeset
|
362 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
|
363 headers = { 'accept' : 'application/json' }) |
a6019560272f
test_bitbucket_issue_53
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
100
diff
changeset
|
364 self.assertEqual(1, len(a)) |
a6019560272f
test_bitbucket_issue_53
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
100
diff
changeset
|
365 b.append(a[0]['0020000D']['Value'][0]) |
a6019560272f
test_bitbucket_issue_53
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
100
diff
changeset
|
366 |
a6019560272f
test_bitbucket_issue_53
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
100
diff
changeset
|
367 self.assertTrue(brainix in b) |
a6019560272f
test_bitbucket_issue_53
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
100
diff
changeset
|
368 self.assertTrue(knee in b) |
32
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
369 |
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
370 |
184
e244312964d6
test_bitbucket_issue_111
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
131
diff
changeset
|
371 def test_bitbucket_issue_111(self): |
223
f5aca0917d60
DICOMweb: test_bitbucket_issue_111
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
222
diff
changeset
|
372 # Wrong serialization of empty values |
f5aca0917d60
DICOMweb: test_bitbucket_issue_111
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
222
diff
changeset
|
373 # https://bitbucket.org/sjodogne/orthanc/issues/111 |
f5aca0917d60
DICOMweb: test_bitbucket_issue_111
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
222
diff
changeset
|
374 # https://bitbucket.org/sjodogne/orthanc-dicomweb/issues/3/ |
f5aca0917d60
DICOMweb: test_bitbucket_issue_111
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
222
diff
changeset
|
375 |
184
e244312964d6
test_bitbucket_issue_111
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
131
diff
changeset
|
376 # According to the standard, section F.2.5 |
e244312964d6
test_bitbucket_issue_111
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
131
diff
changeset
|
377 # (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
|
378 # 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
|
379 # 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
|
380 # preserved in the DICOM JSON attribute object containing no |
e244312964d6
test_bitbucket_issue_111
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
131
diff
changeset
|
381 # "Value", "BulkDataURI" or "InlineBinary". |
e244312964d6
test_bitbucket_issue_111
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
131
diff
changeset
|
382 # 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
|
383 |
223
f5aca0917d60
DICOMweb: test_bitbucket_issue_111
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
222
diff
changeset
|
384 UploadInstance(ORTHANC, 'Issue111.dcm') |
184
e244312964d6
test_bitbucket_issue_111
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
131
diff
changeset
|
385 |
223
f5aca0917d60
DICOMweb: test_bitbucket_issue_111
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
222
diff
changeset
|
386 # Test WADO-RS |
f5aca0917d60
DICOMweb: test_bitbucket_issue_111
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
222
diff
changeset
|
387 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
|
388 self.assertEqual(1, len(a)) |
f5aca0917d60
DICOMweb: test_bitbucket_issue_111
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
222
diff
changeset
|
389 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
|
390 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
|
391 self.assertEqual('SH', a[0]['00080050']['vr']) |
184
e244312964d6
test_bitbucket_issue_111
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
131
diff
changeset
|
392 |
223
f5aca0917d60
DICOMweb: test_bitbucket_issue_111
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
222
diff
changeset
|
393 # Test QIDO-RS |
f5aca0917d60
DICOMweb: test_bitbucket_issue_111
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
222
diff
changeset
|
394 a = DoGet(ORTHANC, '/dicom-web/studies') |
184
e244312964d6
test_bitbucket_issue_111
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
131
diff
changeset
|
395 self.assertEqual(1, len(a)) |
e244312964d6
test_bitbucket_issue_111
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
131
diff
changeset
|
396 self.assertTrue('00080050' in a[0]) # AccessionNumber is null |
e244312964d6
test_bitbucket_issue_111
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
131
diff
changeset
|
397 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
|
398 self.assertEqual('SH', a[0]['00080050']['vr']) |
e244312964d6
test_bitbucket_issue_111
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
131
diff
changeset
|
399 |
222
0f03ee6ffa80
DICOMweb: test_wado_hierarchy, test_wado_bulk, test_bitbucket_issue_112
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
195
diff
changeset
|
400 |
0f03ee6ffa80
DICOMweb: test_wado_hierarchy, test_wado_bulk, test_bitbucket_issue_112
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
195
diff
changeset
|
401 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
|
402 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
|
403 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
|
404 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
|
405 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
|
406 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
|
407 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
|
408 |
0f03ee6ffa80
DICOMweb: test_wado_hierarchy, test_wado_bulk, test_bitbucket_issue_112
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
195
diff
changeset
|
409 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
|
410 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
|
411 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
|
412 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
|
413 |
0f03ee6ffa80
DICOMweb: test_wado_hierarchy, test_wado_bulk, test_bitbucket_issue_112
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
195
diff
changeset
|
414 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
|
415 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
|
416 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
|
417 |
0f03ee6ffa80
DICOMweb: test_wado_hierarchy, test_wado_bulk, test_bitbucket_issue_112
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
195
diff
changeset
|
418 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
|
419 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
|
420 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
|
421 |
0f03ee6ffa80
DICOMweb: test_wado_hierarchy, test_wado_bulk, test_bitbucket_issue_112
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
195
diff
changeset
|
422 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
|
423 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
|
424 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
|
425 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
|
426 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
|
427 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
|
428 |
0f03ee6ffa80
DICOMweb: test_wado_hierarchy, test_wado_bulk, test_bitbucket_issue_112
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
195
diff
changeset
|
429 |
228 | 430 def test_wado_pixel_data(self): |
431 orthanc = UploadInstance(ORTHANC, 'Issue29.dcm') ['ID'] | |
432 a = DoGet(ORTHANC, '/dicom-web/instances') | |
433 self.assertEqual(1, len(a)) | |
434 url = a[0]['00081190']['Value'][0] | |
435 | |
436 prefix = 'http://localhost:8042' | |
437 self.assertTrue(url.startswith(prefix)) | |
438 | |
439 b = DoGet(ORTHANC, url[len(prefix):] + '/metadata') | |
440 self.assertEqual('OB', b[0]['7FE00010']['vr']) | |
441 self.assertEqual(2, len(b[0]['7FE00010'])) | |
442 self.assertTrue('BulkDataURI' in b[0]['7FE00010']) | |
443 | |
444 url = b[0]['7FE00010']['BulkDataURI'] | |
445 self.assertTrue(url.startswith(prefix)) | |
446 | |
447 p = DoGetMultipart(ORTHANC, url[len(prefix):]) | |
448 | |
449 self.assertEqual(2, len(p)) # There are 2 fragments in this image | |
450 self.assertEqual(4, len(p[0])) | |
451 self.assertEqual(114486, len(p[1])) | |
452 | |
453 | |
454 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
|
455 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
|
456 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
|
457 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
|
458 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
|
459 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
|
460 |
0f03ee6ffa80
DICOMweb: test_wado_hierarchy, test_wado_bulk, test_bitbucket_issue_112
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
195
diff
changeset
|
461 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
|
462 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
|
463 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
|
464 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
|
465 |
228 | 466 # WARNING: This test will fail on Orthanc <= 1.5.5, because |
467 # the following fix is not included yet: | |
468 # https://bitbucket.org/sjodogne/orthanc/commits/b88937ef597b33c4387a546c751827019bcdc205 | |
469 | |
222
0f03ee6ffa80
DICOMweb: test_wado_hierarchy, test_wado_bulk, test_bitbucket_issue_112
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
195
diff
changeset
|
470 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
|
471 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
|
472 |
0f03ee6ffa80
DICOMweb: test_wado_hierarchy, test_wado_bulk, test_bitbucket_issue_112
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
195
diff
changeset
|
473 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
|
474 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
|
475 |
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(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
|
477 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
|
478 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
|
479 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
|
480 |
0f03ee6ffa80
DICOMweb: test_wado_hierarchy, test_wado_bulk, test_bitbucket_issue_112
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
195
diff
changeset
|
481 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
|
482 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
|
483 |
0f03ee6ffa80
DICOMweb: test_wado_hierarchy, test_wado_bulk, test_bitbucket_issue_112
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
195
diff
changeset
|
484 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
|
485 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
|
486 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
|
487 |
0f03ee6ffa80
DICOMweb: test_wado_hierarchy, test_wado_bulk, test_bitbucket_issue_112
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
195
diff
changeset
|
488 |
0f03ee6ffa80
DICOMweb: test_wado_hierarchy, test_wado_bulk, test_bitbucket_issue_112
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
195
diff
changeset
|
489 def test_bitbucket_issue_112(self): |
223
f5aca0917d60
DICOMweb: test_bitbucket_issue_111
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
222
diff
changeset
|
490 # 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
|
491 # 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
|
492 # 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
|
493 |
0f03ee6ffa80
DICOMweb: test_wado_hierarchy, test_wado_bulk, test_bitbucket_issue_112
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
195
diff
changeset
|
494 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
|
495 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
|
496 |
0f03ee6ffa80
DICOMweb: test_wado_hierarchy, test_wado_bulk, test_bitbucket_issue_112
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
195
diff
changeset
|
497 # 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
|
498 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
|
499 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
|
500 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
|
501 |
226
230aede7f8d5
test_bitbucket_issue_96
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
225
diff
changeset
|
502 if (sys.version_info >= (3, 0)): |
230aede7f8d5
test_bitbucket_issue_96
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
225
diff
changeset
|
503 types = (int) |
230aede7f8d5
test_bitbucket_issue_96
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
225
diff
changeset
|
504 else: |
230aede7f8d5
test_bitbucket_issue_96
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
225
diff
changeset
|
505 types = (int, long) |
230aede7f8d5
test_bitbucket_issue_96
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
225
diff
changeset
|
506 |
222
0f03ee6ffa80
DICOMweb: test_wado_hierarchy, test_wado_bulk, test_bitbucket_issue_112
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
195
diff
changeset
|
507 b = a[0]['00180091']['Value'][0] |
226
230aede7f8d5
test_bitbucket_issue_96
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
225
diff
changeset
|
508 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
|
509 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
|
510 |
0f03ee6ffa80
DICOMweb: test_wado_hierarchy, test_wado_bulk, test_bitbucket_issue_112
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
195
diff
changeset
|
511 # 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
|
512 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
|
513 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
|
514 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
|
515 |
0f03ee6ffa80
DICOMweb: test_wado_hierarchy, test_wado_bulk, test_bitbucket_issue_112
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
195
diff
changeset
|
516 b = a[0]['00201208']['Value'][0] |
226
230aede7f8d5
test_bitbucket_issue_96
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
225
diff
changeset
|
517 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
|
518 self.assertEqual(1, b) |
223
f5aca0917d60
DICOMweb: test_bitbucket_issue_111
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
222
diff
changeset
|
519 |
222
0f03ee6ffa80
DICOMweb: test_wado_hierarchy, test_wado_bulk, test_bitbucket_issue_112
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
195
diff
changeset
|
520 |
224
f5414254ccaa
test_bitbucket_issue_113
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
223
diff
changeset
|
521 def test_bitbucket_issue_113(self): |
f5414254ccaa
test_bitbucket_issue_113
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
223
diff
changeset
|
522 # Wrong serialization of PN VR |
f5414254ccaa
test_bitbucket_issue_113
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
223
diff
changeset
|
523 # https://bitbucket.org/sjodogne/orthanc/issues/113 |
f5414254ccaa
test_bitbucket_issue_113
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
223
diff
changeset
|
524 # https://bitbucket.org/sjodogne/orthanc-dicomweb/issues/2/ |
f5414254ccaa
test_bitbucket_issue_113
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
223
diff
changeset
|
525 |
f5414254ccaa
test_bitbucket_issue_113
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
223
diff
changeset
|
526 UploadInstance(ORTHANC, 'Encodings/DavidClunie/SCSX1') |
f5414254ccaa
test_bitbucket_issue_113
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
223
diff
changeset
|
527 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
|
528 |
f5414254ccaa
test_bitbucket_issue_113
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
223
diff
changeset
|
529 # This is the WADO-RS testing |
f5414254ccaa
test_bitbucket_issue_113
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
223
diff
changeset
|
530 a = DoGet(ORTHANC, '/dicom-web/studies/%s/metadata' % study) |
f5414254ccaa
test_bitbucket_issue_113
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
223
diff
changeset
|
531 self.assertEqual(1, len(a)) |
f5414254ccaa
test_bitbucket_issue_113
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
223
diff
changeset
|
532 |
f5414254ccaa
test_bitbucket_issue_113
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
223
diff
changeset
|
533 pn = a[0]['00100010'] # Patient name |
f5414254ccaa
test_bitbucket_issue_113
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
223
diff
changeset
|
534 self.assertEqual('PN', pn['vr']) |
f5414254ccaa
test_bitbucket_issue_113
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
223
diff
changeset
|
535 self.assertEqual(1, len(pn['Value'])) |
f5414254ccaa
test_bitbucket_issue_113
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
223
diff
changeset
|
536 self.assertEqual('Wang^XiaoDong', pn['Value'][0]['Alphabetic']) |
f5414254ccaa
test_bitbucket_issue_113
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
223
diff
changeset
|
537 self.assertEqual(u'王^小東', pn['Value'][0]['Ideographic']) |
f5414254ccaa
test_bitbucket_issue_113
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
223
diff
changeset
|
538 |
f5414254ccaa
test_bitbucket_issue_113
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
223
diff
changeset
|
539 # This is the QIDO-RS testing |
f5414254ccaa
test_bitbucket_issue_113
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
223
diff
changeset
|
540 a = DoGet(ORTHANC, '/dicom-web/studies') |
f5414254ccaa
test_bitbucket_issue_113
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
223
diff
changeset
|
541 self.assertEqual(1, len(a)) |
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 pn = a[0]['00100010'] # Patient name |
f5414254ccaa
test_bitbucket_issue_113
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
223
diff
changeset
|
544 self.assertEqual('PN', pn['vr']) |
f5414254ccaa
test_bitbucket_issue_113
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
223
diff
changeset
|
545 self.assertEqual(1, len(pn['Value'])) |
f5414254ccaa
test_bitbucket_issue_113
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
223
diff
changeset
|
546 self.assertEqual('Wang^XiaoDong', pn['Value'][0]['Alphabetic']) |
f5414254ccaa
test_bitbucket_issue_113
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
223
diff
changeset
|
547 self.assertEqual(u'王^小東', pn['Value'][0]['Ideographic']) |
f5414254ccaa
test_bitbucket_issue_113
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
223
diff
changeset
|
548 |
222
0f03ee6ffa80
DICOMweb: test_wado_hierarchy, test_wado_bulk, test_bitbucket_issue_112
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
195
diff
changeset
|
549 |
225 | 550 def test_bitbucket_issue_96(self): |
551 # WADO-RS RetrieveFrames rejects valid accept headers | |
552 # https://bitbucket.org/sjodogne/orthanc/issues/96 | |
553 # https://bitbucket.org/sjodogne/orthanc-dicomweb/issues/5/ | |
554 | |
228 | 555 UploadInstance(ORTHANC, 'Brainix/Epi/IM-0001-0001.dcm') |
225 | 556 |
557 a = DoGet(ORTHANC, '/dicom-web/instances') | |
558 self.assertEqual(1, len(a)) | |
228 | 559 self.assertEqual(256, a[0]['00280010']['Value'][0]) # Rows |
560 self.assertEqual(256, a[0]['00280011']['Value'][0]) # Columns | |
561 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
|
562 |
225 | 563 url = a[0]['00081190']['Value'][0] |
564 | |
565 prefix = 'http://localhost:8042' | |
566 self.assertTrue(url.startswith(prefix)) | |
567 uri = url[len(prefix):] | |
568 | |
226
230aede7f8d5
test_bitbucket_issue_96
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
225
diff
changeset
|
569 self.assertRaises(Exception, lambda: DoGetMultipart(ORTHANC, '%s/frames/%d' % (uri, 0))) |
228 | 570 self.assertRaises(Exception, lambda: DoGetMultipart(ORTHANC, '%s/frames/%d' % (uri, 2))) |
571 | |
226
230aede7f8d5
test_bitbucket_issue_96
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
225
diff
changeset
|
572 b = DoGetMultipart(ORTHANC, '%s/frames/%d' % (uri, 1)) |
230aede7f8d5
test_bitbucket_issue_96
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
225
diff
changeset
|
573 self.assertEqual(1, len(b)) |
228 | 574 self.assertEqual(256 * 256 * 2, len(b[0])) |
225 | 575 |
228 | 576 c = DoGetMultipart(ORTHANC, '%s/frames/%d' % (uri, 1), |
226
230aede7f8d5
test_bitbucket_issue_96
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
225
diff
changeset
|
577 headers = { 'Accept' : 'multipart/related; type=application/octet-stream' }) |
230aede7f8d5
test_bitbucket_issue_96
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
225
diff
changeset
|
578 self.assertEqual(1, len(c)) |
230aede7f8d5
test_bitbucket_issue_96
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
225
diff
changeset
|
579 self.assertEqual(b[0], c[0]) |
230aede7f8d5
test_bitbucket_issue_96
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
225
diff
changeset
|
580 |
228 | 581 c = DoGetMultipart(ORTHANC, '%s/frames/%d' % (uri, 1), |
226
230aede7f8d5
test_bitbucket_issue_96
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
225
diff
changeset
|
582 headers = { 'Accept' : 'multipart/related; type="application/octet-stream"' }) |
230aede7f8d5
test_bitbucket_issue_96
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
225
diff
changeset
|
583 self.assertEqual(1, len(c)) |
230aede7f8d5
test_bitbucket_issue_96
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
225
diff
changeset
|
584 self.assertEqual(b[0], c[0]) |
227
875ff7460ae8
test_qido_fields, test_stow_errors
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
226
diff
changeset
|
585 |
228 | 586 self.assertRaises(Exception, lambda: DoGetMultipart(ORTHANC, '%s/frames/%d' % (uri, 1), |
587 headers = { 'Accept' : 'multipart/related; type="nope"' })) | |
588 | |
589 self.assertRaises(Exception, lambda: DoGetMultipart(ORTHANC, '%s/frames/%d' % (uri, 1), | |
590 headers = { 'Accept' : 'multipart/related; type=nope' })) | |
591 | |
592 self.assertRaises(Exception, lambda: DoGetMultipart(ORTHANC, '%s/frames/%d' % (uri, 1), | |
593 headers = { 'Accept' : 'nope' })) | |
594 | |
227
875ff7460ae8
test_qido_fields, test_stow_errors
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
226
diff
changeset
|
595 |
875ff7460ae8
test_qido_fields, test_stow_errors
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
226
diff
changeset
|
596 def test_qido_fields(self): |
875ff7460ae8
test_qido_fields, test_stow_errors
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
226
diff
changeset
|
597 UploadInstance(ORTHANC, 'DummyCT.dcm') |
875ff7460ae8
test_qido_fields, test_stow_errors
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
226
diff
changeset
|
598 |
875ff7460ae8
test_qido_fields, test_stow_errors
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
226
diff
changeset
|
599 a = DoGet(ORTHANC, '/dicom-web/studies') |
875ff7460ae8
test_qido_fields, test_stow_errors
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
226
diff
changeset
|
600 self.assertEqual(1, len(a)) |
875ff7460ae8
test_qido_fields, test_stow_errors
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
226
diff
changeset
|
601 self.assertFalse('00280010' in a[0]) # Rows |
875ff7460ae8
test_qido_fields, test_stow_errors
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
226
diff
changeset
|
602 |
875ff7460ae8
test_qido_fields, test_stow_errors
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
226
diff
changeset
|
603 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
|
604 self.assertEqual(1, len(a)) |
875ff7460ae8
test_qido_fields, test_stow_errors
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
226
diff
changeset
|
605 self.assertTrue('00280010' in a[0]) |
875ff7460ae8
test_qido_fields, test_stow_errors
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
226
diff
changeset
|
606 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
|
607 |
875ff7460ae8
test_qido_fields, test_stow_errors
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
226
diff
changeset
|
608 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
|
609 self.assertEqual(0, len(a)) |
875ff7460ae8
test_qido_fields, test_stow_errors
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
226
diff
changeset
|
610 |
875ff7460ae8
test_qido_fields, test_stow_errors
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
226
diff
changeset
|
611 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
|
612 self.assertEqual(1, len(a)) |
875ff7460ae8
test_qido_fields, test_stow_errors
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
226
diff
changeset
|
613 self.assertTrue('00280010' in a[0]) |
875ff7460ae8
test_qido_fields, test_stow_errors
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
226
diff
changeset
|
614 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
|
615 |
226
230aede7f8d5
test_bitbucket_issue_96
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
225
diff
changeset
|
616 |
227
875ff7460ae8
test_qido_fields, test_stow_errors
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
226
diff
changeset
|
617 def test_stow_errors(self): |
875ff7460ae8
test_qido_fields, test_stow_errors
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
226
diff
changeset
|
618 # 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
|
619 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
|
620 self.assertEqual(3, len(a)) |
875ff7460ae8
test_qido_fields, test_stow_errors
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
226
diff
changeset
|
621 self.assertTrue('00080005' in a) |
875ff7460ae8
test_qido_fields, test_stow_errors
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
226
diff
changeset
|
622 self.assertEqual('CS', a['00080005']['vr']) |
875ff7460ae8
test_qido_fields, test_stow_errors
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
226
diff
changeset
|
623 self.assertTrue('00081198' in a) |
875ff7460ae8
test_qido_fields, test_stow_errors
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
226
diff
changeset
|
624 self.assertEqual('SQ', a['00081198']['vr']) |
875ff7460ae8
test_qido_fields, test_stow_errors
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
226
diff
changeset
|
625 self.assertEqual(1, len(['00081198'])) |
875ff7460ae8
test_qido_fields, test_stow_errors
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
226
diff
changeset
|
626 self.assertTrue('00081199' in a) |
875ff7460ae8
test_qido_fields, test_stow_errors
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
226
diff
changeset
|
627 self.assertEqual('SQ', a['00081199']['vr']) |
875ff7460ae8
test_qido_fields, test_stow_errors
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
226
diff
changeset
|
628 self.assertEqual(1, len(['00081199'])) |
875ff7460ae8
test_qido_fields, test_stow_errors
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
226
diff
changeset
|
629 |
875ff7460ae8
test_qido_fields, test_stow_errors
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
226
diff
changeset
|
630 # Pushing an instance with missing tags |
875ff7460ae8
test_qido_fields, test_stow_errors
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
226
diff
changeset
|
631 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
|
632 self.assertEqual(3, len(a)) |
875ff7460ae8
test_qido_fields, test_stow_errors
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
226
diff
changeset
|
633 self.assertTrue('00080005' in a) |
875ff7460ae8
test_qido_fields, test_stow_errors
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
226
diff
changeset
|
634 self.assertEqual('CS', a['00080005']['vr']) |
875ff7460ae8
test_qido_fields, test_stow_errors
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
226
diff
changeset
|
635 self.assertTrue('00081198' in a) |
875ff7460ae8
test_qido_fields, test_stow_errors
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
226
diff
changeset
|
636 self.assertEqual('SQ', a['00081198']['vr']) |
875ff7460ae8
test_qido_fields, test_stow_errors
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
226
diff
changeset
|
637 self.assertEqual(1, len(['00081198'])) |
875ff7460ae8
test_qido_fields, test_stow_errors
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
226
diff
changeset
|
638 self.assertTrue('00081199' in a) |
875ff7460ae8
test_qido_fields, test_stow_errors
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
226
diff
changeset
|
639 self.assertEqual('SQ', a['00081199']['vr']) |
875ff7460ae8
test_qido_fields, test_stow_errors
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
226
diff
changeset
|
640 self.assertEqual(1, len(['00081199'])) |
875ff7460ae8
test_qido_fields, test_stow_errors
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
226
diff
changeset
|
641 |
875ff7460ae8
test_qido_fields, test_stow_errors
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
226
diff
changeset
|
642 # 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
|
643 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
|
644 self.assertEqual(3, len(a)) |
875ff7460ae8
test_qido_fields, test_stow_errors
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
226
diff
changeset
|
645 self.assertTrue('00080005' in a) |
875ff7460ae8
test_qido_fields, test_stow_errors
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
226
diff
changeset
|
646 self.assertEqual('CS', a['00080005']['vr']) |
875ff7460ae8
test_qido_fields, test_stow_errors
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
226
diff
changeset
|
647 self.assertTrue('00081198' in a) |
875ff7460ae8
test_qido_fields, test_stow_errors
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
226
diff
changeset
|
648 self.assertEqual('SQ', a['00081198']['vr']) |
875ff7460ae8
test_qido_fields, test_stow_errors
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
226
diff
changeset
|
649 self.assertEqual(1, len(['00081198'])) |
875ff7460ae8
test_qido_fields, test_stow_errors
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
226
diff
changeset
|
650 self.assertTrue('00081199' in a) |
875ff7460ae8
test_qido_fields, test_stow_errors
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
226
diff
changeset
|
651 self.assertEqual('SQ', a['00081199']['vr']) |
875ff7460ae8
test_qido_fields, test_stow_errors
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
226
diff
changeset
|
652 self.assertEqual(1, len(['00081199'])) |
875ff7460ae8
test_qido_fields, test_stow_errors
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
226
diff
changeset
|
653 |
239
8980bd19e31d
dicomweb: test_allowed_methods
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
229
diff
changeset
|
654 |
8980bd19e31d
dicomweb: test_allowed_methods
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
229
diff
changeset
|
655 def test_allowed_methods(self): |
8980bd19e31d
dicomweb: test_allowed_methods
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
229
diff
changeset
|
656 self.assertEqual(0, len(DoGet(ORTHANC, '/dicom-web/studies'))) |
8980bd19e31d
dicomweb: test_allowed_methods
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
229
diff
changeset
|
657 |
8980bd19e31d
dicomweb: test_allowed_methods
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
229
diff
changeset
|
658 with self.assertRaises(Exception) as e: |
8980bd19e31d
dicomweb: test_allowed_methods
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
229
diff
changeset
|
659 DoPut(ORTHANC, '/dicom-web/studies') |
8980bd19e31d
dicomweb: test_allowed_methods
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
229
diff
changeset
|
660 |
8980bd19e31d
dicomweb: test_allowed_methods
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
229
diff
changeset
|
661 self.assertEqual(405, e.exception[0]) |
8980bd19e31d
dicomweb: test_allowed_methods
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
229
diff
changeset
|
662 self.assertEqual("GET,POST", e.exception[1]['allow']) |
8980bd19e31d
dicomweb: test_allowed_methods
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
229
diff
changeset
|
663 |
8980bd19e31d
dicomweb: test_allowed_methods
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
229
diff
changeset
|
664 with self.assertRaises(Exception) as e: |
8980bd19e31d
dicomweb: test_allowed_methods
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
229
diff
changeset
|
665 DoDelete(ORTHANC, '/dicom-web/studies') |
8980bd19e31d
dicomweb: test_allowed_methods
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
229
diff
changeset
|
666 |
8980bd19e31d
dicomweb: test_allowed_methods
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
229
diff
changeset
|
667 self.assertEqual(405, e.exception[0]) |
8980bd19e31d
dicomweb: test_allowed_methods
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
229
diff
changeset
|
668 self.assertEqual("GET,POST", e.exception[1]['allow']) |
241
adc6372b8820
dicomweb: test_add_server
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
239
diff
changeset
|
669 |
adc6372b8820
dicomweb: test_add_server
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
239
diff
changeset
|
670 |
adc6372b8820
dicomweb: test_add_server
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
239
diff
changeset
|
671 def test_add_server(self): |
adc6372b8820
dicomweb: test_add_server
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
239
diff
changeset
|
672 try: |
adc6372b8820
dicomweb: test_add_server
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
239
diff
changeset
|
673 DoDelete(ORTHANC, '/dicom-web/servers/hello') |
adc6372b8820
dicomweb: test_add_server
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
239
diff
changeset
|
674 except: |
adc6372b8820
dicomweb: test_add_server
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
239
diff
changeset
|
675 pass |
adc6372b8820
dicomweb: test_add_server
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
239
diff
changeset
|
676 |
adc6372b8820
dicomweb: test_add_server
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
239
diff
changeset
|
677 l = DoGet(ORTHANC, '/dicom-web/servers') |
adc6372b8820
dicomweb: test_add_server
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
239
diff
changeset
|
678 self.assertEqual(1, len(l)) |
adc6372b8820
dicomweb: test_add_server
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
239
diff
changeset
|
679 self.assertTrue('sample' in l) |
adc6372b8820
dicomweb: test_add_server
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
239
diff
changeset
|
680 |
adc6372b8820
dicomweb: test_add_server
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
239
diff
changeset
|
681 url = 'http://localhost:8042/dicom-web/' |
adc6372b8820
dicomweb: test_add_server
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
239
diff
changeset
|
682 DoPut(ORTHANC, '/dicom-web/servers/hello', { |
adc6372b8820
dicomweb: test_add_server
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
239
diff
changeset
|
683 'Url': url, |
adc6372b8820
dicomweb: test_add_server
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
239
diff
changeset
|
684 'HttpHeaders' : { |
adc6372b8820
dicomweb: test_add_server
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
239
diff
changeset
|
685 'Hello' : 'World' |
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 'Username' : 'bob', |
242 | 688 'Password' : 'password', |
689 'UserProperty' : 'Test', | |
241
adc6372b8820
dicomweb: test_add_server
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
239
diff
changeset
|
690 }) |
adc6372b8820
dicomweb: test_add_server
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
239
diff
changeset
|
691 |
adc6372b8820
dicomweb: test_add_server
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
239
diff
changeset
|
692 l = DoGet(ORTHANC, '/dicom-web/servers') |
adc6372b8820
dicomweb: test_add_server
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
239
diff
changeset
|
693 self.assertEqual(2, len(l)) |
adc6372b8820
dicomweb: test_add_server
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
239
diff
changeset
|
694 self.assertTrue('sample' in l) |
adc6372b8820
dicomweb: test_add_server
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
239
diff
changeset
|
695 self.assertTrue('hello' in l) |
adc6372b8820
dicomweb: test_add_server
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
239
diff
changeset
|
696 |
adc6372b8820
dicomweb: test_add_server
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
239
diff
changeset
|
697 s = DoGet(ORTHANC, '/dicom-web/servers?expand') |
242 | 698 self.assertEqual(6, len(s['hello'])) |
241
adc6372b8820
dicomweb: test_add_server
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
239
diff
changeset
|
699 self.assertEqual(url, s['hello']['Url']) |
adc6372b8820
dicomweb: test_add_server
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
239
diff
changeset
|
700 self.assertEqual('bob', s['hello']['Username']) |
adc6372b8820
dicomweb: test_add_server
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
239
diff
changeset
|
701 self.assertEqual(None, s['hello']['Password']) |
adc6372b8820
dicomweb: test_add_server
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
239
diff
changeset
|
702 self.assertFalse(s['hello']['Pkcs11']) |
adc6372b8820
dicomweb: test_add_server
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
239
diff
changeset
|
703 self.assertEqual(1, len(s['hello']['HttpHeaders'])) |
adc6372b8820
dicomweb: test_add_server
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
239
diff
changeset
|
704 self.assertTrue('Hello' in s['hello']['HttpHeaders']) |
242 | 705 self.assertEqual('Test', s['hello']['UserProperty']) |
241
adc6372b8820
dicomweb: test_add_server
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
239
diff
changeset
|
706 |
adc6372b8820
dicomweb: test_add_server
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
239
diff
changeset
|
707 DoDelete(ORTHANC, '/dicom-web/servers/hello') |
246
e4e0e2ff91ae
test_bitbucket_issue_143
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
244
diff
changeset
|
708 |
e4e0e2ff91ae
test_bitbucket_issue_143
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
244
diff
changeset
|
709 |
e4e0e2ff91ae
test_bitbucket_issue_143
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
244
diff
changeset
|
710 def test_bitbucket_issue_143(self): |
e4e0e2ff91ae
test_bitbucket_issue_143
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
244
diff
changeset
|
711 # WADO-RS metadata request returns "500 Internal Server Error" |
e4e0e2ff91ae
test_bitbucket_issue_143
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
244
diff
changeset
|
712 # instead of "404 Not Found" for missing instance |
e4e0e2ff91ae
test_bitbucket_issue_143
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
244
diff
changeset
|
713 # https://bitbucket.org/sjodogne/orthanc/issues/143 |
e4e0e2ff91ae
test_bitbucket_issue_143
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
244
diff
changeset
|
714 UploadInstance(ORTHANC, 'Issue143.dcm') |
e4e0e2ff91ae
test_bitbucket_issue_143
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
244
diff
changeset
|
715 |
e4e0e2ff91ae
test_bitbucket_issue_143
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
244
diff
changeset
|
716 try: |
e4e0e2ff91ae
test_bitbucket_issue_143
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
244
diff
changeset
|
717 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
|
718 self.assertFail() |
e4e0e2ff91ae
test_bitbucket_issue_143
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
244
diff
changeset
|
719 except Exception as e: |
e4e0e2ff91ae
test_bitbucket_issue_143
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
244
diff
changeset
|
720 self.assertEqual(404, e[0]) |
e4e0e2ff91ae
test_bitbucket_issue_143
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
244
diff
changeset
|
721 |
e4e0e2ff91ae
test_bitbucket_issue_143
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
244
diff
changeset
|
722 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
|
723 |
e4e0e2ff91ae
test_bitbucket_issue_143
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
244
diff
changeset
|
724 try: |
e4e0e2ff91ae
test_bitbucket_issue_143
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
244
diff
changeset
|
725 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
|
726 self.fail() |
e4e0e2ff91ae
test_bitbucket_issue_143
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
244
diff
changeset
|
727 except Exception as e: |
e4e0e2ff91ae
test_bitbucket_issue_143
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
244
diff
changeset
|
728 self.assertEqual(404, e[0]) |
e4e0e2ff91ae
test_bitbucket_issue_143
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
244
diff
changeset
|
729 |
e4e0e2ff91ae
test_bitbucket_issue_143
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
244
diff
changeset
|
730 try: |
e4e0e2ff91ae
test_bitbucket_issue_143
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
244
diff
changeset
|
731 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
|
732 self.assertFail() |
e4e0e2ff91ae
test_bitbucket_issue_143
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
244
diff
changeset
|
733 except Exception as e: |
e4e0e2ff91ae
test_bitbucket_issue_143
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
244
diff
changeset
|
734 self.assertEqual(404, e[0]) |
e4e0e2ff91ae
test_bitbucket_issue_143
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
244
diff
changeset
|
735 |
e4e0e2ff91ae
test_bitbucket_issue_143
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
244
diff
changeset
|
736 try: |
e4e0e2ff91ae
test_bitbucket_issue_143
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
244
diff
changeset
|
737 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
|
738 self.assertFail() |
e4e0e2ff91ae
test_bitbucket_issue_143
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
244
diff
changeset
|
739 except Exception as e: |
e4e0e2ff91ae
test_bitbucket_issue_143
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
244
diff
changeset
|
740 self.assertEqual(404, e[0]) |
e4e0e2ff91ae
test_bitbucket_issue_143
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
244
diff
changeset
|
741 |
226
230aede7f8d5
test_bitbucket_issue_96
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
225
diff
changeset
|
742 |
32
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
743 try: |
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
744 print('\nStarting the tests...') |
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
745 unittest.main(argv = [ sys.argv[0] ] + args.options) |
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
746 |
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
747 finally: |
682c4e2a1162
integration tests for wado
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
748 print('\nDone') |