This draft implementation guidance was developed between February and March 2023 as part of the NHS England Virtual Wards Interoperability Discovery. It is provided for information only and is not currently being updated.
If you are not participating in the Discovery, you are advised not to develop against this guidance until a formal announcement has been made. The team can be contacted by emailing england.virtualward.interoperability@nhs.net.
Contents
3.4.2 FHIR UK Core Patient Profile
IMPORTANT - this page is intended as guidance only, solutions must be clinically assured locally within organisations before deployment into a live environment.
Usage
The FHIR patient resource contains demographics and other administrative information about an individual receiving care. The data in the Resource covers the "who" information about the patient: its attributes are focused on the demographic information necessary to support the administrative and logistic procedures.
Structure Definition
https://simplifier.net/HL7FHIRUKCoreR4/UKCorePatient/~json
Optionality Guidance
The population guidance below uses the following definitions for data item optionality:
- Mandatory - the data item MUST be recorded in the resource every time it is produced
- Required - if the system that is providing the data item contains this piece of data, then it should include it in the resource
- Optional - the system has the option to include this data if it is available
Note that the population guidance for this profile does not include all data items available in the resource. As per FHIR guidance, all data items inherited from the base resource can be included and used as appropriate, however only those considered relevant to Supplementary RM Data are covered in this guidance.
Required Elements (for Supplementary RM Data)
A minimum viable content that all provider and consumer systems should support is the following elements.
Element | Optionality |
---|---|
Patient.id | Mandatory |
Patient.meta | Mandatory |
Patient.identifier:nhsNumber | Mandatory |
Patient.name | Required |
Patient.telecom | Optional |
Patient.gender | Required |
Patient.birthDate | Required |
Patient.deceased[x] | Optional - Absence of element assumes patient is alive |
Patient.address | Required |
Patient.contact | Optional |
Further guidance on each element is outlined in the sections below.
Id
FHIR Attribute | DataType | Optionality | Cardinality | Usage | Guidance |
---|---|---|---|---|---|
id | id | Mandatory | 1:1 | A logical identifier generated for this patient resource. | Additional Guidance: Any combination of upper- or lower-case ASCII letters ('A'..'Z', and 'a'..'z', numerals ('0'..'9'), '-' and '.', with a length limit of 64 characters. (This might be an integer, an un-prefixed OID, UUID or any other identifier pattern that meets these constraints.) |
Example
{ "id": "dd9724d1-7b61-44e2-9023-b72e6b966018-76563212455590986546" }
Meta
FHIR Attribute | DataType | Optionality | Cardinality | Usage | Guidance |
---|---|---|---|---|---|
Meta | Element | Mandatory | 1:1 | Metadata about the resource | |
meta.profile | Canonical | Mandatory | 1:1 | To identify the FHIR profile the resource conforms to | Fixed value "https://fhir.hl7.org.uk/StructureDefinition/UKCore-Patient" |
Example
"meta": { "profile": [ "https://fhir.hl7.org.uk/StructureDefinition/UKCore-Patient" ] }
Patient.identifier
FHIR Attribute | DataType | Optionality | Cardinality | Usage | Guidance |
---|---|---|---|---|---|
Patient.identifier | identifier | Mandatory | 1:* | Identifiers for this patient. | The NHS Number must be used as a unique identifier for the patient, and this will be populated in the nhsNumber slice, following the guidance below. Additional local identifiers are optional. |
Patient.identifier:nhsNumber.extension | Extension(CodeableConcept) | Optional | 0:* | Additional field defined by the UK Core implementation to denote the NHS number verification status | If not included then assume not verified |
Patient.identifier:nhsNumber.extension:nhsNumberVerificationStatus | Extension(CodeableConcept) | Optional | 0:1 | NHS number verification status | If not included then assume not verified. Value must be one from the UKCoreNHSNumberVerificationStatus value set. |
Patient.identifier:nhsNumber.system | URI | Mandatory | 1:1 | The namespace for the identifier value | Fixed value - https://fhir.nhs.uk/Id/nhs-number |
Patient.identifier:nhsNumber.value | String | Mandatory | 1:1 | NHS Number for the patient. | Formatting: 10 digit number with no spaces |
Additional Guidance
NHS Numbers SHOULD be verified using the Personal Demographic Service (PDS), before sending Supplementary RM Data. To integrate with PDS to verify NHS numbers, please see the PDS FHIR API specification.
Example
"identifier": [ { "extension": [ { "url": "https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-NHSNumberVerificationStatus", "valueCodeableConcept": { "coding": [ { "system": "https://fhir.hl7.org.uk/CodeSystem/UKCore-NHSNumberVerificationStatus", "code": "number-present-and-verified", "display": "Number present and verified" } ] } } ], "system": "https://fhir.nhs.uk/Id/nhs-number", "value": "9912003890" } ]
Patient.Name
FHIR Attribute | DataType | Optionality | Cardinality | Usage | Guidance |
---|---|---|---|---|---|
Patient.name | HumanName | Required | 0:* | A name associated with the individual. | "Given" and "Family" fields required |
Patient.name.family | String | Required | 0:1 | Family name | Patient's surname |
Patient.name.given | String | Required | 0:* | Given: Given name required | Patient's given names. Includes middle names |
Example
"name": [ { "use": "official", "family": "SMITH", "given": [ "Richard" ] } ]
Patient.telecom
FHIR Attribute | DataType | Optionality | Cardinality | Usage | Guidance |
---|---|---|---|---|---|
Patient.telecom | ContactPoint | Optional | 0:* | A contact detail (e.g. a telephone number or an email address) by which the individual may be contacted. | |
Patient.telecom.value | String | Required (if using) | 0:1 | Contact point details | The actual contact point details, in a form that is meaningful to the designated communication system (i.e. phone number or email address). |
Patient.telecom.use | Code | Optional, but recommended | 0:1 | Identifies the purpose for the contact point. | Value must be one of: home | work | temp | old | mobile (ContactPointUse value set) |
Example
"telecom": [ { "use": "home", "value": "01131231266" } ]
Patient.gender
FHIR Attribute | DataType | Optionality | Cardinality | Usage | Guidance |
---|---|---|---|---|---|
Patient.gender | code | Required | 0:1 | Administrative Gender - the gender that the patient is considered to have for administration and record keeping purposes. | Required terminology binding. Value must be one of: male | female | other | unknown (AdministrativeGender value set) |
Example
"gender": "female"
Patient.birthDate
FHIR Attribute | DataType | Optionality | Cardinality | Usage | Guidance |
---|---|---|---|---|---|
Patient.birthDate | date | Required | 0:1 | The date of birth for the individual | Required for receiving system to perform NHS Number verification. |
Example
"birthDate": "2021-02-11"
Patient.deceased
FHIR Attribute | DataType | Optionality | Cardinality | Usage | Guidance |
---|---|---|---|---|---|
Patient.deceasedBoolean | boolean | Optional | 0:1 | Indicates if the individual is deceased or not. | If there's no value in the instance, it means there is no statement on whether or not the individual is deceased. The absence of a value assumes the patient is alive. Only one instance of the boolean or dateTime is required. |
Patient.deceasedDateTime | dateTime | Optional | 0:1 | Indicates if the individual is deceased or not. | If there's no value in the instance, it means there is no statement on whether or not the individual is deceased. The absence of a value assumes the patient is alive. Only one instance of the boolean or dateTime is required. |
Example
{ "deceasedBoolean": "true", "deceasedDateTime": "2010-10-22T00:00:00+00:00" }
Patient.address
FHIR Attribute | DataType | Optionality | Cardinality | Usage | Guidance |
---|---|---|---|---|---|
Patient.address | address | Required | 0:1 | Address for an individual | |
Patient.address.use | code | Optional but recommended | 0:1 | The purpose of this address. Allows an appropriate address to be chosen from a list of many. | Value must be one of: home | work | temp | old | billing (AddressUse value set) |
Patient.address.type | code | Optional but recommended | 0:1 | Distinguishes between physical addresses (those you can visit) and mailing addresses (e.g. PO Boxes and care-of addresses). Most addresses are both. | Value must be one of: postal | physical | both (AddressType value set) | Patient.address.line | string | Optional but recommended | 0:* | Street name, number, direction & P.O. Box etc. |
Patient.address.city | string | Optional but recommended | 0:1 | Name of city, town etc. | |
Patient.address.postalcode | string | Required | 1:1 | Postal Code for area | Required for receiving system to perform NHS Number verification. |
Patient.address.period | Period | Recommended if multiple addresses are included | 0:1 | Time period when address was/is in use | Uses Period.start and Period.end in date time format |
Example
"address": [ { "use": "home", "type": "both", "line": [ "22 Brightside Crescent" ], "city": "Overtown", "district": "West Yorkshire", "postalCode": "LS10 4YU" } ]
Patient.contact
FHIR Attribute | DataType | Optionality | Cardinality | Usage | Guidance |
---|---|---|---|---|---|
Patient.contact | BackBone Element | Optional | 0:* | A contact party (e.g. guardian, partner, friend) for the patient | |
Patient.contact.relationship | CodeableConcept | Required (if using) | 0:* | The nature of the relationship between the patient and the contact person. | |
Patient.contact.name | HumanName | Required (if using) | 0:* | A name associated with the contact person | |
Patient.contact.telecom | ContactPoint | Required (if using) | 0:* | A contact detail for the person (e.g. phone or email) | |
Patient.contact.telecom.value | String | Required (if telecom included) | 0:1 | The actual contact point details | |
Patient.contact.telecom.use | Code | Optional (recommended) | 0:1 | Identifies the purpose for the contact point. | Value must be one of: home | work | temp | old | mobile (ContactPointUse value set) |
Patient.contact.address | Address | Optional (Required if using) | 0:1 | Address for the contact person | |
Patient.contact.gender | Code | Optional (Required if using) | 0:1 | Administrative Gender - the gender that the contact person is considered to have for administration and record keeping purposes. | Required terminology binding. Value must be one of: male | female | other | unknown (AdministrativeGender value set) |
Example
"contact": [ { "relationship": [ { "coding": [ { "system": "https://fhir.hl7.org.uk/CodeSystem/UKCore-AdditionalPersonRelationshipRole", "code": "Personal", "display": "Personal relationship with the patient" } ] } ], "name": { "use": "official", "text": "JACKSON Jane (Miss)", "family": "Jackson", "given": [ "Jane" ], "prefix": [ "Miss" ] }, "telecom": [ { "system": "phone", "value": "07777123123", "use": "mobile" } ], "address": { "use": "home", "type": "physical", "line": [ "5 Alwoodley Road", "LEEDS" ], "postalCode": "LS17 6EH" }, "gender": "female" } ]