Инобитек DICOM-Просмотрщик

20.3. HTTP RPC-сервис удалённого вызова процедур

20.3 HTTP RPC-сервис удалённого вызова процедур

В DICOM-Просмотрщике есть HTTP RPC-сервис, через который можно выполнять команды. Сейчас поддерживаются две команды:

  • DownloadAndOpenStudy;

  • DisplayStudy.

20.3.1 Команда «DownloadAndOpenStudy»

DownloadAndOpenStudy — команда загрузки исследования с DICOM-сервера (PACS) в локальное хранилище с последующим открытием исследования. При получении этой команды DICOM-Просмотрщик выполняет поиск исследования в локальном хранилище. Если искомое исследование есть в локальном хранилище, то DICOM-Просмотрщик открывает его первую серию в окне просмотра плоских изображений. Если искомое исследование в локальном хранилище отсутствует, то DICOM-Просмотрщик отправляет запрос на DICOM-сервер (PACS) и, загрузив файлы исследования, открывает первую серию исследования в окне просмотра плоских изображений.

Образцы конфигурационных файлов и тестовые страницы HTTP RPC-сервиса доступны в архиве «HTTP_RPC_test_pages» на странице по ссылке: https://inobitec.ru/downloads/dicomviewer/.

Для выполнения команды DownloadAndOpenStudy с использованием методов C-GET или C-MOVE выполните:

  1. Включите в DICOM-Просмотрщике DICOM и HIS/HTTP-сервисы, выбрав пункт «Сервисы» в меню «Сеть» (подробнее см. в разделах 13.1.1 и 13.1.2).

  2. Подайте HTTP RPC-запрос на открытие исследования путем отправки POST-запроса, содержащего xml указанного формата (образец файла downloadAndOpenStudy.xml доступен в папке «HTTP_RPC_test_pages»).

В файле downloadAndOpenStudy.xml указываются следующие параметры:

  • PatientID (необязательный параметр) — ID пациента, исследование которого следует открыть;

  • StudyInstanceUID=<StudyInstanceUID 1>\…\<StudyInstanceUID N> — список UID исследований, которые следует открыть. Параметр является обязательным, если отсутствует параметр AccessionNumber;

  • AccessionNumber=<AccessionNumber 1>\…\<AccessionNumber N> — список регистрационных номеров исследований, которые следует открыть. Параметр является обязательным, если отсутствует параметр StudyInstanceUID;

  • AET — AE Title PACS-сервера;

  • IP — сетевой адрес PACS-сервера;

  • port — DICOM порт PACS-сервера;

  • CommandType — способ загрузки изображений с PACS-сервера в DICOM-Просмотрщик. Может принимать значения «C-GET» (по умолчанию), «C-MOVE» или «WADO-RS». При использовании «C-MOVE» PACS-сервер должен быть настроен соответствующим образом.

Если «DICOM-сервис приёма файлов...» (см. раздел 13.1.1) выключен, то скачивание данных с PACS-сервера возможно только по C-GET. В этом случае на PACS-сервер по умолчанию передаётся значение параметра SCU «CLIENT».

Примеры конфигурационных файлов HTTP RPC-сервиса приведены в разделе 20.3.3.

Для выполнения команды DownloadAndOpenStudy с использованием Web-сервиса WADO выполните:

  1. Включите в DICOM-Просмотрщике HIS/HTTP-сервис, выбрав пункт «Сервисы» в меню «Сеть» (подробнее см. в разделе 13.1.2).

  2. Подайте HTTP RPC-запрос на открытие исследования путем отправки POST-запроса, содержащего xml указанного формата (образец файла downloadAndOpenStudy.xml доступен в папке «HTTP_RPC_test_pages»).

В файле downloadAndOpenStudy.xml дополнительно указываются следующие параметры:

  • WadoServiceRootPath — путь к внутреннему сервису PACS-сервера, обрабатывающему запросы WADO-RS;

  • IsWadoSecured — включение/выключение протокола https для обмена данными с PACS-сервером при скачивании данных с использованием сервиса WADO. Если значение параметра true, то для обмена данными с PACS-сервером используется https-протокол, если false — http-протокол;

  • WadoPort — значение http- или https-порта (в зависимости от значения параметра IsWadoSecured);

  • WadoAuthLogin — логин для подключения к PACS-серверу;

  • WadoAuthPassword — пароль для подключения к PACS-серверу/

Для выполнения команды DownloadAndOpenStudy с использованием Web-сервиса WADO параметр CommandType должен иметь значение «WADO-RS».

Примеры конфигурационных файлов HTTP RPC-сервиса приведены в разделе 20.3.3.

