安装所需应用及版本
- JDK1.8
安装教程地址(包含手动/自动):blog.csdn.net/qq_42815754… - MARIADB 10.2.4
安装教程地址:blog.csdn.net/jxq0816/art… - OpenLDAP 2.4.42
下载地址:wget ftp://ftp.openldap.org/pub/OpenLDAP/openldap-release/openldap-2.4.44.tgz - Berkeley DB4.6.21
下载地址:wget download.oracle.com/berkeley-db… - wildfly-10.0.Final
下载地址: - dcm4chee-arc-5.10.0-mysql
下载地址:sourceforge.net/projects/dc… - 官方文档地址:github.com/dcm4che/dcm…
dcm4chee-arc 相关配置
- 解压并且配置环境变量
unzip dcm4chee-arc-5.10.0-mysql.zip #打开环境变量配置文件 vi ~/.bash_profile #加入下面的配置 DCM4CHEE_ARC=/opt/dcm4chee-arc-5.10.0-mysql(解压文件的目录) export DCM4CHEE_ARC #重新加载配置文件 source ~/.bash_profile
安装jdk
sudo yum install java
安装数据库
- 安装
yum -y install mariadb mariadb-server
- 创建对应的数据库
- 进入数据库
mysql -u root -p123456- 创建数据库
create database dcm;
- 设置权限访问
grant all on dcm.* to 'root' identified by '123456';
quit
- 导入初始化脚本
mysql -uroot -p123456 dcm < $DCM4CHEE_ARC/sql/create-mysql.sql
安装BerkeleyDB(4.6.21)
- 安装 gcc
sudo yum install gcc
- 下载安装包
wget http://download.oracle.com/berkeley-db/db-4.6.21.tar.gz - 创建安装目录:
sudo mkdir /usr/local/berkeleyDB
- 解压
tar -zxvf db-4.6.21.tar.gz
- 编译安装
cd db-4.6.21/build_unix
sudo ../dist/configure --prefix=/usr/local/berkeleyDB
sudo make && make install
- 拷贝指定文件到制定目录
sudo cp /usr/local/berkeleyDB/include/* /usr/include/
sudo cp /usr/local/berkeleyDB/lib/* /usr/lib/
- 建立软连接
#进入到etc下ld.so.conf在最后一行加上DB安装的lib /usr/local/berkeleyDB/lib
vi /etc/ld.so.conf
#然后执行命令
ldconfig
注意: 如果不进行这个操作可能下列配置就会无效 提示BerkeleyDB version is mistach
- 配置环境变量
vi ~/.bash_profile
输入下面内容
CPPFLAGS="-I/usr/local/berkeleyDB/include"
export CPPFLAGS
LDFLAGS="-L/usr/local/lib -L/usr/local/berkeleyDB/lib -R/usr/local/berkeleyDB/lib"
export LDFLAGS
LD_LIBRARY_PATH="/usr/local/berkeleyDB/lib"
export LD_LIBRARY_PATH
- 更新环境变量文件
source ~/.bash_profile
openLDAP的安装和配置
- 安装openLDAP
sudo yum install tcp_wrappers
sudo yum install libtool-ltdl.x86_64 libtool-ltdl-devel.x86_64
wget ftp://ftp.openldap.org/pub/OpenLDAP/openldap-release/openldap-2.4.42.tgz
tar -xzvf openldap-2.4.42.tgz
cd openldap-2.4.42/
sudo ./configure --enable-bdb --libdir=/usr/local/berkeleyDB/lib --includedir=/usr/local/berkeleyDB/include --prefix=/usr/local/openldap --sysconfdir=/etc/openldap
sudo make depend
sudo make && make install
- 配置OpenLDAP
#导入模式文件
sudo cp $DCM4CHEE_ARC/ldap/schema/* /etc/openldap/openldap/schema/
- 修改配置文件slapd.conf
#已有文件core 添加没有的其他三条没有的schema以及其他相关配置
vi /etc/openldap/openldap/slapd.conf
include /etc/openldap/openldap/schema/core.schema
include /etc/openldap/openldap/schema/dicom.schema
include /etc/openldap/openldap/schema/dcm4che.schema
include /etc/openldap/openldap/schema/dcm4chee-archive.schema
suffix "dc=dcm4che,dc=org"
rootdn "cn=admin,dc=dcm4che,dc=org"
rootpw secret
- 启动
sudo cp /etc/openldap/openldap/DB_CONFIG.example /usr/local/openldap/var/openldap-data/DB_CONFIG
sudo /usr/local/openldap/libexec/slapd -d256 -f /etc/openldap/openldap/slapd.conf
常见错误:
5d0b2eb1 @(#) $OpenLDAP: slapd 2.4.44 (Jun 20 2019 14:49:42) $ root@localhost.localdomain:/opt/openldap-2.4.44/servers/slapd 5d0b2eb1 slapd stopped.
原因:
修改配置文件slapd.conf出现错误了
安装OpenLDAP客户端
#另外开启的连接窗口输入命令进行安装(如果你的openLDAP后台运行的话就不需要另开)
yum install -y openldap-clients nss-pam-ldapd
- 导入配置文件
常见错误:
ldapadd: symbol lookup error: ldapadd: undefined symbol: ldap_pvt_tls_destroy
原因:
没有使用sudo带头
OpenLDAP客户端导入对应的ldif文件
sudo ldapadd -x -w secret -D "cn=admin,dc=dcm4che,dc=org" -f $DCM4CHEE_ARC/ldap/init-baseDN.ldif
sudo ldapadd -x -w secret -D "cn=admin,dc=dcm4che,dc=org" -f $DCM4CHEE_ARC/ldap/init-config.ldif
sudo ldapadd -x -w secret -D "cn=admin,dc=dcm4che,dc=org" -f $DCM4CHEE_ARC/ldap/default-config.ldif
sudo ldapadd -x -w secret-D "cn=admin,dc=dcm4che,dc=org" -f $DCM4CHEE_ARC/ldap/add-vendor-data.ldif
#导入上述文件中时,我们发现日志输出dicomAETitle=UNKNOW,所以我们新建一个名为名AETitle.ldif的LDIF文件,并且输入以下内容然后用ldapadd指令导入文件
version: 1
# LDIF for modifying the AE Title of the Archive
# Adjust Base DN (dc=dc=dcm4che,dc=org), Device name (dcm4chee-arc), previous AE Title (DCM4CHEE),
# new AE Title (MY_AE) before import it into the LDAP server
dn: dicomAETitle=DCM4CHEE,dicomDeviceName=dcm4chee-arc,cn=Devices,cn=DICOM Configuration,dc=dcm4che,dc=org
changetype: moddn
newrdn: dicomAETitle=AC
deleteoldrdn: 1
newsuperior: dicomDeviceName=dcm4chee-arc,cn=Devices,cn=DICOM Configuration,dc=dcm4che,dc=org
修改存储路径
我们可以根据项目的实际情况,采用自定义存储目录:
新建一个名为storage-directory.ldif的LDIF 文件
然后输入下面内容:
version: 1
dn: dcmStorageID=fs1,dicomDeviceName=dcm4chee-arc,cn=Devices,cn=DICOM Configuration,dc=dcm4che,dc=org
changetype: modify
replace: dcmURI
dcmURI: file:///data/dcm/
然后用ldapadd指令导入文件
配置Archive连接
#配置指定Archive允许连接
#创建sample-device.ldif文件,填入下面内容,然后用ldapadd指令导入文件
version: 1
# LDIF for adding a Device providing one Application Entity available on one Network connection
# Adjust Base DN (dc=dcm4che,dc=org), Device name (SAMPLE_DEVICE), AE Title (SAMPLE_AET),
# Hostname (sample.host.name) and Port number before import it into the LDAP server
# Unique AE Title
# (will fail if there is already an object for the same AE Title)
dn: dicomAETitle=SAMPLE_AET,cn=Unique AE Titles Registry,cn=DICOM Configuration,dc=dcm4che,dc=org
objectClass: dicomUniqueAETitle
dicomAETitle: SAMPLE_AET
# Device
dn: dicomDeviceName=SAMPLE_DEVICE,cn=Devices,cn=DICOM Configuration,dc=dcm4che,dc=org
objectClass: dicomDevice
dicomDeviceName: SAMPLE_DEVICE
dicomInstalled: TRUE
# Network Connection
dn: cn=dicom,dicomDeviceName=SAMPLE_DEVICE,cn=Devices,cn=DICOM Configuration,dc=dcm4che,dc=org
objectClass: dicomNetworkConnection
cn: dicom
dicomHostname: sample.host.name
dicomPort: 12345
# Network Connection (secure)
# dn: cn=dicom-tls,dicomDeviceName=SAMPLE_DEVICE,cn=Devices,cn=DICOM Configuration,dc=dcm4che,dc=org
# cn: dicom-tls
# objectClass: dicomNetworkConnection
# dicomHostname: sample.host.name
# dicomPort: 23456
# dicomTLSCipherSuite: TLS_RSA_WITH_AES_128_CBC_SHA
# dicomTLSCipherSuite: SSL_RSA_WITH_3DES_EDE_CBC_SHA
# Network Application Entity
dn: dicomAETitle=SAMPLE_AET,dicomDeviceName=SAMPLE_DEVICE,cn=Devices,cn=DICOM Configuration,dc=dcm4che,dc=org
objectClass: dicomNetworkAE
dicomAETitle: SAMPLE_AET
dicomNetworkConnectionReference: cn=dicom,dicomDeviceName=SAMPLE_DEVICE,cn=Devices,cn=DICOM Configuration,dc=dcm4che,dc=org
# dicomNetworkConnectionReference: cn=dicom-tls,dicomDeviceName=SAMPLE_DEVICE,cn=Devices,cn=DICOM Configuration,dc=dcm4che,dc=org
dicomAssociationInitiator: TRUE
dicomAssociationAcceptor: TRUE
安装/设置/启动WildFly
- 配置wildfly的环境变量
WILDFLY_HOME=/opt/wildfly-10.0.0.Final(解压文件的目录)
export WILDFLY_HOME
- 拷贝配置文件到制定目录
cp -r $DCM4CHEE_ARC/configuration/dcm4chee-arc $WILDFLY_HOME/standalone/configuration
- 添加dcm4chee-arc 配置文件
cd $WILDFLY_HOME/standalone/configuration/
cp standalone-full.xml dcm4chee-arc.xml
# 把配置文件中所有的127.0.0.1 改为0.0.0.0 如果不修改只允许本机访问
sed -i "s/127.0.0.1/0.0.0.0/g" dcm4chee-arc.xml
- 从dcm4che中获取需要的运行环境文件
# 这里的运行环境文件的版本号有可能因为你使用的dcm4che的版本不同而有所不同 根据实际情况进行调整
cd $WILDFLY_HOME
unzip $DCM4CHEE_ARC/jboss-modules/dcm4che-jboss-modules-dcm4chee-arc-light-5.17.0.zip
unzip $DCM4CHEE_ARC/jboss-modules/jai_imageio-jboss-modules-1.2-pre-dr-b04.zip
# 最新版本这个zip包是没有的,其他版本没有去一一观看\
unzip $DCM4CHEE_ARC/jboss-modules/querydsl-jboss-modules-4.1.4-noguava.zip 文件
unzip $DCM4CHEE_ARC/jboss-modules/jclouds-jboss-modules-1.9.2-noguava.zip
unzip $DCM4CHEE_ARC/jboss-modules/ecs-object-client-jboss-modules-3.0.0.zip
unzip $DCM4CHEE_ARC/jboss-modules/jdbc-jboss-modules-1.0.0-mysql.zip
- 查看module.xml文件
cat $WILDFLY_HOME/modules/com/mysql/main/module.xml
<?xml version="1.0" encoding="UTF-8"?>
<module xmlns="urn:jboss:module:1.1" name="com.mysql">
<resources>
<resource-root path="mysql-connector-java-5.1.36-bin.jar"/>
</resources>
<dependencies>
<module name="javax.api"/>
<module name="javax.transaction.api"/>
</dependencies>
</module>
注意:
从文件内容看到path属性指向的室一个jar文件,mysql连接驱动依赖,所以我们要在module.xml所在的目录添加这个文件(需要自行下载,版本要与module.xml中一致)
- 使用正确的配置文件以独立模式启动WildFly
$WILDFLY_HOME/bin/standalone.sh -c dcm4chee-arc.xml
#启动成功以后的界面
=========================================================================
JBoss Bootstrap Environment
JBOSS_HOME: /opt/wildfly-10.0.0.Final
JAVA: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.212.b04-0.el7_6.x86_64/bin/java
JAVA_OPTS: -server -Xms64m -Xmx512m -XX:MetaspaceSize=96M -XX:MaxMetaspaceSize=256m -Djava.net.preferIPv4Stack=true -Djboss.modules.system.pkgs=org.jboss.byteman -Djava.awt.headless=true
=========================================================================
- 启动成功以后,新开一个连接窗口,使用JBoss CLI将JDBC驱动程序添加到服务器配置中
$WILDFLY_HOME/bin/jboss-cli.sh -c
#添加成功以后界面显示:
[standalone@localhost:9990 /]
#选择驱动进行配置(这里使用的是mysql)
[standalone@localhost:9990 /] /subsystem=datasources/jdbc-driver=mysql:add(driver-name=mysql,driver-module-name=com.mysql)
#相关的数据源配置以及绑定JNDI
[standalone@localhost:9990 /] data-source add --name=PacsDS --driver-name=mysql --connection-url=jdbc:mysql://192.168.21.132:3306/dcm --jndi-name=java:/PacsDS --user-name=root --password=123456
#补充说明
MySQL的<jdbc-url>:jdbc:mysql://<host>:3306/<database-name>
dcm4chee其实内部已经提供了对应的脚本,如果你的数据库是安装到同一系统的话可以直接运行下面的命令执行脚本:
$WILDFLY_HOME/bin/jboss-cli.sh -c --file=$DCM4CHEE_ARC/cli/add-data-source-<db>.cli
脚本的具体内容(实际与手动输入一致):
/subsystem=datasources/jdbc-driver=mysql:add(driver-module-name=com.mysql,driver-name=mysql)
data-source add --name=pacsds --driver-name=mysql --jndi-name=java:/PacsDS \
--connection-url=jdbc:mysql://localhost:3306/pacsdb \
--user-name=pacs --password=<user-password>
[standalone@localhost:9990 /] data-source enable --name=PacsDS
- 使用JBoss CLI创建JMS队列
#手动方式(执行下面相关指令):
[standalone@localhost:9990 /] jms-queue add --queue-address=StgCmtSCP --entries=java:/jms/queue/StgCmtSCP
[standalone@localhost:9990 /] jms-queue add --queue-address=StgCmtSCU --entries=java:/jms/queue/StgCmtSCU
[standalone@localhost:9990 /] jms-queue add --queue-address=MPPSSCU --entries=java:/jms/queue/MPPSSCU
[standalone@localhost:9990 /] jms-queue add --queue-address=IANSCU --entries=java:/jms/queue/IANSCU
[standalone@localhost:9990 /] jms-queue add --queue-address=Export1 --entries=java:/jms/queue/Export1
[standalone@localhost:9990 /] jms-queue add --queue-address=Export2 --entries=java:/jms/queue/Export2
[standalone@localhost:9990 /] jms-queue add --queue-address=Export3 --entries=java:/jms/queue/Export3
[standalone@localhost:9990 /] jms-queue add --queue-address=HL7Send --entries=java:/jms/queue/HL7Send
[standalone@localhost:9990 /] jms-queue add --queue-address=RSClient --entries=java:/jms/queue/RSClient
[standalone@localhost:9990 /] jms-queue add --queue-address=DiffTasks --entries=java:/jms/queue/DiffTasks
[standalone@localhost:9990 /] jms-queue add --queue-address=Export4 --entries=java:/jms/queue/Export4
[standalone@localhost:9990 /] jms-queue add --queue-address=Export5 --entries=java:/jms/queue/Export5
[standalone@localhost:9990 /] jms-queue add --queue-address=Export6 --entries=java:/jms/queue/Export6
[standalone@localhost:9990 /] jms-queue add --queue-address=Export7 --entries=java:/jms/queue/Export7
[standalone@localhost:9990 /] jms-queue add --queue-address=Export8 --entries=java:/jms/queue/Export8
[standalone@localhost:9990 /] jms-queue add --queue-address=Export9 --entries=java:/jms/queue/Export9
[standalone@localhost:9990 /] jms-queue add --queue-address=Export10 --entries=java:/jms/queue/Export10
[standalone@localhost:9990 /] jms-queue add --queue-address=StgVerTasks --entries=java:/jms/queue/StgVerTasks
[standalone@localhost:9990 /] jms-queue add --queue-address=Rejection --entries=java:/jms/queue/Rejection
[standalone@localhost:9890 /] jms-queue add --queue-address=Retrieve1 --entries=java:/jms/queue/Retrieve1
[standalone@localhost:9890 /] jms-queue add --queue-address=Retrieve2 --entries=java:/jms/queue/Retrieve2
[standalone@localhost:9890 /] jms-queue add --queue-address=Retrieve3 --entries=java:/jms/queue/Retrieve3
[standalone@localhost:9890 /] jms-queue add --queue-address=Retrieve4 --entries=java:/jms/queue/Retrieve4
[standalone@localhost:9890 /] jms-queue add --queue-address=Retrieve5 --entries=java:/jms/queue/Retrieve5
[standalone@localhost:9890 /] jms-queue add --queue-address=Retrieve6 --entries=java:/jms/queue/Retrieve6
[standalone@localhost:9890 /] jms-queue add --queue-address=Retrieve7 --entries=java:/jms/queue/Retrieve7
[standalone@localhost:9890 /] jms-queue add --queue-address=Retrieve8 --entries=java:/jms/queue/Retrieve8
[standalone@localhost:9890 /] jms-queue add --queue-address=Retrieve9 --entries=java:/jms/queue/Retrieve9
[standalone@localhost:9890 /] jms-queue add --queue-address=Retrieve10 --entries=java:/jms/queue/Retrieve10
[standalone@localhost:9890 /] jms-queue add --queue-address=Retrieve11 --entries=java:/jms/queue/Retrieve11
[standalone@localhost:9890 /] jms-queue add --queue-address=Retrieve12 --entries=java:/jms/queue/Retrieve12
[standalone@localhost:9890 /] jms-queue add --queue-address=Retrieve13 --entries=java:/jms/queue/Retrieve13
#使用内置脚本执行:
$WILDFLY_HOME/bin/jboss-cli.sh -c --file=$DCM4CHEE_ARC/cli/add-jms-queues.cli
#调整 managed-executor-services 配置
[standalone@localhost:9990 /] /subsystem=ee/managed-executor-service=default:undefine-attribute(name=hung-task-threshold)
[standalone@localhost:9990 /] /subsystem=ee/managed-executor-service=default:write-attribute(name=long-running-tasks,value=true)
[standalone@localhost:9990 /] /subsystem=ee/managed-executor-service=default:write-attribute(name=core-threads,value=2)
[standalone@localhost:9990 /] /subsystem=ee/managed-executor-service=default:write-attribute(name=max-threads,value=100)
[standalone@localhost:9990 /] /subsystem=ee/managed-executor-service=default:write-attribute(name=queue-length,value=0)
[standalone@localhost:9990 /] /subsystem=ee/managed-scheduled-executor-service=default:undefine-attribute(name=hung-task-threshold)
[standalone@localhost:9990 /] /subsystem=ee/managed-scheduled-executor-service=default:write-attribute(name=long-running-tasks,value=true)
[standalone@localhost:9990 /] /subsystem=ee/managed-scheduled-executor-service=default:write-attribute(name=core-threads,value=2)
#添加设备名称(默认是dcm4chee-arc)
[standalone@localhost:9990 /]/system-property=dcm4chee-arc.DeviceName:add(value=dcm4chee-arc)
#使用JBoss CLI部署DCM4CHEE Archive 5.x
[standalone@localhost:9990 /] deploy $DCM4CHEE_ARC/deploy/dcm4chee-arc-ear-5.x-psql.ear
#ps:如果出现 Unrecognized variable DCM4CHEE_ARC ,可以使用绝对路径替换$DCM4CHEE_ARC,如下
deploy /opt/dcm4chee-arc-5.10.0-mysql/deploy/dcm4chee-arc-ear-5.10.0-mysql.ear