Open source tools

If you are interested in implementing support for the DICOM objects demonstrated in DICOM4QI, a number of open source tools and toolkits are available to serve as reference or helper imlementations:

  • DCMTK ( C++ toolkit that provides API abstractions for reading and writing DICOM SEG, PM, SR-TID1500 and TR. DCMTK also includes a number of useful command line tools to support reuse of DICOM content:
    • dcmdump and dsrdump to examine the content of DICOM files in general, and DICOM SR specifically. dcmdump and dsrdump are also available as extension packages for the Atom editor.
    • dsr2xml and dsr2html for converting the content of the DICOM SR tree into XML and HTML representations, respectively.
  • dcmqi ( C++ library and command line tools to support conversion between DICOM SEG, PM, SR-TID1500 and non-standard representations. dcmqi is also wrapped within the QuantitativeReporting extension of 3D Slicer and MITK.
  • MeVisLab ( modular framework for image processing research and development that includes support for DICOM SEG and PM.
  • dcmjs ( JavaScript library providing some of the functionality for working with DICOM SR-TID1500 and other objects (under active development)
  • fs2dicom ( Python tool based on dcmqi to support conversion of FreeSurfer output into DICOM
  • PixelMed Java DICOM toolkit ( Java library that provides APIs and abstractions for the SEG, PM, SR DICOM objects
  • dicom3toolkit ( C++ library and a collection of command line tools for working with DICOM objects; importantly, includes dciodvfy, which is the only validator known to us that can be used to evaluate standard coformance of the object types evaluated in DICOM4QI
  • pydicom ( Python library for working with DICOM. Includes implementation of unpacking for DICOM SEG single bit packed PixelData buffer.
  • pyradiomics ( Python library for extracting radiomics features from images. Includes support of extracting features directly from DICOM images accompanied by DICOM SEG segmentations, and storing the result as a DICOM SR-TID1500 instance, as implemented in this script.