]> Creatis software - creaImageIO.git/blobdiff - src/creaImageIOSQLiteTreeHandler.cpp
#3188 creaImageIO Bug New Normal - DICOM tags
[creaImageIO.git] / src / creaImageIOSQLiteTreeHandler.cpp
index 4a1e391c47a86c5a2ae6616d71fb14d923a4550e..e51bfa91ad9760cb0e3e8ce1246088f1bf8ffc21 100644 (file)
@@ -980,7 +980,7 @@ GimmickDebugMessage(1,                                      "query : '"                         <<query                                         <<std::endl);
   void SQLiteTreeHandler::getAllAttributes(std::string i_filename, std::map<std::string, std::string> &i_results)
   {
          int level=GetTree().GetNumberOfLevels()-1;
-         
+
          std::string search = i_filename;
          std::string param = "FullFileName";
          std::string name;
@@ -992,25 +992,27 @@ GimmickDebugMessage(1,                                    "query : '"                         <<query                                         <<std::endl);
          std::vector<std::string> values;
          std::vector<std::string>::iterator it_val;
         
-
-
-         
-         while(level>1)
+         while(level>=1)
          {
-                 attr = GetTree().GetAttributeDescriptorList(level,1);
+               attr = GetTree().GetAttributeDescriptorList(level,1);
 
-                 name = GetTree().GetLevelDescriptor(level).GetName();
-                 std::vector<std::string> values;
-                 GetUpLevelNodeId(level, param,search,id);
-                 GetAttributes(name, param,search,attr, values);
-                 for(it_attr = attr.begin(), it_val = values.begin(); it_attr != attr.end(); it_attr++, it_val++)
-                 {
-                                       i_results[(*it_attr).GetKey()] = (*it_val).c_str();
-                 }
-                 search = id;
-                 param = "ID";
-                 level --;
-         }
+               name = GetTree().GetLevelDescriptor(level).GetName();
+               std::vector<std::string> values;
+
+//EED 2018-04-13                 GetUpLevelNodeId(level, param,search,id);  
+               if (level>1)
+               {
+                       GetUpLevelNodeId(level, param,search,id);
+               }
+               GetAttributes(name, param,search,attr, values);
+               for(it_attr = attr.begin(), it_val = values.begin(); it_attr != attr.end(); it_attr++, it_val++)
+               {
+                       i_results[(*it_attr).GetKey()] = (*it_val).c_str();
+               } // for
+               search = id;
+               param = "ID";
+               level --;
+         } // while level
   }
 
 
@@ -1064,7 +1066,6 @@ GimmickDebugMessage(1,                                    "query : '"                         <<query                                         <<std::endl);
                q.nextRow();
          }
          parent_id = results.str();
-
   }