Mercurial > hg > orthanc-authorization
comparison Plugin/DefaultAuthorizationParser.cpp @ 57:55539d564f4f
added support for /dicom-web/series? & /dicom-web/instances?
author | Alain Mazy <am@osimis.io> |
---|---|
date | Wed, 09 Nov 2022 15:40:35 +0100 |
parents | c02f0646297d |
children | 1a13c4fbc9a1 |
comparison
equal
deleted
inserted
replaced
56:c02f0646297d | 57:55539d564f4f |
---|---|
47 "^" + tmp + "/studies/([.0-9]+)/series/([.0-9]+)(|/instances)(|/)$"); | 47 "^" + tmp + "/studies/([.0-9]+)/series/([.0-9]+)(|/instances)(|/)$"); |
48 | 48 |
49 dicomWebInstances_ = boost::regex( | 49 dicomWebInstances_ = boost::regex( |
50 "^" + tmp + "/studies/([.0-9]+)/series/([.0-9]+)/instances/([.0-9]+)(|/|/frames/.*)$"); | 50 "^" + tmp + "/studies/([.0-9]+)/series/([.0-9]+)/instances/([.0-9]+)(|/|/frames/.*)$"); |
51 | 51 |
52 dicomWebQidoRsFindStudies_ = boost::regex( | 52 dicomWebQidoRsFind_ = boost::regex( |
53 "^" + tmp + "/studies\?(.*)$"); | 53 "^" + tmp + "/(studies|series|instances)\?(.*)$"); |
54 } | 54 } |
55 | 55 |
56 | 56 |
57 bool DefaultAuthorizationParser::Parse(AccessedResources& target, | 57 bool DefaultAuthorizationParser::Parse(AccessedResources& target, |
58 const std::string& uri, | 58 const std::string& uri, |
130 else if (boost::regex_match(uri, what, osimisViewerImages_)) | 130 else if (boost::regex_match(uri, what, osimisViewerImages_)) |
131 { | 131 { |
132 AddOrthancInstance(target, what[2]); | 132 AddOrthancInstance(target, what[2]); |
133 return true; | 133 return true; |
134 } | 134 } |
135 else if (boost::regex_match(uri, what, dicomWebQidoRsFindStudies_)) | 135 else if (boost::regex_match(uri, what, dicomWebQidoRsFind_)) |
136 { | 136 { |
137 std::string studyInstanceUid; | 137 std::string studyInstanceUid, seriesInstanceUid, sopInstanceUid; |
138 | 138 |
139 studyInstanceUid = Orthanc::HttpToolbox::GetArgument(getArguments, "0020000D", ""); | 139 studyInstanceUid = Orthanc::HttpToolbox::GetArgument(getArguments, "0020000D", ""); |
140 seriesInstanceUid = Orthanc::HttpToolbox::GetArgument(getArguments, "0020000E", ""); | |
141 sopInstanceUid = Orthanc::HttpToolbox::GetArgument(getArguments, "00080018", ""); | |
140 | 142 |
141 if (!studyInstanceUid.empty()) | 143 if (!sopInstanceUid.empty() && !seriesInstanceUid.empty() && !studyInstanceUid.empty()) |
144 { | |
145 AddDicomInstance(target, studyInstanceUid, seriesInstanceUid, sopInstanceUid); | |
146 } | |
147 else if (!seriesInstanceUid.empty() && !studyInstanceUid.empty()) | |
148 { | |
149 AddDicomSeries(target, studyInstanceUid, seriesInstanceUid); | |
150 } | |
151 else if (!studyInstanceUid.empty()) | |
142 { | 152 { |
143 AddDicomStudy(target, studyInstanceUid); | 153 AddDicomStudy(target, studyInstanceUid); |
144 } | 154 } |
145 return true; | 155 return true; |
146 } | 156 } |