Mercurial > hg > orthanc
diff OrthancServer/OrthancRestApi/OrthancRestResources.cpp @ 2726:46061a91c88a jobs
new metadata (RemoteIP, CalledAET, HttpUsername), "?expand" metadata
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Thu, 12 Jul 2018 18:01:16 +0200 |
parents | b71c59312bae |
children | d4e81e0a8324 |
line wrap: on
line diff
--- a/OrthancServer/OrthancRestApi/OrthancRestResources.cpp Thu Jul 12 16:07:56 2018 +0200 +++ b/OrthancServer/OrthancRestApi/OrthancRestResources.cpp Thu Jul 12 18:01:16 2018 +0200 @@ -673,12 +673,33 @@ std::list<MetadataType> metadata; OrthancRestApi::GetIndex(call).ListAvailableMetadata(metadata, publicId); - Json::Value result = Json::arrayValue; + + Json::Value result; - for (std::list<MetadataType>::const_iterator - it = metadata.begin(); it != metadata.end(); ++it) + if (call.HasArgument("expand")) { - result.append(EnumerationToString(*it)); + result = Json::objectValue; + + for (std::list<MetadataType>::const_iterator + it = metadata.begin(); it != metadata.end(); ++it) + { + std::string value; + if (OrthancRestApi::GetIndex(call).LookupMetadata(value, publicId, *it)) + { + std::string key = EnumerationToString(*it); + result[key] = value; + } + } + } + else + { + result = Json::arrayValue; + + for (std::list<MetadataType>::const_iterator + it = metadata.begin(); it != metadata.end(); ++it) + { + result.append(EnumerationToString(*it)); + } } call.GetOutput().AnswerJson(result);