diff OrthancServer/ServerContext.cpp @ 1006:649d47854314 lua-scripting

proper handling of metadata in Store
author Sebastien Jodogne <s.jodogne@gmail.com>
date Tue, 08 Jul 2014 15:11:00 +0200
parents 84b6d7bca6db
children 871c49c9b11d
line wrap: on
line diff
--- a/OrthancServer/ServerContext.cpp	Tue Jul 08 14:34:11 2014 +0200
+++ b/OrthancServer/ServerContext.cpp	Tue Jul 08 15:11:00 2014 +0200
@@ -193,7 +193,9 @@
       attachments.push_back(dicomInfo);
       attachments.push_back(jsonInfo);
 
-      StoreStatus status = index_.Store(dicom.GetSummary(), attachments, dicom.GetRemoteAet(), dicom.GetMetadata());
+      std::map<MetadataType, std::string> instanceMetadata;
+      StoreStatus status = index_.Store(instanceMetadata, dicom.GetSummary(), attachments, 
+                                        dicom.GetRemoteAet(), dicom.GetMetadata());
 
       if (status != StoreStatus_Success)
       {
@@ -225,16 +227,20 @@
       {
         try
         {
+#if 1
           Json::Value metadata = Json::objectValue;
-          for (ServerIndex::MetadataMap::const_iterator 
-                 it = dicom.GetMetadata().begin(); 
-               it != dicom.GetMetadata().end(); ++it)
+          for (std::map<MetadataType, std::string>::const_iterator 
+                 it = instanceMetadata.begin(); 
+               it != instanceMetadata.end(); ++it)
           {
-            if (it->first.first == ResourceType_Instance)
-            {
-              metadata[EnumerationToString(it->first.second)] = it->second;
-            }
+            metadata[EnumerationToString(it->first)] = it->second;
           }
+#else
+          Json::Value metadata;
+          index_.GetMetadata(metadata, resultPublicId);
+#endif
+
+          std::cout << metadata;
 
           ApplyOnStoredInstance(resultPublicId, simplified, metadata);
         }