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
You scan the patient → The ultrasound machine captures the images
Images are sent automatically → The machine sends them to Orthanc via DICOMweb [C-STORE] - https://orthanc.uclouvain.be/book/dicom-guide.html#c-store
Orthanc stores and organises them → Images are filed and indexed
Other systems can access them → Your EMR or other clinical systems retrieve the images when needed, via HTTP (DICOMweb)
Ultrasound machines can query worklists [C-FIND](https://orthanc.uclouvain.be/book/dicom-guide.html#c-find
Key ports:
DICOM: 4242
HTTP / DICOMweb: 8042
2. Persistence: SQLite approach
For simplicity, we rely on SQLite
Read more about that here: https://orthanc.uclouvain.be/book/faq/features.html#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:
Enables HTTP-based access to DICOM data
Supports:
QIDO-RS https://orthanc.uclouvain.be/book/plugins/dicomweb.html - query
WADO-RS https://orthanc.uclouvain.be/book/plugins/dicomweb.html - retrieve
STOW-RS https://orthanc.uclouvain.be/book/plugins/dicomweb.html - store
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:
Patient is selected
Scan is performed
Machine sends data (C-STORE)
Orthanc stores it
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
Orthanc official website: https://www.orthanc-server.com/
Orthanc Book (full documentation): https://orthanc.uclouvain.be/book/
Configuration reference: https://orthanc.uclouvain.be/book/users/configuration.html
DICOM protocol guide: https://orthanc.uclouvain.be/book/dicom-guide.html
DICOMweb plugin: https://orthanc.uclouvain.be/book/plugins/dicomweb.html
Worklists plugin: https://orthanc.uclouvain.be/book/plugins/worklists-plugin-new.html
Docker deployment: https://orthanc.uclouvain.be/book/users/docker.html
Nginx reverse proxy setup: https://orthanc.uclouvain.be/book/faq/nginx.html
Security best practices: https://orthanc.uclouvain.be/book/faq/security.html
DICOM standard: https://www.dicomstandard.org/
DICOMweb standard: https://www.dicomstandard.org/using/dicomweb
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.
