Grassroots DiCoM is a C++ library for DICOM medical files. It is accessible from Python, C#, Java and PHP. It supports RAW, JPEG, JPEG 2000, JPEG-LS, RLE and deflated transfer syntax.
It comes with a super fast scanner implementation to quickly scan hundreds of DICOM files.
It supports SCU network operations (C-ECHO, C-FIND, C-STORE, C-MOVE). PS 3.3 & 3.6 are distributed as XML files.
It also provides PS 3.15 certificates and password based mecanism to anonymize and de-identify DICOM datasets.
- RAW, JPEG, JPEG 2000, JPEG-LS, RLE and deflated
- Quickly scan DICOM for attributes
- SCU: C-ECHO, C-FIND, C-STORE, C-MOVE
- PS 3.3 & PS 3.6/3.7 as XML files
- PS 3.15 de-identify / re-identify (certificates+password based)
- Portable C++
- Bindings: Python, C#, Java, PHP and Perl
- VTK bridge (ImageData and RTSTRUCT)
- Nightly test suite
- Support well-known DICOM issues (PMSCT_RLE1, JAI JPEG-LS, Signed Short JPEG)
Follow Grassroots DICOM
Rate This ProjectLogin To Rate This Project
Great toolkit for handling DICOM files. Examples are clear. Developer is responsive to requests for fixes or changes.
Very flexible and did a good job writing DICOM files "from scratch", rather than as modifications of existing files. Useful utilities for taking apart files as well, can be used to write tests. C# interface is not perfect, reference counted C++ objects that you create from C# are not always properly managed across the interface, you really need to try to get all the objects you want created on the C++ side. (Eg. using ImageWriter.GetImage rather than creating an image and putting it into the ImageWriter). Also the clever byte packing/unpacking doesn't work smoothly from C#, you have to do it "yourself" a lot with C# encoders. Overall, feels like quite a 'low level' toolkit - very flexible, but lacking explicit modelling of IODs or modules at a higher level. Support via mailing list was excellent.
Currently using GDCM for a personal project, the features and functionality of this project are impressive. My only criticism would be to increase the level of documentation.