# HG changeset patch # User Alain Mazy # Date 1739975815 -3600 # Node ID 1ddeb38049eaf834c1dccd4a98ff5cac65b12ae9 # Parent 318f3234e9ed4b0d25b550ac0859b51edbdef973 Get SOPClassUID from metadata when available -> this fixes display of PDF files in Stone when StorageAccessOnFind is set to Never diff -r 318f3234e9ed -r 1ddeb38049ea OrthancServer/Sources/ResourceFinder.cpp --- a/OrthancServer/Sources/ResourceFinder.cpp Tue Feb 18 17:35:27 2025 +0100 +++ b/OrthancServer/Sources/ResourceFinder.cpp Wed Feb 19 15:36:55 2025 +0100 @@ -1148,6 +1148,14 @@ Toolbox::RemoveSets(remainingRequestedTags, metaTagsToRemove); } + // if SOPClassUID has been requested, we might still find it at metadata level (useful e.g. for StoneViewer) + std::string sopClassUidFromMetadata; + if (resource.GetLevel() == ResourceType_Instance && + remainingRequestedTags.find(DICOM_TAG_SOP_CLASS_UID) != remainingRequestedTags.end() && + resource.LookupMetadata(sopClassUidFromMetadata, ResourceType_Instance, MetadataType_Instance_SopClassUid)) + { + outRequestedTags.SetValue(DICOM_TAG_SOP_CLASS_UID, sopClassUidFromMetadata, false); + } if (!remainingRequestedTags.empty() && !DicomMap::HasOnlyComputedTags(remainingRequestedTags)) // if the only remaining tags are computed tags, it is worthless to read them from disk