diff Plugin/AuthorizationParserBase.cpp @ 138:f448e8626f1a

Now handling new GET /tools/create-archive and sibling routes
author Alain Mazy <am@osimis.io>
date Sat, 25 Nov 2023 12:18:14 +0100
parents 7381a7674b36
children 9be1ee2b8fe1
line wrap: on
line diff
--- a/Plugin/AuthorizationParserBase.cpp	Fri Nov 24 15:37:52 2023 +0100
+++ b/Plugin/AuthorizationParserBase.cpp	Sat Nov 25 12:18:14 2023 +0100
@@ -36,6 +36,38 @@
   }
     
 
+  Orthanc::ResourceType AuthorizationParserBase::AddOrthancUnknownResource(AccessedResources& target,
+                                                                           const std::string& orthancId)
+  {
+    std::string dicomId;
+    if (resourceHierarchy_->LookupDicomUid(dicomId, Orthanc::ResourceType_Study, orthancId))
+    {
+      AddOrthancStudy(target, orthancId);
+      return Orthanc::ResourceType_Study;
+    }
+
+    if (resourceHierarchy_->LookupDicomUid(dicomId, Orthanc::ResourceType_Patient, orthancId))
+    {
+      AddOrthancPatient(target, orthancId);
+      return Orthanc::ResourceType_Patient;
+    }
+
+    if (resourceHierarchy_->LookupDicomUid(dicomId, Orthanc::ResourceType_Series, orthancId))
+    {
+      AddOrthancSeries(target, orthancId);
+      return Orthanc::ResourceType_Series;
+    }
+
+    if (resourceHierarchy_->LookupDicomUid(dicomId, Orthanc::ResourceType_Instance, orthancId))
+    {
+      AddOrthancInstance(target, orthancId);
+      return Orthanc::ResourceType_Instance;
+    }
+
+    throw Orthanc::OrthancException(Orthanc::ErrorCode_UnknownResource);
+  }
+
+
   void AuthorizationParserBase::AddOrthancInstance(AccessedResources& target,
                                                    const std::string& orthancId)
   {