derekmerck.orthanc_docker
Ansibleロール for Orthanc in Docker
デレック・マーク
derek_merck@brown.edu
ロードアイランド病院とブラウン大学
プロビデンス, RI
Dockerコンテナ内にOrthanc DICOMノードを設定し、実行します。
依存関係
Galaxyロール
- geerlingguy.docker Docker環境を設定するため
- geerlingguy.pip Pythonの依存関係をインストールするため
- derekmerck.postgres-docker PostgreSQLバックエンドを設定するため(必要な場合)
ローカルノード
- パスワードシークレットが暗号化されている場合はPython Cryptography
リモートノード
ロール変数
Dockerイメージとタグ
orthanc_docker_image: "jodogne/orthanc"
orthanc_docker_image_tag: "latest"
Orthancのイメージとタグを選択します。
jodogne/orthanc
は、セバスチャン・ジョドーニによって維持されている公式の基本Orthanc for Dockerビルドです。jodogne/orthanc-plugins
は、PostgreSQLバックエンドをサポートする公式ビルドです(役割はPostgreSQL 10を使用 - trustyは9.5のツールインストールに問題があります)。osimis/orthanc
は、レビューと注釈のための優れたWebビューワーを持つサードパーティのOsimis for Dockerビルドです。derekmerck/orthanc
は、DIANAからの最新のリリースで、マルチアーキテクチャ(amd64、arm32v7、aarch64)対応のOrthancです。オンザフライのJPG圧縮のための[GDCM][]を含みます。ソースとDockerfileは、xarch-orthanc-dockerプロジェクトのGitHubにあります。derekmerck/orthanc-plugins
は、PostgreSQLバックエンドをサポートする対応するマルチアーキテクチャビルドです。
Dockerコンテナ設定
orthanc_container_name: "orthanc"
orthanc_use_data_container: True
orthanc_data_dir: "/data/{{ orthanc_container_name }}"
orthanc_config_dir: "/config/{{ orthanc_container_name }}"
orthanc_api_port: 8042
orthanc_dicom_port: 4242
orthanc_container_timezone: "America/New_York"
サービス設定
サービスを設定します。これらの変数は、テンプレートの設定ファイルで使用されます。
orthanc_title: "Orthanc"
orthanc_aet: "ORTHANC"
orthanc_user: "orthanc"
orthanc_password: "passw0rd!"
orthanc.conf
に挿入される追加の複雑な設定項目。適切なフォーマットに従う必要があります(以下参照)。
orthanc_users: {}
orthanc_peers: {}
orthanc_modalities: {}
ルーティング設定
Orthancは、宛先(ピア)の辞書を含めることでルーターとして設定できます。ルーティング時に、Orthancはデータを匿名化または圧縮することがオプションで可能です。より柔軟なルーティングの構築方法の例については、役割 derekmerck/queued-orthanc
を参照してください。
orthanc_anonymize: False
orthanc_compress: False
orthanc_destinations: [{dest: peerまたはモダリティ名, type: peerまたはdicom}, ..]
PostgreSQL設定
orthanc_pg_backend: False
orthanc_pg_user: "{{ orthanc_user }}"
orthanc_pg_password: "{{ orthanc_password }}"
orthanc_pg_database: "{{ orthanc_container_name }}"
orthanc_pg_host: "postgres"
orthanc_pg_port: 5432
使用例プレイブック
単一のOrthancインスタンスを実行します。
- hosts: dicom_node
roles:
- derekmerck.orthanc_docker
追加のユーザーとピアを持つ単一のOrthancインスタンスを実行します。
- hosts: dicom_node
roles:
- name: derekmerck.orthanc_docker
orthanc_users:
user1: password
user2: passw0rd!
orthanc_peers:
my_peer: [ "http://127.0.0.1:8043/", "user1", "password" ]
my_other_peer: [ "http://127.0.0.1:8043/", "user2", "passwOrd!"]
orthanc_modalities:
my_pacs: ["MY_PACS", "192.168.1.1", 104 ]
my_workstation: ["MY_WORKSTATION", "192.168.1.2", 104 ]
注:現在、これはユーザーパスワードにのみ機能しています。機密パスワード(fernetエンコード)を使用して追加のユーザーとピアを持つ単一のOrthancインスタンスを実行します。
- hosts: dicom_node
vars:
fernet_key: 't8YHZXpNvk_OFPkvyWc2rDWUxp7qXY6tiHr10f_PG3Y='
roles:
- name: derekmerck.orthanc_docker
orthanc_users:
user1: "gAAAAABbcFt-3M4t288flnG2xY88xKPx4U1l1phZtv4hDpnjNx3Mq8s9MnY74dY6Ab35qp6voKAVGJ9BMT8wlthPY4COk16sIg=="
user2: "gAAAAABbcFrtnhBWtrEC8QXvqByYsyEEqNKC2mP2joN4rcK58RNZIdKqMLErq-Lki6NhPSvpv_Y7fkYJRuaM4Gbt0QFFYZtZmQ=="
orthanc_peers:
my_peer: [ "http://127.0.0.1:8043/", "user1", "gAAAAABbcFt-3M4t288flnG2xY88xKPx4U1l1phZtv4hDpnjNx3Mq8s9MnY74dY6Ab35qp6voKAVGJ9BMT8wlthPY4COk16sIg==" ]
my_other_peer: [ "http://127.0.0.1:8043/", "user2", "gAAAAABbcFrtnhBWtrEC8QXvqByYsyEEqNKC2mP2joN4rcK58RNZIdKqMLErq-Lki6NhPSvpv_Y7fkYJRuaM4Gbt0QFFYZtZmQ=="]
同じバックエンドに対して複数のインスタンスを実行して負荷分散。
- hosts: dicom_node
tasks:
- include_role:
name: derekmerck.orthanc_docker
vars:
# 独立した変数
orthanc_api_port: "804{{ item }}"
orthanc_dicom_port: "424{{ item }}"
# 共有変数
orthanc_data_dir: "/data/orthanc"
orthanc_docker_image: "jodogne/orthanc-plugins"
orthanc_pg_backend: True
orthanc_db_name: "orthanc"
with_sequence: count=5
圧縮を伴う多重転送機を実行します。
- hosts: dicom_node
roles:
- name: derekmerck.orthanc_docker
orthanc_peers:
my_peer: [ "http://127.0.0.1:8043/", "user1", "password" ]
orthanc_modalities:
my_workstation: ["MY_WORKSTATION", "192.168.1.2", 104 ]
orthanc_destinations:
- dest: my_peer
type: peer
- dest: my_workstation
type: dicom
orthanc_compression: True
ライセンス
MIT