docker-compose で dcm4chee arc が設定できるか

dcm4chee の設定はとても面倒なものですが、docker を使えばかなり簡単に導入できるようです。

さらに docker-compose を使えばもっと簡単になります。

でも、今のところ dicom ファイルを見ることはできていません。

環境は、linux mint 20.3 です。

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

で検索して、リストアップされたものを削除します。

でも、どうして削除できない部分を設定するんでしょうか?

なんだか食い込まれている感じで嫌ですね。