SIVIC API  0.9.26
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
svkVarianFidMapper Class Referenceabstract

#include <svkVarianFidMapper.h>

Inheritance diagram for svkVarianFidMapper:
svkVarianCSFidMapper svkVarianUCSF2DcsiMapper svkVarianUCSFEPSI2DMapper

Public Member Functions

 vtkTypeMacro (svkVarianFidMapper, vtkObject)
 
virtual void InitializeDcmHeader (map< string, vector< vector< string > > > procparMap, svkDcmHeader *header, svkMRSIOD *iod, int swapBytes)
 
virtual void ReadFidFile (string fidFileName, svkImageData *data)
 

Protected Member Functions

 svkVarianFidMapper ()
 
 ~svkVarianFidMapper ()
 
void InitPatientModule ()
 
void InitGeneralStudyModule ()
 
void InitGeneralSeriesModule ()
 
void InitGeneralEquipmentModule ()
 
virtual void InitMultiFrameFunctionalGroupsModule ()
 
virtual void InitMultiFrameDimensionModule ()
 
virtual void InitAcquisitionContextModule ()
 
virtual void InitSharedFunctionalGroupMacros ()
 
virtual void InitPerFrameFunctionalGroupMacros ()
 
virtual void InitMRModifierMacro ()
 
virtual void InitMRTransmitCoilMacro ()
 
virtual void InitMRAveragesMacro ()
 
virtual void InitPixelMeasuresMacro ()
 
virtual void InitPlaneOrientationMacro ()
 
virtual void InitMREchoMacro ()
 
virtual void InitMRTimingAndRelatedParametersMacro ()
 
virtual void InitMRReceiveCoilMacro ()
 
virtual void InitMRSpectroscopyPulseSequenceModule ()=0
 
virtual void InitMRSpectroscopyModule ()
 
virtual void InitMRSpectroscopyFOVGeometryMacro ()
 
virtual void InitMRSpectroscopyDataModule ()
 
string GetDcmPatientPositionString ()
 
virtual void ConvertCmToMm ()
 
int GetHeaderValueAsInt (string keyString, int valueIndex=0, int procparRow=0)
 
float GetHeaderValueAsFloat (string keyString, int valueIndex=0, int procparRow=0)
 
string GetHeaderValueAsString (string keyString, int valueIndex=0, int procparRow=0)
 
virtual void SetCellSpectrum (vtkImageData *data, int x, int y, int z, int timePt, int coilNum)
 

Protected Attributes

map< string, vector< vector
< string > > > 
procparMap
 
svkDcmHeaderdcmHeader
 
float * specData
 
svkDcmHeader::DcmDataOrderingDirection dataSliceOrder
 
int numSlices
 
int numFrames
 
svkMRSIODiod
 
int swapBytes
 

Detailed Description

Mapper base class for converting from Varian FID Procpar header format to DICOM MR Spectrosocpy IOD/SOP Class instance. The mapper receives the procpar fields from the svkVarianFidReader. The procpar fields are in the form of a map of of key value pairs (procparMap). Map values are vectors of strings and can be accessed by key string name and value index (GetHeaderValueAsType methods).

Concrete mappers need to be implemented to map sequence specific content from Varian acquisitions to DICOM MR Spectroscopy. It is the svkVarianFidReader's responsibility to select the appropriate svkVarianFidMapper instance for any give data set.

Thanks to Dr. Sukumar Subramaniam (UCSF NMR Lab) for help understanding the Varian data format and for his assistance validating SIVIC's Varian data reading functionality.

Constructor & Destructor Documentation

svkVarianFidMapper ( )
protected
~svkVarianFidMapper ( )
protected

Member Function Documentation

void ConvertCmToMm ( )
protectedvirtual

Convert FID (Procpar) spatial values from cm to mm: FOV, Center, etc.

References svkVarianFidMapper::GetHeaderValueAsFloat(), and svkVarianFidMapper::procparMap.

Referenced by svkVarianFidMapper::InitializeDcmHeader().

string GetDcmPatientPositionString ( )
protected

