]> Creatis software - bbtk.git/blobdiff - packages/gdcmvtk/src/bbgdcmvtkGetXCoherentInfoGdcmReader.h
Try to get more accurate info from SerieHelper
[bbtk.git] / packages / gdcmvtk / src / bbgdcmvtkGetXCoherentInfoGdcmReader.h
diff --git a/packages/gdcmvtk/src/bbgdcmvtkGetXCoherentInfoGdcmReader.h b/packages/gdcmvtk/src/bbgdcmvtkGetXCoherentInfoGdcmReader.h
new file mode 100644 (file)
index 0000000..858a490
--- /dev/null
@@ -0,0 +1,67 @@
+#ifdef _USE_VTK_
+
+#ifndef __bbgdcmvtkGetXCoherentInfoGdcmReader_h_INCLUDED__
+#define __bbgdcmvtkGetXCoherentInfoGdcmReader_h_INCLUDED__
+
+#include "bbgdcmvtk_EXPORT.h"
+#include "bbtkAtomicBlackBox.h"
+#include "iostream"
+
+#include "vtkGdcmReader.h"
+#include "gdcmFile.h"
+#include "gdcmSerieHelper.h"
+
+namespace bbgdcmvtk
+{
+
+class bbgdcmvtk_EXPORT GetXCoherentInfoGdcmReader
+ : 
+   public bbtk::AtomicBlackBox
+{
+  BBTK_BLACK_BOX_INTERFACE(GetXCoherentInfoGdcmReader,bbtk::AtomicBlackBox);
+//==================================================================
+/// User callback called in the box contructor
+virtual void bbUserConstructor();
+/// User callback called in the box copy constructor
+virtual void bbUserCopyConstructor(bbtk::BlackBox::Pointer);
+/// User callback called in the box destructor
+virtual void bbUserDestructor();
+//==================================================================
+
+  BBTK_DECLARE_INPUT(In,            std::vector<std::string>);
+  BBTK_DECLARE_OUTPUT(Out,          vtkImageData *);
+  BBTK_DECLARE_OUTPUT(IPP,          std::vector<double>);
+  BBTK_DECLARE_OUTPUT(IOP,          std::vector<double>);
+  BBTK_DECLARE_OUTPUT(PixelSpacing, std::vector<double>);
+  BBTK_DECLARE_OUTPUT(InterSlice,   double);
+       
+  BBTK_PROCESS(Process);
+  void Process();
+  
+  private:
+     GDCM_NAME_SPACE::File *f;
+     GDCM_NAME_SPACE::SerieHelper *sh;
+     vtkGdcmReader *reader;
+};
+
+  //=================================================================
+  // UserBlackBox description
+BBTK_BEGIN_DESCRIBE_BLACK_BOX(GetXCoherentInfoGdcmReader,bbtk::AtomicBlackBox);
+BBTK_NAME("GetXCoherentInfoGdcmReader");
+BBTK_AUTHOR("jpr, eduardo");
+BBTK_DESCRIPTION("Get Dicom info from a File Set and read (as a vtkImageData)");
+BBTK_CATEGORY("");
+
+BBTK_INPUT(GetXCoherentInfoGdcmReader,In,"Dicom image file name",std::vector<std::string>,"");
+
+BBTK_OUTPUT(GetXCoherentInfoGdcmReader,Out,         "Output image",                vtkImageData *,"");
+BBTK_OUTPUT(GetXCoherentInfoGdcmReader,IPP,         "Image Position (Patient)",    std::vector<double>,"");
+BBTK_OUTPUT(GetXCoherentInfoGdcmReader,IOP,         "Image Orientation (Patient)", std::vector<double>,"");
+BBTK_OUTPUT(GetXCoherentInfoGdcmReader,PixelSpacing,"Pixel Spacing",               std::vector<double>,"");
+BBTK_OUTPUT(GetXCoherentInfoGdcmReader,InterSlice,  "InterSlice",                  double,"");
+BBTK_END_DESCRIBE_BLACK_BOX(GetXCoherentInfoGdcmReader);
+} // EO namespace bbgdcmvtk
+
+#endif // __bbgdcmvtkGetXCoherentInfoGdcmReader_h_INCLUDED__
+
+#endif //_USE_VTK_