Mercurial > hg > orthanc
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 { |