dcm4chee の設定はとても面倒なものですが、docker を使えばかなり簡単に導入できるようです。
さらに docker-compose を使えばもっと簡単になります。
でも、今のところ dicom ファイルを見ることはできていません。
環境は、linux mint 20.3 です。
- docker-compose のインストール
- docker-compose.yml と docker-compose.envの作成
- Create and start the 3 containers by invoking
- コンテナを止める
- 再スタート
- コンテナを止めて削除
- dicom ファイルをインポート
- 目のアイコンを表示するための設定
- weasis-pac-connector の deploy
- weasis のインストール
- AE title の設定
- RESTEASY003210: Could not find resource for full path: https://localhost:8443/dcm4chee-arc/ui2/
- docker-compose が一番現実味がある
- docker を完全に削除できない
docker-compose のインストール
まずは docker-compose をインストール。
sudo apt install docker-compose
専用のディレクトリを作成。
mkdir ~/dcm4chee
cd ~/dcm4chee
docker-compose.yml と docker-compose.envの作成
docker-compose.yml
version: "3"
services:
ldap:
image: dcm4che/slapd-dcm4chee:2.6.0-26.0
logging:
driver: json-file
options:
max-size: "10m"
ports:
- "389:389"
env_file: docker-compose.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.2-26
logging:
driver: json-file
options:
max-size: "10m"
ports:
- "5432:5432"
env_file: docker-compose.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.26.0
logging:
driver: json-file
options:
max-size: "10m"
ports:
- "8080:8080"
- "8443:8443"
- "9990:9990"
- "9993:9993"
- "11112:11112"
- "2762:2762"
- "2575:2575"
- "12575:12575"
env_file: docker-compose.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
docker-compose.env
STORAGE_DIR=/storage/fs1
POSTGRES_DB=pacsdb
POSTGRES_USER=pacs
POSTGRES_PASSWORD=pacs
Create and start the 3 containers by invoking
sudo docker-compose -p dcm4chee up -d
結果は、
Creating network "dcm4chee_network" with the default driver
Creating dcm4chee_ldap_1 ...
Creating dcm4chee_db_1 ...
Creating dcm4chee_ldap_1
Creating dcm4chee_db_1 ... done
Creating dcm4chee_arc_1 ...
Creating dcm4chee_arc_1 ... done
dcm4chee arc にアクセス。
コンテナを止める
sudo docker-compose -p dcm4chee stop
結果。
Stopping dcm4chee_arc_1 ... done
Stopping dcm4chee_db_1 ... done
Stopping dcm4chee_ldap_1 ... done
再スタート
sudo docker-compose -p dcm4chee start
結果。
Starting db ... done
Starting ldap ... done
Starting arc ... done
コンテナを止めて削除
sudo docker-compose -p dcm4chee down
結果。
Stopping dcm4chee_arc_1 ... done
Stopping dcm4chee_db_1 ... done
Stopping dcm4chee_ldap_1 ... done
Removing dcm4chee_arc_1 ... done
Removing dcm4chee_db_1 ... done
Removing dcm4chee_ldap_1 ... done
Removing network dcm4chee_network
image は削除されません。
全 image を削除するには、
sudo docker images -aq | xargs docker rmi
dicom ファイルをインポート
cd ~/dcm4che-2.0.29/bin
./dcmsnd DCM4CHEE@localhost:11112 ~/ccc
目のアイコンを表示するための設定
インストールした dcm4chee arc のバージョンは、
dcm4che/dcm4chee-arc-psql:5.26.0
なので、
IID_PATIENT_URL=../../weasis-pacs-connector/weasis?patientID={{patientID}}&access_token={{access_token}}
IID_STUDY_URL=../../weasis-pacs-connector/weasis?studyUID={{studyUID}}&access_token={{access_token}}
IID_URL_TARGET=_self
の3行をあるところに書き込みます。
「Configuration」から、以下のようにして「ある場所」に辿り着きます。
このプロセスは猛烈にわかりにくくて勘違いを誘発するようにできています。
Devices
Device Name の dcm4chee-arc
Extensions
Device Extension の Edit extension
Child Objects
以下のような画面が出るはずです。

