Duration: | 2019 - current |
Technologies: | Python, Docker, Starlette, PostgreSQL, Nomad |
Collaborators: | Roy Wiggins, Amanpreet Singh Saimbhi |
Website: | mercure-imaging.org |
mercure is a flexible open-source DICOM orchestration platform, aimed to facilitate the clinical deployment of AI-based image processing algorithms, which poses a major obstacle for clinical real-world application of machine-learning techniques. It offers an intuitive web-based user interface as well as extensive monitoring options, making it suitable for routine applications that require high availability.
Received studies, transferred either from imaging devices such as CT or MRI scanners or from departmental image archives (PACS), are processed according to easily definable processing rules. Triggered rules can initiate one (or a chain of) processing operations as well as a subsequent dispatching step, e.g. to send the generated results to the image archive or to a reading workstation. Dispatching steps can also be used to transfer studies into the cloud for remote image analysis. mercure supports a range of different transfer protocols, including DICOM, DICOMweb, DICOM-TLS, S3, XNAT, SFTP, RSync, and folder storage.
Processing operators are packaged as Docker containers, making it easy to integrate algorithms written in any programming language or framework, including common AI inference libraries. mercure also supports MONAI application packages (MAPs), allowing it to be used as platform for the deployment of models developed with MONAI. Created modules can be distributed via the Docker Hub container registry, offering a simple mechanism to share algorithms and models within the community and ensuring that users automatically receive updates. Processing modules can be executed either locally on the mercure server or on cluster nodes, typically located on-premise or running as cloud instances.
In addition to dispatching of processing results, mercure provides notification mechanisms such as webhook calls to messaging services like Slack and email generation. Notifications can be used to alert about status updates and to inform users about findings that were generated by the processing modules. To this end, processing modules can indicate if a notification should be triggered and provide the message content. Moreover, structured results returned by processing modules are stored in mercure’s internal database, which can be reviewed in mercure’s web-based UI and queried using data analysis and visualization tools such as Metabase, Redash, or Superset. This enables to automatically analyze large amounts of imaging data and explore cohort or population-level findings and trends, e.g. by utilizing radiomics techniques.
mercure has been released under the non-restrictive MIT license. It has been designed for the Ubuntu operating system, but can also be used on other distributions when using a Docker-based installation. Automated installation of a test and development environment is possible using provided Vagrant configuration files.
Possible use-cases for mercure include: