annotate Sphinx/source/plugins/multitenant-dicom.rst @ 948:20a369cc2823

security: non privilege user
author Alain Mazy <am@osimis.io>
date Fri, 02 Jun 2023 15:21:48 +0200
parents 5491953f7492
children 1316bc62b5d5
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
936
5491953f7492 documentation of labels
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
1 .. _multitenant-dicom:
5491953f7492 documentation of labels
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
2
5491953f7492 documentation of labels
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
3
5491953f7492 documentation of labels
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
4 Sample multitenant DICOM server
5491953f7492 documentation of labels
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
5 ===============================
5491953f7492 documentation of labels
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
6
5491953f7492 documentation of labels
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
7 .. contents::
5491953f7492 documentation of labels
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
8
5491953f7492 documentation of labels
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
9 This **official** plugin by the `ICTEAM institute of UCLouvain
5491953f7492 documentation of labels
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
10 <https://uclouvain.be/en/research-institutes/icteam>`__ can be used to
5491953f7492 documentation of labels
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
11 turn Orthanc into a **multitenant DICOM** server using :ref:`labels
5491953f7492 documentation of labels
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
12 <labels>`. More precisely, the same Orthanc database can be accessed
5491953f7492 documentation of labels
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
13 from different DICOM servers, that each provides a different view
5491953f7492 documentation of labels
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
14 depending on the presence of labels. This plugin available is part of
5491953f7492 documentation of labels
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
15 the `official source distribution
5491953f7492 documentation of labels
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
16 <https://hg.orthanc-server.com/orthanc/file/default/OrthancServer/Plugins/Samples/MultitenantDicom>`__
5491953f7492 documentation of labels
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
17 of Orthanc, starting with Orthanc 1.12.0.
5491953f7492 documentation of labels
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
18
5491953f7492 documentation of labels
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
19 This plugin starts additional DICOM servers, in complement to the main
5491953f7492 documentation of labels
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
20 DICOM server of Orthanc that provides full access to the Orthanc
5491953f7492 documentation of labels
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
21 database. These additional DICOM servers support the C-Find, C-Move,
5491953f7492 documentation of labels
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
22 and C-Store commands, and share most of their configuration with the
5491953f7492 documentation of labels
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
23 main DICOM server of Orthanc. They are however distinguished from the
5491953f7492 documentation of labels
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
24 latter by using a **different AET** and a **different TCP
5491953f7492 documentation of labels
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
25 port**. Furthermore, each of those additional DICOM servers are
5491953f7492 documentation of labels
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
26 associated with a **set of labels** that restricts which DICOM
5491953f7492 documentation of labels
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
27 resources stored in Orthanc are accessible through this additional
5491953f7492 documentation of labels
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
28 DICOM server.
5491953f7492 documentation of labels
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
29
5491953f7492 documentation of labels
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
30 .. highlight:: json
5491953f7492 documentation of labels
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
31
5491953f7492 documentation of labels
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
32 Here is a sample :ref:`configuration file <configuration>` to use this
5491953f7492 documentation of labels
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
33 plugin::
5491953f7492 documentation of labels
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
34
5491953f7492 documentation of labels
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
35 {
5491953f7492 documentation of labels
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
36 "Plugins" : [ "." ],
5491953f7492 documentation of labels
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
37 "DicomModalities" : {
5491953f7492 documentation of labels
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
38 "sample" : [ "STORESCP", "127.0.0.1", 2000 ]
5491953f7492 documentation of labels
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
39 },
5491953f7492 documentation of labels
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
40 "MultitenantDicom" : {
5491953f7492 documentation of labels
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
41 "Servers" : [
5491953f7492 documentation of labels
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
42 {
5491953f7492 documentation of labels
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
43 "AET" : "HELLO",
5491953f7492 documentation of labels
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
44 "Port" : 4343,
5491953f7492 documentation of labels
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
45 "Labels" : [ "hello" ],
5491953f7492 documentation of labels
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
46 "LabelsConstraint" : "All",
5491953f7492 documentation of labels
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
47 "LabelsStoreLevels" : [ "Patient", "Study", "Series", "Instance" ]
5491953f7492 documentation of labels
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
48 }
5491953f7492 documentation of labels
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
49 ]
5491953f7492 documentation of labels
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
50 }
5491953f7492 documentation of labels
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
51 }
5491953f7492 documentation of labels
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
52
5491953f7492 documentation of labels
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
53 This configuration will start an additional DICOM server with AET
5491953f7492 documentation of labels
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
54 ``HELLO`` listening on the 4343 port. This DICOM server will work as
5491953f7492 documentation of labels
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
55 follows:
5491953f7492 documentation of labels
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
56
5491953f7492 documentation of labels
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
57 * DICOM C-Find and C-Move requests are restricted to the DICOM
5491953f7492 documentation of labels
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
58 resources that are assigned with the ``hello`` label.
5491953f7492 documentation of labels
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
59
5491953f7492 documentation of labels
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
60 * Note that the labels are checked by query/retrieve level: For
5491953f7492 documentation of labels
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
61 instance, if ``QueryRetrieveLevel (0008, 0052)`` equals ``STUDY``,
5491953f7492 documentation of labels
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
62 the plugin will only report the studies that are associated with
5491953f7492 documentation of labels
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
63 the ``hello`` label.
5491953f7492 documentation of labels
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
64
5491953f7492 documentation of labels
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
65 * The ``LabelsConstraint`` specifies the type of constraint on the
5491953f7492 documentation of labels
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
66 labels. Its value can be ``All`` (default), ``Any``, or ``None``,
5491953f7492 documentation of labels
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
67 which corresponds to the values accepted by the ``/tools/find``
5491953f7492 documentation of labels
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
68 :ref:`route in the REST API <labels>` of Orthanc. Note that in the
5491953f7492 documentation of labels
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
69 sample configuration above, because there is only one label in the
5491953f7492 documentation of labels
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
70 ``Labels`` field, both ``Any`` and ``All`` have the same behavior.
5491953f7492 documentation of labels
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
71
5491953f7492 documentation of labels
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
72 * Any DICOM resource that is received through DICOM C-Store requests
5491953f7492 documentation of labels
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
73 issued to this additional DICOM server, is automatically associated
5491953f7492 documentation of labels
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
74 with all the labels provided in the ``Labels`` field. The
5491953f7492 documentation of labels
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
75 configuration option ``LabelsStoreLevels`` can be used to restrict
5491953f7492 documentation of labels
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
76 the levels to which the labels are applied (it defaults to the three
5491953f7492 documentation of labels
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
77 study, series, and instances levels).