Prerequisites
Consumer
The consumer system:
- SHALL have previously resolved the organisation’s FHIR endpoint Base URL through the Spine Directory Service
API use case
This specification describes a single use cases. For complete details and background please see the Foundations Capability Bundle.
Security
- GP Connect utilises TLS Mutual Authentication for system level authorization.
- GP Connect utilises a JSON Web Tokens (JWT) to transmit clinical audit & provenance details.
API usage
Request operation
FHIR relative request
GET /Location/[id]
FHIR absolute request
GET https://[proxy_server]/https://[provider_server]/[fhir_base]/Location/[id]
Request headers
Consumers SHALL include the following additional HTTP request headers:
Header | Value |
---|---|
Ssp-TraceID |
Consumer’s TraceID (i.e. GUID/UUID) |
Ssp-From |
Consumer’s ASID |
Ssp-To |
Provider’s ASID |
Ssp-InteractionID |
urn:nhs:names:services:gpconnect:fhir:rest:read:location-1 |
Payload request body
N/A
Error handling
Provider systems SHALL return a GPConnect-OperationOutcome-1 resource that provides additional detail when one or more data fields are corrupt or a specific business rule/constraint is breached.
For example, the:
- Logical identifier of the resource is not valid/can’t be found on the server.
Refer to Development - FHIR API Guidance - Error Handling for details of error codes.
Request response
Response headers
Provider systems are not expected to add any specific headers beyond that described in the HTTP and FHIR® standards.
Payload response body
Provider systems:
- SHALL return a
200
OK HTTP status code on successful execution of the operation. -
SHALL return
Location
resources that conform to the CareConnect-GPC-Location-1 profile. - SHALL populate the following
Location
fields:meta.profile
with the profile URIversionId
with the current version of eachLocation
resource.name
address
where availabletelecom
where availablemanagingOrganization
with a reference to the ‘managing’ organisation. For Locations that are managed by GP practices, see Branch surgeries for more details.
-
SHALL meet General FHIR resource population requirements populating all fields where data is available, excluding those listed below
- SHALL NOT populate the following fields:
endpoint
{
"resourceType": "Location",
"id": "17",
"meta": {
"versionId": "636064088100870233",
"profile": [
"https://fhir.nhs.uk/STU3/StructureDefinition/CareConnect-GPC-Location-1"
]
},
"name": "Trevelyan Surgery",
"address": [
{
"line": [
"Trevelyan Square",
"Boar Ln"
],
"city": "Leeds",
"district": "West Yorkshire",
"postalCode": "LS1 6AE"
}
],
"telecom": [
{
"system": "phone",
"value": "03003035678",
"use": "work"
}
],
"managingOrganization": {
"reference": "Organization/14"
}
}
Examples
C#
var client = new FhirClient("http://gpconnect.aprovider.nhs.net/GP001/STU3/1/");
client.PreferredFormat = ResourceFormat.Json;
var resource = client.Read<Location>("Location/17");
FhirSerializer.SerializeResourceToXml(resource).Dump();
Java
FhirContext ctx = new FhirContext().forStu3();
IGenericClient client = ctx.newRestfulGenericClient("http://gpconnect.aprovider.nhs.net/GP001/STU3/1/");
Location location = client.read().resource(Location.class).withId("17").execute();