Main Page   Groups   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   File Members   Concepts

itkGE5ImageIO.h

Go to the documentation of this file.
00001 /*=========================================================================
00002 
00003 Program:   Insight Segmentation & Registration Toolkit
00004 Module:    $RCSfile: itkGE5ImageIO.h,v $
00005 Language:  C++
00006 Date:      $Date: 2004/01/08 00:39:05 $
00007 Version:   $Revision: 1.6 $
00008 
00009 Copyright (c) Insight Software Consortium. All rights reserved.
00010 See ITKCopyright.txt or http://www.itk.org/HTML/Copyright.htm for details.
00011 
00012 This software is distributed WITHOUT ANY WARRANTY; without even
00013 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
00014 PURPOSE.  See the above copyright notices for more information.
00015 
00016 =========================================================================*/
00017 
00031 #ifndef __itkGE5ImageIO_h
00032 #define __itkGE5ImageIO_h
00033 
00034 #ifdef _MSC_VER
00035 #pragma warning ( disable : 4786 )
00036 #endif
00037 
00038 #include <fstream>
00039 #include "itkImageIOBase.h"
00040 #include "itkIPLCommonImageIO.h"
00041 #include "itkGEImageHeader.h"
00042 //#include "idbm_hdr_def.h"
00043 
00044 namespace itk
00045 {
00050 class ITK_EXPORT GE5ImageIO : public IPLCommonImageIO
00051 {
00052 public:
00054   typedef GE5ImageIO            Self;
00055   typedef IPLCommonImageIO  Superclass;
00056   typedef SmartPointer<Self>  Pointer;
00057 
00059   itkNewMacro(Self);
00060 
00062   itkTypeMacro(GE5ImageIO, Superclass);
00063 
00064   /*-------- This part of the interfaces deals with reading data. ----- */
00065 
00072   virtual bool CanReadFile(const char* FileNameToRead) ;
00073 
00075   // Implemented in superclass
00076   //      virtual void ReadImageInformation();
00077 
00079   // Implemented in superclass
00080   //      virtual const std::type_info& GetPixelType() const;
00081 
00083   // Implemented in superclass
00084   //      virtual void Read(void* buffer);
00085 
00089   // Implemented in superclass
00090   //      virtual unsigned int GetComponentSize() const;
00091 
00092   /*-------- This part of the interfaces deals with writing data. ----- */
00093 
00100   // Implemented in superclass
00101   //      virtual bool CanWriteFile(const char * FileNameToWrite);
00102 
00104   // Implemented in superclass
00105   //      virtual void WriteImageInformation();
00106 
00109   // Implemented in superclass
00110   //      virtual void Write(const void* buffer);
00111 protected:
00112   GE5ImageIO();
00113   ~GE5ImageIO();
00114   // Implemented in superclass
00115   //      void PrintSelf(std::ostream& os, Indent indent) const;
00116   virtual struct GEImageHeader *ReadHeader(const char *FileNameToRead);
00117 private:
00118   /*
00119         SUITE HEADER
00120       */
00121   enum GE_SU_ENUM {
00122     SU_ID=0,                  
00123     SU_UNIQ=4,                
00124     SU_DISKID=6,              
00125     SU_PRODID=7,              
00126     SU_VERSCRE=20,            
00127     SU_VERSCUR=22,            
00128     SU_CHECKSUM=24,           
00129     SU_HDR_LEN=114
00130   };
00131   /*
00132         EXAM HEADER
00133       */
00134   enum GE_EX_ENUM {
00135     EX_SUID=0,                
00136     EX_UNIQ=4,                
00137     EX_DISKID=6,              
00138     EX_NO=8,                  
00139     EX_HOSPNAME=10,           
00140     EX_DETECT=44,             
00141     EX_NUMCELLS=46,           
00142     EX_ZEROCELL=50,           
00143     EX_CELLSPACE=54,          
00144     EX_SRCTODET=58,           
00145     EX_SRCTOISO=62,           
00146     EX_TUBETYP=66,            
00147     EX_DASTYP=68,             
00148     EX_NUM_DCNK=70,           
00149     EX_DCN_LEN=72,            
00150     EX_DCN_DENSITY=74,        
00151     EX_DCN_STEPSIZE=76,       
00152     EX_DCN_SHIFTCNT=78,       
00153     EX_MAGSTRENGTH=80,        
00154     EX_PATID=84,              
00155     EX_PATNAME=97,            
00156     EX_PATAGE=122,            
00157     EX_PATIAN=124,            
00158     EX_PATSEX=126,            
00159     EX_PATWEIGHT=128,         
00160     EX_TRAUMA=132,            
00161     EX_HIST=134,              
00162     EX_REQNUM=195,            
00163     EX_DATETIME=208,          
00164     EX_REFPHY=212,            
00165     EX_DIAGRAD=245,           
00166     EX_OP=278,  
00167     EX_DESC=282,              
00168     EX_TYP=305,               
00169     EX_FORMAT=308,            
00170     EX_FIRSTAXTIME=310,       
00171     EX_SYSID=318,             
00172     EX_LASTMOD=328,           
00173     EX_PROTOCOLFLAG=332,      
00174     EX_ALLOC_KEY=334,         
00175     EX_DELTA_CNT=348,         
00176     EX_VERSCRE=352,           
00177     EX_VERSCUR=354,           
00178     EX_CHECKSUM=356,          
00179     EX_COMPLETE=360,          
00180     EX_SERIESCT=364,          
00181     EX_NUMARCH=368,           
00182     EX_NUMSERIES=372,         
00183     EX_SERIES=376,            
00184     EX_NUMUNSER=384,          
00185     EX_UNSERIES=388,          
00186     EX_TOARCHCNT=396,         
00187     EX_TOARCHIVE=400,         
00188     EX_PROSPCNT=408,          
00189     EX_PROSP=421,             
00190     EX_MODELNUM=420,          
00191     EX_MODELCNT=424,          
00192     EX_MODELS=428,            
00193     EX_STAT=436,              
00194     EX_UNIQUE_SYS_ID=438,     
00195     EX_SERVICE_ID=454,        
00196     EX_MOBILE_LOC=470,        
00197     EX_HDR_LEN=1024
00198   };
00199 
00200   enum GE_SE_ENUM {
00201     SE_SUID=0,                
00202     SE_UNIQ=4,                
00203     SE_DISKID=6,              
00204     SE_EXNO=8,                
00205     SE_NO=10,                 
00206     SE_DATETIME=12,           
00207     SE_ACTUAL_DT=16,          
00208     SE_DESC=20,               
00209     SE_PR_SYSID=50,           
00210     SE_PANSYSID=59,           
00211     SE_TYP=68,                
00212     SE_SOURCE=70,             
00213     SE_PLANE=72,              
00214     SE_SCAN_TYPE=74,          
00215     SE_POSITION=76,           
00216     SE_ENTRY=80,              
00217     SE_ANREF=84,              
00218     SE_LMHOR=88,              
00219     SE_PRTCL=92,              
00220     SE_CONTRAST=118,          
00221     SE_START_RAS=120,         
00222     SE_START_LOC=122,         
00223     SE_END_RAS=126,           
00224     SE_END_LOC=128,           
00225     SE_PSEQ=132,              
00226     SE_SORTORDER=134,         
00227     SE_LNDMRKCNT=136,         
00228     SE_NACQ=140,              
00229     SE_XBASEST=142,           
00230     SE_XBASEEND=144,          
00231     SE_XENHST=146,            
00232     SE_XENHEND=148,           
00233     SE_LASTMOD=150,           
00234     SE_ALLOC_KEY=154,         
00235     SE_DELTA_CNT=168,         
00236     SE_VERSCRE=172,           
00237     SE_VERSCUR=174,           
00238     SE_PDS_A=176,             
00239     SE_PDS_C=180,             
00240     SE_PDS_U=184,             
00241     SE_CHECKSUM=188,          
00242     SE_COMPLETE=192,          
00243     SE_NUMARCH=196,           
00244     SE_IMAGECT=200,           
00245     SE_NUMIMAGES=204,         
00246     SE_IMAGES=208,            
00247     SE_NUMUNIMG=216,          
00248     SE_UNIMAGES=220,          
00249     SE_TOARCHCNT=228,         
00250     SE_TOARCHIVE=232,         
00251     SE_ECHO1_ALPHA=240,       
00252     SE_ECHO1_BETA=244,        
00253     SE_ECHO1_WINDOW=248,      
00254     SE_ECHO1_LEVEL=250,       
00255     SE_ECHO2_ALPHA=252,       
00256     SE_ECHO2_BETA=256,        
00257     SE_ECHO2_WINDOW=260,      
00258     SE_ECHO2_LEVEL=262,       
00259     SE_ECHO3_ALPHA=264,       
00260     SE_ECHO3_BETA=268,        
00261     SE_ECHO3_WINDOW=272,      
00262     SE_ECHO3_LEVEL=274,       
00263     SE_ECHO4_ALPHA=276,       
00264     SE_ECHO4_BETA=280,        
00265     SE_ECHO4_WINDOW=284,      
00266     SE_ECHO4_LEVEL=286,       
00267     SE_ECHO5_ALPHA=288,       
00268     SE_ECHO5_BETA=292,        
00269     SE_ECHO5_WINDOW=296,      
00270     SE_ECHO5_LEVEL=298,       
00271     SE_ECHO6_ALPHA=300,       
00272     SE_ECHO6_BETA=304,        
00273     SE_ECHO6_WINDOW=308,      
00274     SE_ECHO6_LEVEL=310,       
00275     SE_ECHO7_ALPHA=312,       
00276     ECHO7_BETA=316,           
00277     ECHO7_WINDOW=320,         
00278     ECHO7_LEVEL=322,         
00279     ECHO8_ALPHA=324,          
00280     ECHO8_BETA=328,           
00281     ECHO8_WINDOW=332,         
00282     ECHO8_LEVEL=334,          
00283     SE_HDR_LEN=1020
00284   };
00285   /*
00286         image header
00287       */
00288   enum GE_IMAGE_HEADER_ENUM {
00289     IM_SUID=0,                
00290     IM_UNIQ=4,                
00291     IM_DISKID=6,              
00292     IM_EXNO=8,                
00293     IM_SENO=10,               
00294     IM_NO=12,                 
00295     IM_DATETIME=14,           
00296     IM_ACTUAL_DT=18,          
00297     IM_SCTIME=22,             
00298     IM_SLTHICK=26,            
00299     IM_IMATRIX_X=30,          
00300     IM_IMATRIX_Y=32,          
00301     IM_DFOV=34,               
00302     IM_DFOV_RECT=38,          
00303     IM_DIM_X=42,              
00304     IM_DIM_Y=46,              
00305     IM_PIXSIZE_X=50,          
00306     IM_PIXSIZE_Y=54,          
00307     IM_PDID=58,               
00308     IM_CONTRASTIV=72,         
00309     IM_CONTRASTORAL=79,       
00310     IM_CONTMODE=106,          
00311     IM_SERRX=108,             
00312     IM_IMGRX=110,             
00313     IM_SCREENFORMAT=112,      
00314     IM_PLANE=114,             
00315     IM_SCANSPACING=116,       
00316     IM_COMPRESS=120,          
00317     IM_SCOUTTYPE=122,         
00318     IM_LOC_RAS=124,           
00319     IM_LOC=126,               
00320     IM_CTR_R=130,             
00321     IM_CTR_A=134,             
00322     IM_CTR_S=138,             
00323     IM_NORM_R=142,            
00324     IM_NORM_A=146,            
00325     IM_NORM_S=150,            
00326     IM_TLHC_R=154,            
00327     IM_TLHC_A=158,            
00328     IM_TLHC_S=162,            
00329     IM_TRHC_R=166,            
00330     IM_TRHC_A=170,            
00331     IM_TRHC_S=174,            
00332     IM_BRHC_R=178,            
00333     IM_BRHC_A=182,            
00334     IM_BRHC_S=186,            
00335     IM_FORIMGREV=190,         
00336     IM_TR=194,                
00337     IM_TI=198,                
00338     IM_TE=202,                
00339     IM_TE2=206,               
00340     IM_NUMECHO=210,           
00341     IM_ECHONUM=212,           
00342     IM_TBLDLTA=214,           
00343     IM_NEX=218,               
00344     IM_CONTIG=222,            
00345     IM_HRTRATE=224,           
00346     IM_TDEL=226,              
00347     IM_SARAVG=230,            
00348     IM_SARPEAK=234,           
00349     IM_MONSAR=238,            
00350     IM_TRGWINDOW=240,         
00351     IM_REPTIME=242,           
00352     IM_IMGPCYC=246,           
00353     IM_XMTGAIN=248,           
00354     IM_RCVGAIN1=250,          
00355     IM_RCVGAIN2=252,          
00356     IM_MR_FLIP=254,           
00357     IM_MINDAT=256,            
00358     IM_CPHASE=260,            
00359     IM_SWAPPF=262,            
00360     IM_PAUSEINT=264,          
00361     IM_PAUSETIME=266,         
00362     IM_OBPLANE=270,           
00363     IM_SLOCFOV=274,           
00364     IM_XMTFREQ=278,           
00365     IM_AUTOXMTFREQ=282,       
00366     IM_AUTOXMTGAIN=286,       
00367     IM_PRESCAN_R1=288,        
00368     IM_PRESCAN_R2=290,        
00369     IM_USER_BITMAP=292,       
00370     IM_CENFREQ=296,           
00371     IM_IMODE=298,             
00372     IM_IOPT=300,              
00373     IM_PSEQ=304,              
00374     IM_PSEQMODE=306,          
00375     IM_PSDNAME=308,           
00376     IM_PSD_DATETIME=342,      
00377     IM_PSD_INAME=346,         
00378     IM_CTYP=360,              
00379     IM_CNAME=362,             
00380     IM_SURFCTYP=380,          
00381     IM_SURFCEXT=382,          
00382     IM_RAWRUNNUM=384,         
00383     IM_CAL_FLDSTR=388,        
00384     IM_SUPP_TECH=392,         
00385     IM_VBW=394,               
00386     IM_SLQUANT=398,           
00387     IM_GPRE=400,              
00388     IM_INTR_DEL=402,          
00389     IM_USER0=406,             
00390     IM_USER1=410,             
00391     IM_USER2=414,             
00392     IM_USER3=418,             
00393     IM_USER4=422,             
00394     IM_USER5=426,             
00395     IM_USER6=430,             
00396     IM_USER7=434,             
00397     IM_USER8=438,             
00398     IM_USER9=442,             
00399     IM_USER10=446,            
00400     IM_USER11=450,            
00401     IM_USER12=454,            
00402     IM_USER13=458,            
00403     IM_USER14=462,            
00404     IM_USER15=466,            
00405     IM_USER16=470,            
00406     IM_USER17=474,            
00407     IM_USER18=478,            
00408     IM_USER19=482,            
00409     IM_USER20=486,            
00410     IM_USER21=490,            
00411     IM_USER22=494,            
00412     IM_USER23=498,            
00413     IM_USER24=502,            
00414     IM_ALLOC_KEY=506,  
00415     IM_LASTMOD=520,           
00416     IM_VERSCRE=524,           
00417     IM_VERSCUR=526,           
00418     IM_PDS_A=528,             
00419     IM_PDS_C=532,             
00420     IM_PDS_U=536,             
00421     IM_CHECKSUM=540,          
00422     IM_ARCHIVED=544,          
00423     IM_COMPLETE=548,          
00424     IM_SATBITS=552,           
00425     IM_SCIC=554,              
00426     IM_SATXLOC1=556,          
00427     IM_SATXLOC2=558,          
00428     IM_SATYLOC1=560,          
00429     IM_SATYLOC2=562,          
00430     IM_SATZLOC1=566,          
00431     IM_SATZLOC2=568,          
00432     IM_SATXTHICK=570,         
00433     IM_SATYTHICK=572,         
00434     IM_SATZTHICK=574,         
00435     IM_FLAX=576,              
00436     IM_VENC=578,              
00437     IM_THK_DISCLMR=580,       
00438     IM_PS_FLAG=582,           
00439     IM_PS_STATUS=584,         
00440     IM_IMAGE_TYPE=586,        
00441     IM_VAS_COLLAPSE=588,      
00442     IM_HDR_LEN=1022
00443   };
00444   /*
00445         these values are relative to the start of the suite information
00446         the suite information starts at some variable location as specified
00447         in the pixel data header at the start of the image file
00448       */
00449   enum GE_RELATIVE_STARTS {
00450     SU_HDR_START=0,
00451     EX_HDR_START=SU_HDR_LEN,
00452     SE_HDR_START=EX_HDR_START+EX_HDR_LEN,
00453     IM_HDR_START=SE_HDR_START+SE_HDR_LEN,
00454     IMG_HDR_START=0
00455   };
00456   int checkGe5xImages (char const * const imageFileTemplate);
00457   GE5ImageIO(const Self&); //purposely not implemented
00458   void operator=(const Self&); //purposely not implemented
00459 };
00460 
00461 } // end namespace itk
00462 
00463 #endif // __itkAnalyzeImageIO_h

Generated at Tue Mar 29 23:52:21 2005 for ITK by doxygen 1.3.9.1 written by Dimitri van Heesch, © 1997-2000