derekmerck.orthanc_docker
Ansible-Rolle für Orthanc in Docker
Derek Merck
derek_merck@brown.edu
Rhode Island Hospital und Brown University
Providence, RI
Konfigurieren und Ausführen eines Orthanc DICOM-Knotens in einem Docker-Container.
Abhängigkeiten
Galaxy Rollen
- geerlingguy.docker zum Einrichten der Docker-Umgebung
- geerlingguy.pip zum Installieren der Python-Anforderungen
- derekmerck.postgres-docker zum Einrichten des PostgreSQL-Backends, falls erforderlich
Lokaler Knoten
- Python-Kryptographie, falls Passwort-Geheimnisse verschlüsselt sind
Entfernter Knoten
Rollenvariablen
Docker-Image und Tag
orthanc_docker_image: "jodogne/orthanc"
orthanc_docker_image_tag: "latest"
Wählen Sie ein Orthanc-Image und einen Tag.
jodogne/orthanc
ist das offizielle Vanilla Orthanc für Docker-Build, das von Sébastien Jodogne gepflegt wird.jodogne/orthanc-plugins
ist das offizielle Build, das das PostgreSQL-Backend unterstützt (die Rolle verwendet PostgreSQL 10 – trusty hat ein Problem mit der Installation von Tools für 9.5).osimis/orthanc
ist ein drittanbieter Osimis für Docker-Spin mit einem ausgezeichneten Webviewer zur Überprüfung und Annotation.derekmerck/orthanc
ist ein drittanbieter Multi-Architektur (amd64, arm32v7, aarch64) bleeding-edge Release-Spin von Orthanc aus DIANA. Es enthält [GDCM][] für die JPG-Kompression im laufenden Betrieb. Quelle und Dockerfiles sind auf GitHub im xarch-orthanc-docker-Projekt.derekmerck/orthanc-plugins
ist der entsprechende Multi-Architektur-Spin mit Unterstützung für das PostgreSQL-Backend.
Docker-Container-Konfiguration
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"
Dienstkonfiguration
Konfigurieren Sie den Dienst. Diese Variablen werden in der Vorlagenkonfigurationsdatei verwendet.
orthanc_title: "Orthanc"
orthanc_aet: "ORTHANC"
orthanc_user: "orthanc"
orthanc_password: "passw0rd!"
Zusätzliche komplexe Konfigurationselemente, die in orthanc.conf
eingefügt werden. Sie müssen das entsprechende Format einhalten (siehe unten).
orthanc_users: {}
orthanc_peers: {}
orthanc_modalities: {}
Routing-Konfiguration
Orthanc kann als Router konfiguriert werden, indem ein Wörterbuch von Zielen (Peer) eingeschlossen wird. Beim Routing kann Orthanc optional die Daten anonymisieren und/oder komprimieren. Siehe die Rolle derekmerck/queued-orthanc
für Beispiele, wie man flexiblere Routen mit einem "DIANA-Watcher"-Dienst erstellt.
orthanc_anonymize: False
orthanc_compress: False
orthanc_destinations: [{dest: peer oder Modalitätsname, type: peer oder dicom}, ..]
PostgreSQL-Konfiguration
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
Beispiel-Playbook
Führen Sie eine einzelne Orthanc-Instanz aus.
- hosts: dicom_node
roles:
- derekmerck.orthanc_docker
Führen Sie eine einzelne Orthanc-Instanz mit einigen zusätzlichen Benutzern und Peers aus.
- 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 ]
Hinweis: Dies funktioniert derzeit nur für Benutzerpasswörter. Führen Sie eine einzelne Orthanc-Instanz mit zusätzlichen Benutzern und Peers aus, die vertrauliche Passwörter verwenden (fernet-kodiert).
- 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==" ]
Führen Sie mehrere Instanzen gegen dasselbe Backend für Lastenausgleich aus.
- hosts: dicom_node
tasks:
- include_role:
name: derekmerck.orthanc_docker
vars:
# Unabhängige Variablen
orthanc_api_port: "804{{ item }}"
orthanc_dicom_port: "424{{ item }}"
# Geteilte Variablen
orthanc_data_dir: "/data/orthanc"
orthanc_docker_image: "jodogne/orthanc-plugins"
orthanc_pg_backend: True
orthanc_db_name: "orthanc"
with_sequence: count=5
Führen Sie einen multiplexierenden Forwarder mit Kompression aus.
- 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
Lizenz
MIT
Configure and run an [Orthanc](https://www.orthanc-server.com) DICOM node in a Docker container
ansible-galaxy install derekmerck.orthanc_docker