Use the Procpar patient position string to set the DCM_PatientPosition data element.

References svkVarianFidMapper::GetHeaderValueAsString().

Referenced by svkVarianFidMapper::InitGeneralSeriesModule().

float GetHeaderValueAsFloat ( string  keyString,
int  valueIndex = 0,
int  procparRow = 0 
)
protected
int GetHeaderValueAsInt ( string  keyString,
int  valueIndex = 0,
int  procparRow = 0 
)
protected
string GetHeaderValueAsString ( string  keyString,
int  valueIndex = 0,
int  procparRow = 0 
)
protected
void InitAcquisitionContextModule ( )
protectedvirtual

Reimplemented in svkVarianCSFidMapper.

void InitGeneralEquipmentModule ( )
protected

DDF is historically the UCSF representation of a GE raw file so initialize to svkVarianFidMapper::MFG_STRING.

References svkVarianFidMapper::dcmHeader, and svkDcmHeader::SetValue().

Referenced by svkVarianFidMapper::InitializeDcmHeader().

void InitGeneralSeriesModule ( )
protected
void InitGeneralStudyModule ( )
protected
void InitializeDcmHeader ( map< string, vector< vector< string > > >  procparMap,
svkDcmHeader header,
svkMRSIOD iod,
int  swapBytes 
)
virtual
void InitMRAveragesMacro ( )
protectedvirtual
void InitMREchoMacro ( )
protectedvirtual
void InitMRModifierMacro ( )
protectedvirtual
void InitMRReceiveCoilMacro ( )
protectedvirtual
void InitMRSpectroscopyDataModule ( )
protectedvirtual
void InitMRSpectroscopyFOVGeometryMacro ( )
protectedvirtual
void InitMRSpectroscopyModule ( )
protectedvirtual
virtual void InitMRSpectroscopyPulseSequenceModule ( )
protectedpure virtual
void InitMRTimingAndRelatedParametersMacro ( )
protectedvirtual
void InitMRTransmitCoilMacro ( )
protectedvirtual
void InitMultiFrameDimensionModule ( )
protectedvirtual
void InitMultiFrameFunctionalGroupsModule ( )
protectedvirtual
void InitPatientModule ( )
protected
void InitPerFrameFunctionalGroupMacros ( )
protectedvirtual
void InitPixelMeasuresMacro ( )
protectedvirtual
void InitPlaneOrientationMacro ( )
protectedvirtual

The DICOM PlaneOrientationSequence is set from orientational params defined in the Varian procpar file. According to the VNMR User Programming documentation available at http://www.varianinc.com/cgi-bin/nav?varinc/docs/products/nmr/apps/pubs/sys_vn&cid=975JIOILOKPQNGMKIINKNGK&zsb=1060363007.usergroup (VNMR 6.1C, Pub No. 01-999165-00, Rev B0802, page 155), the Euler angles are defined in the "User Guide Imaging. The Varian User Guide: Imaging (Pub. No. 01-999163-00, Rev. A0201, page 272) provides the following definition of the procpar euler angles:

"Arguments: phi, psi, theta are the coordinates of a point in the logical imaging reference frame (the coordinate system defined by the readout, phase encode, and slice select axes) and the Euler angles that define the orientation of the logical frame: • phi is the angular rotation of the image plane about a line normal to the image plane. • psi is formed by the projection of a line normal to the imaging plane onto the magnet XY plane, and the magnet Y axis. • theta is formed by the line normal to the imaging plane, and the magnet Z axis."

i.e. axial(phi, psi, theta) => 0, 0, 0 cor (phi, psi, theta) => 0, 0, 90 sag (phi, psi, theta) => 0, 90, 90

Reimplemented in svkVarianCSFidMapper.

References svkDcmHeader::AddSequenceItemElement(), svkVarianFidMapper::dataSliceOrder, svkVarianFidMapper::dcmHeader, svkVarianFidMapper::GetHeaderValueAsFloat(), svkDcmHeader::GetNormalVector(), svkDcmHeader::INCREMENT_ALONG_NEG_NORMAL, and svkDcmHeader::INCREMENT_ALONG_POS_NORMAL.

