Hot/cold storage on Orthanc en PACS in production: ¿the best practice?

Hello community,

I’d like to ask about the best way to manage long-term storage in a production PACS without impacting the clinical experience.

Context:

Orthanc as the DICOM engine behind a custom PACS (custom frontend, backend, and database).

OHIF as the viewer.

PostgreSQL, Windows service.

Transcripts: CR, DX, CT, MR, US.

Local studies, local SSD reaching capacity.

Legal retention: 5 years (Ecuador).

My proposed solution:

Two Orthanc instances:

HOT (SSD) → recent studies (2024–2026)

ARCHIVE (NAS HDD) → historical studies (2020–2023)

Migrate historical data using C-Store, keeping it accessible from the app.

Possible lossless DICOM compression to save space.

Questions:

Has anyone implemented hot/cold storage with Orthanc in production?

Are two Orthanc instances the best strategy, or is there a more efficient one?

Experiences using NAS HDDs for historical data: performance issues?

Recommendations for integrating OHIF with multiple Orthanc instances while maintaining a unified experience.

Any comments or real-world experience would be greatly appreciated. Thank you!

Hi Edison,

I think you should give the AdvancedStorage plugin a try.

You’ll be able to declare 2 storages:

"AdvancedStorage": {
  "Enable": true,
  "MultipleStorages": {
    "Storages": {
      "hot": "/mnt/disk1/orthanc",
      "cold": "/mnt/nas/orthanc"
    },
    "CurrentWriteStorage": "hot"
}

Then, you can run a small python script and run it at regular interval to e.g, move old studies from hot to cold:

curl http://localhost:8042/plugins/advanced-storage/move-storage -d @- << EOF
{
  "Resources": ["study-orthanc-id"],
  "TargetStorageId": "cold"
}
EOF

Hope this helps,

Alain.

Thank you @alainmazy this is surely what I needed to start a great migration and segmentation project. I’m going to dive deeper into this topic and will come back here with updates.