The vtk-dicom project started in 2012 in response to the need for DICOM readers and writers for VTK that:
This was achieved through the creation of three core C++ classes: a vtkDICOMReader, a vtkDICOMWriter, and a vtkDICOMMetaData class that provides full access to the meta data. The meta data and the DICOM dictionaries (standard and private) are stored in hash tables for efficient access.
|Enhanced Secondary Capture||Yes||Soon|
|Parametric Maps (float, double)||Yes||Soon|
|DICOM 2017c Dictionary||Yes||Yes|
|JPEG Compression||Via GDCM/DCMTK||No|
|JPEG-LS Compression||Via GDCM/DCMTK||No|
|JPEG 2000||Via GDCM||No|
|ISO-8859 Character Sets (1,2,3,4,5,6,7,8,9,11)||Yes||Yes|
|JIS X 0201 (Japanese)||Yes||Yes|
|JIS X 0208 (Japanese)||Yes||Yes|
|JIS X 0212 (Japanese)||Yes||Yes|
|KS X 1001 (Korean)||Yes||Yes|
|UID From Prefix||N/A||Yes|
All modalities can be read. Writing is currently limitied to CT, MR, and secondary capture.
The DICOM standard has very strict rules for both the structure and the content of DICOM files, and many of the rules are modality-specific. We therefore decided to focus our initial efforts CT and MR. Support for additional modalities will be added in the future.
Yes, but only for reading, not for writing.
Yes, FloatPixelData and DoubleFloatPixelData can be read. But not written (yet).
DICOM data is usually stored as one file per slice, and each file has specific information relating to position, time, etc. The vtkDICOMMetaData class makes it easy to access the meta data for each individual slice.
The DICOM 2004 standard introduced enhanced multi-frame data sets, which allow multiple slices CT or MR to be stored in a single file.
They can be read, but cannot yet be written.
Yes. All text encodings listed in the DICOM standard are handled, and are converted to utf-8 on demand.
They can be read via the vtkDICOMDirectory class. They cannot yet be written.
Python and Java. Only the reader and writer are fully wrapped in Java, so access to meta-data is limited. Python wrapping is complete.
The vtk-dicom library has its own native code for parsing DICOM files. For compressed files, GDCM and DCMTK are used to perform the decompression.