Plugins¶
Contents
Overview¶
The core of Orthanc can be extended through plugins. A plugin
takes the form of a shared library (.DLL
under Windows, .so
under GNU/Linux, .dylib
under Apple OS X…). A plugin can do
various things, among others:
Serving new Web applications that have full access to the REST API of Orthanc, which makes easy to handle DICOM images from JavaScript code.
Replacing the way DICOM images are decoded (e.g. the official Web viewer plugin introduces the decoding of JPEG2000 images, which is not available in the core of Orthanc).
Replacing the default database back-end of Orthanc (that is built upon SQLite) by another (PostgreSQL, MySQL, SQL Server…).
Creating new REST APIs on the top of the Orthanc built-in API (as in in the official DICOMweb plugin).
Reacting to the arrival of new DICOM images or other DICOM-related events so as to carry on automated processing.
…
Developers external to the official Orthanc project are invited to contribute to the C/C++ part of Orthanc by creating third-party plugins. A specific section of the Orthanc Book explains how to create new Orthanc plugins.
Index of the contributed plugins¶
C/C++ plugins¶
AWS S3 storage plugin: This plugin by Radpoint makes Orthanc store its DICOM files into an Amazon S3 bucket.
DWV Orthanc Plugin: This plugin by Yves Martelli is based on dwv and extends Orthanc with a Web viewer of DICOM images.
Another Web viewer is provided courtesy of Emsy Chan.
VPI Reveal provides a plugin to “write the DICOM records in a normal Windows-readable file hierarchy (patient-study-series-DICOM file) at a location called
VPIStorage
that can then be imported into VPI Reveal.” Check out their source code.Doc Cirrus is working on MongoDB database plugins. Check out their source code and the associated description.
Python plugins¶
Julian Hartig maintains a Python plugin called
orthanc-gdt
, in order to glue Orthanc to the GDT interface most German AIS (Arztinformationssysteme - as opposed to e.g. the RIS used by radiologists) use for communicating with external applications and devices. This topic is further discussed on the Orthanc Users forum.Stephen Douglas Scotti maintains an integrated Docker package, that provides a portal application using Laravel (which demonstrates pagination and some other features), and some MPPS and MWL features.
Walco van Loon maintains Orthanc Server Extensions as “A simple Orthanc python plugin based framework to extend Orthanc’s feature set with testable python scripts.”. Check out the original announcement on the Orthanc Users forum.
Rust plugins¶
As the Rust language can produce shared libraries that are binary compatible with the C ABI, it is possible to create plugins using Rust:
Andrew Webber provides Rust plugins showcasing integration with Orthanc, notably a S3 storage (CRUD) and a change notification. Check out the original announcement on the Orthanc Users forum.
Other¶
Check out the OrthancContributed repository on GitHub, that might contain plugins that are not tracked in this list.
Important: Do not hesitate to contact us if you have developed a plugin so that we can promote it in the list above!