3. Методы для передачи dicom-файлов

# > Общий раздел (Russian/Russia) > 01. REST сервер ( API для Медиалога ) > Документация > 5. Методы / Конечные точки / Endpoint > 3. Методы для передачи dicom-файлов

Описание

3. Методы для передачи dicom-файлов

3.1. create_studies_zip / подготовить файл ZIP с dicom-архивом
3.2. get_studies_zip / получить архив с dicom-файлами

Описание настроек утилит для формирования архива с dicom-файлами

Для создания архива с dicom-файлами используются 2 утилиты:
  1. movescu— находится в папке рядом с REST-сервером
    обязательные файлы - movescu.exe, dcmdata.dll, dcmnet.dll, oflog.dll, ofstd.dll
  2. архиватор, например, 7zip установленный в системе
В REST-сервере реализована возможность получать файлы dicom из разных DICOM-серверов, в зависимости от префикса в AccessNumber.
Настройки хранятся в таблице MSS_WEB_CASH_DICOMSERV_PRM
Редактирование осуществляется через MS SQL Studio
Поля таблицы MSS_WEB_CASH_DICOMSERV_PRM
имя поляописание пример
Label Название настройкиconQuest, Clininet, ZIP
an_prefix префикс в AccessNumberCN в Клининете,
PL в Медиалоге
dir директория для складирования и упаковки dicom файлов.R:\testdir
cmd_command программа копирования или архиватор, путь+имя .\movescu\movescu.exe
C:\Program Files\7-Zip\7z.exe
cmd_prms параметры утилиты 

Пример для копирования

-q -S -k 0008,0050=$AccessNumber$ +xa -od "$dir$" -aet MOVESCU +P 55555 -aec MSSCONQUEST 127.0.0.1 5679
ВНИМАНИЕ: необходимо указывать абсолютный путь до MOVESCU и других утилит.
Например t:\\dicom\movescu

, где
-k 0008,0050 - тэг поиска исследования по AccessNumber
$AccessNumber$ - параметр ID исследования который подставляет rest сервер
$dir$ - директория, в которой создается подпапка с именем ID исследования
MOVESCU - имя клиента которому прописан доступ на dicom сервере
+P 55555 - порт доступа, прописанный для программы
-aec MSSCONQUEST 127.0.0.1 5679 - имя , IP и порт dicom-сервера
-q - запрет вывода во время выполнения
-S - study, use study root information model
+xa - accept-all, accept all supported transfer syntaxes
-od - output-directory [d]irectory: string (default: ".") write received objects to existing directory d


Пример для упаковки/архивации

a -tzip -mx0 "$dir$.zip" "$dir$\"
, где
a - архивировать
-tzip - тип архива zip
-mx3 - степень сжатия 0..9 / 0-без сжатия совсем
-sdel - удалить файлы после упаковки
"$dir$.zip" - путь+имя архива
"$dir$\" - папка для упаковки
$dir$ - подставляемая переменная имя папки из пути + AccessNumber это же имя архива , надо приписать .zip

P.S. Степень сжатия mx3 ужимает 100Мб до 33,5Мб с хорошей скоростью, сжатие mx9 до 30Мб, но неприемлемо долго.

Хранимая функция - mss_rest_check_access_number используется для проверки наличия исследования чтобы не отдавать пустой архив.
При ответе 0 возвращает сообщение об ошибке
"str_done"="Отсутствует исследование с таким номером"

Алгоритм работы

  1. REST-сервер создает задание на упаковку
  2. Определяет по префиксу, какую утилиту и параметры использовать для копирования файлов/
  3. Создает подпапку по имени AccessNumber в указанной папке, например, CN1234
  4. Запускается утилита копирования, она запрашивает на указанном DICOM-сервере файлы и складирует их в подпапку.
  5. Папка архивируется с указанной степенью сжатия в файл с именем, равным имени папки, например, CN1234.zip
  6. Папка с файлами удаляется.
  7. REST-сервер соответствующим запросом отдает файл архива.
Создан: Соловей Евгений 31.01.24 4:44; Изменен: Соловей Евгений 31.01.24 13:53

Поддокументы

Эта страница является подготовленной к печати версией файла "3. Методы для передачи dicom-файлов".
Подготовлено с помощью Project Kaiser - программы для управления проектами и задачами
Пользователь:Guest