Conquest dicom server настройка windows

Обновлено: 04.07.2024

Сервер умеет хранить индексную информацию в базах данных PostgreSQL, mysql и sqlite. Файлы исследований во всех случаях хранятся в файловой системе. Для случая PostgreSQL и mysql, сервер подключается к внешним базам данных, указанным в конфиге. Для случая sqlite эта мини-субд вкомпилируется напрямую в сервер.

Справедливости ради, надо заметить, что мне не удалось собрать Conquest с sqlite, и я не пробовал устанавливать его с Postgresql, поэтому речь пойдет о сборе с использованием mysql.

Ставим пакет libmysqlclient-dev с заголовочными файлами библиотеки для соединения с mysql

В дистрибутиве Conquest не используется ни одна система сборки. Для сборки используется руками написанный .sh файл. Всего там четыре сборочных .sh файла, собирающие и устанавливающие Conqest с поддержкой заданной базы данных. Нас интересует файл maklinux_mysql

Создаем директории /usr/lib/cgi-bin и /var/www, поскольку maklinux_mysql сам их создавать не умеет. Если есть желание использовать другие пути, следует отредактировать maklinux_mysql. (Так же отмечу, что все помещаемое в /var/www для нас бессмысленно, так как туда кладется какой-то ocx для MS IE который нам бесполезен, так что строчки относящиеся /var/www можно просто закомментировать)

Запускаем maklinux_mysql с правами root’а

Создаем в mysql базу данных с именем conquest и пользотвателя для работы с ней

Редактируем файл конфигурации /usr/lib/cgi-bin/dicom.ini Добавляем туда имя имя пользователя базы данных (поле Username) пароль этого пользователя (поле Password), и имя самой базы данных (поле SQLServer)

Создаем папку для хранения данных сервера, по умолчанию предполагается что это /.data

Прописываем файл конфигурации /usr/lib/cgi-bin/dicom.ini путь к созданной директории в поле MAGDevice0 (в самом низу). ВНИМАНИЕ: следите за тем чтобы в конце строк в файле конфигурации не стояло пробелов, Conquest к этому чувствителен, и сочтет что пробел – часть пути

Скопировать директорию samples из которая живет в директории data дистрибутива, в созданную директорию для хранения данных

Создать структуру базы данных запустив программу dgate с ключом -r (запускать следует находясь строго в /usr/lib/cgi-bin/ иначе оно не найдет файлы конфигурации прописанные в конфиге без полного пути)

Проверить что в базе данных появились таблицы

Редактировать /usr/lib/cgi-bin/acrnema.map добавть туда IP адреса, DICOM имена и порты клиентов которые будут подсоединяться к серверу.

Следует помнить, что клиент – понятие условное, оба и клиент и сервер являются по сути серверами и должны видеть дург-друга и уметь открвывать tcp соединение со своей стороны. Поэтому ни один из узлов не должен быть спрятан за NAT’ом…

  1. Запустить dgate с ключем -b - запуск сервера в рабочее состояние в режиме отладки. (После того как работоспособность сервера будет подтверждена, -b можно будет убрать.

Чем тестировать:

K-PACS

Настройка подключения к серверу происходит по нажатию на кнопку с тремя компьютерами. Если конквест был поставлен с настройками по умолчанию, должны быть примерно такими:

Экран настройки серверного подключения K-PACS

Если же нажать на кнопку с папкой сервером и еще какой-то хренью, то попадаешь в окно настроек локального сервера:

Экран настройки локальных свойств K-PACS

Данные из полей K-PACS Server Application Entry Title и Server Port следует добавить в /usr/lib/cgi-bin/acrnema.map вместе с IPшником той машины на которой этот K-PAСS запускается. Примерно вот так:

Далее, при выборе вкладки database показывают список локальных картинок. При выборе вкладки network - сетевых. Но чтобы хоть что-то показали надо нажать кнопку Search. И вспомнить поставить галочку рядом с одним из серверов в списке вкладки.

Левые кнопки работают только если рядом с какой-то записью поставить галочку. От кнопки transfer выпадает список внешних серверов на которые можно изображение передать.

За счет кнопки import можно создавать новые картинки из обычных jpeg’ов.

Настроить MITO следует через меню Pacs/Preferences

Во вкладе Network:

Скриншот вкладки Network

Server Node: IP адрес Conquesta Server Port: Порт к которому прибинден Conquest (по умолчанию 5678) Called AP Title: Имя сервера (в нашем случае, если эта настройка конквеста не менялись, CONQUEST1) Calling AP Title: Имя клиента. Например MITO_CLIENT Storage AP Title: Не совсем понял, но работает если совпадает с именем клиента, то есть MITO_CLIENT

Во второй вкладке, Transfer/Reseive:

Скриншот вкладки Transfer/Reseive

Storage Server Port: порт по которому локальный сервер MITO будет принимать информацию, например 1234 Receive/Local Files Directory: Папка в которой MITO будет хранить локальную информацию…

На сервере, в файле /usr/lib/cgi-bin/acrnema.map следует правильно прописать данные MITO, его IP, имя, и порт. Что-то вроде этого:

Для проверки работоспособности жмем Query в панеле инструментов, В появившемся окне снова кнопку Query, выбераем HEAD EXP2 и жмем кнопку Download. снимок головы неизвестного героя должен загрузиться в локальный сервер MITO.

Хотим сделать в больнице сеть для обмена DICOM данными между врачами-клиницистами (ПК на базе Windows), сервером для хранения данных (возможны варианты) и ПК врачей-рентгенологов (преимущественно на MacOS с программой OSIRIX).

Прошу у Вас совета по следующим вопросам:

1) можете ли Вы порекомендовать софт для консолей врачей НЕ рентгенологов чтобы они могли работать в DICOM - пространстве (выполнять запросы по поиску пациентов на DICOM-хранилище и скачивать с него выбранные исследования) - требования: бесплатная или очень дешевая, совместима с Windows, простая в освоении;

