Orthanc best practices

Dear all,
I'm setting up Orthanc in an image analysis lab. Basically to share images with my collegues and with physicians. I would like to inquiry about best practices to follow, for instance:
* I have Orthanc running in a VM with limited storage. Is it safe to put the db on a samba share?
* Can I do load balancing between orthanc servers?
* What about security? Is it advisable to use it behind apache?
* Can i perform automatic anonimization of all the sent images?

I'm also interested in any suggestions you might have.

Best regards,

Mario Ceresa

Hi Mario,

I’m setting up Orthanc in an image analysis lab. Basically to share images with my collegues and with physicians. I would like to inquiry about best practices to follow, for instance:

  • I have Orthanc running in a VM with limited storage. Is it safe to put the db on a samba share?

If only one instance of Orthanc access this DB, it should be OK, but the documentation of SQLite is rather vague on this topic:
http://www.sqlite.org/faq.html#q5

I would suggest you to store the SQLite database locally on your VM, and to store the DICOM files on the SMB share. These locations can be respectively configured with the “IndexDirectory” and the “StorageDirectory” options, which are set by default to the same folder:
http://orthanc.googlecode.com/hg-history/Orthanc-0.7.2/Resources/Configuration.json

  • Can I do load balancing between orthanc servers?

This feature is not implemented as such, but it is definitely possible to write a script that would drive one “frontend Orthanc” to dispatch the incoming studies into separate “backend instances” of Orthanc, e.g. according to a hash of their “StudyInstanceUID”. The incoming studies would be deleted from the “frontend Orthanc” after the dispatching. You can check and adapt this sample code:
https://code.google.com/p/orthanc/source/browse/Resources/Samples/Python/HighPerformanceAutoRouting.py?name=Orthanc-0.7.2

  • What about security? Is it advisable to use it behind apache?

Yes, it is possible to run Orthanc as a reverse proxy for Apache:
https://code.google.com/p/orthanc/wiki/FAQ#How_can_I_run_Orthanc_behind_Apache?

Even if Orthanc implements HTTPS encryption, using Apache or Nginx for this purpose is more bullet-proof.

  • Can i perform automatic anonimization of all the sent images?

Yes, it is possible to use the REST API of Orthanc to trigger anonymization. Have a look at the API reference (there are “…/anonymize” URIs) and at the source code of Orthanc Explorer:
http://goo.gl/7ah4sI

https://code.google.com/p/orthanc/source/browse/OrthancExplorer/explorer.js#962

HTH,
Sébastien-