Mercurial > hg > orthanc
diff OrthancServer/OrthancRestApi2.cpp @ 211:b7aea293b965
list of resources
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Thu, 29 Nov 2012 09:56:46 +0100 |
parents | 96b7918a6a18 |
children | f276b175dcaf |
line wrap: on
line diff
--- a/OrthancServer/OrthancRestApi2.cpp Wed Nov 28 18:03:44 2012 +0100 +++ b/OrthancServer/OrthancRestApi2.cpp Thu Nov 29 09:56:46 2012 +0100 @@ -49,6 +49,11 @@ namespace Orthanc { // System information ------------------------------------------------------- + + static void ServeRoot(RestApi::GetCall& call) + { + call.GetOutput().Redirect("app/explorer.html"); + } static void GetSystemInformation(RestApi::GetCall& call) { @@ -63,6 +68,19 @@ } + // List all the patients, studies, series or instances ---------------------- + + template <enum ResourceType resourceType> + static void ListResources(RestApi::GetCall& call) + { + RETRIEVE_CONTEXT(call); + + Json::Value result; + context.GetIndex().GetAllUuids(result, resourceType); + call.GetOutput().AnswerJson(result); + } + + // Changes API -------------------------------------------------------------- static void GetChanges(RestApi::GetCall& call) @@ -126,8 +144,14 @@ { GetListOfDicomModalities(modalities_); + Register("/", ServeRoot); Register("/system", GetSystemInformation); Register("/changes", GetChanges); Register("/modalities", ListModalities); + + Register("/instances", ListResources<ResourceType_Instance>); + Register("/patients", ListResources<ResourceType_Patient>); + Register("/series", ListResources<ResourceType_Series>); + Register("/studies", ListResources<ResourceType_Study>); } }