annotate Sphinx/source/faq/features.rst @ 106:7063afe5748c

added info about recycling
author amazy
date Wed, 19 Jul 2017 12:49:56 +0200
parents 065350232191
children f823ad1ef269
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
901e8961f46e initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
1 Terminology of advanced features
901e8961f46e initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
2 ================================
901e8961f46e initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
3
901e8961f46e initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
4 .. _peers:
901e8961f46e initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
5
901e8961f46e initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
6 Peers
901e8961f46e initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
7 -----
901e8961f46e initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
8
901e8961f46e initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
9 An "Orthanc peer" is another instance of Orthanc, possibly running on
901e8961f46e initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
10 a remote computer.
901e8961f46e initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
11
901e8961f46e initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
12 Contrarily to a "modality", it is possible to communicate with a peer
901e8961f46e initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
13 through the **HTTP/HTTPS protocol** (i.e. through the REST API of
901e8961f46e initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
14 Orthanc), and not through the DICOM protocol. This implies a much
901e8961f46e initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
15 easier configuration: It is only required to know the URL, the
901e8961f46e initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
16 username and the password to communicate with an Orthanc peer. This
901e8961f46e initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
17 contrasts with DICOM query/retrieve, that is quite complex and that
901e8961f46e initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
18 involves a lot of pitfalls (cf. the FAQ entry about :ref:`troubleshooting
901e8961f46e initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
19 DICOM communications <dicom>`) that can be bypassed if using HTTP.
901e8961f46e initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
20
901e8961f46e initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
21 Furthermore, as HTTP(S) communications are generally not blocked by
901e8961f46e initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
22 firewalls (contrarily to the DICOM protocol that is inherently an
901e8961f46e initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
23 Intranet protocol and that often requires the setup of VPN tunnels),
901e8961f46e initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
24 it is much easier to setup communications of medical images through
901e8961f46e initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
25 the Internet with Orthanc peers.
901e8961f46e initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
26
901e8961f46e initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
27
901e8961f46e initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
28 .. _recycling:
901e8961f46e initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
29
901e8961f46e initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
30 Recycling/Protection
901e8961f46e initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
31 --------------------
901e8961f46e initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
32
901e8961f46e initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
33 Because of its focus on low-end computers, Orthanc implements **disk
901e8961f46e initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
34 space recycling**: The patient that has been stored for the longest
901e8961f46e initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
35 time inside Orthanc can be automatically deleted when the disk space
901e8961f46e initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
36 used by Orthanc grows above a threshold, or when the number of stored
901e8961f46e initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
37 patients grows above a threshold. This feature enables the automated
106
7063afe5748c added info about recycling
amazy
parents: 95
diff changeset
38 control of the disk space dedicated to Orthanc. Note that pushing a
7063afe5748c added info about recycling
amazy
parents: 95
diff changeset
39 new study for an existing patient will not change its position in the
7063afe5748c added info about recycling
amazy
parents: 95
diff changeset
40 recycling order.
0
901e8961f46e initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
41
901e8961f46e initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
42 Recycling is controlled by the ``MaximumStorageSize`` and the
901e8961f46e initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
43 ``MaximumPatientCount`` options in the :ref:`Orthanc configuration
106
7063afe5748c added info about recycling
amazy
parents: 95
diff changeset
44 file <configuration>`. Setting both these values to 0 will disable
7063afe5748c added info about recycling
amazy
parents: 95
diff changeset
45 recycling.
0
901e8961f46e initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
46
901e8961f46e initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
47 It is possible to prevent important data from being automatically
901e8961f46e initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
48 recycled. This mechanism is called **protection**. Each patient can be
901e8961f46e initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
49 individually protected against recycling by using the
901e8961f46e initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
50 ``Unprotected/Protected`` switch that is available from Orthanc
901e8961f46e initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
51 Explorer.
901e8961f46e initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
52
901e8961f46e initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
53 Note that protection is only available at the patient level. It
901e8961f46e initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
54 protects all the studies/series/instances of the patient against
901e8961f46e initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
55 recycling. The rationale is that we think it is important to keep
901e8961f46e initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
56 available all the data related to one patient. Unwillingly losing a
901e8961f46e initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
57 study/series that is part of the same patient might lead to a loss in
901e8961f46e initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
58 consistency with respect to the medical history of this patient.
901e8961f46e initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
59
901e8961f46e initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
60 .. _compression:
901e8961f46e initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
61
901e8961f46e initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
62 Compression
901e8961f46e initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
63 -----------
901e8961f46e initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
64
901e8961f46e initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
65 If your disk space is limited, besides :ref:`recycling`, you should
901e8961f46e initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
66 also consider using **disk space compression**. When compression is
901e8961f46e initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
67 enabled, Orthanc compresses the incoming DICOM instances on-the-fly
901e8961f46e initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
68 before writing them to the filesystem, using `zlib
25
669ea65ba7fb fix links
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 0
diff changeset
69 <https://en.wikipedia.org/wiki/Zlib>`_. This is useful, because the
0
901e8961f46e initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
70 images are often stored as raw, uncompressed arrays in DICOM
901e8961f46e initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
71 instances: The size of a typical DICOM instance can hopefully be
901e8961f46e initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
72 divided by a factor 2 through lossless compression. This compression
901e8961f46e initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
73 process is transparent to the user, as Orthanc automatically
901e8961f46e initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
74 decompresses the file before sending it back to the external world.
901e8961f46e initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
75
901e8961f46e initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
76 Compression is controlled by the ``StorageCompression`` option in the
901e8961f46e initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
77 :ref:`Orthanc configuration file <configuration>`.
78
d6bd1dd820e5 metadata
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 25
diff changeset
78
d6bd1dd820e5 metadata
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 25
diff changeset
79
d6bd1dd820e5 metadata
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 25
diff changeset
80 .. _metadata:
d6bd1dd820e5 metadata
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 25
diff changeset
81
92
a3d3ff83024d attachments doc + build with docker
amazy
parents: 80
diff changeset
82 Metadata & attachments
a3d3ff83024d attachments doc + build with docker
amazy
parents: 80
diff changeset
83 ----------------------
78
d6bd1dd820e5 metadata
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 25
diff changeset
84
d6bd1dd820e5 metadata
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 25
diff changeset
85 Metadata consists in an **associative key-value array** (mapping a
d6bd1dd820e5 metadata
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 25
diff changeset
86 integer key in the range [0,65535] to a string value) that is
d6bd1dd820e5 metadata
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 25
diff changeset
87 associated with each :ref:`DICOM resource <orthanc-ids>` stored inside
d6bd1dd820e5 metadata
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 25
diff changeset
88 Orthanc (may it be a patient, a study, a series or a DICOM
d6bd1dd820e5 metadata
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 25
diff changeset
89 instance). Metadata can be either referred to using the integer key,
d6bd1dd820e5 metadata
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 25
diff changeset
90 or using a symbolic name (if configured). Metadata records
d6bd1dd820e5 metadata
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 25
diff changeset
91 information that is not readily available in the DICOM tags.
d6bd1dd820e5 metadata
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 25
diff changeset
92
d6bd1dd820e5 metadata
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 25
diff changeset
93 In spirit, the metadata mechanism is similar to the :ref:`attachment
d6bd1dd820e5 metadata
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 25
diff changeset
94 mechanism <orthanc-storage>`. However, metadata is stored directly
d6bd1dd820e5 metadata
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 25
diff changeset
95 inside the database, whereas attachments are stored as separate files
d6bd1dd820e5 metadata
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 25
diff changeset
96 on the filesystem (the database only stores a reference to the
d6bd1dd820e5 metadata
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 25
diff changeset
97 attachments). Choosing between metadata and attachments is a matter of
d6bd1dd820e5 metadata
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 25
diff changeset
98 trade-off: Metadata must be kept small (as a rule of thumb, under 1KB)
d6bd1dd820e5 metadata
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 25
diff changeset
99 and used if fast access is needed, whereas attachments can be used to
d6bd1dd820e5 metadata
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 25
diff changeset
100 store arbitrarily large piece of data.
d6bd1dd820e5 metadata
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 25
diff changeset
101
79
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 78
diff changeset
102 Also note that metadata and attachments are only available for
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 78
diff changeset
103 resources stored inside Orthanc. Once one DICOM instance leaves the
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 78
diff changeset
104 Orthanc ecosystem, its associated metadata and attachments are lost.
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 78
diff changeset
105
78
d6bd1dd820e5 metadata
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 25
diff changeset
106
d6bd1dd820e5 metadata
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 25
diff changeset
107 Core metadata
d6bd1dd820e5 metadata
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 25
diff changeset
108 ^^^^^^^^^^^^^
d6bd1dd820e5 metadata
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 25
diff changeset
109
d6bd1dd820e5 metadata
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 25
diff changeset
110 Here are the main metadata handled by the Orthanc core:
d6bd1dd820e5 metadata
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 25
diff changeset
111
d6bd1dd820e5 metadata
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 25
diff changeset
112 * ``ReceptionDate`` records when a DICOM instance was received by
d6bd1dd820e5 metadata
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 25
diff changeset
113 Orthanc. Similarly, ``LastUpdate`` records, for each
d6bd1dd820e5 metadata
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 25
diff changeset
114 patient/study/series, the last time a DICOM instance was added to
d6bd1dd820e5 metadata
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 25
diff changeset
115 this resource.
d6bd1dd820e5 metadata
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 25
diff changeset
116 * ``RemoteAet`` records the AET of the modality that has sent some
d6bd1dd820e5 metadata
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 25
diff changeset
117 DICOM instance to Orthanc.
d6bd1dd820e5 metadata
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 25
diff changeset
118 * ``ModifiedFrom`` and ``AnonymizedFrom`` hold from which original
d6bd1dd820e5 metadata
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 25
diff changeset
119 resource, a resource was modified or anonymized. The presence of
d6bd1dd820e5 metadata
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 25
diff changeset
120 this metadata indicates that the resource is the result of a
d6bd1dd820e5 metadata
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 25
diff changeset
121 modification or anonymization that was carried on by Orthanc.
d6bd1dd820e5 metadata
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 25
diff changeset
122 * ``Origin`` records through which mechanism the instance was received
d6bd1dd820e5 metadata
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 25
diff changeset
123 by Orthanc (may be ``Unknown``, ``DicomProtocol``, ``RestApi``,
d6bd1dd820e5 metadata
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 25
diff changeset
124 ``Plugins``, or ``Lua``).
d6bd1dd820e5 metadata
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 25
diff changeset
125 * ``IndexInSeries`` records the expected index of a DICOM instance
d6bd1dd820e5 metadata
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 25
diff changeset
126 inside its parent series. Conversely, ``ExpectedNumberOfInstances``
d6bd1dd820e5 metadata
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 25
diff changeset
127 associates to each series, the number of DICOM instances this series
d6bd1dd820e5 metadata
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 25
diff changeset
128 is expected to contain.
d6bd1dd820e5 metadata
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 25
diff changeset
129 * Starting with Orthanc 1.2.0, ``TransferSyntax`` and ``SopClassUid``
d6bd1dd820e5 metadata
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 25
diff changeset
130 respectively stores the transfer syntax UID and the SOP class UID of
d6bd1dd820e5 metadata
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 25
diff changeset
131 DICOM instances, in order to speed up the access to this
d6bd1dd820e5 metadata
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 25
diff changeset
132 information.
d6bd1dd820e5 metadata
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 25
diff changeset
133
d6bd1dd820e5 metadata
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 25
diff changeset
134 Metadata listed above are set privately by the Orthanc core. They are
d6bd1dd820e5 metadata
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 25
diff changeset
135 **read-only** from the perspective of the end user, as Orthanc
d6bd1dd820e5 metadata
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 25
diff changeset
136 internally relies on them.
d6bd1dd820e5 metadata
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 25
diff changeset
137
d6bd1dd820e5 metadata
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 25
diff changeset
138
d6bd1dd820e5 metadata
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 25
diff changeset
139 User-defined metadata
d6bd1dd820e5 metadata
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 25
diff changeset
140 ^^^^^^^^^^^^^^^^^^^^^
d6bd1dd820e5 metadata
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 25
diff changeset
141
d6bd1dd820e5 metadata
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 25
diff changeset
142 The metadata described above where handled by the core of Orthanc.
d6bd1dd820e5 metadata
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 25
diff changeset
143 Orthanc users are however allowed to define their own **user-defined
d6bd1dd820e5 metadata
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 25
diff changeset
144 metadata**. Such metadata are associated with an integer key that is
d6bd1dd820e5 metadata
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 25
diff changeset
145 greater or equal to 1024 (whereas keys below 1023 are reserved for
d6bd1dd820e5 metadata
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 25
diff changeset
146 core metadata).
d6bd1dd820e5 metadata
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 25
diff changeset
147
d6bd1dd820e5 metadata
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 25
diff changeset
148 You can associate a symbolic name to user-defined metadata using the
d6bd1dd820e5 metadata
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 25
diff changeset
149 ``UserMetadata`` option inside the :ref:`configuration of Orthanc
92
a3d3ff83024d attachments doc + build with docker
amazy
parents: 80
diff changeset
150 <configuration>`::
a3d3ff83024d attachments doc + build with docker
amazy
parents: 80
diff changeset
151
a3d3ff83024d attachments doc + build with docker
amazy
parents: 80
diff changeset
152 "UserMetadata" : {
a3d3ff83024d attachments doc + build with docker
amazy
parents: 80
diff changeset
153 "SampleMetaData1" : 1024,
a3d3ff83024d attachments doc + build with docker
amazy
parents: 80
diff changeset
154 "SampleMetaData2" : 1025
a3d3ff83024d attachments doc + build with docker
amazy
parents: 80
diff changeset
155 }
78
d6bd1dd820e5 metadata
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 25
diff changeset
156
d6bd1dd820e5 metadata
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 25
diff changeset
157
d6bd1dd820e5 metadata
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 25
diff changeset
158 Accessing metadata
d6bd1dd820e5 metadata
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 25
diff changeset
159 ^^^^^^^^^^^^^^^^^^
d6bd1dd820e5 metadata
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 25
diff changeset
160
d6bd1dd820e5 metadata
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 25
diff changeset
161 .. highlight:: bash
d6bd1dd820e5 metadata
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 25
diff changeset
162
d6bd1dd820e5 metadata
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 25
diff changeset
163 Metadata associated with one DICOM resource can be accessed through
80
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 79
diff changeset
164 the :ref:`REST API <rest>`, for instance::
78
d6bd1dd820e5 metadata
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 25
diff changeset
165
d6bd1dd820e5 metadata
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 25
diff changeset
166 $ curl http://localhost:8042/instances/cb855110-5f4da420-ec9dc9cb-2af6a9bb-dcbd180e/metadata
d6bd1dd820e5 metadata
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 25
diff changeset
167 $ curl http://localhost:8042/instances/cb855110-5f4da420-ec9dc9cb-2af6a9bb-dcbd180e/metadata/RemoteAet
92
a3d3ff83024d attachments doc + build with docker
amazy
parents: 80
diff changeset
168 $ curl http://localhost:8042/instances/cb855110-5f4da420-ec9dc9cb-2af6a9bb-dcbd180e/metadata/SampleMetaData1
78
d6bd1dd820e5 metadata
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 25
diff changeset
169
d6bd1dd820e5 metadata
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 25
diff changeset
170 User-defined metadata can be modified by issuing a HTTP PUT against
d6bd1dd820e5 metadata
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 25
diff changeset
171 the REST API::
d6bd1dd820e5 metadata
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 25
diff changeset
172
d6bd1dd820e5 metadata
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 25
diff changeset
173 $ curl http://localhost:8042/instances/cb855110-5f4da420-ec9dc9cb-2af6a9bb-dcbd180e/metadata/1024 -X PUT -d 'hello'
d6bd1dd820e5 metadata
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 25
diff changeset
174 $ curl http://localhost:8042/instances/cb855110-5f4da420-ec9dc9cb-2af6a9bb-dcbd180e/metadata/1024
d6bd1dd820e5 metadata
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 25
diff changeset
175 hello
d6bd1dd820e5 metadata
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 25
diff changeset
176
d6bd1dd820e5 metadata
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 25
diff changeset
177
d6bd1dd820e5 metadata
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 25
diff changeset
178
92
a3d3ff83024d attachments doc + build with docker
amazy
parents: 80
diff changeset
179 .. _attachments:
a3d3ff83024d attachments doc + build with docker
amazy
parents: 80
diff changeset
180
a3d3ff83024d attachments doc + build with docker
amazy
parents: 80
diff changeset
181 User-defined attachments
a3d3ff83024d attachments doc + build with docker
amazy
parents: 80
diff changeset
182 ^^^^^^^^^^^^^^^^^^^^^^^^
a3d3ff83024d attachments doc + build with docker
amazy
parents: 80
diff changeset
183
a3d3ff83024d attachments doc + build with docker
amazy
parents: 80
diff changeset
184 Orthanc users are allowed to define their own **user-defined attachments**.
a3d3ff83024d attachments doc + build with docker
amazy
parents: 80
diff changeset
185 Such attachments are associated with an integer key that is
a3d3ff83024d attachments doc + build with docker
amazy
parents: 80
diff changeset
186 greater or equal to 1024 (whereas keys below 1023 are reserved for
a3d3ff83024d attachments doc + build with docker
amazy
parents: 80
diff changeset
187 core attachments).
a3d3ff83024d attachments doc + build with docker
amazy
parents: 80
diff changeset
188
a3d3ff83024d attachments doc + build with docker
amazy
parents: 80
diff changeset
189 You can associate a symbolic name to user-defined attachments using the
a3d3ff83024d attachments doc + build with docker
amazy
parents: 80
diff changeset
190 ``UserContentType`` option inside the :ref:`configuration of Orthanc
a3d3ff83024d attachments doc + build with docker
amazy
parents: 80
diff changeset
191 <configuration>`. Optionally, the user may specify a MIME content type
a3d3ff83024d attachments doc + build with docker
amazy
parents: 80
diff changeset
192 for the attachment::
a3d3ff83024d attachments doc + build with docker
amazy
parents: 80
diff changeset
193
a3d3ff83024d attachments doc + build with docker
amazy
parents: 80
diff changeset
194 "UserContentType" : {
a3d3ff83024d attachments doc + build with docker
amazy
parents: 80
diff changeset
195 "samplePdf" : [1024, "application/pdf"],
a3d3ff83024d attachments doc + build with docker
amazy
parents: 80
diff changeset
196 "sampleJson" : [1025, "application/json"],
a3d3ff83024d attachments doc + build with docker
amazy
parents: 80
diff changeset
197 "sampleRaw" : 1026
a3d3ff83024d attachments doc + build with docker
amazy
parents: 80
diff changeset
198 }
a3d3ff83024d attachments doc + build with docker
amazy
parents: 80
diff changeset
199
a3d3ff83024d attachments doc + build with docker
amazy
parents: 80
diff changeset
200 Accessing attachments
a3d3ff83024d attachments doc + build with docker
amazy
parents: 80
diff changeset
201 ^^^^^^^^^^^^^^^^^^^^^
a3d3ff83024d attachments doc + build with docker
amazy
parents: 80
diff changeset
202
a3d3ff83024d attachments doc + build with docker
amazy
parents: 80
diff changeset
203 .. highlight:: bash
a3d3ff83024d attachments doc + build with docker
amazy
parents: 80
diff changeset
204
a3d3ff83024d attachments doc + build with docker
amazy
parents: 80
diff changeset
205 Attachments associated with one DICOM resource can be accessed through
a3d3ff83024d attachments doc + build with docker
amazy
parents: 80
diff changeset
206 the :ref:`REST API <rest>`, for instance::
a3d3ff83024d attachments doc + build with docker
amazy
parents: 80
diff changeset
207
a3d3ff83024d attachments doc + build with docker
amazy
parents: 80
diff changeset
208 $ curl http://localhost:8042/instances/cb855110-5f4da420-ec9dc9cb-2af6a9bb-dcbd180e/attachments/samplePdf/data
a3d3ff83024d attachments doc + build with docker
amazy
parents: 80
diff changeset
209 $ curl http://localhost:8042/instances/cb855110-5f4da420-ec9dc9cb-2af6a9bb-dcbd180e/attachments/sampleJson/data
a3d3ff83024d attachments doc + build with docker
amazy
parents: 80
diff changeset
210
a3d3ff83024d attachments doc + build with docker
amazy
parents: 80
diff changeset
211 User-defined attachments can be modified by issuing a HTTP PUT against
a3d3ff83024d attachments doc + build with docker
amazy
parents: 80
diff changeset
212 the REST API::
a3d3ff83024d attachments doc + build with docker
amazy
parents: 80
diff changeset
213
a3d3ff83024d attachments doc + build with docker
amazy
parents: 80
diff changeset
214 $ curl http://localhost:8042/instances/cb855110-5f4da420-ec9dc9cb-2af6a9bb-dcbd180e/attachments/samplePdf -X PUT --data-binary @sample.pdf
a3d3ff83024d attachments doc + build with docker
amazy
parents: 80
diff changeset
215 $ curl http://localhost:8042/instances/cb855110-5f4da420-ec9dc9cb-2af6a9bb-dcbd180e/attachments/sampleRaw -X PUT -d 'raw data'
a3d3ff83024d attachments doc + build with docker
amazy
parents: 80
diff changeset
216
a3d3ff83024d attachments doc + build with docker
amazy
parents: 80
diff changeset
217
78
d6bd1dd820e5 metadata
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 25
diff changeset
218 .. _registry:
d6bd1dd820e5 metadata
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 25
diff changeset
219
d6bd1dd820e5 metadata
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 25
diff changeset
220 Central registry of metadata and attachments
d6bd1dd820e5 metadata
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 25
diff changeset
221 --------------------------------------------
d6bd1dd820e5 metadata
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 25
diff changeset
222
d6bd1dd820e5 metadata
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 25
diff changeset
223 Obviously, one must pay attention to the fact that different
d6bd1dd820e5 metadata
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 25
diff changeset
224 applications might use the same key to store different user-defined
d6bd1dd820e5 metadata
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 25
diff changeset
225 :ref:`metadata <metadata>`, which might result in incompatibilities
d6bd1dd820e5 metadata
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 25
diff changeset
226 between such applications. Similarly, incompatibilities might show up
d6bd1dd820e5 metadata
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 25
diff changeset
227 for user-defined :ref:`attachments <orthanc-storage>`.
d6bd1dd820e5 metadata
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 25
diff changeset
228
d6bd1dd820e5 metadata
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 25
diff changeset
229 Developers of applications/plugins that use user-defined metadata or
d6bd1dd820e5 metadata
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 25
diff changeset
230 attachments are therefore kindly invited to complete the **central
d6bd1dd820e5 metadata
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 25
diff changeset
231 registry** below:
d6bd1dd820e5 metadata
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 25
diff changeset
232
d6bd1dd820e5 metadata
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 25
diff changeset
233 * ``Metadata 4200`` is used by the plugin for :ref:`whole-slide imaging <wsi>`.
95
065350232191 added reference to attachment ids used by the Osimis Web Viewer
amazy
parents: 92
diff changeset
234 * ``Attachment 9999`` is used by the `Osimis WebViewer plugin <https://bitbucket.org/osimis/osimis-webviewer-plugin>`__ to store annotations.
065350232191 added reference to attachment ids used by the Osimis Web Viewer
amazy
parents: 92
diff changeset
235 * ``Attachments 10000-13999`` are used by the `Osimis WebViewer plugin <https://bitbucket.org/osimis/osimis-webviewer-plugin>`__ to store reduced quality images.