comparison Sphinx/source/dicom-guide.rst @ 430:c3e73c00ef48

adding explanations about C-Get from Varian
author Sebastien Jodogne <s.jodogne@gmail.com>
date Fri, 22 May 2020 16:38:31 +0200
parents 71281b540ca1
children c2ae93c562d2
comparison
equal deleted inserted replaced
429:c95817c254fe 430:c3e73c00ef48
597 .. _dicom-get: 597 .. _dicom-get:
598 598
599 C-Get: Retrieve with one single SCP 599 C-Get: Retrieve with one single SCP
600 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 600 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
601 601
602 Orthanc 1.7.0 introduces support for `DICOM C-Get SCP 602 Orthanc 1.7.0 introduces support for DICOM C-Get SCP. DICOM C-Get
603 provides a simpler alternative to DICOM C-Move, if the *issuer* and
604 the *target* (as depicted in the section about :ref:`C-Move
605 <dicom-move>`) correspond to the same modality:
606
607 .. image:: images/CGet.svg
608 :align: center
609 :width: 500px
610
611 In the case of C-Get, contrarily to C-Move, the *target* modality
612 doesn't need to act as a C-Store SCP: The requested data is sent
613 directly back to the client over the same DICOM association the C-Get
614 request is made on. Therefore C-Get request does not depend on
615 separate associations being established to move DICOM from a remove
616 source to a remove target. Instead C-Get "turns around" the same
617 connection on which the request is made, and re-uses the connection to
618 receive the inbound C-Store operation.
619
620 This has advantage of simplifying the design of the SCU (only one
621 DICOM server is needed in the *source* modality), and to ease the
622 network configuration (instead of being bidirectional as in
623 query/retrieve through C-Move, C-Get is unidirectional from *issuer*
624 to *source*, which simplifies firewall rules). Nevertheless, C-Get is
625 less generic than C-Move and less often encountered in clinical PACS
626 workflow. It is more often used by DICOM viewers. Also note that
627 :ref:`DICOMweb WADO-RS <dicomweb>` is designed for the same kind of
628 use cases than C-Get.
629
630 For a complete description of the C-Get DICOM Request and a review of
631 the advantages of C-Get over C-Move, have a look at `David Clunie's
632 dedicated blog post
603 <http://dclunie.blogspot.be/2016/05/to-c-move-is-human-to-c-get-divine.html>`__. 633 <http://dclunie.blogspot.be/2016/05/to-c-move-is-human-to-c-get-divine.html>`__.
604 C-Get provides a simpler alternative to C-Move, in the case where the
605 *issuer* and the *target* (as depicted in the section about
606 :ref:`C-Move <dicom-move>`) correspond to the same modality.
607
608 In the case of C-Get, contrarily to C-Move, the *target* modality
609 doesn't need to act as a C-Store SCP. This has advantage of
610 simplifying the design of the SCU (only one DICOM server is needed in
611 the *source* modality), and to ease the network configuration (instead
612 of being bidirectional as in query/retrieve through C-Move, C-Get is
613 unidirectional from *issuer* to *source*, which simplifies firewall
614 rules). Nevertheless, C-Get is less generic than C-Move and is rarely
615 encountered in clinical PACS workflow. It is more often used by DICOM
616 viewers. Also note that :ref:`DICOMweb WADO-RS <dicomweb>` is designed
617 for the same kind of use cases than C-Get.
618
619 To retrieve DICOM instances using C-Get, you must provide one ore more
620 of the unique key attributes (``PatientID``, ``StudyInstanceUID``,
621 ``SeriesInstanceUID`` or ``SOPInstanceUID``). This information can for
622 instance be retrieved through a :ref:`C-Find request <dicom-find>`.
623 634
624 .. highlight:: json 635 .. highlight:: json
625 636
626 As an example, let us consider the following minimalist :ref:`Orthanc 637 In practice, to retrieve DICOM instances using C-Get, you must provide
627 configuration <configuration>`:: 638 one ore more of the unique key attributes (``PatientID``,
639 ``StudyInstanceUID``, ``SeriesInstanceUID`` or
640 ``SOPInstanceUID``). This information can for instance be retrieved
641 through a :ref:`C-Find request <dicom-find>`. As an example, let us
642 consider the following minimalist :ref:`Orthanc configuration
643 <configuration>`::
628 644
629 { 645 {
630 "DicomModalities" : { 646 "DicomModalities" : {
631 "getscu" : [ "GETSCU", "localhost", 2000 ] 647 "getscu" : [ "GETSCU", "localhost", 2000 ]
632 } 648 }
640 known ``StudyInstanceUID``:: 656 known ``StudyInstanceUID``::
641 657
642 $ getscu -v localhost 4242 -aec ORTHANC -k "0008,0052=STUDY" -k "0020,000d=1.2.840.113543.6.6.4.7.64067529866380271256212683512383713111129" 658 $ getscu -v localhost 4242 -aec ORTHANC -k "0008,0052=STUDY" -k "0020,000d=1.2.840.113543.6.6.4.7.64067529866380271256212683512383713111129"
643 659
644 *Note:* As of Orthanc 1.7.0, Orthanc implements C-Get as a service 660 *Note:* As of Orthanc 1.7.0, Orthanc implements C-Get as a service
645 provider (SCP) but not as a service user (SCU). 661 class provider (SCP). Using C-Get as a service class user (SCU) is not
662 currently supported in Orthanc.
646 663
647 664
648 665
649 Using HTTP instead of the DICOM protocol 666 Using HTTP instead of the DICOM protocol
650 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 667 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^