changeset 206:49fcefaf4211

Now handling /tools/count-resources API route
author Alain Mazy <am@orthanc.team>
date Mon, 20 Jan 2025 11:41:37 +0100
parents 3a279c1757a7
children 88ba174ff553
files NEWS Plugin/DefaultConfiguration.json Plugin/Plugin.cpp
diffstat 3 files changed, 24 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/NEWS	Fri Jan 17 12:40:59 2025 +0100
+++ b/NEWS	Mon Jan 20 11:41:37 2025 +0100
@@ -3,6 +3,7 @@
 
 * Fix forbidden access when the PatientID and StudyInstanceUID are identical.
 * Fix an error when WebServiceSettingsRolesUrl is not defined.
+* Now handling /tools/count-resources API route.
 
 
 2024-07-03 - v 0.8.1
--- a/Plugin/DefaultConfiguration.json	Fri Jan 17 12:40:59 2025 +0100
+++ b/Plugin/DefaultConfiguration.json	Mon Jan 20 11:41:37 2025 +0100
@@ -62,6 +62,7 @@
 
             // elemental browsing in OE2
             ["post", "^/tools/find$", "all|view"],
+            ["post", "^/tools/count-resources$", "all|view"],
             ["get" , "^/(patients|studies|series|instances)(|/)", "all|view"],
             ["get" , "^/statistics$", "all|view"],
             ["get" , "^/changes$", "all|view"],
--- a/Plugin/Plugin.cpp	Fri Jan 17 12:40:59 2025 +0100
+++ b/Plugin/Plugin.cpp	Mon Jan 20 11:41:37 2025 +0100
@@ -687,9 +687,12 @@
   }
 }
 
-void ToolsFind(OrthancPluginRestOutput* output,
-               const char* /*url*/,
-               const OrthancPluginHttpRequest* request)
+
+
+void ToolsFindOrCountResources(OrthancPluginRestOutput* output,
+                               const char* /*url*/,
+                               const OrthancPluginHttpRequest* request,
+                               const char* nativeUrl)
 {
   OrthancPluginContext* context = OrthancPlugins::GetGlobalContext();
 
@@ -793,7 +796,7 @@
 
       Json::Value result;
 
-      if (OrthancPlugins::RestApiPost(result, "/tools/find", query, false))
+      if (OrthancPlugins::RestApiPost(result, nativeUrl, query, false))
       {
         OrthancPlugins::AnswerJson(result, output);
       }
@@ -816,6 +819,20 @@
 
 }
 
+void ToolsFind(OrthancPluginRestOutput* output,
+               const char* url,
+               const OrthancPluginHttpRequest* request)
+{
+  ToolsFindOrCountResources(output, url, request, "/tools/find");
+}
+
+void ToolsCountResources(OrthancPluginRestOutput* output,
+                         const char* url,
+                         const OrthancPluginHttpRequest* request)
+{
+  ToolsFindOrCountResources(output, url, request, "/tools/count-resources");
+}
+
 void ToolsLabels(OrthancPluginRestOutput* output,
                  const char* /*url*/,
                  const OrthancPluginHttpRequest* request)
@@ -1495,6 +1512,7 @@
         {
           OrthancPlugins::RegisterRestCallback<GetUserProfile>("/auth/user/profile", true);
           OrthancPlugins::RegisterRestCallback<ToolsFind>("/tools/find", true);
+          OrthancPlugins::RegisterRestCallback<ToolsCountResources>("/tools/count-resources", true);
           OrthancPlugins::RegisterRestCallback<ToolsLabels>("/tools/labels", true);
           OrthancPlugins::RegisterRestCallback<AuthSettingsRoles>("/auth/settings/roles", true);
           OrthancPlugins::RegisterRestCallback<GetPermissionList>("/auth/settings/permissions", true);