I did read over this page again recently: https://book.orthanc-server.com/faq/scalability.html#recommended-setup-for-best-performance
We are close to moving to a production environment and I have some questions. There is a RIS app that is also integrated, so I’ll try to keep my questions limited mostly to the Orthanc setup.
I’m currently using OS X or UBUNTU for the Orthanc Server Setup. That is a basic install, although I compiled it from source, along with the recent Plug-Ins.
Using OsimisWebViewer, Worlists, Postgres, DicomWeb and Python Plug-ins for now, but might add the ServeFolders and the OrthancAuth Plugins, and I guess PostGres is a better choice than MySQL, with the storage set to false, as opposed to MySQL.
I guess my main question is what people recommend or have used when it comes to a Cloud Service vs. in-house hardware. I’ve been developing on a VPS (really cheap) and Dedicated Server (varies), but in production I could see needing almost 4TB of storage per year, along with much better CPU performance, memory and bandwidth than what is available with the VPS or Dedicated server we’ve been using. I’m not too familiar with AWS or Google Cloud, or how to integrate that as a Cloud Pacs. Using a Cloud installation comes with a whole other set of problems and obstacles as opposed to using an in-house installation for the PACS (e.g. usability, security, access, backups, cost, etc.)
There are some LINUX servers (hardware), e.g. https://system76.com/servers, that can be hard for 4-5 thousand dollars, and the storage on those is very scalable and relatively inexpensive when using SSD’s and HDD together. For a few hundred dollars you can have a HDD to backup then entire system. I would suspect that a comparable system on a dedicated server or with AWS/Google would be 2-3 hundred per month, and even if less the hardware would pay for itself over 2-3 years.
I can actually develop adequately on a high-end iMac or a LINUX box without even having to use a VPS or Dedicated server at this point, although it took a bit to get everthing set up exactly right to simulate a production environment with 3 servers running.
If anyone has used AWS I would be curious about how you implemented that in such a fashion that you could send studies using the DICOM protocol securely since my understanding is that Orthanc does not support TLS over DICOM ? You need a tunnel or a VPN or something to do that. There is some level of security with AET checking and handshaking, but without TLS the data is still sent in the clear. On the Dev server, I setup OpenVPN successfully OK, and I guess that one option would be do establish a VPN connection between the scanner and the server. Some routers apparently have OpenVPN capability build right into them, but I still don’t like that option since it is just another potential break in the chain and it comes with a performance hit… The other problem with Cloud service is that file transfers are probably a lot slower than with an Orthanc instance residing on the intranet, and if pre-fetching is implemented, or studies need to be fetched on the fly, that could be an issue also. A Cloud setup might be nice for a distributed arrangement, but we are just a single location. The other question is about using Docker images.
So:
-
Cloud service like AWS vs. in-house hardware, pros and cons, prior experience. There is apparently some sort of AWS plug-in also for Orthanc ?
https://github.com/radpointhq/orthanc-s3-storage -
Pre-fetching. Is there a python script that do that ? The front-end we have can actually easily create a cron job or a script that could send a list of patientid’s that should have studies retrieved and sent to a reading workstation (like the night before they are needed), so if there a a python script with a path that can take the patient id’s and then send all of their old studies to a destination (i.e. reading workstation), that would work.
-
Using Docker Images ? I’m not too familiar with using images and containers. I have, but mostly for initially evaluating a package. If they can be used for production, and if you can create a custom image that is somewhat portable that would be great because I’m very interested in created a base image that has all of the software packages and tools that I need. It would need Orthanc, all of the Plug-ins and Script and Configs, along with PostGres, MySQL, PHP, Apache, OpenResty (with PHP enabled), phpMyAdmin, pgAdmin, Python, Build Tools, and maybe even our webapp and OHIF, basically the total dev package. Is that possible, and can you even use Docker for Production ? I would really like to create a base system not that I’ve figured out exactly what is needed an how we want it configured. If you can do that, but specify system locations for databases and storage that would be great. If I have time, I guess I can dig into the docker documentation and explore how to do that.
Thanks.