概念

DICOM identifiers

Very importantly, the DICOM standard specifies DICOM tags that allow to index each single DICOM resource:

  • Patients are indexed with PatientID (0x0010, 0x0020) (part of the patient module).
  • Studies are indexed with StudyInstanceUID (0x0020, 0x000d) (part of the study module).
  • Series are indexed with SeriesInstanceUID (0x0020, 0x000e) (part of the series module).
  • Instances are indexed with SOPInstanceUID (0x0008, 0x0018) (part of the SOP module).

The DICOM standard orders StudyInstanceUID, SeriesInstanceUID and SOPInstanceUID to be globally unique. In other words, it is mandatory for two different imaging devices to never generate the same identifiers, even if they are manufactured by different vendors. Orthanc exploits this rule to derive its own unique identifiers.

Importantly, even if the PatientID must be unique inside a given hospital, it is not guaranteed to be globally unique. This means that different patients imaged in different hospitals might share the same PatientID. For this reason, you should always browse from the study level (and not from the patient level) as soon as you deal with an application that handles patients from different hospitals.

Configuration of Orthanc

Configuring Orthanc simply consists in copying and adapting the default configuration file. This file is in the JSON file format. You can generate a sample configuration file with the following call:

$ Orthanc --config=Configuration.json

Then, start Orthanc by giving it the path to the modified Configuration.json path as a command-line argument:

$ Orthanc ./Configuration.json

The default configuration file would:

  • Create a DICOM server with the DICOM AET (Application Entity Title) ORTHANC that listens on the port 4242.
  • Create a HTTP server for the REST API that listens on the port 8042.
  • Store the Orthanc database in a folder called OrthancStorage.

Remark: When specifying paths under Microsoft Windows, backslashes (i.e. \) should be either escaped by doubling them (as in \\), or replaced by forward slashes (as in /).

To obtain more diagnostic, you can use the --verbose or the --trace options:

$ Orthanc ./Configuration.json --verbose
$ Orthanc ./Configuration.json --trace

Starting with Orthanc 0.9.1, you can also start Orthanc with the path to a directory. In such a case, Orthanc will load all the files with a .json extension in this directory, and merge them to construct the configuration file. This allows to split the global configuration into several files.

搭建

关闭防火墙

systemctl stop firewalld

安装orthanc-server

依赖环境

yum install unzip make automake gcc gcc-c++ python cmake curl-devel \libpng-devel sqlite-devel libuuid-devel openssl-devel \lua-devel mercurial patch tar

编译安装

解压Orthanc-1.4.2.tar.gz到 /opt/context/Orthanc-1.4.2,进入目录执行:

cmake -DALLOW_DOWNLOADS=ON \-DUSE_SYSTEM_JSONCPP=OFF \-DUSE_SYSTEM_MONGOOSE=OFF \-DUSE_SYSTEM_PUGIXML=OFF \-DUSE_SYSTEM_SQLITE=OFF \-DUSE_SYSTEM_BOOST=OFF \-DUSE_SYSTEM_DCMTK=OFF \-DUSE_SYSTEM_GOOGLE_TEST=OFF \-DUSE_SYSTEM_LIBJPEG=OFF \-DCMAKE_BUILD_TYPE=Release \/opt/context/Orthanc-1.4.2cmake -DALLOW_DOWNLOADS=ON \-DUSE_SYSTEM_JSONCPP=OFF \-DUSE_SYSTEM_CIVETWEB=OFF \-DUSE_SYSTEM_PUGIXML=OFF \-DUSE_SYSTEM_SQLITE=OFF \-DUSE_SYSTEM_BOOST=OFF \-DUSE_SYSTEM_DCMTK=OFF \-DUSE_SYSTEM_GOOGLE_TEST=OFF \-DUSE_SYSTEM_LIBJPEG=OFF \-DCMAKE_BUILD_TYPE=Release \/opt/context/Orthanc-1.5.6make

see:https://bitbucket.org/sjodogne/orthanc/src/default/LinuxCompilation.txt?fileviewer=file-view-default

其中/opt/context/Orthanc-1.4.2是解压到的目录,根据实际情况酌情修改。

