derekmerck.orthanc_docker

Rol de Ansible para Orthanc en Docker

Estado de Construcción

Derek Merck
derek_merck@brown.edu
Hospital de Rhode Island y Universidad de Brown
Providence, RI

Configura y ejecuta un nodo DICOM de Orthanc en un contenedor Docker.

Dependencias

Roles de Galaxy

Nodo Local

  • Python Cryptography, si los secretos de las contraseñas están encriptados

Nodo Remoto

Variables del Rol

Imagen y Etiqueta de Docker

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

Selecciona una imagen y etiqueta para Orthanc.

  • jodogne/orthanc es la imagen oficial de Orthanc para Docker mantenida por Sébastien Jodogne.
  • jodogne/orthanc-plugins es la imagen oficial que admite la base de datos Postgresql.
  • osimis/orthanc es una imagen de terceros de Osimis para Docker con un excelente visor web para revisión y anotación.
  • derekmerck/orthanc es una imagen de terceros de Orthanc con soporte para múltiples arquitecturas. Incluye GDCM para compresión JPG sobre la marcha.
  • derekmerck/orthanc-plugins es la imagen correspondiente de múltiples arquitecturas con soporte para la base de datos PostgreSQL.

Configuración del Contenedor 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"

Configuración del Servicio

Configura el servicio. Estas variables se utilizan en el archivo de configuración de la plantilla.

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

Elementos de configuración adicionales complejos que se inyectan en orthanc.conf. Deben seguir el formato apropiado (ver abajo).

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

Configuración de Enrutamiento

Orthanc puede configurarse como enrutador incluyendo un diccionario de destinos (pares). Durante el enrutamiento, Orthanc puede opcionalmente anonimizar y/o comprimir datos. Consulta el rol derekmerck/queued-orthanc para ejemplos de cómo construir enrutamiento más flexible con un servicio "DIANA-Watcher".

orthanc_anonymize:          False
orthanc_compress:           False
orthanc_destinations:       [{dest: nombre del par o modalidad, type: peer o dicom}, ..]

Configuración de 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

Ejemplo de Playbook

Ejecuta una sola instancia de orthanc.

- hosts: dicom_node
  roles:
     - derekmerck.orthanc_docker

Ejecuta una sola instancia de orthanc con algunos usuarios y pares adicionales.

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

Nota: Esto actualmente solo funciona para contraseñas de usuario. Ejecuta una sola instancia de orthanc con usuarios y pares adicionales utilizando contraseñas confidenciales (encriptadas con fernet).

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

Ejecuta múltiples instancias contra la misma base de datos para balanceo de carga.

- hosts: dicom_node
  tasks:
  - include_role:
      name: derekmerck.orthanc_docker
    vars:
      # Variables independientes
      orthanc_api_port:        "804{{ item }}"
      orthanc_dicom_port:      "424{{ item }}"
      
      # Variables compartidas
      orthanc_data_dir:        "/data/orthanc"
      orthanc_docker_image:    "jodogne/orthanc-plugins"
      orthanc_pg_backend:      True
      orthanc_db_name:         "orthanc"
    with_sequence: count=5

Ejecuta un reenvío multiplexor con compresión.

- 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

Licencia

MIT

Acerca del proyecto

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

Instalar
ansible-galaxy install derekmerck.orthanc_docker
Licencia
Unknown
Descargas
79
Propietario