Показаны различия между двумя версиями страницы.
| Следующая версия | Предыдущая версия | ||
|
orthanc [2019/04/12 07:31] sector создано |
orthanc [2022/05/27 02:34] (текущий) sector |
||
|---|---|---|---|
| Строка 1: | Строка 1: | ||
| - | Раньше ничем таким не занимался, | + | Раньше ничем таким не занимался, |
| - | На работе есть несколько медицинских устройств, | + | На работе есть несколько медицинских устройств, |
| - | На каждом оборудовании есть своя программа и на станциях врачей своя. | + | На каждом оборудовании есть своя программа и на станциях врачей своя.\\ |
| - | Решил попробовать сделать единое хранилище. | + | Решил попробовать сделать единое хранилище. |
| - | Конечно, | + | Конечно, |
| - | Поиск выдал Orthanc, система у меня Debian | + | Поиск выдал Orthanc, система у меня Debian |
| <code | ini> | <code | ini> | ||
| Строка 12: | Строка 12: | ||
| </ | </ | ||
| - | Установился, поправил конфиг для того что бы зайти в WEB, загрузил несколько картинок, по игрался... | + | Установил, |
| - | Но что-то мне не совсем понравился стандартный web viewer... | + | |
| - | Решил прикрутить | + | |
| - | Прописал в конфиг плагин: | + | |
| - | <code | ini > | + | В последних версиях пользователи хранятся тут : |
| - | " | + | <code | ini> |
| + | credentials.json | ||
| + | |||
| + | { | ||
| + | /** | ||
| + | * Sensitive configuration options. This file must *not* be | ||
| + | * publicly-readable. It must only be readable by the users that run | ||
| + | * the " | ||
| + | **/ | ||
| + | |||
| + | // The list of the registered users. Because Orthanc uses HTTP | ||
| + | // Basic Authentication, | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | } | ||
| + | } | ||
| + | |||
| + | </ | ||
| + | |||
| + | Включение http сервера и авторизации тут: | ||
| + | |||
| + | <code | ini> | ||
| + | |||
| + | Orthanc.json | ||
| + | " | ||
| + | |||
| + | |||
| + | " | ||
| + | |||
| + | </ | ||
| + | |||
| + | Что-то мне не понравился стандартный web viewer...\\ | ||
| + | Решил прикрутить | ||
| + | |||
| + | скачиваем: | ||
| + | |||
| + | <code | ini> | ||
| + | wget http:// | ||
| + | </ | ||
| + | |||
| + | нужно посмотреть -> http:// | ||
| + | |||
| + | по умолчанию подгружаются все плагины находящиеся в папке / | ||
| + | поэтому директиву Plugins править не нужно.\\ | ||
| + | скаченную библиотеку надо поместить в папку: / | ||
| + | и перезапустить orthanc.\\ | ||
| + | |||
| + | |||
| + | <code | ini> | ||
| + | // Whether remote hosts can connect to the HTTP server | ||
| + | " | ||
| + | |||
| + | | ||
| "/ | "/ | ||
| ] | ] | ||
| + | | ||
| </ | </ | ||
| - | И был послан, | ||
| - | Решил | + | TITLE AE -сервера, |
| + | И кодировка в которую они будут преобразованы " | ||
| - | Ставим необходимое: | ||
| <code | ini> | <code | ini> | ||
| - | sudo apt-get install build-essential unzip cmake mercurial uuid-dev libcurl4-openssl-dev liblua5.1-0-dev | + | // The DICOM Application Entity Title |
| + | " | ||
| + | |||
| + | // Check whether the called AET corresponds to the AET of Orthanc | ||
| + | // during an incoming DICOM SCU request | ||
| + | " | ||
| + | |||
| + | // The DICOM port | ||
| + | " | ||
| + | |||
| + | // The default encoding that is assumed for DICOM files without | ||
| + | // " | ||
| + | // C-Find requests (including worklists). The allowed values are | ||
| + | // " | ||
| + | // " | ||
| + | // " | ||
| + | // " | ||
| + | //" | ||
| + | " | ||
| </ | </ | ||
| - | скачиваем^ | + | <code | ini> |
| + | WEB-интерфейс тут http://ваш ip: | ||
| + | </ | ||
| + | |||
| + | |||
| + | {{: | ||
| + | |||
| + | Подключение к СУБД: | ||
| <code | ini> | <code | ini> | ||
| - | wget https:// | + | apt-get install default-mysql-server default-mysql-clietn defaultlt-libmysqlclient-dev |
| + | </code> | ||
| + | |||
| + | Увеличиваем размер блока данных: | ||
| + | |||
| + | <code | ini> | ||
| + | mcedit my.cnf | ||
| + | |||
| + | max_allowed_packet | ||
| </ | </ | ||
| - | распаковываем, собираем: | + | создаем пользователя и бд, подключаемся: |
| <code | ini> | <code | ini> | ||
| - | # cmake -DALLOW_DOWNLOADS=ON \ | + | mcedit / |
| - | | + | |
| - | | + | cat / |
| - | -DDCMTK_LIBRARIES=dcmjpls \ | + | { |
| - | -DCMAKE_BUILD_TYPE=Release \ | + | /** |
| - | ~/Orthanc-1.5.6 | + | * Configuration to use MySQL or MariaDB instead of the default |
| - | # make | + | * SQLite back-end of Orthanc. You will have to install the |
| - | # make install | + | * " |
| + | **/ | ||
| + | " | ||
| + | // Enable the use of MySQL to store the Orthanc | ||
| + | " | ||
| + | |||
| + | // Enable the use of MySQL to store the DICOM files? | ||
| + | " | ||
| + | |||
| + | // Parameters of the MySLQ database | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | |||
| + | // Optional: Disable the locking of the MySQL database | ||
| + | " | ||
| + | } | ||
| + | } | ||
| </ | </ | ||
| - | Скачал и подкинул плагин: | + | Контроль доступа и отправка на другие модальности: |
| + | <code | ini> | ||
| + | Orthanc.json | ||
| + | |||
| + | " | ||
| + | "/ | ||
| + | "/ | ||
| + | ], | ||
| + | |||
| + | " | ||
| + | </ | ||
| + | Lua: | ||
| + | |||
| + | Разрешения выполнять запросы | ||
| <code | ini> | <code | ini> | ||
| - | wget http:// | + | |
| + | cat access.lua | ||
| + | function IncomingHttpRequestFilter(method, | ||
| + | -- Only allow GET requests for non-admin users | ||
| + | |||
| + | if method == ' | ||
| + | return true | ||
| + | | ||
| + | return true | ||
| + | | ||
| + | return false | ||
| + | end | ||
| + | end | ||
| </ | </ | ||
| - | все заработало. | ||
| - | Конфиг был тут - / | + | Можно по ip |
| - | Пока что в конфиге исправил только одну строчку, | + | |
| <code | ini> | <code | ini> | ||
| - | // Whether remote hosts can connect to the HTTP server | + | |
| - | " | + | function IncomingHttpRequestFilter(method, uri, ip, username, httpHeaders) |
| - | | + | if method == ' |
| + | | ||
| + | return true | ||
| + | elseif username == ' | ||
| + | -- Read-write access for administrator (any HTTP method is allowed on localhost) | ||
| + | return | ||
| + | else | ||
| + | -- Access is disallowed by default | ||
| + | return false | ||
| + | | ||
| + | end | ||
| </ | </ | ||
| - | | ||
| - | WEB-морда тут http:// | ||
| - | Запуск с нужным конфигом: | + | С помощью этого |
| <code | ini> | <code | ini> | ||
| - | # Orthanc / | + | cat send.lua |
| + | function OnStoredInstance(instanceId, | ||
| + | SendToModality(instanceId, | ||
| + | end | ||
| </ | </ | ||
| + | С помощью этого скрипта можно разбирать изображение которые приходят на Orthanc и маршрутизировать их на другие сервера. | ||
| + | <code | ini> | ||
| + | cat / | ||
| + | function OnStoredInstance(instanceId, | ||
| + | local Modality = tags[' | ||
| + | if string.find(Modality, | ||
| + | SendToModality(instanceId, | ||
| + | elseif string.find(Modality, | ||
| + | SendToModality(instanceId, | ||
| + | end | ||
| + | end | ||
| + | </ | ||
| - | Будем курить дальше. | ||
| - | Продолжение скоро. | ||
| - | В плане подключить MariaDB и собирать все снимки с устройств централизованно. | ||
| + | перезапускаем: | ||
| + | |||
| + | <code | ini> | ||
| + | services orthanc restart | ||
| + | </ | ||
| + | |||
| + | Удаление старых записей | ||
| + | <code | ini> | ||
| + | $ curl --user admin: | ||
| + | [ | ||
| + | " | ||
| + | " | ||
| + | ] | ||
| + | $ curl -X DELETE http:// | ||
| + | $ curl -X DELETE http:// | ||
| + | </ | ||