如果Downloading http://www.orthanc-server.com/downloads/third-party/boost_1_67_0_bcpdigest-1.4.0.tar.gz下载不稳定,将出现file DOWNLOAD HASH mismatch错误,将残缺的文件从/opt/context/Orthanc-1.4.2/ThirdPartyDownloads/目录下删除,手动使用迅雷下载再上传到该目录下即可。

如果遇到文件不存在的问题,则手动解压ThirdPartyDownloads目录下对应的压缩包到Orthanc-1.4.2目录下。

如果遇到各种奇怪的错误,那么使用迅雷手动下载全部文件,然后上传即可。

编译OrthancDicomWeb插件

将OrthancDicomWeb-0.5.tar.gz解压到/opt/context/Orthanc-1.4.2-plugins/OrthancDicomWeb-0.5目录

进入/opt/context/Orthanc-1.4.2-plugins/OrthancDicomWeb-0.5执行:

cmake -DSTATIC_BUILD=ON -DCMAKE_BUILD_TYPE=Release
make

最终生成libOrthancDicomWeb.so.0.5插件文件

编译MySQL plugins插件

将OrthancMySQL-1.1.tar.gz解压到/opt/context/Orthanc-1.4.2-plugins/OrthancMySQL-1.1目录

进入/opt/context/Orthanc-1.4.2-plugins/OrthancMySQL-1.1/MySQL执行:

cmake -DSTATIC_BUILD=ON -DCMAKE_BUILD_TYPE=Release
make

The compilation will produce 2 shared libraries, each containing one plugin for Orthanc:

  • libOrthancMySQLIndex.so.1.1 replaces the default SQLite index of Orthanc by MySQL.
  • libOrthancMySQLStorage.so.1.1 makes Orthanc store the DICOM files it receives into MySQL.

使用OrthancMySQL插件将dicom元数据存储到MySQL中,不仅仅只是为了更好的性能和可靠性,更重要的是为实现Orthanc负载均衡打基础,非常重要!!!如果您不需要长远考虑,那么可以跳过此步骤,直接使用默认内置的本地SQLite数据库。

配置

配置文件在/opt/context/Orthanc-1.4.2/Resources目录下Configuration.json。

只需要关注以下几项即可:

//服务名称
"Name" : "JuniperOrthanc"//dicom文件存储路径
"StorageDirectory" : "/data/orthanc",//索引数据库存储路径
"IndexDirectory" : "/data/orthanc",//插件配置
"Plugins" : ["/opt/context/Orthanc-1.4.2-plugins/OrthancDicomWeb-0.5/libOrthancDicomWeb.so.0.5","/opt/context/Orthanc-1.4.2-plugins/OrthancMySQL-1.1/MySQL/libOrthancMySQLIndex.so.1.1","/opt/context/Orthanc-1.4.2-plugins/OrthancMySQL-1.1/MySQL/libOrthancMySQLStorage.so.1.1"
],//OrthancDicomWeb插件配置
"DicomWeb" : {"Enable" : true,            // Whether DICOMweb support is enabled"Root" : "/dicom-web/",     // Root URI of the DICOMweb API (for QIDO-RS, STOW-RS and WADO-RS)"EnableWado" : true,        // Whether WADO-URI (previously known as WADO) support is enabled"WadoRoot" : "/wado",       // Root URI of the WADO-URI (aka. WADO) API"Host" : "localhost",       // Hard-codes the name of the host for subsequent WADO-RS requests"Ssl" : false,              // Whether HTTPS should be used for subsequent WADO-RS requests"StowMaxInstances" : 10,    // For STOW-RS client, the maximum number of instances in one single HTTP query (0 = no limit)"StowMaxSize" : 10,         // For STOW-RS client, the maximum size of the body in one single HTTP query (in MB, 0 = no limit)"QidoCaseSensitive" : true  // For QIDO-RS server, whether search is case sensitive (since release 0.5)
},//Mysql插件配置
"MySQL" : {"EnableIndex" : true,  //使用mysql存储文件索引"EnableStorage" : false,  //使用mysql存储dicom文件"Host" : "node3",    // For TCP connections (notably Windows)"Port" : 3306,           // For TCP connections (notably Windows)"UnixSocket" : "",  // For UNIX on localhost, Linux set to blank"Database" : "orthanc","Username" : "root","Password" : "123","Lock" : false            // 单个orthanc server独占数据库,如果使用多个orthanc server共享mysql数据库,必须关闭
},//http服务端口
"HttpPort" : 7101,//允许远程访问
"RemoteAccessAllowed" : true,

