derekmerck.orthanc_docker

Ansible Rola dla Orthanc w Dockerze

Derek Merck
derek_merck@brown.edu
Szpital w Rhode Island i Uniwersytet Browna
Providence, RI

Skonfiguruj i uruchom węzeł DICOM Orthanc w kontenerze Docker.

Zależności

Role w Galaxy

Lokalny Węzeł

  • Python Cryptography, jeśli hasła są szyfrowane

Zdalny Węzeł

Zmienne roli

Obraz i tag Docker

orthanc_docker_image:       "jodogne/orthanc"
orthanc_docker_image_tag:   "latest"

Wybierz obraz i tag Orthanc.

  • jodogne/orthanc to oficjalny obraz Orthanc for Docker utrzymywany przez Sébastiena Jodogne.
  • jodogne/orthanc-plugins to oficjalny obraz wspierający backend PostgreSQL.
  • osimis/orthanc to spin stworzony przez zewnętrznego dostawcę Osimis for Docker, z doskonałym przeglądarkiem internetowym.
  • derekmerck/orthanc to spin stworzony przez zewnętrznego dostawcę z wsparciem dla wielu architektur (amd64, arm32v7, aarch64).
  • derekmerck/orthanc-plugins to odpowiedni spin multi-arch z wsparciem dla backendu PostgreSQL.

Konfiguracja kontenera 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"

Konfiguracja usługi

Skonfiguruj usługę. Te zmienne są używane w pliku konfiguracyjnym.

orthanc_title:              "Orthanc"
orthanc_aet:                "ORTHANC"
orthanc_user:               "orthanc"
orthanc_password:           "passw0rd!"

Dodatkowe złożone elementy konfiguracyjne wstrzykiwane do orthanc.conf, które muszą być zgodne z odpowiednim formatem.

orthanc_users:              {}
orthanc_peers:              {}
orthanc_modalities:         {}

Konfiguracja routingu

Orthanc można skonfigurować jako router, dodając słownik z destynacjami (peer). Podczas routingu Orthanc może opcjonalnie anonimizować i/lub kompresować dane.

orthanc_anonymize:          False
orthanc_compress:           False
orthanc_destinations:       [{dest: nazwa peer lub modality, type: peer lub dicom}, ..]

Konfiguracja 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

Przykładowy Playbook

Uruchom pojedynczą instancję Orthanc.

- hosts: dicom_node
  roles:
     - derekmerck.orthanc_docker

Uruchom pojedynczą instancję Orthanc z dodatkowymi użytkownikami i peerami.

- 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 ]

Uwaga: Obecnie działa to tylko dla haseł użytkowników. Uruchom pojedynczą instancję Orthanc z dodatkowymi użytkownikami i peerami, używając zaszyfrowanych haseł.

- 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=="]

Uruchom wiele instancji korzystających z tego samego backendu dla równoważenia obciążenia.

- hosts: dicom_node
  tasks:
  - include_role:
      name: derekmerck.orthanc_docker
    vars:
      # Zmienne niezależne
      orthanc_api_port:        "804{{ item }}"
      orthanc_dicom_port:      "424{{ item }}"
      
      # Zmienne wspólne
      orthanc_data_dir:        "/data/orthanc"
      orthanc_docker_image:    "jodogne/orthanc-plugins"
      orthanc_pg_backend:      True
      orthanc_db_name:         "orthanc"
    with_sequence: count=5

Uruchom multiplexer z kompresją.

- 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

Licencja

MIT

O projekcie

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

Zainstaluj
ansible-galaxy install derekmerck.orthanc_docker
Licencja
Unknown
Pobrania
79
Właściciel