00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00026 #ifndef __vtkMedicalImageProperties_h
00027 #define __vtkMedicalImageProperties_h
00028
00029 #include "vtkObject.h"
00030
00031 class vtkMedicalImagePropertiesInternals;
00032
00033 class VTK_IO_EXPORT vtkMedicalImageProperties : public vtkObject
00034 {
00035 public:
00036 static vtkMedicalImageProperties *New();
00037 vtkTypeRevisionMacro(vtkMedicalImageProperties,vtkObject);
00038 void PrintSelf(ostream& os, vtkIndent indent);
00039
00041 virtual void Clear();
00042
00044
00045 vtkSetStringMacro(PatientName);
00046 vtkGetStringMacro(PatientName);
00048
00050
00051 vtkSetStringMacro(PatientID);
00052 vtkGetStringMacro(PatientID);
00054
00056
00059 vtkSetStringMacro(PatientAge);
00060 vtkGetStringMacro(PatientAge);
00062
00067 static int GetAgeAsFields(const char *age, int &year, int &month, int &week, int &day);
00068
00069
00070
00071
00072
00073
00074 int GetPatientAgeYear();
00075 int GetPatientAgeMonth();
00076 int GetPatientAgeWeek();
00077 int GetPatientAgeDay();
00078
00080
00081 vtkSetStringMacro(PatientSex);
00082 vtkGetStringMacro(PatientSex);
00084
00086
00088 vtkSetStringMacro(PatientBirthDate);
00089 vtkGetStringMacro(PatientBirthDate);
00091
00092
00093
00094 int GetPatientBirthDateYear();
00095 int GetPatientBirthDateMonth();
00096 int GetPatientBirthDateDay();
00097
00099
00101 vtkSetStringMacro(AcquisitionDate);
00102 vtkGetStringMacro(AcquisitionDate);
00104
00105
00106
00107 int GetAcquisitionDateYear();
00108 int GetAcquisitionDateMonth();
00109 int GetAcquisitionDateDay();
00110
00112
00115 vtkSetStringMacro(AcquisitionTime);
00116 vtkGetStringMacro(AcquisitionTime);
00118
00120
00121 vtkSetStringMacro(ImageDate);
00122 vtkGetStringMacro(ImageDate);
00124
00125
00126
00127 int GetImageDateYear();
00128 int GetImageDateMonth();
00129 int GetImageDateDay();
00130
00134 static int GetDateAsFields(const char *date, int &year, int &month, int &day);
00135
00139 static int GetDateAsLocale(const char *date, char *locale);
00140
00142
00144 vtkSetStringMacro(ImageTime);
00145 vtkGetStringMacro(ImageTime);
00147
00149
00150 vtkSetStringMacro(ImageNumber);
00151 vtkGetStringMacro(ImageNumber);
00153
00155
00156 vtkSetStringMacro(SeriesNumber);
00157 vtkGetStringMacro(SeriesNumber);
00159
00161
00163 vtkSetStringMacro(SeriesDescription);
00164 vtkGetStringMacro(SeriesDescription);
00166
00168
00169 vtkSetStringMacro(StudyID);
00170 vtkGetStringMacro(StudyID);
00172
00174
00175 vtkSetStringMacro(StudyDescription);
00176 vtkGetStringMacro(StudyDescription);
00178
00180
00181 vtkSetStringMacro(Modality);
00182 vtkGetStringMacro(Modality);
00184
00186
00187 vtkSetStringMacro(Manufacturer);
00188 vtkGetStringMacro(Manufacturer);
00190
00192
00193 vtkSetStringMacro(ManufacturerModelName);
00194 vtkGetStringMacro(ManufacturerModelName);
00196
00198
00199 vtkSetStringMacro(StationName);
00200 vtkGetStringMacro(StationName);
00202
00204
00205 vtkSetStringMacro(InstitutionName);
00206 vtkGetStringMacro(InstitutionName);
00208
00210
00212 vtkSetStringMacro(ConvolutionKernel);
00213 vtkGetStringMacro(ConvolutionKernel);
00215
00217
00219 vtkSetStringMacro(SliceThickness);
00220 vtkGetStringMacro(SliceThickness);
00221 virtual double GetSliceThicknessAsDouble();
00223
00225
00227 vtkSetStringMacro(KVP);
00228 vtkGetStringMacro(KVP);
00230
00232
00234 vtkSetStringMacro(GantryTilt);
00235 vtkGetStringMacro(GantryTilt);
00236 virtual double GetGantryTiltAsDouble();
00238
00240
00242 vtkSetStringMacro(EchoTime);
00243 vtkGetStringMacro(EchoTime);
00245
00247
00249 vtkSetStringMacro(EchoTrainLength);
00250 vtkGetStringMacro(EchoTrainLength);
00252
00254
00257 vtkSetStringMacro(RepetitionTime);
00258 vtkGetStringMacro(RepetitionTime);
00260
00262
00264 vtkSetStringMacro(ExposureTime);
00265 vtkGetStringMacro(ExposureTime);
00267
00269
00270 vtkSetStringMacro(XRayTubeCurrent);
00271 vtkGetStringMacro(XRayTubeCurrent);
00273
00275
00277 vtkSetStringMacro(Exposure);
00278 vtkGetStringMacro(Exposure);
00280
00282 virtual void DeepCopy(vtkMedicalImageProperties *p);
00283
00285
00291 virtual void AddWindowLevelPreset(double w, double l);
00292 virtual void RemoveWindowLevelPreset(double w, double l);
00293 virtual void RemoveAllWindowLevelPresets();
00294 virtual int GetNumberOfWindowLevelPresets();
00295 virtual int HasWindowLevelPreset(double w, double l);
00296 virtual int GetNthWindowLevelPreset(int idx, double *w, double *l);
00297 virtual double* GetNthWindowLevelPreset(int idx);
00298 virtual void SetNthWindowLevelPresetComment(int idx, const char *comment);
00299 virtual const char* GetNthWindowLevelPresetComment(int idx);
00301
00302 protected:
00303 vtkMedicalImageProperties();
00304 ~vtkMedicalImageProperties();
00305
00306 char *AcquisitionDate;
00307 char *AcquisitionTime;
00308 char *ConvolutionKernel;
00309 char *EchoTime;
00310 char *EchoTrainLength;
00311 char *Exposure;
00312 char *ExposureTime;
00313 char *GantryTilt;
00314 char *ImageDate;
00315 char *ImageNumber;
00316 char *ImageTime;
00317 char *InstitutionName;
00318 char *KVP;
00319 char *ManufacturerModelName;
00320 char *Manufacturer;
00321 char *Modality;
00322 char *PatientAge;
00323 char *PatientBirthDate;
00324 char *PatientID;
00325 char *PatientName;
00326 char *PatientSex;
00327 char *RepetitionTime;
00328 char *SeriesDescription;
00329 char *SeriesNumber;
00330 char *SliceThickness;
00331 char *StationName;
00332 char *StudyDescription;
00333 char *StudyID;
00334 char *XRayTubeCurrent;
00335
00337
00338 vtkMedicalImagePropertiesInternals *Internals;
00339
00341
00342 private:
00343 vtkMedicalImageProperties(const vtkMedicalImageProperties&);
00344 void operator=(const vtkMedicalImageProperties&);
00345 };
00346
00347 #endif