文章目录
- 知识点
- PACS
- dcm4che
- dcm4chee
- 部署dcm4chee方式
- docker部署
- docker编排
- 总结
最近项目开始需要用到PACS系统,于是研究了一番,选用了dcm4chee搭建PACS系统,抛出 dcm-arc-light的git地址 。
知识点
PACS
Picture Archiving and Communication System (PACS) 医疗影像储传系统
简单点说就是将诸如CT、超声、X光等设备产生的影像存储及传输
详细的可以阅读百度百科的PACS系统介绍
dcm4che
Explore dcm4che. Dive into the world of medical imaging with dcm4che, the open-source collection of applications and utilities for healthcare IT. Efficient, scalable, and interoperable - dcm4che is your gateway to managing DICOM images and data with ease. Discover the power of open-source in healthcare today!
dcm4che是专为医疗IT设计的开源应用程序和工具集。 演变进程如下:
dcm4chee
dcm4chee 是一个高级的、开源的图片存储和通信系统 (PACS) 以及供应商中立档案(VNA),专门用于医学影像数据的存储、检索和管理。
目前开源PACS系统基本上都会使用这套方案。
部署dcm4chee方式
Get Started Tutorials
根据官方快速入门手册,dcm4chee部署方式如下:
部署方式 | 说明文档链接 |
---|---|
手动 | https://github.com/dcm4che/dcm4chee-arc-light/wiki/Installation |
docker | https://github.com/dcm4che/dcm4chee-arc-light/wiki/Running-on-Docker |
Deploy + Kubernetes | https://github.com/dcm4che/dcm4chee-arc-light/wiki/Deploy-Docker-Images-to-Kubernetes |
本文选用纯docker方式部署。
docker部署
官方推荐了几款单机搭建组合,如下表格所示:
PACS类型 | 服务列表 |
---|---|
最精简(单机) | arc + db + ldap |
最精简 + 认证权鉴(单机) | arc + db + ldap + keycloak + mariadb |
最精简 + 认证权鉴 + 审计日志 + 日志看板(单机) | arc + db + ldap + keycloak + mariadb + oauth2Proxy + logstash + kibana + elasticsearch |
本文选取了最精简版本,框架图如下:
其中包含三个镜像:
- LDAP服务(应用和服务间共享身份和权限,单点登录SSO),
dcm4che/slapd-dcm4chee:2.6.6-32.0
- DB(docker方式只能用postgreSQL?)
dcm4che/postgres-dcm4chee:16.2-32
- arc服务(服务端和web端)
dcm4che/dcm4chee-arc-psql:5.32.0
docker编排
- docker-compose.env文件如下:
STORAGE_DIR=/storage/fs1
POSTGRES_DB=pacsdb
POSTGRES_USER=pacs
POSTGRES_PASSWORD=pacs
- docker-compose.yml(与docker-compose.env在同一目录下)文件如下:
version: "3"
services:
ldap:
image: dcm4che/slapd-dcm4chee:2.4.48-21.0
logging:
driver: json-file
options:
max-size: "10m"
ports:
- "389:389"
env_file: docker-compose.env
volumes:
- /local/lizzy/dcm4chee-arc/ldap:/var/lib/openldap/openldap-data
- /local/lizzy/dcm4chee-arc/slapd.d:/etc/openldap/slapd.d
db:
image: dcm4che/postgres-dcm4chee:12.1-21
logging:
driver: json-file
options:
max-size: "10m"
ports:
- "5432:5432"
env_file: docker-compose.env
volumes:
- /etc/localtime:/etc/localtime:ro
- /etc/timezone:/etc/timezone:ro
- /local/lizzy/dcm4chee-arc/db:/var/lib/postgresql/data
arc:
image: dcm4che/dcm4chee-arc-psql:5.21.0
logging:
driver: json-file
options:
max-size: "10m"
ports:
- "8080:8080"
- "8443:8443"
- "9990:9990"
- "9993:9993"
- "11112:11112"
- "2762:2762"
- "2575:2575"
- "12575:12575"
env_file: docker-compose.env
environment:
WILDFLY_CHOWN: /opt/wildfly/standalone/storage
WILDFLY_WAIT_FOR: ldap:389 db:5432
JAVA_OPTS: -XX:PermSize=256M -XX:MaxPermSize=256m -Xms1024m -Xmx2048m -Djava.net.preferIPv4Stack=true
depends_on:
- ldap
- db
volumes:
- /etc/localtime:/etc/localtime:ro
- /etc/timezone:/etc/timezone:ro
- /local/lizzy/dcm4chee-arc/wildfly:/opt/wildfly/standalone
- /local/lizzy/dcm4chee-arc/storage:/storage
在同层级中执行命令docker-compose -p dcm4chee up -d
即可
总结
此篇是dcm4chee入门篇吧,有错误的地方欢迎指正,后续会随着工作的深入继续更新~~