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