Передача списка UID исследований, которые следует загрузить, осуществляется в рамках значения параметра StudyInstanceUID HTTP RPC-запроса. Передача списка регистрационных номеров исследований осуществляется в рамках значения параметра AccessionNumber HTTP RPC-запроса. В обоих случаях передача списков параметров осуществляется аналогично передаче списков параметров в командной строке (см. раздел 20.1).

Значения параметров StudyInstanceUID и AccessionNumber, указанные в xml-файле, должны принадлежать одному исследованию. Если значения параметров StudyInstanceUID и AccessionNumber не соответствуют одному исследованию, загрузка исследования будет невозможна.

Список значений параметров StudyInstanceUID и AccessionNumber составляются следующим образом: первому значению параметра StudyInstanceUID должно соответствовать первое значение параметра AccessionNumber, второму значению параметра StudyInstanceUID — второе значение параметра AccessionNumber и т.д.

Возможен поиск и загрузка исследования только по значению параметра AccessionNumber. Для этого в файле downloadAndOpenStudy.xml удалите значение параметров PatientID и StudyInstanceUID, оставив только значение параметров AccessionNumber и PACS-Сервера (AET, IP и port).

Если значения параметров AET, IP и port не заданы, то исследование загружается с DICOM-Сервера (PACS) установленного по умолчанию. Если заданы значения 1 или 2 параметров из 3-х указанных (AET, IP и port), то команда считается некорректной.

Также можно воспользоваться тестовой страницей testpage.html в папке «HTTP_RPC_test_pages»:

  1. Включите в DICOM-Просмотрщике DICOM и HIS/HTTP-сервисы, выбрав пункт «Сервисы» в меню «Сеть» (подробнее см. в разделах 13.1.1 и 13.1.2).

  2. Откройте страницу testpage.html.

  3. Заполните следующие поля:

    • AET — AE Title PACS-сервера;

    • IP — сетевой адрес PACS-сервера;

    • Port — DICOM-порт PACS-сервера;

    • StudyUID — UID исследования, которое следует открыть;

    • Destination IP — сетевой адрес DICOM-Просмотрщика;

    • Destination port — HTTP-порт DICOM-Просмотрщика.

  4. Нажмите на кнопку «Send command».

20.3.2 Команда «DisplayStudy»

DisplayStudy — команда открытия исследования из локального хранилища. При получении этой команды DICOM-Просмотрщик выполняет поиск исследования в локальном хранилище. Если искомое исследование есть в локальном хранилище, то DICOM-Просмотрщик открывает его первую серию в окне просмотра плоских изображений. На момент получения этой команды файлы исследования уже должны быть сохранены в локальном хранилище.

Образцы конфигурационных файлов и тестовые страницы HTTP RPC-сервиса доступны в архиве «HTTP_RPC_test_pages» на странице по ссылке: https://inobitec.ru/downloads/dicomviewer/.

Для выполнения команды DisplayStudy следует:

  1. Включите в DICOM-Просмотрщике DICOM и HIS/HTTP-сервисы, выбрав пункт «Сервисы» в меню «Сеть» (подробнее см. в разделах 13.1.1 и 13.1.2).

  2. Подайте HTTP RPC-запрос на открытие исследования путем отправки POST-запроса, содержащего xml указанного формата (файл displayStudy.xml в папке «HTTP_RPC_test_pages»).

В файле displayStudy.xml указываются следующие параметры:

  • PatientID (необязательный параметр) — ID пациента, исследование которого следует открыть;

  • StudyInstanceUID=<StudyInstanceUID 1>\…\<StudyInstanceUID N> — список UID исследований, которые следует открыть.

Также можно воспользоваться тестовым скриптом display.bat в папке «HTTP_RPC_test_pages»:

  1. Включите в DICOM-Просмотрщике DICOM и HIS/HTTP-сервисы, выбрав пункт «Сервисы» в меню «Сеть» (подробнее см. в разделах 13.1.1 и 13.1.2).

  2. Отредактируйте файл displayStudy.xml:

    • PatientID (необязательный параметр) — ID пациента, исследование которого следует открыть;

    • StudyInstanceUID=<StudyInstanceUID 1>\…\<StudyInstanceUID N> — список UID исследований, которые следует открыть.

  3. В командной строке выполните скрипт со следующими параметрами:
    display.bat [ip] [port]
    где:

    • ip — сетевой адрес DICOM-Просмотрщика;

    • port — HTTP-порт DICOM-Просмотрщика.

Примеры конфигурационных файлов HTTP RPC-сервиса приведены в разделе 20.3.3.