2) можете ли Вы порекомендовать софт для компьютера использующегося в роли DICOM - хранилища (под Linux или Windows) - чтобы он получал все DICOM данные в режиме listener, обрабатывал запросы с рандомных компьютеров в сети.

Все эти танцы с бубнами нет от лучшей жизни. Денег в больнице нет, а работать по человечески хочется. И самое главное, есть понимание главного врача о необходимости такой сети.

Пока предварительно решили что сервер будет в форм-факторе NAS с 16 Tb хранилищем.

Список основных и наиболее известных бесплатных PACS / DICOM серверов:

— Dcm4che
— Conquest DICOM software
— ClearCanvas
— DICoogle
— CDMEDIC PACS WEB
— Orthanc

Из Google поиска

Список основных и наиболее известных бесплатных PACS / DICOM серверов:

— Dcm4che
— Conquest DICOM software
— ClearCanvas
— DICoogle
— CDMEDIC PACS WEB
— Orthanc

Благодарю, это все тоже нашел. Насколько я понимаю, Вы этот софт не используете.. а мне бы надо реальные отзывы.

доброе) у нас на больницу и клиницистам и рентгенологам стоит CLearCanvas - ничего особенного про него не скажу. Клиницисты вроде не жалуются на него, да и мы тоже; хотя выбора особа и нет) Поиск по ФИО, дате, и еще чемуто. Вот так както)

что выбрали в итоге ?

добрый день всем. Раз уж тут про PACS надеюсь сможете чем нибудь помочь. есть томограф и рабочая станция. на станции хранятся все пациенты и периодически мы их писали на диски (архив) и освобождали место под новых. Вскоре упросили начальство купить комп с большими винчестерами. также попросили приезжего инженера установить efilm. все прекрасно работало и снимки отправлялись в хранилище до одного прекрасного дня. теперь файлы со станции (plaza) не отправляются на efilm или отсылается какой то один и система пишет "передано с ошибкой" может быть кто знает где надо порыться?

(пинг от компа к компу по сетке идет. Efilm видит рабочую станцию и пациентов на ней, но принимать файлы отказывается.)

Проверьте IP компа с efilm, Совпадает ли AE title efilm, его порт с прописанным на станции. Если что-то из этого изменилось - программа не сможет послать дайкомы в базу efilm.

Данная настройка проверена на аппарате МРТ General Electrics с pacs сервером Conquest.
Для работы аппарата МРТ через worklist необходимо в его настройках прописать AETitle, IP адрес и порт pacs сервера.
Worklist содержит в себе информацию о будущем исследовании. Этот лист фактически является направлением на исследование на конкретный аппарат с описанием необходимых процедур, временем, информацией о пациенте и т.п.
Настроенный аппарат МРТ в ручном или автоматическом режиме может запрашивать с пакс сервера листы с заданием (worklist) и вносить информацию из них в форму МРТ аппарата, в которой настраиваются параметры исследования, тем самым облегчая работу специалиста.
Ниже представлен скриншот панели специалиста МРТ с внесенными значениями из worklist


панель оператора МРТ с внесенными значениями из worklist

Структура вокрлиста представлена на скриншоте ниже. Желтым помечены обязательные теги, без которых worklist виден в модальности не будет!


При настройке аппарата (модальности) на worklist необходимо просматривать лог аппарата, в него записываются ошибки подключения. Особое внимание нужно обратить именно на теги (например: 0010,0020), т.к. названия колонок могут отличаться, а теги - это стандарт!

Теги WorkList'а

Обязательные теги

0010,0020 - PATIENT ID. Обязательный! Ид пациента, может выбираться произвольно.
0020,000D - Study Instance UID. Обязательный! Ид исследования. Значение вводится в формате 1.2.3.4.5.6.7.8.9.100. Данный параметр необходимо генерировать каким-либо образом. Существуют готовые программы. К серверу conquest прилагается файл dgate.exe. Если вызвать его из консоли с параметром dgate --genuid в ответ в консоль выведется сгенерированный uid. Данный тег должен быть уникальным. Он формируется из двух частей. В первой части зашифрован идентификатор учреждения. Он должен быть уникален глобально(по всему миру). Вторая часть содержит информацию об исследовании, пациенте или снимке и должна быть уникальной внутри данного учреждения.
Ссылка на первоисточник : Описание правила формирования UID
0040,0009 - Sheduled Procedure ID. Обязательно! Заполняется произвольно. У меня работало и с числовыми и с буквенными значениями. Ниже скриншот на котором показано, как это поле отображается в панели специалиста по МРТ

