comparison 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
comparison
equal deleted inserted replaced
1341:479e31b13de5 1342:9ec7ac03152d
43 // List all the patients, studies, series or instances ---------------------- 43 // List all the patients, studies, series or instances ----------------------
44 44
45 template <enum ResourceType resourceType> 45 template <enum ResourceType resourceType>
46 static void ListResources(RestApiGetCall& call) 46 static void ListResources(RestApiGetCall& call)
47 { 47 {
48 ServerIndex& index = OrthancRestApi::GetIndex(call);
49
48 Json::Value result; 50 Json::Value result;
49 OrthancRestApi::GetIndex(call).GetAllUuids(result, resourceType); 51 index.GetAllUuids(result, resourceType);
50 call.GetOutput().AnswerJson(result); 52
53 if (call.HasArgument("expand"))
54 {
55 Json::Value expanded = Json::arrayValue;
56 for (Json::Value::ArrayIndex i = 0; i < result.size(); i++)
57 {
58 Json::Value item;
59 if (index.LookupResource(item, result[i].asString(), resourceType))
60 {
61 expanded.append(item);
62 }
63 }
64
65 call.GetOutput().AnswerJson(expanded);
66 }
67 else
68 {
69 call.GetOutput().AnswerJson(result);
70 }
51 } 71 }
52 72
53 template <enum ResourceType resourceType> 73 template <enum ResourceType resourceType>
54 static void GetSingleResource(RestApiGetCall& call) 74 static void GetSingleResource(RestApiGetCall& call)
55 { 75 {