SIVIC API
0.9.26
|
#include <svkVarianFidMapper.h>
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 Attributes | |
map< string, vector< vector < string > > > | procparMap |
svkDcmHeader * | dcmHeader |
float * | specData |
svkDcmHeader::DcmDataOrderingDirection | dataSliceOrder |
int | numSlices |
int | numFrames |
svkMRSIOD * | iod |
int | swapBytes |
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.
|
protected |
References svkVarianFidMapper::numFrames, and svkVarianFidMapper::specData.
|
protected |
References svkVarianFidMapper::specData.
|
protectedvirtual |
Convert FID (Procpar) spatial values from cm to mm: FOV, Center, etc.
References svkVarianFidMapper::GetHeaderValueAsFloat(), and svkVarianFidMapper::procparMap.
Referenced by svkVarianFidMapper::InitializeDcmHeader().
|
protected |
Use the Procpar patient position string to set the DCM_PatientPosition data element.
References svkVarianFidMapper::GetHeaderValueAsString().
Referenced by svkVarianFidMapper::InitGeneralSeriesModule().
|
protected |
References svkVarianFidMapper::procparMap.
Referenced by svkVarianFidMapper::ConvertCmToMm(), svkVarianFidMapper::InitMREchoMacro(), svkVarianUCSFEPSI2DMapper::InitMRSpectroscopyDataModule(), svkVarianCSFidMapper::InitMRSpectroscopyFOVGeometryMacro(), svkVarianFidMapper::InitMRSpectroscopyFOVGeometryMacro(), svkVarianUCSFEPSI2DMapper::InitMRSpectroscopyModule(), svkVarianCSFidMapper::InitMRSpectroscopyModule(), svkVarianFidMapper::InitMRSpectroscopyModule(), svkVarianFidMapper::InitMRTimingAndRelatedParametersMacro(), svkVarianUCSF2DcsiMapper::InitPerFrameFunctionalGroupMacros(), svkVarianUCSFEPSI2DMapper::InitPerFrameFunctionalGroupMacros(), svkVarianFidMapper::InitPerFrameFunctionalGroupMacros(), svkVarianCSFidMapper::InitPerFrameFunctionalGroupMacros(), svkVarianUCSF2DcsiMapper::InitPixelMeasuresMacro(), svkVarianUCSFEPSI2DMapper::InitPixelMeasuresMacro(), svkVarianCSFidMapper::InitPixelMeasuresMacro(), svkVarianFidMapper::InitPixelMeasuresMacro(), svkVarianCSFidMapper::InitPlaneOrientationMacro(), and svkVarianFidMapper::InitPlaneOrientationMacro().
|
protected |
References svkVarianFidMapper::procparMap.
Referenced by svkVarianUCSFEPSI2DMapper::InitMRSpectroscopyDataModule(), svkVarianCSFidMapper::InitMRSpectroscopyDataModule(), svkVarianFidMapper::InitMRSpectroscopyDataModule(), svkVarianCSFidMapper::InitMRSpectroscopyFOVGeometryMacro(), svkVarianFidMapper::InitMRSpectroscopyFOVGeometryMacro(), svkVarianUCSF2DcsiMapper::InitMRSpectroscopyPulseSequenceModule(), svkVarianUCSFEPSI2DMapper::InitMRSpectroscopyPulseSequenceModule(), svkVarianCSFidMapper::InitMRSpectroscopyPulseSequenceModule(), svkVarianUCSFEPSI2DMapper::InitMultiFrameFunctionalGroupsModule(), svkVarianFidMapper::InitMultiFrameFunctionalGroupsModule(), svkVarianUCSF2DcsiMapper::InitPerFrameFunctionalGroupMacros(), svkVarianFidMapper::InitPerFrameFunctionalGroupMacros(), svkVarianCSFidMapper::InitPerFrameFunctionalGroupMacros(), svkVarianUCSF2DcsiMapper::InitPixelMeasuresMacro(), svkVarianCSFidMapper::InitPixelMeasuresMacro(), svkVarianFidMapper::InitPixelMeasuresMacro(), and svkVarianCSFidMapper::ReadFidFile().
|
protected |
References svkVarianFidMapper::procparMap.
Referenced by svkVarianFidMapper::GetDcmPatientPositionString(), svkVarianFidMapper::InitGeneralStudyModule(), svkVarianFidMapper::InitMRSpectroscopyFOVGeometryMacro(), svkVarianCSFidMapper::InitMRSpectroscopyModule(), svkVarianFidMapper::InitMRSpectroscopyModule(), svkVarianUCSF2DcsiMapper::InitMRSpectroscopyPulseSequenceModule(), svkVarianUCSFEPSI2DMapper::InitMRSpectroscopyPulseSequenceModule(), svkVarianCSFidMapper::InitMRSpectroscopyPulseSequenceModule(), svkVarianUCSFEPSI2DMapper::InitMultiFrameFunctionalGroupsModule(), svkVarianFidMapper::InitMultiFrameFunctionalGroupsModule(), svkVarianCSFidMapper::InitMultiFrameFunctionalGroupsModule(), svkVarianFidMapper::InitPatientModule(), and svkVarianCSFidMapper::InitPlaneOrientationMacro().
|
protectedvirtual |
Reimplemented in svkVarianCSFidMapper.
|
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().
|
protected |
|
protected |
|
virtual |
Initializes the svkDcmHeader adapter to a specific IOD type and initizlizes the svkDcmHeader member of the svkImageData object.
References svkVarianFidMapper::ConvertCmToMm(), svkVarianFidMapper::dcmHeader, svkVarianFidMapper::InitGeneralEquipmentModule(), svkVarianFidMapper::InitGeneralSeriesModule(), svkVarianFidMapper::InitGeneralStudyModule(), svkVarianFidMapper::InitMRSpectroscopyDataModule(), svkVarianFidMapper::InitMRSpectroscopyModule(), svkVarianFidMapper::InitMRSpectroscopyPulseSequenceModule(), svkVarianFidMapper::InitMultiFrameFunctionalGroupsModule(), svkVarianFidMapper::InitPatientModule(), svkVarianFidMapper::iod, svkVarianFidMapper::procparMap, svkDcmHeader::SetValue(), and svkVarianFidMapper::swapBytes.
|
protectedvirtual |
|
protectedvirtual |
|
protectedvirtual |
Override in concrete mapper for specific acquisitino
References svkVarianFidMapper::dcmHeader, and svkDcmHeader::InitMRModifierMacro().
Referenced by svkVarianFidMapper::InitSharedFunctionalGroupMacros(), and svkVarianCSFidMapper::InitSharedFunctionalGroupMacros().
|
protectedvirtual |
Receive Coil:
Reimplemented in svkVarianCSFidMapper.
References svkDcmHeader::AddSequenceItemElement(), and svkVarianFidMapper::dcmHeader.
Referenced by svkVarianFidMapper::InitSharedFunctionalGroupMacros().
|
protectedvirtual |
Reimplemented in svkVarianCSFidMapper, and svkVarianUCSFEPSI2DMapper.
References svkVarianFidMapper::dcmHeader, svkVarianFidMapper::GetHeaderValueAsInt(), and svkDcmHeader::SetValue().
Referenced by svkVarianFidMapper::InitializeDcmHeader().
|
protectedvirtual |
Reimplemented in svkVarianCSFidMapper.
References svkDcmHeader::AddSequenceItemElement(), svkVarianFidMapper::dcmHeader, svkVarianFidMapper::GetHeaderValueAsFloat(), svkVarianFidMapper::GetHeaderValueAsInt(), and svkVarianFidMapper::GetHeaderValueAsString().
Referenced by svkVarianFidMapper::InitSharedFunctionalGroupMacros().
|
protectedvirtual |
Reimplemented in svkVarianCSFidMapper, and svkVarianUCSFEPSI2DMapper.
References svkVarianFidMapper::dcmHeader, svkVarianFidMapper::GetHeaderValueAsFloat(), svkVarianFidMapper::GetHeaderValueAsString(), and svkDcmHeader::SetValue().
Referenced by svkVarianFidMapper::InitializeDcmHeader().
|
protectedpure virtual |
Implemented in svkVarianCSFidMapper, svkVarianUCSFEPSI2DMapper, and svkVarianUCSF2DcsiMapper.
Referenced by svkVarianFidMapper::InitializeDcmHeader().
|
protectedvirtual |
|
protectedvirtual |
References svkVarianFidMapper::dcmHeader, and svkDcmHeader::InitMRTransmitCoilMacro().
|
protectedvirtual |
References svkDcmHeader::AddSequenceItemElement(), and svkVarianFidMapper::dcmHeader.
|
protectedvirtual |
Reimplemented in svkVarianCSFidMapper, and svkVarianUCSFEPSI2DMapper.
References svkVarianFidMapper::dcmHeader, svkVarianFidMapper::GetHeaderValueAsInt(), svkVarianFidMapper::GetHeaderValueAsString(), svkVarianFidMapper::InitPerFrameFunctionalGroupMacros(), svkVarianFidMapper::InitSharedFunctionalGroupMacros(), svkVarianFidMapper::numFrames, svkVarianFidMapper::numSlices, and svkDcmHeader::SetValue().
Referenced by svkVarianFidMapper::InitializeDcmHeader().
|
protected |
|
protectedvirtual |
The FID toplc is the center of the first voxel.
Reimplemented in svkVarianCSFidMapper, svkVarianUCSFEPSI2DMapper, and svkVarianUCSF2DcsiMapper.
References svkVarianFidMapper::dataSliceOrder, svkVarianFidMapper::dcmHeader, svkDcmHeader::GetDataDcos(), svkDcmHeader::GetDimensionIndexVector(), svkVarianFidMapper::GetHeaderValueAsFloat(), svkVarianFidMapper::GetHeaderValueAsInt(), svkDcmHeader::GetPixelSize(), svkDcmHeader::InitPerFrameFunctionalGroupSequence(), svkVarianFidMapper::numFrames, svkDcmHeader::SetDimensionVectorValue(), svkDcmHeader::SetSliceOrder(), svkDcmHeader::SLICE_INDEX, and svkVarianReader::UserToMagnet().
Referenced by svkVarianFidMapper::InitMultiFrameFunctionalGroupsModule().
|
protectedvirtual |
Pixel Spacing:
Reimplemented in svkVarianCSFidMapper, svkVarianUCSFEPSI2DMapper, and svkVarianUCSF2DcsiMapper.
References svkVarianFidMapper::dcmHeader, svkVarianFidMapper::GetHeaderValueAsFloat(), svkVarianFidMapper::GetHeaderValueAsInt(), and svkDcmHeader::InitPixelMeasuresMacro().
Referenced by svkVarianFidMapper::InitSharedFunctionalGroupMacros().
|
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().
|
protectedvirtual |
Reimplemented in svkVarianCSFidMapper.
References svkVarianFidMapper::InitMRAveragesMacro(), svkVarianFidMapper::InitMREchoMacro(), svkVarianFidMapper::InitMRModifierMacro(), svkVarianFidMapper::InitMRReceiveCoilMacro(), svkVarianFidMapper::InitMRSpectroscopyFOVGeometryMacro(), svkVarianFidMapper::InitMRTimingAndRelatedParametersMacro(), svkVarianFidMapper::InitPixelMeasuresMacro(), and svkVarianFidMapper::InitPlaneOrientationMacro().
Referenced by svkVarianUCSFEPSI2DMapper::InitMultiFrameFunctionalGroupsModule(), and svkVarianFidMapper::InitMultiFrameFunctionalGroupsModule().
|
virtual |
Reads spec data from fid file.
Reimplemented in svkVarianUCSFEPSI2DMapper, and svkVarianCSFidMapper.
References svkVarianFidMapper::dcmHeader, svkDcmHeader::GetIntValue(), svkDcmHeader::GetNumberOfCoils(), svkDcmHeader::GetNumberOfSlices(), svkDcmHeader::GetNumberOfTimePoints(), svkVarianFidMapper::SetCellSpectrum(), svkVarianFidMapper::specData, and svkVarianFidMapper::swapBytes.
Referenced by svkVarianFidReader::ExecuteDataWithInformation().
|
protectedvirtual |
Reimplemented in svkVarianCSFidMapper, and svkVarianUCSFEPSI2DMapper.
References svkVarianFidMapper::dcmHeader, svkDcmHeader::GetIntValue(), svkDcmHeader::GetNumberOfSlices(), svkDcmHeader::GetStringValue(), and svkVarianFidMapper::specData.
Referenced by svkVarianFidMapper::ReadFidFile().
vtkTypeMacro | ( | svkVarianFidMapper | , |
vtkObject | |||
) |
|
protected |
Referenced by svkVarianUCSF2DcsiMapper::InitPerFrameFunctionalGroupMacros(), svkVarianUCSFEPSI2DMapper::InitPerFrameFunctionalGroupMacros(), svkVarianFidMapper::InitPerFrameFunctionalGroupMacros(), svkVarianCSFidMapper::InitPerFrameFunctionalGroupMacros(), svkVarianCSFidMapper::InitPlaneOrientationMacro(), and svkVarianFidMapper::InitPlaneOrientationMacro().
|
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().
|
protected |
Referenced by svkVarianFidMapper::InitializeDcmHeader().
|
protected |
Referenced by svkVarianUCSFEPSI2DMapper::InitMultiFrameFunctionalGroupsModule(), svkVarianFidMapper::InitMultiFrameFunctionalGroupsModule(), svkVarianUCSF2DcsiMapper::InitPerFrameFunctionalGroupMacros(), svkVarianUCSFEPSI2DMapper::InitPerFrameFunctionalGroupMacros(), svkVarianFidMapper::InitPerFrameFunctionalGroupMacros(), and svkVarianFidMapper::svkVarianFidMapper().
|
protected |
|
protected |
|
protected |
Referenced by svkVarianFidMapper::ReadFidFile(), svkVarianCSFidMapper::ReadFidFile(), svkVarianUCSFEPSI2DMapper::SetCellSpectrum(), svkVarianFidMapper::SetCellSpectrum(), svkVarianFidMapper::svkVarianFidMapper(), svkVarianUCSF2DcsiMapper::svkVarianUCSF2DcsiMapper(), svkVarianUCSFEPSI2DMapper::svkVarianUCSFEPSI2DMapper(), svkVarianCSFidMapper::~svkVarianCSFidMapper(), svkVarianFidMapper::~svkVarianFidMapper(), svkVarianUCSF2DcsiMapper::~svkVarianUCSF2DcsiMapper(), and svkVarianUCSFEPSI2DMapper::~svkVarianUCSFEPSI2DMapper().
|
protected |