参考文献

镜像

Repository Tag(s) Description 说明
dcm4che/slapd-dcm4chee 2.6.3-30.0 OpenLDAP server (slapd) with schemas and default configuration for dcm4che Archive 5 OpenLDAP 服务器 (slapd),具有 dcm4che Archive 5 的架构和默认配置
dcm4che/postgres-dcm4chee 15.2-30, 14.7-30, 13.10-30, 12.14-30, 11.19-30, 10.23-30, 9.6.24-30, 9.4.26-30 PostgreSQL 15/14/13/12/11/10/9.6/9.4 for dcm4che Archive 5 用于 dcm4che 的 PostgreSQL 15/14/13/12/11/10/9.6/9.4 存档 5
dcm4che/dcm4chee-arc-psql 5.30.0, 5.30.0-secure, 5.30.0-secure-ui Wildfly 24.0.1 with deployed dcm4che Archive 5 for use with PostgreSQL as DB Wildfly 24.0.1,部署了 dcm4che Archive 5,与 PostgreSQL 作为数据库一起使用
dcm4che/keycloak 21.0.2 Keycloak 21.0.2
dcm4che/oauth2-proxy 7.3.0 OAuth2 Proxy 7.3.0 for securing access to System and Audit Logs via Kibana OAuth2 Proxy 7.3.0,用于通过 Kibana 保护对系统和审核日志的访问
dcm4che/logstash-dcm4chee 8.4.2-15 Logstash 8.4.2 for dcm4che Archive 5.x
dcm4che/dcm4che-tools 5.30.0 dcm4che Library and Tools dcm4che 库和工具

具体步骤

创建一个docker默认桥接网络

1
$ docker network create dcm4chee_default

开启OpenLDAP Server

1
2
3
4
5
6
docker run --network=dcm4chee_default --name ldap \
-p 389:389 \
-v /etc/localtime:/etc/localtime:ro \
-v /var/local/dcm4chee-arc/ldap:/var/lib/openldap/openldap-data \
-v /var/local/dcm4chee-arc/slapd.d:/etc/ldap/slapd.d \
-d dcm4che/slapd-dcm4chee:2.6.2-27.0
常用环境变量
变量 说明 默认值
AE_TITLE DCM4CHEE
AE_TITLE_IOCM_REGULAR_USE IOCM_REGULAR_USE
AE_TITLE_IOCM_QUALITY IOCM_QUALITY
AE_TITLE_IOCM_PAT_SAFETY IOCM_PAT_SAFETY
AE_TITLE_IOCM_WRONG_MWL IOCM_WRONG_MWL
AE_TITLE_IOCM_EXPIRED IOCM_EXPIRED
AE_TITLE_AS_RECEIVED AS_RECEIVED
AE_TITLE_WORKLIST WORKLIST
DICOM_PORT 11112
DICOM_TLS_PORT 2762
HL7_PORT 2575
HL7_TLS_PORT 12575
STORAGE_DIR /opt/wildfly/standalone/data/fs1
SYSLOG_PORT 514
SYSLOG_TLS_PORT 6514

开启PostGres DB 实例

1
2
3
4
5
6
7
8
docker run --network=dcm4chee_default --name db \
-p 5432:5432 \
-e POSTGRES_DB=pacsdb \
-e POSTGRES_USER=pacs \
-e POSTGRES_PASSWORD=pacs \
-v /etc/localtime:/etc/localtime:ro \
-v /var/local/dcm4chee-arc/db:/var/lib/postgresql/data \
-d dcm4che/postgres-dcm4chee:14.4-27

使用已部署的dcm4che Archive 5应用程序启动Wildfly

1
2
3
4
5
6
7
8
9
10
11
12
13
14
docker run --network=dcm4chee_default --name arc \
-p 8080:8080 \
-p 8443:8443 \
-p 9990:9990 \
-p 11112:11112 \
-p 2575:2575 \
-e POSTGRES_DB=pacsdb \
-e POSTGRES_USER=pacs \
-e POSTGRES_PASSWORD=pacs \
-e WILDFLY_WAIT_FOR="ldap:389 db:5432" \
-v /etc/localtime:/etc/localtime:ro \
-v /var/local/dcm4chee-arc/wildfly:/opt/wildfly/standalone \
-v /var/local/dcm4chee-arc/storage:/storage \
-d dcm4che/dcm4chee-arc-psql:5.27.0
  • 将Web服务器的http(8080)和https(8443)端口以及9990WildFly管理控制台的http端口(11112)和2575存档应用程序的DICOM和HL7端口从容器发布到主机,以启用外部https客户端,DICOM应用程序和HL7发件人连接到WildFly和Archive应用程序

  • 绑定安装-v /var/local/dcm4chee-arc/wildfly:/opt/wildfly/standalone需要注意将Wildfly服务器配置存储在指定的主机目录中。它在第一个容器启动时初始化,如果它尚未存在于指定的主机目录中。这可确保在删除和重新创建Archive Server容器时数据不会丢失.

  • WEB访问地址: http://{IP}:8080/dcm4chee-arc/ui2

使用dcmTools工具进行发图测试

1
docker run --rm -v /home/test/dicoms:/opt/dicom  dcm4che/dcm4che-tools:5.30.0 storescu -c DCM4CHEE@192.168.1.118:11112 /opt/dicom