Referenced by svkVarianFidMapper::InitSharedFunctionalGroupMacros().

void InitSharedFunctionalGroupMacros ( )
protectedvirtual
void ReadFidFile ( string  fidFileName,
svkImageData data 
)
virtual
void SetCellSpectrum ( vtkImageData *  data,
int  x,
int  y,
int  z,
int  timePt,
int  coilNum 
)
protectedvirtual
vtkTypeMacro ( svkVarianFidMapper  ,
vtkObject   
)

Member Data Documentation

svkDcmHeader::DcmDataOrderingDirection dataSliceOrder
protected
svkDcmHeader* dcmHeader
protected

Referenced by svkVarianFidMapper::InitGeneralEquipmentModule(), svkVarianFidMapper::InitGeneralSeriesModule(), svkVarianFidMapper::InitGeneralStudyModule(), svkVarianFidMapper::InitializeDcmHeader(), svkVarianFidMapper::InitMRAveragesMacro(), svkVarianFidMapper::InitMREchoMacro(), svkVarianFidMapper::InitMRModifierMacro(), svkVarianCSFidMapper::InitMRReceiveCoilMacro(), svkVarianFidMapper::InitMRReceiveCoilMacro(), svkVarianUCSFEPSI2DMapper::InitMRSpectroscopyDataModule(), svkVarianCSFidMapper::InitMRSpectroscopyDataModule(), svkVarianFidMapper::InitMRSpectroscopyDataModule(), svkVarianCSFidMapper::InitMRSpectroscopyFOVGeometryMacro(), svkVarianFidMapper::InitMRSpectroscopyFOVGeometryMacro(), svkVarianUCSFEPSI2DMapper::InitMRSpectroscopyModule(), svkVarianCSFidMapper::InitMRSpectroscopyModule(), svkVarianFidMapper::InitMRSpectroscopyModule(), svkVarianUCSF2DcsiMapper::InitMRSpectroscopyPulseSequenceModule(), svkVarianUCSFEPSI2DMapper::InitMRSpectroscopyPulseSequenceModule(), svkVarianCSFidMapper::InitMRSpectroscopyPulseSequenceModule(), svkVarianFidMapper::InitMRTimingAndRelatedParametersMacro(), svkVarianFidMapper::InitMRTransmitCoilMacro(), svkVarianFidMapper::InitMultiFrameDimensionModule(), svkVarianUCSFEPSI2DMapper::InitMultiFrameFunctionalGroupsModule(), svkVarianFidMapper::InitMultiFrameFunctionalGroupsModule(), svkVarianCSFidMapper::InitMultiFrameFunctionalGroupsModule(), svkVarianFidMapper::InitPatientModule(), svkVarianUCSF2DcsiMapper::InitPerFrameFunctionalGroupMacros(), svkVarianUCSFEPSI2DMapper::InitPerFrameFunctionalGroupMacros(), svkVarianFidMapper::InitPerFrameFunctionalGroupMacros(), svkVarianCSFidMapper::InitPerFrameFunctionalGroupMacros(), svkVarianUCSF2DcsiMapper::InitPixelMeasuresMacro(), svkVarianUCSFEPSI2DMapper::InitPixelMeasuresMacro(), svkVarianCSFidMapper::InitPixelMeasuresMacro(), svkVarianFidMapper::InitPixelMeasuresMacro(), svkVarianCSFidMapper::InitPlaneOrientationMacro(), svkVarianFidMapper::InitPlaneOrientationMacro(), svkVarianFidMapper::ReadFidFile(), svkVarianCSFidMapper::ReadFidFile(), svkVarianUCSFEPSI2DMapper::SetCellSpectrum(), svkVarianCSFidMapper::SetCellSpectrum(), and svkVarianFidMapper::SetCellSpectrum().

svkMRSIOD* iod
protected
int numFrames
protected
int numSlices
protected
map<string, vector < vector<string> > > procparMap
protected
float* specData
protected
int swapBytes
protected

The documentation for this class was generated from the following files: