I have been researching DICOM node software that would allow control over leaving the DICOM headers untouched. I learned the hard way that some DICOM viewers alter the headers without any notification. This change has led to drastically altered patient results and many headaches.
I recognize that Orthanc stores the data in its own built SQL organizational structure but preserves the original DICOM files. I also see that it allows reorganization into the original patient/series structures via downloading the data as compressed ZIP files.
Is there any way to configure it to either:
1) store the data directly per patient and series or
2) allow direct downloads of the data without compression?
Unfortunately, the analysis tools we use are not configured for DICOMWeb. They require at minimum the files either as series or as a set per patient.
You can create either an external script (e.g. in Python), or a Lua script that would automatically copy all the incoming DICOM files somewhere on your filesystem.
The downside of this approach is that you either have to store each DICOM file twice (once on the filesystem, once inside the Orthanc database, which doubles the necessary disk space), or make the script remove the DICOM files from Orthanc (which obviously prevents subsequent uses of these files from Orthanc). However, this approach might be sufficient in your case.
allow direct downloads of the data without compression?
We have been considering for a long time the possibility of creating a FUSE virtual filesystem for Orthanc:
Such a filesystem would publish the content of Orthanc as a standard folder under Linux, which could be exposed as a network share under Windows (through to Samba). However, this tool is not implemented yet because of our limited bandwidth… you are obviously kindly invited to contribute to make this development possible: http://book.orthanc-server.com/contributing.html
For option 2:
That opens an interesting, alternative avenue.
Orthanc uses some form of a SQL layout for file storage, yes? I will look into this as a side project.
Thanks for your interest! Please let us know if you start investigating this way in order for us to drive the community efforts.
You should never directly access the SQL database (as Orthanc can change its database backend). Likewise, you should never try and access the filesystem handled by Orthanc (as likewise Orthanc can replace the filesystem backing, and as Orthanc implements proper locking mechanisms). This is explained in the Orthanc Book: http://book.orthanc-server.com/faq/orthanc-storage.html