ubuntu 18.08 に dcm4chee arc を設定(未完成)

virtualbox の ubuntu 18.08 に dcm4chee arc をインストールしたいと思っています。

今のところ未完成ですが、かなりいいところまでは来ていると思っています。

後はAE title の設定方法でしょうか

参考サイトは「Ubuntu 18.04にDcm4chee-arc-lightをインストールする」です。

コマンド入力の工夫

参考サイトを見るとわかると思いますが、コピーペーストでも猛烈に複雑で面倒です。
コピーも大変ですし、簡単に間違えてしまいそうです。

そこで prism を使ってクリップボードにコピーするようにしました。

さらに、mysql ログイン画面でクリップボードにコピーすると「mysql>」までコピーされてしまうので、ちょっと工夫して必要なコマンドだけをコピーするようにしました。

例えば、以下の prism 画面で右の方の copy をクリックすると

mysql> 
ALTER user 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'moheno';

クリップボードには、


ALTER user 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'moheno';

だけがコピーされるので、そのままペーストすればいいようになってます。

ユーザー名やパスワードなど


コンピュータ名 : hoge
ldap のパスワード : ldap-pass
mysql の root パスワード : moheno
Management User のユーザー名 : heno
Management User のパスワード : moheno

ホームに「Downloads」というディレクトリを作成して必要なアプリを移動しておきます。

必要なアプリ

必要なアプリは以下の5つ。
(weasis_3.5.4-1_amd64.deb だけはオリジナルと少し異なる)

dcm4chee-arc-5.19.0-mysql.zip
wildfly-18.0.0.Final.zip
weasis_3.5.4-1_amd64.deb
weasis-pacs-connector.war(7.1.1)
ApacheDirectoryStudio-2.0.0.v20180908-M14-linux.gtk.x86_64.tar.gz

Java のインストール


sudo apt install openjdk-11-jre-headless

mysql のインストール


sudo apt install mysql-server

パスワード設定。


sudo mysql
mysql> 
ALTER user 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'moheno';
mysql> 
\q

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の作成


mysql -u root -p
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-pass」

以下は一気にコピペでOK。


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 の作成。


sudo nano modify-baseDN.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
-

記録して閉じる場合は、「ctl + O」→「ctl + x」。

確認。


sudo ldapmodify -Y EXTERNAL -H ldapi:/// -f modify-baseDN.ldif

コンソール出力の最終行が


modifying entry "olcDatabase={1}mdb,cn=config"

となっていることを確認。


slappasswd -s ldap-pass

で出力された
{SSHA}xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
を以下のファイルのuserPassword:の後に記載する。

slapd_setup_basic.ldif の作成。


sudo nano slapd_setup_basic.ldif
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

ldap-pass でログインできることを確認。


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

connection name はdcmとした。

左ツリー・ビューの dc=dcm4che, dc=org を右クリックして現れるコンテキストメニューからimport→LDIF import…で以下のファイルをインポートする。


/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

インポート後は閉じる。

以下のようなエラーが出る。


Failed to load module "canberra-gtk-module"
Gtk-Message: 16:36:28.308: Failed to load module "canberra-gtk-module"
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by org.apache.directory.studio.connection.core.io.jndi.LdifSearchLogger (file:/home/hoge/ApacheDirectoryStudio/plugins/org.apache.directory.studio.connection.core_2.0.0.v20180908-M14.jar) to field java.util.logging.FileHandler.files
WARNING: Please consider reporting this to the maintainers of org.apache.directory.studio.connection.core.io.jndi.LdifSearchLogger
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release

「ctl + c 」で終了。

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 の編集。


sudo nano /opt/wildfly/modules/com/mysql/main/module.xml
/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の編集。


sudo nano /opt/wildfly/standalone/configuration/dcm4chee-arc/ldap.properties
/opt/wildfly/standalone/configuration/dcm4chee-arc/ldap.properties

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の編集。


sudo nano /opt/dcm4chee/cli/add-data-source-mysql.cli
/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)
/subsystem=ee/managed-executor-service=default:write-attribute(name=long-running-tasks,value=true)
/subsystem=ee/managed-executor-service=default:write-attribute(name=core-threads,value=2)
/subsystem=ee/managed-executor-service=default:write-attribute(name=max-threads,value=100)
/subsystem=ee/managed-executor-service=default:write-attribute(name=queue-length,value=0)
/subsystem=ee/managed-scheduled-executor-service=default:undefine-attribute(name=hung-task-threshold)
/subsystem=ee/managed-scheduled-executor-service=default:write-attribute(name=long-running-tasks,value=true)
/subsystem=ee/managed-scheduled-executor-service=default:write-attribute(name=core-threads,value=2)
deploy /opt/dcm4chee/deploy/dcm4chee-arc-ear-5.19.0-mysql.ear
quit

deployがエラーなく終了すれば、ブラウザーで

http://localhost:8080/dcm4chee-arc/ui2

にアクセスできる。

ctl + c で wildfly を終了。

systemdへの登録


sudo useradd wildfly

sudo nano /etc/passwd

wildfly の ID を確認して最後に以下を加える。wildfly の ID は一番下にあるものを使う。


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 の編集。


sudo nano /etc/wildfly/wildfly.conf
/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を登録することで使用可能となる。----> 必要なAEって?

ui2画面で
Menu > Configuration > AE List > Registaer new application entity (+ボタン)

既存のdcmファイルをインポート

dcm4che-2.0.29 を用意して、


cd /home/hoge/dcm4che-2.0.29/bin
./dcmsnd DCM4CHEE@localhost:11112 ~/aaa

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

画面を下にスクロールして「save」。

Management Userを追加。


sudo /opt/wildfly/bin/add-user.sh

「a」 を選択して、適当なユーザー名とパスワードを設定。

http://localhost:9990/ のHAL Management Consoleに入る。

Deployments > Deploy an Application > add からweasis-pacs-connector.warをDeployした後ui2を再読込すると、眼球のアイコン Open study in the viewerが出現する。

各クライアントにWeasisをインストールすれば、閲覧可能となる。 --> ならない。AEの設定が必要か?


sudo dpkg -i ~/Downloads/weasis_3.5.4-1_amd64.deb

AE の設定

ここまでで、dicom ファイルのアップロードはできて目のアイコンも表示され、それをクリックすると weasis が立ち上がるようになりましたが、肝心の dicom ファイルがローカルにダウンロードされません。

おそらく AE の設定が必要なのでしょうが、アバウトに設定しても全然だめなようです。

この4番目まではできますが、5以下は具体的にどうすればいいのかはわかりません。

なぜこの情報があまりないんだろう?