DICOM store configuration (Orthanc)

Orthanc provides the DICOM Store functionality to enable scanners to send directly to OpenREM, and for query-retrieve to function. Configuration is in the orthanc section of docker-compose.yml

OpenREM Lua script configuration

This file is formatted as YAML:

  • Strings need to quoted or placed on a new line after a |

  • A : and a space separate the variable name and the value, and spaces are used at the start of the line to create a hierarchy. See the examples below.

Edit the docker-compose.yml file to make the changes. They will take effect next time docker-compose up -d is run.

Find the orthanc_1 definition near the end of the file.

Objects to be ignored

Lists of things to ignore. Orthanc will ignore anything matching the content of these comma separated lists: they will not be imported into OpenREM. Some examples have been added below - note the formatting syntax. STATION_NAMES_TO_IGNORE has the value on a new line with a | instead of being quoted, to show this syntax option:

environment:
  MANUFACTURERS_TO_IGNORE: "{'Faxitron X-Ray LLC', 'Gendex-KaVo'}"
  MODEL_NAMES_TO_IGNORE: "{'CR 85', 'CR 75'}"
  STATION_NAMES_TO_IGNORE: |
    {'CR85 Main', 'CR75 Main'}
  SOFTWARE_VERSIONS_TO_IGNORE: "{'VixWin Platinum v3.3'}"
  DEVICE_SERIAL_NUMBERS_TO_IGNORE: "{'SCB1312016'}"

Extractor for older Toshiba CT dose summary files

Enable or disable additional functionality to extract dose information from older Toshiba and GE scanners, and specify which CT scanners should use this method. Each system should be listed as {'Manufacturer', 'Model name'}, with systems in a comma separated list within curly brackets, as per the example below:

environment:
  USE_TOSHIBA_CT_EXTRACTOR: "true"
  TOSHIBA_EXTRACTOR_SYSTEMS: |
    {{'Toshiba', 'Aquilion'}, {'GE Medical Systems', 'Discovery STE'},}

Physics Filtering

Set this to true if you want Orthanc to keep physics test studies, and have it put them in the imports/physics/ folder. Set it to "false" to disable this feature

environment:
  USE_PHYSICS_FILTERING: "true"

A list to check against patient name and ID to see if the images should be kept.

environment:
  PHYSICS_TO_KEEP: "{'physics',}"

Orthanc Configuration

This section is formatted as JSON. It can contain any configuration options that appear in the standard Orthanc orthanc.json file, but the ones that are needed for OpenREM are included as standard and described below.

  • Strings need to quoted with double quotes ".

DICOM Application Entity Title

Application Entity Title of the Store Server. Should be up to 16 characters, no spaces. This server isn’t fussy by default, so if remote nodes connect using a different AETitle that is ok.

ORTHANC_JSON: |
  {
    // DICOM Store configuration
    "DicomAet" : "OPENREM",
  }

DICOM Port

The default port for DICOM store is set to 104.

To use a different port, change the first number of the pair in ports. The first number is the port exposed outside of Docker, the second number is used internally by the Orthanc container.

For example, to use port 8104:

ports:
# DICOM store port (first number)
  - 8104:4242

Orthanc web interface

There will normally not be any studies in the Orthanc database once they have been processed, but if you want to enable the Orthanc web viewer, enable the port in and set RemoteAccessAllowed to true in the ORTHANC_JSON section. The first number in the port configuration can be changed if required:

ports:
# Othanc web interface
  - 8042:8042
ORTHANC_JSON: |
  {
    "Name" : "OpenREM Orthanc",
    "RemoteAccessAllowed" : true,
    "AuthenticationEnabled" : true,
    "RegisteredUsers" : {
      "orthancuser": "demo"
    },
  }

Lua script path

The path within the Orthanc container for the OpenREM Lua script is specified here - this should not be changed (see below for advanced options).

ORTHANC_JSON: |
  {
    // OpenREM Lua Script
    "LuaScripts" : [
      "/etc/share/orthanc/scripts/openrem_orthanc_config_docker.lua"
    ]
  }

Advanced options

Multiple stores

If you need more than one DICOM Store server, to listen on a different port for example, copy the whole orthanc_1 section in docker-compose.yml and paste it after the orthanc_1 block. Rename to orthanc_2.

Next time docker-compose is started the additional Orthanc container will be started. docker-compose.yml is also used to stop the containers, so if you are removing the additional Orthanc container stop the containers first.

Advanced Orthanc configuration

Any of the Orthanc configuration settings can be set in the ORTHANC_JSON section. The default configuration can be seen on the Orthanc Server webpages including documentation as to how they are used.

A custom version of the openrem_orthanc_config_docker.lua script can be used if required. Copy the existing one and place the new one, with a new name, in the orthanc/ folder, and set the LuaScripts value in ORTHANC_JSON to match.

Pay special attention to the first sections, up to the ToAscii function, these sections have been changed for the Docker implementation.