Paging

When querying for datasets that begin to exceed the capability of what can be stored or presented on a client, or returned in a network packet for some SLA, etc. the need to break a dataset into small “chunks” occurs. These smaller chunks (ie - pages) require a different way of thinking about the data that involves the creation of special strategies to query for the data. The variation in the strategies is not massive however and there are many elements which can be shared to make the API design and implementation straight forward.

The Directory supports two (2) methods for querying data, either using FHIR defined search parameters, or using Advanced Search. It can only be one or the other, if the Advanced Search Criteria input is specified, all other inputs are ignored. The paging support varies by the method used and are detailed below:

FHIR Search Parameters

Defaults to Continuation Token paging. The following properties apply to page info type when continuation token paging is applied.

type PageInfo { hasNextPage: Boolean continuationToken: String }

Advanced Search

Uses offset/limit paging. The following properties apply to page info type when offset/limit paging is applied.

type PageInfo { hasNextPage: Boolean hasPreviousPage: Boolean startCursor: String endCursor: String totalCount: Int offset: Int /}