Skip to main content

Orthanc deployment guidance for Linux VMs with SQLite, DICOMweb and Worklists

This guide explains how Orthanc works — the software that receives, stores, and shares ultrasound images in your clinic – and provides a practical approach to deploying Orthanc (https://www.orthanc-server.com/) in a clinic Linux VM!

Written by Gabby Adams
Updated this week

Think of Orthanc as a digital filing cabinet specifically designed for medical images. It acts as a lightweight DICOM server (mini PACS).

1. Architecture: A simple explanation

Key ports:

  • DICOM: 4242

  • HTTP / DICOMweb: 8042

2. Persistence: SQLite approach

For simplicity, we rely on SQLite

Key points:

  • Orthanc stores all data on disk

  • If storage is not persistent → data is lost

  • Backups are required

Recommended directories:

  • `/etc/orthanc/`

  • `/var/lib/orthanc/db/`

  • `/var/lib/orthanc/tmp/`

  • `/var/lib/orthanc/worklists/`

Requirements:

  • Use persistent disk (not ephemeral)

  • Ensure backups (daily recommended)

  • Monitor disk usage (imaging grows quickly)

3. Installation options:

See the official installation guide at https://orthanc.uclouvain.be/book/users/cookbook.html for full details.

Option A — Ubuntu / Debian packages

```shell

sudo apt update

sudo apt install orthanc orthanc-dicomweb orthanc-worklists

```

Option B — Docker (recommended)

For advanced options, see the Orthanc Docker documentation at: https://orthanc.uclouvain.be/book/users/docker.html

```shell

docker run -d \

-p 4242:4242 \

-p 8042:8042 \

-v /orthanc/db:/var/lib/orthanc/db \

-v /orthanc/config:/etc/orthanc \

orthancteam/orthanc

```

5. Configuration example (orthanc.json)

For all available options, see the full configuration reference at: https://orthanc.uclouvain.be/book/users/configuration.html

Note: `RemoteAccessAllowed` is set to `false`, which restricts the HTTP/DICOMweb interface to localhost only. External systems must access Orthanc through a reverse proxy (e.g. Nginx) running on the same VM. See [Section 9](#9-networking-and-security) for details.

```json

{

"Name": "Clinic Orthanc",

"StorageDirectory": "/var/lib/orthanc/db",

"IndexDirectory": "/var/lib/orthanc/db",

"TemporaryDirectory": "/var/lib/orthanc/tmp",

"AuthenticationEnabled": true,

"RegisteredUsers": {

"orthanc": "change-this-password"

},

"RemoteAccessAllowed": false,

"HttpPort": 8042,

"DicomAet": "ORTHANC",

"DicomPort": 4242,

"DicomCheckCalledAet": true,

"DicomWeb": {

"Enable": true,

"Root": "/dicom-web/"

},

"Worklists": {

"Enable": true,

"Database": "/var/lib/orthanc/worklists"

},

"Plugins": [

"/usr/share/orthanc/plugins",

"/usr/local/share/orthanc/plugins"

],

"ConcurrentJobs": 2,

"StorageCompression": false

}

```

5. DICOMweb plugin

See the [DICOMweb plugin documentation https://orthanc.uclouvain.be/book/plugins/dicomweb.html for configuration details.

Purpose:

6. Worklists plugin

For set up and configuration, see the Worklists plugin documentation at: https://orthanc.uclouvain.be/book/plugins/worklists-plugin-new.html

Purpose:

Allows ultrasound machines to query scheduled patients

Installation:

**Debian/Ubuntu:** `sudo apt install orthanc-worklists`

**Docker:** included in the `orthancteam/orthanc` image

Configuration:

Add the worklists section to `orthanc.json` (see [Section 5](#5-configuration-example-orthancjson)):

```json

"Worklists": {

"Enable": true,

"Database": "/var/lib/orthanc/worklists"

}

```

Worklist files (DICOM `.wl` format) are placed in the configured directory. Your application generates these files for scheduled patients.

Flow:

1. Machine sends C-FIND request

2. Orthanc returns worklist

3. Operator selects patient

4. Scan proceeds with pre-filled data

7. Connecting Ultrasound Machines

Orthanc does NOT initiate connections, machines connect to Orthanc.

See the DICOM protocol guide at https://orthanc.uclouvain.be/book/dicom-guide.html for more details.

Each scanner must be configured with:

  • AE Title: ORTHANC

  • IP address: (Orthanc VM IP)

  • Port: 4242

Typical flow:

  1. Patient is selected

  2. Scan is performed

  3. Machine sends data (C-STORE)

  4. Orthanc stores it

  5. External systems retrieve via DICOMweb

8. Networking and security

For best practices, see the Orthanc security guide at: https://orthanc.uclouvain.be/book/faq/security.html

In general:

  • Keep Orthanc inside clinic network

  • Restrict DICOM port access

  • Use a reverse proxy (https://orthanc.uclouvain.be/book/faq/nginx.html - Nginx) for HTTPS — this is how external systems access DICOMweb when `RemoteAccessAllowed` is `false`

  • Enable authentication

9. Backups

  • Backup `/var/lib/orthanc/db`

  • Backup config files

  • Test restore process

References

Disclaimer - wawa Fertility does not provide dedicated support for the management and setup of the Orthanc servers. This guide uses open-source components which may contain vulnerabilities. The clinic's own IT department is solely responsible for managing and securing this infrastructure.

Did this answer your question?