「Web Applications」をクリックして「DCM4CHEE」を選択。
このページの下の方にある「property」に上の 3 行を 1 行ずつ書き込みます。
もう一度示すと、
IID_PATIENT_URL=../../weasis-pacs-connector/weasis?patientID={{patientID}}&access_token={{access_token}}
IID_STUDY_URL=../../weasis-pacs-connector/weasis?studyUID={{studyUID}}&access_token={{access_token}}
IID_URL_TARGET=_self
下の方にある「save」ボタンを押します。
そうすると、目のアイコンが表示されるようになります。

weasis-pac-connector の deploy
上の画面で目のアイコンをクリックすると「404 – Not Found」になります。
たぶん weasis-pacs-connector がないから。
これは docker なのでコンテナ内に入る必要があります。
sudo docker-compose exec arc bash
/opt/wildfly/bin/add-user.sh を起動して Management Userを追加。
/opt/wildfly/bin/add-user.sh
以下のような画面が現れるので、
What type of user do you wish to add?
a) Management User (mgmt-users.properties)
b) Application User (application-users.properties)
(a):
a を選択して、適当なユーザー名とパスワードを設定。
http://localhost:9990/ にアクセス。

weasis-pacs-connector を deploy します。
しかし、deploy しても weasis は起動しません。
AE title が設定してないから?
HAL Management Console で

右の「/weasis-pacs-connector.war」のリンクをクリックすると、

weasis-launcher.jar がないと言ってます。
おそらく weasis-pacs-connector の設定ミス?
virtualbox の ubuntu 18.04 に docker を使わずに設定したものでは上のエラーは出ません。
weasis のインストール
sudo dpkg -i ~/Downloads/weasis_3.5.4-1_amd64.deb
AE title の設定
これがどうにもわかりません。
このことを詳しく説明したサイトがないのでチンプンカンプン。
このサイトを見ると、

この通りに実行しようとするのですが、途中でストップします。
何をしたらいいのかがわからなくなります。
RESTEASY003210: Could not find resource for full path: https://localhost:8443/dcm4chee-arc/ui2/
いろいろゴチャゴチャやっていたら、dcm4chee arc の画面に入れなくなりました。
サーバーは起動しています。
docker のコンテナ・イメージを全部削除して、最初から作り直してもダメです。
docker って virtualbox のように、全削除すればいいというものではないようです。
どこかに情報が残っているのでしょうか?
やはり、docker を動かすときは virtualbox 上の方がいいのかもしれません。
…………
このエラーメッセージの原因がわかりました。
/var/local/dcm4chee-arc/wildfly が残っていたためでした。
削除すれば元に戻ります。
sudo rm -r /var/local/dcm4chee-arc/wildfly
docker-compose が一番現実味がある
まだ見れていないくせに言うのはなんですが、docker-compose が一番設定が楽かもしれません。
docker を完全に削除できない
docker をアンインストールしたいと思ったのですが、どうしても以下のファイルは削除できないようです。
/sys/fs/cgroup/blkio/docker
/sys/fs/cgroup/pids/docker
/sys/fs/cgroup/freezer/docker
/sys/fs/cgroup/memory/docker
/sys/fs/cgroup/cpuset/docker
/sys/fs/cgroup/perf_event/docker
/sys/fs/cgroup/hugetlb/docker
/sys/fs/cgroup/net_cls,net_prio/docker
/sys/fs/cgroup/devices/docker
/sys/fs/cgroup/cpu,cpuacct/docker
/sys/fs/cgroup/systemd/docker
その他のものは以下のようにして削除します。
sudo apt purge docker-compose
sudo apt autoremove
そして、
sudo find / -name docker
で検索して、リストアップされたものを削除します。
でも、どうして削除できない部分を設定するんでしょうか?
なんだか食い込まれている感じで嫌ですね。