00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00030 #ifndef __itkSiemensVisionImageIO_h
00031 #define __itkSiemensVisionImageIO_h
00032
00033 #ifdef _MSC_VER
00034 #pragma warning ( disable : 4786 )
00035 #endif
00036
00037 #include "itkIPLCommonImageIO.h"
00038
00039 namespace itk
00040 {
00048 class ITK_EXPORT SiemensVisionImageIO : public IPLCommonImageIO
00049 {
00050 public:
00052 typedef SiemensVisionImageIO Self;
00053 typedef IPLCommonImageIO Superclass;
00054 typedef SmartPointer<Self> Pointer;
00055
00057 itkNewMacro(Self);
00058
00060 itkTypeMacro(SiemensVisionImageIO, Superclass);
00061
00062
00063
00070 virtual bool CanReadFile(const char* FileNameToRead);
00071
00072
00073
00074
00075
00076
00077
00078
00079
00080
00081
00082
00083
00084
00085
00086
00087
00088
00089
00090
00091
00092
00093
00094
00095
00096
00097
00098
00099
00100
00101
00102
00103
00104
00105
00106
00107
00108
00109 protected:
00110 SiemensVisionImageIO();
00111 ~SiemensVisionImageIO();
00112
00113
00114 virtual GEImageHeader *ReadHeader(const char *FileNameToRead);
00115 private:
00116 typedef enum {
00117 HDR_STUDY_YEAR= 0,
00118 HDR_STUDY_YEAR_LEN= 4,
00119 HDR_STUDY_MONTH= 4,
00120 HDR_STUDY_MONTH_LEN= 4,
00121 HDR_STUDY_DAY= 8,
00122 HDR_STUDY_DAY_LEN= 4,
00123 HDR_ACQ_YEAR= 12,
00124 HDR_ACQ_YEAR_LEN= 4,
00125 HDR_ACQ_MONTH= 16,
00126 HDR_ACQ_MONTH_LEN= 4,
00127 HDR_ACQ_DAY= 20,
00128 HDR_ACQ_DAY_LEN= 4,
00129 HDR_IMAGE_YEAR= 24,
00130 HDR_IMAGE_YEAR_LEN= 4,
00131 HDR_IMAGE_MONTH= 28,
00132 HDR_IMAGE_MONTH_LEN= 4,
00133 HDR_IMAGE_DAY= 32,
00134 HDR_IMAGE_DAY_LEN= 4,
00135 HDR_STUDY_HOUR= 36,
00136 HDR_STUDY_HOUR_LEN= 4,
00137 HDR_STUDY_MIN= 40,
00138 HDR_STUDY_MIN_LEN= 4,
00139 HDR_STUDY_SEC= 44,
00140 HDR_STUDY_SEC_LEN= 4,
00141 HDR_ACQ_HOUR= 52,
00142 HDR_ACQ_HOUR_LEN= 4,
00143 HDR_ACQ_MIN= 56,
00144 HDR_ACQ_MIN_LEN= 4,
00145 HDR_ACQ_SEC= 60,
00146 HDR_ACQ_SEC_LEN= 4,
00147 HDR_IMAGE_HOUR= 68,
00148 HDR_IMAGE_HOUR_LEN= 4,
00149 HDR_IMAGE_MIN= 72,
00150 HDR_IMAGE_MIN_LEN= 4,
00151 HDR_IMAGE_SEC= 76,
00152 HDR_IMAGE_SEC_LEN= 4,
00153 HDR_MANUFAC= 96,
00154 HDR_MANUFAC_LEN= 7,
00155 HDR_INSTUTE_NAME= 105,
00156 HDR_INSTUTE_NAME_LEN= 25,
00157 HDR_ANNOTATION= 186,
00158 HDR_ANNOTATION_LEN= 32,
00159 HDR_MODEL_NAME= 281,
00160 HDR_MODEL_NAME_LEN= 12,
00161 HDR_LMOVE_YEAR= 412,
00162 HDR_LMOVE_YEAR_LEN= 4,
00163 HDR_LMOVE_MONTH= 416,
00164 HDR_LMOVE_MONTH_LEN= 4,
00165 HDR_LMOVE_DAY= 420,
00166 HDR_LMOVE_DAY_LEN= 4,
00167 HDR_LMOVE_HOUR= 424,
00168 HDR_LMOVE_HOUR_LEN= 4,
00169 HDR_LMOVE_MIN= 428,
00170 HDR_LMOVE_MIN_LEN= 4,
00171 HDR_LMOVE_SEC= 432,
00172 HDR_LMOVE_SEC_LEN= 4,
00173 HDR_PAT_NAME= 768,
00174 HDR_PAT_NAME_LEN= 25,
00175 HDR_PAT_ID= 795,
00176 HDR_PAT_ID_LEN= 12,
00177 HDR_DOB_YEAR= 808,
00178 HDR_DOB_YEAR_LEN= 4,
00179 HDR_DOB_MONTH= 812,
00180 HDR_DOB_MONTH_LEN= 4,
00181 HDR_DOB_DAY= 816,
00182 HDR_DOB_DAY_LEN= 4,
00183 HDR_PAT_AGE= 851,
00184 HDR_PAT_AGE_LEN= 3,
00185 HDR_AGE_UNIT= 854,
00186 HDR_AGE_UNIT_LEN= 1,
00187 HDR_REG_YEAR= 1052,
00188 HDR_REG_YEAR_LEN= 4,
00189 HDR_REG_MONTH= 1056,
00190 HDR_REG_MONTH_LEN= 4,
00191 HDR_REG_DAY= 1060,
00192 HDR_REG_DAY_LEN= 4,
00193 HDR_REG_HOUR= 1064,
00194 HDR_REG_HOUR_LEN= 4,
00195 HDR_REG_MIN= 1068,
00196 HDR_REG_MIN_LEN= 4,
00197 HDR_REG_SEC= 1072,
00198 HDR_REG_SEC_LEN= 4,
00199 HDR_SLICE_THCK= 1544,
00200 HDR_SLICE_THCK_LEN= 8,
00201 HDR_TR= 1560,
00202 HDR_TR_LEN= 8,
00203 HDR_TE= 1568,
00204 HDR_TE_LEN= 8,
00205 HDR_FREQ= 1592,
00206 HDR_FREQ_LEN= 8,
00207 HDR_STATION= 1639,
00208 HDR_STATION_LEN= 5,
00209 HDR_CAL_YEAR= 1712,
00210 HDR_CAL_YEAR_LEN= 4,
00211 HDR_CAL_MONTH= 1716,
00212 HDR_CAL_MONTH_LEN= 4,
00213 HDR_CAL_DAY= 1720,
00214 HDR_CAL_DAY_LEN= 4,
00215 HDR_CAL_HOUR= 1724,
00216 HDR_CAL_HOUR_LEN= 4,
00217 HDR_CAL_MIN= 1728,
00218 HDR_CAL_MIN_LEN= 4,
00219 HDR_CAL_SEC= 1732,
00220 HDR_CAL_SEC_LEN= 4,
00221 HDR_COIL= 1767,
00222 HDR_COIL_LEN= 16,
00223 HDR_IMAGE_NUC= 1828,
00224 HDR_IMAGE_NUC_LEN= 4,
00225 HDR_FLIP_ANGLE= 2112,
00226 HDR_FLIP_ANGLE_LEN= 8,
00227 HDR_FIELD= 2560,
00228 HDR_FIELD_LEN= 8,
00229 HDR_DISPLAY_SIZE= 2864,
00230 HDR_DISPLAY_SIZE_LEN= 4,
00231 HDR_SEQPROG_NAME= 2944,
00232 HDR_SEQPROG_NAME_LEN= 65,
00233 HDR_WKC_NAME= 3009,
00234 HDR_WKC_NAME_LEN= 65,
00235 HDR_AUTHOR= 3074,
00236 HDR_AUTHOR_LEN= 9,
00237 HDR_SEQUENCE_TYPE= 3083,
00238 HDR_SEQUENCE_TYPE_LEN= 8,
00239 HDR_FOV_ROW= 3744,
00240 HDR_FOV_ROW_LEN= 8,
00241 HDR_FOV_COLUMN= 3752,
00242 HDR_FOV_COLUMN_LEN= 8,
00243 HDR_CENTER_X= 3768,
00244 HDR_CENTER_X_LEN= 8,
00245 HDR_CENTER_Y= 3776,
00246 HDR_CENTER_Y_LEN= 8,
00247 HDR_CENTER_Z= 3784,
00248 HDR_CENTER_Z_LEN= 8,
00249 HDR_NORMV_X= 3792,
00250 HDR_NORMV_X_LEN= 8,
00251 HDR_NORMV_Y= 3800,
00252 HDR_NORMV_Y_LEN= 8,
00253 HDR_NORMV_Z= 3808,
00254 HDR_NORMV_Z_LEN= 8,
00255 HDR_DIST_ISO= 3816,
00256 HDR_DIST_ISO_LEN= 8,
00257 HDR_ROWV_X= 3832,
00258 HDR_ROWV_X_LEN= 8,
00259 HDR_ROWV_Y= 3840,
00260 HDR_ROWV_Y_LEN= 8,
00261 HDR_ROWV_Z= 3848,
00262 HDR_ROWV_Z_LEN= 8,
00263 HDR_COLMNV_X= 3856,
00264 HDR_COLMNV_X_LEN= 8,
00265 HDR_COLMNV_Y= 3864,
00266 HDR_COLMNV_Y_LEN= 8,
00267 HDR_COLMNV_Z= 3872,
00268 HDR_COLMNV_Z_LEN= 8,
00269 HDR_ORNT_SET1X= 3880,
00270 HDR_ORNT_SET1X_LEN= 3,
00271 HDR_ORNT_SET1Y= 3884,
00272 HDR_ORNT_SET1Y_LEN= 3,
00273 HDR_ORNT_SET1Z= 3888,
00274 HDR_ORNT_SET1Z_LEN= 3,
00275 HDR_ORNT_SET2X= 3892,
00276 HDR_ORNT_SET2X_LEN= 3,
00277 HDR_ORNT_SET2Y= 3896,
00278 HDR_ORNT_SET2Y_LEN= 3,
00279 HDR_ORNT_SET2Z= 3900,
00280 HDR_ORNT_SET2Z_LEN= 3,
00281 HDR_PROTOCOL_NAME= 2944,
00282 HDR_PROTOCOL_NAME_LEN= 64,
00283 HDR_PIXELSIZE_ROW= 5000,
00284 HDR_PIXELSIZE_ROW_LEN= 8,
00285 HDR_PIXELSIZE_CLMN= 5008,
00286 HDR_PIXELSIZE_CLMN_LEN= 8,
00287 TEXT_PAT_ID= 5504,
00288 TEXT_PAT_ID_LEN= 12,
00289 TEXT_PAT_SEX= 5517,
00290 TEXT_PAT_SEX_LEN= 1,
00291 TEXT_PAT_AGE= 5518,
00292 TEXT_PAT_AGE_LEN= 3,
00293 TEXT_AGE_UNIT= 5521,
00294 TEXT_AGE_UNIT_LEN= 1,
00295 TEXT_PAT_POS= 5529,
00296 TEXT_PAT_POS_LEN= 7,
00297 TEXT_IMG_FLAG= 5541,
00298 TEXT_IMG_FLAG_LEN= 5,
00299 TEXT_IMG_NUMBER= 5546,
00300 TEXT_IMG_NUMBER_LEN= 4,
00301 TEXT_IMG_DAY= 5559,
00302 TEXT_IMG_DAY_LEN= 2,
00303 TEXT_IMG_MONTH= 5562,
00304 TEXT_IMG_MONTH_LEN= 3,
00305 TEXT_IMG_YEAR= 5566,
00306 TEXT_IMG_YEAR_LEN= 4,
00307 TEXT_IMG_HOUR= 5571,
00308 TEXT_IMG_HOUR_LEN= 2,
00309 TEXT_IMG_MIN= 5574,
00310 TEXT_IMG_MIN_LEN= 2,
00311 TEXT_ACQ_FLAG= 5577,
00312 TEXT_ACQ_FLAG_LEN= 2,
00313 TEXT_ACQ_MIN= 5583,
00314 TEXT_ACQ_MIN_LEN= 2,
00315 TEXT_ACQ_SEC= 5586,
00316 TEXT_ACQ_SEC_LEN= 2,
00317 TEXT_ANNOTATION= 5601,
00318 TEXT_ANNOTATION_LEN= 32,
00319 TEXT_ORGANIZATION= 5655,
00320 TEXT_ORGANIZATION_LEN= 25,
00321 TEXT_STATION= 5682,
00322 TEXT_STATION_LEN= 5,
00323 TEXT_ACQ_MTRX_PHASE= 5695,
00324 TEXT_ACQ_MTRX_PHASE_LEN= 3,
00325 TEXT_ACQ_PHASE_DIR= 5698,
00326 TEXT_ACQ_PHASE_DIR_LEN= 1,
00327 TEXT_ACQ_MTRX_FREQ= 5700,
00328 TEXT_ACQ_MTRX_FREQ_LEN= 3,
00329 TEXT_ACQ_MTRX_FREQO= 5703,
00330 TEXT_ACQ_MTRX_FREQO_LEN= 1,
00331 TEXT_ACQ_MTRX_FREQS= 5704,
00332 TEXT_ACQ_MTRX_FREQS_LEN= 1,
00333 TEXT_SEQUENCE= 5706,
00334 TEXT_SEQUENCE_LEN= 8,
00335 TEXT_FLIP_ANGLE= 5714,
00336 TEXT_FLIP_ANGLE_LEN= 3,
00337 TEXT_SCAN_FLAG= 5718,
00338 TEXT_SCAN_FLAG_LEN= 4,
00339 TEXT_SCANA_NUM= 5723,
00340 TEXT_SCANA_NUM_LEN= 3,
00341 TEXT_SCANB_NUM= 5726,
00342 TEXT_SCANB_NUM_LEN= 3,
00343 TEXT_TR_FLAG= 5730,
00344 TEXT_TR_FLAG_LEN= 2,
00345 TEXT_TR= 5734,
00346 TEXT_TR_LEN= 7,
00347 TEXT_TE_FLAG= 5742,
00348 TEXT_TE_FLAG_LEN= 2,
00349 TEXT_TE= 5746,
00350 TEXT_TE_LEN= 5,
00351 TEXT_ECHO_NUM= 5752,
00352 TEXT_ECHO_NUM_LEN= 1,
00353 TEXT_THCK_FLAG= 5790,
00354 TEXT_THCK_FLAG_LEN= 2,
00355 TEXT_SLICE_THCK= 5794,
00356 TEXT_SLICE_THCK_LEN= 7,
00357 TEXT_POS_FLAG= 5802,
00358 TEXT_POS_FLAG_LEN= 2,
00359 TEXT_SLICE_POS= 5806,
00360 TEXT_SLICE_POS_LEN= 7,
00361 TEXT_ANGLE_FLAG1= 5814,
00362 TEXT_ANGLE_FLAG1_LEN= 3,
00363 TEXT_ANGLE_FLAG2= 5817,
00364 TEXT_ANGLE_FLAG2_LEN= 1,
00365 TEXT_ANGLE_FLAG3= 5818,
00366 TEXT_ANGLE_FLAG3_LEN= 3,
00367 TEXT_ANGLE= 5821,
00368 TEXT_ANGLE_LEN= 4,
00369 TEXT_FOV_FLAG= 5838,
00370 TEXT_FOV_FLAG_LEN= 3,
00371 TEXT_FOVH= 5842,
00372 TEXT_FOVH_LEN= 3,
00373 TEXT_FOVV= 5846,
00374 TEXT_FOVV_LEN= 3,
00375 TEXT_TABLEPOS_FLAG= 5874,
00376 TEXT_TABLEPOS_FLAG_LEN= 2,
00377 TEXT_TABLE_POS= 5878,
00378 TEXT_TABLE_POS_LEN= 7,
00379 TEXT_STUDY_FLAG= 5938,
00380 TEXT_STUDY_FLAG_LEN= 5,
00381 TEXT_STUDY_NUM= 5943,
00382 TEXT_STUDY_NUM_LEN= 2,
00383 TEXT_DOB_DAY= 5956,
00384 TEXT_DOB_DAY_LEN= 2,
00385 TEXT_DOB_MONTH= 5959,
00386 TEXT_DOB_MONTH_LEN= 3,
00387 TEXT_DOB_YEAR= 5963,
00388 TEXT_DOB_YEAR_LEN= 4,
00389 TEXT_STUDY_FLAG2= 5992,
00390 TEXT_STUDY_FLAG2_LEN= 3,
00391 TEXT_IMAGE_FLAG2= 5996,
00392 TEXT_IMAGE_FLAG2_LEN= 3,
00393 TEXT_STUDY_NUM2= 5999,
00394 TEXT_STUDY_NUM2_LEN= 2,
00395 TEXT_IMAGE_NUM2= 6002,
00396 TEXT_IMAGE_NUM2_LEN= 2,
00397 TEXT_IMAGE_NUM3= 6013,
00398 TEXT_IMAGE_NUM3_LEN= 5,
00399 TEXT_MODEL_NAME= 6031,
00400 TEXT_MODEL_NAME_LEN= 15,
00401 TEXT_PAT_NAME= 6058,
00402 TEXT_PAT_NAME_LEN= 25,
00403 TEXT_START_HOUR= 6085,
00404 TEXT_START_HOUR_LEN= 2,
00405 TEXT_START_MIN= 6088,
00406 TEXT_START_MIN_LEN= 2,
00407 TEXT_START_SEC= 6091,
00408 TEXT_START_SEC_LEN= 2,
00409 HDR_TOTAL_LENGTH= 6144
00410 } SiemensVisionHeaderInfo;
00411 SiemensVisionImageIO(const Self&);
00412 void operator=(const Self&);
00413 };
00414
00415 }
00416
00417 #endif // __itkSiemensVisionImageIO_h
00418