Encounter
Overview
The Encounter API can be used to interact with Encounter records for a patient. When querying for data it must always be in the context of a single patient.
- Retrieving or searching for
Encounterrecords is performed using a HTTP GET described below.
GET API - Encounter Retrieval
id and _id
The Encounter resource can be retrieved directly if the id of the resource is known. By appending the id to the url will cause the Encounter resource to be retrieved. Unlike all other retrieval queries, the response will be a single resource as opposed to a Bundle.
GET /Encounter/[id]
An alternate method for retrieval is to make use of the _id search parameter. In this case, the result will be a Bundle. If the id is present the Bundle will contain a single Encounter resource, otherwise, the Bundle will be empty.
GET /Encounter?_id=[id]
Query Parameters
Unless retrieving a Encounter resource by the use of id the subject must always be present. The Encounter can only be targeted against a single patient at any one time.
Patient
GET /Encounter?patient=[value]
GET /Encounter?patient.identifier=[system]|[value]
When searching for NHS Numbers use the system https://fhir.nhs.uk/Id/nhs-number. For example:
GET /Encounter?patient.identifier=https://fhir.nhs.uk/Id/nhs-number|1234567890
All the search examples shown below will accept the patient parameter in either form.
Date
To search on the date an Encounter took place the following search constructs can be used.
GET /Encounter?patient=[value]&date=[value]
To improve searching the API supports the use of search modifiers. The modifiers supported for date are as below:
| Modifier | Description |
|---|---|
| lt | Returns dates less than the search term |
| le | Returns dates less than or equal to the search term |
| gt | Returns dates greater than the search term |
| ge | Returns dates greater than or equal to the search term |
| eq | Returns dates equal to the search term |
GET /Encounter?patient=[value]&date=lt[value]
GET /Encounter?patient=[value]&date=le[value]
GET /Encounter?patient=[value]&date=gt[value]
GET /Encounter?patient=[value]&date=ge[value]
GET /Encounter?patient=[value]&date=eq[value]
So to search for a Encounter performed on 23rd January 2021 the query would be:
GET /Encounter?patient=[value]&date=2021-01-23
To search for all Encounter performed before the 23rd December 2020 the query would be:
GET /Encounter?patient=[value]&date=lt2020-12-23
Identifier
To search for an Encounter using an identifier on the Encounter record, the following search constructs can be used.
GET /Encounter?patient=[value]&identifier=[system]|[code]
For example:
GET /Encounter?patient=[value]&identifier=http://acme.org/Encounterdata|21323-123213
Class
To search for Encounter categorised by class, the following search constructs can be used.
GET /Encounter?patient=[value]&class=[code]
GET /Encounter?patient=[value]&class=[system]|[code]
It is also possible to construct a search using text.
GET /Encounter?patient=[value]&class:text=[value]
Type
To search for Encounter categorised by type, the following search constructs can be used.
GET /Encounter?patient=[value]&type=[code]
GET /Encounter?patient=[value]&type=[system]|[code]
It is also possible to construct a search using text.
GET /Encounter?patient=[value]&type:text=[value]
Status
The search for Encounter by status the following construct can be used.
GET /Encounter?patient=[value]&status=[value]
_lastUpdated
To retrieve Encounter based on the last updated date of the record.
GET /Encounter?patient=[value]&_lastUpdated=[value]
To improve searching the API supports the use of search modifiers. The modifiers supported for date are as below:
| Modifier | Description |
|---|---|
| lt | Returns dates less than the search term |
| le | Returns dates less than or equal to the search term |
| gt | Returns dates greater than the search term |
| ge | Returns dates greater than or equal to the search term |
| eq | Returns dates equal to the search term |
GET /Encounter?patient=[value]&_lastUpdated=lt[value]
GET /Encounter?patient=[value]&_lastUpdated=le[value]
GET /Encounter?patient=[value]&_lastUpdated=gt[value]
GET /Encounter?patient=[value]&_lastUpdated=ge[value]
GET /Encounter?patient=[value]&_lastUpdated=eq[value]
So to search for an Encounter last updated on 23rd January 2021 the query would be:
GET /Encounter?patient=[value]&_lastUpdated=2021-01-23
To search for all Encounters last updated before the 23rd December 2020 the query would be:
GET /Encounter?patient=[value]&_lastUpdated=lt2020-12-23
_summary
Adding the _summary=count query parameter will change the behaviour of the query to return just the count of records, rather than the records themselves.
GET /Encounter?patient=[value]&_summary=count
This will return a response like:
{
"resourceType": "Bundle",
"type": "searchset",
"total": 15,
"id": "df23fd8b-d30c-47c6-a2bd-64c8a24b1166"
}
This can be added to any query construct.
_format
The API supports both XML and JSON formats. The default format is JSON. The format can be requested either using HTTP headers or via the use of the _format query parameter as per the following table.
| Format Value | API Response Format |
|---|---|
| xml | XML |
| text/xml | XML |
| application/xml | XML |
| application/fhir+xml | XML |
| json | JSON |
| application/json | JSON |
| application/fhir+json | JSON |
GET /Encounter?patient=[value]&_format=[format value]
For example the query below would return a response in XML format.
GET /Encounter?patient=[value]&_format=xml
This can be added to any query construct.
Sort Parameters
The default sort order for Encounter records is in descending date order (i.e. most current first).
The following sort parameters are also available.
Date
GET /Encounter?_sort=date
GET /Encounter?_sort=-date
Paging
_count
The parameter _count is defined as a hint to the server regarding how many resources should be returned in a single page.
GET /Encounter?patient=[value]&status=[code]&_count=[n]
For example the query below would return a Bundle with 5 records per page.
GET /Encounter?patient=[value]&status=[code]&_count=5