Инобитек 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) и, загрузив файлы исследования, открывает первую серию исследования в окне просмотра плоских изображений;

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

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

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

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

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

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

  • AccessionNumber — регистрационный номер исследования, которое следует открыть;

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

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

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

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

Значения параметров StudyInstanceUID и AccessionNumber, указанные в xml-файле, должны принадлежать одному исследованию. Если значения параметров 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 в папке «demo»:

  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».

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

20.3.2 Команда «DisplayStudy»

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

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

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

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

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

  • PatientID — ID пациента, исследование которого следует открыть;

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

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

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

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

    • PatientID — ID пациента, исследование которого следует открыть;

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

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

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

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

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

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

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

«downloadAndOpenStudy.xml»

<?xml version="1.0" encoding="utf-8"?>
<methodCall>
  <methodName>DownloadAndOpenStudy</methodName>
  <params>
    <param>
      <value>
        <struct>
          <member>
            <name>PatientID</name>
            <value>
              <string>9Htqj5c</string>
            </value>
          </member>
          <member>
            <name>StudyInstanceUID</name>
              <value>
                <string>1.2.840.113704.1.111.5600.1107858801.1</string>
              </value>
          </member>
          <member>
            <name>AccessionNumber</name>
              <value>
                <string>value</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>

«displayStudy.xml»

<?xml version="1.0" encoding="utf-8"?>
<methodCall>
  <methodName>DisplayStudy</methodName>
  <params>
    <param>
      <value>
        <struct>
          <member>
            <name>PatientID</name>
            <value>
              <string>9Htqj5c</string>
            </value>
          </member>
          <member>
            <name>StudyInstanceUID</name>
              <value>
                <string>1.2.840.113704.1.111.5600.1107858801.1</string>
              </value>
          </member>
        </struct>
      </value>
    </param>
  </params>
</methodCall>