Инструменты пользователя

Инструменты сайта


orthanc

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Следующая версия
Предыдущая версия
orthanc [2019/04/12 07:31]
sector создано
orthanc [2022/05/27 02:34] (текущий)
sector
Строка 1: Строка 1:
  
-Раньше ничем таким не занимался, знания о DICOM заканчиваются на том, что это формат медицинских изображений…  +Раньше ничем таким не занимался, знания о DICOM заканчиваются на том, что это формат медицинских изображений…\\ 
-На работе есть несколько медицинских устройств, которые обмениваются снимками с компа оператора на комп врача. +На работе есть несколько медицинских устройств, которые обмениваются снимками с компа оператора на комп врача.\\ 
-На каждом оборудовании есть своя программа и на станциях врачей своя.+На каждом оборудовании есть своя программа и на станциях врачей своя.\\
  
-Решил попробовать сделать единое хранилище.  +Решил попробовать сделать единое хранилище. \\ 
-Конечно, можно купить и платные продукты, но это не наш метод. +Конечно, можно купить и платные продукты, но это не наш метод.\\ 
-Поиск выдал Orthanc, система у меня Debian 9, так что решил поставить из репозитория:+Поиск выдал Orthanc, система у меня Debian 10, так что решил поставить из репозитория:\\
  
 <code | ini> <code | ini>
Строка 12: Строка 12:
 </code> </code>
  
-Установился, поправил конфиг для того что бы зайти в WEB, загрузил несколько картинок, по игрался...  +Установил, поправил конфиг для того что бы зайти в WEB, загрузил несколько картинок... \\
-Но что-то мне не совсем понравился стандартный web viewer... +
-Решил прикрутить  вьювер от Osimis.   +
-Прописал в конфиг плагин: +
  
