changeset 421:e0b4b88446a8 c-get

expanded notes about c-get
author Sebastien Jodogne <s.jodogne@gmail.com>
date Wed, 20 May 2020 07:47:19 +0200
parents 8afbe10c03d9
children b8b9b108a697 c7aaee656691
files Sphinx/source/dicom-guide.rst
diffstat 1 files changed, 47 insertions(+), 17 deletions(-) [+]
line wrap: on
line diff
--- a/Sphinx/source/dicom-guide.rst	Wed May 20 07:06:41 2020 +0200
+++ b/Sphinx/source/dicom-guide.rst	Wed May 20 07:47:19 2020 +0200
@@ -289,7 +289,8 @@
 2. **Send images** from the local imaging device to a remote device
    (:ref:`C-Store <dicom-store>`).
 3. **Search the content** of a remote device (:ref:`C-Find <dicom-find>`).
-4. **Retrieve images** from a remote device (:ref:`C-Move <dicom-move>`).
+4. **Retrieve images** from a remote device (:ref:`C-Move
+   <dicom-move>` or :ref:`C-Get <dicom-get>`).
 
 Here is a picture that summarizes some key concepts:
 
@@ -569,11 +570,9 @@
 
 *Note 1:* Even if C-Move may seem counter-intuitive, this is the most
 popular and widespread way to initiate a query/retrieve against a PACS
-server. The DICOM standard features an `alternative mechanism called
-C-Get
-<http://dclunie.blogspot.be/2016/05/to-c-move-is-human-to-c-get-divine.html>`_
-that has been introduced in Orthanc 1.7.0 (see below).
-
+server. The DICOM standard features an alternative mechanism called
+:ref:`DICOM C-Get <dicom-get>` that has been introduced in Orthanc
+1.7.0 (see below).
 
 *Note 2:* As :ref:`written above <dicom-pixel-data>`, the Orthanc
 engine is quite generic and is compatible with virtually any image
@@ -593,22 +592,53 @@
 
 .. _dicom-get:
 
-C-Get: retrieve
-^^^^^^^^^^^^^^^
+C-Get: Retrieve with one single SCP
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Orthanc 1.7.0 introduces support for `DICOM C-Get SCP
+<http://dclunie.blogspot.be/2016/05/to-c-move-is-human-to-c-get-divine.html>`__.
+C-Get provides a simpler alternative to C-Move, in the case where the
+*issuer* and the *target* (as depicted in the section about
+:ref:`C-Move <dicom-move>`) correspond to the same modality.
+
+In the case of C-Get, contrarily to C-Move, the *target* modality
+doesn't need to act as a C-Store SCP. This has advantage of
+simplifying the design of the SCU (only one DICOM server is needed in
+the *source* modality), and to ease the network configuration (instead
+of being bidirectional as in query/retrieve through C-Move, C-Get is
+unidirectional from *issuer* to *source*, which simplifies firewall
+rules). Nevertheless, C-Get is less generic than C-Move and is rarely
+encountered in clinical PACS workflow. It is more often used by DICOM
+viewers. Also note that :ref:`DICOMweb WADO-RS <dicomweb>` is designed
+for the same kind of use cases than C-Get.
 
-Once you know that a DICOM resource is available on a particular
-DICOM node, you may retrieve it directly without performing a C-Find
-before.  This can be done once you know one ore more of the unique
-key attributes (``PatientID``, ``StudyInstanceUID``, ``SeriesInstanceUID``
-or ``SOPInstanceUID``).
+To retrieve DICOM instances using C-Get, you must provide one ore more
+of the unique key attributes (``PatientID``, ``StudyInstanceUID``,
+``SeriesInstanceUID`` or ``SOPInstanceUID``). This information can for
+instance be retrieved through a :ref:`C-Find request <dicom-find>`.
+
+.. highlight:: json
+               
+As an example, let us consider the following minimalist :ref:`Orthanc
+configuration <configuration>`::
 
-As of Orthanc 1.7.0, Orthanc implements C-Get as a service provider (SCP)
-but not as a service user (SCU).  One way to use the C-Get against an 
-Orthanc is by using the `DCMTK <https://support.dcmtk.org/docs/dcmconv.html>`__ toolkit::
+  {
+    "DicomModalities" : {
+      "getscu" : [ "GETSCU", "localhost", 2000 ]
+    }
+  }
 
-    $ getscu -v localhost 4242 -aec ORTHANC -k "0020,000d=1.2...." -k "0008,0052=STUDY"
+.. highlight:: text
+               
+Given this configuration, here is a sample command-line to call the
+C-Get SCP of Orthanc using the `DCMTK
+<https://support.dcmtk.org/docs/dcmconv.html>`__ toolkit, given some
+known ``StudyInstanceUID``::
 
+    $ getscu -v localhost 4242 -aec ORTHANC -k "0008,0052=STUDY" -k "0020,000d=1.2.840.113543.6.6.4.7.64067529866380271256212683512383713111129"
 
+*Note:* As of Orthanc 1.7.0, Orthanc implements C-Get as a service
+provider (SCP) but not as a service user (SCU).