What is DCMTK?
DCMTK is a comprehensive collection of libraries and tools for:- DICOM File Operations: Reading, writing, and parsing DICOM files
- Network Communication: Implementing DICOM network protocols (C-STORE, C-FIND, C-MOVE, C-GET)
- Data Manipulation: Converting, modifying, and validating DICOM data
- Image Compression: Supporting various DICOM compression formats
DICOM (Digital Imaging and Communications in Medicine) is the international standard for medical images and related information. DCMTK makes it possible to work with files from CT scanners, MRI machines, and other medical imaging devices.
Version Information
Miele-LXIV Easy uses DCMTK with the following configuration:Build Configuration
DCMTK is configured with several important options:build.sh:546-569
Key Configuration Options
| Option | Purpose |
|---|---|
BUILD_SHARED_LIBS=OFF | Build static libraries for easier distribution |
DCMTK_WITH_OPENSSL=ON | Enable secure DICOM network communication |
DCMTK_WITH_ICONV=ON | Support international character sets |
FOR_MIELE_LXIV | Custom flag for Miele-specific code paths |
Patching Process
DCMTK requires patches for compatibility with Miele-LXIV Easy. The patches are stored in thepatch/ directory:
Applying Patches
The build script automatically applies patches:build.sh:533-538
DCMTK Components
DCMTK consists of multiple modules, each providing specific functionality:Core Modules
- dcmdata: Core data structures for DICOM objects
- dcmnet: DICOM network protocol implementation
- dcmimgle: Image handling and manipulation
- dcmimage: Support for color images
Compression Modules
- dcmjpeg: JPEG compression (uses libjpeg)
- dcmjpls: JPEG-LS lossless compression
Network Services
- dcmqrdb: Query/Retrieve database
- dcmpstat: Presentation states
- dcmtls: TLS/SSL secure transport
All DCMTK modules are compiled and then collapsed into a single
libDCMTK.a static library for easier linking.Dependencies
DCMTK depends on several other libraries:Post-Installation Processing
After installation, additional headers are copied for Miele-LXIV compatibility:build.sh:591-602
- libijg8/12/16: Internal JPEG libraries with different bit depths
- libcharls: JPEG-LS compression headers
Library Collapsing
DCMTK produces many individual libraries (one per module). The build system collapses them into a single archive:build.sh:620-629
libDCMTK.a, simplifying the link phase in Xcode.
Configuration in Kconfig
The Kconfig system allows selective building of DCMTK:Kconfig-miele:49-56
Common Build Issues
OpenSSL Compatibility
If you encounter_EVP_PKEY_get_bits errors, you may need to switch OpenSSL versions:
This is only necessary on systems with multiple OpenSSL versions installed. The build script includes commented-out code for this workaround at build.sh:577-582.
Integration with Miele-LXIV
DCMTK is used throughout Miele-LXIV for:- Loading DICOM Files: Reading patient images from disk or network
- Network Operations: Querying PACS servers and retrieving images
- Data Export: Saving modified images in DICOM format
- Compression: Supporting various DICOM transfer syntaxes
Further Reading
DCMTK Official Site
Complete DCMTK documentation and resources
DICOM Standard
Learn about the DICOM standard