Main Page | Namespace List | Class Hierarchy | Class List | Directories | File List | Namespace Members | Class Members

mitkDICOMReader.h

00001 /*=========================================================================
00002 
00003   Program:   3DMed
00004   Date:      $Date: 2014-02-25 18:30:00 +0800 $
00005   Version:   $Version: 4.6.0 $
00006   Copyright: MIPG, Institute of Automation, Chinese Academy of Sciences
00007 
00008 =========================================================================*/
00009 
00010 
00011 #ifndef __mitkDICOMReader_h
00012 #define __mitkDICOMReader_h
00013 
00014 #include "mitkVolumeReader.h"
00015 
00016 // a struct contains a slice
00017 typedef struct _slice
00018 {
00019     bool        isColorByPxl;
00020     float       location;
00021     void       *value;
00022     mitkString *fileName;
00023 } SLICE;
00024 
00025 // a struct contains the basic information of a volume
00026 typedef struct _volumeinfo
00027 {
00028     int   width;
00029     int   height;
00030     int   imageNum;
00031     int   channelNum;
00032     int   cellBytes;
00033     float spacingX;
00034     float spacingY;
00035     float spacingZ;
00036     float windowCenter;
00037     float windowWidth;
00038     bool  isUnsigned;
00039 } VOLUMEINFO;
00040 
00041 //typedef vector<long> Integers;
00042 //typedef vector<double> Doubles;
00043 
00044 class SliceList;
00045 
00064 class MITK_COMMON_API mitkDICOMReader : public mitkVolumeReader
00065 {
00066 public:
00067     MITK_TYPE(mitkDICOMReader,mitkVolumeReader)
00068     
00069     virtual void PrintSelf(ostream& os);
00070     
00071     mitkDICOMReader();    
00072 
00073 protected:
00074     virtual ~mitkDICOMReader(); 
00075 
00076     // Overriding
00077     // Execute the reading operation.
00078     virtual bool Execute();
00079 
00080     // Clear old data.
00081     void _clear();
00082 
00083     // Pre-process: record slices' locations & sort slices by location.
00084     int _preProcess(VOLUMEINFO &info);
00085 
00086     // Adjust slices including changing plane configure and inserting new slices.
00087     //int _adjustSlices(const int width,       const int height, 
00088     //                const int channelNum,  const int cellBytes,
00089     //                const bool isUnsigned, const bool isSlice);
00090 
00091     // Read a single file.
00092     //int _readSingleFile(VOLUMEINFO &info);
00093 
00094     // Read a series.
00095     //int _readSeries(VOLUMEINFO &info);
00096 
00097     // Write data to a volume.
00098     int _writeToVolume(VOLUMEINFO &info);
00099 
00100 
00101     SliceList *m_Slices;
00102     float m_MinSpacingZ;
00103     float m_MaxSpacingZ;
00104     bool m_IsMultiFrame;
00105     bool m_NeedInsert;
00106 
00107 
00108 
00109 private:
00110     mitkDICOMReader(const mitkDICOMReader&);
00111     void operator=(const mitkDICOMReader&);
00112 
00113 };
00114 
00115 #endif
00116 

Generated on Tue Feb 25 15:00:36 2014 for MITK (Medical Imaging ToolKit) by  doxygen 1.4.3