生产环境的配置文件请在测试环境配置文件的基础上做修改,因为做了许多优化

mkdir -p /data/orthanc

mysql数据库初始化

开启Mysql超长索引字段

show variables like 'innodb_large_prefix';
set global innodb_large_prefix=1;
show variables like 'innodb_file_format';
SET GLOBAL innodb_file_format = BARRACUDA;
set global innodb_file_format_max=BARRACUDA;

在配置的mysql服务中创建orthanc数据库,字符集utf8mb4 -- UTF-8 Unicode,排序规则utf8mb4_unicode_ci

然后在orthanc数据库中执行OrthancMySQL-1.1.sql即可。

启动关闭

#进入/opt/context/Orthanc-1.4.2目录,编译完成之后这里有可执行文件#启动
./Orthanc /opt/context/Orthanc-1.4.2/Resources/Configuration.json > /data/logs/orthanc/orthanc.log 2>&1 &#关闭
./Orthanc stop
kill pid

/data/logs/orthanc/orthanc.log为日志文件路径

访问Orthanc Explorer

http://node1:7101/app/explorer.html

orthanc-server http 接口

添加instances

curl -X POST http://localhost:7101/instances --data-binary @IM0

获取instances的studyid

MainDicomTags:StudyInstanceUID

http://node1:7101/instances/{id}/study

获取instances序号

MainDicomTags:InstanceNumber

http://node1:7101/instances/{instances-id}

获取缩略图

http://node1:7101/instances/{instances-id}/preview

安装OHIF DICOM Viewer

安装Meteor

将meteor-bootstrap-os.linux.x86_64.tar.gz文件和install.meteor.sh上传到/opt/soft目录下。

执行install.meteor.sh即可完成安装。

sh install.meteor.sh

Meteor环境需要git客户端依赖:

yum install -y git

安装OHIF DICOM Viewer

将Viewers-master.zip解压到/opt/context/ohif-dicom-viewer目录

进入/opt/context/ohif-dicom-viewer/OHIFViewer目录,利用Meteor安装OHIF DICOM Viewer依赖:

METEOR_PACKAGE_DIRS="../Packages" meteor npm install

配置

编辑/opt/context/ohif-dicom-viewer/config/orthancDICOMWeb.json

关注以下几点:

"name": "JuniperOrthanc",
"wadoUriRoot": "http://localhost:7101/wado",
"qidoRoot": "http://localhost:7101/dicom-web",
"wadoRoot": "http://localhost:7101/dicom-web",

启动

进入/opt/context/ohif-dicom-viewer/OHIFViewer目录,利用Meteor启动OHIF DICOM Viewer:

METEOR_PACKAGE_DIRS="../Packages" nohup meteor --settings ../config/orthancDICOMWeb.json --allow-superuser > /data/logs/orthanc/ohif-viewer.log 2>&1 &

关闭

kill -9 `ps ax | grep meteor | awk '{print $1}'`

一定要用exit命令退出shell,否则meteor会自动停止

访问OHIF DICOM Viewer

http://node1:3000

http://node1:3000/viewer/1.2.840.113619.2.25.4.807793.1509756272.891

AWS部署架构图

本文以AWS为例,但并未使用AWS独有功能,阿里云同理可实现。

后记

本文作为一篇指导手册,抛砖引玉,并非按部就班的详细教程,实际操作过程中可能会遇到各种各样的问题,在本文留言即可,小菜会及时解答。

转载于:https://www.cnblogs.com/iyangyuan/p/10904977.html

