Mercurial > hg > orthanc
comparison OrthancServer/Sources/Database/Compatibility/GenericFind.cpp @ 5773:3b7dce0e43c6 find-refactoring
handling of case limit=0
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Wed, 11 Sep 2024 21:21:42 +0200 |
parents | 093a8693ba16 |
children | b24b61331566 |
comparison
equal
deleted
inserted
replaced
5772:093a8693ba16 | 5773:3b7dce0e43c6 |
---|---|
127 !request.GetOrthancIdentifiers().HasPatientId() && | 127 !request.GetOrthancIdentifiers().HasPatientId() && |
128 !request.GetOrthancIdentifiers().HasStudyId() && | 128 !request.GetOrthancIdentifiers().HasStudyId() && |
129 !request.GetOrthancIdentifiers().HasSeriesId() && | 129 !request.GetOrthancIdentifiers().HasSeriesId() && |
130 !request.GetOrthancIdentifiers().HasInstanceId()) | 130 !request.GetOrthancIdentifiers().HasInstanceId()) |
131 { | 131 { |
132 if (request.HasLimits()) | 132 if (!request.HasLimits()) |
133 { | |
134 transaction_.GetAllPublicIds(identifiers, request.GetLevel()); | |
135 } | |
136 else if (request.GetLimitsCount() != 0) | |
133 { | 137 { |
134 transaction_.GetAllPublicIds(identifiers, request.GetLevel(), request.GetLimitsSince(), request.GetLimitsCount()); | 138 transaction_.GetAllPublicIds(identifiers, request.GetLevel(), request.GetLimitsSince(), request.GetLimitsCount()); |
135 } | 139 } |
136 else | 140 else |
137 { | 141 { |
138 transaction_.GetAllPublicIds(identifiers, request.GetLevel()); | 142 // Starting with Orthanc 1.12.5, "limit=0" means "no limit" |
143 std::list<std::string> tmp; | |
144 transaction_.GetAllPublicIds(tmp, request.GetLevel()); | |
145 | |
146 size_t count = 0; | |
147 for (std::list<std::string>::const_iterator it = tmp.begin(); it != tmp.end(); ++it) | |
148 { | |
149 if (count >= request.GetLimitsSince()) | |
150 { | |
151 identifiers.push_back(*it); | |
152 } | |
153 | |
154 count++; | |
155 } | |
139 } | 156 } |
140 } | 157 } |
141 else if (IsRequestWithoutContraint(request) && | 158 else if (IsRequestWithoutContraint(request) && |
142 request.GetLevel() == ResourceType_Patient && | 159 request.GetLevel() == ResourceType_Patient && |
143 request.GetOrthancIdentifiers().HasPatientId() && | 160 request.GetOrthancIdentifiers().HasPatientId() && |