SIVIC API  0.9.26
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
svkGEPFileMapperUCSFfidcsiDev0.h
Go to the documentation of this file.
1 /*
2  * Copyright © 2009-2014 The Regents of the University of California.
3  * All Rights Reserved.
4  *
5  * Redistribution and use in source and binary forms, with or without
6  * modification, are permitted provided that the following conditions are met:
7  * • Redistributions of source code must retain the above copyright notice,
8  * this list of conditions and the following disclaimer.
9  * • Redistributions in binary form must reproduce the above copyright notice,
10  * this list of conditions and the following disclaimer in the documentation
11  * and/or other materials provided with the distribution.
12  * • None of the names of any campus of the University of California, the name
13  * "The Regents of the University of California," or the names of any of its
14  * contributors may be used to endorse or promote products derived from this
15  * software without specific prior written permission.
16  *
17  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
18  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
19  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
20  * IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
21  * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
22  * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
23  * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
24  * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
25  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
26  * OF SUCH DAMAGE.
27  */
28 
29 
30 
31 /*
32  * $URL$
33  * $Rev$
34  * $Author$
35  * $Date$
36  *
37  * Authors:
38  * Jason C. Crane, Ph.D.
39  * Beck Olson
40  */
41 
42 #ifndef SVK_GE_PFILE_MAPPER_UCSF_FIDCSI_DEV0_H
43 #define SVK_GE_PFILE_MAPPER_UCSF_FIDCSI_DEV0_H
44 
45 
46 #include <svkGEPFileMapperUCSF.h>
47 
48 
49 namespace svk {
50 
51 
96 {
97 
98  public:
99 
102 
103  virtual void ReadData(vtkStringArray* pFileNames, svkImageData* data);
104  static void RedimensionData( svkImageData* data,
105  int* numVoxelsOriginal,
106  int* numVoxelsReordered,
107  int numFreqPts );
108 
109 
110  protected:
111 
114 
115  virtual vtkstd::string GetVolumeLocalizationTechnique();
116  virtual void GetSelBoxCenter( float selBoxCenter[3] );
117  virtual void GetSelBoxSize( float selBoxSize[3] );
118  virtual void GetCenterFromRawFile( double* center );
119  virtual bool IsChopOn();
120  void ModifyForPatientEntry( svkImageData* data );
121  void InitMRSpectroscopyModule();
122  float GetPPMRef();
123 
124 
125 
126  private:
127 
128  void ReorderEPSIData( svkImageData* data );
129  void EPSIPhaseCorrection(
130  svkImageData* data,
131  int* numVoxels,
132  int numRead,
133  int epsiAxis
134  );
135  void ZeroFill( svkImageData* data );
136  void FlipAxis( svkImageData* data, int axis, int lobe = -1 );
137  void FFTShift( svkImageData* data );
138  void ResampleRamps( svkImageData* data, int deltaT, int plateauTime, int rampTime, int epsiAxis );
139  virtual void GetWaveFormIntegral( float* waveFormIntegral, int deltaT, int plateauTime, int rampTime );
140  void GetKaiserBesselValues(
141  vtkstd::vector<float>* u,
142  float width,
143  float beta,
144  vtkstd::vector<float>* kbVals
145  );
146  double GetBessel0Term( float arg, int index);
147  double GetBessel0( float arg);
148  double GetModifiedBessel0( float arg );
149  void GetRolloffCorrection( int gridSize, float width, float beta, float* apodCor);
150  void AddReorderedTimePoint(
151  svkMrsImageData* dynamicImage,
152  svkImageData* tmpImage,
153  int timePt,
154  int numTimePts
155  );
156  void PrintSpecPts(
157  svkImageData* data,
158  int numFreqPts,
159  svkDcmHeader::DimensionVector* dimensionVector,
160  svkDcmHeader::DimensionVector* loopIndex,
161  vtkstd::string comment
162  );
163  void CombineLobes(svkImageData* data);
164 
165 
166 
167 
168 };
169 
170 } //svk
171 
172 #endif //SVK_GE_PFILE_MAPPER_UCSF_FIDCSI_DEV0_H
173 
Definition: svkMrsImageData.h:66
vtkTypeMacro(svkGEPFileMapperUCSFfidcsiDev0, svkGEPFileMapperUCSF)
virtual void ReadData(vtkStringArray *pFileNames, svkImageData *data)
Definition: svkGEPFileMapperUCSFfidcsiDev0.cc:149
virtual void GetCenterFromRawFile(double *center)
Definition: svkGEPFileMapperUCSFfidcsiDev0.cc:135
svkGEPFileMapperUCSFfidcsiDev0()
Definition: svkGEPFileMapperUCSFfidcsiDev0.cc:62
virtual void GetSelBoxSize(float selBoxSize[3])
Definition: svkGEPFileMapperUCSFfidcsiDev0.cc:121
~svkGEPFileMapperUCSFfidcsiDev0()
Definition: svkGEPFileMapperUCSFfidcsiDev0.cc:78
virtual vtkstd::string GetVolumeLocalizationTechnique()
Definition: svkGEPFileMapperUCSFfidcsiDev0.cc:96
virtual void GetSelBoxCenter(float selBoxCenter[3])
Definition: svkGEPFileMapperUCSFfidcsiDev0.cc:106
float GetPPMRef()
Definition: svkGEPFileMapperUCSFfidcsiDev0.cc:1591
Definition: svkGEPFileMapperUCSFfidcsiDev0.h:95
Definition: svkGEPFileMapperUCSF.h:56
void InitMRSpectroscopyModule()
Definition: svkGEPFileMapperUCSFfidcsiDev0.cc:1575
static void RedimensionData(svkImageData *data, int *numVoxelsOriginal, int *numVoxelsReordered, int numFreqPts)
static svkGEPFileMapperUCSFfidcsiDev0 * New()
Definition: svkImageData.h:107
vector< map< svkDcmHeader::DimensionIndexLabel, int > > DimensionVector
Definition: svkDcmHeader.h:131
void ModifyForPatientEntry(svkImageData *data)
Definition: svkGEPFileMapperUCSFfidcsiDev0.cc:1434
virtual bool IsChopOn()
Definition: svkGEPFileMapperUCSFfidcsiDev0.cc:87