Enter DICOM-rs

A DICOM implementation for the next generation of medical imaging systems.

Star Fork
Find out more ⇩

Overview

DICOM-rs is an ecosystem of libraries and tools for working with DICOM systems.

  • Work with DICOM meta-data and pixel data with ease.
  • Communicate with existing DICOM systems.
  • Built in the Rust programming language for performance and reliability.
  • Portable and prepared for all modern environments.
  • Free to use and extend, for life.

Using as a library

Get started quickly by adding the dicom crate to your Rust project.

[dependencies]
dicom = "0.8"

Or pick exactly what you need from the various crates in the DICOM-rs umbrella.

  • dicom-object
  • dicom-dump
  • dicom-json
  • dicom-pixeldata
  • dicom-ul
  • dicom-dictionary-std
  • dicom-transfer-syntax-registry
  • dicom-parser
  • dicom-encoding
  • dicom-core

Example

Fetch a DICOM file and read its contents as a dictionary of data set elements.

use dicom::object::open_file;
use dicom::dictionary_std::tags;

let obj = open_file("path/to/IMAGES/0001.dcm")?;
let patient_name = obj.element(tags::PATIENT_NAME)?
    .to_patient_name()?;
let modality = obj.element(tags::MODALITY)?
    .to_str()?;

println!("{} case of patient {}", modality, patient_name);

Bring it to the Web

Rich DICOM applications can be delivered to the browser using WebAssembly.

DICOM dump app not loaded

See also a simple proof-of-concept DICOM viewer made with DICOM-rs.

Tools

DICOM-rs gives you cross-compatible command line tools for various operational needs.

These tools are standalone and can be downloaded here. Windows and linux binaries are available.

Free and open

DICOM-rs embraces the open source software model with a permissive license (dual license Apache 2.0 OR MIT), enabling its use in academia and professional software.

Community