使用docker-compose部署

  • 环境变量文件: dcm4chee.env

    1
    2
    3
    4
    STORAGE_DIR=/storage/fs1
    POSTGRES_DB=pacsdb
    POSTGRES_USER=pacs
    POSTGRES_PASSWORD=pacs
  • docker-compose配置文件: dcm4chee.yml

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    version: "3"
    services:
    ldap:
    image: dcm4che/slapd-dcm4chee:2.6.2-27.0
    logging:
    driver: json-file
    options:
    max-size: "11m"
    ports:
    - "389:389"
    env_file: dcm4chee.env
    volumes:
    - /var/local/dcm4chee-arc/ldap:/var/lib/openldap/openldap-data
    - /var/local/dcm4chee-arc/slapd.d:/etc/openldap/slapd.d
    db:
    image: dcm4che/postgres-dcm4chee:14.4-27
    logging:
    driver: json-file
    options:
    max-size: "11m"
    ports:
    - "5432:5432"
    env_file: dcm4chee.env
    volumes:
    - /etc/localtime:/etc/localtime:ro
    - /etc/timezone:/etc/timezone:ro
    - /var/local/dcm4chee-arc/db:/var/lib/postgresql/data
    arc:
    image: dcm4che/dcm4chee-arc-psql:5.27.0
    logging:
    driver: json-file
    options:
    max-size: "11m"
    ports:
    - "8080:8080"
    - "8443:8443"
    - "9990:9990"
    - "9993:9993"
    - "11112:11112"
    - "2762:2762"
    - "2575:2575"
    - "12575:12575"
    env_file: dcm4chee.env
    environment:
    WILDFLY_CHOWN: /opt/wildfly/standalone /storage
    WILDFLY_WAIT_FOR: ldap:389 db:5432
    depends_on:
    - ldap
    - db
    volumes:
    - /etc/localtime:/etc/localtime:ro
    - /etc/timezone:/etc/timezone:ro
    - /var/local/dcm4chee-arc/wildfly:/opt/wildfly/standalone
    - /var/local/dcm4chee-arc/storage:/storage
  • 部署命令,在dcm4chee.yaml文件目录下,执行docker-compose -f dcm4chee.yaml up -d

部署两套,另外一套docker-compose文件内容

1
2
3
4
5
6
7
# cat dcm4chee_prod.env
STORAGE_DIR=/storage/fs1
POSTGRES_DB=pacsdb
POSTGRES_USER=pacs
POSTGRES_PASSWORD=pacs
ARCHIVE_HOST=192.168.11.216
AUTH_SERVER_URL=https://192.168.11.216:18843
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
# cat dcm4chee_prod.yaml
version: "3"
services:
ldap:
image: dcm4che/slapd-dcm4chee:2.6.3-30.0
logging:
driver: json-file
options:
max-size: "10m"
ports:
- "11389:389"
- "11636:636"
env_file: dcm4chee_prod.env
environment:
DICOM_PORT: 11113
DICOM_TLS_PORT: 12762
HL7_PORT: 2576
HL7_TLS_PORT: 12576
volumes:
- /var/local/dcm4chee-arc-prod/ldap:/var/lib/openldap/openldap-data
- /var/local/dcm4chee-arc-prod/slapd.d:/etc/openldap/slapd.d
keycloak:
image: dcm4che/keycloak:21.0.2
logging:
driver: json-file
options:
max-size: "10m"
ports:
- "18843:8843"
env_file: dcm4chee_prod.env
environment:
KC_HTTPS_PORT: 8843
KC_HOSTNAME_PORT: 18843
KC_HOSTNAME: 192.168.11.216
KEYCLOAK_ADMIN: admin
KEYCLOAK_ADMIN_PASSWORD: admin..
KC_LOG: file
KC_SPI_LOGIN_PROTOCOL_OPENID_CONNECT_SUPPRESS_LOGOUT_CONFIRMATION_SCREEN: "true"
KEYCLOAK_WAIT_FOR: ldap:389
depends_on:
- ldap
volumes:
- /etc/localtime:/etc/localtime:ro
- /etc/timezone:/etc/timezone:ro
- /var/local/dcm4chee-arc-prod/keycloak:/opt/keycloak/data
db:
image: dcm4che/postgres-dcm4chee:15.2-30
logging:
driver: json-file
options:
max-size: "10m"
ports:
- "15432:5432"
env_file: dcm4chee_prod.env
volumes:
- /etc/localtime:/etc/localtime:ro
- /etc/timezone:/etc/timezone:ro
- /var/local/dcm4chee-arc-prod/db:/var/lib/postgresql/data
arc:
image: dcm4che/dcm4chee-arc-psql:5.30.0-secure
ports:
- "18080:8080"
- "18443:8443"
- "19990:9990"
- "19993:9993"
- "11113:11113"
- "12762:12762"
- "2576:2576"
- "12576:12576"
env_file: dcm4chee_prod.env
environment:
WILDFLY_CHOWN: /opt/wildfly/standalone /storage
WILDFLY_WAIT_FOR: ldap:389 db:5432
depends_on:
- ldap
- keycloak
- db
volumes:
- /etc/localtime:/etc/localtime:ro
- /etc/timezone:/etc/timezone:ro
- /var/local/dcm4chee-arc-prod/wildfly:/opt/wildfly/standalone
- /var/local/dcm4chee-arc-prod/storage:/storage
  • 同一台服务器上部署两套服务,则对应将PACS相关的配置进行修改

    1
    2
    3
    4
    DICOM_PORT: 11113
    DICOM_TLS_PORT: 12762
    HL7_PORT: 2576
    HL7_TLS_PORT: 12576