derekmerck.orthanc_docker

Ansibleロール for Orthanc in Docker

ビルド状況

デレック・マーク
derek_merck@brown.edu
ロードアイランド病院とブラウン大学
プロビデンス, RI

Dockerコンテナ内にOrthanc DICOMノードを設定し、実行します。

依存関係

Galaxyロール

ローカルノード

  • パスワードシークレットが暗号化されている場合は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

プロジェクトについて

Configure and run an [Orthanc](https://www.orthanc-server.com) DICOM node in a Docker container

インストール
ansible-galaxy install derekmerck.orthanc_docker
ライセンス
Unknown
ダウンロード
79
所有者