weasis-dicom-tools icon indicating copy to clipboard operation
weasis-dicom-tools copied to clipboard

Basic dicom API

weasis-dicom-tools

License License Maven Build
Sonar Sonar Sonar Sonar Sonar

This project provides a DICOM API for C-Echo , C-Move , C-Get , C-Find and C-Store based on dcm4che3. The implementation allows to follow the progression of an DICOM operation like C-Move and gives its status. It contains also some other classes for worklist SCU, strore SCP, dicomization, DICOM forward with attributes modification on the fly.

It also provides an API to convert and manipulate images from DICOM files.

Here are the main features of dcm2dcm:

  • Similar as the dcm2dcm command of the dcm4che toolkit: image transcoding, compression or decompression
  • Accept folders and files as input parameters
  • Write compressed images with LossyImageCompressionMethod and LossyImageCompressionRatio (keep the succession of old compressed values)
  • Option add mask area on the image with a specific color (for de-identification). In DicomTranscodeParam add a mask.

Here are the main features of dcm2image:

  • Convert in several images formats (JPEG, PNG, TIF, JP2, PNM, BMP or HDR)
  • Option to preserve the pixel depth with some formats (e.g. 16-bit TIF, double values in TIF or HDR)
  • Capabilities to apply Modality, VOI and Presentation LUT with 8-bit output images
  • Support multiframe and/or multi-fragments. For multiframe output images are created with an index.
  • Apply a Presentation State (W/L, LUTs, overlay).
  • Set the color of overlays in image or Presentation State

This library is used by Weasis, Karnak and weasis-pacs-connector.

Getting started: see the test classes

Code formatter: google-java-format

Release History

See CHANGELOG

Build weasis-dicom-tools

Prerequisites: JDK 11 and Maven 3

Execute the maven command mvn clean install in the root directory of the project.

The master branch requires Java 11+ and old branches are:

  • 5.25.x (Java 8+)
  • 1.0.x (Java 7+)

Note: the dependencies are not includes in the jar file, see in pom.xml.