Install DCM4CHEE Archive light 5.x インストールメモ
dcm4chee 5.x バージョンが出ていたのでインストールしてみました。LDAPの設定が新たに必要になっています。
LDAPはモダリティの装置名などに使用するのでしょうか?「PS3.15 医療におけるデジタル画像と通信」にはなにやら書かれておりますが、とくに日常現場で使う必要はなさそうです。。
おおむね、マニュアル通りに設定をしていますが、LDAPが理解不足で。。。
対象OS: CentOS7 (CentOS-7-x86_64-Minimal-2009.iso)
----usbでインストール。その後、isoファイルをHDDに展開してローカルレポジトリとします。2024年以降も使いたい。。。。。
(以下 centosに入っているものをそのまま使用しています)
データベース: postgresql
LDAPサーバ: OpenLDAP
java: openjdk
>useradd pacs
>passwd pacs
適当なパスワード
フォルダは以下に展開
dcm4chee-arc-5.15.1-psql.zip >> /var/dcm4chee-arc
wildfly-12.0.0.Final.zip >> /opt/wildfly
user: pacs
>su -l postgres
>createuser pacs
>psql -U postgres
postgres=#create database pacsdb owner pacs;
postgres=#\q
>su -l pacs
psql pacsdb < /var/dcm4chee-arc/sql/create-psql.sql
psql pacsdb < /var/dcm4chee-arc/sql/create-fk-index.sql
centos7用のLDAPではslapd.confファイルを直接編集するのではなく、コマンドから設定します。
>yum -y install openldap openldap-clients openldap-servers
20.20. Berkeley DBのDB設定ファイルをコピー
>cp -p /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG
>systemctl enable slapd
>systemctl start slapd
# slappasswd
New passwrd:secret
Re-enter new password: secret
{SSHA}*****************************
>cd /var/dcm4chee-arc/ldap/slapd
>ldapadd -Y EXTERNAL -H ldapi:/// -f dicom.ldif
>ldapadd -Y EXTERNAL -H ldapi:/// -f dcm4che.ldif
>ldapadd -Y EXTERNAL -H ldapi:/// -f dcm4chee-archive.ldif
>ldapadd -Y EXTERNAL -H ldapi:/// -f dcm4chee-archive-ui.ldif
保存終了
データベース: postgresql
LDAPサーバ: OpenLDAP
java: openjdk
01. OSの設定
centosにもpacsユーザを作成しておいた。>useradd pacs
>passwd pacs
適当なパスワード
フォルダは以下に展開
dcm4chee-arc-5.15.1-psql.zip >> /var/dcm4chee-arc
wildfly-12.0.0.Final.zip >> /opt/wildfly
10. データベース
10.10. 設定
postgresql.conf,pg_hba.confは適宜に編集。10.20. データベースとユーザの作成。
database: pacsdbuser: pacs
>su -l postgres
>createuser pacs
>psql -U postgres
postgres=#create database pacsdb owner pacs;
postgres=#\q
10.30. テーブルとインデックスの作成
>su -l pacs
psql pacsdb < /var/dcm4chee-arc/sql/create-psql.sql
psql pacsdb < /var/dcm4chee-arc/sql/create-fk-index.sql
20. LDAP Server
centos のものをそのまま使用しますcentos7用のLDAPではslapd.confファイルを直接編集するのではなく、コマンドから設定します。
20.10. インストール
>yum -y install openldap openldap-clients openldap-servers
20.20. Berkeley DBのDB設定ファイルをコピー
>cp -p /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG
20.30. サービスの登録と起動
>systemctl enable slapd
>systemctl start slapd
20.40. 管理者パスワード
# slappasswd
New passwrd:secret
Re-enter new password: secret
{SSHA}*****************************
20.50. ダイナミック設定
>cd /var/dcm4chee-arc/ldap/slapd
>ldapadd -Y EXTERNAL -H ldapi:/// -f dicom.ldif
>ldapadd -Y EXTERNAL -H ldapi:/// -f dcm4che.ldif
>ldapadd -Y EXTERNAL -H ldapi:/// -f dcm4chee-archive.ldif
>ldapadd -Y EXTERNAL -H ldapi:/// -f dcm4chee-archive-ui.ldif
20.60. olcSuffixの書き換え(replace)
modify-baseDN.ldif を新規作成
>vi modify-baseDN.ldif
changetype: modify
replace: olcSuffix
olcSuffix: dc=dcm4che,dc=org
-
replace: olcRootDN
olcRootDN: cn=admin,dc=dcm4che,dc=org
changetype: modify
replace: olcSuffix
olcSuffix: dc=dcm4che,dc=org
-
replace: olcRootDN
olcRootDN: cn=admin,dc=dcm4che,dc=org
-
保存終了
実行します
>ldapmodify -Y EXTERNAL -H ldapi:/// -f modify-baseDN.ldif
確認します
ldapsearch -LLL -Y EXTERNAL -H ldapi:/// -b 'olcDatabase={2}hdb,cn=config'
>vi setup_pwd.ldif
dn: olcDatabase={0}config,cn=config
changetype: modify
add: olcRootPW
olcRootPW: {SSHA}************************ #(20.40 で取得したもの)
dn: olcDatabase={2}hdb,cn=config
changetype: modify
add: olcRootPW
olcRootPW: {SSHA}************************ #(20.40 で取得したもの)
実行
>ldapadd -Y EXTERNAL -H ldapi:// -f ./setup_pwd.ldif
確認
>ldapsearch -LLL -Y EXTERNAL -H ldapi:/// -b 'olcDatabase={2}hdb,cn=config'
>vi slapd_setup_basic.ldif
dn: dc=dcm4che,dc=org
changetype: add
objectClass: top
objectClass: dcObject
objectClass: organization
o: dcm4che.org
dc: dcm4che
dn: cn=admin,dc=dcm4che,dc=org
changetype: add
objectClass: simpleSecurityObject
objectClass: organizationalRole
cn: admin
description: LDAP administrator
userPassword: {SSHA}***************************
実行
>ldapmodify -x -D cn=admin,dc=dcm4che,dc=org -H ldapi:/// -f slapd_setup_basic.ldif -W
>secret
Apache Directory Studio 2.0.0-M9 (http://directory.apache.org/studio/downloads.html)のダウンロード
適当な場所に展開
ApacheDirectoryStudio を実行
Hostname: localhost
Port: 389
Authentication Parameter:
Bind DN or user: cn=admin,dc=dcm4che,dc=org
Bind password: secret
Browser Options: #<=ない
Base DN: dc=dcm4che,dc=org #<=ない
上記設定でログイン
/var/dcm4chee-arc/ldap以下の5つのファイルを import
init-baseDN.ldif #<=もともと設定されているためエラー
init-config.ldif
default-config.ldif
default-ui-config.ldif
add-vendor-data.ldif
/opt/wildfly へ解凍
> cp -r /var/dcm4chee-arc/configuration/dcm4chee-arc /opt/wildfly/standalone/configuration
> cd /opt/wldfly/standalone/configuration/
> cp standalone-full.xml dcm4chee-arc.xml
>cd /opt/wildfly
>unzip /var/dcm4chee-arc/jboss-modules/dcm4che-jboss-modules-5.x.x.zip
>unzip /var/dcm4chee-arc/jboss-modules/jai_imageio-jboss-modules-1.2-pre-dr-b04.zip
>unzip /var/dcm4chee-arc/jboss-modules/querydsl-jboss-modules-4.2.1-noguava.zip
>unzip /var/dcm4chee-arc/jboss-modules/jclouds-jboss-modules-2.1.0-noguava.zip
>unzip /var/dcm4chee-arc/jboss-modules/ecs-object-client-jboss-modules-3.0.0.zip
>cd /opt/wildfly
>unzip /var/dcm4chee-arc/jboss-modules/jdbc-jboss-modules-1.0.0-psql.zip
>cp postgresql-42.2.5.jar /opt/wildfly/modules/org/postgresql/main/
vi /opt/wildfly//modules/org/postgresql/main/module.xml
<?xml version="1.0" encoding="UTF-8"?>
<module xmlns="urn:jboss:module:1.1" name="org.postgresql">
<resources>
<resource-root path="postgresql-42.2.5.jar"/>
</resources>
<dependencies>
<module name="javax.api"/>
<module name="javax.transaction.api"/>
</dependencies>
</module>
> /opt/wildfly/bin/standalone.sh -c dcm4chee-arc.xml
/subsystem=datasources/jdbc-driver=psql:add(driver-module-name=org.postgresql,driver-name=psql)
data-source add --name=pacsds --driver-name=psql --jndi-name=java:/PacsDS \
--connection-url=jdbc:postgresql://localhost:5432/pacsdb \
--user-name=pacs --password=pacsユーザのパスワード
実行
>/opt/wildfly/bin/jboss-cli.sh -c --file=/var/dcm4chee-arc/cli/add-data-source-psql.cli
確認
>/opt/wildfly/bin/jboss-cli.sh -c
[standalone@localhost:9990 /] ls subsystem
[standalone@localhost:9990 /] ls subsystem=datasources
[standalone@localhost:9990 /] ls subsystem=datasources/data-source=pacsds
[standalone@localhost:9990 /] ls subsystem=datasources/jdbc-driver=psql
>/opt/wildfly/bin/jboss-cli.sh -c --file=/var/dcm4chee-arc/cli/add-jms-queues.cli
> /opt/wildfly/bin/jboss-cli.sh -c
[standalone@localhost:9990 /] deploy /var/dcm4chee-arc/deploy/dcm4chee-arc-ear-5.13.3-psql.ear
>/opt/wildfly/bin/add-user.sh
user-name: admin
password: ******
http://localhost:8080/dcm4chee-arc/ui2.
>storescu.exe -v -aet any -aec DCM4CHEE 192.168.0.* 11112 xray.dcm
(ちなみにフォルダごと再帰的に送信の場合は以下。極めて便利。dicom以外のファイルはスルーしてくれる)
>storescu.exe -v +r +sd -aet any -aec DCM4CHEE 192.168.0.* c:\temp\
>ldapmodify -Y EXTERNAL -H ldapi:/// -f modify-baseDN.ldif
確認します
ldapsearch -LLL -Y EXTERNAL -H ldapi:/// -b 'olcDatabase={2}hdb,cn=config'
20.70. パスワードの変更
>vi setup_pwd.ldif
dn: olcDatabase={0}config,cn=config
changetype: modify
add: olcRootPW
olcRootPW: {SSHA}************************ #(20.40 で取得したもの)
dn: olcDatabase={2}hdb,cn=config
changetype: modify
add: olcRootPW
olcRootPW: {SSHA}************************ #(20.40 で取得したもの)
実行
>ldapadd -Y EXTERNAL -H ldapi:// -f ./setup_pwd.ldif
確認
>ldapsearch -LLL -Y EXTERNAL -H ldapi:/// -b 'olcDatabase={2}hdb,cn=config'
20.80. 最上位要素とLDAP管理者アカウントのオブジェクトの作成
>vi slapd_setup_basic.ldif
dn: dc=dcm4che,dc=org
changetype: add
objectClass: top
objectClass: dcObject
objectClass: organization
o: dcm4che.org
dc: dcm4che
dn: cn=admin,dc=dcm4che,dc=org
changetype: add
objectClass: simpleSecurityObject
objectClass: organizationalRole
cn: admin
description: LDAP administrator
userPassword: {SSHA}***************************
実行
>ldapmodify -x -D cn=admin,dc=dcm4che,dc=org -H ldapi:/// -f slapd_setup_basic.ldif -W
>secret
30. 設定をLDAPサーバにインポート
Apache Directory Studio 2.0.0-M9 (http://directory.apache.org/studio/downloads.html)のダウンロード
適当な場所に展開
ApacheDirectoryStudio を実行
30.10. 設定
Network Parameter:Hostname: localhost
Port: 389
Authentication Parameter:
Bind DN or user: cn=admin,dc=dcm4che,dc=org
Bind password: secret
Browser Options: #<=ない
Base DN: dc=dcm4che,dc=org #<=ない
上記設定でログイン
30.20. インポート
Connection > localhost(右クリック) > import/var/dcm4chee-arc/ldap以下の5つのファイルを import
init-baseDN.ldif #<=もともと設定されているためエラー
init-config.ldif
default-config.ldif
default-ui-config.ldif
add-vendor-data.ldif
40. Wildflyの設定
40.10. インストール
ver 12.0/opt/wildfly へ解凍
40.20. dcm4cheeのconfiguration files のコピー
> cp -r /var/dcm4chee-arc/configuration/dcm4chee-arc /opt/wildfly/standalone/configuration
40.30. standalone-full.xml>dcm4chee-arc.xml
> cd /opt/wldfly/standalone/configuration/
> cp standalone-full.xml dcm4chee-arc.xml
40.40. ライブラリをJBossモジュールとしてインストール
>cd /opt/wildfly
>unzip /var/dcm4chee-arc/jboss-modules/dcm4che-jboss-modules-5.x.x.zip
>unzip /var/dcm4chee-arc/jboss-modules/jai_imageio-jboss-modules-1.2-pre-dr-b04.zip
>unzip /var/dcm4chee-arc/jboss-modules/querydsl-jboss-modules-4.2.1-noguava.zip
>unzip /var/dcm4chee-arc/jboss-modules/jclouds-jboss-modules-2.1.0-noguava.zip
>unzip /var/dcm4chee-arc/jboss-modules/ecs-object-client-jboss-modules-3.0.0.zip
40.50. jdbc ドライバー
コアモジュールとして>cd /opt/wildfly
>unzip /var/dcm4chee-arc/jboss-modules/jdbc-jboss-modules-1.0.0-psql.zip
40.60. postgresql-42.2.4.jar のダウンロードとコピー
>cp postgresql-42.2.5.jar /opt/wildfly/modules/org/postgresql/main/
40.70. module.xmlファイルの編集
resource-root path=を上記のダンロードしたファイル名にするvi /opt/wildfly//modules/org/postgresql/main/module.xml
<?xml version="1.0" encoding="UTF-8"?>
<module xmlns="urn:jboss:module:1.1" name="org.postgresql">
<resources>
<resource-root path="postgresql-42.2.5.jar"/>
</resources>
<dependencies>
<module name="javax.api"/>
<module name="javax.transaction.api"/>
</dependencies>
</module>
40.80. スタンドアローンモードでWildFlyを起動
> /opt/wildfly/bin/standalone.sh -c dcm4chee-arc.xml
40.90. JBoss CLIを使用してJDBCドライバーをサーバー設定に追加
add-data-source-psql.cliの編集- >vi add-data-source-psql.cli
/subsystem=datasources/jdbc-driver=psql:add(driver-module-name=org.postgresql,driver-name=psql)
data-source add --name=pacsds --driver-name=psql --jndi-name=java:/PacsDS \
--connection-url=jdbc:postgresql://localhost:5432/pacsdb \
--user-name=pacs --password=pacsユーザのパスワード
実行
>/opt/wildfly/bin/jboss-cli.sh -c --file=/var/dcm4chee-arc/cli/add-data-source-psql.cli
確認
>/opt/wildfly/bin/jboss-cli.sh -c
[standalone@localhost:9990 /] ls subsystem
[standalone@localhost:9990 /] ls subsystem=datasources
[standalone@localhost:9990 /] ls subsystem=datasources/data-source=pacsds
[standalone@localhost:9990 /] ls subsystem=datasources/jdbc-driver=psql
40.100. JBoss CLIを使用してJMSキューを作成
>/opt/wildfly/bin/jboss-cli.sh -c --file=/var/dcm4chee-arc/cli/add-jms-queues.cli
40.110. JBoss CLIを使用してdcm4chee-arcをデプロイ(配備)
> /opt/wildfly/bin/jboss-cli.sh -c
[standalone@localhost:9990 /] deploy /var/dcm4chee-arc/deploy/dcm4chee-arc-ear-5.13.3-psql.ear
40.120. WildFlayのadmin ユーザーを作成
>/opt/wildfly/bin/add-user.sh
user-name: admin
password: ******
50. ブラウザで参照
http://localhost:9990http://localhost:8080/dcm4chee-arc/ui2.
60. sendscu
dcmtkよりstorescu>storescu.exe -v -aet any -aec DCM4CHEE 192.168.0.* 11112 xray.dcm
(ちなみにフォルダごと再帰的に送信の場合は以下。極めて便利。dicom以外のファイルはスルーしてくれる)
>storescu.exe -v +r +sd -aet any -aec DCM4CHEE 192.168.0.* c:\temp\
70. 保存場所の変更
70.10. 保存場所
デフォルトは ${wildfly}/standalone/data/fs1 なので /data/にブラウザで変更
http://localhost:8080/dcm4chee-arc/ui2/
configration>Device>Dcm4Chee>Extension>ArchiveDrive>StorageDescriptor>StrageURI
file:///data/
70.20. 保存形式
保存形式はデフォルトでは送信日時だったのでstudydateに変更
>storageProperty
pathFormat=00080020,date,yyyy}/{00080020,date,MM}/{00080020,date,dd}/{0020000D,hash}/{0020000E,hash}/{00080018,hash}
80. 自動実行
>useradd wildfly
>cd /opt
>chown -R wildfly:wildfly wildfly
>cd /etc
>mkdir wildfly
>cd wildfly
>cp /opt/wildfly/docs/contrib/scripts/systemd/wildfly.conf ./wildfly.conf
>vi wildfly.conf
# The configuration you want to run
WILDFLY_CONFIG=dcm4chee-arc.xml
# The mode you want to run
WILDFLY_MODE=standalone
# The address to bind to
WILDFLY_BIND=0.0.0.0
>cd /etc/systemd/system/
>cp -piv /opt/wildfly/docs/contrib/scripts/systemd/wildfly.service ./wildfly.service
>cd /opt/wildfly/bin/
>cp /opt/wildfly/docs/contrib/scripts/systemd/launch.sh ./launch.sh
/var/dcm4chee-arc にwildflyユーザの実行権限を再帰的に与えます。
>systemctl start wildfly
>systemctl enable wildfly
>cd /opt
>chown -R wildfly:wildfly wildfly
>cd /etc
>mkdir wildfly
>cd wildfly
>cp /opt/wildfly/docs/contrib/scripts/systemd/wildfly.conf ./wildfly.conf
>vi wildfly.conf
# The configuration you want to run
WILDFLY_CONFIG=dcm4chee-arc.xml
# The mode you want to run
WILDFLY_MODE=standalone
# The address to bind to
WILDFLY_BIND=0.0.0.0
>cd /etc/systemd/system/
>cp -piv /opt/wildfly/docs/contrib/scripts/systemd/wildfly.service ./wildfly.service
>cd /opt/wildfly/bin/
>cp /opt/wildfly/docs/contrib/scripts/systemd/launch.sh ./launch.sh
/var/dcm4chee-arc にwildflyユーザの実行権限を再帰的に与えます。
>systemctl start wildfly
>systemctl enable wildfly