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

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>