# HG changeset patch # User Sebastien Jodogne # Date 1726082502 -7200 # Node ID 3b7dce0e43c6a60abec577efd5b3ccfb1ebcc3a1 # Parent 093a8693ba16d8871d32ab2b3754480cd14d2320 handling of case limit=0 diff -r 093a8693ba16 -r 3b7dce0e43c6 OrthancServer/Sources/Database/Compatibility/GenericFind.cpp --- a/OrthancServer/Sources/Database/Compatibility/GenericFind.cpp Wed Sep 11 20:49:34 2024 +0200 +++ b/OrthancServer/Sources/Database/Compatibility/GenericFind.cpp Wed Sep 11 21:21:42 2024 +0200 @@ -129,13 +129,30 @@ !request.GetOrthancIdentifiers().HasSeriesId() && !request.GetOrthancIdentifiers().HasInstanceId()) { - if (request.HasLimits()) + if (!request.HasLimits()) + { + transaction_.GetAllPublicIds(identifiers, request.GetLevel()); + } + else if (request.GetLimitsCount() != 0) { transaction_.GetAllPublicIds(identifiers, request.GetLevel(), request.GetLimitsSince(), request.GetLimitsCount()); } else { - transaction_.GetAllPublicIds(identifiers, request.GetLevel()); + // Starting with Orthanc 1.12.5, "limit=0" means "no limit" + std::list tmp; + transaction_.GetAllPublicIds(tmp, request.GetLevel()); + + size_t count = 0; + for (std::list::const_iterator it = tmp.begin(); it != tmp.end(); ++it) + { + if (count >= request.GetLimitsSince()) + { + identifiers.push_back(*it); + } + + count++; + } } } else if (IsRequestWithoutContraint(request) &&