]> Creatis software - creaImageIO.git/blobdiff - src/creaImageIOWxDumpPanel.cpp
Dicom Dump with gdcm2
[creaImageIO.git] / src / creaImageIOWxDumpPanel.cpp
index 843db487dd5a3485e7cbe02576e1e6c765e6d5a5..05b2da963c6649d8aa6bfb3ba59d922c3b89722e 100644 (file)
@@ -8,6 +8,14 @@
 #include "gdcmDocument.h"
 #include "gdcmFileHelper.h"
 #endif
+
+#if defined(USE_GDCM2)
+#include "gdcmGlobal.h"
+#include "gdcmFile.h"
+#include "gdcmDictPrinter.h"
+#include "gdcmPrinter.h"
+#include "gdcmReader.h"
+#endif
 #include "icons/save.xpm"
 
 namespace creaImageIO
@@ -36,9 +44,12 @@ namespace creaImageIO
        void WxDumpPanel::Print()
        {
           std::stringstream os;
+          std::string result = "";
           if ( !filename.empty()) // ====== Deal with a single file ======
           {
-       /*         GDCM_NAME_SPACE::File *f = GDCM_NAME_SPACE::File::New();
+
+#if defined(USE_GDCM)
+                  GDCM_NAME_SPACE::File *f = GDCM_NAME_SPACE::File::New();
                   f->SetLoadMode(GDCM_NAME_SPACE::LD_ALL);
                   f->SetFileName( filename );
                   f->SetMaxSizeLoadEntry(0xffff);
@@ -47,22 +58,30 @@ namespace creaImageIO
                      f->SetLoadMode(GDCM_NAME_SPACE::LD_NOSEQ |GDCM_NAME_SPACE::LD_NOSHADOW); 
                   fh->SetPrintLevel( 0 );
                   fh->Print(os);
-                  std::string result;
+                
                   std::string line;
                   while(std::getline(os, line))
                   {
                          result +=clean(line.c_str());
                          result += "\n";
                   }
-                  DumpText->SetValue(crea::std2wx(result));
-               
-                  std::string pixelType =f->GetPixelType();
-                       int nX,nY,nZ,nT,sPP,planarConfig;
-    
-      nX=f->GetXSize();
-      nY=f->GetYSize();
-      nZ=f->GetZSize();
-      nT=f->GetTSize();*/
+                  
+
+#endif
+#if defined(USE_GDCM2)
+                 gdcm::Reader reader;
+                 reader.SetFileName( filename.c_str() );
+                 if (reader.Read())
+                 {
+                         gdcm::Printer printer;
+                         printer.SetFile ( reader.GetFile() );
+                         printer.SetColor( 0 );
+                         printer.Print( os );
+                         result = os.str();
+                 }
+#endif
+                 DumpText->SetValue(crea::std2wx(result));                
+
                }
        }