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

← Back to Homepage

  1. Background & Use Case
  2. Architecture
  3. Data Model
  1. Data Transfer Mechanisms
  2. Assurance
  3. Help & Support

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:

  1. Mandatory - the data item MUST be recorded in the resource every time it is produced
  2. Required - if the system that is providing the data item contains this piece of data, then it should include it in the resource
  3. 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"
        }
    ]