Windows安装DCM4CHEE

TODO :了解单点登录系统、ldap

Dcm4chee及相关服务简介

  • Dcm4chee
    • 基于Mozilla Public License Version 1.1协议,可以商用
    • 基于Java,是一个运行在wildfly容器中的Web项目
    • 用于图像管理和图像归档,实现了dicom服务和HL7标准
  • Dcm4che
  • Wildfly
    • 基于LGPL协议,可以商用
    • Wildfly是一个开源的基于JavaEE的轻量级应用服务器,用于管理与部署java项目,java项目部署在wildfly中,可以方便地进行监控与管理
  • LDAP服务
    • Lightweight Directory Access Protocol-轻量级目录访问协议
    • 用于多站点之间的统一身份认证,从而实现单点登录

Dcm4chee功能简介

  • 提供了一个完善的Web管理界面

  • 可以接收其他设备传输的任何符合Dicom标准的文件并存储

  • 可以接收其他设备的符合Dicom标准的查询请求,故可以作为Pac服务器,worklist服务器等

  • 本身不能伪造数据进行数据模拟,数据只能通过外部传入dcm4chee系统中

    上传Dicom文件示例:

    1. 通过jdicom工具进行上传
      1. 打开jdicom工具包中的StorageSCU工具
      2. 修改AE与端口为Dcm4chee中的AE与端口(默认为AE:DCM4CHEE,port:11112)
      3. 点击connect,然后点击send进行上传
    • jdicom上传示例:
    1. 通过dcm4chee网页进行上传
      1. 通过Navigation-->Studies-->More functions-->Upload DICOM Object上传Dicom文件
    • Dcm4chee网页上传示例:

WorkList服务示例

  • 首先需要上传Dicom文件
  • http://localhost:8080/dcm4chee-arc/ui2/#/study/study界面中列出所有图像
  • 点击图像信息列最前方的三个点,点击加号
  • 在弹出的Create new MWL界面中,点击Add new attribute,添加Modality字段
  • 在新增的Modality字段中输入值MR,然后Create即可添加一条MR的WorkList数据

  • 在工作站中配置WorkList服务,即可使用DCM4CHEE的worklist服务
    • IP:localhost
    • Port:11112
    • AE:DCM4CHEE

病人信息管理

  • 病人信息与上传的Dicom文件关联
  • 也可通过Patients-->More functions新建病人信息

Dcm4chee安装

  • Dcm4chee支持多种数据库,例如H2,PostgreSQL,Mysql等,可以在官方releases中下载
  • 不要使用Sqlserver版本,官方并未测试sqlserver版本
  • 这里选用了Mysql版本进行安装,后期在其他平台安装也适用

前期准备

  • Java版本:>=java SE8 && X86版(OpenJdk和Oracle JDK均可)
  • 下载Wildfly(version>=wildfly14)
  • 下载Mysql(Version>=5.7.9)并安装
  • 下载LDAP服务器,选用Apache DS(version>=Apache DS 2.0.0-M20)
    • 官方推荐了三种LDAP服务器,分别是OpenLDAP,OpenDJ,Apache DS
    • OpenLDAP配置较为繁琐,并且全程需命令行配置
    • OpenDJ官方已升级为付费项目,免费版已停止下载
    • ApacheDS配置较为简单,需要命令行配置的部分较少
  • 下载LDAP服务管理器 Apache Directory Studio(version>= Apache Directory Studio 2.0.0-M9)

安装注意点

  • 安装流程按照官方指导进行即可
  • 启动Wildfly之前,需要配置Wildfly管理员用户,使用wildfly提供的脚本进行配置,脚本路径为%wildfly_Home%/bin/add-user.bat(windows)或%wildfly_Home%/bin/add-user.sh(linux)
  • 启动Wildfly之后,可以访问http://localhost:9990/console进入wildfly控制台

wildfly控制台示例:

  • 官方指导中留下的坑:

    1. Initialize Database这一节中,按照指导创建数据库之后,在Setup WildFly这一节的第10步,添加wildfly数据源的时候,数据源名称要与创建的数据库名称一致,否则会连不上mysql数据库
    2. Import default configuration into LDAP Server节的第1步,通过Apache Directory Studio连接LDAP服务时,连接参数要与Setup LDAP Server–>Apache DS 2.0.0中第2步中的连接参数相同,或者可以直接用Setup LDAP Server–>Apache DS 2.0.0中用到的连接,否则会连不上ldap服务
    3. 在Setup WildFly节的第1步,将Dcm4chee中的配置文件复制到wildfly中之后,需要修改dcm4chee-arc/ldap.properties文件中配置,修改java.naming.provider.urljava.naming.security.principal字段,使起与之前配置的ldap服务相吻合,否则会无法启动Wildfly
    4. 在Setup WildFly节的第10步,添加了Mysql数据源以及数据库连接之后,需要修改wildfly配置文件中的mysql的数据库连接字符串,在Setup WildFly节的第2步生成的dcm4chee-arc.xml即为wildfly的启动配置文件,在该文件中查找subsystem xmlns="urn:jboss:domain:datasources:5.0"节点,在其中寻找datasource jndi-name="java:/PacsDS" pool-name="pacsds"节点,修改其中的connection-url节点的数据,在mysql连接字符串后添加?serverTimezone=UTC否则会因为时区不对无法连接mysql服务
      • 例如修改前connection-url的数据为jdbc:mysql://127.0.0.1:3306/pacsdb
      • 修改后的数据为jdbc:mysql://127.0.0.1:3306/pacsdb?serverTimezone=UTC
    5. 如果需要配置dcm4chee项目为外网可以访问,需要修改dcm4chee-arc.xml文件中的subsystem xmlns="urn:jboss:domain:webservices:2.0"节点,interface name="management"节点,interface name="public"interface name="unsecure"节点,将节点中的127.0.0.1全部修改为0.0.0.0
    6. 一定要有X86的jdk,否则ldap服务无法正常运行,最好同时安装x64与x86的jdk
    7. jdk版本一定要大于等于jdk8,否则wildfly服务无法正常运行
  • 按照以上步骤安装完成dcm4chee后,就可以访问http://localhost:8080/dcm4chee-arc/ui2进入dcm4chee的管理界面。

dcm4chee管理界面:

  • 同时,可以访问http://localhost:9990/console/index.html#runtime进入wildfly运行项目管理界面进行dcm4chee网站项目的监控与管理