Mercurial > hg > orthanc-book
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 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ |