]> Creatis software - creaImageIO.git/blob - src2/creaImageIODicomImageReader2.h
Set GDCM2 library as available DICOM Reader
[creaImageIO.git] / src2 / creaImageIODicomImageReader2.h
1 #ifndef __creaImageIODicomImageReader_h_INCLUDED__
2 #define __creaImageIODicomImageReader_h_INCLUDED__
3
4
5 #include <creaImageIOAbstractImageReader.h>
6 #if defined(USE_GDCM2)
7 #include <gdcmReader.h>
8 #include <vtkGDCMImageReader.h>
9 #endif
10
11 class vtkGDCMImageReader;
12
13 namespace creaImageIO
14 {
15
16
17   /**
18    * \ingroup IO
19    */
20   
21   //=====================================================================
22   /// Concrete image reader for DICOM images 
23   class DicomImageReader : virtual public AbstractImageReader
24   {
25   public:
26     DicomImageReader();
27     virtual ~DicomImageReader();
28
29         /// Add file extensions read by the reader
30     virtual void PushBackExtensions(std::vector<std::string>&);
31         /// Test if file is read by this reader
32     virtual bool CanRead(const std::string& filename);
33         /// return for a file a 2D VTkImage
34     virtual vtkImageData* ReadImage(const std::string& filename);
35         /// Read the attributes for a file
36     virtual void ReadAttributes(const std::string& filename, 
37                                 tree::AttributeMapType& attr);
38
39   private:
40           const std::string GetStringValueFromTag( const gdcm::DataElement& ds);
41           vtkGDCMImageReader *mReader;
42         struct deleter
43         {
44                 void operator()(gdcm::File* p)
45                 {
46                         delete p;
47                 }
48         };
49         friend struct deleter;
50   };
51   //=====================================================================
52
53
54
55 } // namespace creaImageIO
56
57
58
59 #endif // #ifndef __creaImageIODicomImageReader_h_INCLUDED__