comparison OrthancServer/Sources/OrthancRestApi/OrthancRestResources.cpp @ 5709:476b1db52110 find-refactoring

removed the "format_" member from ResourceFinder
author Sebastien Jodogne <s.jodogne@gmail.com>
date Fri, 12 Jul 2024 18:41:44 +0200
parents 1891a8c2dbb4
children a786da7599d5 d851a54e49b7
comparison
equal deleted inserted replaced
5708:1891a8c2dbb4 5709:476b1db52110
136 DicomToJsonFormat format, 136 DicomToJsonFormat format,
137 bool retrieveMetadata) 137 bool retrieveMetadata)
138 { 138 {
139 ResourceFinder finder(level, true /* expand */); 139 ResourceFinder finder(level, true /* expand */);
140 finder.SetOrthancId(level, identifier); 140 finder.SetOrthancId(level, identifier);
141 finder.SetFormat(format);
142 finder.SetRetrieveMetadata(retrieveMetadata); 141 finder.SetRetrieveMetadata(retrieveMetadata);
143 142
144 FindResponse response; 143 FindResponse response;
145 finder.Execute(response, index); 144 finder.Execute(response, index);
146 145
149 return false; 148 return false;
150 } 149 }
151 else 150 else
152 { 151 {
153 const FindResponse::Resource& resource = response.GetResourceByIndex(0); 152 const FindResponse::Resource& resource = response.GetResourceByIndex(0);
154 finder.Expand(target, resource, index); 153 finder.Expand(target, resource, index, format);
155 154
156 if (retrieveMetadata) 155 if (retrieveMetadata)
157 { 156 {
158 const std::map<MetadataType, std::string>& metadata = resource.GetMetadata(level); 157 const std::map<MetadataType, std::string>& metadata = resource.GetMetadata(level);
159 158
286 std::set<DicomTag> requestedTags; 285 std::set<DicomTag> requestedTags;
287 OrthancRestApi::GetRequestedTags(requestedTags, call); 286 OrthancRestApi::GetRequestedTags(requestedTags, call);
288 287
289 ResourceFinder finder(resourceType, expand); 288 ResourceFinder finder(resourceType, expand);
290 finder.AddRequestedTags(requestedTags); 289 finder.AddRequestedTags(requestedTags);
291 finder.SetFormat(OrthancRestApi::GetDicomFormat(call, DicomToJsonFormat_Human));
292 290
293 if (call.HasArgument("limit") || 291 if (call.HasArgument("limit") ||
294 call.HasArgument("since")) 292 call.HasArgument("since"))
295 { 293 {
296 if (!call.HasArgument("limit")) 294 if (!call.HasArgument("limit"))
312 finder.SetLimitsSince(since); 310 finder.SetLimitsSince(since);
313 finder.SetLimitsCount(limit); 311 finder.SetLimitsCount(limit);
314 } 312 }
315 313
316 Json::Value answer; 314 Json::Value answer;
317 finder.Execute(answer, context); 315 finder.Execute(answer, context, OrthancRestApi::GetDicomFormat(call, DicomToJsonFormat_Human));
318 call.GetOutput().AnswerJson(answer); 316 call.GetOutput().AnswerJson(answer);
319 } 317 }
320 else 318 else
321 { 319 {
322 /** 320 /**
393 * EXPERIMENTAL VERSION 391 * EXPERIMENTAL VERSION
394 **/ 392 **/
395 393
396 ResourceFinder finder(resourceType, true /* expand */); 394 ResourceFinder finder(resourceType, true /* expand */);
397 finder.AddRequestedTags(requestedTags); 395 finder.AddRequestedTags(requestedTags);
398 finder.SetFormat(OrthancRestApi::GetDicomFormat(call, DicomToJsonFormat_Human));
399 finder.SetOrthancId(resourceType, call.GetUriComponent("id", "")); 396 finder.SetOrthancId(resourceType, call.GetUriComponent("id", ""));
400 397
401 Json::Value json; 398 Json::Value json;
402 if (finder.ExecuteOneResource(json, OrthancRestApi::GetContext(call))) 399 if (finder.ExecuteOneResource(json, OrthancRestApi::GetContext(call), format))
403 { 400 {
404 call.GetOutput().AnswerJson(json); 401 call.GetOutput().AnswerJson(json);
405 } 402 }
406 } 403 }
407 else 404 else
3388 3385
3389 const ResourceType level = StringToResourceType(request[KEY_LEVEL].asCString()); 3386 const ResourceType level = StringToResourceType(request[KEY_LEVEL].asCString());
3390 3387
3391 ResourceFinder finder(level, expand); 3388 ResourceFinder finder(level, expand);
3392 finder.SetDatabaseLimits(context.GetDatabaseLimits(level)); 3389 finder.SetDatabaseLimits(context.GetDatabaseLimits(level));
3393 finder.SetFormat(OrthancRestApi::GetDicomFormat(request, DicomToJsonFormat_Human)); 3390
3391 const DicomToJsonFormat format = OrthancRestApi::GetDicomFormat(request, DicomToJsonFormat_Human);
3394 3392
3395 if (request.isMember(KEY_LIMIT)) 3393 if (request.isMember(KEY_LIMIT))
3396 { 3394 {
3397 int64_t tmp = request[KEY_LIMIT].asInt64(); 3395 int64_t tmp = request[KEY_LIMIT].asInt64();
3398 if (tmp < 0) 3396 if (tmp < 0)
3497 throw OrthancException(ErrorCode_BadRequest, "Field \"" + std::string(KEY_LABELS_CONSTRAINT) + "\" must be \"All\", \"Any\", or \"None\""); 3495 throw OrthancException(ErrorCode_BadRequest, "Field \"" + std::string(KEY_LABELS_CONSTRAINT) + "\" must be \"All\", \"Any\", or \"None\"");
3498 } 3496 }
3499 } 3497 }
3500 3498
3501 Json::Value answer; 3499 Json::Value answer;
3502 finder.Execute(answer, context); 3500 finder.Execute(answer, context, format);
3503 call.GetOutput().AnswerJson(answer); 3501 call.GetOutput().AnswerJson(answer);
3504 } 3502 }
3505 else 3503 else
3506 { 3504 {
3507 /** 3505 /**
3666 **/ 3664 **/
3667 3665
3668 ResourceFinder finder(end, expand); 3666 ResourceFinder finder(end, expand);
3669 finder.SetOrthancId(start, call.GetUriComponent("id", "")); 3667 finder.SetOrthancId(start, call.GetUriComponent("id", ""));
3670 finder.AddRequestedTags(requestedTags); 3668 finder.AddRequestedTags(requestedTags);
3671 finder.SetFormat(format);
3672 3669
3673 Json::Value answer; 3670 Json::Value answer;
3674 finder.Execute(answer, context); 3671 finder.Execute(answer, context, format);
3675 call.GetOutput().AnswerJson(answer); 3672 call.GetOutput().AnswerJson(answer);
3676 } 3673 }
3677 else 3674 else
3678 { 3675 {
3679 /** 3676 /**