Difference between revisions of "2011 Winter Project Week:DicomToNrrdRefactoring"

From NAMIC Wiki
Jump to: navigation, search
 
(2 intermediate revisions by one other user not shown)
Line 24: Line 24:
 
*[[NAMIC_Wiki:DTI:Nrrd_format | DTI:Nrrd_Format]]
 
*[[NAMIC_Wiki:DTI:Nrrd_format | DTI:Nrrd_Format]]
 
*[[NAMIC_Wiki:DTI:DICOM_for_DWI_and_DTI|DICOM_for_DWI_and_DTI]]
 
*[[NAMIC_Wiki:DTI:DICOM_for_DWI_and_DTI|DICOM_for_DWI_and_DTI]]
 +
 
</div>
 
</div>
  
Line 45: Line 46:
 
<!--<div style="width: 97%; float: left;">
 
<!--<div style="width: 97%; float: left;">
  
==References==
+
<h2>References</h2>
  
 
</div>
 
</div>
 
-->
 
-->
 +
 +
==Activities at SLC meeting==
 +
 +
'''Objectives'''
 +
 +
* Redesign DicomToNrrdConverter so that it is more maintainable.
 +
* Design a general base class to support most of the medical images in dicom format.
 +
* Supports for vendor/version/datatype combinations are implemented as derived classes and are independent from each other.
 +
* (Possibly) define APIs and derived classes for functional MRI.
 +
 +
'''Designs'''
 +
 +
*Target for Slicer4. First working version (passing current tests) in April.
 +
* Define API's for GDCM 2.x. Integrate with GDCM 2.x at summer programming week.
 +
* Separate functionalities for extracting essential spacial information from those for extracting non-essential information.
 +
*Essential information (all in public tags): space location, resolution, image orientation (IJK->xyz), and how the ordering of dicom files corresponds to the organization of the slices. This information is essential for putting measurements in the correct physical locations.
 +
*Non-essential information (some are in private tags, vendor dependent): diffusion related information -- b-values, gradient weighting direction, B-matrix.
 +
*Discussed general dicom approach with Steve, Jim, Hans, Xiadong, and Mark.
 +
*Decided that ITK should populate a sqlite database with all the dicom tags and then pass that database onto later filters which will handle modality specific information.
 +
*Since that functionality doesn't exist yet, the new version of DicomToNrrdConverter will be built using GDCM 2.x. 
 +
*GDCM 2.x handles issues such as slice ordering, slice arrangement, slice orientation, etc.
 +
*The Diffusion parsing filter will take the GDCM 2.x tag database then correct for gradient vector reference frame, B0 locations,  and perform all vendor specific conversions.

Latest revision as of 17:19, 12 January 2011

Home < 2011 Winter Project Week:DicomToNrrdRefactoring

Key Investigators

  • UIowa: Hans Johnson, Mark Scully, Joy Matsui
  • GE: Xiaodong Tao

Objective

Gather requirements in support of refactoring the DWI DicomToNrrdConverter.

Approach, Plan

Meet with anyone interested and establish a list of known requirements for DicomToNrrdConverter. Collectively brainstorm approaches to the refactoring, such as the use of GDCM 1.2 vs. GDCM 2.x vs. DCMTK. References:

Progress

Current DWI variations list:

  • slice ordering (S->I vs I->S),
  • transfer syntax endianness (big, little, and unknown),
  • slice arrangement (mosaic vs split, slice interleaving vs volume interleaving),
  • #B-Values (single vs multiple),
  • gradient vector reference frame (Scanner vs patient),
  • slice orientation (orthogonal vs oblique),
  • multiple B0s (all at beginning, all at end, interspersed)
  • vendor (different ways of storing diffusion information),
  • software versions (changes in how diffusion information is stored and interpreted).


Activities at SLC meeting

Objectives

  • Redesign DicomToNrrdConverter so that it is more maintainable.
  • Design a general base class to support most of the medical images in dicom format.
  • Supports for vendor/version/datatype combinations are implemented as derived classes and are independent from each other.
  • (Possibly) define APIs and derived classes for functional MRI.

Designs

  • Target for Slicer4. First working version (passing current tests) in April.
  • Define API's for GDCM 2.x. Integrate with GDCM 2.x at summer programming week.
  • Separate functionalities for extracting essential spacial information from those for extracting non-essential information.
  • Essential information (all in public tags): space location, resolution, image orientation (IJK->xyz), and how the ordering of dicom files corresponds to the organization of the slices. This information is essential for putting measurements in the correct physical locations.
  • Non-essential information (some are in private tags, vendor dependent): diffusion related information -- b-values, gradient weighting direction, B-matrix.
  • Discussed general dicom approach with Steve, Jim, Hans, Xiadong, and Mark.
  • Decided that ITK should populate a sqlite database with all the dicom tags and then pass that database onto later filters which will handle modality specific information.
  • Since that functionality doesn't exist yet, the new version of DicomToNrrdConverter will be built using GDCM 2.x.
  • GDCM 2.x handles issues such as slice ordering, slice arrangement, slice orientation, etc.
  • The Diffusion parsing filter will take the GDCM 2.x tag database then correct for gradient vector reference frame, B0 locations, and perform all vendor specific conversions.