00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef __itkDICOMImageIO2_h
00018 #define __itkDICOMImageIO2_h
00019
00020 #include <fstream>
00021 #include "itkImageIOBase.h"
00022
00023 #include "DICOMParser.h"
00024 #include "DICOMAppHelper.h"
00025
00026 namespace itk
00027 {
00028
00033 class ITK_EXPORT DICOMImageIO2 : public ImageIOBase
00034 {
00035 public:
00036
00038 typedef DICOMImageIO2 Self;
00039 typedef ImageIOBase Superclass;
00040 typedef SmartPointer<Self> Pointer;
00041
00043 itkNewMacro(Self);
00044
00046 itkTypeMacro(DICOMImageIO2, Superclass);
00047
00048
00049
00052 virtual bool CanReadFile(const char*);
00053
00055 virtual void ReadImageInformation();
00056
00058
00059
00061 virtual void Read(void* buffer);
00062
00066
00067
00068
00069
00072 virtual bool CanWriteFile(const char*) {return false;}
00073
00075 virtual void WriteImageInformation() {}
00076
00079 virtual void Write(const void*) {}
00080
00082 void GetPatientName(char* name);
00083 void GetPatientID(char* id);
00084 void GetPatientSex(char* sex);
00085 void GetPatientAge(char* age);
00086 void GetStudyID(char* id);
00087 void GetPatientDOB(char* dob);
00088 void GetStudyDescription(char* desc);
00089 void GetBodyPart(char* part);
00090 void GetNumberOfSeriesInStudy(char* series);
00091 void GetNumberOfStudyRelatedSeries(char* series);
00092 void GetStudyDate(char* date);
00093 void GetModality(char* modality);
00094 void GetManufacturer(char* manu);
00095 void GetInstitution(char* ins);
00096 void GetModel(char* model);
00098
00099
00100 protected:
00101 DICOMImageIO2();
00102 virtual ~DICOMImageIO2();
00103 void PrintSelf(std::ostream& os, Indent indent) const;
00104
00105 itkdicomparser::DICOMParser * m_Parser;
00106 itkdicomparser::DICOMAppHelper * m_AppHelper;
00107
00108 void ReadDataCallback(doublebyte group,
00109 doublebyte element,
00110 itkdicomparser::DICOMParser::VRTypes type,
00111 unsigned char* val,
00112 quadbyte len);
00113
00114 unsigned char* m_ImageDataBuffer;
00115
00116 private:
00117 DICOMImageIO2(const Self&);
00118 void operator=(const Self&);
00119
00120 };
00121
00122 }
00123
00124 #endif // __itkDICOMImageIO2_h
00125