fix(fhir): page _offset as far as a series reaches

The 100000 ceiling refused offsets a correctly paging client reaches on
its own: an Observation series with a heart-rate history runs well past
a hundred thousand rows, and the next link the server handed out led
straight into a 400. The 500 the ceiling was added for came from an
offset such as 1e20 that no longer floors to an exact integer and that
the database cannot read as an OFFSET. The refusal now sits at the
largest exact integer, and a next link never carries an offset the
server would refuse.
This commit is contained in:
Marc-André Bombeck committed 2026-10-22 00:27:02 +02:00
1 parent 29d6029999
commit 4fbbdb12c2
4 files changed
+66 -32

No files matched your search

+12 -12
View File
@@ -1274,9 +1274,9 @@ paths:
- in: query
name: _offset
schema:
description: At most 100000; a larger offset is a 400 OperationOutcome.
description: Any integer up to 9007199254740991; a larger offset is a 400 OperationOutcome.
type: number
description: At most 100000; a larger offset is a 400 OperationOutcome.
description: Any integer up to 9007199254740991; a larger offset is a 400 OperationOutcome.
responses:
"200":
description: searchset Bundle (application/fhir+json).
@@ -1312,9 +1312,9 @@ paths:
- in: query
name: _offset
schema:
description: At most 100000; a larger offset is a 400 OperationOutcome.
description: Any integer up to 9007199254740991; a larger offset is a 400 OperationOutcome.
type: number
description: At most 100000; a larger offset is a 400 OperationOutcome.
description: Any integer up to 9007199254740991; a larger offset is a 400 OperationOutcome.
- in: query
name: date
schema:
@@ -1349,9 +1349,9 @@ paths:
- in: query
name: _offset
schema:
description: At most 100000; a larger offset is a 400 OperationOutcome.
description: Any integer up to 9007199254740991; a larger offset is a 400 OperationOutcome.
type: number
description: At most 100000; a larger offset is a 400 OperationOutcome.
description: Any integer up to 9007199254740991; a larger offset is a 400 OperationOutcome.
responses:
"200":
description: searchset Bundle (application/fhir+json).
@@ -1378,9 +1378,9 @@ paths:
- in: query
name: _offset
schema:
description: At most 100000; a larger offset is a 400 OperationOutcome.
description: Any integer up to 9007199254740991; a larger offset is a 400 OperationOutcome.
type: number
description: At most 100000; a larger offset is a 400 OperationOutcome.
description: Any integer up to 9007199254740991; a larger offset is a 400 OperationOutcome.
responses:
"200":
description: searchset Bundle (application/fhir+json).
@@ -1408,9 +1408,9 @@ paths:
- in: query
name: _offset
schema:
description: At most 100000; a larger offset is a 400 OperationOutcome.
description: Any integer up to 9007199254740991; a larger offset is a 400 OperationOutcome.
type: number
description: At most 100000; a larger offset is a 400 OperationOutcome.
description: Any integer up to 9007199254740991; a larger offset is a 400 OperationOutcome.
responses:
"200":
description: searchset Bundle (application/fhir+json).
@@ -1605,9 +1605,9 @@ paths:
- in: query
name: _offset
schema:
description: At most 100000; a larger offset is a 400 OperationOutcome.
description: Any integer up to 9007199254740991; a larger offset is a 400 OperationOutcome.
type: number
description: At most 100000; a larger offset is a 400 OperationOutcome.
description: Any integer up to 9007199254740991; a larger offset is a 400 OperationOutcome.
responses:
"200":
description: searchset Bundle (application/fhir+json).