1. Summary
  2. Files
  3. Support
  4. Report Spam
  5. Create account
  6. Log in

GDCM Summer of Code 2012

From gdcm

Jump to: navigation, search

Contents

Presentation

Quick overview of GDCM here

Google sponsored SoC 2012 (Summer of Code 2012). GDCM has been accepted as mentoring organization.

If you have any questions, feel free to contact the GDCM mentoring administrator, Mathieu Malaterre, at (malat -at- users sf net).

If you are volunteering to become a mentor, please read this.

If you are a student interested in any of the following projects, please go to GSOC 2012 Student Application page to apply.

This page contains a few project ideas (which, by no means, limits any prospective proposals).

Timeline

  • March 26, 2012 - Applications open for students
  • April 6, 2012 - deadline for students to apply

full timeline

Patient Privacy (Password Protection)

Summary: Implements a Password based encryption for PHI

Description: GDCM currently implements patient protection by using the Basic Application Level Confidentiality Profile (see gdcmanon). This profile uses Cryptographic Message Syntax (CMS) to encode file with certificate based keys, this imply a priori knowledge of not only all recipients but also public key infrastructure.

In practice, this has proved to be fairly difficult to deploy outside an institution, or hospitals. To satisfy user demand for a simpler usb-key-sharing scheme, the DICOM standard has been extended to allow password based encryption. In this case a password is used to encrypt and recover the content; such a password can be distributed separately from the media but to any number of recipients as appropriate.

This will greatly simplify the exchange of media containing patient information, since it will allow patient data protection while at the same time be very simple to exchange. The only required thing will be the exchange of a password, without the password the patient data cannot be accessed.

The implementation for PKCS#7 has been done using OpenSSL for a portable implementation (see gdcm::CryptographicMessageSyntax). However on windows this adds an unnecessary dependencie to OpenSSL, while the CryptoAPI could be used instead. By reimplementing gdcm::CryptographicMessageSyntax to use the CryptoAPI we could drop the dependencie to OpenSSL on windows.


Required skills:

  • C++ programming
  • OpenSSL / Cryptography knowledge would be ideal

References:

Mentor: Mark Roden

Digital Signature

Summary: Implements a Signing and Verifying of DICOM Files

Description: Supplement 31 added features to allow DICOM applications to exchange messages over a Secure Transport Connection. While this protects the data during transit, it does not provide any lifetime integrity checks for DICOM SOP Instances. This supplement adds mechanisms for adding Digital Signatures to DICOM SOP Instances as a first step toward lifetime integrity checks.

Sup41 only addresses the following aspects of security:

  • Authentication – verifying the identity of entities involved in an operation
  • Data Integrity – verifying that data within an object has not been altered or removed

The goal of this project is to implements a profile from PS 3.15 Annex C; DIGITAL SIGNATURE PROFILES

Required skills:

  • C++ programming
  • Cryptography knowledge would be ideal (OpenSSL, NSS, CryptoAPI)

References:

Mentor: Mathieu Malaterre

Convert From/To Enhanced MR/CT Image Storage

Summary: Finish implementation of gdcmtar to convert from/to Enhanced MR/CT Image Storage

Description: gdcmtar support converting from SIEMENS MOSAIC back to MR Image Storage. It has basic support for converting from Enhanced MR/CT Image Storage. the goal would be to finish the implementation.

This would help user convert a Series of N DICOM files into a simplified view of M Enhanced DICOM files (M << N). An optional task would be as part of the conversion to also handle private extension and re-use the information from the old Image Storage Class instance and push it into the proper location in the new Image Storage Class.

This would also provide a tool for researchers to be able to convert from their private format to the public approved format for DTI/DWI (Diffusion).

Required skills:

  • C++ programming

References:

Mentor: Mathieu Malaterre

Export From/To XML

Summary: Implement a tool to convert from DICOM to XML

Description: DICOM Working Group WG26 has defined an API for executing XPATH queries on DICOM Native Model. It would be nice to have a tool to convert from DICOM to XML. XML is not well suited for storing large binary blob (eg. Pixel Data attribute), however some other SOP Classes are well suited for this transformation (eg. SR Documents).

The generated XML files will be checked against DTD and or XSD for validity.

Required skills:

  • C++ programming
  • XML+XSD notions would be nice

References:

Mentor: Mathieu Malaterre

Improve OpenJPEG decoding/encoding time

Summary: OpenJPEG is the library used to encode/decode JPEG 2000 stream

Description: DICOM supports encapsulated JPEG 2000 stream. GDCM currently uses OpenJPEG as a library to compress/decompress JPEG 2000 stream. However this library could be improved as to take advantage of modern compiler extension (SSE, MMX). It could also takes advantage of some GPU coding.

Required skills:

  • C programming
  • GPU/assembly notions would be nice
  • compiler options optimization notions would be nice
  • skills on image/data compression notions would be nice

References:

Mentor: Nicolas Bertrand

Possible ideas

Here comes a list of possible ideas, we are listing them for references (we need a mentor for them):

  • convert the DICOM standard from .doc file into docbook (or XML-like format)
  • add support for MPEG2/MPEG4
  • Portable DICOM Viewer ( This may be a good tool for distributing portable DICOM viewer with dicom files through CD or USB stick ...etc)
  • DICONDE viewer (changing internal dictionary reference from Patient to Component Name and Patient ID to Component ID ...etc)
  • SCP equivalent of gdcmscu (aka gdcmscp)
  • DICOM Structured Reporting Documents
  • PS 3.3, 7.6-Extension of the DICOM model of the real world for clinical trials, p.79
  • Authentification (PS 3.7, D.3.3.7-User Identity Negotiation, p. 105)
  • PS 3.3, A.45-Encapsulated Document Information Object Definition, p.278
  • gdcm::Anonymizer et PS 3.15, E-Attribute Confidentiality Profiles, p. 33)
  • Web-services : supp 148
  • GDCM Summer of Code 2011
  • GDCM Summer of Code 0X

Applying

For more info, see the official website: Google Melange.

Or if you are looking for more practical information on how to apply: http://code.google.com/soc/

Link to the flyer:

Links

DICOM Status

Link to the DICOM status page, from David Clunie webpage

Mentors List

If you are considering becoming a mentor, please list yourself here. You should read the advice for mentors before:

Ref:

Mathieu Malaterre

Mathieu is the current maintainer of GDCM. He has been designing most of the GDCM 2.X toolkit from scratch. He is the main responsible if GDCM ever corrupts your data !

google account: mathieu dot malaterre (gmail)

Frédéric Cervenansky

google account: fceransky (gmail)

Mark Roden

Mark is a contributer to GDCM, notably collaborating with Mathieu to produce the networking section of GDCM 2.X, as well as additions to the vtkGDCMPolyDataReader and Writer classes for RT Struct handling.

google account: mmroden (gmail)

Nicolas Bertrand

Nicolas is a PhD student working on Digital Cinema, with Utopia ( a French network of indie cinema theaters). The goal is to provide a full open-source solution for creation, projection and distribution of digital copies in theaters. As Digital Cinema uses JPEG2000 for compression, OpenJpeg was chosen for encoding and decoding Images. More precisely, Nicolas work on OpenJpeg decoding optimization, to speed-up the decompression time to reach a decoding frame rate from 1/24 to 1/30 s on a "standard" machine ( no dedicated hardware used).

google account: nicoinattendu (gmail)



GDCM: [Welcome | Site Map]
Personal tools