]> Creatis software - creaImageIO.git/blobdiff - src2/creaImageIODicomImageReader.cpp
Remove dependencies of WxWidget from Model and Controller class.
[creaImageIO.git] / src2 / creaImageIODicomImageReader.cpp
index b95f27ffb72ef4597f8fd494738c60c709ccd302..b51bff21b46f555ce69512d72dee795158d9d9db 100644 (file)
@@ -39,11 +39,17 @@ namespace creaImageIO
     // << "'" 
     // <<std::endl;
     
+       GDCM_NAME_SPACE::Document*doc;
     GDCM_NAME_SPACE::File* file = GDCM_NAME_SPACE::File::New();
     file->SetLoadMode( GDCM_NAME_SPACE::LD_ALL);
     file->SetFileName(filename.c_str());
     file->Load();
     bool ok = file->IsReadable();
+       if(!ok)
+       {
+               doc = (GDCM_NAME_SPACE::Document*)file; 
+               ok = doc->IsReadable();
+       }
     file->Delete();
     return ok;
   }
@@ -108,11 +114,16 @@ namespace creaImageIO
     GimmickMessage(2,"Reading attributes from DICOM file '"
                   <<filename<<"'"<<std::endl);
     
-    GDCM_NAME_SPACE::File* file = GDCM_NAME_SPACE::File::New();
+       GDCM_NAME_SPACE::File* file = GDCM_NAME_SPACE::File::New();
+
+       GDCM_NAME_SPACE::Document *doc= GDCM_NAME_SPACE::File::New();
+       doc->SetLoadMode( GDCM_NAME_SPACE::LD_ALL);
+    doc->SetFileName(filename.c_str());
+    doc->Load();
     file->SetLoadMode( GDCM_NAME_SPACE::LD_ALL);
     file->SetFileName(filename.c_str());
     file->Load();
-    if (file->IsReadable())
+    if (file->IsReadable() ||((GDCM_NAME_SPACE::Document*) file)->IsReadable())
       {
        
        std::map<std::string,std::string>::iterator i;
@@ -127,6 +138,12 @@ namespace creaImageIO
            else if ( i->first == "FullFileName" )
              {
                i->second = filename;
+             }
+                 else if ( i->first == "FullFileDirectory" )
+             {
+                         std::string::size_type last_pos = filename.find_last_of("//");
+                         //find first separator
+                         i->second = filename.substr(0, last_pos);
              }
            else
              {