-<code | ini > +В последних версиях пользователи хранятся тут : 
-"Plugins" : [+<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 "orthanc" service. 
 +   **/ 
 + 
 +  // The list of the registered users. Because Orthanc uses HTTP 
 +  // Basic Authentication, the passwords are stored as plain text. 
 +  "RegisteredUsers" : { 
 +    "alice" : "alicePassword" 
 +    "admin" : "adminPassword", 
 +  } 
 +
 + 
 +</code> 
 + 
 +Включение http сервера и авторизации тут: 
 + 
 +<code | ini> 
 + 
 +Orthanc.json 
 + "HttpServerEnabled" : true, 
 + 
 + 
 + "AuthenticationEnabled" : true, 
 + 
 +</code> 
 + 
 +Что-то мне не понравился стандартный web viewer...\\ 
 +Решил прикрутить  viewer от Osimis.  \\ 
 + 
 +скачиваем: 
 + 
 +<code | ini> 
 +wget http://orthanc.osimis.io/lsb/plugin-osimis-webviewer/releases/1.2.0/libOsimisWebViewer.so 
 +</code> 
 + 
 +нужно посмотреть -> http://orthanc.osimis.io/lsb/plugin-osimis-webviewer/releases/1.3.1/libOsimisWebViewer.so 
 + 
 +по умолчанию подгружаются все плагины находящиеся в папке /usr/share/orthanc/plugins\\ 
 +поэтому директиву Plugins править не нужно.\\ 
 +скаченную библиотеку надо поместить в папку: /usr/share/orthanc/plugins\\  
 +и перезапустить orthanc.\\ 
 + 
 + 
 +<code | ini> 
 +// Whether remote hosts can connect to the HTTP server 
 +  "RemoteAccessAllowed" : false, -  исправить на true что бы зайти в  WEB 
 +   
 +  "Plugins" : [
     "/home/user/ libOsimisWebViewer.so r.so",     "/home/user/ libOsimisWebViewer.so r.so",
  
 +  
 </code> </code>
-И был послан,  данный плагин поддерживается в версии 1.5.3 и выше 
  
-Решил собирать из исходников… +TITLE AE -сервера, собственно куда отправляются снимки 
 +И кодировка в которую они будут преобразованы "DefaultEncoding" : "Windows1251",
  
-Ставим необходимое:  
  
 <code | ini> <code | ini>
-sudo apt-get install build-essential unzip cmake mercurial uuid-dev libcurl4-openssl-dev liblua5.1-0-dev  libgtest-dev libpng-dev libsqlite3-dev libssl-dev libjpeg-dev  zlib1g-dev libdcmtk-dev libboost-all-dev libwrap0-dev libcharls-dev libjsoncpp-dev libpugixml-dev doxygen+  // The DICOM Application Entity Title 
 +  "DicomAet" : "ORTHANC", 
 + 
 +  // Check whether the called AET corresponds to the AET of Orthanc 
 +  // during an incoming DICOM SCU request 
 +  "DicomCheckCalledAet" : false, 
 + 
 +  // The DICOM port 
 +  "DicomPort" : 4242, 
 + 
 +  // The default encoding that is assumed for DICOM files without 
 +  // "SpecificCharacterSet" DICOM tag, and that is used when answering 
 +  // C-Find requests (including worklists)The allowed values are 
 +  // "Ascii", "Utf8", "Latin1", "Latin2", "Latin3", "Latin4", 
 +  // "Latin5", "Cyrillic", "Windows1251", "Arabic", "Greek", "Hebrew", 
 +  // "Thai", "Japanese", "Chinese", "JapaneseKanji", "Korean", and 
 +  // "SimplifiedChinese"
 +  //"DefaultEncoding" : "Latin1", 
 +  "DefaultEncoding" : "Windows1251", 
 </code> </code>
  
  
-скачиваем^+<code | ini>   
 +WEB-интерфейс тут http://ваш ip:8042/app/explorer.html 
 +</code> 
 + 
 + 
 +{{:orthanc1.jpg?400|}} 
 + 
 +Подключение к СУБД:
  
 <code | ini> <code | ini>
-wget  https://www.orthanc-server.com/downloads/get.php?path=/orthanc/Orthanc-1.5.6.tar.gz+apt-get install default-mysql-server default-mysql-clietn defaultlt-libmysqlclient-dev orthanc-mysql 
 +</code> 
 + 
 +Увеличиваем размер блока данных:  
 + 
 +<code | ini> 
 +mcedit my.cnf 
 + 
 +max_allowed_packet 128M
  
 </code> </code>
  
-распаковываемсобираем: +создаем пользователя и бдподключаемся:
  
 <code | ini> <code | ini>
-# cmake -DALLOW_DOWNLOADS=ON \ +mcedit /etc/orthanc/mysql.json 
-        -DUSE_GOOGLE_TEST_DEBIAN_PACKAGE=ON \ + 
-        -DUSE_SYSTEM_CIVETWEB=OFF \ +cat /etc/orthanc/mysql.json  
-        -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 +   * "orthanc-mysql" package to take advantage of this feature. 
 +   **/ 
 +  "MySQL" : { 
 +    /Enable the use of MySQL to store the Orthanc index? 
 +    "EnableIndex" : true, 
 +     
 +    // Enable the use of MySQL to store the DICOM files? 
 +    "EnableStorage" : true, 
 +     
 +    // Parameters of the MySLQ database 
 +    "Host" : "localhost", 
 +    "Port" : 3306, 
 +    "Database" : "orthanc", 
 +    "Username" : "orthanc", 
 +    "UnixSocket" : "/var/run/mysqld/mysqld.sock", 
 +    "Password" : "dDE4dkULEYrbBZxc", 
 +     
 +    // Optional: Disable the locking of the MySQL database 
 +    "Lock" : true 
 +  } 
 +} 
 </code> </code>
  
-Скачал и подкинул плагин:+Контроль доступа и отправка на другие модальности
 +<code | ini> 
 +Orthanc.json 
 + 
 +  "LuaScripts" : [ 
 +    "/etc/orthanc/lua/access.lua", 
 +    "/etc/orthanc/lua/send.lua" 
 +  ], 
 + 
 +"sample" : [ "AE_TITLE", "192.168.1.235", 4006 ] 
 +</code> 
 +Lua: 
 + 
 +Разрешения выполнять запросы  к Orthanc, с помощью этого скрипта можно разграничить права доступа к web интерфейсу Orthanc
  
 <code | ini> <code | ini>
-wget http://orthanc.osimis.io/lsb/plugin-osimis-webviewer/releases/1.2.0/libOsimisWebViewer.so+ 
 +cat access.lua 
 +function IncomingHttpRequestFilter(method, uri, ip, username, httpHeaders) 
 +   -- Only allow GET requests for non-admin users 
 + 
 +  if method == 'GET' or method == 'POST' then 
 +      return true 
 +   elseif username == 'admin' then 
 +      return true 
 +   else 
 +      return false 
 +   end 
 +end 
 </code> </code>
  
-все заработало.  
  
-Конфиг был тут - /root/Orthanc-1.5.6/Resources/Configuration.json - собственно где распаковывал и собирал.   +Можно по ip
-Пока что в конфиге исправил только одну строчку, разрешающую доступ к Web-интерфейсу +
  
 <code | ini> <code | ini>
-// Whether remote hosts can connect to the HTTP server + 
-  "RemoteAccessAllowed" : false, -  исправить на true что бы зайти в  WEB +function IncomingHttpRequestFilter(methoduri, ip, username, httpHeaders) 
-  +  if method == 'GET' and (username == 'user' or username == 'admin') then 
 +    -- Read-only access (only GET method is allowed) 
 +    return true 
 +  elseif username == 'admin' and ip == '127.0.0.1' then 
 +    -- Read-write access for administrator (any HTTP method is allowed on localhost) 
 +    return true 
 +  else 
 +    -- Access is disallowed by default 
 +    return false 
 +  end 
 +end 
 </code> </code>
  
-   
-WEB-морда тут http://ваш ip:8042/app/explorer.html 
  
-Запуск с нужным конфигом:+С помощью этого скрипта можно отправлять снимки которые пришли в Orthanc на другие DICOM сервера или на рабочие станции врачей. 
 <code | ini> <code | ini>
-# Orthanc /root/Orthanc-1.5.6/Resources/Configuration.json+cat send.lua 
 +function OnStoredInstance(instanceId, tags, metadata) 
 +    SendToModality(instanceId, 'sample'
 +end 
 </code> </code>
  
 +С помощью этого скрипта можно разбирать изображение которые приходят на Orthanc и маршрутизировать их на другие сервера. 
  
 +<code | ini>
 +cat /etc/orthanc/lua/send.lua
 +function OnStoredInstance(instanceId, tags, metadata)
 +    local Modality = tags['Modality']
 +        if string.find(Modality, 'CR') ~= nil then
 +            SendToModality(instanceId, 'sample')
 +        elseif string.find(Modality, 'MR') ~= nil then
 +            SendToModality(instanceId, 'sample')
 +        end
 +end
 +</code>
  
-Будем курить дальше. 
-Продолжение скоро.  
-В плане подключить MariaDB и собирать все снимки с устройств централизованно.  
  
 +перезапускаем:
 +
 +<code | ini>
 +services orthanc restart
 +</code>
 +
 +Удаление старых записей
 +<code | ini>
 + $ curl --user admin:password http://localhost:8042/tools/find -d '{"Level":"Study","Query":{"StudyDate":"20120101-20121231"}}'
 +[
 +   "6e2c0ec2-5d99c8ca-c1c21cee-79a09605-68391d12",
 +   "ef2ce55f-9342856a-aee23907-2667e859-9f3b734d"
 +]
 +$ curl -X DELETE http://localhost:8042/studies/6e2c0ec2-5d99c8ca-c1c21cee-79a09605-68391d12
 +$ curl -X DELETE http://localhost:8042/studies/ef2ce55f-9342856a-aee23907-2667e859-9f3b734d
 +</code>
  
orthanc.1555054277.txt.gz · Последнее изменение: 2019/04/12 07:31 — sector

Яндекс.Метрика