]> Creatis software - bbtk.git/blob - packages/gdcmvtk/src/bbgdcmvtkGetInfoGdcmReader.h
762886d748f6a509f40a4cfa147b9790de7da3a2
[bbtk.git] / packages / gdcmvtk / src / bbgdcmvtkGetInfoGdcmReader.h
1 #ifdef _USE_VTK_
2
3 #ifndef __bbgdcmvtkGetInfoGdcmReader_h_INCLUDED__
4 #define __bbgdcmvtkGetInfoGdcmReader_h_INCLUDED__
5
6 #include "bbgdcmvtk_EXPORT.h"
7 #include "bbtkAtomicBlackBox.h"
8 #include "iostream"
9
10 #if defined USE_GDCM
11 #include "vtkGdcmReader.h"
12 #endif
13 #if defined USE_GDCM2
14 #include "vtkGDCMImageReader.h"
15 #endif
16
17 #include "vtkImageData.h"
18
19 namespace bbgdcmvtk
20 {
21
22 class bbgdcmvtk_EXPORT GetInfoGdcmReader
23  : 
24    public bbtk::AtomicBlackBox
25 {
26   BBTK_BLACK_BOX_INTERFACE(GetInfoGdcmReader,bbtk::AtomicBlackBox);
27
28   BBTK_DECLARE_INPUT(In,            std::string);
29   BBTK_DECLARE_OUTPUT(Out,          vtkImageData *);
30   BBTK_DECLARE_OUTPUT(IPP,          std::vector<double>);
31   BBTK_DECLARE_OUTPUT(IOP,          std::vector<double>);
32   BBTK_DECLARE_OUTPUT(PixelSpacing, std::vector<double>);
33   BBTK_DECLARE_OUTPUT(InterSlice,   double);
34        
35   BBTK_PROCESS(Process);
36   void Process();
37   
38   private:
39 #if defined USE_GDCM
40      GDCM_NAME_SPACE::File *f;
41          vtkGdcmReader *reader;
42 #endif
43 #if defined USE_GDCM2
44          vtkGDCMImageReader *reader;
45 #endif
46
47  
48 };
49
50   //=================================================================
51   // UserBlackBox description
52 BBTK_BEGIN_DESCRIBE_BLACK_BOX(GetInfoGdcmReader,bbtk::AtomicBlackBox);
53 BBTK_NAME("GetInfoGdcmReader");
54 BBTK_AUTHOR("jpr, eduardo");
55 BBTK_DESCRIPTION("Get Dicom info (for a single File) and read (as a vtkImageData)");
56 BBTK_CATEGORY("");
57
58 BBTK_INPUT(GetInfoGdcmReader,In,           "Dicom image file name",       std::string,"");
59
60 BBTK_OUTPUT(GetInfoGdcmReader,Out,         "Output image",                vtkImageData *,"");
61 BBTK_OUTPUT(GetInfoGdcmReader,IPP,         "Image Position (Patient)",    std::vector<double>,"");
62 BBTK_OUTPUT(GetInfoGdcmReader,IOP,         "Image Orientation (Patient)", std::vector<double>,"");
63 BBTK_OUTPUT(GetInfoGdcmReader,PixelSpacing,"Pixel Spacing",               std::vector<double>,"");
64 BBTK_OUTPUT(GetInfoGdcmReader,InterSlice,  "InterSlice",                  double,"");
65 BBTK_END_DESCRIBE_BLACK_BOX(GetInfoGdcmReader);
66 } // EO namespace bbgdcmvtk
67
68 #endif // __bbgdcmvtkGetInfoGdcmReader_h_INCLUDED__
69
70 #endif //_USE_VTK_