derekmerck.orthanc_docker

Ansible Role for Orthanc in Docker

This Ansible role helps you set up and run an Orthanc DICOM node using Docker.

Author

Derek Merck
Email: derek_merck@brown.edu
Affiliation: Rhode Island Hospital and Brown University, Providence, RI

Features

  • Easily configure and start Orthanc in a Docker container.

Requirements

Galaxy Roles

  • geerlingguy.docker: To set up the Docker environment.
  • geerlingguy.pip: To install Python packages.
  • derekmerck.postgres-docker: For setting up a PostgreSQL backend, if needed.

Local Node

  • Python Cryptography (required if password secrets are encrypted).

Remote Node

Configuration Variables

Docker Image and Tag

In your playbook, set the Orthanc Docker image and tag like this:

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

You can choose from various official and third-party Orthanc images.

Docker Container Details

You can configure the Docker container's parameters as follows:

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"

Service Settings

Set the Orthanc service parameters:

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

You can also define additional configuration items as needed:

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

Routing Options

You can set up Orthanc to route DICOM data:

orthanc_anonymize: False
orthanc_compress: False
orthanc_destinations: [{dest: "peer name", type: "peer or dicom"}, ...]

PostgreSQL Settings

If you are using PostgreSQL, configure it as follows:

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

Example Playbooks

  1. Run a single Orthanc instance:
- hosts: dicom_node
  roles:
    - derekmerck.orthanc_docker
  1. Run Orthanc with additional users and peers:
- 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]
  1. Run multiple instances for load balancing:
- 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
  1. Run a forwarder with compression:
- 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

License

This role is open-source and is released under the MIT License.

Informazioni sul progetto

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

Installa
ansible-galaxy install derekmerck.orthanc_docker
Licenza
Unknown
Download
79
Proprietario