Mercurial > hg > orthanc
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(),