00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00031
#ifndef __itkGE4ImageIO_h
00032
#define __itkGE4ImageIO_h
00033
00034
#ifdef _MSC_VER
00035
#pragma warning ( disable : 4786 )
00036
#endif
00037
00038
#include <fstream>
00039
#include "itkIPLCommonImageIO.h"
00040
#include "itkImageIOBase.h"
00041
#include "itkGEImageHeader.h"
00042
00043
namespace itk
00044 {
00049 class ITK_EXPORT GE4ImageIO :
public IPLCommonImageIO
00050 {
00051
public:
00053
typedef GE4ImageIO
Self;
00054 typedef IPLCommonImageIO Superclass;
00055 typedef SmartPointer<Self> Pointer;
00056
00058
itkNewMacro(
Self);
00059
00061
itkTypeMacro(GE4ImageIO,
Superclass);
00062
00063
00064
00071
virtual bool CanReadFile(
const char* FileNameToRead) ;
00072
00074
00075
00076
00078
00079
00080
00082
00083
00084
00088
00089
00090
00091
00092
00099
00100
00101
00103
00104
00105
00108
00109
00110
protected:
00111 GE4ImageIO();
00112 ~GE4ImageIO();
00113
00114
00115
virtual struct GEImageHeader *ReadHeader(
const char *FileNameToRead);
00116
private:
00117 GE4ImageIO(
const Self&);
00118
float MvtSunf (
int numb);
00119
enum Study_Header_offsets {
00120 STHDR_ID= 0,
00121 STHDR_REV= 7,
00122 STHDR_BLKS= 11,
00123 STHDR_CRTRP= 12,
00124 STHDR_CRTRT= 28,
00125 STHDR_RAWNM= 29,
00126 STHDR_STNUM= 32,
00127 STHDR_RAWID= 35,
00128 STHDR_SGENID= 37,
00129 STHDR_DATE= 39,
00130 STHDR_IDATE= 44,
00131 STHDR_TIME= 47,
00132 STHDR_ITIME= 51,
00133 STHDR_PNM= 54,
00134 STHDR_PID= 70,
00135 STHDR_PIDTMP= 76,
00136 STHDR_AGE= 78,
00137 STHDR_SEX= 80,
00138 STHDR_WGHT= 81,
00139 STHDR_RFR= 83,
00140 STHDR_DGN= 99,
00141 STHDR_OP= 115,
00142 STHDR_DESC= 131,
00143 STHDR_HIST= 161,
00144 STHDR_STIME= 221,
00145 STHDR_HOSP= 223,
00146 STHDR_STAT= 239,
00147 STHDR_RSRV1= 240,
00148 STHDR_RSRV2= 256,
00149 STHDR_CHECK= 511,
00150
00151 };
00152
enum Series_Header_Offsets {
00153 SEHDR_ID= 0,
00154 SEHDR_REV= 7,
00155 SEHDR_BLKS= 11,
00156 SEHDR_CRTRP= 12,
00157 SEHDR_CRTRT= 28,
00158 SEHDR_RAWNM= 29,
00159 SEHDR_SERNUM= 31,
00160 SEHDR_RAWID= 33,
00161 SEHDR_SGENID= 35,
00162 SEHDR_DATE= 37,
00163 SEHDR_IDATE= 42,
00164 SEHDR_TIME= 45,
00165 SEHDR_ITIME= 49,
00166 SEHDR_DESC= 52,
00167 SEHDR_TYPE= 112,
00168 SEHDR_CTYPE= 113,
00169 SEHDR_CNAME= 114,
00170 SEHDR_CNTRDESC= 122,
00171 SEHDR_PTYPE= 138,
00172 SEHDR_PNAME= 139,
00173 SEHDR_IMODE= 147,
00174 SEHDR_FSTREN= 148,
00175 SEHDR_PSEQ= 149,
00176 SEHDR_PSSTYPE= 150,
00177 SEHDR_FOV= 151,
00178 SEHDR_CENTER= 153,
00179 SEHDR_ORIEN= 159,
00180 SEHDR_POS= 160,
00181 SEHDR_ANREF= 161,
00182 SEHDR_VANREF= 177,
00183 SEHDR_VERLAN= 193,
00184 SEHDR_HORLAN= 195,
00185 SEHDR_TBLLOC= 197,
00186 SEHDR_SMATRIX= 199,
00187 SEHDR_IMATRIX= 201,
00188 SEHDR_IALLOC= 202,
00189 SEHDR_GTYP= 203,
00190 SEHDR_PSMODE= 204,
00191 SEHDR_DNAME= 205,
00192 SEHDR_LNDMRK= 211,
00193 SEHDR_PROTO= 213,
00194 SEHDR_SCOIL_TYPE= 223,
00195 SEHDR_SUPP_TECH= 224,
00196 SEHDR_RSRV1= 225,
00197 SEHDR_RSRV2= 256,
00198 SEHDR_CHECK= 511,
00199 };
00200
enum Image_Header_Offsets {
00201 IHDR_ID= 0,
00202 IHDR_REV= 7,
00203 IHDR_BLKS= 11,
00204 IHDR_CRTRP= 12,
00205 IHDR_CRTRT= 28,
00206 IHDR_DATE= 29,
00207 IHDR_IDATE= 34,
00208 IHDR_TIME= 37,
00209 IHDR_ITIME= 41,
00210 IHDR_IMNUM= 44,
00211 IHDR_SERNM= 46,
00212 IHDR_RAWID= 48,
00213 IHDR_SGENID= 50,
00214 IHDR_STRTX= 52,
00215 IHDR_ENDX= 54,
00216 IHDR_STRTY= 56,
00217 IHDR_ENDY= 58,
00218 IHDR_STRTZ= 60,
00219 IHDR_ENDZ= 62,
00220 IHDR_OBLIQUE= 64,
00221 IHDR_LOCATN= 73,
00222 IHDR_TBLPOS= 75,
00223 IHDR_THICK= 77,
00224 IHDR_SPACE= 79,
00225 IHDR_ROUND= 81,
00226 IHDR_TR= 82,
00227 IHDR_TS= 84,
00228 IHDR_TE= 86,
00229 IHDR_TI= 88,
00230 IHDR_TY= 90,
00231 IHDR_NECHO= 98,
00232 IHDR_ECHON= 99,
00233 IHDR_SLQUANT= 100,
00234 IHDR_NAVE= 101,
00235 IHDR_RSRCH= 102,
00236 IHDR_PNAME= 103,
00237 IHDR_PSDDT= 119,
00238 IHDR_GPRE= 125,
00239 IHDR_PSERIES= 126,
00240 IHDR_PIMAGES= 131,
00241 IHDR_SHAPE= 136,
00242 IHDR_X= 137,
00243 IHDR_Y= 138,
00244 IHDR_PIXSIZ= 139,
00245 IHDR_CMPRS= 141,
00246 IHDR_BITPIX= 142,
00247 IHDR_WINDOW= 143,
00248 IHDR_LEVEL= 144,
00249 IHDR_IFBLKS= 145,
00250 IHDR_NEX= 146,
00251 IHDR_PSAR= 148,
00252 IHDR_ASAR= 150,
00253 IHDR_MONITOR= 152,
00254 IHDR_CONTIG= 153,
00255 IHDR_HRT_RT= 154,
00256 IHDR_DEL_TRG= 155,
00257 IHDR_ARR= 157,
00258 IHDR_RTIME= 158,
00259 IHDR_IMGS_PCY= 159,
00260 IHDR_ARRS_SCN= 160,
00261 IHDR_XMTATTN= 162,
00262 IHDR_RCVATTN= 163,
00263 IHDR_FLDSTR= 164,
00264 IHDR_IMG_OFF= 166,
00265 IHDR_INTR_DEL= 167,
00266 IHDR_IHDR_DNAME=169,
00267 IHDR_FLPANG= 175,
00268 IHDR_SC_TYPE= 176,
00269 IHDR_SC_SER= 178,
00270 IHDR_SC_IMA= 180,
00271 IHDR_SC_EXTR= 182,
00272 IHDR_SC_RSRV= 183,
00273 IHDR_PSERIES_2= 193,
00274 IHDR_PIMAGE_2= 195,
00275 IHDR_R_CC= 197,
00276 IHDR_A_CC= 199,
00277 IHDR_S_CC= 201,
00278 IHDR_R_NC= 203,
00279 IHDR_A_NC= 205,
00280 IHDR_S_NC= 207,
00281 IHDR_TLHC_R= 209,
00282 IHDR_TLHC_A= 211,
00283 IHDR_TLHC_S= 213,
00284 IHDR_TRHC_R= 215,
00285 IHDR_TRHC_A= 217,
00286 IHDR_TRHC_S= 219,
00287 IHDR_BLHC_R= 221,
00288 IHDR_BLHC_A= 223,
00289 IHDR_BLHC_S= 225,
00290 IHDR_DISCLMR= 227,
00291 IHDR_MINDAT= 228,
00292 IHDR_CPHASE= 229,
00293 IHDR_TE2= 230,
00294 IHDR_SWAP_PF= 232,
00295 IHDR_PAUSIN= 233,
00296 IHDR_PAUSTM= 234,
00297 IHDR_USET= 236,
00298 IHDR_USER0= 237,
00299 IHDR_USER1= 239,
00300 IHDR_USER2= 241,
00301 IHDR_USER3= 243,
00302 IHDR_USER4= 245,
00303 IHDR_USER5= 247,
00304 IHDR_USER6= 249,
00305 IHDR_USER7= 251,
00306 IHDR_USER8= 253,
00307 IHDR_USER9= 255,
00308 IHDR_OBPLANE= 257,
00309 IHDR_CNTRST= 258,
00310 IHDR_CSTAGNT= 259,
00311 IHDR_CSTAMT= 264,
00312 IHDR_FILFMT= 266,
00313 IHDR_AUTOCF= 267,
00314 IHDR_XMTFREQ= 268,
00315 IHDR_RCVFREQ= 270,
00316 IHDR_AUTOXMTFERQ=272,
00317 IHDR_AUTORCVFREQ=274,
00318 IHDR_AUTOXMTATTN=276,
00319 IHDR_AUTORCVATTN=278,
00320 IHDR_HISTO= 280,
00321 IHDR_PF_SWAPPED= 281,
00322 IHDR_R1= 282,
00323 IHDR_R2= 283,
00324 IHDR_VBW= 284,
00325 IHDR_RSRV2= 285,
00326 IHDR_CHECK= 511,
00327 };
00328
enum DSS_Header_Offsets {
00329 DSSHDR_ID= 0,
00330 DSSHDR_REV= 7,
00331 DSSHDR_BLKS= 11,
00332 DSSHDR_CRTRP= 12,
00333 DSSHDR_CRTRT= 28,
00334 DSSHDR_DATE= 29,
00335 DSSHDR_IDATE= 34,
00336 DSSHDR_TIME= 37,
00337 DSSHDR_ITIME= 41,
00338 DSSHDR_TLM= 44,
00339 DSSHDR_ASTAT= 46,
00340 DSSHDR_APEND= 47,
00341 DSSHDR_SPEND= 48,
00342 DSSHDR_LOCK= 49,
00343 DSSHDR_STLST= 57,
00344 DSSHDR_STIME= 121,
00345 DSSHDR_MSERIES= 123,
00346 DSSHDR_SERIES= 124,
00347 DSSHDR_DEFSER= 126,
00348 DSSHDR_EOF= 129,
00349 DSSHDR_SDIR= 130,
00350 DSSHDR_IMAP= 223,
00351 DSSHDR_RSRV1= 471,
00352 };
00353
enum DSS_Header_Series_Offsets {
00354 DSSHDR_SERIES_MIMAGE= 0,
00355 DSSHDR_SERIES_IMAGE= 1,
00356 DSSHDR_SERIES_RSRV= 2,
00357 DSSHDR_SERIES_PTYPE= 3,
00358 DSSHDR_SERIES_PSEQ= 4,
00359 DSSHDR_SERIES_ANREF= 5,
00360 DSSHDR_SERIES_VANREF= 6,
00361 DSSHDR_SERIES_FOV= 7,
00362 DSSHDR_SERIES_DESC= 8,
00363 DSSHDR_SERIES_ASTAT= 19,
00364 DSSHDR_SERIES_APEND= 20,
00365 DSSHDR_SERIES_IMATRIX= 21,
00366 DSSHDR_SERIES_MINLOC= 22,
00367 DSSHDR_SERIES_MAXLOC= 23,
00368 DSSHDR_SERIES_LOCCHAR= 24,
00369 DSSHDR_SERIES_TLM= 25,
00370 DSSHDR_SERIES_CHECK= 27,
00371 DSSHDR_SERIES_DEFIM= 28,
00372 DSSHDR_SERIES_TIMAGE= 29,
00373 DSSHDR_SERIES_GTYPE= 30,
00374 DSSHDR_SERIES_WPENTRY= 33,
00375 };
00376
enum DSS_Header_Image_Offsets {
00377 DSSHDR_IMAGE_LOCATN= 0,
00378 DSSHDR_IMAGE_THICK= 1,
00379 DSSHDR_IMAGE_NEXT= 2,
00380 DSSHDR_IMAGE_PRIOR= 3,
00381 DSSHDR_IMAGE_EXIST= 4,
00382 DSSHDR_IMAGE_T1= 5,
00383 DSSHDR_IMAGE_T2= 7,
00384 DSSHDR_IMAGE_TRGD= 9,
00385 DSSHDR_IMAGE_ECHON= 11,
00386 DSSHDR_IMAGE_NXTEN= 12,
00387 DSSHDR_IMAGE_PREN= 13,
00388 DSSHDR_IMAGE_GPRE= 14,
00389 DSSHDR_IMAGE_RCC= 15,
00390 DSSHDR_IMAGE_ACC= 17,
00391 DSSHDR_IMAGE_SCC= 19,
00392 DSSHDR_IMAGE_RNC= 21,
00393 DSSHDR_IMAGE_ANC= 23,
00394 DSSHDR_IMAGE_SNC= 25,
00395 DSSHDR_IMAGE_OBP= 27,
00396 DSSHDR_IMAGE_WPENTRY= 32,
00397 };
00398
enum Block_Offsets {
00399 SYSCON_START = 0*256,
00400 SITCUS_START= 4*256,
00401 STHDR_START= 6*256,
00402 SEHDR_START= 8*256,
00403 IHDR_START= 10*256,
00404 RDBM_START= 12*256,
00405 PSD_START= 16*256,
00406 PIXMAP_START= 26*256,
00407 IDATA_START= 28*256,
00408 };
00409
enum Sys_Config_Offsets {
00410 SCON_SYSID= 6,
00411 SCON_HNAME= 16
00412 };
00413
void operator=(
const Self&);
00414 };
00415
00416 }
00417
00418
#endif // __itkAnalyzeImageIO_h