comparison 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
comparison
equal deleted inserted replaced
137:0fa3a38eb72f 138:f448e8626f1a
31 seriesPattern_("^/(web-viewer/series|web-viewer/is-stable-series|wsi/pyramids|wsi/tiles)/([a-f0-9-]+)(|/.*)$"), 31 seriesPattern_("^/(web-viewer/series|web-viewer/is-stable-series|wsi/pyramids|wsi/tiles)/([a-f0-9-]+)(|/.*)$"),
32 instancesPattern_("^/web-viewer/instances/[a-z0-9]+-([a-f0-9-]+)_[0-9]+$"), 32 instancesPattern_("^/web-viewer/instances/[a-z0-9]+-([a-f0-9-]+)_[0-9]+$"),
33 osimisViewerSeries_("^/osimis-viewer/series/([a-f0-9-]+)(|/.*)$"), 33 osimisViewerSeries_("^/osimis-viewer/series/([a-f0-9-]+)(|/.*)$"),
34 osimisViewerImages_("^/osimis-viewer/(images|custom-command)/([a-f0-9-]+)(|/.*)$"), 34 osimisViewerImages_("^/osimis-viewer/(images|custom-command)/([a-f0-9-]+)(|/.*)$"),
35 osimisViewerStudies_("^/osimis-viewer/studies/([a-f0-9-]+)(|/.*)$"), 35 osimisViewerStudies_("^/osimis-viewer/studies/([a-f0-9-]+)(|/.*)$"),
36 listOfResourcesPattern_("^/(patients|studies|series|instances)(|/)$") 36 listOfResourcesPattern_("^/(patients|studies|series|instances)(|/)$"),
37 createBulkPattern_("^/tools/(create-archive|create-media|create-media-extended)(|/)$")
37 { 38 {
38 std::string tmp = dicomWebRoot; 39 std::string tmp = dicomWebRoot;
39 while (!tmp.empty() && 40 while (!tmp.empty() &&
40 tmp[tmp.size() - 1] == '/') 41 tmp[tmp.size() - 1] == '/')
41 { 42 {
143 else if (boost::regex_match(uri, what, osimisViewerImages_)) 144 else if (boost::regex_match(uri, what, osimisViewerImages_))
144 { 145 {
145 AddOrthancInstance(target, what[2]); 146 AddOrthancInstance(target, what[2]);
146 return true; 147 return true;
147 } 148 }
149 else if (boost::regex_match(uri, what, createBulkPattern_))
150 {
151 std::string resourcesIdsString = Orthanc::HttpToolbox::GetArgument(getArguments, "resources", "");
152 std::set<std::string> resourcesIds;
153 Orthanc::Toolbox::SplitString(resourcesIds, resourcesIdsString, ',');
154
155 for (std::set<std::string>::const_iterator it = resourcesIds.begin(); it != resourcesIds.end(); ++it)
156 {
157 AddOrthancUnknownResource(target, *it);
158 }
159
160 return true;
161 }
148 else if (boost::regex_match(uri, what, dicomWebQidoRsFind_)) 162 else if (boost::regex_match(uri, what, dicomWebQidoRsFind_))
149 { 163 {
150 std::string studyInstanceUid, seriesInstanceUid, sopInstanceUid, patientId; 164 std::string studyInstanceUid, seriesInstanceUid, sopInstanceUid, patientId;
151 165
152 studyInstanceUid = Orthanc::HttpToolbox::GetArgument(getArguments, "0020000D", ""); 166 studyInstanceUid = Orthanc::HttpToolbox::GetArgument(getArguments, "0020000D", "");