Mercurial > hg > orthanc
comparison OrthancServer/Sources/OrthancRestApi/OrthancRestResources.cpp @ 5590:8b32213af23e find-refactoring
replaced FindRequest::ResponseContent by booleans
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Fri, 03 May 2024 18:17:53 +0200 |
parents | b51ee994cd6f |
children | 1e2631b8b9af |
comparison
equal
deleted
inserted
replaced
5589:b51ee994cd6f | 5590:8b32213af23e |
---|---|
243 FindRequest request(resourceType); | 243 FindRequest request(resourceType); |
244 | 244 |
245 if (expand) | 245 if (expand) |
246 { | 246 { |
247 // compatibility with default expand option | 247 // compatibility with default expand option |
248 FindRequest::ResponseContent responseContent = static_cast<FindRequest::ResponseContent>(FindRequest::ResponseContent_MainDicomTags | | 248 request.SetRetrieveTagsAtLevel(resourceType, true); |
249 FindRequest::ResponseContent_Metadata | | 249 request.SetRetrieveMetadata(true); |
250 FindRequest::ResponseContent_Labels); | 250 request.SetRetrieveLabels(true); |
251 | 251 |
252 if (requestedTags.size() > 0 && resourceType != ResourceType_Instance) // if we are requesting specific tags that might be outside of the MainDicomTags, we must get a childInstanceId too | |
253 { | |
254 responseContent = static_cast<FindRequest::ResponseContent>(responseContent | FindRequest::ResponseContent_ChildInstanceId); | |
255 } | |
256 if (resourceType == ResourceType_Series) | 252 if (resourceType == ResourceType_Series) |
257 { | 253 { |
258 responseContent = static_cast<FindRequest::ResponseContent>(responseContent | FindRequest::ResponseContent_ChildrenMetadata); // required for the SeriesStatus | 254 request.SetRetrieveChildrenMetadata(true); // required for the SeriesStatus |
259 } | 255 } |
260 if (resourceType != ResourceType_Instance) | 256 |
261 { | |
262 responseContent = static_cast<FindRequest::ResponseContent>(responseContent | FindRequest::ResponseContent_Children); | |
263 } | |
264 if (resourceType == ResourceType_Instance) | 257 if (resourceType == ResourceType_Instance) |
265 { | 258 { |
266 responseContent = static_cast<FindRequest::ResponseContent>(responseContent | FindRequest::ResponseContent_Attachments); // for FileSize & FileUuid | 259 request.SetRetrieveAttachments(true); // for FileSize & FileUuid |
267 } | 260 } |
261 else | |
262 { | |
263 request.SetRetrieveChildrenIdentifiers(true); | |
264 } | |
265 | |
268 if (resourceType != ResourceType_Patient) | 266 if (resourceType != ResourceType_Patient) |
269 { | 267 { |
270 responseContent = static_cast<FindRequest::ResponseContent>(responseContent | FindRequest::ResponseContent_Parent); | 268 request.SetRetrieveParentIdentifier(true); |
271 } | 269 } |
272 | |
273 request.SetResponseContent(responseContent); | |
274 request.SetRetrieveTagsAtLevel(resourceType, true); | |
275 | 270 |
276 if (resourceType == ResourceType_Study) | 271 if (resourceType == ResourceType_Study) |
277 { | 272 { |
278 request.SetRetrieveTagsAtLevel(ResourceType_Patient, true); | 273 request.SetRetrieveTagsAtLevel(ResourceType_Patient, true); |
279 } | 274 } |
280 } | |
281 else | |
282 { | |
283 request.SetResponseContent(FindRequest::ResponseContent_IdentifiersOnly); | |
284 } | 275 } |
285 | 276 |
286 if (call.HasArgument("limit") || | 277 if (call.HasArgument("limit") || |
287 call.HasArgument("since")) | 278 call.HasArgument("since")) |
288 { | 279 { |
309 index.ExecuteFind(response, request); | 300 index.ExecuteFind(response, request); |
310 | 301 |
311 // TODO-FIND: put this in an AnswerFindResponse method ! | 302 // TODO-FIND: put this in an AnswerFindResponse method ! |
312 Json::Value answer = Json::arrayValue; | 303 Json::Value answer = Json::arrayValue; |
313 | 304 |
314 if (request.IsResponseIdentifiersOnly()) | 305 if (expand) |
315 { | 306 { |
316 for (size_t i = 0; i < response.GetSize(); i++) | 307 for (size_t i = 0; i < response.GetSize(); i++) |
317 { | 308 { |
309 context.AppendFindResponse(answer, request, response.GetResource(i), format, requestedTags, true /* allowStorageAccess */); | |
310 } | |
311 } | |
312 else | |
313 { | |
314 for (size_t i = 0; i < response.GetSize(); i++) | |
315 { | |
318 answer.append(response.GetResource(i).GetIdentifier()); | 316 answer.append(response.GetResource(i).GetIdentifier()); |
319 } | |
320 } | |
321 else | |
322 { | |
323 for (size_t i = 0; i < response.GetSize(); i++) | |
324 { | |
325 context.AppendFindResponse(answer, request, response.GetResource(i), format, requestedTags, true /* allowStorageAccess */); | |
326 } | 317 } |
327 } | 318 } |
328 | 319 |
329 call.GetOutput().AnswerJson(answer); | 320 call.GetOutput().AnswerJson(answer); |
330 } | 321 } |