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>);
   }
 }