X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;ds=sidebyside;f=src2%2FcreaImageIODicomImageReader.cpp;h=30c420914cc2a7ca00c96aa8ce979fd666be0ddd;hb=b0843014c5482f70050fab8036c6780172e3b6c9;hp=b51bff21b46f555ce69512d72dee795158d9d9db;hpb=2df647c186de559388c62bfebba8795b860ee8ae;p=creaImageIO.git diff --git a/src2/creaImageIODicomImageReader.cpp b/src2/creaImageIODicomImageReader.cpp index b51bff2..30c4209 100644 --- a/src2/creaImageIODicomImageReader.cpp +++ b/src2/creaImageIODicomImageReader.cpp @@ -1,5 +1,5 @@ #include -#include + #include #include #include "boost/filesystem/path.hpp" @@ -28,18 +28,7 @@ namespace creaImageIO //===================================================================== bool DicomImageReader::CanRead(const std::string& filename) { - // std::cout << "## Reader "<SetLoadMode( GDCM_NAME_SPACE::LD_ALL); file->SetFileName(filename.c_str()); @@ -58,10 +47,6 @@ namespace creaImageIO //===================================================================== vtkImageData* DicomImageReader::ReadImage(const std::string& filename) { - // std::cout << "## Reader "<& v) { @@ -89,43 +74,45 @@ namespace creaImageIO //======================================================================== std::string irclean(const std::string& str) { - if (str == "GDCM::Unfound") - { - return ""; - } - if (str[str.size()-1]==' ') - { - return str.substr(0,str.size()-1); - } - if (str[str.size()-1]==0) - { - return str.substr(0,str.size()-1); - } + if(str.size() > 0) + { + if (str == "GDCM::Unfound") + { + return ""; + } + if (str[str.size()-1]==' ') + { + return str.substr(0,str.size()-1); + } + if (str[str.size()-1]==0) + { + return str.substr(0,str.size()-1); + } + } return str; } //======================================================================== - + //===================================================================== void DicomImageReader::ReadAttributes(const std::string& filename, std::map& attr) { - // std::cout << "DicomImageReader::ReadDicomInfo '"<SetLoadMode( GDCM_NAME_SPACE::LD_ALL); + //GDCM_NAME_SPACE::File* file = GDCM_NAME_SPACE::File::New(); + boost::shared_ptr file(GDCM_NAME_SPACE::File::New(), DicomImageReader::deleter()); + + 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() ||((GDCM_NAME_SPACE::Document*) file)->IsReadable()) + if (file->IsReadable())// ||((GDCM_NAME_SPACE::Document*) file)->IsReadable()) { - std::map::iterator i; for (i=attr.begin();i!=attr.end();++i) { @@ -150,21 +137,17 @@ namespace creaImageIO uint16_t gr; uint16_t el; tree::AttributeDescriptor::GetDicomGroupElementFromKey(i->first,gr,el); - // GimmickMessage(2,"Key '"<first<<"' : "<GetEntryString(gr,el); i->second = irclean(val); - // GimmickMessage(2,"Key '"<first<<"' : "<