GSoC/GCI Archive
Google Summer of Code 2012

Grassroots DICOM

Web Page:

Mailing List:


Whenever medical data, especially medical image data, is generated in a clinical environment, that data must be stored such that it can be retrieved by the same hospital either immediately, or after several years to determine the effectiveness of a course of treatment and to allow comparisons of multiple images for the same patient.

Digital Imaging and Communications in Medicine (DICOM) is a standard that governs this capability by specifying handling, storing, printing, and transmitting information in medical imaging. Grassroots DICOM (GDCM) is an implementation of the DICOM standard designed to be open source so that researchers may access clinical data directly.

GDCM includes a file format definition and a network communications protocol, both of which should be extended to provide a full set of tools for a researcher or small medical imaging vendor to interface with an existing medical database.


  • Import To/From XML This project aims to implement a tool for converting data in DICOM to XML files and vice versa. To achieve the conversion to XML files we will have to make a DTD(Document Type Definition) or an XSD (XML Scheme Definition).After some deliberation I have decided upon using an XSD as it can capture the varied DICOM datatypes and provides a more effective solution than DTD's. The tool will also have a properly defined interface that will allow users to specify various options, set parameters, define output layout etc. This tool will thus add a new facet to GDCM's functionality and allow users to view DICOM data in XML files, as well as execute XQueries on them.
  • Improve OpenJPEG2000 Encoding Decoding Time The goal is to incorporate a GPU accelerated compression/decompression of JPEG2000 stream in GDCM. Along with the massively parallel architecture like GPU, the SIMD functionality of the multi-core CPUs (MMX, PThreads or OpenMP) can also be used for acceleration.
  • Patient Privacy (Password Protection) Implement patient protection by using password based encryption. This would greatly simplify the exchange of media containing patient information, as opposed to the current implementation which uses certificate based keys.