Передача списка UID исследований, которые следует загрузить, осуществляется в рамках значения параметра StudyInstanceUID HTTP RPC-запроса. Передача списка параметров осуществляется аналогично передаче списка параметров в командной строке (см. раздел 20.1).

20.3.3 Конфигурационные файлы HTTP RPC-сервиса

Ниже приведены примеры конфигурационных файлов HTTP RPC-сервиса удалённого вызова процедур.

«downloadAndOpenStudy.xml» для метода C-MOVE

<?xml version="1.0" encoding="utf-8"?>
<methodCall>
  <methodName>DownloadAndOpenStudy</methodName>
  <params>
    <param>
      <value>
        <struct>
          <member>
            <name>PatientID</name>
            <value>
              <string>
              8211038be1bebb57fb131414a04818f4f5c8f25f4a02cccec2b0cc20
              \...\8211038be1bebb57fb131414a04818f4f5c8f25f4a02cccec2b0cc21
              </string>
            </value>
          </member>
          <member>
            <name>StudyInstanceUID</name>
              <value>
                <string>
                1.2.276.0.7230010.3.1.2.1658924591.30288.1727881038.636
                \...\1.2.276.0.7230010.3.1.2.1658924591.30288.1727881038.637
                </string>
              </value>
          </member>
          <member>
            <name>AET</name>
              <value>
                <string>PACS_Inobitec</string>
              </value>
          </member>
          <member>
            <name>IP</name>
              <value>
                <string>192.168.0.235</string>
              </value>
          </member>
          <member>
            <name>port</name>
              <value>
                <string>3000</string>
              </value>
          </member>
          <member>
                                                                                            
                                                                                            
            <name>CommandType</name>
              <value>
                <string>C-MOVE</string>
              </value>
          </member>
        </struct>
      </value>
    </param>
  </params>
</methodCall>

«downloadAndOpenStudy.xml» с использованием Web-сервиса WADO

<?xml version="1.0" encoding="utf-8"?>
<methodCall>
  <methodName>DownloadAndOpenStudy</methodName>
  <params>
    <param>
      <value>
        <struct>
          <member>
            <name>PatientID</name>
            <value>
              <string>
              8211038be1bebb57fb131414a04818f4f5c8f25f4a02cccec2b0cc20
              \...\8211038be1bebb57fb131414a04818f4f5c8f25f4a02cccec2b0cc21
              </string>
            </value>
          </member>
          <member>
            <name>StudyInstanceUID</name>
              <value>
                <string>
                1.2.276.0.7230010.3.1.2.1658924591.30288.1727881038.636
                \...\1.2.276.0.7230010.3.1.2.1658924591.30288.1727881038.637
                </string>
              </value>
          </member>
          <member>
            <name>AET</name>
              <value>
                <string>PACS_Inobitec</string>
              </value>
          </member>
          <member>
            <name>IP</name>
              <value>
                <string>192.168.0.235</string>
              </value>
          </member>
          <member>
            <name>port</name>
              <value>
                <string>3000</string>
              </value>
          </member>
          <member>
                                                                                            
                                                                                            
            <name>WadoServiceRootPath</name>
              <value>
                <string>path/to/service</string>
              </value>
          </member>
          <member>
            <name>IsWadoSecured</name>
              <value>
                <string>false</string>
              </value>
          </member>
          <member>
            <name>WadoPort</name>
              <value>
                <string>8010</string>
              </value>
          </member>
          <member>
            <name>WadoAuthLogin</name>
              <value>
                <string></string>
              </value>
          </member>
          <member>
            <name>WadoAuthPassword</name>
              <value>
                <string></string>
              </value>
          </member>
          <member>
            <name>CommandType</name>
              <value>
                <string>WADO-RS</string>
              </value>
          </member>
        </struct>
      </value>
    </param>
  </params>
</methodCall>

«displayStudy.xml»

<?xml version="1.0" encoding="utf-8"?>
<methodCall>
  <methodName>DisplayStudy</methodName>
  <params>
    <param>
      <value>
        <struct>
          <member>
            <name>PatientID</name>
            <value>
              <string>
              8211038be1bebb57fb131414a04818f4f5c8f25f4a02cccec2b0cc20
              \...\8211038be1bebb57fb131414a04818f4f5c8f25f4a02cccec2b0cc21
              </string>
            </value>
          </member>
          <member>
            <name>StudyInstanceUID</name>
              <value>
                <string>
                1.2.276.0.7230010.3.1.2.1658924591.30288.1727881038.636
                \...\1.2.276.0.7230010.3.1.2.1658924591.30288.1727881038.637
                </string>
              </value>
          </member>
        </struct>
      </value>
    </param>
  </params>
</methodCall>