/awesome-dicom

A curated list of awesome DICOM resources and libraries.

Creative Commons Zero v1.0 UniversalCC0-1.0

Awesome DICOM Awesome

A curated list of awesome DICOM resources and libraries.

The DICOM Standard is the international standard for medical images and related information. It defines the formats for medical images that can be exchanged with the data and quality necessary for clinical use [source].

Contents

Datasets

Learning Resources

Libraries

C#

General

  • dicom-server - The Medical Imaging Server for DICOM is an open source DICOM server that is easily deployed on Azure.
  • DICOMcloud - A standalone DICOMWeb server with RESTful implementation of the DICOMWeb/WADO services. The DICOMcloud server can interface with any DICOMWeb client over the current implemented features (qido-rs, wado-uri, wado-rs and stow-rs).
  • Evil-DICOM - A simple to use library for reading and manipulating DICOM files.
  • fo-dicom - Fellow Oak DICOM, a DICOM toolkit in C# for all .NET Standard 2.0 compatible frameworks.

Visualization

C++

General

  • CTK - The Common Toolkit is a community effort to provide support code for medical image analysis, surgical navigation, and related projects.
  • DCMTK - The DICOM ToolKit (DCMTK) package consists of source code, documentation and installation instructions for a set of software libraries and applications implementing part of the DICOM/MEDICOM Standard.
  • dcmqi - DICOM for Quantitative Imaging (dcmqi) is a collection of libraries and command line tools with minimum dependencies to support standardized communication of quantitative image analysis research data using the DICOM standard.
  • GDCM - Grassroots DICOM (GDCM) is an implementation of the DICOM standard designed to be open source, so that researchers may access clinical data directly. GDCM includes a file format definition and a network communications protocol, both of which should be extended to provide a full set of tools for a researcher or small medical imaging vendor to interface with an existing medical database.
  • MITK - The Medical Imaging Interaction Toolkit (MITK) is a free open-source software system for development of interactive medical image processing software. MITK combines the Insight Toolkit (ITK) and the Visualization Toolkit (VTK) with an application framework.
  • Orthanc - A simple yet powerful standalone DICOM server. It is designed to improve the DICOM flows in hospitals and to support research about the automated analysis of medical images.
  • SimpleITK - A simplified interface for the Insight Toolkit ITK with several components supporting general filtering operations, image segmentation, and registration.
  • vtk-dicom - A set of classes for managing DICOM files and metadata from within VTK, and some utility programs for interrogating and converting DICOM files.

Conversion

  • dcm2niix - Convert neuroimaging data from the DICOM format to the NIfTI format.
  • DicomToMesh - A command line tool to transform a DICOM volume into a 3d surface mesh (obj, stl or ply). Several mesh processing routines can be enabled, such as mesh reduction, smoothing or cleaning.
  • wsi-to-dicom-converter - Convert whole slide images (WSIs) to DICOM.

Other

  • DICOMautomaton - A multipurpose tool for analyzing medical physics data with a focus on automation.
  • dovo - Cross-platform software for importing DICOM CD/files and sending to PACS.

Go

  • dicom - High performance Golang DICOM parser.

Java

General

  • dcm4che - A collection of open source applications and utilities for the healthcare enterprise.
  • Dicoogle - An extensible, platform-independent and open-source PACS archive software that replaces the traditional centralized database with a more agile indexing and retrieval mechanism.
  • healthcare-dicom-dicomweb-adapter - A set of components that translate between traditional DICOM DIMSE protocols (e.g., C-STORE) and the RESTful DICOMWeb protocols (e.g., STOW-RS).

Visualization

  • Weasis - A multipurpose standalone and web-based DICOM viewer with a highly modular architecture.

JavaScript

General

  • cornerstoneWADOImageLoader - A cornerstone.js Image Loader for DICOM P10 instances over HTTP (WADO-URI) or DICOMWeb (WADO-RS). This can be used to integrate cornerstone with WADO-URI servers, DICOMWeb servers or any other HTTP based server that returns DICOM P10 instances (e.g., Orthanc or custom servers).
  • Daikon - A pure JavaScript DICOM reader.
  • dcmjs - JavaScript implementation of DICOM manipulation. This code is an outgrowth of several efforts to implement web applications for medical imaging.
  • dcmjs-dimse - DICOM DIMSE implementation for Node.js using the dcmjs library.
  • dicomParser - Cornerstone.js' lightweight library for parsing DICOM P10 byte streams, as well as raw (not encapsulated in part 10) byte streams, in modern HTML5 based web browsers (IE10+), Node.js and Meteor.
  • dicomweb-client - JavaScript client implementation of DICOMWeb.
  • dicomweb-pacs - Easy to use DICOMWeb enabled PACS with DIMSE services based on sqlite database.
  • dicomweb-server - Lightweight DICOMWeb Server with CouchDB.

