From f4bdead5143dc3d816f1c2f2bd9786a21c843760 Mon Sep 17 00:00:00 2001 From: guigues Date: Tue, 10 Feb 2009 08:18:20 +0000 Subject: [PATCH] *** empty log message *** --- src2/creaImageIOGimmick.cpp | 16 + src2/creaImageIOGimmick.h | 2 + src2/creaImageIOImageReader.cpp | 8 +- src2/creaImageIOImageReader.h | 8 +- src2/creaImageIOSQLiteTreeHandler.cpp | 164 +-- src2/creaImageIOSystem.h | 8 +- src2/creaImageIOTreeAttributeDescriptor.cpp | 101 +- src2/creaImageIOTreeAttributeDescriptor.h | 25 +- src2/creaImageIOTreeDescriptor.cpp | 106 +- src2/doxygen/CMakeLists.txt | 98 ++ src2/doxygen/DoxyMainPage.txt.in | 14 + src2/doxygen/Doxyfile.txt.in | 1358 +++++++++++++++++++ 12 files changed, 1735 insertions(+), 173 deletions(-) create mode 100644 src2/doxygen/CMakeLists.txt create mode 100644 src2/doxygen/DoxyMainPage.txt.in create mode 100644 src2/doxygen/Doxyfile.txt.in diff --git a/src2/creaImageIOGimmick.cpp b/src2/creaImageIOGimmick.cpp index a317684..b7cc5f7 100644 --- a/src2/creaImageIOGimmick.cpp +++ b/src2/creaImageIOGimmick.cpp @@ -155,4 +155,20 @@ namespace creaImageIO } //======================================================================== + + //======================================================================== + /// Sets debug mode + void Gimmick::SetDebugMode(bool m) + { + if (m) + { + crea::MessageManager::SetMessageLevel("Gimmick!",9); + } + else + { + crea::MessageManager::SetMessageLevel("Gimmick!",1); + } + } + //======================================================================== + } diff --git a/src2/creaImageIOGimmick.h b/src2/creaImageIOGimmick.h index 7a984a3..126ff09 100644 --- a/src2/creaImageIOGimmick.h +++ b/src2/creaImageIOGimmick.h @@ -23,6 +23,8 @@ namespace creaImageIO bool Finalize(); + /// Sets debug mode + void SetDebugMode(bool ); const std::string& GetHomeDirectory(); const std::string& GetUserSettingsDirectory(); diff --git a/src2/creaImageIOImageReader.cpp b/src2/creaImageIOImageReader.cpp index 2480a47..63a87ce 100644 --- a/src2/creaImageIOImageReader.cpp +++ b/src2/creaImageIOImageReader.cpp @@ -317,7 +317,7 @@ namespace creaImageIO std::map::iterator i; for (i=attr.begin();i!=attr.end();++i) { - if ( i->first == "Full File Name" ) + if ( i->first == "FullFileName" ) { boost::filesystem::path full_path(filename); std::string f = full_path.leaf(); @@ -325,9 +325,9 @@ namespace creaImageIO } else { - tree::AttributeDescriptor a(i->first); - uint16_t gr = a.GetGroup(); - uint16_t el = a.GetElement(); + uint16_t gr; + uint16_t el; + tree::AttributeDescriptor::GetDicomGroupElementFromKey(i->first,gr,el); if ( ( gr!=0 ) && ( el!=0 ) ) { std::string val = file->GetEntryString(gr,el); diff --git a/src2/creaImageIOImageReader.h b/src2/creaImageIOImageReader.h index e36f226..f05b6d4 100644 --- a/src2/creaImageIOImageReader.h +++ b/src2/creaImageIOImageReader.h @@ -26,9 +26,7 @@ namespace creaImageIO ImageReader(); ~ImageReader(); - /// Returns the known extensions - const std::vector& GetKnownExtensions() - { return mKnownExtensions; } + /// Returns true iff the file is readable bool CanRead( const std::string& filename, const std::string& exclude = ""); @@ -45,6 +43,10 @@ namespace creaImageIO void ReadAttributes(const std::string& filename, std::map& attr); + /// Returns the known extensions + const std::vector& GetKnownExtensions() + { return mKnownExtensions; } + protected: void Register(SpecificImageReader*); diff --git a/src2/creaImageIOSQLiteTreeHandler.cpp b/src2/creaImageIOSQLiteTreeHandler.cpp index 509aa90..4d0d49e 100644 --- a/src2/creaImageIOSQLiteTreeHandler.cpp +++ b/src2/creaImageIOSQLiteTreeHandler.cpp @@ -1,4 +1,5 @@ #include +#include #include "CppSQLite3.h" @@ -35,28 +36,9 @@ namespace creaImageIO SQLiteTreeHandler::SQLiteTreeHandler(const std::string& filename) : mFileName(filename) { - /* - mSQLiteTreeHandler = this; - NodeTypeDescription::FieldDescriptionMapType& M = - mNodeTypeDescription[Node::Database].GetFieldDescriptionMap(); - - boost::filesystem::path full_path(location); - mName = full_path.leaf(); - Field::Description fname("Name",0,0,"Name",0); - M[fname.key] = fname; - UnsafeSetFieldValue(fname.key,mName); - Field::Description flocation("File name",0,0,"File name",0); - M[flocation.key] = flocation; - UnsafeSetFieldValue(flocation.key,location); - */ - // Field::Description ftype("Type",0,0,"Type",0); - // M[ftype.key] = ftype; - // UnsafeSetFieldValue(ftype.key,"Invalid location"); - mDB = new CppSQLite3DB; - // std::cout << "** SQLite Version: " << mDB->SQLiteVersion() << std::endl; - - + GimmickMessage(1,"SQLite version : " + <SQLiteVersion())<< std::endl); } //============================================================= @@ -64,14 +46,6 @@ namespace creaImageIO SQLiteTreeHandler::~SQLiteTreeHandler() { delete mDB; - /* - Already done in Node now that SQLiteTreeHandler inherits from it - ChildrenListType::iterator i; - for (i=GetChildrenList().begin(); i!=GetChildrenList().end(); i++) - { - delete *i; - } - */ } //============================================================= @@ -133,14 +107,17 @@ namespace creaImageIO #define QUERYDB(QUER,RES) \ try \ { \ + GimmickMessage(2,"SQL: '"<execQuery(QUER.c_str()); \ } \ catch (CppSQLite3Exception& e) \ { \ - std::cout << "SQLite query '"<execDML(UP.c_str()); \ } \ catch (CppSQLite3Exception& e) \ { \ - std::cout << "SQLite update '"< keys; - NodeTypeDescription::FieldDescriptionMapType::iterator i; - for (i = GetNodeTypeDescription(c).GetFieldDescriptionMap().begin(); - i != GetNodeTypeDescription(c).GetFieldDescriptionMap().end(); + LevelDescriptor::AttributeDescriptorListType::const_iterator i; + for (i = GetTree().GetAttributeDescriptorList(level).begin(); + i != GetTree().GetAttributeDescriptorList(level).end(); ++i) { - if (i->second.flags==1) continue; - keys.push_back(&(i->second.key)); - } - std::vector::iterator j; - for (j=keys.begin();j!=keys.end();) - { - s += **j + " text"; - ++j; - if (j!=keys.end()) - s += ",\n"; + // if (i->second.flags==1) continue; + s += ",\n"; + s += i->GetKey(); + s += " text"; } - */ } //===================================================================== //===================================================================== void SQLiteTreeHandler::DBExportTreeDescription() { - /* - // std::cout<<"ExportNodeTypeDescriptionsToDB()"<GetKey() << "','" + << i->GetName() << "'," + << i->GetGroup() << "," + << i->GetElement() << "," + << i->GetFlags() << ");"; - // std::cout << "** SQL = '"< #if defined(_WIN32) #ifdef CREAIMAGEIO_EXPORT_SYMBOLS @@ -15,5 +15,11 @@ #define CREAIMAGEIO_CDECL #endif // defined(_WIN32) + +#define GimmickMessage(LEV,MESS) \ + creaMessage("Gimmick!",LEV,"[Gimmick!] "< +#include #include #include +#include + namespace creaImageIO { namespace tree { + //======================================================================== + void AttributeDescriptor::CleanName(std::string& str) const + { + // quote must be doubled for SQL + // crea::Utils::Replace( str, "'", "''" ); + boost::algorithm::replace_all(str,"'","''"); + // Found strange strings which contained NULL char INSIDE string + int i,size=str.size(); + for (i=0;iGetDefaultPubDict()->GetEntry(mGroup,mElement); + + if (entry) { - // Decode group & elem - sscanf(key.c_str(),"%04x|%04x",&mGroup,&mElement); - // Retrieve the name from gdcm dict - GDCM_NAME_SPACE::DictEntry* entry = - GDCM_NAME_SPACE::Global::GetDicts() - ->GetDefaultPubDict()->GetEntry(mGroup,mElement); mName = entry->GetName(); + CleanName(mName); + GimmickDebugMessage(3,"='"<