Mercurial > hg > orthanc-authorization
diff Plugin/DefaultAuthorizationParser.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 | 0205e9efaca8 |
children | 20c638fa8b07 |
line wrap: on
line diff
--- a/Plugin/DefaultAuthorizationParser.cpp Fri Nov 24 15:37:52 2023 +0100 +++ b/Plugin/DefaultAuthorizationParser.cpp Sat Nov 25 12:18:14 2023 +0100 @@ -33,7 +33,8 @@ osimisViewerSeries_("^/osimis-viewer/series/([a-f0-9-]+)(|/.*)$"), osimisViewerImages_("^/osimis-viewer/(images|custom-command)/([a-f0-9-]+)(|/.*)$"), osimisViewerStudies_("^/osimis-viewer/studies/([a-f0-9-]+)(|/.*)$"), - listOfResourcesPattern_("^/(patients|studies|series|instances)(|/)$") + listOfResourcesPattern_("^/(patients|studies|series|instances)(|/)$"), + createBulkPattern_("^/tools/(create-archive|create-media|create-media-extended)(|/)$") { std::string tmp = dicomWebRoot; while (!tmp.empty() && @@ -145,6 +146,19 @@ AddOrthancInstance(target, what[2]); return true; } + else if (boost::regex_match(uri, what, createBulkPattern_)) + { + std::string resourcesIdsString = Orthanc::HttpToolbox::GetArgument(getArguments, "resources", ""); + std::set<std::string> resourcesIds; + Orthanc::Toolbox::SplitString(resourcesIds, resourcesIdsString, ','); + + for (std::set<std::string>::const_iterator it = resourcesIds.begin(); it != resourcesIds.end(); ++it) + { + AddOrthancUnknownResource(target, *it); + } + + return true; + } else if (boost::regex_match(uri, what, dicomWebQidoRsFind_)) { std::string studyInstanceUid, seriesInstanceUid, sopInstanceUid, patientId;