by Chris Amow on March 27, 2020
Available since 1995, the DICOM Toolkit (DCMTK) can be helpful to anyone working on systems that use the Digital Imaging and Communications in Medicine (DICOM) standard. This DCMTK introduction is of interest to those exploring DICOM for the first time, as well as those familiar with it but wanting to take a renewed look at the DICOM tools landscape.
Developed for a wide range of platforms, DCMTK is a set of over 20 open-source C/C++ libraries and utilities. Sponsored by OFFIS, Institut für Informatik in Oldenburg, Germany, it has been bolstered by contributions from many European organizations, along with others throughout the world.
The toolkit addresses a broad range of needs—from a person studying and inspecting DICOM metadata and structure, to one who needs a quick, lightweight Picture Archive and Communication System (PACS) server and is already fluent in C-ECHO
, C-FIND
, and C-MOVE
operations.
DCMTK has a dual nature in many ways. Understanding it may make it easier to grasp the naming and organization of its tools:
scu
and scp
, DICOM terminology for service class user vs. service class provider, e.g., storescu
and storescp
.movescu
and dcmsend
, respectively).dcmrecv
and storescp
.dcmodify
provides direct in-place editing while a workflow is supported for intermediate manual text editing using dcmdump
and dump2dcm.
It can sometimes be challenging to troubleshoot DICOM interactions due to varying hardware and software compliance levels. Here, DCMTK can help you understand and troubleshoot DICOM behavior that may not be obvious. For example, the accession number and MRN concepts borrowed from the EHR (electronic health records) world have limited support within DICOM. The toolkit can offer you visibility into these undocumented or partially supported areas.
For those administering or deploying DICOM systems, it’s available in standard repositories for Linux, Macintosh, and Windows. Additionally, it has been built for iOS and is cross-compiled for Android. Low dependency binary packages are also released; these are handy for use in disconnected environments.
For programmers, the C/C++ libraries are convenient to use with languages having support for external processes, such as Python. DCMTK is very complementary to libraries such as pydicom, which is focused specifically on Python data access within a DICOM file.
(NOTE: DCMTK has similarities with other packages, such as the Java-based dcm4che. But be aware that, while tool and command-line syntax is similar, such packages aren’t fully compatible.)
For more advanced needs:
At Innolitics, we use DCMTK for many of our clients’ projects, as well as in-house development. We are thankful for contributions to the toolkit project and are proud to have donated to the cause this past autumn.
More detailed information about DCMTK can be found here:
We send out tips about once a month.
Articles about software development, AI, signal and image processing, medical regulations, and other topics of interest to professionals in the medical device software industry.
You may view previous articles here.
The Innolitics team, and experts we collaborate with, write all of our articles.