Visualization

  • bluelight - Browser-based medical image viewer primarily maintained by the Imaging Informatics Labs. It is a pure single-page application (SPA), lightweight, and using only JavaScript and HTML5 technologies to easily deploy it on any HTTP server.
  • cornerstone - A complete web based medical imaging platform. This repository contains the cornerstone.js "Core" component which is a lightweight JavaScript library for displaying medical images in modern web browsers that support the HTML5 canvas element.
  • dcmjs-imaging - DICOM image and overlay rendering pipeline for Node.js and browser using the dcmjs library.
  • dcmjs-ecg - DICOM electrocardiography (ECG) rendering for Node.js and browser using dcmjs.
  • dicom.ts - A small, superfast JS DICOM renderer.
  • dicom-microscopy-viewer - Vanilla JS library for web-based visualization of DICOM VL Whole Slide Microscopy Image datasets and derived information.
  • dicomviewer - A DICOM viewer which uses the cornerstone.js library to display DICOM files in Nextcloud.
  • dicomViewerLib - An Angular 9+ DICOMWeb viewer component, based on the cornerstone.js project.
  • DWV - DICOM Web Viewer (DWV) is an open source zero footprint medical image viewer library. It uses only JavaScript and HTML5 technologies, meaning that it can be run on any platform that provides a modern browser (laptop, tablet, phone and even modern TVs).
  • dwv-react - Medical viewer using DWV and React.
  • NiiVue - A WebGL module that can be embedded into HTML, Vue.js, Angular, React, Electron and Capacitor frameworks. It provides scripting and drag and drop abilities to visualize and render voxel-based images (e.g., DICOM and NIfTI), meshes, and tractography streamlines and connectomes, as well as drawing functions (demos).
  • U Dicom Viewer - A simple but functional DICOM viewer for any device with a web browser. Allows opening and viewing 2D medical images in a wide variety of DICOM formats.
  • Viewers - A zero-footprint medical image viewer provided by the Open Health Imaging Foundation (OHIF). It is a configurable and extensible progressive web application with out-of-the-box support for image archives which support DICOMWeb.
  • VolView - Web based radiological viewer for clinical professionals. Built with Vue.js and VTK.js.

Other

  • dicomweb-proxy - Translates between DICOMWeb and traditional DICOM DIMSE services.

MATLAB

Conversion

  • dicm2nii - Convert DICOM into NIfTI. It can also convert PAR/XML/REC, HEAD/BRIK, MGZ and BrainVoyager files into NIfTI.

Python

General

  • dicompyler - An extensible open source radiation therapy research platform based on the DICOM standard. It also functions as a cross-platform DICOM RT viewer.
  • dicomweb-client - Provides client interfaces for DICOMWeb RESTful services QIDO-RS, WADO-RS and STOW-RS to search, retrieve and store DICOM objects over the web, respectively.
  • highdicom - Provides high-level DICOM abstractions for the Python programming language to facilitate the creation and handling of DICOM objects for image-derived information, including image annotations, and image analysis results.
  • MedPy - An image processing library and collection of scripts targeted towards medical (i.e. high dimensional) image processing.
  • pydicom - A pure Python package for working with DICOM files. It lets you read, modify and write DICOM data in an easy "pythonic" way.
  • pynetdicom - A pure Python 3.7+ package that implements the DICOM networking protocol. Working with pydicom, it allows the easy creation of DICOM Service Class Users (SCUs) and Service Class Providers (SCPs).

Conversion

  • bidskit - CLI for converting a directory of DICOM files into a BIDS-compliant dataset.
  • dcmstack - DICOM to NIfTI conversion with the added ability to extract and summarize metadata from the source files.
  • dicom2nifti - Convert MR and CT-derived DICOM files to NIfTI.
  • dicom2stl - Convert a DICOM series to an STL surface mesh.
  • Dicomifier - A set of tools to convert Bruker data to DICOM files, and DICOM files to NIfTI.
  • heudiconv - A flexible DICOM converter for organizing brain imaging data into structured directory layouts.

Anonymization

  • deid - Best effort anonymization for medical images in Python.
  • DICAT - A simple graphical tool that facilitates DICOM de-identification directly on a local workstation.
  • dicom-anonymizer - A tool for anonymizing DICOM files according to the DICOM standard.

Sorting

  • dicomsort - Given DICOM files in a random folder structure, this program copies all into a user-defined folder hierarchy, creating folders as necessary and changing DICOM file names to be more meaningful.

Visualization

  • dicom-ecg-plot - Plot ECG data from DICOM (demo).
  • FSLeyes - A cross-platform visualization tool for NIfTI and DICOM images.
  • MRIcroGL - A cross-platform tool that supports many voxel-based image formats including DICOM. This natively compiled application provides a drag and drop user interface as well as Python scripting integration.
  • OnkoDICOM - DICOM-RT viewer with enhanced capabilities that make it useful for research in the field of Radiation Oncology.

Other

  • dcmrtstruct2nii - DICOM RT-Struct to nii-mask. This is a naïve approach to rasterizing rt-struct to masks in the NIfTI format.
  • dicom-numpy - A set of utilities for extracting data contained in DICOM files into Numpy ndarrays.
  • dicom-standard - Parses the web version of the DICOM Standard into human and machine-friendly JSON files.

Rust

  • DICOM-rs - A pure Rust implementation of the DICOM standard, allowing users to work with DICOM objects and interact with DICOM applications, while aiming to be fast, safe, and intuitive to use.

Other/Combination

Machine Learning

  • mercure - A flexible DICOM routing and processing solution with user-friendly web interface and extensive monitoring functions.
  • Niffler - A lightweight framework to facilitate executing machine learning pipelines and processing workflows on DICOM images and metadata.

Validation

  • DVTk - Testing, validating and diagnosing DICOM communication in medical environments.

Visualization

Image Computing Platforms

  • 3D Slicer - Free and open source workstation software with tools for many clinical specialies and DICOM datatypes. Supports visualization, registration, segmentation, time series analysis and much more.

Contribute

Contributions welcome! Read the contribution guidelines first.