Mercurial > hg > orthanc
comparison OrthancServer/Sources/OrthancRestApi/OrthancRestResources.cpp @ 5606:6e2dad336446 find-refactoring
added "IsStable" field in expanded resources
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Wed, 08 May 2024 10:46:11 +0200 |
parents | e4e7ca3d206e |
children | a3732285f8b6 |
comparison
equal
deleted
inserted
replaced
5605:3f24eb4013d8 | 5606:6e2dad336446 |
---|---|
266 } | 266 } |
267 } | 267 } |
268 | 268 |
269 | 269 |
270 void Expand(Json::Value& target, | 270 void Expand(Json::Value& target, |
271 const FindResponse::Resource& resource) const | 271 const FindResponse::Resource& resource, |
272 { | 272 ServerIndex& index) const |
273 /** | 273 { |
274 | |
275 TODO-FIND: | |
276 | |
277 - Metadata / Series / ExpectedNumberOfInstances | |
278 | |
279 - Metadata / Series / Status | |
280 | |
281 - Metadata / Instance / FileSize | |
282 | |
283 - Metadata / Instance / FileUuid | |
284 | |
285 - Metadata / Instance / IndexInSeries | |
286 | |
287 - Metadata / AnonymizedFrom | |
288 | |
289 - Metadata / ModifiedFrom | |
290 | |
291 **/ | |
292 | |
293 /** | 274 /** |
294 * This method closely follows "SerializeExpandedResource()" in | 275 * This method closely follows "SerializeExpandedResource()" in |
295 * "ServerContext.cpp" from Orthanc 1.12.3. | 276 * "ServerContext.cpp" from Orthanc 1.12.3. |
296 **/ | 277 **/ |
297 | 278 |
298 if (resource.GetLevel() != request_.GetLevel()) | 279 if (resource.GetLevel() != request_.GetLevel()) |
299 { | 280 { |
300 throw OrthancException(ErrorCode_InternalError); | 281 throw OrthancException(ErrorCode_InternalError); |
282 } | |
283 | |
284 if (!requestedTags_.empty()) | |
285 { | |
286 throw OrthancException(ErrorCode_NotImplemented); | |
301 } | 287 } |
302 | 288 |
303 target = Json::objectValue; | 289 target = Json::objectValue; |
304 | 290 |
305 target["Type"] = GetResourceTypeText(resource.GetLevel(), false, true); | 291 target["Type"] = GetResourceTypeText(resource.GetLevel(), false, true); |
426 | 412 |
427 if (resource.GetLevel() == ResourceType_Patient || | 413 if (resource.GetLevel() == ResourceType_Patient || |
428 resource.GetLevel() == ResourceType_Study || | 414 resource.GetLevel() == ResourceType_Study || |
429 resource.GetLevel() == ResourceType_Series) | 415 resource.GetLevel() == ResourceType_Series) |
430 { | 416 { |
431 // TODO-FIND: Stable | 417 target["IsStable"] = !index.IsUnstableResource(resource.GetLevel(), resource.GetInternalId()); |
432 | |
433 /* | |
434 if (resource.IsStable()) | |
435 { | |
436 target["IsStable"] = true; | |
437 } | |
438 */ | |
439 | 418 |
440 if (resource.LookupMetadata(s, resource.GetLevel(), MetadataType_LastUpdate)) | 419 if (resource.LookupMetadata(s, resource.GetLevel(), MetadataType_LastUpdate)) |
441 { | 420 { |
442 target["LastUpdate"] = s; | 421 target["LastUpdate"] = s; |
443 } | 422 } |
423 } | |
424 | |
425 { | |
426 // TODO-FIND : (expandFlags & ExpandResourceFlags_IncludeMainDicomTags) | |
444 } | 427 } |
445 | 428 |
446 { | 429 { |
447 Json::Value labels = Json::arrayValue; | 430 Json::Value labels = Json::arrayValue; |
448 | 431 |
453 } | 436 } |
454 | 437 |
455 target["Labels"] = labels; | 438 target["Labels"] = labels; |
456 } | 439 } |
457 | 440 |
458 if (includeAllMetadata_) | 441 if (includeAllMetadata_) // new in Orthanc 1.12.4 |
459 { | 442 { |
460 const std::map<MetadataType, std::string>& m = resource.GetMetadata(resource.GetLevel()); | 443 const std::map<MetadataType, std::string>& m = resource.GetMetadata(resource.GetLevel()); |
461 | 444 |
462 Json::Value metadata = Json::objectValue; | 445 Json::Value metadata = Json::objectValue; |
463 | 446 |
538 if (expand_) | 521 if (expand_) |
539 { | 522 { |
540 for (size_t i = 0; i < response.GetSize(); i++) | 523 for (size_t i = 0; i < response.GetSize(); i++) |
541 { | 524 { |
542 Json::Value item; | 525 Json::Value item; |
543 Expand(item, response.GetResource(i)); | 526 Expand(item, response.GetResource(i), context.GetIndex()); |
544 | 527 |
545 #if 0 | 528 #if 0 |
546 target.append(item); | 529 target.append(item); |
547 #else | 530 #else |
548 context.AppendFindResponse(target, request_, response.GetResource(i), format_, | 531 context.AppendFindResponse(target, request_, response.GetResource(i), format_, |