Contributing to Orthanc¶
Note
Here are the main features we would like to get soon implemented as free and open-source code in the Orthanc ecosystem. To make this happen, we need your support!
Orthanc Core:
Continue improving the Orthanc Explorer 2 User Interface
Support of DICOM C-GET SCU
Stone Web viewer:
Save/load annotations
Internationalization/translations
MPR volume rendering
Viewer dedicated to nuclear medicine and radiotherapy
Rendering of DICOM GSPS
Plugins:
Worklist plugin to interface with REST API, HL7 or Mirth
Please get in touch with Sébastien Jodogne’s research lab if you want to use such features in the context of research projects or scientific publications, or get in touch with the Orthanc Team if you want to financially sponsor these developments.
If you find Orthanc useful and wish to contribute to its development, here are some tasks you can take in charge that would greatly help us:
Non-coding tasks:
Use Orthanc in the real life. ;)
Advertise about Orthanc, notably on social networks (we are active on Facebook and Twitter).
Answer our survey.
Improve and translate the Wikipedia pages about Orthanc.
Cite the reference paper about Orthanc in your research work.
Answer questions posted to the Orthanc Users discussion forum.
Important: A page list the old questions that are not fully answered yet. Consider answering these topics too!
Improve the text of the Orthanc Book and REST API documentation (check out the instructions provided in the README file, and send us a simple patch).
Provide documentation and use cases (inside the dedicated GitHub repository, via pull requests).
Index external contributions inside the Links.md file.
Maintenance tasks:
Report problems together with sample DICOM images and possible workarounds on the dedicated issue tracker.
Package Orthanc and its associated plugins for more UNIX or GNU/Linux distributions (e.g. Ubuntu PPA, RHEL/EPEL, CentOS, openSUSE…).
Take ownership of the now-orphaned Fedora package. Check out the related issue 1677806 and issue 1843127.
Take care of Debian/Ubuntu backporting.
Share your maintenance scripts or sample code inside the “Orthanc Contributed” public GitHub repository, via pull requests.
Help with the integration of Orthanc together with our friend free and open-source projects, notably GNU Health, but also OpenEMR, GNUmed…
Coding tasks:
Have a look at the TODO file containing our official roadmap.
The Orthanc project will happily accept patches in the core of Orthanc and in its associated official plugins. Please read the dedicated FAQ entry.
Interface Orthanc with other software (e.g. 3D Slicer, Matlab/Octave, Python, Horos, dicompyler…). Check the already supported frameworks.
Develop C/C++/Python plugins extending the Orthanc core. Here are some ideas of possible plugins:
Create a more advanced Web interface than the built-in Orthanc Explorer.
Extend the sample modality worklist plugin so that it manages the worklists (i.e. add/remove items) with a REST API or HL7 messages, instead of reading them from some folder on the filesystem.
Encapsulate a video into a DICOM file by calling some REST route, similarly to the
/tools/create-dicom
route to encapsulate PDF.Provide a FreeCAD extension to import/export DICOM STL files from/to Orthanc.
Create a plugin to edit DICOM files (add, update or remove DICOM tags).
Create samples of Python plugins or Java plugins to take care of HL7 messages, especially for merging patients (which is a typical HL7 event to be handled by the PACS, not by the RIS). Reference: Events
Axx
of Chapter 3 (“Patient Administration”) in the HL7 v2.9 specification.ADT
messages have also been discussed in the past on the Orthanc forum.Create a DICOM proxy (to share a single connection on a PACS by several DICOM clients/viewers), or a DICOMweb proxy (to turn a DICOM-only PACS into a DICOMweb server). This could be done as a Python plugin or as a Java plugin by wrapping the C-FIND and C-MOVE callbacks in the Python API.
Get involved in the call for ideas by Salim Kanoun about a DICOM router built on the top of Orthanc.
Always remember that he recommended way of contributing to the source code of Orthanc is by creating C/C++/Python plugins, or by creating external software that use the REST API. If the current plugin SDK is insufficient for you to develop some feature as a plugin, do not hesitate to request an extension to the Orthanc SDK on the Orthanc Users discussion forum.
Financial support:
Check out our FAQ about donations.
Since February 2022, you are invited to fund the Orthanc project through its Open Collective page. The funds collected there will help us maintain Orthanc, release new features and answer questions on the Orthanc Users Group.
Buying professional services is also a good way to make the Orthanc project sustainable in the long term. Check out the professional services provided by our community.