# HG changeset patch # User Alain Mazy # Date 1725890713 -7200 # Node ID db4bd2f9e8d20f6a39289e7d9023f232384a0ae7 # Parent 1b0e67be3c15f5a73321d1af6d16891c91e66ed4 re-enable W002 again diff -r 1b0e67be3c15 -r db4bd2f9e8d2 OrthancServer/Sources/ResourceFinder.cpp --- a/OrthancServer/Sources/ResourceFinder.cpp Fri Sep 06 16:51:44 2024 +0200 +++ b/OrthancServer/Sources/ResourceFinder.cpp Mon Sep 09 16:05:13 2024 +0200 @@ -839,6 +839,7 @@ LOG(WARNING) << "W001: Accessing DICOM tags from storage when accessing " << Orthanc::GetResourceTypeText(resource.GetLevel(), false, false) + << " " << resource.GetIdentifier() << ": " << missings; } @@ -901,6 +902,13 @@ void ResourceFinder::Execute(IVisitor& visitor, ServerContext& context) const { + bool isWarning002Enabled = false; + + { + OrthancConfiguration::ReaderLock lock; + isWarning002Enabled = lock.GetConfiguration().IsWarningEnabled(Warnings_002_InconsistentDicomTagsInDb); + } + FindResponse response; context.GetIndex().ExecuteFind(response, request_); @@ -958,6 +966,19 @@ ReadMissingTagsFromStorageArea(requestedTags, context, request_, resource, missingTags); } } + + std::string mainDicomTagsSignature; + if (isWarning002Enabled && + resource.LookupMetadata(mainDicomTagsSignature, resource.GetLevel(), MetadataType_MainDicomTagsSignature) && + mainDicomTagsSignature != DicomMap::GetMainDicomTagsSignature(resource.GetLevel())) + { + LOG(WARNING) << "W002: " << Orthanc::GetResourceTypeText(resource.GetLevel(), false , false) + << " has been stored with another version of Main Dicom Tags list, you should POST to /" + << Orthanc::GetResourceTypeText(resource.GetLevel(), true, false) + << "/" << resource.GetIdentifier() + << "/reconstruct to update the list of tags saved in DB or run the Housekeeper plugin. Some MainDicomTags might be missing from this answer."; + } + } bool match = true;