##目的
DICOMサーバーであるDcm4chee-arc-lightをUbuntu 18.04 LTSにインストールする。
###問題点
以下のリンクを参考に進めていけば標準的な設定で構築できるはずだが、ディストリビューション毎の差異を調整する必要がある。この種のサーバーを必要とする現場には時間に余裕がなく、各々が解決するには無駄が多い。
公式Wiki
https://github.com/dcm4che/dcm4chee-arc-light/wiki/Installation
CentOSでの導入事例
Install DCM4CHEE Archive light 5.x インストールメモ
http://csdicom.blogspot.com/2019/02/install-dcm4chee-archive-light-5x.html
###解決方法
医療現場での導入が多いと思われるUbuntuへのインストール例を示して、参考にしてもらう。
###使用ソフト
下記のファイル群が最新であったため、これらを使用した。
- [dcm4chee-arc-5.19.0-mysql.zip](https://sourceforge.net/projects/dcm4che/files/dcm4chee-arc-light5/)
- [wildfly-18.0.0.Final.zip](https://wildfly.org/downloads/)
- [weasis_3.5.4-rc-1_amd64.deb](https://github.com/nroduit/Weasis/releases)
- [weasis-pacs-connector.war(7.1.1)](https://sourceforge.net/projects/dcm4che/files/Weasis/weasis-pacs-connector/)
- [ApacheDirectoryStudio-2.0.0.v20180908-M14-linux.gtk.x86_64.tar.gz](https://directory.apache.org/studio/downloads.html)
###インストール
例文中のHOGEは作業をしているアカウントのユーザー名。
ApacheDirectoryStudio以外は全てターミナル内での作業になる。
####MySQLのインストール
% sudo apt install mysql-server
% sudo mysql_secure_installation
MySQLの設定の参考に
https://onobutaonnsenn.naturum.ne.jp/e3203250.html
https://weblabo.oscasierra.net/mysql-57-init-setup/
####dcm4chee-arc-lightの準備
% cd /opt
% sudo unzip ~/Downloads/dcm4chee-arc-5.19.0-mysql.zip
% sudo chown -R HOGE:HOGE /opt/dcm4chee-arc-5.19.0-mysql
% sudo ln -s /opt/dcm4chee-arc-5.19.0-mysql /opt/dcm4chee
% cd dcm4chee
####databaseの作成
% sudo mysql -u root -p<root-password>
mysql> create database pacsdb;
mysql> grant all on pacsdb.* to 'pacs' identified by 'DBPassWord';
mysql> quit
% mysql -u pacs -pDBPassWord pacsdb < /opt/dcm4chee/sql/create-mysql.sql
####OpenLDAPのインストール、設定
% sudo apt install slapd ldap-utils
設定時に入力するldapのadminパスワードをldap-passとする。
% sudo systemctl start slapd
% sudo ldapadd -Y EXTERNAL -H ldapi:/// -f /opt/dcm4chee/ldap/slapd/dicom.ldif
% sudo ldapadd -Y EXTERNAL -H ldapi:/// -f /opt/dcm4chee/ldap/slapd/dcm4che.ldif
% sudo ldapadd -Y EXTERNAL -H ldapi:/// -f /opt/dcm4chee/ldap/slapd/dcm4chee-archive.ldif
% sudo ldapadd -Y EXTERNAL -H ldapi:/// -f /opt/dcm4chee/ldap/slapd/dcm4chee-archive-ui.ldif
modify-baseDN.ldif の編集
dn: olcDatabase={1}mdb,cn=config
changetype: modify
replace: olcSuffix
olcSuffix: dc=dcm4che,dc=org
-
replace: olcRootDN
olcRootDN: cn=admin,dc=dcm4che,dc=org
-
% sudo ldapmodify -Y EXTERNAL -H ldapi:/// -f modify-baseDN.ldif
コンソール出力の最終行が
modifying entry "olcDatabase={1}mdb,cn=config"
となっていることを確認。
ldapmodify: invalid format (line 8) entry: "olcDatabase={1}mdb,cn=config"
がでる場合は、ファイル内の各スペースが半角になっているか、無駄なスペースが入っていないか確認する。
% slappasswd -s ldap-pass
で出力された
{SSHA}xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
を以下のファイルのuserPassword:の後に記載する。
slapd_setup_basic.ldifの作成
dn: dc=dcm4che,dc=org
changetype: add
objectClass: top
objectClass: dcObject
objectClass: organization
o: Example Organisation name
dc: dcm4che
dn: cn=admin,dc=dcm4che,dc=org
changetype: add
objectClass: simpleSecurityObject
objectClass: organizationalRole
cn: admin
description: LDAP administrator
userPassword:{SSHA}xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
% ldapmodify -x -W -D cn=admin,dc=dcm4che,dc=org -H ldapi:/// -f slapd_setup_basic.ldif
####ApacheDirectoryStudio
% cd ~/
% sudo apt install default-jre libmysql-java
% tar xzvf Downloads/ApacheDirectoryStudio-2.0.0.v20180908-M14-linux.gtk.x86_64.tar.gz
% ./ApacheDirectoryStudio/ApacheDirectoryStudio &
参考
https://www.unix-power.net/networking/post-593
以下のパラメーターでサーバーに接続
Network Parameter:
Hostname: localhost
Port: 389
Authentication Parameter:
Bind DN or user: cn=admin,dc=dcm4che,dc=org
Bind password: ldap-pass
左ツリー・ビューの dc=dcm4che, dc=org を右クリックして現れるコンテキストメニューからimport→LDIF import...で以下のファイルをインポートする。init-baseDN.ldifは必要ないようだ。
/opt/dcm4chee/ldap/init-config.ldif
/opt/dcm4chee/ldap/default-config.ldif
/opt/dcm4chee/ldap/default-ui-config.ldif
/opt/dcm4chee/ldap/add-vendor-data.ldif
####WildFly
% cd /opt
% sudo unzip ~/Downloads/wildfly-18.0.0.Final.zip
% sudo chown -R HOGE:HOGE /opt/wildfly-18.0.0.Final
% sudo ln -s /opt/wildfly-18.0.0.Final /opt/wildfly
% cp -r /opt/dcm4chee/configuration/dcm4chee-arc /opt/wildfly/standalone/configuration
% cp /opt/wildfly/standalone/configuration/standalone-full.xml /opt/wildfly/standalone/configuration/dcm4chee-arc.xml
% cd /opt/wildfly
% unzip /opt/dcm4chee/jboss-modules/dcm4che-jboss-modules-5.19.0.zip
% unzip /opt/dcm4chee/jboss-modules/jai_imageio-jboss-modules-1.2-pre-dr-b04.zip
% unzip /opt/dcm4chee/jboss-modules/jclouds-jboss-modules-2.1.2-noguava.zip
% unzip /opt/dcm4chee/jboss-modules/ecs-object-client-jboss-modules-3.0.0.zip
% unzip /opt/dcm4chee/jboss-modules/jdbc-jboss-modules-1.0.0-mysql.zip
mysql-connector-java
% cp /usr/share/java/mysql-connector-java-5.1.45.jar /opt/wildfly/modules/com/mysql/main/
/opt/wildfly/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.45.jar"/>
</resources>
<dependencies>
<module name="javax.api"/>
<module name="javax.transaction.api"/>
</dependencies>
</module>
/opt/wildfly/standalone/configuration/dcm4chee-arc/ldap.propertiesの編集
java.naming.security.credentials
をldapのadminパスワードに変更する。
java.naming.factory.initial=com.sun.jndi.ldap.LdapCtxFactory
java.naming.ldap.attributes.binary=dicomVendorData
java.naming.provider.url=ldap://localhost:389/dc=dcm4che,dc=org
java.naming.security.principal=cn=admin,dc=dcm4che,dc=org
java.naming.security.credentials=ldap-pass
別のターミナルで以下のコマンドを入力しwildflyを立ち上げる。
% /opt/wildfly/bin/standalone.sh -c dcm4chee-arc.xml
/opt/dcm4chee/cli/add-data-source-mysql.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?useSSL=false&requireSSL=false \
--user-name=pacs --password=DBPassWord
元のコンソールで以下のコマンドを入力する
% /opt/wildfly/bin/jboss-cli.sh -c --file=/opt/dcm4chee/cli/add-data-source-mysql.cli
% /opt/wildfly/bin/jboss-cli.sh -c --file=/opt/dcm4chee/cli/add-jms-queues.cli
JBossのクライアントに入る
% /opt/wildfly/bin/jboss-cli.sh -c
クライアント内で以下のコマンドを実行する。
[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)
[standalone@localhost:9990 /] deploy /opt/dcm4chee/deploy/dcm4chee-arc-ear-5.19.0-mysql.ear
[standalone@localhost:9990 /] quit
deployがエラーなく終了すれば、ブラウザーで
http://localhost:8080/dcm4chee-arc/ui2
にアクセスできる。
別のターミナルで立ち上げてあったwildflyをCtrl+cで終了させておく。
####systemdへの登録
% sudo useradd wildfly
/etc/passwdの編集
wildfly:x:997:998::/opt/wildfly:/sbin/nologin
wildflyでログインできないようにしておく。
% sudo mkdir /etc/wildfly
% sudo cp /opt/wildfly/docs/contrib/scripts/systemd/wildfly.conf /etc/wildfly/
/etc/wildfly/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
% sudo cp /opt/wildfly/docs/contrib/scripts/systemd/wildfly.service /etc/systemd/system/wildfly.service
% sudo cp /opt/wildfly/docs/contrib/scripts/systemd/launch.sh /opt/wildfly/bin/
% cd /opt
% sudo chown -R wildfly:wildfly wildfly-18.0.0.Final
% sudo chown -R wildfly:wildfly wildfly
% sudo chown -R wildfly:wildfly dcm4chee-arc-5.19.0-mysql
% sudo chown -R wildfly:wildfly dcm4chee
% sudo systemctl enable wildfly
% sudo systemctl start wildfly
でdcm4chee-arc-lightサーバーを起動することができる。
必要なAEを登録することで使用可能となる。
ui2画面で
Menu > Configuration > AE List > Registaer new application entity (+ボタン)
サーバーとしてきちんと使いたいときは
http://csdicom.blogspot.com/2019/02/install-dcm4chee-archive-light-5x.html
の「保存場所の変更」「自動実行」を参考に調整するといいかと。
####既存のdcmファイルを登録
使い慣れているので、ここではDCMTKのdcmsendを使う。
% sudo apt install dcmtk
Hostname : localhost
Port : 104
AE Title : DCMSEND
上記のパラメーターでAEを登録すれば、下記コマンドで送ることができる。
dcmsend -v +v -aet DCMSEND -aec DCM4CHEE localhost 11112 *.dcm
####weasis
ui2画面で
Menu > Configuration > Devices > dcm4chee-arc > Device Extensions > Archive Device > Attributes
Invoke Image Display Patient URL
weasis://$dicom:rs --url "http://HOSTNAME:8080/dcm4chee-arc/aets/DCM4CHEE/rs" -r "&patientID={}" --query-ext "&includedefaults=false" -- accept-ext="transfer-syntax=*"&target=_self
Invoke Image Display Study URL
weasis://$dicom:rs --url "http://HOSTNAME:8080/dcm4chee-arc/aets/DCM4CHEE/rs" -r "&studyUID={}" --query-ext "&includedefaults=false" -- accept-ext="transfer-syntax=*"&target=_self
/opt/wildfly/bin/add-user.shを実行しManagement Userを追加。http://localhost:9990/ のHAL Management Consoleに入れるようにしておく。
Deployments > Deploy an Application > add からweasis-pacs-connector.warをDeployした後ui2を再読込すると、眼球のアイコン Open study in the viewerが出現する。
各クライアントにWeasisをインストールすれば、閲覧可能となる。
% sudo dpkg -i ~/Downloads/weasis_3.5.4-rc-1_amd64.deb
この記事は
https://sites.google.com/site/twunji/dcm4chee-arc-light
を再編集したものです。
終了
2020/10/11
Ubuntu 18.04のDcm4chee-arc-lightをアップグレードする
続き