# HG changeset patch # User Sebastien Jodogne # Date 1720822833 -7200 # Node ID 2b05428843d2086a3d10e6b1420ed5624846941f # Parent d851a54e49b727c1e1b15aef02c143b712a3db23 removed dangerous overload of ResourceFinder::Execute() diff -r d851a54e49b7 -r 2b05428843d2 OrthancServer/Sources/OrthancRestApi/OrthancRestResources.cpp --- a/OrthancServer/Sources/OrthancRestApi/OrthancRestResources.cpp Sat Jul 13 00:03:42 2024 +0200 +++ b/OrthancServer/Sources/OrthancRestApi/OrthancRestResources.cpp Sat Jul 13 00:20:33 2024 +0200 @@ -130,7 +130,7 @@ static bool ExpandResource(Json::Value& target, - ServerIndex& index, + ServerContext& context, ResourceType level, const std::string& identifier, DicomToJsonFormat format, @@ -140,19 +140,7 @@ finder.SetOrthancId(level, identifier); finder.SetRetrieveMetadata(retrieveMetadata); - FindResponse response; - finder.Execute(response, index); - - if (response.GetSize() != 1) - { - return false; - } - else - { - const FindResponse::Resource& resource = response.GetResourceByIndex(0); - finder.Expand(target, resource, index, format, retrieveMetadata); - return true; - } + return finder.ExecuteOneResource(target, context, format, retrieveMetadata); } @@ -3801,7 +3789,7 @@ /** * EXPERIMENTAL VERSION **/ - if (ExpandResource(resource, OrthancRestApi::GetIndex(call), currentType, current, format, false)) + if (ExpandResource(resource, OrthancRestApi::GetContext(call), currentType, current, format, false)) { call.GetOutput().AnswerJson(resource); } @@ -4251,7 +4239,7 @@ * EXPERIMENTAL VERSION **/ Json::Value item; - if (ExpandResource(item, OrthancRestApi::GetIndex(call), level, *it, format, metadata)) + if (ExpandResource(item, OrthancRestApi::GetContext(call), level, *it, format, metadata)) { answer.append(item); } @@ -4295,7 +4283,7 @@ * EXPERIMENTAL VERSION **/ if (index.LookupResourceType(level, *it) && - ExpandResource(item, OrthancRestApi::GetIndex(call), level, *it, format, metadata)) + ExpandResource(item, OrthancRestApi::GetContext(call), level, *it, format, metadata)) { answer.append(item); } diff -r d851a54e49b7 -r 2b05428843d2 OrthancServer/Sources/ResourceFinder.cpp --- a/OrthancServer/Sources/ResourceFinder.cpp Sat Jul 13 00:03:42 2024 +0200 +++ b/OrthancServer/Sources/ResourceFinder.cpp Sat Jul 13 00:20:33 2024 +0200 @@ -891,13 +891,6 @@ } - void ResourceFinder::Execute(FindResponse& response, - ServerIndex& index) const - { - index.ExecuteFind(response, request_); - } - - void ResourceFinder::Execute(IVisitor& visitor, ServerContext& context) const { diff -r d851a54e49b7 -r 2b05428843d2 OrthancServer/Sources/ResourceFinder.h --- a/OrthancServer/Sources/ResourceFinder.h Sat Jul 13 00:03:42 2024 +0200 +++ b/OrthancServer/Sources/ResourceFinder.h Sat Jul 13 00:20:33 2024 +0200 @@ -166,9 +166,6 @@ DicomToJsonFormat format, bool includeAllMetadata /* Same as: ExpandResourceFlags_IncludeAllMetadata */) const; - void Execute(FindResponse& target, - ServerIndex& index) const; - void Execute(IVisitor& visitor, ServerContext& context) const; diff -r d851a54e49b7 -r 2b05428843d2 OrthancServer/Sources/ServerContext.cpp --- a/OrthancServer/Sources/ServerContext.cpp Sat Jul 13 00:03:42 2024 +0200 +++ b/OrthancServer/Sources/ServerContext.cpp Sat Jul 13 00:20:33 2024 +0200 @@ -1556,53 +1556,8 @@ fastLookup->RemoveConstraint(DICOM_TAG_MODALITIES_IN_STUDY); } - if (true) - { - /** - * EXPERIMENTAL VERSION - **/ - - ResourceFinder finder(queryLevel, false /* TODO-FIND: don't expand for now */); - finder.SetDatabaseLimits(databaseLimit); - finder.SetDatabaseLookup(lookup); - finder.SetLabels(labels); - finder.SetLabelsConstraint(labelsConstraint); - - if (queryLevel != ResourceType_Instance) - { - finder.SetRetrieveOneInstanceIdentifier(true); - } - - FindResponse response; - finder.Execute(response, GetIndex()); - - resources.resize(response.GetSize()); - instances.resize(response.GetSize()); - - for (size_t i = 0; i < response.GetSize(); i++) - { - const FindResponse::Resource& resource = response.GetResourceByIndex(i); - resources[i] = resource.GetIdentifier(); - - if (queryLevel == ResourceType_Instance) - { - instances[i] = resource.GetIdentifier(); - } - else - { - instances[i] = resource.GetOneInstanceIdentifier(); - } - } - } - else - { - /** - * VERSION IN ORTHANC <= 1.12.4 - **/ - - const size_t lookupLimit = (databaseLimit == 0 ? 0 : databaseLimit + 1); - GetIndex().ApplyLookupResources(resources, &instances, *fastLookup, queryLevel, labels, labelsConstraint, lookupLimit); - } + const size_t lookupLimit = (databaseLimit == 0 ? 0 : databaseLimit + 1); + GetIndex().ApplyLookupResources(resources, &instances, *fastLookup, queryLevel, labels, labelsConstraint, lookupLimit); bool complete = (databaseLimit == 0 || resources.size() <= databaseLimit);