Mercurial > hg > orthanc-book
annotate Sphinx/source/plugins/dicomweb.rst @ 33:11e204c432a7
fix
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Wed, 20 Jul 2016 13:52:37 +0200 |
parents | 03b32d0e49f2 |
children | 4eea0dc5f071 |
rev | line source |
---|---|
24 | 1 .. _dicomweb: |
2 | |
3 | |
4 DICOMweb plugin | |
5 =============== | |
6 | |
30 | 7 .. contents:: |
8 | |
24 | 9 This **official** plugin extends Orthanc with support of the `DICOMweb |
10 protocols <https://en.wikipedia.org/wiki/DICOMweb>`__. More precisely, | |
11 the plugin introduces a basic, reference implementation of WADO-URI, | |
12 WADO-RS, QIDO-RS and STOW-RS, following `DICOM PS3.18 | |
25 | 13 <http://dicom.nema.org/medical/dicom/current/output/html/part18.html>`__. |
27 | 14 |
15 For general information, check out the `official homepage of the | |
16 plugins <http://www.orthanc-server.com/static.php?page=dicomweb>`__. | |
17 | |
18 The full standard is not implemented yet, the supported features are | |
19 `tracked in the repository | |
32
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
20 <https://bitbucket.org/sjodogne/orthanc-dicomweb/src/default/Status.txt>`__. |
30 | 21 |
22 | |
23 Compilation | |
24 ----------- | |
25 | |
26 .. highlight:: text | |
27 | |
28 The procedure to compile these plugins is similar of that for the | |
29 :ref:`core of Orthanc <compiling>`. The following commands should work | |
30 for every UNIX-like distribution (including GNU/Linux):: | |
31 | |
32 $ mkdir Build | |
33 $ cd Build | |
34 $ cmake .. -DSTATIC_BUILD=ON | |
35 $ make | |
36 | |
37 The compilation will produce a shared library ``OrthancDicomWeb`` that | |
32
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
38 contains the DICOMweb plugin. Pre-compiled binaries for Microsoft |
30 | 39 Windows `are also available |
40 <http://www.orthanc-server.com/browse.php?path=/plugin-dicom-web>`__. | |
41 A package for `Apple's Mac OS X | |
42 <http://localhost/~jodogne/orthanc/static.php?page=download-mac>`__ is | |
43 available courtesy of `Osimis <http://osimis.io/>`__. | |
44 | |
32
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
45 *Remark:* Some older build instructions are also available in the |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
46 `source distribution |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
47 <https://bitbucket.org/sjodogne/orthanc-dicomweb/src/default/Resources/BuildInstructions.txt>`__. |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
48 |
30 | 49 |
50 Usage | |
51 ----- | |
52 | |
53 .. highlight:: json | |
54 | |
31
93bbfaf0e62c
worklist instructions migrated to a specific page, indexing of Osimis Web viewer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
30
diff
changeset
|
55 You of course first have to :ref:`install Orthanc <binaries>`. Once |
30 | 56 Orthanc is installed, you must change the :ref:`configuration file |
57 <configuration>` to tell Orthanc where it can find the plugin: This is | |
32
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
58 done by properly modifying the ``Plugins`` option. For GNU/Linux, you |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
59 could for instance use the following configuration file:: |
30 | 60 |
61 { | |
62 "Name" : "MyOrthanc", | |
63 [...] | |
64 "Plugins" : [ | |
65 "/home/user/OrthancDicomWeb/Build/libOrthancDicomWeb.so" | |
66 ] | |
67 } | |
68 | |
32
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
69 Or, for Windows:: |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
70 |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
71 { |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
72 "Name" : "MyOrthanc", |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
73 [...] |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
74 "Plugins" : [ |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
75 "c:/Temp/OrthancDicomWeb.dll" |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
76 ] |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
77 } |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
78 |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
79 Note that the DICOMweb server will share all the parameters of the |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
80 Orthanc HTTP server, notably wrt. authentication and HTTPS |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
81 encryption. For this reason, you will most probably have to enable the |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
82 remote access to the Orthanc HTTP server:: |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
83 |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
84 { |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
85 [...] |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
86 "RemoteAccessEnabled" : true, |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
87 [...] |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
88 } |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
89 |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
90 Once Orthanc has restarted, the root of the DICOMweb REST API is |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
91 accessible at ``http://localhost:8042/dicom-web/``. |
30 | 92 |
93 | |
94 Options | |
95 ------- | |
96 | |
32
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
97 Server-related options |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
98 ^^^^^^^^^^^^^^^^^^^^^^ |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
99 |
30 | 100 .. highlight:: json |
101 | |
32
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
102 There are several configuration options that can be set to fine-tune |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
103 the Orthanc DICOMweb server. Here is the full list of the available |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
104 options, all of them must be grouped inside the ``DicomWeb`` section of |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
105 the Orthanc configuration file:: |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
106 |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
107 { |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
108 [...] |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
109 "DicomWeb" : { |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
110 "Enable" : true, // Whether DICOMweb support is enabled |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
111 "Root" : "/dicom-web/", // Root URI of the DICOMweb API (for QIDO-RS, STOW-RS and WADO-RS) |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
112 "EnableWado" : true, // Whether WADO-URI (previously known as WADO) support is enabled |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
113 "WadoRoot" : "/wado", // Root URI of the WADO-URI (aka. WADO) API |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
114 "Host" : "localhost", // Hard-codes the name of the host for subsequent WADO-RS requests |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
115 "Ssl" : false, // Whether HTTPS should be used for subsequent WADO-RS requests |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
116 "StowMaxInstances" : 10, // For STOW-RS client, the maximum number of instances in one single HTTP query (0 = no limit) |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
117 "StowMaxSize" : 10 // For STOW-RS client, the maximum size of the body in one single HTTP query (in MB, 0 = no limit) |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
118 } |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
119 } |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
120 |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
121 |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
122 Client-related options |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
123 ^^^^^^^^^^^^^^^^^^^^^^ |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
124 |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
125 .. highlight:: json |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
126 |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
127 If you want to connect Orthanc as a client to remote DICOMweb servers |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
128 (cf. below), you need to modify the configuration file so as to define |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
129 each of them in the option ``DicomWeb.Servers``. The syntax is |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
130 identical to the ``OrthancPeers`` option of the :ref:`configuration of |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
131 the Orthanc core <configuration>`. |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
132 |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
133 In the most simple case, here is how to instruct Orthanc about the |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
134 existence of a password-less DICOMweb server that will be referred to |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
135 as "sample" in Orthanc:: |
30 | 136 |
137 { | |
32
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
138 [...] |
30 | 139 "DicomWeb" : { |
32
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
140 "Servers" : { |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
141 "sample" : [ "http://192.168.1.1/dicom-web/" ] |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
142 } |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
143 } |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
144 } |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
145 |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
146 You are of course free to add as many DICOMweb servers as you need. If |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
147 the DICOMweb server is protected by a password (with `HTTP Basic |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
148 access authentication |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
149 <https://en.wikipedia.org/wiki/Basic_access_authentication>`__):: |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
150 |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
151 { |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
152 [...] |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
153 "DicomWeb" : { |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
154 "Servers" : { |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
155 "sample" : [ "http://192.168.1.1/dicom-web/", "username", "password" ] |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
156 } |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
157 } |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
158 } |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
159 |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
160 If the DICOMweb server is protected with HTTPS client authentication, |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
161 you must provide your client certificate (in the `PEM format |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
162 <https://en.wikipedia.org/wiki/Privacy-enhanced_Electronic_Mail>`__), |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
163 your client private key (also in the PEM format), together with the |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
164 password protecting the private key:: |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
165 |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
166 { |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
167 [...] |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
168 "DicomWeb" : { |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
169 "Servers" : { |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
170 "sample" : { |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
171 "Url" : "http://192.168.1.1/dicom-web/", |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
172 "CertificateFile" : "client.crt", |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
173 "CertificateKeyFile" : "client.key", |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
174 "CertificateKeyPassword" : "password" |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
175 } |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
176 } |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
177 } |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
178 } |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
179 |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
180 Finally, it is also possible to use client authentication with |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
181 hardware security modules and smart cards through `PKCS#11 |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
182 <https://en.wikipedia.org/wiki/PKCS_11>`__ (this feature is only |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
183 available is the core of Orthanc was compiled with the |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
184 ``-DENABLE_PKCS11=ON`` option in CMake, and if the Orthanc |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
185 configuration file has a proper ``Pkcs11`` section):: |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
186 |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
187 { |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
188 [...] |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
189 "DicomWeb" : { |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
190 "Servers" : { |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
191 "sample" : { |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
192 "Url" : "http://192.168.1.1/dicom-web/", |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
193 "Pkcs11" : true |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
194 } |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
195 } |
30 | 196 } |
197 } | |
198 | |
32
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
199 **Important remark:** When querying a DICOMweb server, Orthanc will |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
200 automatically use the global configuration options ``HttpProxy``, |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
201 ``HttpTimeout``, ``HttpsVerifyPeers``, ``HttpsCACertificates``, and |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
202 ``Pkcs11``. Make sure to adapt them if need be. |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
203 |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
204 |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
205 Quickstart |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
206 ---------- |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
207 |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
208 Once your Orthanc is properly configured (see above), you can make |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
209 REST calls to the DICOMweb API. For demonstration purpose, this |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
210 section makes the assumption that the ``VIX`` dataset provided by |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
211 `OsiriX <http://www.osirix-viewer.com/datasets/>`__ has been uploaded |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
212 to Orthanc. |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
213 |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
214 WADO-URI |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
215 ^^^^^^^^ |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
216 |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
217 .. highlight:: text |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
218 |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
219 Here is a proper WADO-URI (previously known simply as WADO) request to |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
220 render one slice of the VIX dataset as a JPEG image:: |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
221 |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
222 http://localhost:8042/wado?objectUID=1.3.12.2.1107.5.1.4.54693.30000006100507010800000005466&requestType=WADO |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
223 |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
224 The ``objectUID`` corresponds to the ``SOPInstanceUID`` DICOM tag of |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
225 some instance in the ``VIX`` dataset. Given the Orthanc identifier of |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
226 an instance from VIX |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
227 (e.g. ``14b4db2c-065edecb-6a767936-7068293a-92fcb080``), the latter |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
228 tag can be obtained from the ``MainDicomTags`` field:: |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
229 |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
230 # curl http://localhost:8042/instances/14b4db2c-065edecb-6a767936-7068293a-92fcb080 |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
231 |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
232 |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
233 WADO-RS |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
234 ^^^^^^^ |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
235 |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
236 .. highlight:: text |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
237 |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
238 Regarding WADO-RS (i.e. DICOMweb RESTful services), here is how to |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
239 obtain the tags of all the instances stored by Orthanc:: |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
240 |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
241 # curl http://localhost:8042/dicom-web/instances |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
242 |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
243 Note that, as the MIME type of this answer is a multipart |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
244 ``application/dicom+xml``, a Web browser will not be able to display |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
245 it. You will have to use either AJAX (JavaScript) or a command-line |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
246 tool (such as curl). |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
247 |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
248 Here is how to generate a JPEG preview of one instance with WADO-RS |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
249 (through the RetrieveFrames primitive):: |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
250 |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
251 # curl http://localhost:8042/dicom-web/studies/2.16.840.1.113669.632.20.1211.10000315526/series/1.3.12.2.1107.5.1.4.54693.30000006100507010800000005268/instances/1.3.12.2.1107.5.1.4.54693.30000006100507010800000005466/frames/1 -H 'accept: multipart/related; type=image/dicom+jpeg' |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
252 |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
253 |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
254 |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
255 Querying a remote DICOMweb server with Orthanc |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
256 ---------------------------------------------- |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
257 |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
258 Listing the available servers |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
259 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
260 |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
261 .. highlight:: text |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
262 |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
263 The list of the remote DICOMweb servers that are known to the DICOMweb |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
264 plugin can be obtained as follows:: |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
265 |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
266 # curl http://localhost:8042/dicom-web/servers/ |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
267 [ "sample" ] |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
268 |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
269 Here, a single server called ``sample`` is configured. |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
270 |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
271 |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
272 Making a call to QIDO-RS or WADO-RS |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
273 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
274 |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
275 .. highlight:: text |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
276 |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
277 In Orthanc, the URI ``/{dicom-web-root}/servers/{name}/get`` allows to |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
278 make a HTTP GET call against a DICOMweb server. This can be used to |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
279 issue a QIDO-RS or WADO-RS command. Orthanc will take care of properly |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
280 encoding the URL and authenticating the client. |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
281 |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
282 For instance, here is a sample QIDO-RS search to query all the studies |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
283 (using a bash command-line):: |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
284 |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
285 # curl http://localhost:8042/dicom-web/servers/sample/get -d @- << EOF |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
286 { |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
287 "Uri" : "/studies" |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
288 } |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
289 EOF |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
290 |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
291 You do not have to specify the base URL of the remote DICOMweb server, |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
292 as it is encoded in the configuration file. |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
293 |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
294 The result of the command above is a multipart |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
295 ``application/dicom+xml`` document. It is possible to request a more |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
296 human-friendly JSON answer by adding the ``Accept`` HTTP header. Here |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
297 is how to search for a given patient name, while requesting a JSON |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
298 answer and pretty-printing through the ``json_pp`` command-line tool:: |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
299 |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
300 # curl http://localhost:8042/dicom-web/servers/sample/get -d @- << EOF | json_pp |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
301 { |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
302 "Uri" : "/studies", |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
303 "HttpHeaders" : { |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
304 "Accept" : "application/json" |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
305 }, |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
306 "Arguments" : { |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
307 "00100010" : "*JODOGNE*" |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
308 } |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
309 } |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
310 EOF |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
311 |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
312 Note how all the GET arguments must be specified in the ``Arguments`` |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
313 field. Orthanc will take care of properly encoding it to a URL. |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
314 |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
315 An user-friendly reference of the features available in QIDO-RS and |
33 | 316 WADO-RS `can be found on this site <http://www.dicomweb.org/>`__. |
32
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
317 |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
318 |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
319 Sending DICOM resources to a STOW-RS server |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
320 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
321 |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
322 .. highlight:: text |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
323 |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
324 STOW-RS allows to send local DICOM resources to a remote DICOMweb |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
325 server. In Orthanc, the STOW-RS client primitive is available at URI |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
326 ``/{dicom-web-root}/servers/{name}/stow``. Here is a sample call:: |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
327 |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
328 # curl http://localhost:8042/dicom-web/servers/sample/stow -X POST -d @- << EOF |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
329 { |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
330 "Resources" : [ |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
331 "6ca4c9f3-5e895cb3-4d82c6da-09e060fe-9c59f228" |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
332 ] |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
333 } |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
334 EOF |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
335 |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
336 Note that this primitive takes as its input a list of :ref:`Orthanc |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
337 identifiers <orthanc-ids>` corresponding to the resources (patients, |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
338 studies, series and/or instances) to be exported. |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
339 |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
340 Remark 1: Additional HTTP headers can be added with an optional |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
341 ``HttpHeaders" argument`` as for QIDO-RS and WADO-RS. This might be |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
342 useful e.g. for cookie-based session management. |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
343 |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
344 Remark 2: One call to this ``.../stow`` primitive will possibly result |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
345 in several HTTP requests to the DICOMweb server, in order to limit the |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
346 size of the HTTP messages. The configuration options |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
347 ``DicomWeb.StowMaxInstances`` and ``DicomWeb.StowMaxSize`` can be used |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
348 to tune this behavior (set both options to 0 to send one single |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
349 request). |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
350 |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
351 |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
352 Retrieving DICOM resources from a WADO-RS server |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
353 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
354 |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
355 .. highlight:: text |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
356 |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
357 Once DICOM resources of interest have been identified through a |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
358 QIDO-RS call to a remote DICOMweb server (cf. above), it is |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
359 interesting to download them locally with a WADO-RS call. You could do |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
360 it manually with a second call to the |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
361 ``/{dicom-web-root}/servers/{name}/get`` URI, but Orthanc provides |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
362 another primitive ``.../retrieve`` to automate this process. |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
363 |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
364 Here is how you would download one study, one series and one instance |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
365 whose StudyInstanceUID (0020,000d), SeriesInstanceUID (0020,000e) are |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
366 SOPInstanceUID (0008,0018) have been identified through a former |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
367 QIDO-RS call:: |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
368 |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
369 # curl http://localhost:8042/dicom-web/servers/sample/retrieve -X POST -d @- << EOF |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
370 { |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
371 "Resources" : [ |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
372 { |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
373 "Study" : "1.3.51.0.1.1.192.168.29.133.1688840.1688819" |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
374 }, |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
375 { |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
376 "Study" : "1.3.51.0.1.1.192.168.29.133.1681753.1681732", |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
377 "Series" : "1.3.12.2.1107.5.2.33.37097.2012041613040617636372171.0.0.0" |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
378 }, |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
379 { |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
380 "Study" : "1.3.51.0.1.1.192.168.29.133.1681753.1681732", |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
381 "Series" : "1.3.12.2.1107.5.2.33.37097.2012041612474981424569674.0.0.0", |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
382 "Instance" : "1.3.12.2.1107.5.2.33.37097.2012041612485540185869716" |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
383 } |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
384 ] |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
385 } |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
386 EOF |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
387 |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
388 Orthanc will reply with the list of the Orthanc identifiers of all the |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
389 DICOM instances that were downloaded from the remote server. |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
390 |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
391 Remark 1: Contrarily to the ``.../stow`` URI that uses :ref:`Orthanc |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
392 identifiers <orthanc-ids>`, the ``.../retrieve`` URI uses DICOM |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
393 identifiers. |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
394 |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
395 Remark 2: The ``HttpArguments`` is also available. |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
396 |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
397 |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
398 |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
399 Additional samples |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
400 ------------------ |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
401 |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
402 Samples of how to call DICOMweb services from standalone applications |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
403 are available for `Python |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
404 <https://bitbucket.org/sjodogne/orthanc-dicomweb/src/default/Resources/Samples/Python/>`__ |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
405 and for `JavaScript |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
406 <https://bitbucket.org/sjodogne/orthanc-dicomweb/src/default/Resources/Samples/JavaScript>`__. |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
407 |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
408 Some integration tests are also `available separately |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
409 <https://bitbucket.org/sjodogne/orthanc-tests/src/default/Plugins/DicomWeb/Run.py>`__ |
03b32d0e49f2
documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
31
diff
changeset
|
410 (work in progress). |