Mercurial > hg > orthanc
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 { |