annotate Sphinx/source/plugins/dicomweb.rst @ 991:1316bc62b5d5

migration to UCLouvain servers
author Sebastien Jodogne <s.jodogne@gmail.com>
date Tue, 21 Nov 2023 21:09:02 +0100
parents ee5976d191ae
children 05b106383b2a
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
24
25fa874803ab plugins inside book
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
1 .. _dicomweb:
25fa874803ab plugins inside book
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
2
25fa874803ab plugins inside book
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
3
25fa874803ab plugins inside book
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
4 DICOMweb plugin
25fa874803ab plugins inside book
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
5 ===============
25fa874803ab plugins inside book
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
6
30
79b6d3ea92aa dicomweb
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 27
diff changeset
7 .. contents::
79b6d3ea92aa dicomweb
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 27
diff changeset
8
24
25fa874803ab plugins inside book
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
9 This **official** plugin extends Orthanc with support of the `DICOMweb
25fa874803ab plugins inside book
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
10 protocols <https://en.wikipedia.org/wiki/DICOMweb>`__. More precisely,
25fa874803ab plugins inside book
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
11 the plugin introduces a basic, reference implementation of WADO-URI,
25fa874803ab plugins inside book
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
12 WADO-RS, QIDO-RS and STOW-RS, following `DICOM PS3.18
25
669ea65ba7fb fix links
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 24
diff changeset
13 <http://dicom.nema.org/medical/dicom/current/output/html/part18.html>`__.
260
f9e7036d81d0 updating DICOMweb documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 255
diff changeset
14 The plugin simultaneously turns Orthanc into a **DICOMweb server** and
f9e7036d81d0 updating DICOMweb documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 255
diff changeset
15 into a **DICOMweb client**.
27
c23f02a64caf postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 25
diff changeset
16
c23f02a64caf postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 25
diff changeset
17 For general information, check out the `official homepage of the
358
011b01ccf52d fixing external hyperlinks
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 325
diff changeset
18 plugins <https://www.orthanc-server.com/static.php?page=dicomweb>`__.
27
c23f02a64caf postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 25
diff changeset
19
c23f02a64caf postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 25
diff changeset
20 The full standard is not implemented yet, the supported features are
c23f02a64caf postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 25
diff changeset
21 `tracked in the repository
991
1316bc62b5d5 migration to UCLouvain servers
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 971
diff changeset
22 <https://orthanc.uclouvain.be/hg/orthanc-dicomweb/file/default/Status.txt>`__.
30
79b6d3ea92aa dicomweb
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 27
diff changeset
23
79b6d3ea92aa dicomweb
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 27
diff changeset
24
79b6d3ea92aa dicomweb
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 27
diff changeset
25 Compilation
79b6d3ea92aa dicomweb
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 27
diff changeset
26 -----------
79b6d3ea92aa dicomweb
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 27
diff changeset
27
79b6d3ea92aa dicomweb
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 27
diff changeset
28 .. highlight:: text
79b6d3ea92aa dicomweb
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 27
diff changeset
29
255
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 243
diff changeset
30 The procedure to compile this plugin is similar of that for the
30
79b6d3ea92aa dicomweb
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 27
diff changeset
31 :ref:`core of Orthanc <compiling>`. The following commands should work
761
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 713
diff changeset
32 for most UNIX-like distribution (including GNU/Linux)::
30
79b6d3ea92aa dicomweb
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 27
diff changeset
33
79b6d3ea92aa dicomweb
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 27
diff changeset
34 $ mkdir Build
79b6d3ea92aa dicomweb
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 27
diff changeset
35 $ cd Build
81
4eea0dc5f071 documenting wsi
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 33
diff changeset
36 $ cmake .. -DSTATIC_BUILD=ON -DCMAKE_BUILD_TYPE=Release
30
79b6d3ea92aa dicomweb
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 27
diff changeset
37 $ make
79b6d3ea92aa dicomweb
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 27
diff changeset
38
79b6d3ea92aa dicomweb
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 27
diff changeset
39 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
40 contains the DICOMweb plugin. Pre-compiled binaries for Microsoft
30
79b6d3ea92aa dicomweb
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 27
diff changeset
41 Windows `are also available
358
011b01ccf52d fixing external hyperlinks
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 325
diff changeset
42 <https://www.orthanc-server.com/browse.php?path=/plugin-dicom-web>`__,
255
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 243
diff changeset
43 and are included in the `Windows installers
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 243
diff changeset
44 <https://www.orthanc-server.com/download-windows.php>`__. A package
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 243
diff changeset
45 for `Apple's Mac OS X
358
011b01ccf52d fixing external hyperlinks
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 325
diff changeset
46 <https://www.orthanc-server.com/static.php?page=download-mac>`__ is
011b01ccf52d fixing external hyperlinks
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 325
diff changeset
47 available courtesy of `Osimis <https://www.osimis.io/>`__.
30
79b6d3ea92aa dicomweb
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 27
diff changeset
48
32
03b32d0e49f2 documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 31
diff changeset
49 *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
50 `source distribution
991
1316bc62b5d5 migration to UCLouvain servers
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 971
diff changeset
51 <https://orthanc.uclouvain.be/hg/orthanc-dicomweb/file/default/Resources/BuildInstructions.txt>`__.
32
03b32d0e49f2 documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 31
diff changeset
52
30
79b6d3ea92aa dicomweb
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 27
diff changeset
53
260
f9e7036d81d0 updating DICOMweb documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 255
diff changeset
54 Installation
f9e7036d81d0 updating DICOMweb documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 255
diff changeset
55 ------------
30
79b6d3ea92aa dicomweb
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 27
diff changeset
56
79b6d3ea92aa dicomweb
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 27
diff changeset
57 .. highlight:: json
79b6d3ea92aa dicomweb
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 27
diff changeset
58
31
93bbfaf0e62c worklist instructions migrated to a specific page, indexing of Osimis Web viewer
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 30
diff changeset
59 You of course first have to :ref:`install Orthanc <binaries>`. Once
30
79b6d3ea92aa dicomweb
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 27
diff changeset
60 Orthanc is installed, you must change the :ref:`configuration file
79b6d3ea92aa dicomweb
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 27
diff changeset
61 <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
62 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
63 could for instance use the following configuration file::
30
79b6d3ea92aa dicomweb
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 27
diff changeset
64
79b6d3ea92aa dicomweb
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 27
diff changeset
65 {
79b6d3ea92aa dicomweb
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 27
diff changeset
66 "Name" : "MyOrthanc",
79b6d3ea92aa dicomweb
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 27
diff changeset
67 [...]
79b6d3ea92aa dicomweb
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 27
diff changeset
68 "Plugins" : [
79b6d3ea92aa dicomweb
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 27
diff changeset
69 "/home/user/OrthancDicomWeb/Build/libOrthancDicomWeb.so"
79b6d3ea92aa dicomweb
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 27
diff changeset
70 ]
79b6d3ea92aa dicomweb
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 27
diff changeset
71 }
79b6d3ea92aa dicomweb
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 27
diff changeset
72
32
03b32d0e49f2 documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 31
diff changeset
73 Or, for Windows::
03b32d0e49f2 documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 31
diff changeset
74
03b32d0e49f2 documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 31
diff changeset
75 {
03b32d0e49f2 documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 31
diff changeset
76 "Name" : "MyOrthanc",
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 "Plugins" : [
03b32d0e49f2 documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 31
diff changeset
79 "c:/Temp/OrthancDicomWeb.dll"
03b32d0e49f2 documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 31
diff changeset
80 ]
03b32d0e49f2 documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 31
diff changeset
81 }
03b32d0e49f2 documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 31
diff changeset
82
03b32d0e49f2 documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 31
diff changeset
83 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
84 Orthanc HTTP server, notably wrt. authentication and HTTPS
03b32d0e49f2 documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 31
diff changeset
85 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
86 remote access to the Orthanc HTTP server::
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 "RemoteAccessEnabled" : true,
03b32d0e49f2 documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 31
diff changeset
91 [...]
03b32d0e49f2 documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 31
diff changeset
92 }
03b32d0e49f2 documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 31
diff changeset
93
03b32d0e49f2 documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 31
diff changeset
94 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
95 accessible at ``http://localhost:8042/dicom-web/``.
30
79b6d3ea92aa dicomweb
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 27
diff changeset
96
79b6d3ea92aa dicomweb
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 27
diff changeset
97
79b6d3ea92aa dicomweb
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 27
diff changeset
98 Options
79b6d3ea92aa dicomweb
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 27
diff changeset
99 -------
79b6d3ea92aa dicomweb
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 27
diff changeset
100
318
83d822f11e78 SeriesMetadata and StudiesMetadata in DICOMweb
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 311
diff changeset
101
83d822f11e78 SeriesMetadata and StudiesMetadata in DICOMweb
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 311
diff changeset
102 .. _dicomweb-server-config:
83d822f11e78 SeriesMetadata and StudiesMetadata in DICOMweb
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 311
diff changeset
103
32
03b32d0e49f2 documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 31
diff changeset
104 Server-related options
03b32d0e49f2 documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 31
diff changeset
105 ^^^^^^^^^^^^^^^^^^^^^^
03b32d0e49f2 documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 31
diff changeset
106
30
79b6d3ea92aa dicomweb
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 27
diff changeset
107 .. highlight:: json
79b6d3ea92aa dicomweb
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 27
diff changeset
108
32
03b32d0e49f2 documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 31
diff changeset
109 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
110 the Orthanc DICOMweb server. Here is the full list of the available
856
60c4deeb6892 dicom-web Host and Ssl config
Alain Mazy <am@osimis.io>
parents: 838
diff changeset
111 options and their default values, all of them must be grouped inside
60c4deeb6892 dicom-web Host and Ssl config
Alain Mazy <am@osimis.io>
parents: 838
diff changeset
112 the ``DicomWeb`` section of the Orthanc configuration file::
32
03b32d0e49f2 documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 31
diff changeset
113
03b32d0e49f2 documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 31
diff changeset
114 {
03b32d0e49f2 documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 31
diff changeset
115 [...]
03b32d0e49f2 documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 31
diff changeset
116 "DicomWeb" : {
971
ee5976d191ae EnableMetadataCache
Alain Mazy <am@osimis.io>
parents: 969
diff changeset
117 "Enable" : true, // Whether DICOMweb support is enabled
ee5976d191ae EnableMetadataCache
Alain Mazy <am@osimis.io>
parents: 969
diff changeset
118 "Root" : "/dicom-web/", // Root URI of the DICOMweb API (for QIDO-RS, STOW-RS and WADO-RS)
ee5976d191ae EnableMetadataCache
Alain Mazy <am@osimis.io>
parents: 969
diff changeset
119 "EnableWado" : true, // Whether WADO-URI (previously known as WADO) support is enabled
ee5976d191ae EnableMetadataCache
Alain Mazy <am@osimis.io>
parents: 969
diff changeset
120 "WadoRoot" : "/wado", // Root URI of the WADO-URI (aka. WADO) API
ee5976d191ae EnableMetadataCache
Alain Mazy <am@osimis.io>
parents: 969
diff changeset
121 "Ssl" : false, // Whether HTTPS should be used for subsequent WADO-RS requests.
ee5976d191ae EnableMetadataCache
Alain Mazy <am@osimis.io>
parents: 969
diff changeset
122 // If Orthanc is behind a reverse-proxy, the 'forwarded' headers will be used instead of the config.
ee5976d191ae EnableMetadataCache
Alain Mazy <am@osimis.io>
parents: 969
diff changeset
123 "QidoCaseSensitive" : true, // For QIDO-RS server, whether search is case sensitive (since release 0.5)
ee5976d191ae EnableMetadataCache
Alain Mazy <am@osimis.io>
parents: 969
diff changeset
124 "Host" : "", // Hard-codes the name of the host for subsequent WADO-RS requests.
ee5976d191ae EnableMetadataCache
Alain Mazy <am@osimis.io>
parents: 969
diff changeset
125 // e.g: "localhost:8042", "dicomweb.mydomain.org"
ee5976d191ae EnableMetadataCache
Alain Mazy <am@osimis.io>
parents: 969
diff changeset
126 // If empty (default), the plugin will guess it from other configurations or
ee5976d191ae EnableMetadataCache
Alain Mazy <am@osimis.io>
parents: 969
diff changeset
127 // from the reverse-proxy 'forwarded' headers.
ee5976d191ae EnableMetadataCache
Alain Mazy <am@osimis.io>
parents: 969
diff changeset
128 "StudiesMetadata" : "Full", // How study-level metadata is retrieved (since release 1.1, cf. section below)
ee5976d191ae EnableMetadataCache
Alain Mazy <am@osimis.io>
parents: 969
diff changeset
129 "SeriesMetadata" : "Full", // How series-level metadata is retrieved (since release 1.1, cf. section below)
ee5976d191ae EnableMetadataCache
Alain Mazy <am@osimis.io>
parents: 969
diff changeset
130 "EnableMetadataCache": true, // Wheter the plugin caches metadata as a gzipped attachment (since release 1.15)
ee5976d191ae EnableMetadataCache
Alain Mazy <am@osimis.io>
parents: 969
diff changeset
131 "MetadataWorkerThreadsCount": 4,// The number of concurrent threads that are used to extract the metadata in Full mode
ee5976d191ae EnableMetadataCache
Alain Mazy <am@osimis.io>
parents: 969
diff changeset
132 // (since release 1.14)
ee5976d191ae EnableMetadataCache
Alain Mazy <am@osimis.io>
parents: 969
diff changeset
133 "PublicRoot": "/dicom-web/", // The public Root URI of the DICOMweb API in case it is different from "Root".
ee5976d191ae EnableMetadataCache
Alain Mazy <am@osimis.io>
parents: 969
diff changeset
134 // This is useful if, e.g, your Orthanc is behind a reverse-proxy and has another
ee5976d191ae EnableMetadataCache
Alain Mazy <am@osimis.io>
parents: 969
diff changeset
135 // base endpoint than the "Root" one. Note that, if using a reverse-proxy, make sure to set the "host"
ee5976d191ae EnableMetadataCache
Alain Mazy <am@osimis.io>
parents: 969
diff changeset
136 // and "proto" correctly in the "Forwarded" HTTP headers.
ee5976d191ae EnableMetadataCache
Alain Mazy <am@osimis.io>
parents: 969
diff changeset
137 // (since release 1.8)
32
03b32d0e49f2 documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 31
diff changeset
138 }
03b32d0e49f2 documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 31
diff changeset
139 }
03b32d0e49f2 documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 31
diff changeset
140
260
f9e7036d81d0 updating DICOMweb documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 255
diff changeset
141 Furthermore, the global option ``DefaultEncoding`` specifies the
f9e7036d81d0 updating DICOMweb documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 255
diff changeset
142 encoding (specific character set) that will be used when answering a
f9e7036d81d0 updating DICOMweb documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 255
diff changeset
143 QIDO-RS request. It might be a good idea to set this option to
f9e7036d81d0 updating DICOMweb documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 255
diff changeset
144 ``Utf8`` if you are dealing with an international environment.
f9e7036d81d0 updating DICOMweb documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 255
diff changeset
145
318
83d822f11e78 SeriesMetadata and StudiesMetadata in DICOMweb
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 311
diff changeset
146 **Remark 1:** The following configuration options were present in
83d822f11e78 SeriesMetadata and StudiesMetadata in DICOMweb
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 311
diff changeset
147 releases <= 0.6 of the plugin, but are not used anymore::
260
f9e7036d81d0 updating DICOMweb documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 255
diff changeset
148
f9e7036d81d0 updating DICOMweb documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 255
diff changeset
149 {
f9e7036d81d0 updating DICOMweb documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 255
diff changeset
150 [...]
f9e7036d81d0 updating DICOMweb documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 255
diff changeset
151 "DicomWeb" : {
f9e7036d81d0 updating DICOMweb documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 255
diff changeset
152 "StowMaxInstances" : 10, // For STOW-RS client, the maximum number of instances in one single HTTP query (0 = no limit)
f9e7036d81d0 updating DICOMweb documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 255
diff changeset
153 "StowMaxSize" : 10, // For STOW-RS client, the maximum size of the body in one single HTTP query (in MB, 0 = no limit)
f9e7036d81d0 updating DICOMweb documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 255
diff changeset
154 }
f9e7036d81d0 updating DICOMweb documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 255
diff changeset
155 }
f9e7036d81d0 updating DICOMweb documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 255
diff changeset
156
f9e7036d81d0 updating DICOMweb documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 255
diff changeset
157 These older configuration options were used to limit the size of the
f9e7036d81d0 updating DICOMweb documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 255
diff changeset
158 HTTP requests, by issuing multiple calls to STOW-RS (set both options
f9e7036d81d0 updating DICOMweb documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 255
diff changeset
159 to 0 to send one single request).
f9e7036d81d0 updating DICOMweb documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 255
diff changeset
160
f9e7036d81d0 updating DICOMweb documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 255
diff changeset
161
318
83d822f11e78 SeriesMetadata and StudiesMetadata in DICOMweb
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 311
diff changeset
162 **Remark 2:** The option ``Host`` is deprecated. Starting with release
243
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 238
diff changeset
163 0.7 of the DICOMweb plugin, its value are computed from the standard
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 238
diff changeset
164 HTTP headers ``Forwarded`` and ``Host``, as provided by the HTTP
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 238
diff changeset
165 clients.
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 238
diff changeset
166
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 238
diff changeset
167
320
42104307e838 "Extrapolate" mode of DICOMweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 318
diff changeset
168 .. _dicomweb-server-metadata-config:
42104307e838 "Extrapolate" mode of DICOMweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 318
diff changeset
169
42104307e838 "Extrapolate" mode of DICOMweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 318
diff changeset
170 Fine-tuning server for WADO-RS Retrieve Metadata
42104307e838 "Extrapolate" mode of DICOMweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 318
diff changeset
171 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
42104307e838 "Extrapolate" mode of DICOMweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 318
diff changeset
172
42104307e838 "Extrapolate" mode of DICOMweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 318
diff changeset
173 The options ``StudiesMetadata`` and ``SeriesMetadata`` were introduced
42104307e838 "Extrapolate" mode of DICOMweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 318
diff changeset
174 in release 1.1 of the DICOMweb plugin. These options specify how the
42104307e838 "Extrapolate" mode of DICOMweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 318
diff changeset
175 calls to ``/dicom-web/studies/.../metadata`` and
42104307e838 "Extrapolate" mode of DICOMweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 318
diff changeset
176 ``/dicom-web/studies/.../series/.../metadata`` (i.e. `WADO-RS Retrieve
42104307e838 "Extrapolate" mode of DICOMweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 318
diff changeset
177 Metadata
42104307e838 "Extrapolate" mode of DICOMweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 318
diff changeset
178 <http://dicom.nema.org/medical/dicom/2019a/output/chtml/part18/sect_6.5.6.html>`__)
42104307e838 "Extrapolate" mode of DICOMweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 318
diff changeset
179 are processed:
42104307e838 "Extrapolate" mode of DICOMweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 318
diff changeset
180
42104307e838 "Extrapolate" mode of DICOMweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 318
diff changeset
181 * If ``Full`` mode is used, the plugin will read all the DICOM
42104307e838 "Extrapolate" mode of DICOMweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 318
diff changeset
182 instances of the study/series of interest from the :ref:`storage
42104307e838 "Extrapolate" mode of DICOMweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 318
diff changeset
183 area <orthanc-storage>`, which gives fully accurate results but
42104307e838 "Extrapolate" mode of DICOMweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 318
diff changeset
184 requires all the individual instances to be read and parsed from the
969
7abb7c8ff544 doc for upcoming dicomweb 1.15
Alain Mazy <am@osimis.io>
parents: 962
diff changeset
185 filesystem, leading to slow performance for earliers version of the plugin.
7abb7c8ff544 doc for upcoming dicomweb 1.15
Alain Mazy <am@osimis.io>
parents: 962
diff changeset
186 From version 1.15 of the plugin in which we have introduced caching, this mode
7abb7c8ff544 doc for upcoming dicomweb 1.15
Alain Mazy <am@osimis.io>
parents: 962
diff changeset
187 is the most accurate and fastest one provided that you have run the
7abb7c8ff544 doc for upcoming dicomweb 1.15
Alain Mazy <am@osimis.io>
parents: 962
diff changeset
188 :ref:`Housekeeper plugin <housekeeper-plugin>` on data ingested with prior
7abb7c8ff544 doc for upcoming dicomweb 1.15
Alain Mazy <am@osimis.io>
parents: 962
diff changeset
189 versions of the plugin - otherwise, the first access to the route might still be
971
ee5976d191ae EnableMetadataCache
Alain Mazy <am@osimis.io>
parents: 969
diff changeset
190 slow to populate the cache while later accesses will be much faster.
969
7abb7c8ff544 doc for upcoming dicomweb 1.15
Alain Mazy <am@osimis.io>
parents: 962
diff changeset
191
7abb7c8ff544 doc for upcoming dicomweb 1.15
Alain Mazy <am@osimis.io>
parents: 962
diff changeset
192 * Starting from version 1.15 of the plugin and provided that the cache has been
7abb7c8ff544 doc for upcoming dicomweb 1.15
Alain Mazy <am@osimis.io>
parents: 962
diff changeset
193 populated for all prior studies, you should favor the ``Full`` mode. The following
7abb7c8ff544 doc for upcoming dicomweb 1.15
Alain Mazy <am@osimis.io>
parents: 962
diff changeset
194 recommandations are kept for prior version of the plugin only.
320
42104307e838 "Extrapolate" mode of DICOMweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 318
diff changeset
195
971
ee5976d191ae EnableMetadataCache
Alain Mazy <am@osimis.io>
parents: 969
diff changeset
196 * The metadata caching can be disabled by setting ``EnableMetadataCache`` to ``false``.
ee5976d191ae EnableMetadataCache
Alain Mazy <am@osimis.io>
parents: 969
diff changeset
197
320
42104307e838 "Extrapolate" mode of DICOMweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 318
diff changeset
198 * If ``MainDicomTags`` mode is used, the plugin will only report the
42104307e838 "Extrapolate" mode of DICOMweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 318
diff changeset
199 main DICOM tags that are indexed by the Orthanc database. The DICOM
969
7abb7c8ff544 doc for upcoming dicomweb 1.15
Alain Mazy <am@osimis.io>
parents: 962
diff changeset
200 files are not read from the disk, which provides good
320
42104307e838 "Extrapolate" mode of DICOMweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 318
diff changeset
201 performance. However, this is a small subset of all the tags that
42104307e838 "Extrapolate" mode of DICOMweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 318
diff changeset
202 would be retrieved if using the ``Full`` mode: A DICOMweb viewer
838
6afc236cd60a dicom-web & main-dicom-tags
Alain Mazy <am@osimis.io>
parents: 822
diff changeset
203 might need more tags. **Important Note:** From Orthanc 1.11.0 and DICOMweb plugin 1.8,
6afc236cd60a dicom-web & main-dicom-tags
Alain Mazy <am@osimis.io>
parents: 822
diff changeset
204 you may store more :ref:`MainDicomTags <main-dicom-tags>` in DB.
6afc236cd60a dicom-web & main-dicom-tags
Alain Mazy <am@osimis.io>
parents: 822
diff changeset
205 By correctly setting these tags, the ``MainDicomTags`` mode can
6afc236cd60a dicom-web & main-dicom-tags
Alain Mazy <am@osimis.io>
parents: 822
diff changeset
206 become faster than the ``Extrapolate`` mode with the same accuracy
892
3982b4a4bdbc dicomweb - stone
Alain Mazy <am@osimis.io>
parents: 891
diff changeset
207 as the ``Full`` mode. Note that, if the ``ExtraMainDicomTags`` are not
3982b4a4bdbc dicomweb - stone
Alain Mazy <am@osimis.io>
parents: 891
diff changeset
208 set correctly or have not been collected on all instances, the
3982b4a4bdbc dicomweb - stone
Alain Mazy <am@osimis.io>
parents: 891
diff changeset
209 :ref:`Stone Web viewer <stone_webviewer>` will not work correctly.
320
42104307e838 "Extrapolate" mode of DICOMweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 318
diff changeset
210
42104307e838 "Extrapolate" mode of DICOMweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 318
diff changeset
211 * If ``Extrapolate`` mode is used, the plugin will read up to 3 DICOM
42104307e838 "Extrapolate" mode of DICOMweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 318
diff changeset
212 instances at random that belong to the study/series of interest. It
42104307e838 "Extrapolate" mode of DICOMweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 318
diff changeset
213 will then test whether the majority of these instances share the
42104307e838 "Extrapolate" mode of DICOMweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 318
diff changeset
214 same value for a predefined subset of DICOM tags. If so, this value
42104307e838 "Extrapolate" mode of DICOMweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 318
diff changeset
215 is added to the metadata response; otherwise, the tag is not
42104307e838 "Extrapolate" mode of DICOMweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 318
diff changeset
216 reported. In other words, this mode extrapolates the value of some
42104307e838 "Extrapolate" mode of DICOMweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 318
diff changeset
217 predefined tags by assuming that these tags should be constant
42104307e838 "Extrapolate" mode of DICOMweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 318
diff changeset
218 across all the instances of the study/series. This mode is a
42104307e838 "Extrapolate" mode of DICOMweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 318
diff changeset
219 compromise between ``MainDicomTags`` (focus on speed) and ``Full``
42104307e838 "Extrapolate" mode of DICOMweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 318
diff changeset
220 (focus on accuracy).
42104307e838 "Extrapolate" mode of DICOMweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 318
diff changeset
221
858
09be5f68aabf dicom-web and MainDicomTags
Alain Mazy <am@osimis.io>
parents: 856
diff changeset
222 * If you are using a DICOMweb viewer (such as Stone Web
320
42104307e838 "Extrapolate" mode of DICOMweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 318
diff changeset
223 viewer or `OHIF viewer
42104307e838 "Extrapolate" mode of DICOMweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 318
diff changeset
224 <https://groups.google.com/d/msg/orthanc-users/y1N5zOFVk0M/a3YMdhNqBwAJ>`__)
42104307e838 "Extrapolate" mode of DICOMweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 318
diff changeset
225 in a setup where performance and accuracy are both important, you
858
09be5f68aabf dicom-web and MainDicomTags
Alain Mazy <am@osimis.io>
parents: 856
diff changeset
226 should configure :ref:`ExtraMainDicomTags <main-dicom-tags>` and configure
09be5f68aabf dicom-web and MainDicomTags
Alain Mazy <am@osimis.io>
parents: 856
diff changeset
227 ``StudiesMetadata`` to ``MainDicomTags`` and ``SeriesMetadata`` to ``MainDicomTags``
962
5df222ddd7d1 fix links to setup-samples
Alain Mazy <am@osimis.io>
parents: 947
diff changeset
228 as demonstrated in this `sample <https://github.com/orthanc-server/orthanc-setup-samples/tree/master/docker/stone-viewer/docker-compose.yml>`__.
320
42104307e838 "Extrapolate" mode of DICOMweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 318
diff changeset
229
969
7abb7c8ff544 doc for upcoming dicomweb 1.15
Alain Mazy <am@osimis.io>
parents: 962
diff changeset
230 * If using the ``Extrapolate`` mode, the predefined tags are provided
7abb7c8ff544 doc for upcoming dicomweb 1.15
Alain Mazy <am@osimis.io>
parents: 962
diff changeset
231 using the ``StudiesMetadataExtrapolatedTags`` and
7abb7c8ff544 doc for upcoming dicomweb 1.15
Alain Mazy <am@osimis.io>
parents: 962
diff changeset
232 ``SeriesMetadataExtrapolatedTags`` configuration options as follows
7abb7c8ff544 doc for upcoming dicomweb 1.15
Alain Mazy <am@osimis.io>
parents: 962
diff changeset
233
7abb7c8ff544 doc for upcoming dicomweb 1.15
Alain Mazy <am@osimis.io>
parents: 962
diff changeset
234 Sample configuration for the ``Extrapoate`` mode::
320
42104307e838 "Extrapolate" mode of DICOMweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 318
diff changeset
235
42104307e838 "Extrapolate" mode of DICOMweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 318
diff changeset
236 {
42104307e838 "Extrapolate" mode of DICOMweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 318
diff changeset
237 [...]
42104307e838 "Extrapolate" mode of DICOMweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 318
diff changeset
238 "DicomWeb" : {
42104307e838 "Extrapolate" mode of DICOMweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 318
diff changeset
239 [...]
42104307e838 "Extrapolate" mode of DICOMweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 318
diff changeset
240 "StudiesMetadata" : "Extrapolate",
42104307e838 "Extrapolate" mode of DICOMweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 318
diff changeset
241 "StudiesMetadataExtrapolatedTags" : [
42104307e838 "Extrapolate" mode of DICOMweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 318
diff changeset
242 "AcquisitionDate"
42104307e838 "Extrapolate" mode of DICOMweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 318
diff changeset
243 ],
42104307e838 "Extrapolate" mode of DICOMweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 318
diff changeset
244 "SeriesMetadata" : "Extrapolate",
42104307e838 "Extrapolate" mode of DICOMweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 318
diff changeset
245 "SeriesMetadataExtrapolatedTags" : [
42104307e838 "Extrapolate" mode of DICOMweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 318
diff changeset
246 "BitsAllocated",
42104307e838 "Extrapolate" mode of DICOMweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 318
diff changeset
247 "BitsStored",
42104307e838 "Extrapolate" mode of DICOMweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 318
diff changeset
248 "Columns",
42104307e838 "Extrapolate" mode of DICOMweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 318
diff changeset
249 "HighBit",
42104307e838 "Extrapolate" mode of DICOMweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 318
diff changeset
250 "PhotometricInterpretation",
42104307e838 "Extrapolate" mode of DICOMweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 318
diff changeset
251 "PixelSpacing",
42104307e838 "Extrapolate" mode of DICOMweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 318
diff changeset
252 "PlanarConfiguration",
42104307e838 "Extrapolate" mode of DICOMweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 318
diff changeset
253 "RescaleIntercept",
42104307e838 "Extrapolate" mode of DICOMweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 318
diff changeset
254 "RescaleSlope",
42104307e838 "Extrapolate" mode of DICOMweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 318
diff changeset
255 "Rows",
42104307e838 "Extrapolate" mode of DICOMweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 318
diff changeset
256 "SOPClassUID",
42104307e838 "Extrapolate" mode of DICOMweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 318
diff changeset
257 "SamplesPerPixel",
42104307e838 "Extrapolate" mode of DICOMweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 318
diff changeset
258 "SliceThickness"
42104307e838 "Extrapolate" mode of DICOMweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 318
diff changeset
259 ]
42104307e838 "Extrapolate" mode of DICOMweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 318
diff changeset
260 }
42104307e838 "Extrapolate" mode of DICOMweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 318
diff changeset
261 }
42104307e838 "Extrapolate" mode of DICOMweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 318
diff changeset
262
32
03b32d0e49f2 documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 31
diff changeset
263
255
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 243
diff changeset
264 .. _dicomweb-client-config:
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 243
diff changeset
265
32
03b32d0e49f2 documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 31
diff changeset
266 Client-related options
03b32d0e49f2 documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 31
diff changeset
267 ^^^^^^^^^^^^^^^^^^^^^^
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 .. highlight:: json
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 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
272 (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
273 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
274 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
275 the Orthanc core <configuration>`.
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 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
278 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
279 as "sample" in Orthanc::
30
79b6d3ea92aa dicomweb
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 27
diff changeset
280
79b6d3ea92aa dicomweb
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 27
diff changeset
281 {
32
03b32d0e49f2 documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 31
diff changeset
282 [...]
30
79b6d3ea92aa dicomweb
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 27
diff changeset
283 "DicomWeb" : {
32
03b32d0e49f2 documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 31
diff changeset
284 "Servers" : {
03b32d0e49f2 documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 31
diff changeset
285 "sample" : [ "http://192.168.1.1/dicom-web/" ]
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 }
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
03b32d0e49f2 documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 31
diff changeset
290 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
291 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
292 access authentication
03b32d0e49f2 documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 31
diff changeset
293 <https://en.wikipedia.org/wiki/Basic_access_authentication>`__)::
03b32d0e49f2 documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 31
diff changeset
294
03b32d0e49f2 documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 31
diff changeset
295 {
03b32d0e49f2 documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 31
diff changeset
296 [...]
03b32d0e49f2 documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 31
diff changeset
297 "DicomWeb" : {
03b32d0e49f2 documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 31
diff changeset
298 "Servers" : {
03b32d0e49f2 documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 31
diff changeset
299 "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
300 }
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 }
03b32d0e49f2 documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 31
diff changeset
303
324
89d4ee2e6e6e documentation of "HasWadoRsUniversalTransferSyntax" in DICOMweb client
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 320
diff changeset
304 Three important options can be provided for individual remote DICOMweb servers:
260
f9e7036d81d0 updating DICOMweb documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 255
diff changeset
305
f9e7036d81d0 updating DICOMweb documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 255
diff changeset
306 * ``HasDelete`` can be set to ``true`` to indicate that the HTTP
f9e7036d81d0 updating DICOMweb documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 255
diff changeset
307 DELETE method can be used to delete remote studies/series/instances.
f9e7036d81d0 updating DICOMweb documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 255
diff changeset
308 This notably adds a "delete" button on the Web interface of the
f9e7036d81d0 updating DICOMweb documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 255
diff changeset
309 DICOMweb client, and creates a route
f9e7036d81d0 updating DICOMweb documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 255
diff changeset
310 ``/dicom-web/servers/sample/delete`` in the REST API.
f9e7036d81d0 updating DICOMweb documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 255
diff changeset
311
f9e7036d81d0 updating DICOMweb documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 255
diff changeset
312 * ``ChunkedTransfers`` must be set to ``false`` if the remote DICOMweb
f9e7036d81d0 updating DICOMweb documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 255
diff changeset
313 server does not support `HTTP chunked transfer encoding
f9e7036d81d0 updating DICOMweb documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 255
diff changeset
314 <https://en.wikipedia.org/wiki/Chunked_transfer_encoding>`__. Setting
f9e7036d81d0 updating DICOMweb documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 255
diff changeset
315 this option to ``true`` is the best choice to reduce memory
f9e7036d81d0 updating DICOMweb documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 255
diff changeset
316 consumption. However, it must be set to ``false`` if the remote
f9e7036d81d0 updating DICOMweb documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 255
diff changeset
317 DICOMweb server is Orthanc <= 1.5.6, as chunked transfer encoding is
325
c94074bbf7aa note about issue 156
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 324
diff changeset
318 only supported starting with Orthanc 1.5.7. Beware setting
c94074bbf7aa note about issue 156
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 324
diff changeset
319 ``ChunkedTransfers`` to ``true`` in Orthanc 1.5.7 and 1.5.8 utilizes
c94074bbf7aa note about issue 156
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 324
diff changeset
320 one CPU at 100%, which results in very low throughput: This issue is
c94074bbf7aa note about issue 156
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 324
diff changeset
321 resolved in Orthanc 1.6.0 (cf. `issue 156
991
1316bc62b5d5 migration to UCLouvain servers
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 971
diff changeset
322 <https://orthanc.uclouvain.be/bugs/show_bug.cgi?id=156>`__ for full
325
c94074bbf7aa note about issue 156
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 324
diff changeset
323 explanation).
260
f9e7036d81d0 updating DICOMweb documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 255
diff changeset
324
324
89d4ee2e6e6e documentation of "HasWadoRsUniversalTransferSyntax" in DICOMweb client
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 320
diff changeset
325 * ``HasWadoRsUniversalTransferSyntax`` (new in DICOMweb 1.1) must be
89d4ee2e6e6e documentation of "HasWadoRsUniversalTransferSyntax" in DICOMweb client
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 320
diff changeset
326 set to ``false`` if the remote DICOMweb server does not support the
89d4ee2e6e6e documentation of "HasWadoRsUniversalTransferSyntax" in DICOMweb client
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 320
diff changeset
327 value ``transfer-syntax=*`` in the ``Accept`` HTTP header for
89d4ee2e6e6e documentation of "HasWadoRsUniversalTransferSyntax" in DICOMweb client
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 320
diff changeset
328 WADO-RS requests. This option is notably needed if the remote
89d4ee2e6e6e documentation of "HasWadoRsUniversalTransferSyntax" in DICOMweb client
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 320
diff changeset
329 DICOMweb server is Orthanc equipped with DICOMweb plugin <= 1.0. On
89d4ee2e6e6e documentation of "HasWadoRsUniversalTransferSyntax" in DICOMweb client
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 320
diff changeset
330 the other hand, setting this option to ``true`` prevents the remote
89d4ee2e6e6e documentation of "HasWadoRsUniversalTransferSyntax" in DICOMweb client
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 320
diff changeset
331 DICOMweb server from transcoding to uncompressed transfer syntaxes,
89d4ee2e6e6e documentation of "HasWadoRsUniversalTransferSyntax" in DICOMweb client
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 320
diff changeset
332 which gives `much better performance
89d4ee2e6e6e documentation of "HasWadoRsUniversalTransferSyntax" in DICOMweb client
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 320
diff changeset
333 <https://groups.google.com/d/msg/orthanc-users/w1Ekrsc6-U8/T2a_DoQ5CwAJ>`__.
89d4ee2e6e6e documentation of "HasWadoRsUniversalTransferSyntax" in DICOMweb client
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 320
diff changeset
334 The implicit value of this parameter was ``false`` in DICOMweb
89d4ee2e6e6e documentation of "HasWadoRsUniversalTransferSyntax" in DICOMweb client
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 320
diff changeset
335 plugin <= 1.0, and its default value is ``true`` since DICOMweb
89d4ee2e6e6e documentation of "HasWadoRsUniversalTransferSyntax" in DICOMweb client
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 320
diff changeset
336 plugin 1.1.
89d4ee2e6e6e documentation of "HasWadoRsUniversalTransferSyntax" in DICOMweb client
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 320
diff changeset
337
260
f9e7036d81d0 updating DICOMweb documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 255
diff changeset
338 You'll have to convert the JSON array into a JSON object to set these
f9e7036d81d0 updating DICOMweb documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 255
diff changeset
339 options::
f9e7036d81d0 updating DICOMweb documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 255
diff changeset
340
f9e7036d81d0 updating DICOMweb documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 255
diff changeset
341 {
f9e7036d81d0 updating DICOMweb documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 255
diff changeset
342 [...]
f9e7036d81d0 updating DICOMweb documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 255
diff changeset
343 "DicomWeb" : {
f9e7036d81d0 updating DICOMweb documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 255
diff changeset
344 "Servers" : {
f9e7036d81d0 updating DICOMweb documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 255
diff changeset
345 "sample" : {
f9e7036d81d0 updating DICOMweb documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 255
diff changeset
346 "Url" : "http://192.168.1.1/dicom-web/",
f9e7036d81d0 updating DICOMweb documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 255
diff changeset
347 "Username" : "username",
f9e7036d81d0 updating DICOMweb documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 255
diff changeset
348 "Password" : "password",
f9e7036d81d0 updating DICOMweb documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 255
diff changeset
349 "HasDelete" : true,
324
89d4ee2e6e6e documentation of "HasWadoRsUniversalTransferSyntax" in DICOMweb client
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 320
diff changeset
350 "ChunkedTransfers" : true, // Set to "false" if "sample" is Orthanc <= 1.5.6
89d4ee2e6e6e documentation of "HasWadoRsUniversalTransferSyntax" in DICOMweb client
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 320
diff changeset
351 "HasWadoRsUniversalTransferSyntax" : true // Set to "false" if "sample" is Orthanc DICOMweb plugin <= 1.0
260
f9e7036d81d0 updating DICOMweb documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 255
diff changeset
352 }
f9e7036d81d0 updating DICOMweb documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 255
diff changeset
353 }
f9e7036d81d0 updating DICOMweb documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 255
diff changeset
354 }
f9e7036d81d0 updating DICOMweb documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 255
diff changeset
355 }
f9e7036d81d0 updating DICOMweb documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 255
diff changeset
356
f9e7036d81d0 updating DICOMweb documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 255
diff changeset
357
f9e7036d81d0 updating DICOMweb documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 255
diff changeset
358 Furthermore, if the DICOMweb server is protected with HTTPS client
f9e7036d81d0 updating DICOMweb documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 255
diff changeset
359 authentication, you must provide your client certificate (in the `PEM
f9e7036d81d0 updating DICOMweb documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 255
diff changeset
360 format
32
03b32d0e49f2 documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 31
diff changeset
361 <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
362 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
363 password protecting the private key::
03b32d0e49f2 documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 31
diff changeset
364
03b32d0e49f2 documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 31
diff changeset
365 {
03b32d0e49f2 documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 31
diff changeset
366 [...]
03b32d0e49f2 documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 31
diff changeset
367 "DicomWeb" : {
03b32d0e49f2 documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 31
diff changeset
368 "Servers" : {
03b32d0e49f2 documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 31
diff changeset
369 "sample" : {
03b32d0e49f2 documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 31
diff changeset
370 "Url" : "http://192.168.1.1/dicom-web/",
03b32d0e49f2 documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 31
diff changeset
371 "CertificateFile" : "client.crt",
03b32d0e49f2 documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 31
diff changeset
372 "CertificateKeyFile" : "client.key",
03b32d0e49f2 documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 31
diff changeset
373 "CertificateKeyPassword" : "password"
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 }
03b32d0e49f2 documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 31
diff changeset
377 }
03b32d0e49f2 documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 31
diff changeset
378
665
9062c9c464f5 HttpHeaders in the definition of DICOMweb servers
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 617
diff changeset
379
9062c9c464f5 HttpHeaders in the definition of DICOMweb servers
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 617
diff changeset
380 The definition of a DICOMweb server can also specify the HTTP headers
9062c9c464f5 HttpHeaders in the definition of DICOMweb servers
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 617
diff changeset
381 to be provided during each request to the remote DICOMweb server. This
9062c9c464f5 HttpHeaders in the definition of DICOMweb servers
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 617
diff changeset
382 can for instance be useful to set authorization tokens::
9062c9c464f5 HttpHeaders in the definition of DICOMweb servers
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 617
diff changeset
383
9062c9c464f5 HttpHeaders in the definition of DICOMweb servers
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 617
diff changeset
384 {
9062c9c464f5 HttpHeaders in the definition of DICOMweb servers
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 617
diff changeset
385 [...]
9062c9c464f5 HttpHeaders in the definition of DICOMweb servers
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 617
diff changeset
386 "DicomWeb" : {
9062c9c464f5 HttpHeaders in the definition of DICOMweb servers
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 617
diff changeset
387 "Servers" : {
9062c9c464f5 HttpHeaders in the definition of DICOMweb servers
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 617
diff changeset
388 "sample" : {
9062c9c464f5 HttpHeaders in the definition of DICOMweb servers
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 617
diff changeset
389 "Url" : "http://localhost:8042/dicom-web/",
9062c9c464f5 HttpHeaders in the definition of DICOMweb servers
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 617
diff changeset
390 "HttpHeaders": {
9062c9c464f5 HttpHeaders in the definition of DICOMweb servers
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 617
diff changeset
391 "Authorization" : "Bearer HelloWorldToken"
9062c9c464f5 HttpHeaders in the definition of DICOMweb servers
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 617
diff changeset
392 }
9062c9c464f5 HttpHeaders in the definition of DICOMweb servers
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 617
diff changeset
393 }
9062c9c464f5 HttpHeaders in the definition of DICOMweb servers
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 617
diff changeset
394 }
9062c9c464f5 HttpHeaders in the definition of DICOMweb servers
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 617
diff changeset
395 }
9062c9c464f5 HttpHeaders in the definition of DICOMweb servers
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 617
diff changeset
396 }
9062c9c464f5 HttpHeaders in the definition of DICOMweb servers
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 617
diff changeset
397
9062c9c464f5 HttpHeaders in the definition of DICOMweb servers
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 617
diff changeset
398
9062c9c464f5 HttpHeaders in the definition of DICOMweb servers
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 617
diff changeset
399 Finally, it is possible to use client authentication with hardware
9062c9c464f5 HttpHeaders in the definition of DICOMweb servers
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 617
diff changeset
400 security modules and smart cards through `PKCS#11
32
03b32d0e49f2 documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 31
diff changeset
401 <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
402 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
403 ``-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
404 configuration file has a proper ``Pkcs11`` section)::
03b32d0e49f2 documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 31
diff changeset
405
03b32d0e49f2 documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 31
diff changeset
406 {
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 "DicomWeb" : {
03b32d0e49f2 documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 31
diff changeset
409 "Servers" : {
03b32d0e49f2 documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 31
diff changeset
410 "sample" : {
03b32d0e49f2 documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 31
diff changeset
411 "Url" : "http://192.168.1.1/dicom-web/",
03b32d0e49f2 documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 31
diff changeset
412 "Pkcs11" : true
03b32d0e49f2 documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 31
diff changeset
413 }
03b32d0e49f2 documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 31
diff changeset
414 }
30
79b6d3ea92aa dicomweb
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 27
diff changeset
415 }
79b6d3ea92aa dicomweb
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 27
diff changeset
416 }
79b6d3ea92aa dicomweb
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 27
diff changeset
417
603
60c787d3f4d3 DICOMweb: ServersInDatabase option
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 449
diff changeset
418 Starting with release 1.5 of the DICOMweb plugin, the configuration
60c787d3f4d3 DICOMweb: ServersInDatabase option
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 449
diff changeset
419 option ``ServersInDatabase`` can be set to ``true`` in order for the
60c787d3f4d3 DICOMweb: ServersInDatabase option
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 449
diff changeset
420 plugin to **read/write the definitions of the DICOMweb servers
60c787d3f4d3 DICOMweb: ServersInDatabase option
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 449
diff changeset
421 from/into the database of Orthanc**. This makes the modifications to
60c787d3f4d3 DICOMweb: ServersInDatabase option
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 449
diff changeset
422 the DICOMweb servers persistent across successive executions of
60c787d3f4d3 DICOMweb: ServersInDatabase option
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 449
diff changeset
423 Orthanc. If this option is enabled, the REST API must be used on URI
60c787d3f4d3 DICOMweb: ServersInDatabase option
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 449
diff changeset
424 ``/dicom-web/servers/`` (with the GET, DELETE or PUT methods) to
60c787d3f4d3 DICOMweb: ServersInDatabase option
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 449
diff changeset
425 :ref:`add/update/remove DICOMweb servers
60c787d3f4d3 DICOMweb: ServersInDatabase option
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 449
diff changeset
426 <dicomweb-additional-samples>`. Here is the syntax to enable this
60c787d3f4d3 DICOMweb: ServersInDatabase option
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 449
diff changeset
427 feature::
60c787d3f4d3 DICOMweb: ServersInDatabase option
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 449
diff changeset
428
60c787d3f4d3 DICOMweb: ServersInDatabase option
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 449
diff changeset
429 {
60c787d3f4d3 DICOMweb: ServersInDatabase option
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 449
diff changeset
430 [...]
60c787d3f4d3 DICOMweb: ServersInDatabase option
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 449
diff changeset
431 "DicomWeb" : {
60c787d3f4d3 DICOMweb: ServersInDatabase option
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 449
diff changeset
432 "ServersInDatabase" : true // "false" by default
60c787d3f4d3 DICOMweb: ServersInDatabase option
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 449
diff changeset
433 }
60c787d3f4d3 DICOMweb: ServersInDatabase option
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 449
diff changeset
434 }
60c787d3f4d3 DICOMweb: ServersInDatabase option
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 449
diff changeset
435
617
324ca8f236b8 document "Timeout" option when defining a DICOMweb server
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 603
diff changeset
436 In forthcoming release 1.6 of the DICOMweb plugin, the ``Timeout``
324ca8f236b8 document "Timeout" option when defining a DICOMweb server
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 603
diff changeset
437 field can be added to the definition of a DICOMweb server (in
324ca8f236b8 document "Timeout" option when defining a DICOMweb server
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 603
diff changeset
438 ``DicomWeb.Servers``) in order to specify a separate HTTP timeout when
324ca8f236b8 document "Timeout" option when defining a DICOMweb server
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 603
diff changeset
439 contacting this DICOMweb server. By default, the global value
324ca8f236b8 document "Timeout" option when defining a DICOMweb server
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 603
diff changeset
440 ``HttpTimeout`` is used.
324ca8f236b8 document "Timeout" option when defining a DICOMweb server
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 603
diff changeset
441
260
f9e7036d81d0 updating DICOMweb documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 255
diff changeset
442 **Remark:** A :ref:`plugin by Osimis <google>` is available to
f9e7036d81d0 updating DICOMweb documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 255
diff changeset
443 dynamically create authenticated connections to Google Cloud Platform.
f9e7036d81d0 updating DICOMweb documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 255
diff changeset
444
32
03b32d0e49f2 documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 31
diff changeset
445 **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
446 automatically use the global configuration options ``HttpProxy``,
03b32d0e49f2 documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 31
diff changeset
447 ``HttpTimeout``, ``HttpsVerifyPeers``, ``HttpsCACertificates``, and
03b32d0e49f2 documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 31
diff changeset
448 ``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
449
03b32d0e49f2 documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 31
diff changeset
450
260
f9e7036d81d0 updating DICOMweb documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 255
diff changeset
451 Quickstart - DICOMweb client
f9e7036d81d0 updating DICOMweb documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 255
diff changeset
452 ----------------------------
f9e7036d81d0 updating DICOMweb documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 255
diff changeset
453
f9e7036d81d0 updating DICOMweb documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 255
diff changeset
454 Starting with version 1.0 of the DICOMweb plugin, a Web interface is
f9e7036d81d0 updating DICOMweb documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 255
diff changeset
455 provided to use Orthanc as a DICOMweb client. Simply click on the
f9e7036d81d0 updating DICOMweb documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 255
diff changeset
456 "Open DICOMweb client" button at the bottom of the welcome screen of
f9e7036d81d0 updating DICOMweb documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 255
diff changeset
457 :ref:`Orthanc Explorer <orthanc-explorer>`.
32
03b32d0e49f2 documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 31
diff changeset
458
260
f9e7036d81d0 updating DICOMweb documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 255
diff changeset
459 Here is a direct link to the DICOMweb client running on our demo
f9e7036d81d0 updating DICOMweb documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 255
diff changeset
460 server:
991
1316bc62b5d5 migration to UCLouvain servers
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 971
diff changeset
461 `https://orthanc.uclouvain.be/demo/dicom-web/app/client/index.html
1316bc62b5d5 migration to UCLouvain servers
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 971
diff changeset
462 <https://orthanc.uclouvain.be/demo/dicom-web/app/client/index.html>`__
260
f9e7036d81d0 updating DICOMweb documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 255
diff changeset
463
f9e7036d81d0 updating DICOMweb documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 255
diff changeset
464
f9e7036d81d0 updating DICOMweb documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 255
diff changeset
465
f9e7036d81d0 updating DICOMweb documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 255
diff changeset
466 Quickstart - DICOMweb server
f9e7036d81d0 updating DICOMweb documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 255
diff changeset
467 ----------------------------
f9e7036d81d0 updating DICOMweb documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 255
diff changeset
468
f9e7036d81d0 updating DICOMweb documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 255
diff changeset
469 Once your Orthanc server is properly configured (see above), you can
f9e7036d81d0 updating DICOMweb documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 255
diff changeset
470 make REST calls to the API of the DICOMweb server. For demonstration
f9e7036d81d0 updating DICOMweb documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 255
diff changeset
471 purpose, this section makes the assumption that the ``VIX`` dataset
358
011b01ccf52d fixing external hyperlinks
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 325
diff changeset
472 provided by `OsiriX
011b01ccf52d fixing external hyperlinks
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 325
diff changeset
473 <https://www.osirix-viewer.com/resources/dicom-image-library/>`__ has
260
f9e7036d81d0 updating DICOMweb documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 255
diff changeset
474 been uploaded to Orthanc.
32
03b32d0e49f2 documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 31
diff changeset
475
03b32d0e49f2 documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 31
diff changeset
476 WADO-URI
03b32d0e49f2 documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 31
diff changeset
477 ^^^^^^^^
03b32d0e49f2 documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 31
diff changeset
478
03b32d0e49f2 documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 31
diff changeset
479 .. highlight:: text
03b32d0e49f2 documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 31
diff changeset
480
03b32d0e49f2 documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 31
diff changeset
481 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
482 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
483
03b32d0e49f2 documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 31
diff changeset
484 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
485
260
f9e7036d81d0 updating DICOMweb documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 255
diff changeset
486
f9e7036d81d0 updating DICOMweb documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 255
diff changeset
487 .. highlight:: bash
f9e7036d81d0 updating DICOMweb documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 255
diff changeset
488
32
03b32d0e49f2 documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 31
diff changeset
489 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
490 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
491 an instance from VIX
03b32d0e49f2 documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 31
diff changeset
492 (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
493 tag can be obtained from the ``MainDicomTags`` field::
03b32d0e49f2 documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 31
diff changeset
494
260
f9e7036d81d0 updating DICOMweb documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 255
diff changeset
495 $ curl http://localhost:8042/instances/14b4db2c-065edecb-6a767936-7068293a-92fcb080
f9e7036d81d0 updating DICOMweb documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 255
diff changeset
496
f9e7036d81d0 updating DICOMweb documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 255
diff changeset
497
f9e7036d81d0 updating DICOMweb documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 255
diff changeset
498 QIDO-RS
f9e7036d81d0 updating DICOMweb documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 255
diff changeset
499 ^^^^^^^
f9e7036d81d0 updating DICOMweb documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 255
diff changeset
500
f9e7036d81d0 updating DICOMweb documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 255
diff changeset
501 .. highlight:: bash
f9e7036d81d0 updating DICOMweb documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 255
diff changeset
502
f9e7036d81d0 updating DICOMweb documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 255
diff changeset
503 Regarding QIDO-RS (querying the content of a remote DICOMweb server),
f9e7036d81d0 updating DICOMweb documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 255
diff changeset
504 here is how to obtain the list of studies stored by Orthanc::
f9e7036d81d0 updating DICOMweb documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 255
diff changeset
505
f9e7036d81d0 updating DICOMweb documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 255
diff changeset
506 $ curl http://localhost:8042/dicom-web/studies
f9e7036d81d0 updating DICOMweb documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 255
diff changeset
507
f9e7036d81d0 updating DICOMweb documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 255
diff changeset
508 Note that the ``/dicom-web/`` prefix comes from the configuration
f9e7036d81d0 updating DICOMweb documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 255
diff changeset
509 option ``Root`` of the ``DicomWeb`` section. Filtering the studies is
f9e7036d81d0 updating DICOMweb documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 255
diff changeset
510 possible as follows::
f9e7036d81d0 updating DICOMweb documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 255
diff changeset
511
f9e7036d81d0 updating DICOMweb documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 255
diff changeset
512 $ curl http://localhost:8042/dicom-web/studies?PatientName=VIX
f9e7036d81d0 updating DICOMweb documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 255
diff changeset
513
32
03b32d0e49f2 documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 31
diff changeset
514
03b32d0e49f2 documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 31
diff changeset
515
03b32d0e49f2 documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 31
diff changeset
516 WADO-RS
03b32d0e49f2 documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 31
diff changeset
517 ^^^^^^^
03b32d0e49f2 documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 31
diff changeset
518
311
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 293
diff changeset
519 A study can be retrieved through WADO-RS. Here is a sample using the VIX dataset::
260
f9e7036d81d0 updating DICOMweb documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 255
diff changeset
520
f9e7036d81d0 updating DICOMweb documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 255
diff changeset
521 $ curl http://localhost:8042/dicom-web/studies/2.16.840.1.113669.632.20.1211.10000315526/
32
03b32d0e49f2 documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 31
diff changeset
522
260
f9e7036d81d0 updating DICOMweb documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 255
diff changeset
523 This answer is a `multipart stream
f9e7036d81d0 updating DICOMweb documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 255
diff changeset
524 <https://en.wikipedia.org/wiki/MIME#Multipart_messages>`__ of
f9e7036d81d0 updating DICOMweb documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 255
diff changeset
525 ``application/dicom`` DICOM instances, so a Web browser will not be
f9e7036d81d0 updating DICOMweb documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 255
diff changeset
526 able to display it (. You will have to use either AJAX (JavaScript) or a
f9e7036d81d0 updating DICOMweb documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 255
diff changeset
527 command-line tool (such as cURL).
32
03b32d0e49f2 documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 31
diff changeset
528
260
f9e7036d81d0 updating DICOMweb documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 255
diff changeset
529 You can render one individual frame as a plain PNG image as follows::
f9e7036d81d0 updating DICOMweb documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 255
diff changeset
530
f9e7036d81d0 updating DICOMweb documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 255
diff changeset
531 $ 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/rendered -H 'accept: image/png'
f9e7036d81d0 updating DICOMweb documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 255
diff changeset
532
32
03b32d0e49f2 documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 31
diff changeset
533
260
f9e7036d81d0 updating DICOMweb documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 255
diff changeset
534 Other endpoints
f9e7036d81d0 updating DICOMweb documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 255
diff changeset
535 ^^^^^^^^^^^^^^^
32
03b32d0e49f2 documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 31
diff changeset
536
260
f9e7036d81d0 updating DICOMweb documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 255
diff changeset
537 This page only provides some very basic examples about the use of a
f9e7036d81d0 updating DICOMweb documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 255
diff changeset
538 DICOMweb server. Please check out `the full reference of the DICOMweb
891
ce9218a720db fix dicomweb link
Alain Mazy <am@osimis.io>
parents: 858
diff changeset
539 API <https://www.dicomstandard.org/using/dicomweb>`__ for more information.
32
03b32d0e49f2 documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 31
diff changeset
540
713
d92edd545754 note about samples
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 665
diff changeset
541 Also, check out the :ref:`section about additional samples
d92edd545754 note about samples
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 665
diff changeset
542 <dicomweb-additional-samples>` that notably provides example of
d92edd545754 note about samples
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 665
diff changeset
543 STOW-RS clients in JavaScript and Python.
32
03b32d0e49f2 documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 31
diff changeset
544
03b32d0e49f2 documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 31
diff changeset
545
238
a363714813b2 securing orthanc
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 172
diff changeset
546 .. _dicomweb-client:
a363714813b2 securing orthanc
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 172
diff changeset
547
260
f9e7036d81d0 updating DICOMweb documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 255
diff changeset
548 REST API of the Orthanc DICOMweb client
f9e7036d81d0 updating DICOMweb documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 255
diff changeset
549 ---------------------------------------
32
03b32d0e49f2 documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 31
diff changeset
550
03b32d0e49f2 documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 31
diff changeset
551 Listing the available servers
03b32d0e49f2 documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 31
diff changeset
552 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
03b32d0e49f2 documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 31
diff changeset
553
260
f9e7036d81d0 updating DICOMweb documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 255
diff changeset
554 .. highlight:: bash
32
03b32d0e49f2 documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 31
diff changeset
555
03b32d0e49f2 documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 31
diff changeset
556 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
557 plugin can be obtained as follows::
03b32d0e49f2 documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 31
diff changeset
558
260
f9e7036d81d0 updating DICOMweb documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 255
diff changeset
559 $ curl http://localhost:8042/dicom-web/servers/
32
03b32d0e49f2 documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 31
diff changeset
560 [ "sample" ]
03b32d0e49f2 documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 31
diff changeset
561
260
f9e7036d81d0 updating DICOMweb documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 255
diff changeset
562 In this case, a single server called ``sample`` is configured.
32
03b32d0e49f2 documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 31
diff changeset
563
03b32d0e49f2 documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 31
diff changeset
564
03b32d0e49f2 documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 31
diff changeset
565 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
566 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
03b32d0e49f2 documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 31
diff changeset
567
260
f9e7036d81d0 updating DICOMweb documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 255
diff changeset
568 .. highlight:: bash
32
03b32d0e49f2 documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 31
diff changeset
569
03b32d0e49f2 documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 31
diff changeset
570 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
571 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
572 issue a QIDO-RS or WADO-RS command. Orthanc will take care of properly
260
f9e7036d81d0 updating DICOMweb documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 255
diff changeset
573 encoding the URL and authenticating the client. For instance, here is
f9e7036d81d0 updating DICOMweb documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 255
diff changeset
574 a sample QIDO-RS search to query all the studies (using a bash
f9e7036d81d0 updating DICOMweb documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 255
diff changeset
575 command-line)::
32
03b32d0e49f2 documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 31
diff changeset
576
260
f9e7036d81d0 updating DICOMweb documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 255
diff changeset
577 $ curl http://localhost:8042/dicom-web/servers/sample/get -d @- << EOF
32
03b32d0e49f2 documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 31
diff changeset
578 {
03b32d0e49f2 documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 31
diff changeset
579 "Uri" : "/studies"
03b32d0e49f2 documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 31
diff changeset
580 }
03b32d0e49f2 documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 31
diff changeset
581 EOF
03b32d0e49f2 documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 31
diff changeset
582
260
f9e7036d81d0 updating DICOMweb documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 255
diff changeset
583 The result of this call is a JSON document formatted according to the
f9e7036d81d0 updating DICOMweb documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 255
diff changeset
584 DICOMweb standard. You do not have to specify the base URL of the
f9e7036d81d0 updating DICOMweb documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 255
diff changeset
585 remote DICOMweb server, as it is encoded in the configuration file.
32
03b32d0e49f2 documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 31
diff changeset
586
260
f9e7036d81d0 updating DICOMweb documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 255
diff changeset
587 As a more advanced example, here is how to search all the series
f9e7036d81d0 updating DICOMweb documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 255
diff changeset
588 associated with a given patient name, while requesting to use an XML
f9e7036d81d0 updating DICOMweb documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 255
diff changeset
589 format::
32
03b32d0e49f2 documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 31
diff changeset
590
260
f9e7036d81d0 updating DICOMweb documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 255
diff changeset
591 $ curl http://localhost:8042/dicom-web/servers/sample/get -d @- << EOF
32
03b32d0e49f2 documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 31
diff changeset
592 {
260
f9e7036d81d0 updating DICOMweb documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 255
diff changeset
593 "Uri" : "/series",
32
03b32d0e49f2 documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 31
diff changeset
594 "HttpHeaders" : {
260
f9e7036d81d0 updating DICOMweb documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 255
diff changeset
595 "Accept" : "application/dicom+xml"
32
03b32d0e49f2 documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 31
diff changeset
596 },
03b32d0e49f2 documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 31
diff changeset
597 "Arguments" : {
260
f9e7036d81d0 updating DICOMweb documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 255
diff changeset
598 "00100010" : "KNIX"
32
03b32d0e49f2 documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 31
diff changeset
599 }
03b32d0e49f2 documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 31
diff changeset
600 }
03b32d0e49f2 documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 31
diff changeset
601 EOF
03b32d0e49f2 documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 31
diff changeset
602
260
f9e7036d81d0 updating DICOMweb documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 255
diff changeset
603 The result of the command above is a `multipart stream
f9e7036d81d0 updating DICOMweb documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 255
diff changeset
604 <https://en.wikipedia.org/wiki/MIME#Multipart_messages>`__ of XML
f9e7036d81d0 updating DICOMweb documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 255
diff changeset
605 documents describing each series.
f9e7036d81d0 updating DICOMweb documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 255
diff changeset
606
f9e7036d81d0 updating DICOMweb documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 255
diff changeset
607 Note how all the GET arguments to the QIDO-RS request must be
89
c9a33e4a0577 fix mixup between HttpArguments and HttpHeaders in WADO-RS
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 81
diff changeset
608 specified in the ``Arguments`` field. Orthanc will take care of
260
f9e7036d81d0 updating DICOMweb documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 255
diff changeset
609 `properly encoding it as an URL
f9e7036d81d0 updating DICOMweb documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 255
diff changeset
610 <https://en.wikipedia.org/wiki/Percent-encoding>`__.
32
03b32d0e49f2 documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 31
diff changeset
611
03b32d0e49f2 documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 31
diff changeset
612 An user-friendly reference of the features available in QIDO-RS and
358
011b01ccf52d fixing external hyperlinks
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 325
diff changeset
613 WADO-RS `can be found on this site
891
ce9218a720db fix dicomweb link
Alain Mazy <am@osimis.io>
parents: 858
diff changeset
614 <https://www.dicomstandard.org/using/dicomweb>`__.
32
03b32d0e49f2 documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 31
diff changeset
615
03b32d0e49f2 documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 31
diff changeset
616
03b32d0e49f2 documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 31
diff changeset
617 Sending DICOM resources to a STOW-RS server
03b32d0e49f2 documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 31
diff changeset
618 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
03b32d0e49f2 documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 31
diff changeset
619
822
0f4f11636193 transfers atomicity
Alain Mazy <am@osimis.io>
parents: 761
diff changeset
620 .. _dicomweb-stow-rs:
0f4f11636193 transfers atomicity
Alain Mazy <am@osimis.io>
parents: 761
diff changeset
621
0f4f11636193 transfers atomicity
Alain Mazy <am@osimis.io>
parents: 761
diff changeset
622
260
f9e7036d81d0 updating DICOMweb documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 255
diff changeset
623 .. highlight:: bash
32
03b32d0e49f2 documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 31
diff changeset
624
03b32d0e49f2 documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 31
diff changeset
625 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
626 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
627 ``/{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
628
260
f9e7036d81d0 updating DICOMweb documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 255
diff changeset
629 $ curl http://localhost:8042/dicom-web/servers/sample/stow -X POST -d @- << EOF
32
03b32d0e49f2 documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 31
diff changeset
630 {
03b32d0e49f2 documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 31
diff changeset
631 "Resources" : [
03b32d0e49f2 documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 31
diff changeset
632 "6ca4c9f3-5e895cb3-4d82c6da-09e060fe-9c59f228"
03b32d0e49f2 documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 31
diff changeset
633 ]
03b32d0e49f2 documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 31
diff changeset
634 }
03b32d0e49f2 documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 31
diff changeset
635 EOF
03b32d0e49f2 documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 31
diff changeset
636
03b32d0e49f2 documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 31
diff changeset
637 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
638 identifiers <orthanc-ids>` corresponding to the resources (patients,
03b32d0e49f2 documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 31
diff changeset
639 studies, series and/or instances) to be exported.
03b32d0e49f2 documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 31
diff changeset
640
260
f9e7036d81d0 updating DICOMweb documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 255
diff changeset
641 Additional HTTP headers can be added with an optional ``HttpHeaders``
f9e7036d81d0 updating DICOMweb documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 255
diff changeset
642 argument as for QIDO-RS and WADO-RS. This might be useful e.g. for
f9e7036d81d0 updating DICOMweb documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 255
diff changeset
643 cookie-based session management.
f9e7036d81d0 updating DICOMweb documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 255
diff changeset
644
262
3391edf37359 note for packagers
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 260
diff changeset
645 Internally, this call results in creating an :ref:`Orthanc job <jobs>`
260
f9e7036d81d0 updating DICOMweb documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 255
diff changeset
646 that is executed synchronously (the REST call only returns once the
f9e7036d81d0 updating DICOMweb documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 255
diff changeset
647 STOW-RS request is finished). You can run the job in asynchronous
f9e7036d81d0 updating DICOMweb documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 255
diff changeset
648 mode as follows::
32
03b32d0e49f2 documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 31
diff changeset
649
260
f9e7036d81d0 updating DICOMweb documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 255
diff changeset
650 $ curl http://localhost:8042/dicom-web/servers/sample/stow -X POST -d @- << EOF
f9e7036d81d0 updating DICOMweb documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 255
diff changeset
651 {
f9e7036d81d0 updating DICOMweb documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 255
diff changeset
652 "Resources" : [
f9e7036d81d0 updating DICOMweb documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 255
diff changeset
653 "6ca4c9f3-5e895cb3-4d82c6da-09e060fe-9c59f228"
f9e7036d81d0 updating DICOMweb documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 255
diff changeset
654 ],
f9e7036d81d0 updating DICOMweb documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 255
diff changeset
655 "Synchronous" : false,
f9e7036d81d0 updating DICOMweb documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 255
diff changeset
656 "Priority" : 10
f9e7036d81d0 updating DICOMweb documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 255
diff changeset
657 }
f9e7036d81d0 updating DICOMweb documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 255
diff changeset
658 EOF
f9e7036d81d0 updating DICOMweb documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 255
diff changeset
659
f9e7036d81d0 updating DICOMweb documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 255
diff changeset
660 {
f9e7036d81d0 updating DICOMweb documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 255
diff changeset
661 "ID" : "a7bd2a5c-291d-4ca5-977a-66502cab22a1",
f9e7036d81d0 updating DICOMweb documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 255
diff changeset
662 "Path" : ".././../jobs/a7bd2a5c-291d-4ca5-977a-66502cab22a1"
f9e7036d81d0 updating DICOMweb documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 255
diff changeset
663 }
f9e7036d81d0 updating DICOMweb documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 255
diff changeset
664
f9e7036d81d0 updating DICOMweb documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 255
diff changeset
665 Such a call ends immediately, and returns the ID of the job created by
f9e7036d81d0 updating DICOMweb documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 255
diff changeset
666 Orthanc. The :ref:`status of the job <jobs-monitoring>` can then be
f9e7036d81d0 updating DICOMweb documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 255
diff changeset
667 monitored using the Orthanc REST API.
f9e7036d81d0 updating DICOMweb documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 255
diff changeset
668
32
03b32d0e49f2 documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 31
diff changeset
669
03b32d0e49f2 documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 31
diff changeset
670
03b32d0e49f2 documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 31
diff changeset
671 Retrieving DICOM resources from a WADO-RS server
03b32d0e49f2 documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 31
diff changeset
672 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
03b32d0e49f2 documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 31
diff changeset
673
260
f9e7036d81d0 updating DICOMweb documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 255
diff changeset
674 .. highlight:: bash
32
03b32d0e49f2 documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 31
diff changeset
675
03b32d0e49f2 documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 31
diff changeset
676 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
677 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
678 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
679 it manually with a second call to the
03b32d0e49f2 documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 31
diff changeset
680 ``/{dicom-web-root}/servers/{name}/get`` URI, but Orthanc provides
260
f9e7036d81d0 updating DICOMweb documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 255
diff changeset
681 another primitive ``.../retrieve`` to automate this process, in order
f9e7036d81d0 updating DICOMweb documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 255
diff changeset
682 to avoid the manual parsing of the multipart stream.
32
03b32d0e49f2 documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 31
diff changeset
683
03b32d0e49f2 documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 31
diff changeset
684 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
685 whose StudyInstanceUID (0020,000d), SeriesInstanceUID (0020,000e) are
03b32d0e49f2 documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 31
diff changeset
686 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
687 QIDO-RS call::
03b32d0e49f2 documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 31
diff changeset
688
260
f9e7036d81d0 updating DICOMweb documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 255
diff changeset
689 $ curl http://localhost:8042/dicom-web/servers/sample/retrieve -X POST -d @- << EOF
32
03b32d0e49f2 documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 31
diff changeset
690 {
03b32d0e49f2 documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 31
diff changeset
691 "Resources" : [
03b32d0e49f2 documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 31
diff changeset
692 {
03b32d0e49f2 documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 31
diff changeset
693 "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
694 },
03b32d0e49f2 documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 31
diff changeset
695 {
03b32d0e49f2 documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 31
diff changeset
696 "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
697 "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
698 },
03b32d0e49f2 documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 31
diff changeset
699 {
03b32d0e49f2 documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 31
diff changeset
700 "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
701 "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
702 "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
703 }
03b32d0e49f2 documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 31
diff changeset
704 ]
03b32d0e49f2 documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 31
diff changeset
705 }
03b32d0e49f2 documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 31
diff changeset
706 EOF
03b32d0e49f2 documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 31
diff changeset
707
03b32d0e49f2 documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 31
diff changeset
708 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
709 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
710
03b32d0e49f2 documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 31
diff changeset
711 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
712 identifiers <orthanc-ids>`, the ``.../retrieve`` URI uses DICOM
03b32d0e49f2 documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 31
diff changeset
713 identifiers.
03b32d0e49f2 documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 31
diff changeset
714
89
c9a33e4a0577 fix mixup between HttpArguments and HttpHeaders in WADO-RS
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 81
diff changeset
715 Remark 2: The ``HttpHeaders`` and ``Arguments`` arguments are also
260
f9e7036d81d0 updating DICOMweb documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 255
diff changeset
716 available, as for QIDO-RS, to fine-tune the parameters of the WADO-RS
f9e7036d81d0 updating DICOMweb documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 255
diff changeset
717 request.
f9e7036d81d0 updating DICOMweb documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 255
diff changeset
718
f9e7036d81d0 updating DICOMweb documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 255
diff changeset
719 Remark 3: As for QIDO-RS, the request is run synchronously by default.
f9e7036d81d0 updating DICOMweb documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 255
diff changeset
720 The ``Synchronous`` and ``Priority`` arguments can be used to
f9e7036d81d0 updating DICOMweb documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 255
diff changeset
721 asynchronously run the request.
32
03b32d0e49f2 documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 31
diff changeset
722
03b32d0e49f2 documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 31
diff changeset
723
603
60c787d3f4d3 DICOMweb: ServersInDatabase option
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 449
diff changeset
724 .. _dicomweb-additional-samples:
32
03b32d0e49f2 documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 31
diff changeset
725
03b32d0e49f2 documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 31
diff changeset
726 Additional samples
03b32d0e49f2 documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 31
diff changeset
727 ------------------
03b32d0e49f2 documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 31
diff changeset
728
03b32d0e49f2 documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 31
diff changeset
729 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
730 are available for `Python
991
1316bc62b5d5 migration to UCLouvain servers
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 971
diff changeset
731 <https://orthanc.uclouvain.be/hg/orthanc-dicomweb/file/default/Resources/Samples/Python>`__
32
03b32d0e49f2 documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 31
diff changeset
732 and for `JavaScript
991
1316bc62b5d5 migration to UCLouvain servers
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 971
diff changeset
733 <https://orthanc.uclouvain.be/hg/orthanc-dicomweb/file/default/Resources/Samples/JavaScript>`__.
32
03b32d0e49f2 documentation of the dicomweb plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 31
diff changeset
734
260
f9e7036d81d0 updating DICOMweb documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 255
diff changeset
735 Integration tests are `available separately
991
1316bc62b5d5 migration to UCLouvain servers
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 971
diff changeset
736 <https://orthanc.uclouvain.be/hg/orthanc-tests/file/default/Plugins/DicomWeb/Run.py>`__,
260
f9e7036d81d0 updating DICOMweb documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 255
diff changeset
737 and provide samples for more advanced features of the REST API (such
f9e7036d81d0 updating DICOMweb documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 255
diff changeset
738 as dynamically adding/updating/removing remote DICOMweb servers using
f9e7036d81d0 updating DICOMweb documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 255
diff changeset
739 HTTP PUT and DELETE methods).