comparison OrthancServer/Sources/ResourceFinder.cpp @ 5619:1864b16bc7b1 find-refactoring

added FindRequest::ParentRetrieveSpecification
author Sebastien Jodogne <s.jodogne@gmail.com>
date Sat, 11 May 2024 12:13:31 +0200
parents 8905ffa45fc2
children 4bfd885fb45f
comparison
equal deleted inserted replaced
5618:824a5fb0774e 5619:1864b16bc7b1
365 hasRequestedTags_(false), 365 hasRequestedTags_(false),
366 includeAllMetadata_(false) 366 includeAllMetadata_(false)
367 { 367 {
368 if (expand) 368 if (expand)
369 { 369 {
370 request_.SetRetrieveMainDicomTags(level, true); 370 request_.SetRetrieveMainDicomTags(true);
371 request_.SetRetrieveMetadata(level, true); 371 request_.SetRetrieveMetadata(true);
372 request_.SetRetrieveLabels(true); 372 request_.SetRetrieveLabels(true);
373 373
374 if (level == ResourceType_Series) 374 if (level == ResourceType_Series)
375 { 375 {
376 request_.AddRetrieveChildrenMetadata(MetadataType_Instance_IndexInSeries); // required for the SeriesStatus 376 request_.AddRetrieveChildrenMetadata(MetadataType_Instance_IndexInSeries); // required for the SeriesStatus
395 395
396 void ResourceFinder::AddRequestedTags(const DicomTag& tag) 396 void ResourceFinder::AddRequestedTags(const DicomTag& tag)
397 { 397 {
398 if (DicomMap::IsMainDicomTag(tag, ResourceType_Patient)) 398 if (DicomMap::IsMainDicomTag(tag, ResourceType_Patient))
399 { 399 {
400 request_.SetRetrieveMainDicomTags(ResourceType_Patient, true); 400 request_.GetParentRetrieveSpecification(ResourceType_Patient).SetRetrieveMainDicomTags(true);
401 request_.SetRetrieveMetadata(ResourceType_Patient, true); 401 request_.GetParentRetrieveSpecification(ResourceType_Patient).SetRetrieveMetadata(true);
402 requestedPatientTags_.insert(tag); 402 requestedPatientTags_.insert(tag);
403 } 403 }
404 else if (DicomMap::IsMainDicomTag(tag, ResourceType_Study)) 404 else if (DicomMap::IsMainDicomTag(tag, ResourceType_Study))
405 { 405 {
406 if (request_.GetLevel() == ResourceType_Patient) 406 if (request_.GetLevel() == ResourceType_Patient)
410 requestedTagsFromFileStorage_.insert(tag); 410 requestedTagsFromFileStorage_.insert(tag);
411 request_.SetRetrieveOneInstanceIdentifier(true); 411 request_.SetRetrieveOneInstanceIdentifier(true);
412 } 412 }
413 else 413 else
414 { 414 {
415 request_.SetRetrieveMainDicomTags(ResourceType_Study, true); 415 request_.GetParentRetrieveSpecification(ResourceType_Study).SetRetrieveMainDicomTags(true);
416 request_.SetRetrieveMetadata(ResourceType_Study, true); 416 request_.GetParentRetrieveSpecification(ResourceType_Study).SetRetrieveMetadata(true);
417 requestedStudyTags_.insert(tag); 417 requestedStudyTags_.insert(tag);
418 } 418 }
419 } 419 }
420 else if (DicomMap::IsMainDicomTag(tag, ResourceType_Series)) 420 else if (DicomMap::IsMainDicomTag(tag, ResourceType_Series))
421 { 421 {
427 requestedTagsFromFileStorage_.insert(tag); 427 requestedTagsFromFileStorage_.insert(tag);
428 request_.SetRetrieveOneInstanceIdentifier(true); 428 request_.SetRetrieveOneInstanceIdentifier(true);
429 } 429 }
430 else 430 else
431 { 431 {
432 request_.SetRetrieveMainDicomTags(ResourceType_Series, true); 432 request_.GetParentRetrieveSpecification(ResourceType_Series).SetRetrieveMainDicomTags(true);
433 request_.SetRetrieveMetadata(ResourceType_Series, true); 433 request_.GetParentRetrieveSpecification(ResourceType_Series).SetRetrieveMetadata(true);
434 requestedSeriesTags_.insert(tag); 434 requestedSeriesTags_.insert(tag);
435 } 435 }
436 } 436 }
437 else if (DicomMap::IsMainDicomTag(tag, ResourceType_Instance)) 437 else if (DicomMap::IsMainDicomTag(tag, ResourceType_Instance))
438 { 438 {
446 request_.SetRetrieveOneInstanceIdentifier(true); 446 request_.SetRetrieveOneInstanceIdentifier(true);
447 } 447 }
448 else 448 else
449 { 449 {
450 // Main DICOM tags from the instance level will be retrieved anyway 450 // Main DICOM tags from the instance level will be retrieved anyway
451 assert(request_.IsRetrieveMainDicomTags(ResourceType_Instance)); 451 assert(request_.IsRetrieveMainDicomTags());
452 assert(request_.IsRetrieveMetadata(ResourceType_Instance)); 452 assert(request_.IsRetrieveMetadata());
453 requestedInstanceTags_.insert(tag); 453 requestedInstanceTags_.insert(tag);
454 } 454 }
455 } 455 }
456 else 456 else
457 { 457 {