Orthanc+OHIF DICOM Viewer最佳Dicom解析、在线浏览实践指南(解决方案)相关推荐

  1. RadiAnt DICOM Viewer 2021.1 Crack

    RadiAnt DICOM Viewer灵活.简单.快速Ω578867473 RadiAnt 是一个医学图像的PACS DICOM浏览器 设计是为了给您独特体验 它界面直观,性能无与伦比 您一定会流连 ...

  2. 正版软件,官方授权。RadiAnt DICOM Viewer - 软件版 / CD/DVD版

    灵活.简单.快速 RadiAnt 是一个医学图像的 PACS DICOM 浏览器 设计是为了给您独特体验,它界面直观,性能无与伦比,您的体验感一定爆棚! RadiAnt DICOM Viewer是一款 ...

  3. RadiAnt DICOM Viewer Crack by Xacker

    不管你以前安装过什么版都可以使用,一次购买永久用,绿色版,复制到电脑或者U盘即可使用 New features:Ω578867473 Send studies to PACS (add-on pack ...

  4. Sante DICOM Viewer CD/DVD患者读取器

    Sante DICOM Viewer CD/DVD患者读取器 Sante DICOM Viewer是用于恢复.观察.存储.书目.管理和医学阅读的最佳软件工具之一.该程序是DICOM.切换器.PACS客 ...

  5. 【转】DICOM命令集和数据集解析!!

    转自:DICOM命令集和数据集解析 - 微笑的艾米 - 博客园 摘   要:本文通过分析一个典型的DICOM消息,详细地解析了DICOM命令集和数据集的构成方式和其含义.并在此基础上,提出了一种实现D ...

  6. RadiAnt DICOM Viewer CD/DVD -U盘版

    RadiAnt DICOM Viewer CD/DVD - 用于患者 CD/DVD/USB(32 位和 64 位)的自动运行包. 此版本旨在通过 DICOM 研究在 CD/DVD 或 USB 闪存介质 ...

  7. DICOM医学影像文件解析

    DICOM医学影像文件格式解析 目录 DICOM医学影像文件格式解析 1.DICOM 2.DICOM存储格式 2.1 DataElement的三种结构 2.2 DataElement的Tag 2.2. ...

  8. RadiAnt DICOM Viewer 2021.1中文版

    RadiAnt DICOM Viewer破解版是医学数字成像和通信软件,轻松处理和显示DICOM格式的医学图像,RadiAnt DICOM Viewer使用可显示从不同成像方式获得的检查结果,包括数字 ...

  9. DICOM:基于fo-dicom的简易DICOM Viewer

    背景 正如段子所言,"春节"副本已通关,您的属性有如下变化:力量 0,智力 0,敏捷 0,体重 15,金钱-999.您已被传送回出发点,系统时间从"初八"切换到 ...

  10. RadiAnt DICOM Viewer 2022.2 BETA #25311

    RadiAnt DICOM 查看器 2022.2 BETA #29905 建于 2022 年 10 月 26 日 新的功能: 长度比计算. 椭球/子弹体积计算. 在 DICOM 标签窗口中添加了颜色和 ...

最新文章

  1. python和R对dataframe进行连接、行过滤更新列内容:dplyr、merge、inner、left、right、inner_join、left_join、sort_values、loc
  2. Apache ECharts各种图表页面展示
  3. debian9 没有ipv4
  4. mysql第四项_mysql数据库的基本介绍与操作(第四篇-mysql索引篇)
  5. redis 命令 释放连接_Redis---gt;02
  6. Extjs 屏蔽F5
  7. HDFS教程(02)- HDFS命令汇总
  8. SSH2开发简易的购物网站源代码下载
  9. 天河二号计算机是微型计算机,计算机二级考试真题-PPT-天河二号超级计算机
  10. MediaFoundation视频采集
  11. 在GEE平台提取Sentinel-1 SAR GRD的VV+VH波段
  12. 基于UDP的简易网络聊天室
  13. NetBeans的下载与安装
  14. Ubuntu连接WiFi开热点
  15. mysql 1058 无法启动服务_案例:MySQL服务无法启动 系统发生1058错误
  16. Jenkins 打包配置
  17. 【华人学者风采】黄霞 清华大学
  18. Linux自动同步时间的方法
  19. Msfvenom使用指南
  20. 出租车系统java_基于WEB的JAVA出租车打车系统

热门文章

  1. django数据库增删改查操作
  2. easyui combobox根据输入内容动态查找_制作智能下拉菜单,自动筛选想要输入的数据,同事都看呆了...
  3. C++const类型
  4. resent代码详解
  5. Machine Learning Basics(要点)
  6. 项目合作需求、数据集合作需求
  7. 对语言模型(Language Model)与n-gram的理解
  8. php考试试卷,php测试题(一)
  9. DevOps使用教程 华为云(17)git 比较2个分支版本的差异 某个具体文件的差异
  10. 【Django 2021年最新版教程30】ubuntu中停止和重启django项目