Mercurial > hg > orthanc
diff OrthancServer/OrthancRestApi/OrthancRestResources.cpp @ 1342:9ec7ac03152d
"?expand" flag for URIs "/patients", "/studies" and "/series"
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Fri, 03 Apr 2015 15:25:04 +0200 |
parents | bba8a47922d1 |
children | 3dd494f201a1 |
line wrap: on
line diff
--- a/OrthancServer/OrthancRestApi/OrthancRestResources.cpp Fri Apr 03 13:53:08 2015 +0200 +++ b/OrthancServer/OrthancRestApi/OrthancRestResources.cpp Fri Apr 03 15:25:04 2015 +0200 @@ -45,9 +45,29 @@ template <enum ResourceType resourceType> static void ListResources(RestApiGetCall& call) { + ServerIndex& index = OrthancRestApi::GetIndex(call); + Json::Value result; - OrthancRestApi::GetIndex(call).GetAllUuids(result, resourceType); - call.GetOutput().AnswerJson(result); + index.GetAllUuids(result, resourceType); + + if (call.HasArgument("expand")) + { + Json::Value expanded = Json::arrayValue; + for (Json::Value::ArrayIndex i = 0; i < result.size(); i++) + { + Json::Value item; + if (index.LookupResource(item, result[i].asString(), resourceType)) + { + expanded.append(item); + } + } + + call.GetOutput().AnswerJson(expanded); + } + else + { + call.GetOutput().AnswerJson(result); + } } template <enum ResourceType resourceType>