WP 20161012 16 32 31 Pro.jpg

0008,0060 - Тип модальности. Необходимо использовать общепринятые сокращения CT, MR, NM, US и т.п. Это поле хоть и не указано как обязательное и ворклист будет виден , но без него аппарат не сможет сделать исследование!
0040,1001 - Requested Procedure ID. Обязательно! ИД запрошенных процедур. Я заполнял процедуры перечислением цифр, например 1234. Их значение необходимо выяснять у специалистов по аппарату.

Опциональные теги, все зависит от настроек конкретного аппарата.

На скриншоте ниже отмечены поля, необходимые для работы с МИС.

Screenshot 1.jpg

0008,0050 - Автоинкремент.
0010,0010 - Имя пациента, необходимо произвести транслитерацию, т.к. модальности не читают русские символы.
0010,0030 - День рождения. Из него в модальности вычисляется возраст. Формат ггггммдд.
0010,0040 - Пол. M(male/мужчина) or F(female/женщина).
0008,0060 - Тип модальности. Необходимо использовать общепринятые сокращения CT, MR, NM, US и т.п.
0040,0001 - это AETitle модальности. Лучше указывать конкретный аппарат, но все зависит от настроек самой модальности.
0040,0002 - Дата исследования. ггггммдд.
0040,0003 - Время исследования. ччммсс.
0040,1003 - Приоритет операции. 0-низкий 1-высокий. Это поле скорее информативного характера(для экстренников).

Остальные теги

0010,2000 - Противопоказания. Произвольный формат.
0010,2110 - Аллергии на контрастные вещества. Произвольный формат.
0032,1032 - Направивший врач. Произвольный формат.
0032,1060 - Описание процедуры. Произвольный формат.
0032,1070 - Контрастное вещество. Произвольный формат.
0040,0006 - Исполнитель. Произвольный формат.
0040,0007 - Описание шагов процедуры. Произвольный формат.
0040,0010 - Имя станции. Произвольный формат.
0040,0011 - Расположение станции. Произвольный формат.
0040,0012 - Предварительная медикаментозная подготовка.Произвольный формат.
0040,0400 - Комментарии. Произвольный формат.
0040,0100 - Не заполняется. Этот блок описывает шаги исследования.

Orthanc — бесплатный и свободно распространяемый PACS-сервер, используется для хранения и просмотра медицинских DICOM-снимков. Устанавливать его мы будем на «чистый» Ubuntu Server 20.04.

Подключаемся к серверу и обновляем репозитории:

Устанавливаем пакеты Orthanc`а.

Запускаем сервер и проверяем, слушает ли он порты. Порт 8042 — для web-интерфейса и порт 4242 — для интеграции с другими приложениями (в частности, для удалённой загрузки снимков, об этом — в конце заметки).

Нас интересуют два параметра — RemoteAccessAllowed (меняем false на true) и RegisteredUsers (раскомментируем и задаём логины-пароли для авторизации).

Если всё сделано правильно, появится интерфейс Orthanc`а.


На этом этапе сервер полностью работоспособен — позволяет загружать снимки, проcматривать их в браузере и искать. Единственное неудобство — веб-интерфейс Orthanc`a при загрузке исследований не позволяет выбрать директорию целиком, только файлы изображений; это неудобно, если исследование имеет вложенные директории. Для удобства можно пользоваться двумя способами.

Автоматическая загрузка исследования скриптом

Orthanc предлагает несколько способов загрузки DICOM-изображений. Речь пойдёт про скрипт ImportDicomFiles.py. Для работы должен быть установлен Python3. Синтаксис запуска скрипта:

Нужно создать smb-шару и дать к ней доступ. В примере — доступ для всех без ограничений.

Исследование следует загрузить в созданную шару, затем выполнить команду:

Скрипт самостоятельно проверяет все директории в /import на предмет dicom-снимков, при нахождении — загружает их к себе. Чтобы не тратить место и не заниматься чисткой, предлагаю использовать модифицированный ImportDicomFiles_custom.py — он не проверяет директории, которые «моложе» 10 минут (на случай, если исследование большое и ещё копируется) и после загрузки dicom-снимков удаляет их (не директории).

Теперь можно создать bash-крипт idf.sh, который запустит скрипт импорта файлов, затем проверит, все ли директории в /import «старше» 60 минут и если да — удалит их.

Скрипт можно поместить в cron для выполнения каждые 10 минут:

Ручная загрузка исследования утилитой
Можно использовать утилиту PACS IW Migration Tool.

В конфигурации утилиты нужно указать адрес хоста с Orthanc и порт 4242.


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

Читайте также: