diff Plugins/Engine/OrthancPluginDatabase.cpp @ 3099:9c71abbff70f db-changes

removing build dependency on plugins
author Sebastien Jodogne <s.jodogne@gmail.com>
date Mon, 07 Jan 2019 16:13:16 +0100
parents fc57988dbfd8
children b2b6db5ad9a5
line wrap: on
line diff
--- a/Plugins/Engine/OrthancPluginDatabase.cpp	Sun Jan 06 12:43:19 2019 +0100
+++ b/Plugins/Engine/OrthancPluginDatabase.cpp	Mon Jan 07 16:13:16 2019 +0100
@@ -1294,8 +1294,43 @@
       std::vector<OrthancPluginResourcesContentTags> identifierTags;
       std::vector<OrthancPluginResourcesContentTags> mainDicomTags;
       std::vector<OrthancPluginResourcesContentMetadata> metadata;
-      content.EncodeForPlugins(identifierTags, mainDicomTags, metadata);
+
+      identifierTags.reserve(content.GetListTags().size());
+      mainDicomTags.reserve(content.GetListTags().size());
+      metadata.reserve(content.GetListMetadata().size());
+
+      for (ResourcesContent::ListTags::const_iterator
+             it = content.GetListTags().begin(); it != content.GetListTags().end(); ++it)
+      {
+        OrthancPluginResourcesContentTags tmp;
+        tmp.resource = it->resourceId_;
+        tmp.group = it->tag_.GetGroup();
+        tmp.element = it->tag_.GetElement();
+        tmp.value = it->value_.c_str();
 
+        if (it->isIdentifier_)
+        {
+          identifierTags.push_back(tmp);
+        }
+        else
+        {
+          mainDicomTags.push_back(tmp);
+        }
+      }
+
+      for (ResourcesContent::ListMetadata::const_iterator
+             it = content.GetListMetadata().begin(); it != content.GetListMetadata().end(); ++it)
+      {
+        OrthancPluginResourcesContentMetadata tmp;
+        tmp.resource = it->resourceId_;
+        tmp.metadata = it->metadata_;
+        tmp.value = it->value_.c_str();
+        metadata.push_back(tmp);
+      }
+
+      assert(identifierTags.size() + mainDicomTags.size() == content.GetListTags().size() &&
+             metadata.size() == content.GetListMetadata().size());
+       
       CheckSuccess(extensions_.setResourcesContent(
                      payload_,
                      identifierTags.size(),