comparison Sphinx/source/dicom-guide.rst @ 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 3ec4d890912e
children 71281b540ca1
comparison
equal deleted inserted replaced
420:8afbe10c03d9 421:e0b4b88446a8
287 1. **Test the connection** between two devices (:ref:`C-Echo 287 1. **Test the connection** between two devices (:ref:`C-Echo
288 <dicom-echo>`). 288 <dicom-echo>`).
289 2. **Send images** from the local imaging device to a remote device 289 2. **Send images** from the local imaging device to a remote device
290 (:ref:`C-Store <dicom-store>`). 290 (:ref:`C-Store <dicom-store>`).
291 3. **Search the content** of a remote device (:ref:`C-Find <dicom-find>`). 291 3. **Search the content** of a remote device (:ref:`C-Find <dicom-find>`).
292 4. **Retrieve images** from a remote device (:ref:`C-Move <dicom-move>`). 292 4. **Retrieve images** from a remote device (:ref:`C-Move
293 <dicom-move>` or :ref:`C-Get <dicom-get>`).
293 294
294 Here is a picture that summarizes some key concepts: 295 Here is a picture that summarizes some key concepts:
295 296
296 .. image:: images/Protocol.svg 297 .. image:: images/Protocol.svg
297 :height: 200px 298 :height: 200px
567 568
568 | 569 |
569 570
570 *Note 1:* Even if C-Move may seem counter-intuitive, this is the most 571 *Note 1:* Even if C-Move may seem counter-intuitive, this is the most
571 popular and widespread way to initiate a query/retrieve against a PACS 572 popular and widespread way to initiate a query/retrieve against a PACS
572 server. The DICOM standard features an `alternative mechanism called 573 server. The DICOM standard features an alternative mechanism called
573 C-Get 574 :ref:`DICOM C-Get <dicom-get>` that has been introduced in Orthanc
574 <http://dclunie.blogspot.be/2016/05/to-c-move-is-human-to-c-get-divine.html>`_ 575 1.7.0 (see below).
575 that has been introduced in Orthanc 1.7.0 (see below).
576
577 576
578 *Note 2:* As :ref:`written above <dicom-pixel-data>`, the Orthanc 577 *Note 2:* As :ref:`written above <dicom-pixel-data>`, the Orthanc
579 engine is quite generic and is compatible with virtually any image 578 engine is quite generic and is compatible with virtually any image
580 compression algorithm (aka. transfer syntax). In particular, during 579 compression algorithm (aka. transfer syntax). In particular, during
581 the :ref:`negotiation of a presentation context 580 the :ref:`negotiation of a presentation context
591 <configuration>` (by default, all the transfer syntaxes are enabled). 590 <configuration>` (by default, all the transfer syntaxes are enabled).
592 591
593 592
594 .. _dicom-get: 593 .. _dicom-get:
595 594
596 C-Get: retrieve 595 C-Get: Retrieve with one single SCP
597 ^^^^^^^^^^^^^^^ 596 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
598 597
599 Once you know that a DICOM resource is available on a particular 598 Orthanc 1.7.0 introduces support for `DICOM C-Get SCP
600 DICOM node, you may retrieve it directly without performing a C-Find 599 <http://dclunie.blogspot.be/2016/05/to-c-move-is-human-to-c-get-divine.html>`__.
601 before. This can be done once you know one ore more of the unique 600 C-Get provides a simpler alternative to C-Move, in the case where the
602 key attributes (``PatientID``, ``StudyInstanceUID``, ``SeriesInstanceUID`` 601 *issuer* and the *target* (as depicted in the section about
603 or ``SOPInstanceUID``). 602 :ref:`C-Move <dicom-move>`) correspond to the same modality.
604 603
605 As of Orthanc 1.7.0, Orthanc implements C-Get as a service provider (SCP) 604 In the case of C-Get, contrarily to C-Move, the *target* modality
606 but not as a service user (SCU). One way to use the C-Get against an 605 doesn't need to act as a C-Store SCP. This has advantage of
607 Orthanc is by using the `DCMTK <https://support.dcmtk.org/docs/dcmconv.html>`__ toolkit:: 606 simplifying the design of the SCU (only one DICOM server is needed in
608 607 the *source* modality), and to ease the network configuration (instead
609 $ getscu -v localhost 4242 -aec ORTHANC -k "0020,000d=1.2...." -k "0008,0052=STUDY" 608 of being bidirectional as in query/retrieve through C-Move, C-Get is
610 609 unidirectional from *issuer* to *source*, which simplifies firewall
611 610 rules). Nevertheless, C-Get is less generic than C-Move and is rarely
611 encountered in clinical PACS workflow. It is more often used by DICOM
612 viewers. Also note that :ref:`DICOMweb WADO-RS <dicomweb>` is designed
613 for the same kind of use cases than C-Get.
614
615 To retrieve DICOM instances using C-Get, you must provide one ore more
616 of the unique key attributes (``PatientID``, ``StudyInstanceUID``,
617 ``SeriesInstanceUID`` or ``SOPInstanceUID``). This information can for
618 instance be retrieved through a :ref:`C-Find request <dicom-find>`.
619
620 .. highlight:: json
621
622 As an example, let us consider the following minimalist :ref:`Orthanc
623 configuration <configuration>`::
624
625 {
626 "DicomModalities" : {
627 "getscu" : [ "GETSCU", "localhost", 2000 ]
628 }
629 }
630
631 .. highlight:: text
632
633 Given this configuration, here is a sample command-line to call the
634 C-Get SCP of Orthanc using the `DCMTK
635 <https://support.dcmtk.org/docs/dcmconv.html>`__ toolkit, given some
636 known ``StudyInstanceUID``::
637
638 $ getscu -v localhost 4242 -aec ORTHANC -k "0008,0052=STUDY" -k "0020,000d=1.2.840.113543.6.6.4.7.64067529866380271256212683512383713111129"
639
640 *Note:* As of Orthanc 1.7.0, Orthanc implements C-Get as a service
641 provider (SCP) but not as a service user (SCU).
612 642
613 643
614 644
615 Using HTTP instead of the DICOM protocol 645 Using HTTP instead of the DICOM protocol
616 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 646 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^