vtkMRMLPETCTFusionNode.h

Go to the documentation of this file.
00001 #ifndef __vtkMRMLPETCTFusionNode_h
00002 #define __vtkMRMLPETCTFusionNode_h
00003 
00004 #include <list>
00005 
00006 #include "vtkMRML.h"
00007 #include "vtkMRMLNode.h"
00008 #include "vtkMRMLStorageNode.h"
00009 #include "vtkPETCTFusion.h"
00010 
00011 class vtkImageData;
00012 
00013 class VTK_PETCTFUSION_EXPORT vtkMRMLPETCTFusionNode : public vtkMRMLNode
00014 {
00015   public:
00016  
00017   static vtkMRMLPETCTFusionNode *New();
00018   vtkTypeMacro(vtkMRMLPETCTFusionNode,vtkMRMLNode);
00019   void PrintSelf(ostream& os, vtkIndent indent);
00020 
00021 //BTX
00022   typedef struct SUVEntry {
00023     int Label;
00024     double Max;
00025     double Mean;
00026   } SUVEntry;
00027 
00028   std::list <SUVEntry> LabelResults;
00029 //ETX
00030 
00031 
00032   // Description:
00033   // Save PETCTFusion result to text file
00034   virtual void SaveResultToTextFile( const char *fileName );
00035  
00036   // Description:
00037   // Create instance of a PETCTFusion node.
00038   virtual vtkMRMLNode* CreateNodeInstance();
00039 
00040   // Description:
00041   // Set node attributes from name/value pairs
00042   virtual void ReadXMLAttributes( const char** atts);
00043 
00044   // Description:
00045   // Write this node's information to a MRML file in XML format.
00046   virtual void WriteXML(ostream& of, int indent);
00047 
00048   // Description:
00049   // Copy the node's attributes to this object
00050   virtual void Copy(vtkMRMLNode *node);
00051 
00052   // Description:
00053   // Get unique node XML tag name (like Volume, Model)
00054   virtual const char* GetNodeTagName() {return "PETCTFusionParameters";};
00055 
00056  
00057   // Description:
00058   // Get/Set input grayscale volume MRML Id
00059   vtkGetStringMacro(InputCTReference);
00060   vtkSetStringMacro(InputCTReference);
00061   
00062   // Description:
00063   // Get/Set input labelmap volume MRML Id
00064 
00065   vtkGetStringMacro(InputPETReference);
00066   vtkSetStringMacro(InputPETReference);
00067 
00068   vtkGetStringMacro (InputMask );
00069   vtkSetStringMacro (InputMask );
00070 
00071   vtkGetStringMacro (MessageText );
00072   vtkSetStringMacro (MessageText );
00073   
00074   vtkGetStringMacro (PETLUT);
00075   vtkSetStringMacro (PETLUT);
00076   
00077   vtkGetStringMacro (CTLUT);
00078   vtkSetStringMacro (CTLUT);
00079   
00080   vtkGetStringMacro (Layout);
00081   vtkSetStringMacro (Layout);
00082 
00083   vtkGetStringMacro ( WeightUnits );
00084   vtkSetStringMacro ( WeightUnits );
00085 
00086   vtkGetStringMacro ( DoseRadioactivityUnits );
00087   vtkSetStringMacro ( DoseRadioactivityUnits );
00088 
00089   vtkGetStringMacro ( TissueRadioactivityUnits );
00090   vtkSetStringMacro ( TissueRadioactivityUnits );
00091   
00092   vtkGetStringMacro ( VolumeUnits );
00093   vtkSetStringMacro ( VolumeUnits );
00094   
00095   vtkGetMacro ( VolumeRendering, int );
00096   vtkSetMacro ( VolumeRendering, int );
00097 
00098   vtkGetMacro ( NumberOfTemporalPositions, int );
00099   vtkSetMacro ( NumberOfTemporalPositions, int );
00100 
00101   vtkGetMacro ( InjectedDose, double );
00102   vtkSetMacro ( InjectedDose, double );
00103   
00104   vtkGetMacro ( PatientWeight, double );
00105   vtkSetMacro ( PatientWeight, double );
00106 
00107   vtkGetStringMacro ( PatientName );
00108   vtkSetStringMacro ( PatientName );
00109   
00110   vtkGetStringMacro ( StudyDate );
00111   vtkSetStringMacro ( StudyDate );
00112   
00113   vtkGetStringMacro ( RadiopharmaceuticalStartTime );
00114   vtkSetStringMacro ( RadiopharmaceuticalStartTime );
00115 
00116   vtkGetStringMacro (DecayCorrection);
00117   vtkSetStringMacro (DecayCorrection);
00118   
00119   vtkGetStringMacro (DecayFactor );
00120   vtkSetStringMacro (DecayFactor );
00121     
00122   vtkGetStringMacro (FrameReferenceTime );
00123   vtkSetStringMacro (FrameReferenceTime );
00124 
00125   vtkGetStringMacro (RadionuclideHalfLife );
00126   vtkSetStringMacro (RadionuclideHalfLife );
00127 
00128   vtkGetStringMacro (SeriesTime );
00129   vtkSetStringMacro (SeriesTime );
00130   
00131   vtkGetStringMacro (PhilipsSUVFactor );
00132   vtkSetStringMacro (PhilipsSUVFactor );
00133   
00134   vtkGetStringMacro (CalibrationFactor );
00135   vtkSetStringMacro (CalibrationFactor );
00136   
00137   vtkGetMacro ( SUVmax_t1, float );
00138   vtkSetMacro ( SUVmax_t1, float );
00139   vtkGetMacro ( SUVmax_t2, float );
00140   vtkSetMacro ( SUVmax_t2, float );
00141 
00142   vtkGetMacro ( SUVmin_t1, float );
00143   vtkSetMacro ( SUVmin_t1, float );
00144   vtkGetMacro ( SUVmin_t2, float );
00145   vtkSetMacro ( SUVmin_t2, float );
00146 
00147   vtkGetMacro ( SUVmean_t1, float );
00148   vtkSetMacro ( SUVmean_t1, float );
00149   vtkGetMacro ( SUVmean_t2, float );
00150   vtkSetMacro ( SUVmean_t2, float );
00151 
00152   vtkGetMacro ( SUVmaxmean_t1, float );
00153   vtkSetMacro ( SUVmaxmean_t1, float );
00154   vtkGetMacro ( SUVmaxmean_t2, float );
00155   vtkSetMacro ( SUVmaxmean_t2, float );
00156 
00157   vtkGetMacro ( SUV_t1, float )
00158   vtkSetMacro ( SUV_t1, float )
00159     
00160   vtkGetMacro ( SUV_t2, float )
00161   vtkSetMacro ( SUV_t2, float )
00162     
00163   vtkGetMacro ( CTRangeMin, double);
00164   vtkSetMacro ( CTRangeMin, double);
00165 
00166   vtkGetMacro ( CTRangeMax, double);
00167   vtkSetMacro ( CTRangeMax, double);
00168 
00169   vtkGetMacro ( CTMin, double);
00170   vtkSetMacro ( CTMin, double);
00171 
00172   vtkGetMacro ( CTMax, double);
00173   vtkSetMacro ( CTMax, double);
00174   
00175   vtkGetMacro ( ColorRangeMin, double );
00176   vtkSetMacro ( ColorRangeMin, double );  
00177 
00178   vtkGetMacro ( ColorRangeMax, double );
00179   vtkSetMacro ( ColorRangeMax, double );
00180   
00181   vtkGetMacro ( PETMin, double );
00182   vtkSetMacro ( PETMin, double );
00183 
00184   vtkGetMacro ( PETMax, double );
00185   vtkSetMacro ( PETMax, double );
00186 
00187   vtkGetMacro ( PETSUVmax, double );
00188   vtkSetMacro ( PETSUVmax, double );
00189   
00190   // Description:
00191   // Update the stored reference to another node in the scene
00192   virtual void UpdateReferenceID(const char *oldID, const char *newID);
00193   virtual void SetColorRange ( double min, double max );
00194   virtual void SetCTRange ( double min, double max );
00195 
00196 //BTX
00197   enum {
00198       ErrorEvent = 11000,
00199       ComputeDoneEvent,
00200       StartUpdatingDisplayEvent,
00201       UpdatePETDisplayEvent,
00202       UpdateCTDisplayEvent,
00203       DICOMUpdateEvent,
00204       NonDICOMEvent,
00205       WaitEvent,
00206       StatusEvent,
00207       PlotReadyEvent,
00208   };
00209 //ETX
00210 
00211  protected:
00212 
00213    vtkMRMLPETCTFusionNode();
00214   ~vtkMRMLPETCTFusionNode();
00215   vtkMRMLPETCTFusionNode(const vtkMRMLPETCTFusionNode&);
00216   void operator=(const vtkMRMLPETCTFusionNode&);
00217 
00218   char* InputCTReference;
00219   char* InputPETReference;
00220   char *InputMask;
00221   char* PETLUT;
00222   char* CTLUT;
00223   char* MessageText;
00224   char* Layout;
00225   int VolumeRendering;
00226 
00227   //--- MAIN PET PARAMS for simple computation
00228   int NumberOfTemporalPositions;
00229   double PatientWeight;
00230   double InjectedDose;
00231 
00232   //--- other PET params of interest
00233   //--- Can have values: { kg g lb }
00234   char* WeightUnits;
00235 
00236   char* PatientName;
00237   char* StudyDate;
00238 
00239   //--- Can have values: { MBq kBq Bq mBq uBq MCi kCi Ci mCi uCi }
00240   char* DoseRadioactivityUnits;
00241   char* TissueRadioactivityUnits;
00242 
00243   //--- Can have values: { ml }
00244   char* VolumeUnits;
00245   char *RadiopharmaceuticalStartTime;
00246   char *DecayCorrection;
00247   char *DecayFactor;
00248   char *FrameReferenceTime;
00249   char *RadionuclideHalfLife;
00250   char *SeriesTime;
00251   //--- Philips images with custom tag
00252   char *PhilipsSUVFactor;
00253   char *CalibrationFactor;
00254 
00255   //--- result holders
00256   float SUV_t1;
00257   float SUV_t2;
00258   float SUVmax_t1;
00259   float SUVmin_t1;
00260   float SUVmean_t1;
00261   float SUVmaxmean_t1;
00262   float SUVmax_t2;
00263   float SUVmin_t2;
00264   float SUVmean_t2;
00265   float SUVmaxmean_t2;
00266 
00267   double ColorRangeMin;
00268   double ColorRangeMax;
00269   double PETMin;
00270   double PETMax;
00271   double PETSUVmax;
00272 
00273   double CTRangeMin;
00274   double CTRangeMax;
00275   double CTMin;
00276   double CTMax;
00277 };
00278 
00279 #endif
00280 

Generated on 6 Apr 2011 for Slicer3 by  doxygen 1.6.1