Orthanc with its web GUI looks very interesting for us to give it a try
for a basic failover PACS we are using.
We are currently running Conquest with about 10TB of DICOM data (roughly
44M images) and a MySQL databse set of just over 40GB.
From reading some of the documentation I know that Orthanc has the basic
c-find and c-store implementation to receive and push studies and routing
However I missed references if Orthanc can:
- use MySQL as DB backend
No, the only supported open-source DB server supported is
currentlyPostgreSQL (PostgreSQL plugins — Orthanc Book documentation).
MySQL has been requested by a few people but I have not heard of any
initiative to build such a plugin right now. If anyone is willing to
contribute, please contact us.
- can have multiple DICOM storage devices/HDDs
No, Orthanc currently only supports one storage location. However, if you
need to store a large amount of data, you'd probably store it on a NAS/SAN
and therefore, the multiple storage devices can be seen as a single
location. Again, this could also be implemented in a new storage plugin.
- can handle Dicom data of 40M-100M images
As long as you use PostgreSQL as the DB index, you would basically have no
limit. We are aware of a few installs with around 10 TB of data. Orthanc
still works fine in this case but the Orthanc Explorer is not intended for
use with large number of patients (there's currently not pagination on that
page so it takes an incredible amount of time to load (again, contributions
- has basic function like - re-scan/re-index a specific dicom storage
For that, you should use an external script that will drive Orthanc through
its REST API. I.e:
- assign special transfer syntaces to a dicom host - i.e. that one AET get
files as JPEG lossless and another host as Jpek200 lossless
Not out of the box but you can do it with some Lua scripting. First of
all, you've to remember that Orthanc is very lightweight and you may deploy
many of them on the same machine. You may sometime deploy an orthanc
instance to perform a single repetitive task like transcoding from one
transfer-syntax to the other.
Consider your big archive is A and your modality is C. You may deploy a
new Orthanc (B). Every time you need to send a study from A to C, you
actually send it to B. B will transcode it and forward it to C. This can
be done with a bit of Lua scripting (check this link for a lua script that
is transcoding to JP2K: