Use case
Find a patient using NHS number.
Security
- GP Connect utilises TLS Mutual Authentication for system level authorization
- GP Connect utilises JSON Web Tokens (JWT) to transmit clinical audit and provenance details
Prerequisites
Consumer
The consumer system:
- SHALL have previously resolved the organisation’s Access Document FHIR endpoint base URL through the Spine Directory Service
- SHALL have previously traced the patient’s NHS Number using the Personal Demographics Service or an equivalent service
API usage
Resolve (zero or more) Patient resources using a business identifier (that is, NHS Number).
Interaction diagram

Request operation
The consumer system:
-
SHALL populate the
[system]field with a valid patient identifier system URL (that is,https://fhir.nhs.uk/Id/nhs-number) -
SHALL apply percent encoding when constructing the request URL as indicated in RFC 3986 Section 2.1. This will ensure that downstream servers correctly handle the pipe
|character, which must be used in theidentifierparameter value below. -
SHALL only use this Find a Patient interaction in conjunction with other Access Document interactions, and SHALL NOT use it with interactions in other capabilities.
https://fhir.nhs.uk/Id/nhs-number. Other identifier types may result in an error response if the provider does not recognise or support the identifier.FHIR relative request
GET /Patient?identifier=[system]|[value]
FHIR absolute request
GET https://[proxy_server]/https://[documents_provider_server]/[documents_fhir_base]/Patient?identifier=[system]|[value]
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:documents:fhir:rest:search:patient-1 |
Payload request body
N/A
Error handling
The provider system MUST return a GPConnect-OperationOutcome-1 resource that provides additional detail when one or more data field is corrupt or a specific business rule/constraint is breached.
The table below shown common errors that may be encountered during this API call, and the returned Spine error code. Please see Error handling guidance for additional information needed to create the error response or to determine the response for errors encountered that are not shown below.
Errors returned due to query parameter failure MUST include diagnostic information detailing the invalid query parameter.
| Error encountered | Spine error code returned |
|---|---|
The identifier parameter is not provided |
INVALID_PARAMETER |
The identifier parameter contains a missing or unrecognised system |
INVALID_PARAMETER |
| The NHS number provided is invalid, for example it fails format or check digit tests | INVALID_NHS_NUMBER |
| GP Connect is not enabled at the practice (see Enablement) | ACCESS DENIED |
| The Access Document capability is not enabled at the practice (see Enablement) | ACCESS DENIED |
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
200OK HTTP status code on successful execution of the operation - SHALL return zero or more matching
Patientresources in aBundleoftypesearchset -
SHALL only return
Patientresources for active patients with a Regular/GMS registration type (i.e. where this is their registered GP practice)Note: Please note the restriction on returning patient records with a Regular/GMS registration type is a difference in behaviour between this Find a patient and Find a patient in the Foundations capability. -
SHALL return
Patientresources that conform to the CareConnect-GPC-Patient-1 profile - SHALL populate the following
Patientfields:meta.profilewith the profile URIversionIdwith the current version of eachPatientresourceidentifierwith relevant business identifiers, including a minimum of the patient’s NHS Numbername- The patient resource SHALL contain a single instance of the name element with the
useofofficialand SHALL contain the name synchronised with PDS
- The patient resource SHALL contain a single instance of the name element with the
birthDategenderaddresswhere availabletelecomwhere availablecontactwith the patient’s contacts - see Patient.contact population for further detailsregistrationDetails.preferredBranchSurgerywith a reference to aLocationresource representing the patient’s preferred branch surgery (see Branch surgeries for more details)nhsCommunicationwith the patient’s language information, where availablemanagingOrganizationNote: this is the current organisation, as addressed by ODS code in the base URL, and NOT the patient’s registered practice, which may be different
-
SHALL meet General FHIR resource population requirements populating all fields where data is available, excluding those listed below
- SHALL NOT populate the following fields:
ethnicCategoryreligiousAffiliationpatient-cadavericDonorresidentialStatustreatmentCategorybirthPlacemaritalStatusmultipleBirthBoolean
{
"resourceType": "Bundle",
"type": "searchset",
"entry": [
{
"resource": {
"resourceType": "Patient",
"id": "2",
"meta": {
"versionId": "1469448000000",
"profile": [
"https://fhir.nhs.uk/STU3/StructureDefinition/CareConnect-GPC-Patient-1"
]
},
"extension": [
{
"url": "https://fhir.nhs.uk/STU3/StructureDefinition/Extension-CareConnect-GPC-RegistrationDetails-1",
"extension": [
{
"url": "preferredBranchSurgery",
"valueReference": {
"reference": "Location/785b4ff5-aced-4bdf-b7ed-34f92131ce97"
}
}
]
},
{
"url": "https://fhir.nhs.uk/STU3/StructureDefinition/Extension-CareConnect-GPC-NHSCommunication-1",
"extension": [
{
"url": "language",
"valueCodeableConcept": {
"coding": [
{
"system": "https://fhir.nhs.uk/STU3/CodeSystem/CareConnect-HumanLanguage-1",
"code": "bn",
"display": "Bengali"
}
]
}
},
{
"url": "interpreterRequired",
"valueBoolean": false
}
]
}
],
"identifier": [
{
"extension": [
{
"url": "https://fhir.nhs.uk/STU3/StructureDefinition/Extension-CareConnect-GPC-NHSNumberVerificationStatus-1",
"valueCodeableConcept": {
"coding": [
{
"system": "https://fhir.nhs.uk/CareConnect-NHSNumberVerificationStatus-1",
"code": "01",
"display": "Number present and verified"
}
]
}
}
],
"system": "https://fhir.nhs.uk/Id/nhs-number",
"value": "9476719931"
}
],
"active": true,
"name": [
{
"use": "official",
"text": "JACKSON Jane (Miss)",
"family": "Jackson",
"given": [
"Jane"
],
"prefix": [
"Miss"
]
}
],
"telecom": [
{
"system": "phone",
"value": "01454587554",
"use": "home"
}
],
"gender": "female",
"birthDate": "1952-05-31",
"address": [
{
"use": "home",
"type": "physical",
"line": [
"Trevelyan Square",
"Boar Ln"
],
"city": "Leeds",
"district": "West Yorkshire",
"postalCode": "LS1 6AE"
}
],
"managingOrganization": {
"reference": "Organization/14"
}
}
}
]
}