NHS England FHIR Implementation Guide (deprecated)

Important Announcement regarding this Implementation Guide
  • As of 04/10/2023, this implementation guide has been deprecated and all development on the legacy NHS England FHIR Implementation Guide assets has ceased.
  • Therefore, vendors looking to start new implementations or looking to update existing implementations should use the new NHS England Implementation Guide. Vendors continuing to implement legacy NHS England FHIR Implementation Guide based solutions do so at their own risk and on the understanding that no maintenance or support will be available.

Profiles

SDS-Device

Conformance url
https://fhir.nhs.uk/StructureDefinition/SDS-Device




with Device

managingOrganisationS I1..1Extension(Reference())
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uriFixed Value
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(Organization)
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uriFixed Value
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(Organization)
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uriFixed Value
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(Organization)
definitionI0..1Reference(DeviceDefinition)
deviceIdentifierΣ0..1string
issuer0..1uri
jurisdiction0..1uri
carrierAIDCΣ0..1base64Binary
carrierHRFΣ0..1string
entryType0..1codeBinding
statusΣ ?!0..1codeBinding
statusReason0..*CodeableConceptBinding
distinctIdentifier0..1string
manufacturer0..1string
manufactureDate0..1dateTime
expirationDate0..1dateTime
lotNumber0..1string
serialNumber0..1string
name1..1string
type1..1codeBinding
modelNumber0..1string
partNumber0..1string
type0..1CodeableConcept
systemType1..1CodeableConcept
version0..1string
type0..1CodeableConcept
component0..1Identifier
value1..1string
type1..1CodeableConcept
valueQuantityI0..*Quantity
valueCode0..*CodeableConcept
patientI0..1Reference(Patient)
ownerS I1..1Reference(Organization)
contactI0..*ContactPoint
locationI0..1Reference(Location)
url0..1uri
note0..*Annotation
safetyΣ0..*CodeableConcept
parentI0..1Reference(Device)

from Device

managingOrganisationS I1..1Extension(Reference())
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uriFixed Value
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(Organization)
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uriFixed Value
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(Organization)
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uriFixed Value
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(Organization)
definitionI0..1Reference(DeviceDefinition)
deviceIdentifierΣ0..1string
issuer0..1uri
jurisdiction0..1uri
carrierAIDCΣ0..1base64Binary
carrierHRFΣ0..1string
entryType0..1codeBinding
statusΣ ?!0..1codeBinding
statusReason0..*CodeableConceptBinding
distinctIdentifier0..1string
manufacturer0..1string
manufactureDate0..1dateTime
expirationDate0..1dateTime
lotNumber0..1string
serialNumber0..1string
name1..1string
type1..1codeBinding
modelNumber0..1string
partNumber0..1string
type0..1CodeableConcept
systemType1..1CodeableConcept
version0..1string
type0..1CodeableConcept
component0..1Identifier
value1..1string
type1..1CodeableConcept
valueQuantityI0..*Quantity
valueCode0..*CodeableConcept
patientI0..1Reference(Patient)
ownerS I1..1Reference(Organization)
contactI0..*ContactPoint
locationI0..1Reference(Location)
url0..1uri
note0..*Annotation
safetyΣ0..*CodeableConcept
parentI0..1Reference(Device)

SDS-Endpoint

Conformance url
https://fhir.nhs.uk/StructureDefinition/SDS-Endpoint


with Endpoint

ExtensionSDSReliabilityConfigurationS I0..1Extension(Complex)
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uriFixed Value
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(Organization)
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uriFixed Value
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(Organization)
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uriFixed Value
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(Organization)
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uriFixed Value
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(Organization)
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uriFixed Value
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(Organization)
statusS Σ ?!1..1codeBinding
connectionTypeS Σ1..1CodingBinding
nameΣ0..1string
managingOrganizationS Σ I1..1Reference(Organization)
contactI0..*ContactPoint
periodΣ I0..1Period
systemΣ1..1uriFixed Value
versionΣ0..1string
codeΣ1..1codeFixed Value
displayΣ1..1stringFixed Value
userSelectedΣ0..1boolean
textΣ0..1string
payloadMimeTypeΣ0..*codeBinding
addressS Σ1..1url
header0..*string

from Endpoint

ExtensionSDSReliabilityConfigurationS I0..1Extension(Complex)
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uriFixed Value
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(Organization)
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uriFixed Value
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(Organization)
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uriFixed Value
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(Organization)
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uriFixed Value
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(Organization)
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uriFixed Value
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(Organization)
statusS Σ ?!1..1codeBinding
connectionTypeS Σ1..1CodingBinding
nameΣ0..1string
managingOrganizationS Σ I1..1Reference(Organization)
contactI0..*ContactPoint
periodΣ I0..1Period
systemΣ1..1uriFixed Value
versionΣ0..1string
codeΣ1..1codeFixed Value
displayΣ1..1stringFixed Value
userSelectedΣ0..1boolean
textΣ0..1string
payloadMimeTypeΣ0..*codeBinding
addressS Σ1..1url
header0..*string

Spine-OperationOutcome

See NHSDigital-OperationOutcome

NHSDigital-CapabilityStatement

Conformance url FHIR Module Maturity Level
https://fhir.nhs.uk/StructureDefinition/NHSDigital-CapabilityStatement Implementation Support draft

Conformance Rules



with CapabilityStatement

PackageS I0..1Extension(Complex)
urlΣ0..1uri
versionΣ0..1string
nameΣ I0..1string
titleΣ0..1string
statusS Σ ?!1..1codeBinding
experimentalΣ0..1boolean
dateΣ1..1dateTime
publisherΣ1..1string
contactΣ0..*ContactDetail
descriptionI0..1markdown
useContextΣ0..*UsageContext
jurisdictionΣ0..*CodeableConceptBinding
purpose0..1markdown
copyright0..1markdown
kindS Σ I1..1codeBinding
instantiatesΣ0..*canonical(CapabilityStatement)
importsΣ0..*canonical(CapabilityStatement)
nameΣ1..1string
versionΣ0..1string
releaseDateΣ0..1dateTime
descriptionΣ1..1string
urlΣ0..1url
custodianΣ I0..1Reference(Organization)
fhirVersionS Σ1..1codeBinding
formatΣ1..*codeBinding
patchFormatΣ0..*codeBinding
implementationGuideS Σ0..*canonical(ImplementationGuide)
modeΣ1..1codeBinding
documentation0..1markdown
oauthUrisS I0..1Extension(Complex)
corsΣ0..1boolean
serviceΣ0..*CodeableConceptBinding
description0..1markdown
searchParameterCombinationI0..*Extension(Complex)
typeΣ1..1codeBinding
profileΣ1..1canonical(StructureDefinition)
supportedProfileΣ0..*canonical(StructureDefinition)
documentation0..1markdown
ExamplesI0..1Extension(Complex)
code1..1codeBinding
documentation0..1markdown
versioning0..1codeBinding
readHistory0..1boolean
updateCreate0..1boolean
conditionalCreate0..1boolean
conditionalRead0..1codeBinding
conditionalUpdate0..1boolean
conditionalDelete0..1codeBinding
referencePolicy0..*codeBinding
searchInclude0..*string
searchRevInclude0..*string
name1..1string
definition0..1canonical(SearchParameter)
type1..1codeBinding
documentation0..1markdown
nameΣ1..1string
definitionΣ1..1canonical(OperationDefinition)
documentation0..1markdown
code1..1codeBinding
documentation0..1markdown
searchParam0..*see (searchParam)
operationΣ0..*see (operation)
compartment0..*canonical(CompartmentDefinition)
protocol1..1CodingBinding
address1..1url
reliableCache0..1unsignedInt
documentation0..1markdown
ExamplesI0..*Extension(Complex)
modeΣ1..1codeBinding
definitionΣ1..1canonical(MessageDefinition)
modeΣ1..1codeBinding
documentation0..1markdown
profileΣ1..1canonical(StructureDefinition)

from CapabilityStatement

PackageS I0..1Extension(Complex)
urlΣ0..1uri
versionΣ0..1string
nameΣ I0..1string
titleΣ0..1string
statusS Σ ?!1..1codeBinding
experimentalΣ0..1boolean
dateΣ1..1dateTime
publisherΣ1..1string
contactΣ0..*ContactDetail
descriptionI0..1markdown
useContextΣ0..*UsageContext
jurisdictionΣ0..*CodeableConceptBinding
purpose0..1markdown
copyright0..1markdown
kindS Σ I1..1codeBinding
instantiatesΣ0..*canonical(CapabilityStatement)
importsΣ0..*canonical(CapabilityStatement)
nameΣ1..1string
versionΣ0..1string
releaseDateΣ0..1dateTime
descriptionΣ1..1string
urlΣ0..1url
custodianΣ I0..1Reference(Organization)
fhirVersionS Σ1..1codeBinding
formatΣ1..*codeBinding
patchFormatΣ0..*codeBinding
implementationGuideS Σ0..*canonical(ImplementationGuide)
modeΣ1..1codeBinding
documentation0..1markdown
oauthUrisS I0..1Extension(Complex)
corsΣ0..1boolean
serviceΣ0..*CodeableConceptBinding
description0..1markdown
searchParameterCombinationI0..*Extension(Complex)
typeΣ1..1codeBinding
profileΣ1..1canonical(StructureDefinition)
supportedProfileΣ0..*canonical(StructureDefinition)
documentation0..1markdown
ExamplesI0..1Extension(Complex)
code1..1codeBinding
documentation0..1markdown
versioning0..1codeBinding
readHistory0..1boolean
updateCreate0..1boolean
conditionalCreate0..1boolean
conditionalRead0..1codeBinding
conditionalUpdate0..1boolean
conditionalDelete0..1codeBinding
referencePolicy0..*codeBinding
searchInclude0..*string
searchRevInclude0..*string
name1..1string
definition0..1canonical(SearchParameter)
type1..1codeBinding
documentation0..1markdown
nameΣ1..1string
definitionΣ1..1canonical(OperationDefinition)
documentation0..1markdown
code1..1codeBinding
documentation0..1markdown
searchParam0..*see (searchParam)
operationΣ0..*see (operation)
compartment0..*canonical(CompartmentDefinition)
protocol1..1CodingBinding
address1..1url
reliableCache0..1unsignedInt
documentation0..1markdown
ExamplesI0..*Extension(Complex)
modeΣ1..1codeBinding
definitionΣ1..1canonical(MessageDefinition)
modeΣ1..1codeBinding
documentation0..1markdown
profileΣ1..1canonical(StructureDefinition)


apiDefinition (extension)

Links to the API documentation MUST be provided.

{
    "url": "https://fhir.nhs.uk/StructureDefinition/Extension-NHSDigital-APIDefinition",
    "extension": [
        {
            "url": "openApi",
            "extension": [
            {
                "url": "documentation",
                "valueUri": "https://digital.nhs.uk/developer/api-catalogue/electronic-prescription-service-fhir"
            },{
                "url": "description",
                "valueString": "Access the Electronic Prescription Service (EPS) - the national service used to send electronic prescriptions from GP surgeries to pharmacies."
            },
        }
    ]
}

A list of Implementation Guide packages used with this API MUST be provided.

Although the UKCore.R4 version can be derived from the uk.nhsdigital.r4 package information, it MUST be provided. This applies to all derived or supplemental packages.

{
    "url": "https://fhir.nhs.uk/StructureDefinition/Extension-NHSDigital-APIDefinition",
    "extension": [
        {
            "url": "implementationGuide",
            "extension": [
                {
                    "url": "name",
                    "valueString": "uk.nhsdigital.r4"
                },{
                    "url": "version",
                    "valueString": "2.1.34-discovery"
                }
            ]
        },
        {
            "url": "implementationGuide",
            "extension": [
                {
                    "url": "name",
                    "valueString": "UKCore.R4.02.00.00"
                },{
                    "url": "version",
                    "valueString": "2.0.0"
                }
            ]
        }
    ]
}

status

"status": "active"

kind

For APIM FHIR endpoints this MUST be instance

"kind": "instance"

software

For APIM FHIR endpoints this is the API Name and verson of the API.

"software": {
    "name": "EPS NextGen",
    "version": "1.2.4-alpha",
    "releaseDate": "2021-07-21T00:00:00+00:00"
}

fhirVersion

For APIM FHIR R4 endpoints this MUST be 4.0.1

"fhirVersion": "4.0.1"

format

MUST be provided. This is populated according to serialisation policies. Serialisation

"format":  [
    "application/fhir+json",
    "application/fhir+xml"
]

implementationGuide

List of FHIR Implementation Guides followed by the API. For NHS Digital APIM endpoints this MUST include:

"implementationGuide":  [
        "https://simplifier.net/guide/nhsdigital"
    ],

rest

This is required for all APIM FHIR endpoints.

rest.security

Only populated if the endpoint is secured using APIM Apigee security.

SHOULD include the url of the OAuth2/Apigee endpoint. Add extension http://fhir-registry.smarthealthit.org/StructureDefinition/oauth-uris to profile.

"security": {
    "extension": [
        {
            "url": "http://fhir-registry.smarthealthit.org/StructureDefinition/oauth-uris",
            "extension": [{
             "url": "token",
                "valueUri": "https://oauth2.nhs.uk/token"
            },{
                "url": "authorize",
                "valueUri": "https://oauth2.nhs.uk/authorize"
            },{
                "url": "manage",
                "valueUri": "https://oauth2.nhs.uk/authorizations/manage"
            }]
        }
    ]
}

For APIM FHIR endpoints this should be populated as follows:

"security": {
    "service":  [
        {
            "coding":  [
                {
                    "system": "http://terminology.hl7.org/CodeSystem/restful-security-service",
                    "code": "OAuth",
                    "display": "OAuth2 Token"
                }
            ]
        }
    ]
}

rest.resource

All the resources supported by the endpoint MUST be listed together with the FHIR profile they conform to. This applies to all FHIR Exchange methods.

"resource":  [
    {
        "type": "CommunicationRequest",
        "profile": "https://fhir.nhs.uk/StructureDefinition/NHSDigital-CommunicationRequest"
    }
]

messaging

MUST be populated if FHIR Messaging is used. This MUST list all the FHIR MessageDefinitions the endpoint supports.

"messaging":  [
    {
        "supportedMessage":  [
            {
                "mode": "receiver",
                "definition": "https://fhir.nhs.uk/MessageDefinition/prescription-order"
            },
            {
                "mode": "receiver",
                "definition": "https://fhir.nhs.uk/MessageDefinition/dispense-notification"
            }
        ]
    }
]

NHSDigital-CommunicationRequest

Conformance url FHIR Module Maturity Level
https://fhir.nhs.uk/StructureDefinition/NHSDigital-CommunicationRequest} trial-use




identifierΣ0..*Identifier
basedOnΣ I0..*Reference(Resource)
replacesΣ I0..*Reference(CommunicationRequest)
groupIdentifierΣ0..1Identifier
statusS Σ ?!1..1codeBinding
statusReason0..1CodeableConcept
category0..*CodeableConcept
priorityΣ0..1codeBinding
doNotPerformΣ ?!0..1boolean
medium0..*CodeableConceptBinding
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uri
valueΣ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(Organization)
displayΣ0..1string
aboutI0..*Reference(Resource)
encounterΣ I0..1Reference(Encounter)
deviceContentI0..1Extension(Complex)
contentStringstring
contentAttachmentAttachment
contentReferenceReference(Resource)
occurrenceDateTimedateTime
occurrencePeriodPeriod
authoredOnΣ0..1dateTime
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uri
valueΣ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(Organization)
displayΣ0..1string
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uri
valueΣ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(Organization)
displayΣ0..1string
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uri
valueΣ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(Organization)
displayΣ0..1string
systemΣ1..1uri
versionΣ0..1string
codeΣ1..1code
displayΣ1..1string
userSelectedΣ0..1boolean
textΣ0..1string
reasonReferenceΣ I0..*Reference(Condition | Observation | DiagnosticReport | DocumentReference)
note0..*Annotation

identifierΣ0..*Identifier
basedOnΣ I0..*Reference(Resource)
replacesΣ I0..*Reference(CommunicationRequest)
groupIdentifierΣ0..1Identifier
statusS Σ ?!1..1codeBinding
statusReason0..1CodeableConcept
category0..*CodeableConcept
priorityΣ0..1codeBinding
doNotPerformΣ ?!0..1boolean
medium0..*CodeableConceptBinding
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uri
valueΣ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(Organization)
displayΣ0..1string
aboutI0..*Reference(Resource)
encounterΣ I0..1Reference(Encounter)
deviceContentI0..1Extension(Complex)
contentStringstring
contentAttachmentAttachment
contentReferenceReference(Resource)
occurrenceDateTimedateTime
occurrencePeriodPeriod
authoredOnΣ0..1dateTime
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uri
valueΣ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(Organization)
displayΣ0..1string
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uri
valueΣ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(Organization)
displayΣ0..1string
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uri
valueΣ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(Organization)
displayΣ0..1string
systemΣ1..1uri
versionΣ0..1string
codeΣ1..1code
displayΣ1..1string
userSelectedΣ0..1boolean
textΣ0..1string
reasonReferenceΣ I0..*Reference(Condition | Observation | DiagnosticReport | DocumentReference)
note0..*Annotation



Definition

A request to convey information; e.g. the CDS system proposes that an alert be sent to a responsible provider, the CDS system proposes that the public health agency be notified about a reportable condition.

status

Element Id CommunicationRequest.status
Cardinality 1..1
Terminology Binding RequestStatus (Required)
The status of the communication request.
type code

Definition

The status of the proposal or order.

subject

Element Id CommunicationRequest.subject
Cardinality 0..1
type Reference(NHSDigitalPatient)

Definition

The patient or group that is the focus of this communication request.

"subject": {
        "type": "Patient",
        "identifier": {
            "system": "https://fhir.nhs.uk/Id/nhs-number",
            "value": "9453740519"
        }
    }

Constraints

  • patient-reference (WARNING) subject - An identifier reference or resource reference must be provided
  • patient-nhs (ERROR) Supplied NHS Number is outside the English and Welsh NHS Number range or length of the number is wrong.

payload

Element Id CommunicationRequest.payload
Cardinality 1..*
type BackboneElement

Definition

NHSApp

In App Messages

NHSApp supports a subset of Markdown for in-app messages, please see API documentation for more details. Only contentString is supported.

  
    "payload":  [
        {
            "contentString": "You have a new appointment, please confirm you can attend. Open the Onboarded Third Party appointment [here](https://www.nhsapp.service.nhs.uk/appointments/hospital-appointments)"
        }
    ]

Push Notifications

Only contentReference is supported and this should contain the URL to a page within the NHS App to be opened when the notification is tapped. If this property is not specified, the App will open on the home screen.

  
    "payload":  [
        {
            "contentReference": {
                "reference": "https://www.nhsapp.service.nhs.uk/patient/messages/app-messaging",
                "display": "You have a new message. The message may contain something important."
            }
        }
    ],

EPS

CommunicationRequest is used in Electronic Prescription Service (EPS) to convey patient specific information. This includes:

  • patient information - messages to the patient
  • medications - list of authorised repeat medications which is contained on a FHIR List resource, details and example list of repeat medications can be found in profile UKCore-List

These would be traditionally printed on the right hand side of the FP10 stationery.

CommunicationRequest should not contain Clinical information regarding the prescriptions, these should be conveyed in the MedicationRequest resource.


    "payload":  [
        {
            "contentString": "Please make an appointment to see your GP. Review date due"
        },
        {
            "contentReference": {
                "reference": "urn:uuid:d0f003a0-8763-43d5-a264-ce52a38901c9",
                "display": "List of Repeat Medications for re-ordering"
            }
        }
    ],

Comment

The payload will consist of message to the Patient and/or a reference to a list of active repeat medications.

requester

Element Id CommunicationRequest.requester
Cardinality 1..1
type Reference(NHSDigitalPatient NHSDigitalPractitionerRole NHSDigitalOrganization)

Definition

The person/organisation making the communication request. This SHOULD use reference identifiers.


    "requester": {
        "type": "Organization",
        "identifier": {
            "system": "https://fhir.nhs.uk/Id/ods-organization-code",
            "value": "RBA"
        },
        "display": "TAUNTON AND SOMERSET NHS FOUNDATION TRUST"
    },

recipient

Element Id CommunicationRequest.recipient
Cardinality 1..*
type Reference(Group CareTeam NHSDigitalOrganization NHSDigitalPatient NHSDigitalPractitioner NHSDigitalPractitionerRole NHSDigitalHealthcareService)

Definition

The persons/organisations who will receive the communication request. This SHOULD use reference identifiers.


    "recipient":  [
        {
            "type": "Patient",
            "identifier": {
                "system": "https://fhir.nhs.uk/Id/nhs-number",
                "value": "9453740519"
            }
        }
    ]

NHSDigital-HealthcareService

Conformance url FHIR Module Maturity Level
https://fhir.nhs.uk/StructureDefinition/NHSDigital-HealthcareService Administration trial-use

The HealthcareService resource is used to describe a single healthcare service or category of services that are provided by an organization at a location. The location of the services could be virtual, as with telemedicine services.



useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uriFixed Value
valueΣ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uriFixed Value
valueΣ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
activeΣ ?!0..1boolean
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uriFixed Value
valueΣ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
categoryΣ0..*CodeableConcept
systemΣ0..1uriFixed Value
versionΣ0..1string
codeΣ0..1code
displayΣ0..1string
userSelectedΣ0..1boolean
systemΣ0..1uriFixed Value
versionΣ0..1string
codeΣ0..1code
displayΣ0..1string
userSelectedΣ0..1boolean
textΣ0..1string
systemΣ1..1uri
versionΣ0..1string
codeΣ1..1code
displayΣ0..1string
userSelectedΣ0..1boolean
systemΣ0..1uriFixed Value
versionΣ0..1string
codeΣ0..1code
displayΣ0..1string
userSelectedΣ0..1boolean
systemΣ0..1uriFixed Value
versionΣ0..1string
codeΣ0..1code
displayΣ0..1string
userSelectedΣ0..1boolean
systemΣ0..1uriFixed Value
versionΣ0..1string
codeΣ0..1code
displayΣ0..1string
userSelectedΣ0..1boolean
textΣ0..1string
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uriFixed Value
valueΣ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
nameS Σ1..1string
commentΣ0..1string
extraDetails0..1markdown
photoΣ I0..1Attachment
systemΣ I0..1codeBinding
valueΣ1..1string
useΣ ?!1..1codeBinding
rankΣ0..1positiveInt
periodΣ I0..1Period
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
systemΣ0..1uriFixed Value
versionΣ0..1string
codeΣ0..1code
displayΣ0..1string
userSelectedΣ0..1boolean
textΣ0..1string
code0..1CodeableConcept
comment0..1markdown
program0..*CodeableConcept
characteristic0..*CodeableConcept
communication0..*CodeableConceptBinding
referralMethod0..*CodeableConcept
appointmentRequired0..1boolean
daysOfWeek0..*codeBinding
allDay0..1boolean
availableStartTime0..1time
availableEndTime0..1time
description1..1string
duringI0..1Period
availabilityExceptions0..1string
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uri
valueΣ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uriFixed Value
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uriFixed Value
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string

useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uriFixed Value
valueΣ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uriFixed Value
valueΣ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
activeΣ ?!0..1boolean
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uriFixed Value
valueΣ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
categoryΣ0..*CodeableConcept
systemΣ0..1uriFixed Value
versionΣ0..1string
codeΣ0..1code
displayΣ0..1string
userSelectedΣ0..1boolean
systemΣ0..1uriFixed Value
versionΣ0..1string
codeΣ0..1code
displayΣ0..1string
userSelectedΣ0..1boolean
textΣ0..1string
systemΣ1..1uri
versionΣ0..1string
codeΣ1..1code
displayΣ0..1string
userSelectedΣ0..1boolean
systemΣ0..1uriFixed Value
versionΣ0..1string
codeΣ0..1code
displayΣ0..1string
userSelectedΣ0..1boolean
systemΣ0..1uriFixed Value
versionΣ0..1string
codeΣ0..1code
displayΣ0..1string
userSelectedΣ0..1boolean
systemΣ0..1uriFixed Value
versionΣ0..1string
codeΣ0..1code
displayΣ0..1string
userSelectedΣ0..1boolean
textΣ0..1string
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uriFixed Value
valueΣ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
nameS Σ1..1string
commentΣ0..1string
extraDetails0..1markdown
photoΣ I0..1Attachment
systemΣ I0..1codeBinding
valueΣ1..1string
useΣ ?!1..1codeBinding
rankΣ0..1positiveInt
periodΣ I0..1Period
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
systemΣ0..1uriFixed Value
versionΣ0..1string
codeΣ0..1code
displayΣ0..1string
userSelectedΣ0..1boolean
textΣ0..1string
code0..1CodeableConcept
comment0..1markdown
program0..*CodeableConcept
characteristic0..*CodeableConcept
communication0..*CodeableConceptBinding
referralMethod0..*CodeableConcept
appointmentRequired0..1boolean
daysOfWeek0..*codeBinding
allDay0..1boolean
availableStartTime0..1time
availableEndTime0..1time
description1..1string
duringI0..1Period
availabilityExceptions0..1string
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uri
valueΣ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uriFixed Value
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uriFixed Value
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string

keyhumanseverityexpression
nhsd-8location - An identifier reference or resource reference must be providederror(reference.exists() or identifier.exists())

Constraint Profiles

nameprofilepurpose
ERSHealthcareServicehttps://fhir.nhs.uk/StructureDefinition/eRS-HealthcareService

This profile is used to describe a single healthcare service or category of services that are provided by an organization at a location, including a virtual location.

NHSDigitalHealthcareServicePatientCarehttps://fhir.nhs.uk/StructureDefinition/NHSDigital-HealthcareService-PatientCare

Profile on NHSDigital-HealthcareService for NHS App/e-RS PatientCare



Definition

The details of a healthcare service available at a location.

identifier

Element Id HealthcareService.identifier
Cardinality 1..*
Slicing OPEN discriminator - VALUE system
type Identifier

Definition

SHOULD contain the service identifier e.g. the serviceId from Directory of Service or e-RS Directory Services

MAY contain an ANANA/ODS code.

"identifier": [
          {
            "use": "official",
            "system": "https://fhir.nhs.uk/Id/ers-service",
            "value": "11021"
          }
        ]

Comment

MUST contain an ANANA/ODS code.

identifier:ersServiceId

Element Id HealthcareService.identifier:ersServiceId
Cardinality 0..1
Slice Name ersServiceId
type Identifier

Definition

External identifiers for this item.

identifier:ersServiceId.system

Element Id HealthcareService.identifier:ersServiceId.system
Cardinality 1..1
Fixed Value https://fhir.nhs.uk/Id/ers-service
type uri

Definition

Establishes the namespace for the value - that is, a URL that describes a set values that are unique.

Requirements

There are many sets of identifiers. To perform matching of two identifiers, we need to know what set we're dealing with. The system identifies a particular set of unique identifiers.

Comment

Identifier.system is always case sensitive.

identifier:dosServiceId

Element Id HealthcareService.identifier:dosServiceId
Cardinality 0..1
Slice Name dosServiceId
type Identifier

Definition

External identifiers for this item.

identifier:dosServiceId.system

Element Id HealthcareService.identifier:dosServiceId.system
Cardinality 1..1
Fixed Value http://fhir.nhs.uk/Id/dos-service-id
type uri

Definition

Establishes the namespace for the value - that is, a URL that describes a set values that are unique.

Requirements

There are many sets of identifiers. To perform matching of two identifiers, we need to know what set we're dealing with. The system identifies a particular set of unique identifiers.

Comment

Identifier.system is always case sensitive.

providedBy

Element Id HealthcareService.providedBy
Cardinality 0..1
type Reference(NHSDigitalOrganization)

Definition

It is recommended an identifier reference using ODS code is used.

"providedBy": {
        "identifier": {
            "system": "https://fhir.nhs.uk/Id/ods-organization-code",
            "value": "RBA"
          },
        "display": "TAUNTON AND SOMERSET NHS FOUNDATION TRUST"
    }

Comment

This property is recommended to be the same as the Location's managingOrganization, and if not provided should be interpreted as such. If the Location does not have a managing Organization, then this property should be populated.

providedBy.identifier.system

Element Id HealthcareService.providedBy.identifier.system
Cardinality 1..1
Fixed Value https://fhir.nhs.uk/Id/ods-organization-code
type uri

Definition

Establishes the namespace for the value - that is, a URL that describes a set values that are unique.

Requirements

There are many sets of identifiers. To perform matching of two identifiers, we need to know what set we're dealing with. The system identifies a particular set of unique identifiers.

Comment

Identifier.system is always case sensitive.

type

Element Id HealthcareService.type
Cardinality 0..*
Terminology Binding ServiceType (Preferred)
type CodeableConcept

Definition

Type SHOULD be populated.

"type":  [
        {
            "coding":  [
                {
                    "system": "https://fhir.nhs.uk/CodeSystem/DoS-ClinicType",
                    "code": "PHARMACY",
                    "display": "Pharmacy"
                }
            ]
        }
    ],

or

"type": [
        {
            "coding": [
                {
                    "system": "https://fhir.nhs.uk/CodeSystem/eRS-AppointmentType",
                    "code": "DAY_CASE",
                }
            ]
        }
    ],

type.coding:UKCoreCareSettingType

Element Id HealthcareService.type.coding:UKCoreCareSettingType
Cardinality 0..*
Terminology Binding UKCoreCareSettingType (Preferred)
Slice Name UKCoreCareSettingType
type Coding

Definition

A reference to a code defined by a terminology system.

Requirements

Allows for alternative encodings within a code system, and translations to other code systems.

Comment

Codes may be defined very casually in enumerations, or code lists, up to very formal definitions such as SNOMED CT - see the HL7 v3 Core Principles for more information. Ordering of codings is undefined and SHALL NOT be used to infer meaning. Generally, at most only one of the coding values will be labelled as UserSelected = true.

type.coding:UKCoreCareSettingType.system

Element Id HealthcareService.type.coding:UKCoreCareSettingType.system
Cardinality 0..1
Fixed Value http://snomed.info/sct
type uri

Definition

The identification of the code system that defines the meaning of the symbol in the code.

Requirements

Need to be unambiguous about the source of the definition of the symbol.

Comment

The URI may be an OID (urn:oid:...) or a UUID (urn:uuid:...). OIDs and UUIDs SHALL be references to the HL7 OID registry. Otherwise, the URI should come from HL7's list of FHIR defined special URIs or it should reference to some definition that establishes the system clearly and unambiguously.

type.coding:eRSAppointmentType

Element Id HealthcareService.type.coding:eRSAppointmentType
Cardinality 0..*
Slice Name eRSAppointmentType
type Coding

Definition

Appointment type e.g. telephone/video (only applicable and mandatory if Service Type is Appointment Request, not applicable to Service Type of Triage Request)

Requirements

Allows for alternative encodings within a code system, and translations to other code systems.

Comment

Codes may be defined very casually in enumerations, or code lists, up to very formal definitions such as SNOMED CT - see the HL7 v3 Core Principles for more information. Ordering of codings is undefined and SHALL NOT be used to infer meaning. Generally, at most only one of the coding values will be labelled as UserSelected = true.

type.coding:eRSAppointmentType.system

Element Id HealthcareService.type.coding:eRSAppointmentType.system
Cardinality 0..1
Fixed Value https://fhir.nhs.uk/CodeSystem/eRS-AppointmentType
type uri

Definition

The identification of the code system that defines the meaning of the symbol in the code.

Requirements

Need to be unambiguous about the source of the definition of the symbol.

Comment

The URI may be an OID (urn:oid:...) or a UUID (urn:uuid:...). OIDs and UUIDs SHALL be references to the HL7 OID registry. Otherwise, the URI should come from HL7's list of FHIR defined special URIs or it should reference to some definition that establishes the system clearly and unambiguously.

specialty

Element Id HealthcareService.specialty
Cardinality 0..*
Terminology Binding PracticeSettingCodeValueSet (Preferred)
A specialty that a healthcare service may provide.
type CodeableConcept

Definition

Specialty SHOULD be from the PracticeSettingCodeValueSet and is the SNOMED equivalent of the NHS Data Dictionary - Main Specialty and Treatment Function Codes and FHIR NHS Data Dictionary Clinical Specialty

"specialty":  [
        {
            "coding":  [
                {
                    "system": "http://snomed.info/sct",
                    "code": "394579002",
                    "display": "Cardiology"
                }
            ]
        }
    ],

or using NHS Data Dictionary codes.

"specialty":  [
        {
            "coding":  [
                {
                    "system": "https://fhir.nhs.uk/CodeSystem/NHSDataModelAndDictionary-clinical-specialty",
                    "code": "320",
                    "display": "Cardiology"
                }
            ]
        }
    ],

or for e-RS Patient Care

 "specialty": [
        {
            "coding": [
                {
                    "display": "Dermatology"
                }
            ]
        }
    ],

specialty.coding:NHSDataDictionarySpecialty

Element Id HealthcareService.specialty.coding:NHSDataDictionarySpecialty
Cardinality 0..*
Terminology Binding NHSDataDictionaryMainClinicalSpecialty (Required)
NHS Data Dictionary Specialty/Treatment Function Code
Slice Name NHSDataDictionarySpecialty
type Coding

Definition

A reference to a code defined by a terminology system.

Requirements

Allows for alternative encodings within a code system, and translations to other code systems.

Comment

Codes may be defined very casually in enumerations, or code lists, up to very formal definitions such as SNOMED CT - see the HL7 v3 Core Principles for more information. Ordering of codings is undefined and SHALL NOT be used to infer meaning. Generally, at most only one of the coding values will be labelled as UserSelected = true.

specialty.coding:NHSDataDictionarySpecialty.system

Element Id HealthcareService.specialty.coding:NHSDataDictionarySpecialty.system
Cardinality 0..1
Fixed Value https://fhir.nhs.uk/CodeSystem/NHSDataModelAndDictionary-clinical-specialty
type uri

Definition

The identification of the code system that defines the meaning of the symbol in the code.

Requirements

Need to be unambiguous about the source of the definition of the symbol.

Comment

The URI may be an OID (urn:oid:...) or a UUID (urn:uuid:...). OIDs and UUIDs SHALL be references to the HL7 OID registry. Otherwise, the URI should come from HL7's list of FHIR defined special URIs or it should reference to some definition that establishes the system clearly and unambiguously.

specialty.coding:SNOMEDPracticeCode

Element Id HealthcareService.specialty.coding:SNOMEDPracticeCode
Cardinality 0..*
Terminology Binding PracticeSettingCodeValueSet (Preferred)
Specific specialty associated with the agency.
Slice Name SNOMEDPracticeCode
type Coding

Definition

A reference to a code defined by a terminology system.

Requirements

Allows for alternative encodings within a code system, and translations to other code systems.

Comment

Codes may be defined very casually in enumerations, or code lists, up to very formal definitions such as SNOMED CT - see the HL7 v3 Core Principles for more information. Ordering of codings is undefined and SHALL NOT be used to infer meaning. Generally, at most only one of the coding values will be labelled as UserSelected = true.

specialty.coding:SNOMEDPracticeCode.system

Element Id HealthcareService.specialty.coding:SNOMEDPracticeCode.system
Cardinality 0..1
Fixed Value http://snomed.info/sct
type uri

Definition

The identification of the code system that defines the meaning of the symbol in the code.

Requirements

Need to be unambiguous about the source of the definition of the symbol.

Comment

The URI may be an OID (urn:oid:...) or a UUID (urn:uuid:...). OIDs and UUIDs SHALL be references to the HL7 OID registry. Otherwise, the URI should come from HL7's list of FHIR defined special URIs or it should reference to some definition that establishes the system clearly and unambiguously.

specialty.coding:eRSSpecialty

Element Id HealthcareService.specialty.coding:eRSSpecialty
Cardinality 0..*
Terminology Binding NHSDigitaleRSSpecialty (Preferred)
Specific specialty associated with the agency.
Slice Name eRSSpecialty
type Coding

Definition

A reference to a code defined by a terminology system.

Requirements

Allows for alternative encodings within a code system, and translations to other code systems.

Comment

Codes may be defined very casually in enumerations, or code lists, up to very formal definitions such as SNOMED CT - see the HL7 v3 Core Principles for more information. Ordering of codings is undefined and SHALL NOT be used to infer meaning. Generally, at most only one of the coding values will be labelled as UserSelected = true.

specialty.coding:eRSSpecialty.system

Element Id HealthcareService.specialty.coding:eRSSpecialty.system
Cardinality 0..1
Fixed Value https://fhir.nhs.uk/CodeSystem/eRS-Specialty
type uri

Definition

The identification of the code system that defines the meaning of the symbol in the code.

Requirements

Need to be unambiguous about the source of the definition of the symbol.

Comment

The URI may be an OID (urn:oid:...) or a UUID (urn:uuid:...). OIDs and UUIDs SHALL be references to the HL7 OID registry. Otherwise, the URI should come from HL7's list of FHIR defined special URIs or it should reference to some definition that establishes the system clearly and unambiguously.

location

Element Id HealthcareService.location
Cardinality 0..1
type Reference(NHSDigitalLocation)

Definition

Reference to a location. ODS codes may be used, however this may differ from Directory of Services and so DoS addresses are preferred.

 "location":  [
        {
            "reference": "urn:uuid:8a5d7d67-64fb-44ec-9802-2dc214bb3dcb"
        }
    ],

or

"location": [
        {
            "identifier": {
                "system": "https://fhir.nhs.uk/Id/ods-site-code",
                "value": "R6901"
            }
        }
    ],

Constraints

  • nhsd-8 (ERROR) location - An identifier reference or resource reference must be provided

location.identifier.system

Element Id HealthcareService.location.identifier.system
Cardinality 1..1
Fixed Value https://fhir.nhs.uk/Id/ods-site-code
type uri

Definition

Establishes the namespace for the value - that is, a URL that describes a set values that are unique.

Requirements

There are many sets of identifiers. To perform matching of two identifiers, we need to know what set we're dealing with. The system identifies a particular set of unique identifiers.

Comment

Identifier.system is always case sensitive.

name

Element Id HealthcareService.name
Cardinality 1..1
type string

Definition

Name of the clinic or service.

 "name": "SOMERSET BOWEL CANCER SCREENING CENTRE",

telecom

Element Id HealthcareService.telecom
Cardinality 0..*
type ContactPoint

Definition

Contact details for the clinic or service.

   "telecom": [
    {
      "system": "phone",
      "value": "0113 922 4984",
      "use": "work"
    },
    {
      "system": "email",
      "value": "directaddress@example.com",
      "use": "work"
    }
  ],

Comment

If this is empty, then refer to the location's contacts.

serviceProvisionCode

Element Id HealthcareService.serviceProvisionCode
Cardinality 0..*
Terminology Binding ServiceProvisionConditions (Example)
The code(s) that detail the conditions under which the healthcare service is available/offered.
type CodeableConcept

Definition

The code(s) that detail the conditions under which the healthcare service is available/offered.

Comment

The provision means being commissioned by, contractually obliged or financially sourced. Types of costings that may apply to this healthcare service, such if the service may be available for free, some discounts available, or fees apply.

serviceProvisionCode.coding:eRSClinicType

Element Id HealthcareService.serviceProvisionCode.coding:eRSClinicType
Cardinality 0..*
Terminology Binding ERSClinicType (Required)
Slice Name eRSClinicType
type Coding

Definition

A reference to a code defined by a terminology system.

Requirements

Allows for alternative encodings within a code system, and translations to other code systems.

Comment

Codes may be defined very casually in enumerations, or code lists, up to very formal definitions such as SNOMED CT - see the HL7 v3 Core Principles for more information. Ordering of codings is undefined and SHALL NOT be used to infer meaning. Generally, at most only one of the coding values will be labelled as UserSelected = true.

serviceProvisionCode.coding:eRSClinicType.system

Element Id HealthcareService.serviceProvisionCode.coding:eRSClinicType.system
Cardinality 0..1
Fixed Value https://fhir.nhs.uk/CodeSystem/NHSDigital-ClinicType
type uri

Definition

The identification of the code system that defines the meaning of the symbol in the code.

Requirements

Need to be unambiguous about the source of the definition of the symbol.

Comment

The URI may be an OID (urn:oid:...) or a UUID (urn:uuid:...). OIDs and UUIDs SHALL be references to the HL7 OID registry. Otherwise, the URI should come from HL7's list of FHIR defined special URIs or it should reference to some definition that establishes the system clearly and unambiguously.

availableTime

Element Id HealthcareService.availableTime
Cardinality 0..*
type BackboneElement

Definition

Opening times for the clinic or service.

"availableTime": [
    {
      "daysOfWeek": [
        "wed"
      ],
      "allDay": true
    },
    {
      "daysOfWeek": [
        "mon",
        "tue",
        "wed",
        "thu"
      ],
      "availableStartTime": "08:30:00",
      "availableEndTime": "05:30:00"
    },
    {
      "daysOfWeek": [
        "sat",
        "fri"
      ],
      "availableStartTime": "09:30:00",
      "availableEndTime": "04:30:00"
    }
  ],

Comment

More detailed availability information may be provided in associated Schedule/Slot resources.

endpoint

Element Id HealthcareService.endpoint
Cardinality 0..*
Slicing OPEN discriminator - VALUE identifier.system
type Reference(Endpoint)

Definition

Technical endpoints providing access to services operated for the specific healthcare services defined at this resource.

Endpoint identifiers to be used with the HealthcareService. Endpoints can be resolved using the SDS API

"endpoint": [
        {
            "identifier": {
                "system": "https://fhir.nhs.uk/Id/nhsSpineASID", // or https://fhir.nhs.uk/Id/nhsMhsPartyKey
                "value": "999900000041"
            }
        }
    ]

endpoint:nhsMhsPartyKey

Element Id HealthcareService.endpoint:nhsMhsPartyKey
Cardinality 0..1
Slice Name nhsMhsPartyKey
type Reference(Endpoint)

Definition

Technical endpoints providing access to services operated for the specific healthcare services defined at this resource.

endpoint:nhsMhsPartyKey.identifier.system

Element Id HealthcareService.endpoint:nhsMhsPartyKey.identifier.system
Cardinality 0..1
Fixed Value https://fhir.nhs.uk/Id/nhsMhsPartyKey
type uri

Definition

Establishes the namespace for the value - that is, a URL that describes a set values that are unique.

Requirements

There are many sets of identifiers. To perform matching of two identifiers, we need to know what set we're dealing with. The system identifies a particular set of unique identifiers.

Comment

Identifier.system is always case sensitive.

endpoint:nhsSpineASID

Element Id HealthcareService.endpoint:nhsSpineASID
Cardinality 0..1
Slice Name nhsSpineASID
type Reference(Endpoint)

Definition

Technical endpoints providing access to services operated for the specific healthcare services defined at this resource.

endpoint:nhsSpineASID.identifier.system

Element Id HealthcareService.endpoint:nhsSpineASID.identifier.system
Cardinality 0..1
Fixed Value https://fhir.nhs.uk/Id/nhsSpineASID
type uri

Definition

Establishes the namespace for the value - that is, a URL that describes a set values that are unique.

Requirements

There are many sets of identifiers. To perform matching of two identifiers, we need to know what set we're dealing with. The system identifies a particular set of unique identifiers.

Comment

Identifier.system is always case sensitive.

NHSDigital-Immunization

Conformance url FHIR Module Maturity Level
https://fhir.nhs.uk/StructureDefinition/NHSDigital-Immunization Medications trial-use


Combined with UK Core Immunization

parentPresentI0..1Extension(boolean)
vaccinationProcedureS I0..1Extension(CodeableConcept)Binding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uri
valueΣ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
statusS Σ ?!1..1codeBinding
systemΣ1..1uri
versionΣ0..1string
codeΣ1..1code
displayΣ1..1string
userSelectedΣ0..1boolean
textΣ0..1string
systemΣ1..1uri
versionΣ0..1string
codeΣ1..1code
displayΣ1..1string
userSelectedΣ0..1boolean
textΣ0..1string
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uriFixed Value
valueΣ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
occurrenceDateTimedateTime
recordedS0..1dateTime
primarySourceS Σ1..1boolean
reportOriginS0..1CodeableConcept
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ1..1string
lotNumberS0..1string
expirationDateS0..1date
systemΣ1..1uri
versionΣ0..1string
codeΣ1..1code
displayΣ1..1string
userSelectedΣ0..1boolean
textΣ0..1string
routeS0..1CodeableConceptBinding
doseQuantityS I0..1SimpleQuantity
functionΣ0..1CodeableConceptBinding
referenceΣ I0..1string
typeΣ1..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uri
valueΣ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(Organization)
displayΣ0..1string
authorStringstring
authorReferenceReference(UK Core Practitioner | UK Core Patient | UK Core RelatedPerson | UK Core Organization)
timeΣ0..1dateTime
textΣ1..1markdown
systemΣ1..1uri
versionΣ0..1string
codeΣ1..1code
displayΣ1..1string
userSelectedΣ0..1boolean
textΣ0..1string
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
isSubpotentΣ ?!0..1boolean
subpotentReason0..*CodeableConcept
documentType0..1string
reference0..1uri
publicationDate0..1dateTime
presentationDate0..1dateTime
programEligibility0..*CodeableConcept
fundingSource0..1CodeableConcept
date0..1dateTime
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
reported0..1boolean
series0..1string
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
targetDiseaseS0..*CodeableConceptBinding
doseNumberPositiveIntpositiveInt
doseNumberStringstring
seriesDosesPositiveIntpositiveInt
seriesDosesStringstring

parentPresentI0..1Extension(boolean)
vaccinationProcedureS I0..1Extension(CodeableConcept)Binding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uri
valueΣ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
statusS Σ ?!1..1codeBinding
systemΣ1..1uri
versionΣ0..1string
codeΣ1..1code
displayΣ1..1string
userSelectedΣ0..1boolean
textΣ0..1string
systemΣ1..1uri
versionΣ0..1string
codeΣ1..1code
displayΣ1..1string
userSelectedΣ0..1boolean
textΣ0..1string
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uriFixed Value
valueΣ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
occurrenceDateTimedateTime
recordedS0..1dateTime
primarySourceS Σ1..1boolean
reportOriginS0..1CodeableConcept
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ1..1string
lotNumberS0..1string
expirationDateS0..1date
systemΣ1..1uri
versionΣ0..1string
codeΣ1..1code
displayΣ1..1string
userSelectedΣ0..1boolean
textΣ0..1string
routeS0..1CodeableConceptBinding
doseQuantityS I0..1SimpleQuantity
functionΣ0..1CodeableConceptBinding
referenceΣ I0..1string
typeΣ1..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uri
valueΣ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(Organization)
displayΣ0..1string
authorStringstring
authorReferenceReference(UK Core Practitioner | UK Core Patient | UK Core RelatedPerson | UK Core Organization)
timeΣ0..1dateTime
textΣ1..1markdown
systemΣ1..1uri
versionΣ0..1string
codeΣ1..1code
displayΣ1..1string
userSelectedΣ0..1boolean
textΣ0..1string
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
isSubpotentΣ ?!0..1boolean
subpotentReason0..*CodeableConcept
documentType0..1string
reference0..1uri
publicationDate0..1dateTime
presentationDate0..1dateTime
programEligibility0..*CodeableConcept
fundingSource0..1CodeableConcept
date0..1dateTime
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
reported0..1boolean
series0..1string
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
targetDiseaseS0..*CodeableConceptBinding
doseNumberPositiveIntpositiveInt
doseNumberStringstring
seriesDosesPositiveIntpositiveInt
seriesDosesStringstring

keyhumanseverityexpression
eps-2subject - An identifier reference or resource reference must be providedwarning(reference.exists() or (identifier.exists()))
patient-nhsSupplied NHS Number is outside the English and Welsh NHS Number range or length of the number is wrong.erroridentifier.where(system='https://fhir.nhs.uk/Id/nhs-number').exists().not() or (identifier.where(system='https://fhir.nhs.uk/Id/nhs-number').exists() and identifier.where(system='https://fhir.nhs.uk/Id/nhs-number').value.matches('^([456789]{1}[0-9]{9})$'))
performerAn identifier reference or resource reference must be providederror(reference.exists() or identifier.exists())


This conformance profile is based on the NHS Digital - Daily Clinical Vaccination Specification COVID 19 and is intended for internal use only.


Must Support, Optional and Not Supported

Elements marked with a S MUST be supported by both producing and receiving systems. They should be populated if the data exists or the profile has made them mandatory.

The following elements SHOULD NOT are not expected to be supported by consuming or receiving systems.

  • isSubpotent
  • subpotentReason
  • education
  • programEligibility
  • fundingSource

Elements that are neither marked as Must Support or listed as unsupported are optional.


extension(vaccinationProcedure)

Where status=completed this is Mandatory.
This relates to the vaccine that was administered (procedure) and is a SNOMED CT from UKCoreVaccinationProcedure

In addition to the codes in the following codes are recommended.

Vaccination Procedure UK SNOMED self
Administration of first dose of SARS-CoV-2 (severe acute respiratory syndrome coronavirus 2) vaccine 1324681000000101
Administration of second dose of SARS-CoV-2 (severe acute respiratory syndrome coronavirus 2) vaccine 1324691000000104

"extension":  [
        {
            "url": "https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-VaccinationProcedure",
            "valueCodeableConcept": {
                "coding":  [
                    {
                        "system": "http://snomed.info/sct",
                        "code": "1324681000000101",
                        "display": "Administration of first dose of severe acute respiratory syndrome coronavirus 2 vaccine (procedure)"
                    }
                ]
            }
        }
    ],


identifier

identifier.system

A URI for the system that has allocated the vaccination identifier. Note, this must be unique within a given Supplier system or instance of Supplier system

e.g.

  1. Example of a “single instance for all customers” Supplier system https://supplierABC/identifiers/vacc

  2. Example of “per customer instance” Supplier system https://supplierABC/ODSCode/NKO41/identifiers/vacc

identifier.value

A unique identifier for the vaccination record, that is consistent between any subsequent update or delete records.

Ideally this would be a GUID / UUID

Value in combination with UNIQUE_ID_URI must be globally unique In other words, a combination of identifier.value and identifier.system act as composite primary key to allow lookup of any Adverse Reactions records from the corresponding Adverse Reaction data file.

  1. UUID example: e045626e-4dc5-4df3-bc35-da25263f901e

  2. Example of a “single instance for all customers” Supplier system ACME-vacc123456

  3. Example of “per customer instance” Supplier system ACME-CUSTOMER1-vacc123456 ACME-CUSTOMER2-vacc123456


status

For a vaccination that has been administered, the status will be completed. This status does not indicate a vaccination course has been completed. When the vaccination has not been administered, the status will be not-done and a statusReason should be supplied.


vaccineCode

Where status is completed this is Mandatory. This indicates vaccine product administered. This should be a SNOMED CT code from UKCoreVaccineCode AMPP codes should not be used.

Vaccine Reference Set UK SNOMED Members Of UK SNOMED Descendents Of
Meningococcal ACWY vaccines 999000811000001105
Influenza vaccines prescribable within general practice 12465201000001105
Meningococcal B vaccines 999000831000001104
Pneumococcal vaccines 999000841000001106
Seasonal Flu vaccines 999000821000001101
COVID-19 vaccines 39330711000001103

"vaccineCode": {
        "coding":  [
            {
                "system": "http://snomed.info/sct",
                "code": "39114911000001105",
                "display": "COVID-19 Vaccine AstraZeneca (ChAdOx1 S [recombinant]) 5x10,000,000,000 viral particles/0.5ml dose solution for injection multidose vials (AstraZeneca)"
            }
        ]
    },


For EU/international purposes, a vaccination type code can be also be included. The SNOMED CT concept should be from Vaccines (GPS) - IPS and EU SNOMED CT Vaccine List (COVID-19)

"vaccineCode": {
        "coding":  [
            {
                "system": "http://snomed.info/sct",
                "code": "39114911000001105",
                "display": "COVID-19 Vaccine AstraZeneca (ChAdOx1 S [recombinant]) 5x10,000,000,000 viral particles/0.5ml dose solution for injection multidose vials (AstraZeneca)"
            },
            {
                "system": "http://snomed.info/sct",
                "code": "1119305005",
                "display": "SARS-CoV-2 antigen vaccine"
            }
        ]
    },


patient

A traced NHS Number SHOULD be provided and when applicable a resource reference to the Patient resource.

"patient": {
                    "reference": "urn:uuid:edea022a-2d81-11eb-adc1-0242ac120002",
                    "type": "Patient",
                    "identifier": {
                        "system": "https://fhir.nhs.uk/Id/nhs-number",
                        "value": "9912003888"
                    }
                },


occurrenceDateTime

The date and time on which the vaccination intervention was carried out or was meant to be administered.


recorded

The date that the vaccination administered (procedure) or not administered (situation) was recorded in the source system.


primarySource

Set as TRUE when the content of the record is based on information from the person performing the vaccine or who has clinical responsibility for the vaccination, and the system can be considered a primary source of the vaccination event. Set as FALSE when the information has NOT come directly from people performing the vaccine (e.g. a patient or patient’s carer), and the system should not be treated as a primary source for this record. This is used to help identify and eliminate duplicate records held centrally.


reportOrigin

Where primarySource=false,

  • The ODS code should be set to the location of the primary source of the data where the report of the vaccination event is held

Where primarySource=false and the vaccination event has been stored in local Primary Care System.

  • The ODS code should be set to the ODS code of the organisation where the event has been stored e.g. GP practice or PCN.
    Note this field will be used to determine whether or not to send the vaccination event to the patient’s registered GP

"reportOrigin": {
        "text": "RR8 - LEEDS TEACHING HOSPITALS NHS TRUST"
    },


location

Country where the vaccination took place. This should follow Using ISO 3166 Country Codes with FHIR or a SNOMED Country Code.


"location": {
        "identifier": {
            "system": "urn:iso:std:iso:3166",
            "value": "FR"
        },
        "display": "France"
    },


manufacturer

Manufacturer of vaccine product. Only the display is expected to be populated.


"manufacturer": {
        "display": "DREAMLAND Pharmaceuticals Ltd"
    },


lotNumber (Batch Number)

Where status=completed this is Mandatory. This should be captured at source ideally via use of automated scanning technology (GS1 GTIN / NTIN standard).


   "lotNumber": "R04X",


expirationDate

Shorter date of either:

  • Manufacturer expiry date of the vaccine
  • Coronavirus point of care sites will only put in the defrost expiry date

site

Body site vaccine was administered into. A SNOMED Concept ID value from UK published reference set “Vaccine body site of administration simple reference set” (1127941000000100) should be used UKCoreBodySite


"site": {
        "coding":  [
            {
                "system": "http://snomed.info/sct",
                "code": "368208006",
                "display": "Left upper arm structure (body structure)"
            }
        ]
    },


route

A SNOMED concept ID value from either of the following should be used: UK “ePrescribing route of administration simple reference set (foundation metadata concept)” (999000051000001100) UKCoreMedicationDosageRoute Or: UK published reference set “Vaccine route of administration simple reference set” (115231000001104)


 "route": {
        "coding":  [
            {
                "system": "http://snomed.info/sct",
                "code": "78421000",
                "display": "Intramuscular route (qualifier value)"
            }
        ]
    },


doseQuantity

A dm+d (SNOMED) Concept ID value representing the Unit of measure used.

For COVID-19 a reference set has been published here: https://dd4c.digital.nhs.uk/dd4c/publishedmetadatas/intid/980?size=10


 "doseQuantity": {
        "value": 1,
        "unit": "pre-filled disposable injection",
        "system": "http://snomed.info/sct",
        "code": "3318611000001100"
    },


performer (practitioner and organisation)

The organisation ODS code of the location where the vaccination event took place with corresponding system of https://fhir.nhs.uk/Id/ods-organization-code. For roving teams on home visits or care home visits use the site code of the responsible site e.g. GP practice or dedicated vaccination site. It is strongly recommend the name of the Organisation is present in the display field.

Vaccination professional should be recorded using professional codes, see NHSDigital-Practitioner for details.


"performer":  [
        {
            "actor": {
                "type": "Practitioner",
                "identifier": {
                    "system": "https://fhir.hl7.org.uk/Id/nmc-number",
                    "value": "5566789"
                },
                "display": "HOLDING, Rafferty"
            }
        },
        {
            "actor": {
                "type": "Organization",
                "identifier": {
                    "system": "https://fhir.nhs.uk/Id/ods-organization-code",
                    "value": "C4B2A"
                },
                "display": "ELLAND ROAD STADIUM - COVID VACCINATION CENTRE"
            }
        }
    ],


reasonCode

A SNOMED Concept Id. For COVID19 and Flu see https://digital.nhs.uk/developer/api-catalogue/vaccination


protocolApplied

doseNumberPositiveInt Nominal position in a series of vaccines, N.B. This field will not always be reliable, therefore for Covid vaccinations, the vaccination procedure code or situation code should be used as that includes the dose number


"protocolApplied":  [
        {
            "doseNumberPositiveInt": 1
        }
    ]


It is recommended for international/EU interoperability targetDisease is populated. The SNOMED CT concept should be from EU COVID-19 Diseases or Vaccine Target Diseases (GPS) - IPS

Disease UK SNOMED self
COVID-19 840539006
Others See Vaccine Target Diseases (GPS) - IPS


  "protocolApplied": [
    {
        "targetDisease": [
            {
                "coding": [
                    {
                        "system": "http://snomed.info/sct",
                        "code": "840539006",
                        "display": "COVID-19"
                    }
                ]
            }
        ],
        "doseNumberPositiveInt": 1
    }
]



SNOMED CT codes relating to COVID-19 Vaccination

A complete list of SNOMED CT Codes relating to this profile can be found here SNOMED CT codes relating to COVID-19 Vaccination

Search Parameters

The following search parameters and search parameter combinations SHALL be supported:

  • patient:identifier + procedure-code:below
Name Type Description Conformance Path
date date Vaccination (non-)Administration Date SHOULD Immunization.date
patient:identifier token The patient for the vaccination record SHALL Immunization.patient (Patient)
procedure-code token The target disease and dose number the dose is being administered against MAY Immunization.extension:vaccinationProcedure
status token Immunization event status MAY Immunization.status

Additional parameters can be on Immunization - Search Parameters

Mandatory Search Parameters

patient:identifier

SHALL support searching using the patient:identifier search parameter:

GET [baseUrl]/Immunization?patient:identifier={system|}[code]

Example:

GET [baseUrl]/Immunization?patient:identifier=https://fhir.nhs.uk/Id/nhs-number|9876543210

GET [baseUrl]/Immunization?patient:identifier=9876543210

Return all Immunization resources for Patients with a NHS Number of 9876543210


Optional Search Parameters

date + patient:identifier

SHOULD support searching using the combination of the patient:identifier and date search parameters

  • including support for these date comparators: gt,lt,ge,le-
  • including optional support for composite AND search on date (e.g.date=[date]&date=[date]]&...)
GET [baseUrl]/Immunization?patient.identifier={system|}[code]&date=[date]

Example

GET [baseUrl]/Immunization?patient:identifier=9876543210&date=ge2010-01-01&date=le2011-12-31

Return all Immunization resources that have a date greater than or equal to 1st Jan 2010, a date less than or equal to 31st Dec 2011 and Patient with an identifier of 9876543210.

procedure-code + patient:identifier

SHOULD support searching using the combination of the patient:identifier and procedure-code search parameters

  • including optional support for composite OR search on procedure-code (e.g. procedure-code={system|}[code],{system|}[code],...)
GET [baseUrl]/Immunization?patient:identifier={system|}[code]&procedure-code={system|}[code]

Example:

GET [baseUrl]/Immunization?patient:identifier=9876543210&procedure-code=http://snomed.info/sct|1324681000000101,1324691000000104

Return all Immunization resources with a procedure-code of SNOMED CT 1324681000000101 or 1324691000000104 and Patient with a identifier of 9876543210.

status + patient:identifier

SHOULD support searching using the combination of the patient:identifier and status search parameters

GET [baseUrl]/Immunization?patient:identifier={system|}[code]&status=[code]

Example:

To filter on status ( in-progress | on-hold | completed | entered-in-error | stopped )

GET [baseUrl]/Immunization?patient:identifier=9876543210&status=on-hold

Return all Immunization resources with a status of on-hold and Patient with a identifier of 9876543210.

NHSDigital-MessageHeader

Conformance url FHIR Module Maturity Level
https://fhir.nhs.uk/StructureDefinition/NHSDigital-MessageHeader Implementation Support trial-use


with MessageHeader

messageHeaderInstructionI0..*Extension(Coding)
replacementOfS I0..1Extension(Identifier)
systemΣ1..1uri
versionΣ0..1string
codeΣ1..1code
displayΣ0..1string
userSelectedΣ0..1boolean
nameΣ0..1string
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
endpointΣ1..1url
receiverLocalPartI0..1Extension(Reference(NHSDigitalHealthcareService | NHSDigitalPractitionerRole | NHSDigitalPractitioner))
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uri
valueΣ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
senderLocalPartI0..1Extension(Reference(NHSDigitalHealthcareService | NHSDigitalPractitionerRole | NHSDigitalPractitioner))
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uri
valueΣ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uri
valueΣ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
nameΣ0..1string
softwareΣ0..1string
versionΣ0..1string
contactΣ I0..1ContactPoint
endpointΣ1..1url
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uri
valueΣ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
systemΣ1..1uri
versionΣ0..1string
codeΣ1..1code
displayΣ0..1string
userSelectedΣ0..1boolean
textΣ0..1string
identifierΣ1..1id
codeΣ1..1codeBinding
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
referenceΣ I1..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
definitionΣ0..1canonical(MessageDefinition)

from MessageHeader

messageHeaderInstructionI0..*Extension(Coding)
replacementOfS I0..1Extension(Identifier)
systemΣ1..1uri
versionΣ0..1string
codeΣ1..1code
displayΣ0..1string
userSelectedΣ0..1boolean
nameΣ0..1string
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
endpointΣ1..1url
receiverLocalPartI0..1Extension(Reference(NHSDigitalHealthcareService | NHSDigitalPractitionerRole | NHSDigitalPractitioner))
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uri
valueΣ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
senderLocalPartI0..1Extension(Reference(NHSDigitalHealthcareService | NHSDigitalPractitionerRole | NHSDigitalPractitioner))
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uri
valueΣ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uri
valueΣ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
nameΣ0..1string
softwareΣ0..1string
versionΣ0..1string
contactΣ I0..1ContactPoint
endpointΣ1..1url
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uri
valueΣ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
systemΣ1..1uri
versionΣ0..1string
codeΣ1..1code
displayΣ0..1string
userSelectedΣ0..1boolean
textΣ0..1string
identifierΣ1..1id
codeΣ1..1codeBinding
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
referenceΣ I1..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
definitionΣ0..1canonical(MessageDefinition)

keyhumanseverityexpression
nhsd-11replacementOf extension is required for update messageswarningevent.code.where(substring($this.length()-6) = 'update').exists().not() or (event.code.where(substring($this.length()-6) = 'update').exists() and extension('https://fhir.nhs.uk/StructureDefinition/Extension-replacementOf').exists())


Definition

The header for a FHIR Message exchange that is either requesting or responding to an action. The reference(s) that are the subject of the action as well as other information related to the action are typically transmitted in a bundle in which the MessageHeader resource instance is the first resource in the bundle.

Messaging middleware systems are expected to use this MessageHeader resource to route, deliver and handle messages correctly.

This profile is not tied to any specific transport/API requirement or clinical requirement. Intermediaries are not expected to perform detailed routing on clinical content. Some clinical information will be required for routing purposes and this will be held within eventCoding and reason sections as discussed in the Message Event section below. In circumstances where more detailed information is required for routing this MUST be carried in the relevant FHIR Resource in the payload only. For example, document types should be recorded in FHIR DocumentReference.type and health service/specialty type can be recorded in FHIR Encounter.serviceType or DocumentReference.context.practiceSetting.

Systems involved in NHSDigital/UKCore messaging are expected to support this profile only, extensions or derived profiles are permitted but they may only have limited (internal) scope and will not be supported outside of this scope (e.g. externally). This resource SHOULD NOT be profiled to further define the contents of the resources and FHIR MessageDefinition MUST be used instead.

Comment

identifiers and message timings

FHIR messages have two identifiers: the messageIdentifier of the Message (Bundle.identifier) and a messageId (Bundle.id) which is used in each transport channel . The messageId should be unique within a each message channel/stream. Whenever a message is resent, the messageIdentifier of the Bundle remains the same, but the messageId may change. The response message has its own unique messageIdentifier, the messageIdentifier of the request message can be referenced in the MessageHeader.response.identifier element.

The Bundle.identifier, the messageIdentifier, MUST have a UUID value.

Systems may chose to map X-Request-ID header to the Bundle.id, messageId. If both are supplied to a $process-message endpoint it is recommended they hold the same values.

MessageHeader can hold previous and extra messageId's in the ExtensionMessageHeadermessageId

Local Part/Addressing (sender and/or destination.receiver)

When exchanging messages between organisations, local references SHOULD NOT be used for sender and destination.receiver references. Local references can make use of the Extension ExtensionMessageHeaderLocalPart. Messages between Organisations should be directed to the Organisation. The receiving organisation will take responsibility for delivering to the local address. Sending organisations are not expected to be able to deliver to local entities in another organisation/domain/facility.

This concept is similar to email addresses local-part@domain and also HL7 version 2 combination of Sending/Receiving Application | Sending/Receiving Facility in the MSH segment.

In the example below, the destination is a clinic (A99968) which part of NHS Trust (RBA). Note also the destination endpoint is for the NHS Trust, who will route the message as required.

"destination": [
    {
        "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/RBA",
        "receiver": {
          "extension": [
              {
                  "url": "https://fhir.nhs.uk/StructureDefinition/Extension-MessageHeader-LocalPart",
                  "valueReference": {
                        "identifier": {
                        "system": "https://fhir.nhs.uk/Id/ods-organization-code",
                        "value": "A99968"
                    }
                }

              }
          ],
            "identifier": {
                "system": "https://fhir.nhs.uk/Id/ods-organization-code",
                "value": "RBA"
            },
            "display": "TAUNTON AND SOMERSET NHS FOUNDATION TRUST"
        }
    }
],

example - Prescription, Pharmacy known

nominatedPharmacy

In the example below, the prescriber Taunton and Somerset Foundation Trust (RBA), is sending a message to The Simple Pharmacy (VNE51). The destination.receiver and sender are references to these organisations.

This message is to be sent via the Electronic Prescription Service, the http address of EPS is held in destination.endpoint. Replies to this message can only be received by MESH and the source.endpoint is the MESH address of the sending organisation.

"destination": [
    {
        "endpoint": "https://sandbox.api.service.nhs.uk/electronic-prescriptions/$post-message",
        "receiver": {
            "identifier": {
                "system": "https://fhir.nhs.uk/Id/ods-organization-code",
                "value": "VNE51"
            },
            "display": "The Simple Pharmacy"
        }
    }
],
"sender": {
    "identifier": {
        "extension": [
            {
                "url": "https://fhir.nhs.uk/StructureDefinition/Extension-MessageHeader-LocalPart",
                "valueReference": {
                        "identifier": {
                        "system": "https://fhir.nhs.uk/Id/ods-organization-code",
                        "value": "A99968"
                    }
                }
            }
        ],
        "system": "https://fhir.nhs.uk/Id/ods-organization-code",
        "value": "RBA"
    },
    "display": "TAUNTON AND SOMERSET NHS FOUNDATION TRUST"
},
"source": {
    "endpoint": "https://directory.spineservices.nhs.uk/STU3/Organization/RBA"
}

EPS will now send this message to the pharmacy. This message is collected by the pharmacy using MESH and so the destination.endpoint is now the MESH address of the pharmacy. Replies to this message are sent to EPS and so the source.endpoint is now the http address of the EPS $process-message endpoint.

"destination": [
    {
        "endpoint": "urn:nhs-uk:addressing:ods:VNE51",
        "receiver": {
            "identifier": {
                "system": "https://fhir.nhs.uk/Id/ods-organization-code",
                "value": "VNE51"
            },
            "display": "The Simple Pharmacy"
        }
    }
],
"sender": {
    "extension": [
            {
                "url": "https://fhir.nhs.uk/StructureDefinition/Extension-MessageHeader-LocalPart",
                "valueReference": {
                        "identifier": {
                        "system": "https://fhir.nhs.uk/Id/ods-organization-code",
                        "value": "A99968"
                    }
                }

            }
        ],
    "identifier": {
        "system": "https://fhir.nhs.uk/Id/ods-organization-code",
        "value": "RBA"
    },
    "display": "TAUNTON AND SOMERSET NHS FOUNDATION TRUST"
},
"source": {
    "endpoint": "https://sandbox.api.service.nhs.uk/electronic-prescriptions/$post-message"
}

example - Prescription, Pharmacy not known

noNominatedPharmacy

In this example the destination is not known and the message is sent to NHS Digital (X26).

"destination": [
    {
        "endpoint": "https://sandbox.api.service.nhs.uk/electronic-prescriptions/$post-message",
        "receiver": {
    


messageIDs




In addition, a FHIR Message Bundle has two important timestamps:

The time of sending the message is captured in the timestamp element
The last time the message was updated (e.g. by storing or modification) is captured in the meta.lastUpdated element.

```json
{
    "resourceType": "Bundle",
    "id": "884cfa4f-7a56-4be5-9592-783ef4f3992a",
    "meta": {
        "lastUpdated": "2020-11-02T01:43:30+00:00"
      },
    "identifier": {
        "system": "https://tools.ietf.org/html/rfc4122",
        "value": "ad945a29-85f8-439a-b590-6789719adc16"
    },
    "type": "message",
    "timestamp": "2020-11-02T01:43:30+00:00",
    "entry": [
        {
            "fullUrl": "urn:uuid:311316d3-1de0-4f7c-8109-c950ead1c717",
            "resource": {
                "resourceType": "MessageHeader",
                "extension": [
                    {
                        "url": "https://fhir.nhs.uk/StructureDefinition/Extension-Spine-MessageHeader-messageId",
                        "valueIdentifier": {
                            "system": "https://fhir.nhs.uk/Id/prescription-order-number",
                            "value": "DC2C66-A1B2C3-23407B"
                        }
                    }
                ]

From (source and sender) and To (destination)

The From is contained in both the sender and source elements and the To is contained in the destination array. One source, sender and at least one destination MUST be present.

Messages may be sent over multiple transmission legs (i.e. the first leg uses http and the second MESH). The contents of elements SHOULD reflect the current leg only.

  • destination.endpoint
  • source.endpoint
  • MessageHeader.extension(messageId)

Endpoints MUST point to valid endpoint uri's on each leg of the messages journey, they may not refer to inaccessible endpoints on other legs. See also the destination section below.

Constraints

extension:replacementOf

Element Id MessageHeader.extension:replacementOf
Cardinality 0..1
Slice Name replacementOf
type Extension(ExtensionreplacementOf)

Definition

If the message is an update or replaceOf a previous message, then this extension should reference the replaced FHIR Message (Bundle.identifier).

"extension": [
    {
        "url": "https://fhir.nhs.uk/StructureDefinition/Extension-replacementOf",
        "valueIdentifier": {
            "system": "https://tools.ietf.org/html/rfc4122",
            "value": "334a3195-1f6c-497a-8efe-d272ca9c4e38"
        }
    }
],

event[x]

Element Id MessageHeader.event[x]
Cardinality 1..1
Terminology Binding NHSMessageEvents (Required)
type Coding

Definition

The main message type is held in the mandatory eventCoding section which can be subdivided by the optional reason codes.

Every code MUST have a corresponding MessageDefinition.

For example the event code dispense-notification has a MessageDefinition of https://fhir.nhs.uk/MessageDefinition/pharmacy-dispense. This definition lists the profiles and cardinality of the resources in the message. eventCoding and MessageDefinition define the structure of the message.

"eventCoding": {
  "system": "https://fhir.nhs.uk/CodeSystem/message-event",
  "code": "dispense-notification",
  "display": "Dispense Notification"
}

Requirements

Drives the behaviour associated with this message.

Comment

The time of the event will be found in the focus resource. The time of the message will be found in Bundle.timestamp.

destination

Element Id MessageHeader.destination
Cardinality 0..*
type BackboneElement

Definition

Lists all the destinations where message is be delivered to.

The recipient of a message takes the responsibility of delivering to all the destination.endpoints. Similarly the sender MUST NOT include destination's the recipient can not deliver to, these destinations MUST be removed from the message. Additional rules for endpoint can be found in the source section below.

Requirements

Indicates where message is to be sent for routing purposes. Allows verification of "am I the intended recipient".

"destination": [
                    {
                        "endpoint": "urn:nhs-uk:addressing:mesh:Y90638OT002",
                        "receiver": {
                            "identifier": {
                                "system": "https://fhir.nhs.uk/Id/ods-organization-code",
                                "value": "Y9063"
                            }
                        }
                    }
                ]

Comment

There SHOULD be at least one destination, but in some circumstances, the source system is unaware of any particular destination system.

sender

Element Id MessageHeader.sender
Cardinality 0..1
type Reference(NHSDigitalPractitionerRole NHSDigitalPractitioner NHSDigitalOrganization)

Definition

The current requirement in NHS Digital API's is to rely on the Access Tokens and Audit (JWT) for sender details.

For use outside of NHS Digital it is recommended this is populated with either the Organisation ODS code or the Practitioner's professional code.

"sender": {
    "identifier": {
        "system": "https://fhir.nhs.uk/Id/ods-organization-code",
        "value": "VNE51"
   }
}

Requirements

Allows routing beyond just the application level.

Comment

Use case is for where a (trusted) sending system is responsible for multiple organisations, and therefore cannot differentiate based on source endpoint / authentication alone.

sender.identifier

Element Id MessageHeader.sender.identifier
Cardinality 1..1
type Identifier

Definition

An identifier for the target resource. This is used when there is no way to reference the other resource directly, either because the entity it represents is not available through a FHIR server, or because there is no way for the author of the resource to convert a known identifier to an actual location. There is no requirement that a Reference.identifier point to something that is actually exposed as a FHIR instance, but it SHALL point to a business concept that would be expected to be exposed as a FHIR instance, and that instance would need to be of a FHIR resource type allowed by the reference.

Comment

When an identifier is provided in place of a reference, any system processing the reference will only be able to resolve the identifier to a reference if it understands the business context in which the identifier is used. Sometimes this is global (e.g. a national identifier) but often it is not. For this reason, none of the useful mechanisms described for working with references (e.g. chaining, includes) are possible, nor should servers be expected to be able resolve the reference. Servers may accept an identifier based reference untouched, resolve it, and/or reject it - see CapabilityStatement.rest.resource.referencePolicy. When both an identifier and a literal reference are provided, the literal reference is preferred. Applications processing the resource are allowed - but not required - to check that the identifier matches the literal reference Applications converting a logical reference to a literal reference may choose to leave the logical reference present, or remove it. Reference is intended to point to a structure that can potentially be expressed as a FHIR resource, though there is no need for it to exist as an actual FHIR resource instance - except in as much as an application wishes to actual find the target of the reference. The content referred to be the identifier must meet the logical constraints implied by any limitations on what resource types are permitted for the reference. For example, it would not be legitimate to send the identifier for a drug prescription if the type were Reference(Observation|DiagnosticReport). One of the use-cases for Reference.identifier is the situation where no FHIR representation exists (where the type is Reference (Any).

source

Element Id MessageHeader.source
Cardinality 1..1
type BackboneElement

Definition

source.endpoint is required and MUST indicate the address where replies are to be sent.

For responses to be received via http this will be the address of the $process-message endpoint. E.g.

https://fhir.hospitaltrust.nhs.uk/$process-message

For MESH this will follow ITK2.2 MESH Transport Requirements for ITK Routing. E.g. the MESH Endpoint for Organisation B80310

 "source": {
                    "endpoint": "urn:nhs-uk:addressing:mesh:Y90638OT001"
                }

Requirements

Allows replies, supports audit.

NHSDigital-Observation

Conformance url FHIR Module Maturity Level
https://fhir.nhs.uk/StructureDefinition/NHSDigital-Observation Diagnostics trial-use


Combined with
UK Core Observation

covid19TestingS I0..1Extension(Complex)
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uri
valueΣ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
statusS Σ ?!1..1codeBinding
systemS Σ1..1uri
versionΣ0..1string
codeS Σ1..1code
displayΣ0..1string
userSelectedΣ0..1boolean
textΣ0..1string
systemΣ0..1uriFixed Value
versionΣ0..1string
codeΣ0..1code
displayΣ0..1string
userSelectedΣ0..1boolean
textΣ0..1string
systemΣ0..1uriFixed Value
versionΣ0..1string
codeΣ0..1code
displayΣ0..1string
userSelectedΣ0..1boolean
textΣ0..1string
systemΣ1..1uriFixed Value
versionΣ0..1string
codeΣ1..1code
displayΣ1..1string
userSelectedΣ0..1boolean
systemΣ1..1uriFixed Value
versionΣ0..1string
codeΣ1..1code
displayΣ1..1string
userSelectedΣ0..1boolean
textΣ0..1string
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uriFixed Value
valueΣ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
effectiveDateTimedateTime
issuedΣ0..1instant
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
valueQuantityQuantity
valueCodeableConceptCodeableConcept
valueStringstring
valueBooleanboolean
valueIntegerinteger
valueRangeRange
valueRatioRatio
valueSampledDataSampledData
valueTimetime
valueDateTimedateTime
valuePeriodPeriod
dataAbsentReasonI0..1CodeableConceptBinding
interpretation0..*CodeableConceptBinding
authorStringstring
authorReferenceReference(UK Core Organization | UK Core Patient | UK Core Practitioner | UK Core RelatedPerson)
timeΣ0..1dateTime
textΣ1..1markdown
systemΣ1..1uriFixed Value
versionΣ0..1string
codeΣ1..1code
displayΣ1..1string
userSelectedΣ0..1boolean
textΣ0..1string
systemΣ1..1uri
versionΣ0..1string
codeΣ1..1code
displayΣ1..1string
userSelectedΣ0..1boolean
textΣ0..1string
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uri
valueΣ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uri
valueΣ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ1..1string
lowI0..1SimpleQuantity
highI0..1SimpleQuantity
type0..1CodeableConceptBinding
appliesTo0..*CodeableConcept
ageI0..1Range
text0..1string
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
systemΣ1..1uriFixed Value
versionΣ0..1string
codeΣ1..1code
displayΣ1..1string
userSelectedΣ0..1boolean
textΣ0..1string
valueQuantityQuantity
valueCodeableConceptCodeableConcept
valueStringstring
valueBooleanboolean
valueIntegerinteger
valueRangeRange
valueRatioRatio
valueSampledDataSampledData
valueTimetime
valueDateTimedateTime
valuePeriodPeriod
dataAbsentReasonI0..1CodeableConceptBinding
interpretation0..*CodeableConceptBinding
referenceRange0..*see (referenceRange)

from UK Core Observation
covid19TestingS I0..1Extension(Complex)
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uri
valueΣ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
statusS Σ ?!1..1codeBinding
systemS Σ1..1uri
versionΣ0..1string
codeS Σ1..1code
displayΣ0..1string
userSelectedΣ0..1boolean
textΣ0..1string
systemΣ0..1uriFixed Value
versionΣ0..1string
codeΣ0..1code
displayΣ0..1string
userSelectedΣ0..1boolean
textΣ0..1string
systemΣ0..1uriFixed Value
versionΣ0..1string
codeΣ0..1code
displayΣ0..1string
userSelectedΣ0..1boolean
textΣ0..1string
systemΣ1..1uriFixed Value
versionΣ0..1string
codeΣ1..1code
displayΣ1..1string
userSelectedΣ0..1boolean
systemΣ1..1uriFixed Value
versionΣ0..1string
codeΣ1..1code
displayΣ1..1string
userSelectedΣ0..1boolean
textΣ0..1string
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uriFixed Value
valueΣ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
effectiveDateTimedateTime
issuedΣ0..1instant
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
valueQuantityQuantity
valueCodeableConceptCodeableConcept
valueStringstring
valueBooleanboolean
valueIntegerinteger
valueRangeRange
valueRatioRatio
valueSampledDataSampledData
valueTimetime
valueDateTimedateTime
valuePeriodPeriod
dataAbsentReasonI0..1CodeableConceptBinding
interpretation0..*CodeableConceptBinding
authorStringstring
authorReferenceReference(UK Core Organization | UK Core Patient | UK Core Practitioner | UK Core RelatedPerson)
timeΣ0..1dateTime
textΣ1..1markdown
systemΣ1..1uriFixed Value
versionΣ0..1string
codeΣ1..1code
displayΣ1..1string
userSelectedΣ0..1boolean
textΣ0..1string
systemΣ1..1uri
versionΣ0..1string
codeΣ1..1code
displayΣ1..1string
userSelectedΣ0..1boolean
textΣ0..1string
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uri
valueΣ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uri
valueΣ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ1..1string
lowI0..1SimpleQuantity
highI0..1SimpleQuantity
type0..1CodeableConceptBinding
appliesTo0..*CodeableConcept
ageI0..1Range
text0..1string
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
systemΣ1..1uriFixed Value
versionΣ0..1string
codeΣ1..1code
displayΣ1..1string
userSelectedΣ0..1boolean
textΣ0..1string
valueQuantityQuantity
valueCodeableConceptCodeableConcept
valueStringstring
valueBooleanboolean
valueIntegerinteger
valueRangeRange
valueRatioRatio
valueSampledDataSampledData
valueTimetime
valueDateTimedateTime
valuePeriodPeriod
dataAbsentReasonI0..1CodeableConceptBinding
interpretation0..*CodeableConceptBinding
referenceRange0..*see (referenceRange)

keyhumanseverityexpression
patient-referencesubject - An identifier reference or resource reference must be providedwarning(reference.exists() or (identifier.exists()))
patient-nhsSupplied NHS Number is outside the English and Welsh NHS Number range or length of the number is wrong.erroridentifier.where(system='https://fhir.nhs.uk/Id/nhs-number').exists().not() or (identifier.where(system='https://fhir.nhs.uk/Id/nhs-number').exists() and identifier.where(system='https://fhir.nhs.uk/Id/nhs-number').value.matches('^([456789]{1}[0-9]{9})$'))
performerAn identifier reference or resource reference must be providederror(reference.exists() or identifier.exists())

Constraint Profiles

nameprofile
NHSDigitalObservationCOVID19https://fhir.nhs.uk/StructureDefinition/NHSDigital-Observation-COVID19


Definition

Measurements and simple assertions made about a patient, device or other subject.

Comment

Used for simple observations such as device measurements, laboratory atomic results, vital signs, height, weight, smoking status, comments, etc. Other resources are used to provide context for observations such as laboratory reports, etc.

Constraints

extension:covid19Testing

Element Id Observation.extension:covid19Testing
Cardinality 0..1
Slice Name covid19Testing
type Extension(ExtensionCOVID19TestResult)

Definition

Optional Extension Element - found in all resources.

identifier

Element Id Observation.identifier
Cardinality 1..*
type Identifier

Definition

A unique identifier assigned to this observation.

For COVID-19 Test History this will be The identifier will be the specimen id.


    "identifier":  [
        {
            "system": "https://fhir.nhs.uk/Id/SpecimenId",
            "value": "eb89a392-5b20-11eb-ae93-0242ac130002"
        }
    ],

Requirements

Allows observations to be distinguished and referenced.

status

Element Id Observation.status
Cardinality 1..1
Terminology Binding ObservationStatus (Required)
Codes providing the status of an observation.
type code

Definition

The status of the result value.

For COVID-19 Test History the status of the observation will always be final


    "status": "final",

Requirements

Need to track the status of individual results. Some results are finalised before the whole report is finalised.

Comment

This element is labelled as a modifier because the status contains codes that mark the resource as not currently valid.

category

Element Id Observation.category
Cardinality 0..*
Terminology Binding ObservationCategory (Required)
Slicing OPEN discriminator - VALUE coding.system
type CodeableConcept

Definition

This is an optional element. If used the category will always be laboratory


    "category":  [
        {
            "coding":  [
                {
                    "system": "http://terminology.hl7.org/CodeSystem/observation-category",
                    "code": "laboratory",
                    "display": "Laboratory"
                }
            ],
            "text": "Laboratory"
        }
    ],

For COVID-19 Tests, the ValueSet SHOULD be used to indicate which test pillar the observation originated.


     "category": [
        {
            "coding": [
                {
                    "system": "https://fhir.nhs.uk/CodeSystem/covid-test-pillar",
                    "code": "pillar-1",
                    "display": "pillar 1"
                }
            ]
        }
    ],

Requirements

Used for filtering what observations are retrieved and displayed.

Comment

In addition to the required category valueset, this element allows various categorization schemes based on the owner’s definition of the category and effectively multiple categories can be used at once. The level of granularity is defined by the category concepts in the value set.

category.coding.system

Element Id Observation.category.coding.system
Cardinality 1..1
type uri

Definition

The identification of the code system that defines the meaning of the symbol in the code.

Requirements

Need to be unambiguous about the source of the definition of the symbol.

Comment

The URI may be an OID (urn:oid:...) or a UUID (urn:uuid:...). OIDs and UUIDs SHALL be references to the HL7 OID registry. Otherwise, the URI should come from HL7's list of FHIR defined special URIs or it should reference to some definition that establishes the system clearly and unambiguously.

category.coding.code

Element Id Observation.category.coding.code
Cardinality 1..1
type code

Definition

A symbol in syntax defined by the system. The symbol may be a predefined code or an expression in a syntax defined by the coding system (e.g. post-coordination).

Requirements

Need to refer to a particular code in the system.

category:COVID-TestPillar

Element Id Observation.category:COVID-TestPillar
Cardinality 0..1
Terminology Binding ObservationCategoryCodes (Preferred)
Codes for high level observation categories.
Slice Name COVID-TestPillar
type CodeableConcept

Definition

A code that classifies the general type of observation being made.

Requirements

Used for filtering what observations are retrieved and displayed.

Comment

In addition to the required category valueset, this element allows various categorization schemes based on the owner’s definition of the category and effectively multiple categories can be used at once. The level of granularity is defined by the category concepts in the value set.

category:COVID-TestPillar.coding.system

Element Id Observation.category:COVID-TestPillar.coding.system
Cardinality 0..1
Fixed Value https://fhir.nhs.uk/CodeSystem/covid-test-pillar
type uri

Definition

The identification of the code system that defines the meaning of the symbol in the code.

Requirements

Need to be unambiguous about the source of the definition of the symbol.

Comment

The URI may be an OID (urn:oid:...) or a UUID (urn:uuid:...). OIDs and UUIDs SHALL be references to the HL7 OID registry. Otherwise, the URI should come from HL7's list of FHIR defined special URIs or it should reference to some definition that establishes the system clearly and unambiguously.

category:UKCoreCategory

Element Id Observation.category:UKCoreCategory
Cardinality 0..*
Terminology Binding ObservationCategoryCodes (Preferred)
Codes for high level observation categories.
Slice Name UKCoreCategory
type CodeableConcept

Definition

A code that classifies the general type of observation being made.

Requirements

Used for filtering what observations are retrieved and displayed.

Comment

In addition to the required category valueset, this element allows various categorization schemes based on the owner’s definition of the category and effectively multiple categories can be used at once. The level of granularity is defined by the category concepts in the value set.

category:UKCoreCategory.coding.system

Element Id Observation.category:UKCoreCategory.coding.system
Cardinality 0..1
Fixed Value http://terminology.hl7.org/CodeSystem/observation-category
type uri

Definition

The identification of the code system that defines the meaning of the symbol in the code.

Requirements

Need to be unambiguous about the source of the definition of the symbol.

Comment

The URI may be an OID (urn:oid:...) or a UUID (urn:uuid:...). OIDs and UUIDs SHALL be references to the HL7 OID registry. Otherwise, the URI should come from HL7's list of FHIR defined special URIs or it should reference to some definition that establishes the system clearly and unambiguously.

code

Element Id Observation.code
Cardinality 1..1
Terminology Binding LOINCCodes (Example)
Codes identifying names of simple observations.
type CodeableConcept

Definition

Type of observation, for COVID-10 see Observation Definition for code values.

    "code": {
        "coding":  [
            {
                "system": "http://snomed.info/sct",
                "code": "871555000",
                "display": "Detection of ribonucleic acid of Severe acute respiratory syndrome coronavirus 2"
            }
        ]
    },

Requirements

Knowing what kind of observation is being made is essential to understanding the observation.

Comment

All code-value and, if present, component.code-component.value pairs need to be taken into account to correctly understand the meaning of the observation.

code.coding:snomedCT

Element Id Observation.code.coding:snomedCT
Cardinality 0..*
Terminology Binding UKCoreObservationType (Extensible)
A code from the SNOMED Clinical Terminology UK coding system describing a type of observation
Slice Name snomedCT
type Coding

Definition

A reference to a code defined by a terminology system.

Requirements

Allows for alternative encodings within a code system, and translations to other code systems.

Comment

Codes may be defined very casually in enumerations, or code lists, up to very formal definitions such as SNOMED CT - see the HL7 v3 Core Principles for more information. Ordering of codings is undefined and SHALL NOT be used to infer meaning. Generally, at most only one of the coding values will be labelled as UserSelected = true.

code.coding:snomedCT.system

Element Id Observation.code.coding:snomedCT.system
Cardinality 1..1
Fixed Value http://snomed.info/sct
type uri

Definition

The identification of the code system that defines the meaning of the symbol in the code.

Requirements

Need to be unambiguous about the source of the definition of the symbol.

Comment

The URI may be an OID (urn:oid:...) or a UUID (urn:uuid:...). OIDs and UUIDs SHALL be references to the HL7 OID registry. Otherwise, the URI should come from HL7's list of FHIR defined special URIs or it should reference to some definition that establishes the system clearly and unambiguously.

code.coding:loinc

Element Id Observation.code.coding:loinc
Cardinality 0..*
Slice Name loinc
type Coding

Definition

A reference to a code defined by a terminology system.

Requirements

Allows for alternative encodings within a code system, and translations to other code systems.

Comment

Codes may be defined very casually in enumerations, or code lists, up to very formal definitions such as SNOMED CT - see the HL7 v3 Core Principles for more information. Ordering of codings is undefined and SHALL NOT be used to infer meaning. Generally, at most only one of the coding values will be labelled as UserSelected = true.

code.coding:loinc.system

Element Id Observation.code.coding:loinc.system
Cardinality 1..1
Fixed Value http://loinc.org
type uri

Definition

The identification of the code system that defines the meaning of the symbol in the code.

Requirements

Need to be unambiguous about the source of the definition of the symbol.

Comment

The URI may be an OID (urn:oid:...) or a UUID (urn:uuid:...). OIDs and UUIDs SHALL be references to the HL7 OID registry. Otherwise, the URI should come from HL7's list of FHIR defined special URIs or it should reference to some definition that establishes the system clearly and unambiguously.

subject

Element Id Observation.subject
Cardinality 1..1
type Reference(Group Device UKCoreLocation NHSDigitalPatientMinimal)

Definition

The NHS Number will be an identifier reference which can be used with PDS FHIR API to return Patient demographics. If a local Patient is available, a reference to this will be present (e.g. "Patient/123")


    "subject": {
        "reference": "Patient/123",
        "identifier":  [
            {
                "system": "https://fhir.nhs.uk/Id/nhs-number",
                "value": "987123456"
            }
        ]
    },

Requirements

Observations have no value if you don't know who or what they're about.

Comment

One would expect this element to be a cardinality of 1..1. The only circumstance in which the subject can be missing is when the observation is made by a device that does not know the patient. In this case, the observation SHALL be matched to a patient through some context/channel matching technique, and at this point, the observation should be updated.

Constraints

  • patient-reference (WARNING) subject - An identifier reference or resource reference must be provided
  • patient-nhs (ERROR) Supplied NHS Number is outside the English and Welsh NHS Number range or length of the number is wrong.

subject.identifier.system

Element Id Observation.subject.identifier.system
Cardinality 1..1
Fixed Value https://fhir.nhs.uk/Id/nhs-number
type uri

Definition

Establishes the namespace for the value - that is, a URL that describes a set values that are unique.

Requirements

There are many sets of identifiers. To perform matching of two identifiers, we need to know what set we're dealing with. The system identifies a particular set of unique identifiers.

Comment

Identifier.system is always case sensitive.

effective[x]

Element Id Observation.effective[x]
Cardinality 1..1
type dateTime

Definition

The date and time the result was asserted.


    "effectiveDateTime": "2020-09-23T13:00:08.476+00:00"

Requirements

Knowing when an observation was deemed true is important to its relevance as well as determining trends.

Comment

At least a date should be present unless this observation is a historical report. For recording imprecise or "fuzzy" times (For example, a blood glucose measurement taken "after breakfast") use the Timing datatype which allow the measurement to be tied to regular life events.

performer

Element Id Observation.performer
Cardinality 0..*
type Reference(NHSDigitalOrganization CareTeam NHSDigitalPatient NHSDigitalPractitionerRoleMinimalNHSDigitalReference)

Definition

Who was responsible for asserting the observed value as "true".


"performer": [
  {
    "type": "Organization",
    "identifier": {
      "type": {
        "coding": [
          {
            "system": "https://fhir.nhs.uk/CodeSystem/organisation-role",
            "code": "173",
            "display": "PATHOLOGY LAB"
          }
        ]
      },
      "value": "LFD004"
    }
  },
  {
    "type": "Organization",
    "identifier": {
      "type": {
        "coding": [
          {
            "system": "https://fhir.nhs.uk/Id/OrgType",
            "code": "TestCentreId",
            "display": "Testing Centre"
          }
        ]
      },
      "value": "WKE03"
    }
  }
]


Requirements

May give a degree of confidence in the observation and also indicates where follow-up questions should be directed.

Comment

References SHALL be a reference to an actual FHIR resource, and SHALL be resolvable (allowing for access control, temporary unavailability, etc.). Resolution can be either by retrieval from the URL, or, where applicable by resource type, by treating an absolute reference as a canonical URL and looking it up in a local registry/repository.

Constraints

  • performer (ERROR) An identifier reference or resource reference must be provided

value[x]

Element Id Observation.value[x]
Cardinality 0..1
type QuantityCodeableConceptstringbooleanintegerRangeRatioSampledDatatimedateTimePeriod

Definition

COVID-19 valueCodeableConcept

The COVID 19 test result. This is a SNOMED CT from the valueSet associated with the code, see Observation Definition


    "valueCodeableConcept": {
        "coding":  [
            {
                "system": "http://snomed.info/sct",
                "code": "1240581000000104",
                "display": "SARS-CoV-2 (severe acute respiratory syndrome coronavirus 2) detection result positive"
            }
        ],
        "text": "SARS-CoV-2-ORGY"
    },

Requirements

An observation exists to have a value, though it might not if it is in error, or if it represents a group of observations.

Comment

An observation may have; 1) a single value here, 2) both a value and a set of related or component values, or 3) only a set of related or component values. If a value is present, the datatype for this element should be determined by Observation.code. A CodeableConcept with just a text would be used instead of a string if the field was usually coded, or if the type associated with the Observation.code defines a coded value. For additional guidance, see the Notes section below.

bodySite.coding:snomedCT

Element Id Observation.bodySite.coding:snomedCT
Cardinality 0..1
Terminology Binding UKCoreBodySite (Extensible)
A code from the SNOMED Clinical Terminology UK with the expression (<<442083009
anatomical or acquired body structure )
Slice Name snomedCT
type Coding

Definition

A reference to a code defined by a terminology system.

Requirements

Allows for alternative encodings within a code system, and translations to other code systems.

Comment

Codes may be defined very casually in enumerations, or code lists, up to very formal definitions such as SNOMED CT - see the HL7 v3 Core Principles for more information. Ordering of codings is undefined and SHALL NOT be used to infer meaning. Generally, at most only one of the coding values will be labelled as UserSelected = true.

bodySite.coding:snomedCT.system

Element Id Observation.bodySite.coding:snomedCT.system
Cardinality 1..1
Fixed Value http://snomed.info/sct
type uri

Definition

The identification of the code system that defines the meaning of the symbol in the code.

Requirements

Need to be unambiguous about the source of the definition of the symbol.

Comment

The URI may be an OID (urn:oid:...) or a UUID (urn:uuid:...). OIDs and UUIDs SHALL be references to the HL7 OID registry. Otherwise, the URI should come from HL7's list of FHIR defined special URIs or it should reference to some definition that establishes the system clearly and unambiguously.

method

Element Id Observation.method
Cardinality 0..1
Terminology Binding ObservationMethods (Extensible)
type CodeableConcept

Definition

The name of the test that was performed, this is a SNOMED CT concept.


    "method": {
        "coding":  [
            {
                "system": "http://snomed.info/sct",
                "code": "1240461000000109",
                "display": "Measurement of SARS-CoV-2 antibody (procedure)"
            }
        ]
    },

Requirements

In some cases, method can impact results and is thus used for determining whether results can be compared or determining significance of results.

Comment

Only used if not implicit in code for Observation.code.

specimen

Element Id Observation.specimen
Cardinality 0..1
type Reference(Specimen)

Definition

For COVID-19 Test History. The identifier of the specimen used for the test.


    "specimen": {
        "identifier": {
            "system": "https://fhir.nhs.uk/Id/SpecimenId",
            "value": "eb89a392-5b20-11eb-ae93-0242ac130002"
        }
    },

Comment

Should only be used if not implicit in code found in Observation.code. Observations are not made on specimens themselves; they are made on a subject, but in many cases by the means of a specimen. Note that although specimens are often involved, they are not always tracked and reported explicitly. Also note that observation resources may be used in contexts that track the specimen explicitly (e.g. Diagnostic Report).

device

Element Id Observation.device
Cardinality 0..1
type Reference(Device DeviceMetric)

Definition

Details of the COVID-19 test kit used.


    "device": {
        "identifier": {
            "system": "https://fhir.nhs.uk/Id/Covid19-TestKit",
            "value": "LFT"
        },
        "display": "Lateral Flow Test"
    }

Comment

Note that this is not meant to represent a device involved in the transmission of the result, e.g., a gateway. Such devices may be documented using the Provenance resource where relevant.

component.code.coding:snomedCT

Element Id Observation.component.code.coding:snomedCT
Cardinality 0..*
Terminology Binding UKCoreObservationType (Extensible)
A code from the SNOMED Clinical Terminology UK coding system describing a type of observation
Slice Name snomedCT
type Coding

Definition

A reference to a code defined by a terminology system.

Requirements

Allows for alternative encodings within a code system, and translations to other code systems.

Comment

Codes may be defined very casually in enumerations, or code lists, up to very formal definitions such as SNOMED CT - see the HL7 v3 Core Principles for more information. Ordering of codings is undefined and SHALL NOT be used to infer meaning. Generally, at most only one of the coding values will be labelled as UserSelected = true.

component.code.coding:snomedCT.system

Element Id Observation.component.code.coding:snomedCT.system
Cardinality 1..1
Fixed Value http://snomed.info/sct
type uri

Definition

The identification of the code system that defines the meaning of the symbol in the code.

Requirements

Need to be unambiguous about the source of the definition of the symbol.

Comment

The URI may be an OID (urn:oid:...) or a UUID (urn:uuid:...). OIDs and UUIDs SHALL be references to the HL7 OID registry. Otherwise, the URI should come from HL7's list of FHIR defined special URIs or it should reference to some definition that establishes the system clearly and unambiguously.

NHSDigital-OperationOutcome

Conformance url FHIR Module Maturity Level
https://fhir.nhs.uk/StructureDefinition/NHSDigital-OperationOutcome Implementation Support normative

Conformance Rules



with OperationOutcome

idΣ0..1System.String
versionIdΣ0..1id
lastUpdatedΣ1..1instant
sourceΣ0..1uri
profileΣ0..*canonical(StructureDefinition)
securityΣ0..*CodingBinding
tagΣ0..*Coding
supportingInfoI0..*Extension(Reference(Resource))
severityS Σ1..1codeBinding
codeS Σ1..1codeBinding
systemΣ1..1uri
versionΣ0..1string
codeΣ1..1code
displayΣ0..1string
userSelectedΣ0..1boolean
textΣ0..1string
diagnosticsS Σ0..1string
locationS Σ0..*string
expressionS Σ0..*string

from OperationOutcome

idΣ0..1System.String
versionIdΣ0..1id
lastUpdatedΣ1..1instant
sourceΣ0..1uri
profileΣ0..*canonical(StructureDefinition)
securityΣ0..*CodingBinding
tagΣ0..*Coding
supportingInfoI0..*Extension(Reference(Resource))
severityS Σ1..1codeBinding
codeS Σ1..1codeBinding
systemΣ1..1uri
versionΣ0..1string
codeΣ1..1code
displayΣ0..1string
userSelectedΣ0..1boolean
textΣ0..1string
diagnosticsS Σ0..1string
locationS Σ0..*string
expressionS Σ0..*string

keyhumanseverityexpression
nhsd-errrorcodeAn NHS Digital error or warning code is requirederror(severity = 'information') or ((severity != 'information') and details.empty().not())

API Error or Warning Codes

codedisplaydefinition
ACCESS_DENIEDAccess has been denied to process this requestAlthough authenticated - the system or user does not have permission for a particular request. Recommend using HTTP Status Code 403
ACCESS_DENIED_LEVELAccess has been denied because you need higher level permissionsThe request requires higher pemission levels than the authentication provided. For example NHS login has three main levels of P0, P5 and P9 - and the request held a P0 level, instead of P9. Recommend using HTTP Status Code 403
ACCESS_TOKEN_EXPIREDAccess token has expiredObtain a new access token - the provided access token has expired and is no longer valid, access tokens only have a short life time. Recommend using HTTP Status Code 401
ACCESS_TOKEN_INVALIDAuthorization header not formatted correctlyThe bearer token could not be retrieved from the Authorization header, format should be 'Bearer INSERT-ACCESS-TOKEN'. Recommend using HTTP Status Code 401
ACCESS_TOKEN_MISSINGAuthorization header not sentThe access token must be passed in the Authorization header. The format should be 'Bearer INSERT-ACCESS-TOKEN'. Recommend using HTTP Status Code 400
TIMEOUTRequest has timed outThe request has not responded in the timeout period, retry the request. Recommend using HTTP Status Code 408
TOO_MANY_REQUESTSYour connection has exceeded the rate limitAPIs have different rate limits - and your request has been rejected. Rate limits can be per application (connection) or per API. A detailed reason will be returned in the diagnoistics field. Wait a short period and re-try, ideally with an exponential back-off policy. Recommend using HTTP Status Code 429
METHOD_NOT_ALLOWEDMethod not allowedThe request method (verb) is not permitted on this endpoint. Recommend using HTTP Status Code 405
SERVICE_UNAVAILABLEService unavailable - could be temporaryThere has been a processing failure in the request chain. This could be tranisent failure for a single request, a temporary service issue or maintenance window. Re-send the request after the time specified in the Retry-After header. Normally maps to HTTP Status Code 503
SERVICE_ERRORService failure or unexpected errorThere has been server or service problem and it could be limited to this one request. Re-send the request after a short period of time. Normally maps to HTTP Status Code 500
RESOURCE_NOT_FOUNDResource not foundThe URL did not point to an existing resource. This could be a simple incorrect url path, or for some REST APIs this can equate to a person or prescription not existing in that API. Recommend using HTTP Status Code 404
MISSING_HEADERA required header is missingInform the caller which required header is missing in the request. Some APIs will return a list of missing headers, others will return the first one. If a list is returned, there will be one issue per error. Recommend using HTTP Status Code 400
VALIDATION_ERRORA paremeter or value has resulted in a validation errorReturns which parameter or value was incorrect, and why. Some APIs will return a list of errors, others will return the first one. If a list is returned, there will be one issue per error. Recommend using HTTP Status Code 400
MISSING_VALUEA required value is missingInform the caller which value is missing value in the request. Recommend using HTTP Status Code 400
NOT_ACCEPTABLECompatible content was not availableThe request content string did not result in a matching content type that could be returned. If an API version was requested and it is invalid the message should make that clear. Recommend using HTTP Status Code 406

Example HL7 FHIR Validation Error

{
    "resourceType": "OperationOutcome",
    "id": "1a388581-dbbe-43e3-9054-f5976c0245e5",
    "meta": {
        "lastUpdated": "2021-04-21T16:58:00+00:00"
    },
    "issue":  [
        {
            "severity": "information",
            "code": "processing",
            "diagnostics": "This element does not match any known slice defined in the profile https://fhir.nhs.uk/StructureDefinition/NHSDigital-Patient",
            "location":  [
                "Patient.identifier[1]",
                "Line 1, Col 651"
            ]
        },
        {
            "severity": "error",
            "code": "processing",
            "details": {
                "coding":  [
                    {
                        "system": "https://fhir.nhs.uk/CodeSystem/Spine-ErrorOrWarningCode",
                        "code": "INVALID_VALUE",
                        "display": "Invalid value"
                    }
                ]
            },
            "diagnostics": "Patient.gender: minimum required = 1, but only found 0 (from https://fhir.nhs.uk/StructureDefinition/NHSDigital-Patient)",
            "location":  [
                "Patient",
                "Line 1, Col 37"
            ]
        }
    ]
}

Example Data Business Rule Error

{
    "resourceType": "OperationOutcome",
    "id": "rrt-2959959087381887325-c-geu2-24001-82918062-1",
    "meta": {
        "lastUpdated": "2021-04-14T11:35:00+00:00"
    },
    "issue":  [
        {
            "severity": "error",
            "code": "value",
            "details": {
                "coding":  [
                    {
                        "system": "https://fhir.nhs.uk/CodeSystem/Spine-ErrorOrWarningCode",
                        "code": "INVALID_VALUE",
                        "display": "Invalid value"
                    }
                ]
            },
            "diagnostics": "(invalid_request) firstName is missing",
            "location":  [
                "/data/attributes/firstName"
            ]
        }
    ]
}

NHSDigital-Organization

Conformance url FHIR Module Maturity Level
https://fhir.nhs.uk/StructureDefinition/NHSDigital-Organization Administration normative

Conformance Rules



UK Core Organization

mainLocationI0..*Extension(Reference(UK Core Location))
url1..1System.StringFixed Value
valuePeriodPeriod
relationshipsI0..1Extension(Complex)
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uriFixed Value
valueΣ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
activeΣ ?!0..1boolean
activePeriodI0..*Extension(Complex)
organisationRoleI0..1Extension(Complex)
systemΣ1..1uriFixed Value
versionΣ0..1string
codeΣ0..1code
displayΣ0..1string
userSelectedΣ0..1boolean
textΣ0..1string
nameS Σ I0..1string
alias0..*string
systemΣ I0..1codeBinding
valueΣ1..1string
useΣ ?!0..1codeBinding
rankΣ0..1positiveInt
periodΣ I0..1Period
addressS I0..*Address
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uri
valueΣ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
purpose0..1CodeableConceptBinding
name0..1HumanName
telecomI0..*ContactPoint
address0..1Address
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string

from UK Core Organization

mainLocationI0..*Extension(Reference(UK Core Location))
url1..1System.StringFixed Value
valuePeriodPeriod
relationshipsI0..1Extension(Complex)
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uriFixed Value
valueΣ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
activeΣ ?!0..1boolean
activePeriodI0..*Extension(Complex)
organisationRoleI0..1Extension(Complex)
systemΣ1..1uriFixed Value
versionΣ0..1string
codeΣ0..1code
displayΣ0..1string
userSelectedΣ0..1boolean
textΣ0..1string
nameS Σ I0..1string
alias0..*string
systemΣ I0..1codeBinding
valueΣ1..1string
useΣ ?!0..1codeBinding
rankΣ0..1positiveInt
periodΣ I0..1Period
addressS I0..*Address
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uri
valueΣ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
purpose0..1CodeableConceptBinding
name0..1HumanName
telecomI0..*ContactPoint
address0..1Address
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string

keyhumanseverityexpression
nhsd-6partOf.display - a display name should be providedwarningdisplay.exists()

Constraint Profiles

nameprofilepurpose
NHSDigitalOrganizationODShttps://fhir.nhs.uk/StructureDefinition/NHSDigital-Organization-ODS

Constraint profile which represents the full NHS Digital requirement for Organization resources as defined in ODS.

NHSDigitalOrganizationSDShttps://fhir.nhs.uk/StructureDefinition/NHSDigital-Organization-SDS

To constraint a profile for HL7 v3 backwards compatability in EPS. This will also mirror data held within the SDS LDAP database.


Definition

A formally or informally recognized grouping of people or organizations formed for the purpose of achieving some form of collective action. Includes companies, institutions, corporations, departments, community groups, healthcare practice groups, payer/insurer, etc.

Constraints

  • org-1 (ERROR) The organization SHALL at least have a name or an identifier, and possibly more than one

extension:organizationPeriod.url

Element Id Organization.extension:organizationPeriod.url
Cardinality 1..1
Fixed Value http://hl7.org/fhir/StructureDefinition/organization-period
type http://hl7.org/fhirpath/System.String

Definition

Source of the definition for the extension code - a logical name or a URL.

Comment

The definition may point directly to a computable or human-readable definition of the extensibility codes, or it may be a logical URI as declared in some other specification. The definition SHALL be a URI for the Structure Definition defining the extension.

identifier

Element Id Organization.identifier
Cardinality 1..*
Slicing OPEN discriminator - VALUE system
type Identifier

Definition

MUST contain an ANANA/ODS code.

 "identifier":  [
        {
            "use": "official",
            "system": "https://fhir.nhs.uk/Id/ods-organization-code",
            "value": "RR805"
        }
    ],

Requirements

Organizations are known by a variety of ids. Some institutions maintain several, and most collect identifiers for exchange with other organizations concerning the organization.

Comment

MUST contain an ANANA/ODS code.

identifier:odsOrganisationCode

Element Id Organization.identifier:odsOrganisationCode
Cardinality 1..1
Slice Name odsOrganisationCode
type Identifier

Definition

Identifier code supplier by the Organisation Data Service.

Requirements

Organizations are known by a variety of ids. Some institutions maintain several, and most collect identifiers for exchange with other organizations concerning the organization.

identifier:odsOrganisationCode.system

Element Id Organization.identifier:odsOrganisationCode.system
Cardinality 1..1
Fixed Value https://fhir.nhs.uk/Id/ods-organization-code
type uri

Definition

Establishes the namespace for the value - that is, a URL that describes a set values that are unique.

Requirements

There are many sets of identifiers. To perform matching of two identifiers, we need to know what set we're dealing with. The system identifies a particular set of unique identifiers.

Comment

Identifier.system is always case sensitive.

identifier:odsSiteCode

Element Id Organization.identifier:odsSiteCode
Cardinality 0..0
Slice Name odsSiteCode
type Identifier

Definition

ODS Site code to identify the organisation at site level.

Requirements

Organizations are known by a variety of ids. Some institutions maintain several, and most collect identifiers for exchange with other organizations concerning the organization.

identifier:odsSiteCode.system

Element Id Organization.identifier:odsSiteCode.system
Cardinality 1..1
Fixed Value https://fhir.nhs.uk/Id/ods-site-code
type uri

Definition

Establishes the namespace for the value - that is, a URL that describes a set values that are unique.

Requirements

There are many sets of identifiers. To perform matching of two identifiers, we need to know what set we're dealing with. The system identifies a particular set of unique identifiers.

Comment

Identifier.system is always case sensitive.

type.coding.system

Element Id Organization.type.coding.system
Cardinality 1..1
Fixed Value https://fhir.nhs.uk/CodeSystem/organisation-role
type uri

Definition

The identification of the code system that defines the meaning of the symbol in the code.

Requirements

Need to be unambiguous about the source of the definition of the symbol.

Comment

The URI may be an OID (urn:oid:...) or a UUID (urn:uuid:...). OIDs and UUIDs SHALL be references to the HL7 OID registry. Otherwise, the URI should come from HL7's list of FHIR defined special URIs or it should reference to some definition that establishes the system clearly and unambiguously.

name

Element Id Organization.name
Cardinality 0..1
type string

Definition

The ODS/SDS name of the Organisation


    "name": "NHS NIGHTINGALE HOSPITAL YORKSHIRE AND THE HUMBER"

Requirements

Need to use the name as the label of the organization.

Comment

If the name of an organization changes, consider putting the old name in the alias column so that it can still be located through searches.

telecom

Element Id Organization.telecom
Cardinality 0..*
type ContactPoint

Definition

Contact phone numbers and address of the organisation.


    "telecom":  [
        {
            "system": "fax",
            "value": "0113 242 6496",
            "use": "work"
        },
        {
            "system": "phone",
            "value": "0113 243 3144",
            "use": "work"
        }
    ],
    "address":  [
        {
            "line":  [
                "KINGS ROAD"
            ],
            "city": "HARROGATE",
            "postalCode": "HG1 5LA",
            "country": "ENGLAND"
        }
    ],
    "partOf": {
        "reference": "https://directory.spineservices.nhs.uk/R4/Organization/RR805",
        "identifier": {
            "system": "https://fhir.nhs.uk/Id/ods-organization-code",
            "value": "RR8"
        }
    }

Requirements

Human contact for the organization.

Comment

The use code 'home' is not to be used. Note that these contacts are not the contact details of people who are employed by or represent the organization, but official contacts for the organization itself.

Constraints

  • org-3 (ERROR) The telecom of an organization can never be of use 'home'

NHSDigital-Patient

Profile uri FHIR Module Maturity Level
https://fhir.nhs.uk/StructureDefinition/NHSDigital-Patient Administration normative


UK Core Patient

url1..1System.StringFixed Value
valueAddressAddress
birthSexI0..1Extension(code)
url1..1System.StringFixed Value
valueBooleanboolean
contactPreferenceI0..1Extension(Complex)
deathNotificationStatusI0..1Extension(Complex)
ethnicCategoryI0..1Extension(CodeableConcept)
residentialStatusI0..1Extension(CodeableConcept)
url1..1System.StringFixed Value
valueBooleanboolean
medicalApplianceSupplierS I0..1Extension(Reference(UK Core Organization))
nominatedPharmacyS I0..1Extension(Reference(UK Core Organization))
preferredDispenserOrganizationS I0..1Extension(Reference(UK Core Organization))
nhsNumberVerificationStatusI0..1Extension(CodeableConcept)
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemS Σ1..1uriFixed Value
valueΣ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
activeΣ ?!0..1boolean
useΣ ?!0..1codeBinding
textΣ0..1string
familyS Σ0..1string
givenS Σ0..5string
prefixΣ0..*string
suffixΣ0..*string
periodΣ I0..1Period
otherContactSystemI0..1Extension(Coding)
valueΣ0..1string
useΣ ?!0..1codeBinding
rankΣ0..1positiveInt
periodΣ I0..1Period
genderS Σ0..1codeBinding
url1..1System.StringFixed Value
valueDateTimedateTime
deceasedBooleanboolean
deceasedDateTimedateTime
addressKeyS I0..1Extension(Complex)
useΣ ?!0..1codeBinding
typeΣ0..1codeBinding
textΣ0..1string
lineΣ0..*string
cityΣ0..1string
districtΣ0..1string
stateΣ0..1string
postalCodeΣ0..1string
countryΣ0..1string
periodΣ I0..1Period
maritalStatus0..1CodeableConceptBinding
multipleBirthBooleanboolean
multipleBirthIntegerinteger
photoI0..*Attachment
contactRankI0..1Extension(positiveInt)
copyCorrespondenceIndicatorI0..1Extension(boolean)
relationship0..*CodeableConceptBinding
name0..1HumanName
otherContactSystemI0..1Extension(Coding)
valueΣ0..1string
useΣ ?!0..1codeBinding
rankΣ0..1positiveInt
periodΣ I0..1Period
address0..1Address
gender0..1codeBinding
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
periodI0..1Period
url1..1uriFixed Value
valueCodingCoding
url1..1uriFixed Value
valueCodingCoding
url1..1System.StringFixed Value
language1..1CodeableConceptBinding
preferred0..1boolean
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uri
valueΣ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uriFixed Value
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uriFixed Value
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uriFixed Value
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
typeΣ1..1codeBinding

from UK Core Patient

url1..1System.StringFixed Value
valueAddressAddress
birthSexI0..1Extension(code)
url1..1System.StringFixed Value
valueBooleanboolean
contactPreferenceI0..1Extension(Complex)
deathNotificationStatusI0..1Extension(Complex)
ethnicCategoryI0..1Extension(CodeableConcept)
residentialStatusI0..1Extension(CodeableConcept)
url1..1System.StringFixed Value
valueBooleanboolean
medicalApplianceSupplierS I0..1Extension(Reference(UK Core Organization))
nominatedPharmacyS I0..1Extension(Reference(UK Core Organization))
preferredDispenserOrganizationS I0..1Extension(Reference(UK Core Organization))
nhsNumberVerificationStatusI0..1Extension(CodeableConcept)
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemS Σ1..1uriFixed Value
valueΣ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
activeΣ ?!0..1boolean
useΣ ?!0..1codeBinding
textΣ0..1string
familyS Σ0..1string
givenS Σ0..5string
prefixΣ0..*string
suffixΣ0..*string
periodΣ I0..1Period
otherContactSystemI0..1Extension(Coding)
valueΣ0..1string
useΣ ?!0..1codeBinding
rankΣ0..1positiveInt
periodΣ I0..1Period
genderS Σ0..1codeBinding
url1..1System.StringFixed Value
valueDateTimedateTime
deceasedBooleanboolean
deceasedDateTimedateTime
addressKeyS I0..1Extension(Complex)
useΣ ?!0..1codeBinding
typeΣ0..1codeBinding
textΣ0..1string
lineΣ0..*string
cityΣ0..1string
districtΣ0..1string
stateΣ0..1string
postalCodeΣ0..1string
countryΣ0..1string
periodΣ I0..1Period
maritalStatus0..1CodeableConceptBinding
multipleBirthBooleanboolean
multipleBirthIntegerinteger
photoI0..*Attachment
contactRankI0..1Extension(positiveInt)
copyCorrespondenceIndicatorI0..1Extension(boolean)
relationship0..*CodeableConceptBinding
name0..1HumanName
otherContactSystemI0..1Extension(Coding)
valueΣ0..1string
useΣ ?!0..1codeBinding
rankΣ0..1positiveInt
periodΣ I0..1Period
address0..1Address
gender0..1codeBinding
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
periodI0..1Period
url1..1uriFixed Value
valueCodingCoding
url1..1uriFixed Value
valueCodingCoding
url1..1System.StringFixed Value
language1..1CodeableConceptBinding
preferred0..1boolean
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uri
valueΣ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uriFixed Value
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uriFixed Value
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uriFixed Value
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
typeΣ1..1codeBinding

keyhumanseverityexpression
patient-nhsSupplied NHS Number is outside the English and Welsh NHS Number range or length of the number is wrong.erroridentifier.where(system='https://fhir.nhs.uk/Id/nhs-number').exists().not() or (identifier.where(system='https://fhir.nhs.uk/Id/nhs-number').exists() and identifier.where(system='https://fhir.nhs.uk/Id/nhs-number').value.matches('^([456789]{1}[0-9]{9})$'))

Constraint Profiles

nameprofilepurpose
NHSDigitalPatientMinimalhttps://fhir.nhs.uk/StructureDefinition/NHSDigital-Patient-Minimal

Constraint profile for which enforces elements in contained Patient resources.

NHSDigitalPatientPDShttps://fhir.nhs.uk/StructureDefinition/NHSDigital-Patient-PDS

Constraint profile which represents the full NHS Digital requirement for Patient resources as defined in Personnel Demogrpahics Service (PDS).


This profile is designed around Patient Demographics Services and PDS may be used as the source of this data. Use of PDS is not mandatory for Patient resources, Patient Administration Systems (PAS) and Master Patient Index (MPI) may be used instead. Only traced NHS Number SHOULD be used with this resource unless explicitly stated. Within NHS Trusts the inclusion of MRN (Medical Record Numbers) identifiers is highly recommended.


Definition

Demographics and other administrative information about an individual or animal receiving care or other health-related services.

Constraints

  • patient-nhs (ERROR) Supplied NHS Number is outside the English and Welsh NHS Number range or length of the number is wrong.

extension:birthPlace.url

Element Id Patient.extension:birthPlace.url
Cardinality 1..1
Fixed Value http://hl7.org/fhir/StructureDefinition/patient-birthPlace
type http://hl7.org/fhirpath/System.String

Definition

Source of the definition for the extension code - a logical name or a URL.

Comment

The definition may point directly to a computable or human-readable definition of the extensibility codes, or it may be a logical URI as declared in some other specification. The definition SHALL be a URI for the Structure Definition defining the extension.

extension:cadavericDonor.url

Element Id Patient.extension:cadavericDonor.url
Cardinality 1..1
Fixed Value http://hl7.org/fhir/StructureDefinition/patient-cadavericDonor
type http://hl7.org/fhirpath/System.String

Definition

Source of the definition for the extension code - a logical name or a URL.

Comment

The definition may point directly to a computable or human-readable definition of the extensibility codes, or it may be a logical URI as declared in some other specification. The definition SHALL be a URI for the Structure Definition defining the extension.

extension:patientReligion.url

Element Id Patient.extension:patientReligion.url
Cardinality 1..1
Fixed Value http://hl7.org/fhir/StructureDefinition/patient-religion
type http://hl7.org/fhirpath/System.String

Definition

Source of the definition for the extension code - a logical name or a URL.

Comment

The definition may point directly to a computable or human-readable definition of the extensibility codes, or it may be a logical URI as declared in some other specification. The definition SHALL be a URI for the Structure Definition defining the extension.

extension:patientInterpreterRequired.url

Element Id Patient.extension:patientInterpreterRequired.url
Cardinality 1..1
Fixed Value http://hl7.org/fhir/StructureDefinition/patient-interpreterRequired
type http://hl7.org/fhirpath/System.String

Definition

Source of the definition for the extension code - a logical name or a URL.

Comment

The definition may point directly to a computable or human-readable definition of the extensibility codes, or it may be a logical URI as declared in some other specification. The definition SHALL be a URI for the Structure Definition defining the extension.

extension:medicalApplianceSupplier

Element Id Patient.extension:medicalApplianceSupplier
Cardinality 0..1
Slice Name medicalApplianceSupplier
type Extension(ExtensionUKCoreMedicalApplianceSupplier)

Definition

{
           "url": "https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-PreferredDispenserOrganization",
           "valueReference": {
               "identifier": {
                   "system": "https://fhir.nhs.uk/Id/ods-organization-code",
                   "value": "Y23456"
               }
           }
       }

extension:nominatedPharmacy

Element Id Patient.extension:nominatedPharmacy
Cardinality 0..*
Slice Name nominatedPharmacy
type Extension(ExtensionUKCoreNominatedPharmacy)

Definition

A patient can choose up to three nominated dispensers to cover different contractor types:

  • Community Pharmacy
  • Appliance Contractor
  • Dispensing Doctor

Each of those nominations is held in an Extension.

All require a ODS/ANANA code from Organisation Data Services. This contains download CSV files for these organisations, for API access please see Organisation Data Service - FHIR API

nominatedPharmacy (extension nominatedPharmacy)

"extension":  [
        {
            "url": "https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-NominatedPharmacy",
            "valueReference": {
                "identifier": {
                    "system": "https://fhir.nhs.uk/Id/ods-organization-code",
                    "value": "Y12345"
                }
            }
        },

extension:preferredDispenserOrganization

Element Id Patient.extension:preferredDispenserOrganization
Cardinality 0..1
Slice Name preferredDispenserOrganization
type Extension(ExtensionUKCorePreferredDispenserOrganization)

Definition

{
           "url": "https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-MedicalApplianceSupplier",
           "valueReference": {
               "identifier": {
                   "system": "https://fhir.nhs.uk/Id/ods-organization-code",
                   "value": "Y34567"
               }
           }
       }

identifier

Element Id Patient.identifier
Cardinality 0..*
Slicing OPEN discriminator - VALUE system
type Identifier

Definition

At least one patient identifier, MUST be provided.

Where a traced NHS number is available for a patient this MUST be included. In general an untraced NHS Number MUST not be used, if an untracted NHS Number is used the extension https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-NHSNumberVerificationStatus MUST be used.

Name FHIR identifier OID/HL7v3 HL7v2 ITK Format Description
NHS Number https://fhir.nhs.uk/Id/nhs-number 2.16.840.1.113883.2.1.4.1 NHS NNNNNNNNNN NHS Number allocated to the patient in England and Wales
CHI Number 2.16.840.1.113883.2.1.3.2.4.16.53 NNNNNNNNNN CHI Number allocated to the patient in Scotland
NHS Logon ID https://fhir.nhs.uk/Id/nhs-login-sub uuid NHS Login unique identifier which is referred to as sub in NHS Login (OpenID)

Local identifiers such as MRN MUST include a system which identifies NHS provider/assigning authority.

"identifier":  [
        {
            "system": "https://fhir.nhs.uk/Id/nhs-number",
            "value": "9000000009"
        },
        {
            "system": "https://fhir.elmet.nhs.uk/Id/MRN",
            "value": "X54321"
        }
    ],

Requirements

Patients are almost always assigned specific numerical identifiers.

identifier:nhsNumber

Element Id Patient.identifier:nhsNumber
Cardinality 0..1
Slice Name nhsNumber
type Identifier

Definition

An identifier for this patient.

Requirements

Patients are almost always assigned specific numerical identifiers.

identifier:nhsNumber.system

Element Id Patient.identifier:nhsNumber.system
Cardinality 1..1
Fixed Value https://fhir.nhs.uk/Id/nhs-number
type uri

Definition

Establishes the namespace for the value - that is, a URL that describes a set values that are unique.

Requirements

There are many sets of identifiers. To perform matching of two identifiers, we need to know what set we're dealing with. The system identifies a particular set of unique identifiers.

Comment

Identifier.system is always case sensitive.

name

Element Id Patient.name
Cardinality 0..*
type HumanName

Definition

At least one patient name must be provided. It is recommended a use is provided.

"name":  [
        {
            "family": "Smith",
            "given":  [
                "Jane"
            ],
            "prefix":  [
                "Mrs"
            ],
            "suffix":  [
                "MBE"
            ],
            "use": "usual"
        }
    ]

Requirements

Need to be able to track the patient by multiple names. Examples are your official name and a partner name.

Comment

A patient may have multiple names with different uses or applicable periods. For animals, the name is a "HumanName" in the sense that is assigned and used by humans and has the same patterns.

name.family

Element Id Patient.name.family
Cardinality 0..1
type string

Definition

The part of a name that links to the genealogy. In some cultures (e.g. Eritrea) the family name of a son is the first name of his father.

Comment

Family Name may be decomposed into specific parts using extensions (de, nl, es related cultures).

name.given

Element Id Patient.name.given
Cardinality 0..5
type string

Definition

Given names, including any middle names.

Comment

If only initials are recorded, they may be used in place of the full name parts. Initials may be separated into multiple given names but often aren't due to practical limitations. This element is not called "first name" since given names do not always come first.

telecom

Element Id Patient.telecom
Cardinality 0..*
type ContactPoint

Definition

List of contact points for the patient; for example, phone numbers or email addresses. When a patient tagged as restricted or very restricted is retrieved, all contact points are removed from the response.

"telecom":  [
        {
            "system": "phone",
            "use": "work",
            "value": "01632960587"
        }
    ]

Requirements

People have (primary) ways to contact them in some way such as phone, email.

Comment

A Patient may have multiple ways to be contacted with different uses or applicable periods. May need to have options for contacting the person urgently and also to help with identification. The address might not go directly to the individual, but may reach another party that is able to proxy for the patient (i.e. home phone, or pet owner's phone).

gender

Element Id Patient.gender
Cardinality 0..1
Terminology Binding AdministrativeGender (Required)
The gender of a person used for administrative purposes.
type code

Definition

Classification of the gender of a patient. The classification is phenotypical rather than genotypical, i.e. it does not provide codes for medical or scientific purposes. It is the administrative gender that the patient wishes to be known as. In some cases, this may not be the same as the patient’s registered birth gender, or their current clinical gender.

Requirements

Needed for identification of the individual, in combination with (at least) name and birth date.

Comment

The gender might not match the biological sex as determined by genetics or the individual's preferred identification. Note that for both humans and particularly animals, there are other legitimate possibilities than male and female, though the vast majority of systems and contexts only support male and female. Systems providing decision support or enforcing business rules should ideally do this on the basis of Observations dealing with the specific sex or gender aspect of interest (anatomical, chromosomal, social, etc.) However, because these observations are infrequently recorded, defaulting to the administrative gender is common practice. Where such defaulting occurs, rule enforcement should allow for the variation between administrative and biological, chromosomal and other gender aspects. For example, an alert about a hysterectomy on a male should be handled as a warning or overridable error, not a "hard" error. See the Patient Gender and Sex section for additional information about communicating patient gender and sex.

birthDate

Element Id Patient.birthDate
Cardinality 0..1
type date

Definition

The date on which the patient was born or is officially deemed to have been born.

It is a date in the format yyyy-mm-dd. Due to data quality issues on a small number of patients yyyy-mm and yyyy format may also be returned.

When a patient tagged as very restricted is retrieved, birth date is removed from the response.

Requirements

Age of the individual drives many clinical processes.

Comment

At least an estimated year should be provided as a guess if the real DOB is unknown There is a standard extension "patient-birthTime" available that should be used where Time is required (such as in maternity/infant care systems).

birthDate.extension:birthTime.url

Element Id Patient.birthDate.extension:birthTime.url
Cardinality 1..1
Fixed Value http://hl7.org/fhir/StructureDefinition/patient-birthTime
type http://hl7.org/fhirpath/System.String

Definition

Source of the definition for the extension code - a logical name or a URL.

Comment

The definition may point directly to a computable or human-readable definition of the extensibility codes, or it may be a logical URI as declared in some other specification. The definition SHALL be a URI for the Structure Definition defining the extension.

deceased[x]

Element Id Patient.deceased[x]
Cardinality 0..1
type booleandateTime

Definition

The date and time on which a person died or is officially deemed to have died, if applicable and known.

It is a datetime in the format yyyy-mm-ddTHH:MM:SS+HH:MM or yyyy-mm-dd. Due to data quality issues on a small number of patients yyyy-mm and yyyy format may also be returned.

When a patient tagged as very restricted is retrieved, death date is removed from the response.

Requirements

The fact that a patient is deceased influences the clinical process. Also, in human communication and relation management it is necessary to know whether the person is alive.

Comment

If there's no value in the instance, it means there is no statement on whether or not the individual is deceased. Most systems will interpret the absence of a value as a sign of the person being alive.

address

Element Id Patient.address
Cardinality 0..*
type Address

Definition

List of addresses associated with the patient.

These are fully populated on a retrieval or a successful update, only the home address is returned on a search. When a patient tagged as restricted or very restricted is retrieved, all addresses are removed from the response.

"address":  [
        {
            "line":  [
                "1 Trevelyan Square",
                "Boar Lane",
                "City Centre",
                "Leeds",
                "West Yorkshire"
            ],
            "postalCode": "LS1 6AE",
            "use": "home"
        }
    ],

Requirements

May need to keep track of patient addresses for contacting, billing or reporting requirements and also to help with identification.

Comment

Patient may have multiple addresses with different uses or applicable periods.

address.extension:addressKey

Element Id Patient.address.extension:addressKey
Cardinality 0..1
Slice Name addressKey
type Extension(ExtensionUKCoreAddressKey)

Definition

Postal Address File (PAF) key associated with this address formatted as a FHIR extension. Empty if no PAF key for the address is known, or an object specifying the code system of the address key and the value of the address key.

contact

Element Id Patient.contact
Cardinality 0..*
type BackboneElement

Definition

A list of patient contacts. Only emergency contacts are returned and only emergency contacts should be added. Any other contacts should be added to the patients Related Person. Patients designate here any contact number they desire to be used in case of an emergency. Note, while a patient may also desire to record various related persons telecom details, these do not separately allow for a concept of emergency contact; only ranking. See RelatedPerson endpoint. When a patient tagged as restricted or very restricted is retrieved, all contacts are removed from the response.

Requirements

Need to track people you can contact about the patient.

Comment

Contact covers all kinds of contact parties: family members, business contacts, guardians, caregivers. Not applicable to register pedigree and family ties beyond use of having contact.

Constraints

  • pat-1 (ERROR) SHALL at least contain a contact's details or a reference to an organization

communication

Element Id Patient.communication
Cardinality 0..*
type BackboneElement

Definition

A language which may be used to communicate with the patient about his or her health.

Requirements

If a patient does not speak the local language, interpreters may be required, so languages spoken and proficiency are important things to keep track of both for patient and other persons of interest.

Comment

If no language is specified, this implies that the default local language is spoken. If you need to convey proficiency for multiple modes, then you need multiple Patient.Communication associations. For animals, language is not a relevant field, and should be absent from the instance. If the Patient does not speak the default local language, then the Interpreter Required Standard can be used to explicitly declare that an interpreter is required.

communication.extension:proficiency.extension:level.url

Element Id Patient.communication.extension:proficiency.extension:level.url
Cardinality 1..1
Fixed Value level
type uri

Definition

Source of the definition for the extension code - a logical name or a URL.

Comment

The definition may point directly to a computable or human-readable definition of the extensibility codes, or it may be a logical URI as declared in some other specification. The definition SHALL be a URI for the Structure Definition defining the extension.

communication.extension:proficiency.extension:type.url

Element Id Patient.communication.extension:proficiency.extension:type.url
Cardinality 1..1
Fixed Value type
type uri

Definition

Source of the definition for the extension code - a logical name or a URL.

Comment

The definition may point directly to a computable or human-readable definition of the extensibility codes, or it may be a logical URI as declared in some other specification. The definition SHALL be a URI for the Structure Definition defining the extension.

communication.extension:proficiency.url

Element Id Patient.communication.extension:proficiency.url
Cardinality 1..1
Fixed Value http://hl7.org/fhir/StructureDefinition/patient-proficiency
type http://hl7.org/fhirpath/System.String

Definition

Source of the definition for the extension code - a logical name or a URL.

Comment

The definition may point directly to a computable or human-readable definition of the extensibility codes, or it may be a logical URI as declared in some other specification. The definition SHALL be a URI for the Structure Definition defining the extension.

generalPractitioner

Element Id Patient.generalPractitioner
Cardinality 0..*
Slicing OPENATEND discriminator - VALUE identifier.system
type Reference(NHSDigitalPractitioner NHSDigitalPractitionerRole NHSDigitalOrganization)

Definition

GP Surgery SHOULD be provided. It is recommended the patients GP Surgery is the first item in the array and branch surgery is second. It is also suggested type and display (name of practice) is also included.

"generalPractitioner":  [
        {
            "type": "Organization"
            "identifier": {
                "system": "https://fhir.nhs.uk/Id/ods-organization-code",
                "value": "Y12345"
            },
            "display": "Kirkgate Practice"
        }
    ]

Requirements

GP Surgery SHOULD be provided. It is recommended the patients GP Surgery is the first item in the array and branch surgery is second. It is also suggested type and display (name of practice) is also included.

Comment

This may be the primary care provider (in a GP context), or it may be a patient nominated care manager in a community/disability setting, or even organization that will provide people to perform the care provider roles. It is not to be used to record Care Teams, these should be in a CareTeam resource that may be linked to the CarePlan or EpisodeOfCare resources. Multiple GPs may be recorded against the patient for various reasons, such as a student that has his home GP listed along with the GP at university during the school semesters, or a "fly-in/fly-out" worker that has the onsite GP also included with his home GP to remain aware of medical issues. Jurisdictions may decide that they can profile this down to 1 if desired, or 1 per type.

Constraints

  • nhsd-5 (WARNING) generalPractitioner - a display name should be provided

generalPractitioner:registeredGPPractice

Element Id Patient.generalPractitioner:registeredGPPractice
Cardinality 0..1
Slice Name registeredGPPractice
type Reference(UKCorePractitioner UKCoreOrganization UKCorePractitionerRole)

Definition

Patient's registered GP Practice. Use V81998 for no registered practice and V81999 for not known as per NHS Data Dictionary guidelines.

Comment

This may be the primary care provider (in a GP context), or it may be a patient nominated care manager in a community/disability setting, or even organization that will provide people to perform the care provider roles. It is not to be used to record Care Teams, these should be in a CareTeam resource that may be linked to the CarePlan or EpisodeOfCare resources. Multiple GPs may be recorded against the patient for various reasons, such as a student that has his home GP listed along with the GP at university during the school semesters, or a "fly-in/fly-out" worker that has the onsite GP also included with his home GP to remain aware of medical issues. Jurisdictions may decide that they can profile this down to 1 if desired, or 1 per type.

generalPractitioner:registeredGPPractice.identifier.system

Element Id Patient.generalPractitioner:registeredGPPractice.identifier.system
Cardinality 0..1
Fixed Value https://fhir.nhs.uk/Id/ods-organization-code
type uri

Definition

Establishes the namespace for the value - that is, a URL that describes a set values that are unique.

Requirements

There are many sets of identifiers. To perform matching of two identifiers, we need to know what set we're dealing with. The system identifies a particular set of unique identifiers.

Comment

Identifier.system is always case sensitive.

generalPractitioner:registeredGeneralMedicalPractitioner

Element Id Patient.generalPractitioner:registeredGeneralMedicalPractitioner
Cardinality 0..*
Slice Name registeredGeneralMedicalPractitioner
type Reference(UKCorePractitioner UKCoreOrganization UKCorePractitionerRole)

Definition

This is to support legacy use cases where the patients GP is present

Comment

This may be the primary care provider (in a GP context), or it may be a patient nominated care manager in a community/disability setting, or even organization that will provide people to perform the care provider roles. It is not to be used to record Care Teams, these should be in a CareTeam resource that may be linked to the CarePlan or EpisodeOfCare resources. Multiple GPs may be recorded against the patient for various reasons, such as a student that has his home GP listed along with the GP at university during the school semesters, or a "fly-in/fly-out" worker that has the onsite GP also included with his home GP to remain aware of medical issues. Jurisdictions may decide that they can profile this down to 1 if desired, or 1 per type.

generalPractitioner:registeredGeneralMedicalPractitioner.identifier.system

Element Id Patient.generalPractitioner:registeredGeneralMedicalPractitioner.identifier.system
Cardinality 0..1
Fixed Value https://fhir.nhs.uk/Id/gmp-number
type uri

Definition

Establishes the namespace for the value - that is, a URL that describes a set values that are unique.

Requirements

There are many sets of identifiers. To perform matching of two identifiers, we need to know what set we're dealing with. The system identifies a particular set of unique identifiers.

Comment

Identifier.system is always case sensitive.

managingOrganization.identifier.system

Element Id Patient.managingOrganization.identifier.system
Cardinality 0..1
Fixed Value https://fhir.nhs.uk/Id/ods-organization-code
type uri

Definition

Establishes the namespace for the value - that is, a URL that describes a set values that are unique.

Requirements

There are many sets of identifiers. To perform matching of two identifiers, we need to know what set we're dealing with. The system identifies a particular set of unique identifiers.

Comment

Identifier.system is always case sensitive.

NHSDigital-Practitioner

Conformance url FHIR Module Maturity Level
https://fhir.nhs.uk/StructureDefinition/NHSDigital-Practitioner Administration normative


UK Core Practitioner

useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uri
valueΣ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uriFixed Value
valueΣ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uriFixed Value
valueΣ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uriFixed Value
valueΣ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uriFixed Value
valueΣ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uriFixed Value
valueΣ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uriFixed Value
valueΣ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uriFixed Value
valueΣ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uriFixed Value
valueΣ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uriFixed Value
valueΣ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
activeΣ0..1boolean
nameS Σ1..*HumanName
systemΣ I0..1codeBinding
valueΣ1..1string
useΣ ?!1..1codeBinding
rankΣ0..1positiveInt
periodΣ I0..1Period
addressΣ0..*Address
genderΣ0..1codeBinding
birthDateΣ0..1date
photoI0..*Attachment
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
code1..1CodeableConcept
periodI0..1Period
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
communication0..*CodeableConceptBinding

from UK Core Practitioner

useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uri
valueΣ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uriFixed Value
valueΣ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uriFixed Value
valueΣ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uriFixed Value
valueΣ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uriFixed Value
valueΣ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uriFixed Value
valueΣ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uriFixed Value
valueΣ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uriFixed Value
valueΣ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uriFixed Value
valueΣ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uriFixed Value
valueΣ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
activeΣ0..1boolean
nameS Σ1..*HumanName
systemΣ I0..1codeBinding
valueΣ1..1string
useΣ ?!1..1codeBinding
rankΣ0..1positiveInt
periodΣ I0..1Period
addressΣ0..*Address
genderΣ0..1codeBinding
birthDateΣ0..1date
photoI0..*Attachment
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
code1..1CodeableConcept
periodI0..1Period
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
communication0..*CodeableConceptBinding

keyhumanseverityexpression
prac-nmcNMC must be of the format NNANNNNAwarningidentifier.where(system='https://fhir.hl7.org.uk/Id/nmc-number').exists().not() or (identifier.where(system='https://fhir.hl7.org.uk/Id/nmc-number').exists() and identifier.where(system='https://fhir.hl7.org.uk/Id/nmc-number').value.matches('^[0-9]{2}[A-Z]{1}[0-9]{4}[A-Z]{1}$'))
prac-gmpGMP must be of the format GNNNNNNN and not be a spurious code (starts with G6 or G7)warningidentifier.where(system='https://fhir.hl7.org.uk/Id/gmp-number').exists().not() or (identifier.where(system='https://fhir.hl7.org.uk/Id/gmp-number').exists() and identifier.where(system='https://fhir.hl7.org.uk/Id/gmp-number').value.matches('^[G]{1}[01234589]{1}[0-9]{6}$'))
prac-gmcGMC must be of the format CNNNNNNNwarningidentifier.where(system='https://fhir.hl7.org.uk/Id/gmc-number').exists().not() or (identifier.where(system='https://fhir.hl7.org.uk/Id/gmc-number').exists() and identifier.where(system='https://fhir.hl7.org.uk/Id/gmc-number').value.matches('^[C]{1}[0-9]{7}$'))
prac-gphcGPHC must be of the format NNNNNNNwarningidentifier.where(system='https://fhir.hl7.org.uk/Id/gphc-number').exists().not() or (identifier.where(system='https://fhir.hl7.org.uk/Id/gphc-number').exists() and identifier.where(system='https://fhir.hl7.org.uk/Id/gphc-number').value.matches('^[0-9]{7}$'))
prac-gmcreferencenumberGMC Reference Number must be of the format NNNNNNNerroridentifier.where(system='https://fhir.hl7.org.uk/Id/gmc-reference-number').exists().not() or (identifier.where(system='https://fhir.hl7.org.uk/Id/gphc-number').exists() and identifier.where(system='https://fhir.hl7.org.uk/Id/gmc-reference-number').value.matches('^[0-9]{7}$'))
prac-hcpcHCPC must be of the format AANNNNNNwarningidentifier.where(system='https://fhir.hl7.org.uk/Id/hcpc-number').exists().not() or (identifier.where(system='https://fhir.hl7.org.uk/Id/hcpc-number').exists() and identifier.where(system='https://fhir.hl7.org.uk/Id/hcpc-number').value.matches('^[A-Z]{2}[0-9]{6}$'))
prac-dinDIN format must be NNNNNNwarningidentifier.where(system='https://fhir.hl7.org.uk/Id/din-number').exists().not() or (identifier.where(system='https://fhir.hl7.org.uk/Id/din-number').exists() and identifier.where(system='https://fhir.hl7.org.uk/Id/din-number').value.matches('^[0-9]{6}$'))
prac-sds-user-numericsds-user-id must be numericerroridentifier.where(system='https://fhir.nhs.uk/Id/sds-user-id').exists().not() or (identifier.where(system='https://fhir.nhs.uk/Id/sds-user-id').exists() and identifier.where(system='https://fhir.nhs.uk/Id/sds-user-id').value.matches('^[0-9]+$'))
nacs-code-retiredNACS (/ODS) Practitioner Identifier is retired in NHS FHIR and should not be used. Please use the actual naming system instead (e,g, https://fhir.hl7.org.uk/Id/gmc-number, https://fhir.hl7.org.uk/Id/gmp-number, etc).warningidentifier.where(system='https://fhir.hl7.org.uk/Id/professional-code').exists().not()

Definition

A person who is directly or indirectly involved in the provisioning of healthcare.

Constraints

identifier

Element Id Practitioner.identifier
Cardinality 1..*
Slicing OPEN discriminator - VALUE system
type Identifier

Definition

SHOULD contain a professional code.

The inclusion of a professional code is strongly recommended. For consultants and doctors a prescribing code should be present. Please see NHS Data Model and Dictionary for details on these code.

The SDS User Id should be sourced from NHS Identity (SmartCard), this is also held within the Spine Directory Service LDAP database.

FHIR identifier OID/HL7v3 HL7v2 ITK Format Description Professional Code Prescribing Code
https://fhir.hl7.org.uk/Id/gmp-number 2.16.840.1.113883.2.1.3.2.4.16.62 GMP G[1234589]NNNNNN General Medical Practitioner Code GENERAL MEDICAL PRACTITIONER PPD CODE. Formerly called GP General National Code (GNC). Yes No, also include DIN
https://fhir.hl7.org.uk/Id/gmc-number 2.16.840.1.113883.2.1.3.2.4.16.63 GMC CNNNNNNN General Medical Council Code CONSULTANT_CODE Yes Yes
https://fhir.hl7.org.uk/Id/nmc-number NNANNNNA Nursing and Midwifery Council Code Yes Yes
https://fhir.hl7.org.uk/Id/gphc-number NNNNNNN General Pharmaceutical Council Code Yes Yes
https://fhir.hl7.org.uk/Id/hcpc-number AANNNNNN(*) Health and Care Professional Council Code Yes Yes
https://fhir.hl7.org.uk/Id/din-number NNNNNN DOCTOR INDEX NUMBER No Yes
https://fhir.nhs.uk/Id/sds-user-id 1.2.826.0.1285.0.2.0.65 N(*) SDS User ID No No
https://fhir.nhs.uk/Id/gmc-reference-number 2.16.840.1.113883.2.1.3.2.4.18.29 NNNNNNN GMC Reference Number No No
https://fhir.hl7.org.uk/Id/professional-code 1.2.826.0.1285.0.2.1.54 A(*) ODS/NACS Practitioner Code (retired). Included for backwards compatibility No No

Format

  • N = any number
  • A = any alpha

(*) NHS Prescription Services systems require these prescriber codes to be 8 characters long. Additional zeroes (0) should be inserted immediately following the first 2 alpha characters to extend the code to 8 characters as necessary.

Code Format Example
GP/medical prescriber (DIN) NNNNNN 954000
Nurse prescriber (NMC) NNANNNNA 71A2998E
Pharmacist prescriber (GPHC) NNNNNNN 2033467
Optometrist prescriber NN-NNNNN 01-09491
Podiatrist prescriber (HCPC) CHNNNNNN CH029821
Physiotherapist prescriber (HCPC) PHNNNNNN PH095159
Radiographer prescriber (HCPC) RANNNNNN RA088262
Dietician prescriber (HCPC) DTNNNNNN DT012345
Paramedic prescriber (HCPC) PANNNNNN PA054321

The Doctor Index Number (DIN) will be present in the resource even if they are prescribing using a different prescribing code. This code is called the spurious code is held within the NHSDigital-PractitionerRole resource and MUST NOT be contained in the Practitioner resource.

In the example below, the practitioner (GP as they have a GMP Code) has a SDS User Id of 3415870201, GMP code of G1234567 and DIN code of 123456. If the GP was in a role, prescribing using a spurious code this would be found in the PractitionerRole.

{
  "resourceType": "Practitioner",
  ...
  "identifier": [
          {
            "system": "https://fhir.nhs.uk/Id/sds-user-id",
            "value": "3415870201"
          },
          {
            "system": "https://fhir.hl7.org.uk/Id/gmp-number",
            "value": "G1234567"
          },
          {
            "system": "https://fhir.hl7.org.uk/Id/din-number",
            "value": "123456"
          }
        ]
  ...
}

In the example below, the practitioner (Consultant as they have a GMC Code) has a SDS User Id of 1415870201, GMC code of C2134567.

{
  "resourceType": "Practitioner",
  ...
  "identifier": [
          {
            "system": "https://fhir.nhs.uk/Id/sds-user-id",
            "value": "1415870201"
          },
          {
            "system": "https://fhir.hl7.org.uk/Id/gmc-number",
            "value": "C2134567"
          }
        ]
  ...
}

Professional Code System (Unspecified/Unknown System)

In cases where the profession code is present but it is not certain what type of code this is, the https://fhir.hl7.org.uk/Id/professional-code system should be used. It is also used for backwards compatibility with EPS HL7 v3 ODS/NACS Practitioner Identifiers. This system may include codes from different codes and this may lead to identfication issues, for example GPhC and GMC Reference Number have the same format (7 digits), if one of these is received it is not known if this is a doctor and or a pharmacist.

E.g. in the example below, 2134567 is probably a GMC Reference Number but we are not certain.

{
  "resourceType": "Practitioner",
  ...
  "identifier": [
          {
            "system": "https://fhir.nhs.uk/Id/sds-user-id",
            "value": "1415870201"
          },
          {
            "system": "https://fhir.hl7.org.uk/Id/professional-code",
            "value": "2134567"
          }
        ]
  ...
}

Requirements

Often, specific identities are assigned for the agent.

Comment

SHOULD contain a professional code or SDS-user-id.

identifier:gmcCode

Element Id Practitioner.identifier:gmcCode
Cardinality 0..1
Slice Name gmcCode
type Identifier

Definition

An identifier that applies to this person in this role.

Requirements

Often, specific identities are assigned for the agent.

identifier:gmcCode.system

Element Id Practitioner.identifier:gmcCode.system
Cardinality 1..1
Fixed Value https://fhir.hl7.org.uk/Id/gmc-number
type uri

Definition

Establishes the namespace for the value - that is, a URL that describes a set values that are unique.

Requirements

There are many sets of identifiers. To perform matching of two identifiers, we need to know what set we're dealing with. The system identifies a particular set of unique identifiers.

Comment

Identifier.system is always case sensitive.

identifier:gmpCode

Element Id Practitioner.identifier:gmpCode
Cardinality 0..1
Slice Name gmpCode
type Identifier

Definition

Formerly called GP General National Code (GNC).

Requirements

Often, specific identities are assigned for the agent.

identifier:gmpCode.system

Element Id Practitioner.identifier:gmpCode.system
Cardinality 1..1
Fixed Value https://fhir.hl7.org.uk/Id/gmp-number
type uri

Definition

Establishes the namespace for the value - that is, a URL that describes a set values that are unique.

Requirements

There are many sets of identifiers. To perform matching of two identifiers, we need to know what set we're dealing with. The system identifies a particular set of unique identifiers.

Comment

Identifier.system is always case sensitive.

identifier:dinCode

Element Id Practitioner.identifier:dinCode
Cardinality 0..1
Slice Name dinCode
type Identifier

Definition

An identifier that applies to this person in this role.

Requirements

Often, specific identities are assigned for the agent.

identifier:dinCode.system

Element Id Practitioner.identifier:dinCode.system
Cardinality 1..1
Fixed Value https://fhir.hl7.org.uk/Id/din-number
type uri

Definition

Establishes the namespace for the value - that is, a URL that describes a set values that are unique.

Requirements

There are many sets of identifiers. To perform matching of two identifiers, we need to know what set we're dealing with. The system identifies a particular set of unique identifiers.

Comment

Identifier.system is always case sensitive.

identifier:gphcCode

Element Id Practitioner.identifier:gphcCode
Cardinality 0..1
Slice Name gphcCode
type Identifier

Definition

An identifier that applies to this person in this role.

Requirements

Often, specific identities are assigned for the agent.

identifier:gphcCode.system

Element Id Practitioner.identifier:gphcCode.system
Cardinality 1..1
Fixed Value https://fhir.hl7.org.uk/Id/gphc-number
type uri

Definition

Establishes the namespace for the value - that is, a URL that describes a set values that are unique.

Requirements

There are many sets of identifiers. To perform matching of two identifiers, we need to know what set we're dealing with. The system identifies a particular set of unique identifiers.

Comment

Identifier.system is always case sensitive.

identifier:hcpcNumber

Element Id Practitioner.identifier:hcpcNumber
Cardinality 0..1
Slice Name hcpcNumber
type Identifier

Definition

An identifier that applies to this person in this role.

Requirements

Often, specific identities are assigned for the agent.

identifier:hcpcNumber.system

Element Id Practitioner.identifier:hcpcNumber.system
Cardinality 1..1
Fixed Value https://fhir.hl7.org.uk/Id/hcpc-number
type uri

Definition

Establishes the namespace for the value - that is, a URL that describes a set values that are unique.

Requirements

There are many sets of identifiers. To perform matching of two identifiers, we need to know what set we're dealing with. The system identifies a particular set of unique identifiers.

Comment

Identifier.system is always case sensitive.

identifier:nmcNumber

Element Id Practitioner.identifier:nmcNumber
Cardinality 0..1
Slice Name nmcNumber
type Identifier

Definition

An identifier that applies to this person in this role.

Requirements

Often, specific identities are assigned for the agent.

identifier:nmcNumber.system

Element Id Practitioner.identifier:nmcNumber.system
Cardinality 1..1
Fixed Value https://fhir.hl7.org.uk/Id/nmc-number
type uri

Definition

Establishes the namespace for the value - that is, a URL that describes a set values that are unique.

Requirements

There are many sets of identifiers. To perform matching of two identifiers, we need to know what set we're dealing with. The system identifies a particular set of unique identifiers.

Comment

Identifier.system is always case sensitive.

identifier:professionalNumber

Element Id Practitioner.identifier:professionalNumber
Cardinality 0..*
Slice Name professionalNumber
type Identifier

Definition

A legacy system to support conversion of NPfIT/v3 CodeSysem to FHIR. This should not be used on new implementations. More accurate systems such as https://fhir.hl7.org.uk/Id/gmp-number and https://fhir.hl7.org.uk/Id/gmc-number

Although this system was intended to only be ODS/NACS Practitioner Identifiers, it has been used as a general purpose system. Therefore the codes can't be trusted e.g. 1234567 could be referring to a GPhC (pharmacist) or GMC Reference Number (doctor). These codes on their won should not be considered safe for the purposes of Practitioner identification.

Requirements

Often, specific identities are assigned for the agent.

identifier:professionalNumber.system

Element Id Practitioner.identifier:professionalNumber.system
Cardinality 1..1
Fixed Value https://fhir.hl7.org.uk/Id/professional-code
type uri

Definition

Establishes the namespace for the value - that is, a URL that describes a set values that are unique.

Requirements

There are many sets of identifiers. To perform matching of two identifiers, we need to know what set we're dealing with. The system identifies a particular set of unique identifiers.

Comment

Identifier.system is always case sensitive.

identifier:gmcReferenceNumber

Element Id Practitioner.identifier:gmcReferenceNumber
Cardinality 0..1
Slice Name gmcReferenceNumber
type Identifier

Definition

This should not be confused with https://fhir.hl7.org.uk/Id/gmc-number which is the Consultants CONSULTANT_CODE.

This is considered a supplemental code and the official English NHS identifiers (https://fhir.hl7.org.uk/Id/gmc-number or https://fhir.hl7.org.uk/Id/gmp-number) should also be provided.

Requirements

Often, specific identities are assigned for the agent.

identifier:gmcReferenceNumber.system

Element Id Practitioner.identifier:gmcReferenceNumber.system
Cardinality 1..1
Fixed Value https://fhir.hl7.org.uk/Id/gmc-reference-number
type uri

Definition

Establishes the namespace for the value - that is, a URL that describes a set values that are unique.

Requirements

There are many sets of identifiers. To perform matching of two identifiers, we need to know what set we're dealing with. The system identifies a particular set of unique identifiers.

Comment

Identifier.system is always case sensitive.

identifier:sdsUserId

Element Id Practitioner.identifier:sdsUserId
Cardinality 0..1
Slice Name sdsUserId
type Identifier

Definition

Used with CIS2 and Spine

Requirements

Often, specific identities are assigned for the agent.

identifier:sdsUserId.system

Element Id Practitioner.identifier:sdsUserId.system
Cardinality 1..1
Fixed Value https://fhir.nhs.uk/Id/sds-user-id
type uri

Definition

Establishes the namespace for the value - that is, a URL that describes a set values that are unique.

Requirements

There are many sets of identifiers. To perform matching of two identifiers, we need to know what set we're dealing with. The system identifies a particular set of unique identifiers.

Comment

Identifier.system is always case sensitive.

name

Element Id Practitioner.name
Cardinality 1..*
type HumanName

Definition

The name(s) associated with the practitioner.

Requirements

The name(s) that a Practitioner is known by. Where there are multiple, the name that the practitioner is usually known as should be used in the display.

Comment

The selection of the use property should ensure that there is a single usual name specified, and others use the nickname (alias), old, or other values as appropriate. In general, select the value to be used in the ResourceReference.display based on this: 1. There is more than 1 name 2. Use = usual 3. Period is current to the date of the usage 4. Use = official 5. Other order as decided by internal business rules.

telecom

Element Id Practitioner.telecom
Cardinality 0..*
type ContactPoint

Definition

A contact detail for the practitioner, e.g. a telephone number or an email address.

Requirements

Need to know how to reach a practitioner independent to any roles the practitioner may have.

Comment

Person may have multiple ways to be contacted with different uses or applicable periods. May need to have options for contacting the person urgently and to help with identification. These typically will have home numbers, or mobile numbers that are not role specific.

NHSDigital-PractitionerRole

Conformance url FHIR Module Maturity Level
https://fhir.nhs.uk/StructureDefinition/NHSDigital-PractitionerRole Administration normative


UK Core PractitionerRole

costCentreS I0..1Extension(Complex)
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uri
valueΣ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uriFixed Value
valueΣ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uriFixed Value
valueΣ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
activeΣ0..1boolean
periodΣ I0..1Period
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uri
valueΣ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
systemΣ1..1uri
versionΣ0..1string
codeΣ1..1code
displayΣ0..1string
userSelectedΣ0..1boolean
systemΣ0..1uriFixed Value
versionΣ0..1string
codeΣ0..1code
displayΣ0..1string
userSelectedΣ0..1boolean
systemΣ0..1uriFixed Value
versionΣ0..1string
codeΣ0..1code
displayΣ0..1string
userSelectedΣ0..1boolean
systemΣ0..1uriFixed Value
versionΣ0..1string
codeΣ0..1code
displayΣ0..1string
userSelectedΣ0..1boolean
textΣ0..1string
systemΣ1..1uri
versionΣ0..1string
codeΣ1..1code
displayΣ1..1string
userSelectedΣ0..1boolean
systemΣ0..1uriFixed Value
versionΣ0..1string
codeΣ0..1code
displayΣ0..1string
userSelectedΣ0..1boolean
textΣ0..1string
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uri
valueΣ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uri
valueΣ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
systemΣ I0..1codeBinding
valueΣ1..1string
useΣ ?!1..1codeBinding
rankΣ0..1positiveInt
periodΣ I0..1Period
daysOfWeek0..*codeBinding
allDay0..1boolean
availableStartTime0..1time
availableEndTime0..1time
description1..1string
duringI0..1Period
availabilityExceptions0..1string
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string

from UK Core PractitionerRole
costCentreS I0..1Extension(Complex)
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uri
valueΣ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uriFixed Value
valueΣ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uriFixed Value
valueΣ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
activeΣ0..1boolean
periodΣ I0..1Period
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uri
valueΣ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
systemΣ1..1uri
versionΣ0..1string
codeΣ1..1code
displayΣ0..1string
userSelectedΣ0..1boolean
systemΣ0..1uriFixed Value
versionΣ0..1string
codeΣ0..1code
displayΣ0..1string
userSelectedΣ0..1boolean
systemΣ0..1uriFixed Value
versionΣ0..1string
codeΣ0..1code
displayΣ0..1string
userSelectedΣ0..1boolean
systemΣ0..1uriFixed Value
versionΣ0..1string
codeΣ0..1code
displayΣ0..1string
userSelectedΣ0..1boolean
textΣ0..1string
systemΣ1..1uri
versionΣ0..1string
codeΣ1..1code
displayΣ1..1string
userSelectedΣ0..1boolean
systemΣ0..1uriFixed Value
versionΣ0..1string
codeΣ0..1code
displayΣ0..1string
userSelectedΣ0..1boolean
textΣ0..1string
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uri
valueΣ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uri
valueΣ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
systemΣ I0..1codeBinding
valueΣ1..1string
useΣ ?!1..1codeBinding
rankΣ0..1positiveInt
periodΣ I0..1Period
daysOfWeek0..*codeBinding
allDay0..1boolean
availableStartTime0..1time
availableEndTime0..1time
description1..1string
duringI0..1Period
availabilityExceptions0..1string
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string

keyhumanseverityexpression
role-spuriousSpurious Code format must be G6NNNNNN or G7NNNNNNwarningidentifier.where(system='https://fhir.hl7.org.uk/Id/nhsbsa-spurious-code').exists().not() or (identifier.where(system='https://fhir.hl7.org.uk/Id/nhsbsa-spurious-code').exists() and identifier.where(system='https://fhir.hl7.org.uk/Id/nhsbsa-spurious-code').value.matches('^[G]{1}[67]{1}[0-9]{6}$'))
role-sds-role-profileSDS Role Profile Id must be 12 digitserroridentifier.where(system='https://fhir.nhs.uk/Id/sds-role-profile-id').exists().not() or (identifier.where(system='https://fhir.nhs.uk/Id/sds-role-profile-id').exists() and identifier.where(system='https://fhir.nhs.uk/Id/sds-role-profile-id').value.matches('^[0-9]{12}$'))
nhsd-2An identifier reference or resource reference must be providedwarning(reference.exists() or identifier.exists())
role-nmcNMC must be of the format NNANNNNAwarningidentifier.exists().not() or identifier.where(system='https://fhir.hl7.org.uk/Id/nmc-number').exists().not() or (identifier.where(system='https://fhir.hl7.org.uk/Id/nmc-number').exists() and identifier.where(system='https://fhir.hl7.org.uk/Id/nmc-number').value.matches('^[0-9]{2}[A-Z]{1}[0-9]{4}[A-Z]{1}$'))
role-gmpGMP must be of the format GNNNNNNN and not be a spurious code (starts with G6 or G7)erroridentifier.exists().not() or identifier.where(system='https://fhir.hl7.org.uk/Id/gmp-number').exists().not() or (identifier.where(system='https://fhir.hl7.org.uk/Id/gmp-number').exists() and identifier.where(system='https://fhir.hl7.org.uk/Id/gmp-number').value.matches('^[G]{1}[01234589]{1}[0-9]{6}$'))
role-gmcGMC must be of the format CNNNNNNNerroridentifier.exists().not() or identifier.where(system='https://fhir.hl7.org.uk/Id/gmc-number').exists().not() or (identifier.where(system='https://fhir.hl7.org.uk/Id/gmc-number').exists() and identifier.where(system='https://fhir.hl7.org.uk/Id/gmc-number').value.matches('^[C]{1}[0-9]{7}$'))
role-gphcGPHC must be of the format NNNNNNNwarningidentifier.exists().not() or identifier.where(system='https://fhir.hl7.org.uk/Id/gphc-number').exists().not() or (identifier.where(system='https://fhir.hl7.org.uk/Id/gphc-number').exists() and identifier.where(system='https://fhir.hl7.org.uk/Id/gphc-number').value.matches('^[0-9]{7}$'))
role-hcpcHCPC must be of the format AANNNNNNwarningidentifier.exists().not() or identifier.where(system='https://fhir.hl7.org.uk/Id/hcpc-number').exists().not() or (identifier.where(system='https://fhir.hl7.org.uk/Id/hcpc-number').exists() and identifier.where(system='https://fhir.hl7.org.uk/Id/hcpc-number').value.matches('^[A-Z]{2}[0-9]{6}$'))
role-dinDIN format must be NNNNNNwarningidentifier.exists().not() or identifier.where(system='https://fhir.hl7.org.uk/Id/din-number').exists().not() or (identifier.where(system='https://fhir.hl7.org.uk/Id/din-number').exists() and identifier.where(system='https://fhir.hl7.org.uk/Id/din-number').value.matches('^[0-9]{6}$'))
role-sds-user-numericsds-user-id must be numericerroridentifier.where(system='https://fhir.nhs.uk/Id/sds-user-id').exists().not() or (identifier.where(system='https://fhir.nhs.uk/Id/sds-user-id').exists() and identifier.where(system='https://fhir.nhs.uk/Id/sds-user-id').value.matches('^[0-9]+$'))
role-gmcreferencenumberGMC Reference Number must be of the format NNNNNNNerroridentifier.where(system='https://fhir.hl7.org.uk/Id/gmc-reference-number').exists().not() or (identifier.where(system='https://fhir.hl7.org.uk/Id/gphc-number').exists() and identifier.where(system='https://fhir.hl7.org.uk/Id/gmc-reference-number').value.matches('^[0-9]{7}$'))
nacs-code-retiredNACS (/ODS) Practitioner Identifier is retired in NHS FHIR and should not be used. Please use the actual naming system instead (e,g, https://fhir.hl7.org.uk/Id/gmc-number, https://fhir.hl7.org.uk/Id/gmp-number, etc).warningidentifier.where(system='https://fhir.hl7.org.uk/Id/professional-code').exists().not()
nhsd-1PractitionerRole.organization - An identifier reference or resource reference should be providedwarning(reference.exists() or identifier.exists())
nhsd-3PractitionerRole.location - An identifier or resource reference must be providederror(reference.exists() or identifier.exists())
nhsd-4PractitionerRole.healthcareService - An identifier reference or resource reference must be providederror(reference.exists() or (identifier.exists()))

Constraint Profiles

nameprofilepurpose
NHSDigitalPractitionerRoleEPSLegalhttps://fhir.nhs.uk/StructureDefinition/NHSDigital-PractitionerRole-EPSLegal

Constraint profile for EPS MedicationRequest which enforces the legal requirement for prescriptions

NHSDigitalPractitionerRoleMinimalhttps://fhir.nhs.uk/StructureDefinition/NHSDigital-PractitionerRole-Minimal

Constraint profile for which enforces practitioner and organization elements in contained resources,

NHSDigitalPractitionerRoleSDShttps://fhir.nhs.uk/StructureDefinition/NHSDigital-PractitionerRole-SDS

Constraint profile for Electronic Prescription System which enforces practitioner, organization, sds role code, sds user profile id and telecom elements in contained resources,



Definition

A specific set of Roles/Locations/specialties/services that a practitioner may perform at an organization for a period of time.

Constraints

extension:costCentre

Element Id PractitionerRole.extension:costCentre
Cardinality 0..1
Slice Name costCentre
type Extension(ExtensionNHSDigitalAccountCode)

Definition

Optional Extension Element - found in all resources.

identifier

Element Id PractitionerRole.identifier
Cardinality 0..*
Slicing OPEN discriminator - VALUE system
type Identifier

Definition

FHIR identifier OID/HL7v3 HL7v2 ITK Format Description Professional Code Prescribing Code
https://fhir.hl7.org.uk/Id/nhsbsa-spurious-code G[67]NNNNNN NHS BSA Spurious Code GENERAL MEDICAL PRACTITIONER PPD CODE No Yes
https://fhir.nhs.uk/Id/sds-role-profile-id 1.2.826.0.1285.0.2.0.67 12 digits SDS Role Profile Code No No

The SDS Role Profile Code should be sourced from NHS Identity (SmartCard), this is also held within the Spine Directory Service LDAP database.

Holds NHS BSA spurious codes which are role specific Doctor Index Number (DIN)) codes. NHS BSA spurious codes are issued when a doctor issues medication outside of their normal role, normally at another organisation. In the example below, the doctor is working in a secondary role (with SDS Role Id of 100102238986), as this a has a spurious code of 2345213. If the doctor was prescribing in their primary role this spurious code would be absent.

{
  "resourceType": "PractitionerRole",
  ...
  "identifier": [
          {
            "system": "https://fhir.nhs.uk/Id/sds-role-profile-id",
            "value": "100102238986"
          },
          {
            "system": "https://fhir.hl7.org.uk/Id/nhsbsa-spurious-code",
            "value": "2345213"
          }
        ],
  ...
}

Requirements

Often, specific identities are assigned for the agent.

identifier:sdsRoleProfileID

Element Id PractitionerRole.identifier:sdsRoleProfileID
Cardinality 0..1
Slice Name sdsRoleProfileID
type Identifier

Definition

An identifier that applies to this person in this role.

Requirements

Often, specific identities are assigned for the agent.

identifier:sdsRoleProfileID.system

Element Id PractitionerRole.identifier:sdsRoleProfileID.system
Cardinality 1..1
Fixed Value https://fhir.nhs.uk/Id/sds-role-profile-id
type uri

Definition

Establishes the namespace for the value - that is, a URL that describes a set values that are unique.

Requirements

There are many sets of identifiers. To perform matching of two identifiers, we need to know what set we're dealing with. The system identifies a particular set of unique identifiers.

Comment

Identifier.system is always case sensitive.

identifier:nhsbsaSpuriousCode

Element Id PractitionerRole.identifier:nhsbsaSpuriousCode
Cardinality 0..1
Slice Name nhsbsaSpuriousCode
type Identifier

Definition

An identifier that applies to this person in this role.

Requirements

Often, specific identities are assigned for the agent.

identifier:nhsbsaSpuriousCode.system

Element Id PractitionerRole.identifier:nhsbsaSpuriousCode.system
Cardinality 1..1
Fixed Value https://fhir.hl7.org.uk/Id/nhsbsa-spurious-code
type uri

Definition

Establishes the namespace for the value - that is, a URL that describes a set values that are unique.

Requirements

There are many sets of identifiers. To perform matching of two identifiers, we need to know what set we're dealing with. The system identifies a particular set of unique identifiers.

Comment

Identifier.system is always case sensitive.

practitioner

Element Id PractitionerRole.practitioner
Cardinality 0..1
type Reference(NHSDigitalPractitioner)

Definition

This MUST either be a reference to a Practitioner resource or an identifier reference plus a display. In both cases the referenced resource or identifier reference should contain a professional code.

It is recommended an identifier reference and display (practitioner full name) is included. This identifier should be the Practitioner's primary professional code (see NHSDigital-Practitioner for details on professional codes).

"practitioner": {
        "display": "Dr Smith",
        "identifier": {
            "system": "https://fhir.hl7.org.uk/Id/gmc-number",
            "value": "C9876543"
          }
    },

For EPS, currently a Resource reference is required.

"practitioner": {
        "reference": "urn:uuid:1557E58E-3B1E-41DD-B3B5-D4D393DC5A3D",
        "display": "Dr Smith"
    },

Constraints

  • nhsd-2 (WARNING) An identifier reference or resource reference must be provided
  • role-nmc (WARNING) NMC must be of the format NNANNNNA
  • role-gmp (ERROR) GMP must be of the format GNNNNNNN and not be a spurious code (starts with G6 or G7)
  • role-gmc (ERROR) GMC must be of the format CNNNNNNN
  • role-gphc (WARNING) GPHC must be of the format NNNNNNN
  • role-hcpc (WARNING) HCPC must be of the format AANNNNNN
  • role-din (WARNING) DIN format must be NNNNNN
  • role-sds-user-numeric (ERROR) sds-user-id must be numeric
  • role-gmcreferencenumber (ERROR) GMC Reference Number must be of the format NNNNNNN
  • nacs-code-retired (WARNING) NACS (/ODS) Practitioner Identifier is retired in NHS FHIR and should not be used. Please use the actual naming system instead (e,g, https://fhir.hl7.org.uk/Id/gmc-number, https://fhir.hl7.org.uk/Id/gmp-number, etc).

organization

Element Id PractitionerRole.organization
Cardinality 0..1
type Reference(NHSDigitalOrganization)

Definition

This MUST either be a reference to a Organization resource or an identifier reference. In both cases the reference must contain an ANANA/ODS organisation code.

organisation resource references

It is recommended an identifier reference is included.

"organization": {
        "identifier": {
            "system": "https://fhir.nhs.uk/Id/ods-organization-code",
            "value": "RBA"
          },
        "display": "TAUNTON AND SOMERSET NHS FOUNDATION TRUST"
    }

Optionally Resource reference can be provided. This is required in the current version of EPS but this will be changed to supporting the identifier reference only.

"organization": {
        "reference": "urn:uuid:17c4270d-6966-4788-8cbc-1d1d63536b25",
        "identifier": {
            "system": "https://fhir.nhs.uk/Id/ods-organization-code",
            "value": "RBA"
          },
        "display": "TAUNTON AND SOMERSET NHS FOUNDATION TRUST"
    }

Constraints

  • nhsd-1 (WARNING) PractitionerRole.organization - An identifier reference or resource reference should be provided

code

Element Id PractitionerRole.code
Cardinality 0..*
Terminology Binding NHSDigitalPractitionerRoleCode (Extensible)
type CodeableConcept

Definition

Only supply if this is known from SmartCard/CIS2 data.

"code":  [
        {
            "coding":  [
                {
                    "system": "https://fhir.nhs.uk/CodeSystem/NHSDigital-SDS-JobRoleCode",
                    "code": "S0030:G0100:R0620"
                  }
            ]
        }
    ],

The previous system for this entry was https://fhir.hl7org.uk/CodeSystem/UKCore-SDSJobRoleName, this has been retired and https://fhir.nhs.uk/CodeSystem/NHSDigital-SDS-JobRoleCode should be used instead.

Requirements

Need to know what authority the practitioner has - what can they do?

Comment

A person may have more than one role.

code.coding:sdsJobRoleCode

Element Id PractitionerRole.code.coding:sdsJobRoleCode
Cardinality 0..1
Slice Name sdsJobRoleCode
type Coding

Definition

This value should be sourced from either APIM OAuth2 userinfo endpoint, SDS LDAP or CIS2/SmartCard details.

The CodeSystem is variable and is not present in this Implementation Guide.

Requirements

Allows for alternative encodings within a code system, and translations to other code systems.

Comment

Codes may be defined very casually in enumerations, or code lists, up to very formal definitions such as SNOMED CT - see the HL7 v3 Core Principles for more information. Ordering of codings is undefined and SHALL NOT be used to infer meaning. Generally, at most only one of the coding values will be labeled as UserSelected = true.

code.coding:sdsJobRoleCode.system

Element Id PractitionerRole.code.coding:sdsJobRoleCode.system
Cardinality 0..1
Fixed Value https://fhir.nhs.uk/CodeSystem/NHSDigital-SDS-JobRoleCode
type uri

Definition

The identification of the code system that defines the meaning of the symbol in the code.

Requirements

Need to be unambiguous about the source of the definition of the symbol.

Comment

The URI may be an OID (urn:oid:...) or a UUID (urn:uuid:...). OIDs and UUIDs SHALL be references to the HL7 OID registry. Otherwise, the URI should come from HL7's list of FHIR defined special URIs or it should reference to some definition that establishes the system clearly and unambiguously.

specialty

Element Id PractitionerRole.specialty
Cardinality 0..*
Terminology Binding PracticeSettingCodeValueSet (Preferred)
Specific specialty associated with the agency.
type CodeableConcept

Definition

This is should be the specialty linked to the role and is not necessarily the practitioners main specialty.

This can be supplemented by SNOMED CT codes from PracticeSettingCodeValueSet, no ConceptMap currently exists for mapping between the two.

 "specialty": [
        {
            "coding": [
                {
                    "system": "https://fhir.nhs.uk/CodeSystem/NHSDataModelAndDictionary-clinical-specialty",
                    "code": "100",
                    "display": "GENERAL SURGERY"
                }
            ]
        }
    ],

specialty.coding:NHSDataDictionarySpecialty

Element Id PractitionerRole.specialty.coding:NHSDataDictionarySpecialty
Cardinality 0..*
Terminology Binding NHSDataDictionaryMainClinicalSpecialty (Required)
NHS Data Dictionary Specialty
Slice Name NHSDataDictionarySpecialty
type Coding

Definition

A reference to a code defined by a terminology system.

Requirements

Allows for alternative encodings within a code system, and translations to other code systems.

Comment

Codes may be defined very casually in enumerations, or code lists, up to very formal definitions such as SNOMED CT - see the HL7 v3 Core Principles for more information. Ordering of codings is undefined and SHALL NOT be used to infer meaning. Generally, at most only one of the coding values will be labeled as UserSelected = true.

specialty.coding:NHSDataDictionarySpecialty.system

Element Id PractitionerRole.specialty.coding:NHSDataDictionarySpecialty.system
Cardinality 0..1
Fixed Value https://fhir.nhs.uk/CodeSystem/NHSDataModelAndDictionary-clinical-specialty
type uri

Definition

The identification of the code system that defines the meaning of the symbol in the code.

Requirements

Need to be unambiguous about the source of the definition of the symbol.

Comment

The URI may be an OID (urn:oid:...) or a UUID (urn:uuid:...). OIDs and UUIDs SHALL be references to the HL7 OID registry. Otherwise, the URI should come from HL7's list of FHIR defined special URIs or it should reference to some definition that establishes the system clearly and unambiguously.

specialty.coding:SNOMEDSpecialty

Element Id PractitionerRole.specialty.coding:SNOMEDSpecialty
Cardinality 0..*
Terminology Binding PracticeSettingCodeValueSet (Preferred)
Specific specialty associated with the agency.
Slice Name SNOMEDSpecialty
type Coding

Definition

A reference to a code defined by a terminology system.

Requirements

Allows for alternative encodings within a code system, and translations to other code systems.

Comment

Codes may be defined very casually in enumerations, or code lists, up to very formal definitions such as SNOMED CT - see the HL7 v3 Core Principles for more information. Ordering of codings is undefined and SHALL NOT be used to infer meaning. Generally, at most only one of the coding values will be labeled as UserSelected = true.

specialty.coding:SNOMEDSpecialty.system

Element Id PractitionerRole.specialty.coding:SNOMEDSpecialty.system
Cardinality 0..1
Fixed Value http://snomed.info/sct
type uri

Definition

The identification of the code system that defines the meaning of the symbol in the code.

Requirements

Need to be unambiguous about the source of the definition of the symbol.

Comment

The URI may be an OID (urn:oid:...) or a UUID (urn:uuid:...). OIDs and UUIDs SHALL be references to the HL7 OID registry. Otherwise, the URI should come from HL7's list of FHIR defined special URIs or it should reference to some definition that establishes the system clearly and unambiguously.

location

Element Id PractitionerRole.location
Cardinality 0..*
type Reference(NHSDigitalLocation)

Definition

The contact address for the practitioner for the service they are providing in this role. This will often be the surgery address, clinic or service address.

If using ODS Codes, the address on ODS must be checked to ensure it is correct. If the address is not correct, then Resource reference MUST be supplied.

"location":  [
         {
            "identifier": {
              "system": "https://fhir.nhs.uk/Id/ods-organization-code",
              "value": "RCB55"
            }
            "display": "YORK HOSPITAL"
          }
  ]

For EPS, currently a Resource reference is required.

"location":  [
         {
            "reference": "urn:uuid:ecc2db8e-3757-4758-a4f1-7f4c7e06662f",
            "display": "YORK HOSPITAL"
          }
  ]

Constraints

  • nhsd-3 (ERROR) PractitionerRole.location - An identifier or resource reference must be provided

healthcareService

Element Id PractitionerRole.healthcareService
Cardinality 0..1
type Reference(NHSDigitalHealthcareService)

Definition

SHOULD be provided for a practitioner in secondary care and will be a reference to clinic or service. This referenced resource or the identifier reference SHOULD contain a ODS/ANANA identifier. In secondary care Electronic Prescription Service (EPS) this will also be called prescribing cost centre. This is used for reimbursements from NHS BSA. In secondary care the healthcare/service cost centre may also be the ODS code for the clinic.

healthcareService Resource reference

An identifier reference MUST be included. For secondary care organisations this will be the ODS/ANANA Cost Centre code given to a clinic.

"healthcareService":  
    [
         {
            "identifier": {
              "system": "https://fhir.nhs.uk/Id/ods-organization-code",
              "value": "A99968"
            }
            "display": "SOMERSET BOWEL CANCER SCREENING CENTRE"
          }
    ]

Optionally Resource reference can be provided. This is required in the current version of EPS but this will be changed to supporting the identifier reference only.

"healthcareService":  
    [
         {
            "reference": "urn:uuid:54b0506d-49af-4245-9d40-d7d64902055e",
            "identifier": {
              "system": "https://fhir.nhs.uk/Id/ods-organization-code",
              "value": "A99968"
            }
            "display": "SOMERSET BOWEL CANCER SCREENING CENTRE"
          }
    ]

Constraints

  • nhsd-4 (ERROR) PractitionerRole.healthcareService - An identifier reference or resource reference must be provided

telecom

Element Id PractitionerRole.telecom
Cardinality 0..*
type ContactPoint

Definition

At least one telecom number MUST be provided. Contact details that are specific to the role/location/service. Often practitioners have a dedicated line for each location (or service) that they work at and need to be able to define separate contact details for each of these.

This is not the personnel contact number of the Practitioner, it the contact number for the practitioner in this role and may be the phone number of the clinic, main or branch surgery.

"telecom": [
          {
            "system": "phone",
            "value": "01234567890",
            "use": "work"
          }
        ]

Requirements

Often practitioners have a dedicated line for each location (or service) that they work at, and need to be able to define separate contact details for each of these.

NHSDigital-DocumentReference

Conformance url FHIR Module Maturity Level
https://fhir.nhs.uk/StructureDefinition/NHSDigital-DocumentReference draft




with UK Core DocumentReference

useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
statusS Σ ?!1..1codeBinding
docStatusΣ0..1codeBinding
systemΣ1..1uri
versionΣ0..1string
codeΣ1..1code
displayΣ1..1string
userSelectedΣ0..1boolean
textΣ0..1string
categoryS Σ1..*CodeableConceptBinding
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uri
valueΣ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
dateS Σ0..1instant
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
codeΣ1..1codeBinding
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
descriptionΣ0..1string
securityLabelΣ0..*CodeableConceptBinding
contentTypeΣ0..1codeBinding
languageΣ0..1codeBinding
dataS0..1base64Binary
urlS Σ0..1url
sizeΣ0..1unsignedInt
hashΣ0..1base64Binary
titleΣ0..1string
creationΣ0..1dateTime
formatΣ0..1CodingBinding
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
event0..*CodeableConcept
periodΣ I0..1Period
facilityType0..1CodeableConcept
practiceSettingS0..1CodeableConceptBinding
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string

from UK Core DocumentReference

useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
statusS Σ ?!1..1codeBinding
docStatusΣ0..1codeBinding
systemΣ1..1uri
versionΣ0..1string
codeΣ1..1code
displayΣ1..1string
userSelectedΣ0..1boolean
textΣ0..1string
categoryS Σ1..*CodeableConceptBinding
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uri
valueΣ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
dateS Σ0..1instant
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
codeΣ1..1codeBinding
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
descriptionΣ0..1string
securityLabelΣ0..*CodeableConceptBinding
contentTypeΣ0..1codeBinding
languageΣ0..1codeBinding
dataS0..1base64Binary
urlS Σ0..1url
sizeΣ0..1unsignedInt
hashΣ0..1base64Binary
titleΣ0..1string
creationΣ0..1dateTime
formatΣ0..1CodingBinding
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
event0..*CodeableConcept
periodΣ I0..1Period
facilityType0..1CodeableConcept
practiceSettingS0..1CodeableConceptBinding
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string


Constraint Profiles

nameprofile
NHSDigitalDocumentReferenceNRLhttps://fhir.nhs.uk/StructureDefinition/NHSDigital-DocumentReference-NRL

Definition

A reference to a document of any kind for any purpose. Provides metadata about the document so that the document can be discovered and managed. The scope of a document is any seralised object with a mime-type, so includes formal patient centric documents (CDA), clinical notes, scanned paper, and non-patient specific documents like policy text.

Comment

Usually, this is used for documents other than those defined by FHIR.

identifier

Element Id DocumentReference.identifier
Cardinality 0..*
type Identifier

Definition

Other identifiers associated with the document, including version independent identifiers.

status

Element Id DocumentReference.status
Cardinality 1..1
Terminology Binding DocumentReferenceStatus (Required)
The status of the document reference.
type code

Definition

The status of this document reference.

Comment

This is the status of the DocumentReference object, which might be independent from the docStatus element. This element is labelled as a modifier because the status contains the codes that mark the document or reference as not currently valid.

type

Element Id DocumentReference.type
Cardinality 0..1
Terminology Binding NHSDigitalDocumentType (Extensible)
type CodeableConcept

Definition

Specifies the particular kind of document referenced (e.g. History and Physical, Discharge Summary, Progress Note). This usually equates to the purpose of making the document referenced.

"type": {
        "coding":  [
            {
                "system": "http://snomed.info/sct",
                "code": "736253002",
                "display": "Mental health crisis plan"
            }
        ]
    }

Comment

Key metadata element describing the document that describes he exact type of document. Helps humans to assess whether the document is of interest when viewing a list of documents.

category

Element Id DocumentReference.category
Cardinality 0..*
Terminology Binding DocumentClassValueSet (Example)
High-level kind of a clinical document at a macro level.
type CodeableConcept

Definition

A categorisation for the type of document referenced - helps for indexing and searching. This may be implied by or derived from the code specified in the DocumentReference.type.

"category":  [
        {
            "coding":  [
                {
                    "system": "http://snomed.info/sct",
                    "code": "734163000",
                    "display": "Care plan"
                }
            ]
        }
    ]

Comment

Key metadata element describing the the category or classification of the document. This is a broader perspective that groups similar documents based on how they would be used. This is a primary key used in searching.

subject

Element Id DocumentReference.subject
Cardinality 0..1
type Reference(Group Device UKCorePractitioner NHSDigitalPatient)

Definition

A reference to a NHSDigital-Patient and/or an identifier reference using NHSNumber. Only traced NHS Numbers may be used.


    "subject": {
        "reference": "urn:uuid:edea022a-2d81-11eb-adc1-0242ac120002",
        "identifier": [
            {
                "system": "https://fhir.nhs.uk/Id/nhs-number",
                "value": "9912003888"
            }
        ]
    },


Preference is for a reference to a Patient resource, however current document flows may only support limited metadata.

Constraints

  • patient-reference (WARNING) subject - An identifier reference or resource reference must be provided
  • patient-nhs (ERROR) Supplied NHS Number is outside the English and Welsh NHS Number range or length of the number is wrong.

date

Element Id DocumentReference.date
Cardinality 0..1
type instant

Definition

When the document reference was created.

Comment

Referencing/indexing time is used for tracking, organising versions and searching.

author

Element Id DocumentReference.author
Cardinality 0..*
type Reference(NHSDigitalOrganization Device NHSDigitalPatient UKCoreRelatedPerson NHSDigitalPractitionerRole)

Definition

A resource reference to a contained NHSDigital-PractitionerRole


    "author": [
        {
          "reference" : "#author",
        }
    ]

The contained resource:

{
  "resourceType": "DocumentReference",
  "id": "a9b9f0f4-cc37-4ea3-bd4b-16d15ddbe63b",
  "contained": [
    {
      "resourceType": "PractitionerRole",
      "id": "author",
      "practitioner": {
        "identifier": {
          "system": "https://fhir.nhs.uk/Id/sds-user-id",
          "value": "0987654321"
        }
      },
      "organization": {
        "identifier": {
          "system": "https://fhir.nhs.uk/Id/ods-organization-code",
          "value": "RR8"
        },
        "display": "LEEDS TEACHING HOSPITALS NHS TRUST"
      }
    }
  ],

Comment

Not necessarily who did the actual data entry (i.e. typist) or who was the source (informant).

custodian

Element Id DocumentReference.custodian
Cardinality 0..1
type Reference(NHSDigitalOrganization)

Definition

An identifier reference to an ODS Organisation.


        "custodian": {
                "identifier": {
                    "system": "https://fhir.nhs.uk/Id/ods-organization-code",
                    "value": "VNE51"
                },
                "display": "The Pharmacy System"
        }

Comment

Identifies the logical organization (software system, vendor, or department) to go to find the current version, where to report issues, etc. This is different from the physical location (URL, disk drive, or server) of the document, which is the technical location of the document, which host may be delegated to the management of some other organization.

content

Element Id DocumentReference.content
Cardinality 1..*
type BackboneElement

Definition

The document and format referenced. There may be multiple content element repetitions, each with a different format.

"content": [
        {
            "attachment": {
                "extension": [
                    {
                        "url": "https://fhir.nhs.uk/STU3/StructureDefinition/Extension-eRS-AttachedBy",
                        "valueReference": {
                            "identifier": {
                                "system": "https://fhir.nhs.uk/Id/sds-user-id",
                                "value": "987654321"
                            }
                        }
                    }
                ],
                "contentType": "application/pdf",
                "url": "Binary/att-70001-70002",
                "size": 18592,
                "title": "upload.png",
                "creation": "2022-01-31"
            }
        }
    ]

content.attachment

Element Id DocumentReference.content.attachment
Cardinality 1..1
type Attachment

Definition

The document or URL of the document along with critical metadata to prove content has integrity.

content.attachment.data

Element Id DocumentReference.content.attachment.data
Cardinality 0..1
type base64Binary

Definition

SHOULD not be used. Use url to link to the actual document

Requirements

The data needs to able to be transmitted inline.

Comment

The base64-encoded data SHALL be expressed in the same character set as the base resource XML or JSON.

content.attachment.url

Element Id DocumentReference.content.attachment.url
Cardinality 0..1
type url

Definition

For REST interactions this MUST be a url to the actual document. For messaging interactions this must be an internal resource reference to the actual document.

Requirements

The data needs to be transmitted by reference.

Comment

If both data and url are provided, the url SHALL point to the same content as the data contains. Urls may be relative references or may reference transient locations such as a wrapping envelope using cid: though this has ramifications for using signatures. Relative URLs are interpreted relative to the service url, like a resource reference, rather than relative to the resource itself. If a URL is provided, it SHALL resolve to actual data.

context

Element Id DocumentReference.context
Cardinality 0..1
type BackboneElement

Definition

The clinical context in which the document was prepared.

"context": {
        "related" : [
            {
                "type": "ServiceRequest",
                "reference": "ServiceRequest/be735573-9f24-42e1-ae98-af89d632e4bf"
            },
            {
                "type": "Task",
                "reference": "Task/f66e4cd7-207c-4b7d-9ac9-80630c451125"
            }
        ]
    }

Comment

These values are primarily added to help with searching for interesting/relevant documents.

context.practiceSetting

Element Id DocumentReference.context.practiceSetting
Cardinality 0..1
Terminology Binding NHSDigitalCareSettingType (Extensible)
type CodeableConcept

Definition

It is recommended a care setting code should be provided

Requirements

This is an important piece of metadata that providers often rely upon to quickly sort and/or filter out to find specific content.

Comment

This element should be based on a coarse classification system for the class of specialty practice. Recommend the use of the classification system for Practice Setting, such as that described by the Subject Matter Domain in LOINC.

context.related

Element Id DocumentReference.context.related
Cardinality 0..*
type Reference(NHSDigitalServiceRequest NHSDigitalTask)

Definition

Related identifiers or resources associated with the DocumentReference.

In eRS this is used to link a DocumentReference (i.e. a document) to a ServiceRequest and/or Task.

Comment

May be identifiers or resources that caused the DocumentReference or referenced Document to be created.

NHSDigital-Encounter

Profile url FHIR Module Maturity Level
https://fhir.nhs.uk/StructureDefinition/NHSDigital-Encounter Administration draft


with UK Core Encounter

admissionMethodI0..1Extension(CodeableConcept)
dischargeMethodI0..1Extension(CodeableConcept)
emergencyCareDischargeStatusI0..1Extension(CodeableConcept)
legalStatusI0..*Extension(Complex)
OutcomeOfAttendanceI0..1Extension(CodeableConcept)
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uri
valueΣ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
statusΣ ?!1..1codeBinding
status1..1codeBinding
periodI1..1Period
classΣ1..1CodingBinding
class1..1CodingBinding
periodI1..1Period
typeΣ0..*CodeableConceptBinding
serviceTypeΣ0..1CodeableConceptBinding
priority0..1CodeableConcept
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uri
valueΣ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uri
valueΣ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uri
valueΣ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
typeΣ0..*CodeableConceptBinding
periodI0..1Period
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uri
valueΣ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
periodI0..1Period
lengthI0..1Duration
reasonCodeS Σ0..*CodeableConceptBinding
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
use0..1CodeableConceptBinding
rank0..1positiveInt
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
admitSource0..1CodeableConceptBinding
reAdmission0..1CodeableConcept
dietPreference0..*CodeableConcept
specialCourtesy0..*CodeableConceptBinding
specialArrangement0..*CodeableConceptBinding
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
dischargeDisposition0..1CodeableConceptBinding
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
status0..1codeBinding
physicalType0..1CodeableConceptBinding
periodI0..1Period
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string

from UK Core Encounter

admissionMethodI0..1Extension(CodeableConcept)
dischargeMethodI0..1Extension(CodeableConcept)
emergencyCareDischargeStatusI0..1Extension(CodeableConcept)
legalStatusI0..*Extension(Complex)
OutcomeOfAttendanceI0..1Extension(CodeableConcept)
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uri
valueΣ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
statusΣ ?!1..1codeBinding
status1..1codeBinding
periodI1..1Period
classΣ1..1CodingBinding
class1..1CodingBinding
periodI1..1Period
typeΣ0..*CodeableConceptBinding
serviceTypeΣ0..1CodeableConceptBinding
priority0..1CodeableConcept
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uri
valueΣ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uri
valueΣ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uri
valueΣ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
typeΣ0..*CodeableConceptBinding
periodI0..1Period
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uri
valueΣ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
periodI0..1Period
lengthI0..1Duration
reasonCodeS Σ0..*CodeableConceptBinding
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
use0..1CodeableConceptBinding
rank0..1positiveInt
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
admitSource0..1CodeableConceptBinding
reAdmission0..1CodeableConcept
dietPreference0..*CodeableConcept
specialCourtesy0..*CodeableConceptBinding
specialArrangement0..*CodeableConceptBinding
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
dischargeDisposition0..1CodeableConceptBinding
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
status0..1codeBinding
physicalType0..1CodeableConceptBinding
periodI0..1Period
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string


Definition

An interaction between a patient and healthcare provider(s) for the purpose of providing healthcare service(s) or assessing the health status of a patient.

identifier

Element Id Encounter.identifier
Cardinality 1..*
type Identifier

Definition

In ITK HL7v2 this is PV1.19 Visit Number .

Identifier(s) by which this encounter is known.

subject

Element Id Encounter.subject
Cardinality 0..1
type Reference(Group UKCorePatient)

Definition

The patient or group present at the encounter.

Comment

While the encounter is always about the patient, the patient might not actually be known in all contexts of use, and there may be a group of patients that could be anonymous (such as in a group therapy for Alcoholics Anonymous - where the recording of the encounter could be used for billing on the number of people/staff and not important to the context of the specific patients) or alternately in veterinary care a herd of sheep receiving treatment (where the animals are not individually tracked).

Constraints

  • patient-reference (WARNING) subject - An identifier reference or resource reference must be provided
  • patient-nhs (ERROR) Supplied NHS Number is outside the English and Welsh NHS Number range or length of the number is wrong.

participant

Element Id Encounter.participant
Cardinality 0..*
type BackboneElement

Definition

In HL7v2 this is PV1.7 Attending Doctor, PV1.8 Referring Doctor and PV1.9 Consulting Doctor

The list of people responsible for providing the service.

participant.individual

Element Id Encounter.participant.individual
Cardinality 0..1
type Reference(UKCorePractitioner UKCorePractitionerRole UKCoreRelatedPerson)

Definition

Persons involved in the encounter other than the patient.

reasonCode

Element Id Encounter.reasonCode
Cardinality 0..*
Terminology Binding EncounterReasonCodes (Preferred)
Reason why the encounter takes place.
type CodeableConcept

Definition

Reason the encounter takes place, expressed as a code. For admissions, this can be used for a coded admission diagnosis.

Comment

For systems that need to know which was the primary diagnosis, these will be marked with the standard extension primaryDiagnosis (which is a sequence value rather than a flag, 1 = primary diagnosis).

NHSDigital-Composition

Conformance url
https://fhir.nhs.uk/StructureDefinition/NHSDigital-Composition

This FHIR R4 profile is designed to set a core Composition standard for:

  • Transfer of Care ITK3 and STU3 Digital Meds
  • Summary Care Record
  • GP Connect unstructured record

from UK Core Composition

careSettingTypeI0..1Extension(CodeableConcept)
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
statusΣ ?!1..1codeBinding
typeΣ1..1CodeableConceptBinding
categoryΣ0..*CodeableConceptBinding
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
dateΣ1..1dateTime
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
titleΣ1..1string
confidentialityΣ0..1codeBinding
mode1..1codeBinding
time0..1dateTime
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
code1..1codeBinding
targetIdentifierIdentifier
targetReferenceReference(UK Core Composition)
codeΣ0..*CodeableConcept
periodΣ I0..1Period
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
title0..1string
systemΣ1..1uri
versionΣ0..1string
codeΣ1..1code
displayΣ1..1string
userSelectedΣ0..1boolean
textΣ0..1string
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
textI1..1Narrative
mode0..1codeBinding
orderedBy0..1CodeableConceptBinding
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
emptyReasonI0..1CodeableConceptBinding
sectionI0..*see (section)
title0..1stringFixed Value
systemΣ0..1uri
versionΣ0..1string
codeΣ0..1codeFixed Value
displayΣ0..1stringFixed Value
userSelectedΣ0..1boolean
textΣ0..1string
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
textI0..1Narrative
mode0..1codeBinding
orderedBy0..1CodeableConceptBinding
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
emptyReasonI0..1CodeableConceptBinding
sectionI0..*see (section)
title0..1stringFixed Value
systemΣ0..1uri
versionΣ0..1string
codeΣ1..1codeFixed Value
displayΣ0..1stringFixed Value
userSelectedΣ0..1boolean
textΣ0..1string
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
textI0..1Narrative
mode0..1codeBinding
orderedBy0..1CodeableConceptBinding
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
emptyReasonI0..1CodeableConceptBinding
sectionI0..*see (section)
title0..1stringFixed Value
systemΣ0..1uri
versionΣ0..1string
codeΣ0..1codeFixed Value
displayΣ0..1stringFixed Value
userSelectedΣ0..1boolean
textΣ0..1string
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
textI0..1Narrative
mode0..1codeBinding
orderedBy0..1CodeableConceptBinding
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
emptyReasonI0..1CodeableConceptBinding
sectionI0..*see (section)
title0..1stringFixed Value
systemΣ0..1uri
versionΣ0..1string
codeΣ1..1codeFixed Value
displayΣ0..1stringFixed Value
userSelectedΣ0..1boolean
textΣ0..1string
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
textI0..1Narrative
mode0..1codeBinding
orderedBy0..1CodeableConceptBinding
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
emptyReasonI0..1CodeableConceptBinding
sectionI0..*see (section)
title0..1stringFixed Value
systemΣ0..1uriFixed Value
versionΣ0..1string
codeΣ0..1codeFixed Value
displayΣ0..1stringFixed Value
userSelectedΣ0..0boolean
textΣ0..0string
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
textI1..1Narrative
mode0..0codeBinding
referenceΣ I1..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
emptyReasonI0..0CodeableConceptBinding
sectionI0..0see (section)
title0..1stringFixed Value
systemΣ1..1uriFixed Value
versionΣ0..0string
codeΣ1..1codeFixed Value
displayΣ0..1stringFixed Value
userSelectedΣ0..0boolean
textΣ0..0string
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
textI1..1Narrative
mode0..0codeBinding
referenceΣ I1..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
emptyReasonI0..0CodeableConceptBinding
sectionI0..0see (section)
title0..1stringFixed Value
systemΣ1..1uriFixed Value
versionΣ0..0string
codeΣ1..1codeFixed Value
displayΣ0..1stringFixed Value
userSelectedΣ0..1boolean
textΣ0..1string
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
textI0..1Narrative
mode0..1codeBinding
orderedBy0..1CodeableConceptBinding
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
emptyReasonI0..1CodeableConceptBinding
sectionI0..*see (section)
title0..1stringFixed Value
systemΣ0..1uri
versionΣ0..0string
codeΣ0..1codeFixed Value
displayΣ0..1stringFixed Value
userSelectedΣ0..0boolean
textΣ0..0string
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
textI1..1Narrative
mode0..0codeBinding
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
emptyReasonI0..1CodeableConceptBinding
sectionI0..*see (section)
title0..1stringFixed Value
systemΣ0..1uri
versionΣ0..0string
codeΣ0..1codeFixed Value
displayΣ0..1stringFixed Value
userSelectedΣ0..1boolean
textΣ0..1string
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
textI0..1Narrative
mode0..1codeBinding
orderedBy0..1CodeableConceptBinding
referenceΣ I1..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
emptyReasonI0..0CodeableConceptBinding
sectionI0..0see (section)
title0..1stringFixed Value
systemΣ0..1uri
versionΣ0..1string
codeΣ0..1codeFixed Value
displayΣ0..1stringFixed Value
userSelectedΣ0..1boolean
textΣ0..1string
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
textI0..1Narrative
mode0..1codeBinding
orderedBy0..1CodeableConceptBinding
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
emptyReasonI0..1CodeableConceptBinding
sectionI0..*see (section)
title0..1stringFixed Value
systemΣ0..1uri
versionΣ0..1string
codeΣ0..1codeFixed Value
displayΣ0..1stringFixed Value
userSelectedΣ0..1boolean
textΣ0..1string
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
textI0..1Narrative
mode0..1codeBinding
orderedBy0..1CodeableConceptBinding
referenceΣ I1..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
emptyReasonI0..0CodeableConceptBinding
sectionI0..0see (section)
title0..1stringFixed Value
systemΣ0..1uri
versionΣ0..1string
codeΣ0..1codeFixed Value
displayΣ0..1stringFixed Value
userSelectedΣ0..1boolean
textΣ0..1string
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
textI0..1Narrative
mode0..1codeBinding
orderedBy0..1CodeableConceptBinding
referenceΣ I1..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
emptyReasonI0..0CodeableConceptBinding
sectionI0..0see (section)
title0..1stringFixed Value
systemΣ0..1uri
versionΣ0..1string
codeΣ0..1codeFixed Value
displayΣ0..1stringFixed Value
userSelectedΣ0..1boolean
textΣ0..1string
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
textI0..1Narrative
mode0..1codeBinding
orderedBy0..1CodeableConceptBinding
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
emptyReasonI0..1CodeableConceptBinding
sectionI0..*see (section)
title0..1stringFixed Value
systemΣ0..1uri
versionΣ0..1string
codeΣ0..1codeFixed Value
displayΣ0..1stringFixed Value
userSelectedΣ0..1boolean
textΣ0..1string
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
textI0..1Narrative
mode0..1codeBinding
orderedBy0..1CodeableConceptBinding
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
emptyReasonI0..1CodeableConceptBinding
sectionI0..*see (section)
title0..1stringFixed Value
systemΣ0..1uri
versionΣ0..1string
codeΣ0..1codeFixed Value
displayΣ0..1stringFixed Value
userSelectedΣ0..1boolean
textΣ0..1string
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
textI0..1Narrative
mode0..1codeBinding
orderedBy0..1CodeableConceptBinding
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
emptyReasonI0..1CodeableConceptBinding
sectionI0..*see (section)
title0..1stringFixed Value
systemΣ0..1uri
versionΣ0..1string
codeΣ0..1codeFixed Value
displayΣ0..1stringFixed Value
userSelectedΣ0..1boolean
textΣ0..1string
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
textI0..1Narrative
mode0..1codeBinding
orderedBy0..1CodeableConceptBinding
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
emptyReasonI0..1CodeableConceptBinding
sectionI0..*see (section)
title0..1stringFixed Value
systemΣ0..1uri
versionΣ0..1string
codeΣ1..1codeFixed Value
displayΣ0..1stringFixed Value
userSelectedΣ0..1boolean
textΣ0..1string
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
textI0..1Narrative
mode0..1codeBinding
orderedBy0..1CodeableConceptBinding
referenceΣ I1..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
emptyReasonI0..1CodeableConceptBinding
sectionI0..*see (section)
title0..1stringFixed Value
systemΣ0..1uri
versionΣ0..1string
codeΣ1..1codeFixed Value
displayΣ0..1stringFixed Value
userSelectedΣ0..1boolean
textΣ0..1string
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
textI0..1Narrative
mode0..1codeBinding
orderedBy0..1CodeableConceptBinding
referenceΣ I1..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
emptyReasonI0..0CodeableConceptBinding
sectionI0..0see (section)
title1..1stringFixed Value
systemΣ0..1uri
versionΣ0..1string
codeΣ0..1codeFixed Value
displayΣ0..1stringFixed Value
userSelectedΣ0..1boolean
textΣ0..1string
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
textI0..1Narrative
mode0..1codeBinding
orderedBy0..1CodeableConceptBinding
referenceΣ I1..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
emptyReasonI0..1CodeableConceptBinding
sectionI0..*see (section)
title0..1stringFixed Value
systemΣ0..1uri
versionΣ0..1string
codeΣ0..1codeFixed Value
displayΣ0..1stringFixed Value
userSelectedΣ0..1boolean
textΣ0..1string
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
textI0..1Narrative
mode0..1codeBinding
orderedBy0..1CodeableConceptBinding
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
emptyReasonI0..1CodeableConceptBinding
sectionI0..*see (section)
title0..1stringFixed Value
systemΣ0..1uri
versionΣ0..1string
codeΣ0..1codeFixed Value
displayΣ0..1stringFixed Value
userSelectedΣ0..1boolean
textΣ0..1string
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
textI0..1Narrative
mode0..1codeBinding
orderedBy0..1CodeableConceptBinding
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
emptyReasonI0..1CodeableConceptBinding
sectionI0..*see (section)
title0..1stringFixed Value
systemΣ0..1uri
versionΣ0..1string
codeΣ0..1codeFixed Value
displayΣ0..1stringFixed Value
userSelectedΣ0..1boolean
textΣ0..1string
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
textI0..1Narrative
mode0..1codeBinding
orderedBy0..1CodeableConceptBinding
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
emptyReasonI0..1CodeableConceptBinding
sectionI0..*see (section)

Search Parameters

Name Type Description Conformance Path
identifier token Version-independent identifier for the Composition SHALL Composition.identifier

Additional parameters can be on Composition - Search Parameters

Mandatory Search Parameters

None defined

Optional Search Parameters

identifier

SHOULD support searching using the identifier search parameter.

GET [baseUrl]/Composition?identifier={system|}[code]

Example:

GET [baseUrl]/Composition?identifier=FA60BE64-1F34-11EB-A2A8-000C29A364EB

Return all Composition resources for an identifier FA60BE64-1F34-11EB-A2A8-000C29A364EB.

NHSDigital-Flag

Conformance url
https://fhir.nhs.uk/StructureDefinition/NHSDigital-Flag

This FHIR R4 profile is designed to set a core Flag standard for:

  • FGM
  • CPIS
  • Reasonable Adjustments

Search Parameters

Name Type Description Conformance Path
patient:identifier token The identity of a subject to list flags for SHALL Flag.subject.where(resolve() is Patient) (Patient)

Additional parameters can be on Flag - Search Parameters

Mandatory Search Parameters

patient:identifier

SHALL support searching using the patient:identifier search parameter.

GET [baseUrl]/Flag?patient:identifier={system|}[code]

Example:

GET [baseUrl]/Flag?patient:identifier=9876543210

Return all Flag resources for a Patient with an identifier 9876543210.

Optional Search Parameters

None defined

NHSDigital-Questionnaire

Conformance url FHIR Module Maturity Level
https://fhir.nhs.uk/StructureDefinition/NHSDigital-Questionnaire draft


with Questionnaire

urlS Σ0..1uri
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
versionΣ0..1string
nameΣ I0..1string
titleS Σ0..1string
derivedFrom0..*canonical(UK Core Questionnaire)
statusS Σ ?!1..1codeBinding
experimentalΣ0..1boolean
subjectTypeS Σ1..*codeBinding
dateΣ0..1dateTime
publisherΣ0..1string
contactΣ0..*ContactDetail
description0..1markdown
useContextΣ0..*UsageContext
jurisdictionΣ0..*CodeableConceptBinding
purpose0..1markdown
copyright0..1markdown
approvalDate0..1date
lastReviewDate0..1date
effectivePeriodΣ I0..1Period
codeΣ0..*CodingBinding
linkIdS1..1string
definition0..1uri
codeI0..*Coding
prefix0..1string
text0..1string
typeS1..1codeBinding
question1..1string
operator1..1codeBinding
answerBooleanboolean
answerDecimaldecimal
answerIntegerinteger
answerDatedate
answerDateTimedateTime
answerTimetime
answerStringstring
answerCodingCoding
answerQuantityQuantity
answerReferenceReference(Resource)
enableBehaviorI0..1codeBinding
requiredI0..1boolean
repeatsI0..1boolean
readOnlyI0..1boolean
maxLengthI0..1integer
answerValueSetI0..1canonical(ValueSet)
valueIntegerinteger
valueDatedate
valueTimetime
valueStringstring
valueCodingCoding
valueReferenceReference(Resource)
initialSelected0..1boolean
valueBooleanboolean
valueDecimaldecimal
valueIntegerinteger
valueDatedate
valueDateTimedateTime
valueTimetime
valueStringstring
valueUriuri
valueAttachmentAttachment
valueCodingCoding
valueQuantityQuantity
valueReferenceReference(Resource)
itemI0..*see (item)

from Questionnaire

urlS Σ0..1uri
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
versionΣ0..1string
nameΣ I0..1string
titleS Σ0..1string
derivedFrom0..*canonical(UK Core Questionnaire)
statusS Σ ?!1..1codeBinding
experimentalΣ0..1boolean
subjectTypeS Σ1..*codeBinding
dateΣ0..1dateTime
publisherΣ0..1string
contactΣ0..*ContactDetail
description0..1markdown
useContextΣ0..*UsageContext
jurisdictionΣ0..*CodeableConceptBinding
purpose0..1markdown
copyright0..1markdown
approvalDate0..1date
lastReviewDate0..1date
effectivePeriodΣ I0..1Period
codeΣ0..*CodingBinding
linkIdS1..1string
definition0..1uri
codeI0..*Coding
prefix0..1string
text0..1string
typeS1..1codeBinding
question1..1string
operator1..1codeBinding
answerBooleanboolean
answerDecimaldecimal
answerIntegerinteger
answerDatedate
answerDateTimedateTime
answerTimetime
answerStringstring
answerCodingCoding
answerQuantityQuantity
answerReferenceReference(Resource)
enableBehaviorI0..1codeBinding
requiredI0..1boolean
repeatsI0..1boolean
readOnlyI0..1boolean
maxLengthI0..1integer
answerValueSetI0..1canonical(ValueSet)
valueIntegerinteger
valueDatedate
valueTimetime
valueStringstring
valueCodingCoding
valueReferenceReference(Resource)
initialSelected0..1boolean
valueBooleanboolean
valueDecimaldecimal
valueIntegerinteger
valueDatedate
valueDateTimedateTime
valueTimetime
valueStringstring
valueUriuri
valueAttachmentAttachment
valueCodingCoding
valueQuantityQuantity
valueReferenceReference(Resource)
itemI0..*see (item)

NHSDigital-QuestionnaireResponse

Conformance url FHIR Module Maturity Level
https://fhir.nhs.uk/StructureDefinition/NHSDigital-QuestionnaireResponse trial-use


with QuestionnaireResponse

useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
questionnaireS Σ1..1canonical(UK Core Questionnaire)
statusS Σ ?!1..1codeBinding
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemS Σ1..1uri
valueS Σ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayS Σ0..1string
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
authoredS Σ1..1dateTime
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemS Σ1..1uri
valueS Σ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayS Σ0..1string
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayS Σ0..1string
linkId1..1string
definition0..1uri
text0..1string
valueBooleanboolean
valueDecimaldecimal
valueIntegerinteger
valueDatedate
valueDateTimedateTime
valueTimetime
valueStringstring
valueUriuri
valueAttachmentAttachment
valueCodingCoding
valueQuantityQuantity
valueReferenceReference(Resource)
item0..*see (item)
item0..*see (item)

from QuestionnaireResponse

useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
questionnaireS Σ1..1canonical(UK Core Questionnaire)
statusS Σ ?!1..1codeBinding
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemS Σ1..1uri
valueS Σ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayS Σ0..1string
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
authoredS Σ1..1dateTime
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemS Σ1..1uri
valueS Σ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayS Σ0..1string
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayS Σ0..1string
linkId1..1string
definition0..1uri
text0..1string
valueBooleanboolean
valueDecimaldecimal
valueIntegerinteger
valueDatedate
valueDateTimedateTime
valueTimetime
valueStringstring
valueUriuri
valueAttachmentAttachment
valueCodingCoding
valueQuantityQuantity
valueReferenceReference(Resource)
item0..*see (item)
item0..*see (item)

Definition

A structured set of questions and their answers. The questions are ordered and grouped into coherent subsets, corresponding to the structure of the grouping of the questionnaire being responded to.

Comment

The QuestionnaireResponse contains enough information about the questions asked and their organization that it can be interpreted somewhat independently from the Questionnaire it is based on. I.e. You don't need access to the Questionnaire in order to extract basic information from a QuestionnaireResponse.

identifier

Element Id QuestionnaireResponse.identifier
Cardinality 0..1
type Identifier

Definition

A business identifier assigned to a particular completed (or partially completed) questionnaire.

Requirements

Used for tracking, registration and other business purposes.

questionnaire

Element Id QuestionnaireResponse.questionnaire
Cardinality 1..1
type canonical(UKCoreQuestionnaire)

Definition

The Questionnaire that defines and organizes the questions for which answers are being provided.

"questionnaire": "https://fhir.nhs.uk/Questionnaire/COVIDVaccinationMedicalExemption",

Requirements

Needed to allow editing of the questionnaire response in a manner that enforces the constraints of the original form.

Comment

If a QuestionnaireResponse references a Questionnaire, then the QuestionnaireResponse structure must be consistent with the Questionnaire (i.e. questions must be organized into the same groups, nested questions must still be nested, etc.).

status

Element Id QuestionnaireResponse.status
Cardinality 1..1
Terminology Binding QuestionnaireResponseStatus (Required)
Lifecycle status of the questionnaire response.
type code

Definition

The position of the questionnaire response within its overall lifecycle.

Requirements

The information on Questionnaire resources may possibly be gathered during multiple sessions and altered after considered being finished.

Comment

This element is labeled as a modifier because the status contains codes that mark the resource as not currently valid.

subject

Element Id QuestionnaireResponse.subject
Cardinality 1..1
type Reference(NHSDigitalPatient)

Definition

The subject of the questionnaire response. This could be a patient, organization, practitioner, device, etc. This is who/what the answers apply to, but is not necessarily the source of information.

"subject": {
        "identifier": [
            {
                "system": "https://fhir.nhs.uk/Id/nhs-number",
                "value": "9912003888"
            }
        ],
        "display": "Ivor Fritagelse"
    },

Requirements

Allows linking the answers to the individual the answers describe. May also affect access control.

Comment

If the Questionnaire declared a subjectType, the resource pointed to by this element must be an instance of one of the listed types.

Constraints

  • patient-reference (ERROR) An identifier reference or resource reference must be provided
  • patient-nhs (ERROR) Supplied NHS Number is outside the English and Welsh NHS Number range or length of the number is wrong.

subject.identifier.system

Element Id QuestionnaireResponse.subject.identifier.system
Cardinality 1..1
type uri

Definition

Establishes the namespace for the value - that is, a URL that describes a set values that are unique.

Requirements

There are many sets of identifiers. To perform matching of two identifiers, we need to know what set we're dealing with. The system identifies a particular set of unique identifiers.

Comment

Identifier.system is always case sensitive.

subject.identifier.value

Element Id QuestionnaireResponse.subject.identifier.value
Cardinality 1..1
type string

Definition

The portion of the identifier typically relevant to the user and which is unique within the context of the system.

Comment

If the value is a full URI, then the system SHALL be urn:ietf:rfc:3986. The value's primary purpose is computational mapping. As a result, it may be normalized for comparison purposes (e.g. removing non-significant whitespace, dashes, etc.) A value formatted for human display can be conveyed using the Rendered Value extension. Identifier.value is to be treated as case sensitive unless knowledge of the Identifier.system allows the processer to be confident that non-case-sensitive processing is safe.

subject.display

Element Id QuestionnaireResponse.subject.display
Cardinality 0..1
type string

Definition

Plain text narrative that identifies the resource in addition to the resource reference.

Comment

This is generally not the same as the Resource.text of the referenced resource. The purpose is to identify what's being referenced, not to fully describe it.

authored

Element Id QuestionnaireResponse.authored
Cardinality 1..1
type dateTime

Definition

The date and/or time that this set of answers were last changed.

"authored": "2021-09-09T08:32:00+00:00",

Requirements

Clinicians need to be able to check the date that the information in the questionnaire was collected, to derive the context of the answers.

Comment

May be different from the lastUpdateTime of the resource itself, because that reflects when the data was known to the server, not when the data was captured. This element is optional to allow for systems that might not know the value, however it SHOULD be populated if possible.

author

Element Id QuestionnaireResponse.author
Cardinality 0..1
type Reference(NHSDigitalOrganization NHSDigitalPractitionerRoleMinimal)
Aggregation - contained

Definition

Person who received the answers to the questions in the QuestionnaireResponse and recorded them in the system.

"author": {
        "identifier": {
            "system": "https://fhir.nhs.uk/Id/ods-organization-code",
            "value": "B81001"
        },
        "display": "Austhorpe Springs Practice"
    },

Requirements

Need to know who interpreted the subject's answers to the questions in the questionnaire, and selected the appropriate options for answers.

Comment

Mapping a subject's answers to multiple choice options and determining what to put in the textual answer is a matter of interpretation. Authoring by device would indicate that some portion of the questionnaire had been auto-populated.

author.identifier.system

Element Id QuestionnaireResponse.author.identifier.system
Cardinality 1..1
type uri

Definition

Establishes the namespace for the value - that is, a URL that describes a set values that are unique.

Requirements

There are many sets of identifiers. To perform matching of two identifiers, we need to know what set we're dealing with. The system identifies a particular set of unique identifiers.

Comment

Identifier.system is always case sensitive.

author.identifier.value

Element Id QuestionnaireResponse.author.identifier.value
Cardinality 1..1
type string

Definition

The portion of the identifier typically relevant to the user and which is unique within the context of the system.

Comment

If the value is a full URI, then the system SHALL be urn:ietf:rfc:3986. The value's primary purpose is computational mapping. As a result, it may be normalized for comparison purposes (e.g. removing non-significant whitespace, dashes, etc.) A value formatted for human display can be conveyed using the Rendered Value extension. Identifier.value is to be treated as case sensitive unless knowledge of the Identifier.system allows the processer to be confident that non-case-sensitive processing is safe.

author.display

Element Id QuestionnaireResponse.author.display
Cardinality 0..1
type string

Definition

Plain text narrative that identifies the resource in addition to the resource reference.

Comment

This is generally not the same as the Resource.text of the referenced resource. The purpose is to identify what's being referenced, not to fully describe it.

source

Element Id QuestionnaireResponse.source
Cardinality 0..1
type Reference(NHSDigitalPractitionerRole)
Aggregation - contained

Definition

The person who answered the questions about the subject.

Requirements

When answering questions about a subject that is minor, incapable of answering or an animal, another human source may answer the questions.

Comment

If not specified, no inference can be made about who provided the data.

Constraints

  • usercode-reference (WARNING) An identifier reference or resource reference must be provided
  • usercode-nmc (ERROR) NMC must be of the format NNANNNNA
  • usercode-gmp (ERROR) GMP must be of the format GNNNNNNN and not be a spurious code (starts with G6 or G7)
  • usercode-gmc (ERROR) GMC must be of the format CNNNNNNN
  • usercode-gphc (ERROR) GPHC must be of the format NNNNNNN
  • usercode-hcpc (ERROR) HCPC must be of the format AANNNNNN
  • usercode-din (ERROR) DIN format must be NNNNNN

source.identifier

Element Id QuestionnaireResponse.source.identifier
Cardinality 1..1
type Identifier

Definition

An identifier for the target resource. This is used when there is no way to reference the other resource directly, either because the entity it represents is not available through a FHIR server, or because there is no way for the author of the resource to convert a known identifier to an actual location. There is no requirement that a Reference.identifier point to something that is actually exposed as a FHIR instance, but it SHALL point to a business concept that would be expected to be exposed as a FHIR instance, and that instance would need to be of a FHIR resource type allowed by the reference.

Comment

When an identifier is provided in place of a reference, any system processing the reference will only be able to resolve the identifier to a reference if it understands the business context in which the identifier is used. Sometimes this is global (e.g. a national identifier) but often it is not. For this reason, none of the useful mechanisms described for working with references (e.g. chaining, includes) are possible, nor should servers be expected to be able resolve the reference. Servers may accept an identifier based reference untouched, resolve it, and/or reject it - see CapabilityStatement.rest.resource.referencePolicy. When both an identifier and a literal reference are provided, the literal reference is preferred. Applications processing the resource are allowed - but not required - to check that the identifier matches the literal reference Applications converting a logical reference to a literal reference may choose to leave the logical reference present, or remove it. Reference is intended to point to a structure that can potentially be expressed as a FHIR resource, though there is no need for it to exist as an actual FHIR resource instance - except in as much as an application wishes to actual find the target of the reference. The content referred to be the identifier must meet the logical constraints implied by any limitations on what resource types are permitted for the reference. For example, it would not be legitimate to send the identifier for a drug prescription if the type were Reference(Observation|DiagnosticReport). One of the use-cases for Reference.identifier is the situation where no FHIR representation exists (where the type is Reference (Any).

source.display

Element Id QuestionnaireResponse.source.display
Cardinality 0..1
type string

Definition

Plain text narrative that identifies the resource in addition to the resource reference.

Comment

This is generally not the same as the Resource.text of the referenced resource. The purpose is to identify what's being referenced, not to fully describe it.

item

Element Id QuestionnaireResponse.item
Cardinality 1..*
type BackboneElement

Definition

A group or question item from the original questionnaire for which answers are provided.

 "item": [
        {
            "linkId": "exemptionStatus",
            "answer": [
                {
                    "valueCoding": {
                        "system": "https://fhir.nhs.uk/CodeSystem/covid-vaccination-medical-exemption",
                        "code": "4",
                        "display": "Rejected: Exemption from COVID vaccination and testing"
                    }
                }
            ]
        }
   ]

Comment

Groups cannot have answers and therefore must nest directly within item. When dealing with questions, nesting must occur within each answer because some questions may have multiple answers (and the nesting occurs for each answer).

Constraints

  • qrs-1 (ERROR) Nested item can't be beneath both item and answer

NHSDigital-ImmunizationRecommendation

NHSDigital-ImmunizationRecommendation

NHSDigital-Task

Conformance url FHIR Module Maturity Level
https://fhir.nhs.uk/StructureDefinition/NHSDigital-Task trial-use




agentS I0..1Extension(Reference(NHSDigitalPractitionerRole | NHSDigitalPractitioner | NHSDigitalHealthcareService))
prescriptionS I0..1Extension(Complex)
repeatInformationS I0..1Extension(Complex)
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
instantiatesCanonicalΣ0..1canonical(ActivityDefinition)
instantiatesUriΣ0..1uri
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
groupIdentifierS Σ0..1Identifier
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
statusS Σ ?!1..1codeBinding
statusReasonΣ0..1CodeableConcept
businessStatusΣ0..1CodeableConcept
intentS Σ1..1codeBinding
priority0..1codeBinding
systemΣ1..1uri
versionΣ0..1string
codeΣ1..1code
displayΣ0..1string
userSelectedΣ0..1boolean
systemΣ0..1uriFixed Value
versionΣ0..1string
codeΣ0..1code
displayΣ0..1string
userSelectedΣ0..1boolean
systemΣ0..1uriFixed Value
versionΣ0..1string
codeΣ0..1code
displayΣ0..1string
userSelectedΣ0..1boolean
systemΣ0..1uriFixed Value
versionΣ0..1string
codeΣ0..1code
displayΣ0..1string
userSelectedΣ0..1boolean
textΣ0..1string
descriptionΣ0..1string
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uriFixed Value
valueΣ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
executionPeriodΣ I0..1Period
authoredOnS I0..1dateTime
lastModifiedΣ I0..1dateTime
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uri
valueΣ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
performerType0..*CodeableConceptBinding
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uri
valueΣ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
systemΣ1..1uri
versionΣ0..1string
codeΣ1..1code
displayΣ1..1string
userSelectedΣ0..1boolean
systemΣ0..1uriFixed Value
versionΣ0..1string
codeΣ0..1code
displayΣ0..1string
userSelectedΣ0..1boolean
textΣ0..1string
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
noteS0..*Annotation
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
repetitions0..1positiveInt
startΣ I0..1dateTime
endS Σ I0..1dateTime
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
type1..1CodeableConcept
valueBase64Binarybase64Binary
valueBooleanboolean
valueCanonicalcanonical()
valueCodecode
valueDatedate
valueDateTimedateTime
valueDecimaldecimal
valueIdid
valueInstantinstant
valueIntegerinteger
valueMarkdownmarkdown
valueOidoid
valuePositiveIntpositiveInt
valueStringstring
valueTimetime
valueUnsignedIntunsignedInt
valueUriuri
valueUrlurl
valueUuiduuid
valueAddressAddress
valueAgeAge
valueAnnotationAnnotation
valueAttachmentAttachment
valueCodeableConceptCodeableConcept
valueCodingCoding
valueContactPointContactPoint
valueCountCount
valueDistanceDistance
valueDurationDuration
valueHumanNameHumanName
valueIdentifierIdentifier
valueMoneyMoney
valuePeriodPeriod
valueQuantityQuantity
valueRangeRange
valueRatioRatio
valueSampledDataSampledData
valueSignatureSignature
valueTimingTiming
valueContactDetailContactDetail
valueContributorContributor
valueDataRequirementDataRequirement
valueExpressionExpression
valueParameterDefinitionParameterDefinition
valueRelatedArtifactRelatedArtifact
valueTriggerDefinitionTriggerDefinition
valueUsageContextUsageContext
valueDosageDosage
valueMetaMeta
valueReferenceReference()
type1..1CodeableConcept
valueBase64Binarybase64Binary
valueBooleanboolean
valueCanonicalcanonical()
valueCodecode
valueDatedate
valueDateTimedateTime
valueDecimaldecimal
valueIdid
valueInstantinstant
valueIntegerinteger
valueMarkdownmarkdown
valueOidoid
valuePositiveIntpositiveInt
valueStringstring
valueTimetime
valueUnsignedIntunsignedInt
valueUriuri
valueUrlurl
valueUuiduuid
valueAddressAddress
valueAgeAge
valueAnnotationAnnotation
valueAttachmentAttachment
valueCodeableConceptCodeableConcept
valueCodingCoding
valueContactPointContactPoint
valueCountCount
valueDistanceDistance
valueDurationDuration
valueHumanNameHumanName
valueIdentifierIdentifier
valueMoneyMoney
valuePeriodPeriod
valueQuantityQuantity
valueRangeRange
valueRatioRatio
valueSampledDataSampledData
valueSignatureSignature
valueTimingTiming
valueContactDetailContactDetail
valueContributorContributor
valueDataRequirementDataRequirement
valueExpressionExpression
valueParameterDefinitionParameterDefinition
valueRelatedArtifactRelatedArtifact
valueTriggerDefinitionTriggerDefinition
valueUsageContextUsageContext
valueDosageDosage
valueMetaMeta
valueReferenceReference()

agentS I0..1Extension(Reference(NHSDigitalPractitionerRole | NHSDigitalPractitioner | NHSDigitalHealthcareService))
prescriptionS I0..1Extension(Complex)
repeatInformationS I0..1Extension(Complex)
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
instantiatesCanonicalΣ0..1canonical(ActivityDefinition)
instantiatesUriΣ0..1uri
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
groupIdentifierS Σ0..1Identifier
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
statusS Σ ?!1..1codeBinding
statusReasonΣ0..1CodeableConcept
businessStatusΣ0..1CodeableConcept
intentS Σ1..1codeBinding
priority0..1codeBinding
systemΣ1..1uri
versionΣ0..1string
codeΣ1..1code
displayΣ0..1string
userSelectedΣ0..1boolean
systemΣ0..1uriFixed Value
versionΣ0..1string
codeΣ0..1code
displayΣ0..1string
userSelectedΣ0..1boolean
systemΣ0..1uriFixed Value
versionΣ0..1string
codeΣ0..1code
displayΣ0..1string
userSelectedΣ0..1boolean
systemΣ0..1uriFixed Value
versionΣ0..1string
codeΣ0..1code
displayΣ0..1string
userSelectedΣ0..1boolean
textΣ0..1string
descriptionΣ0..1string
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uriFixed Value
valueΣ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
executionPeriodΣ I0..1Period
authoredOnS I0..1dateTime
lastModifiedΣ I0..1dateTime
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uri
valueΣ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
performerType0..*CodeableConceptBinding
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uri
valueΣ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
systemΣ1..1uri
versionΣ0..1string
codeΣ1..1code
displayΣ1..1string
userSelectedΣ0..1boolean
systemΣ0..1uriFixed Value
versionΣ0..1string
codeΣ0..1code
displayΣ0..1string
userSelectedΣ0..1boolean
textΣ0..1string
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
noteS0..*Annotation
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
repetitions0..1positiveInt
startΣ I0..1dateTime
endS Σ I0..1dateTime
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
type1..1CodeableConcept
valueBase64Binarybase64Binary
valueBooleanboolean
valueCanonicalcanonical()
valueCodecode
valueDatedate
valueDateTimedateTime
valueDecimaldecimal
valueIdid
valueInstantinstant
valueIntegerinteger
valueMarkdownmarkdown
valueOidoid
valuePositiveIntpositiveInt
valueStringstring
valueTimetime
valueUnsignedIntunsignedInt
valueUriuri
valueUrlurl
valueUuiduuid
valueAddressAddress
valueAgeAge
valueAnnotationAnnotation
valueAttachmentAttachment
valueCodeableConceptCodeableConcept
valueCodingCoding
valueContactPointContactPoint
valueCountCount
valueDistanceDistance
valueDurationDuration
valueHumanNameHumanName
valueIdentifierIdentifier
valueMoneyMoney
valuePeriodPeriod
valueQuantityQuantity
valueRangeRange
valueRatioRatio
valueSampledDataSampledData
valueSignatureSignature
valueTimingTiming
valueContactDetailContactDetail
valueContributorContributor
valueDataRequirementDataRequirement
valueExpressionExpression
valueParameterDefinitionParameterDefinition
valueRelatedArtifactRelatedArtifact
valueTriggerDefinitionTriggerDefinition
valueUsageContextUsageContext
valueDosageDosage
valueMetaMeta
valueReferenceReference()
type1..1CodeableConcept
valueBase64Binarybase64Binary
valueBooleanboolean
valueCanonicalcanonical()
valueCodecode
valueDatedate
valueDateTimedateTime
valueDecimaldecimal
valueIdid
valueInstantinstant
valueIntegerinteger
valueMarkdownmarkdown
valueOidoid
valuePositiveIntpositiveInt
valueStringstring
valueTimetime
valueUnsignedIntunsignedInt
valueUriuri
valueUrlurl
valueUuiduuid
valueAddressAddress
valueAgeAge
valueAnnotationAnnotation
valueAttachmentAttachment
valueCodeableConceptCodeableConcept
valueCodingCoding
valueContactPointContactPoint
valueCountCount
valueDistanceDistance
valueDurationDuration
valueHumanNameHumanName
valueIdentifierIdentifier
valueMoneyMoney
valuePeriodPeriod
valueQuantityQuantity
valueRangeRange
valueRatioRatio
valueSampledDataSampledData
valueSignatureSignature
valueTimingTiming
valueContactDetailContactDetail
valueContributorContributor
valueDataRequirementDataRequirement
valueExpressionExpression
valueParameterDefinitionParameterDefinition
valueRelatedArtifactRelatedArtifact
valueTriggerDefinitionTriggerDefinition
valueUsageContextUsageContext
valueDosageDosage
valueMetaMeta
valueReferenceReference()

keyhumanseverityexpression
nhsd-taskfocusfocus - An identifier reference or resource reference must be providederror(reference.exists() or identifier.exists())
patient-referenceAn identifier reference or resource reference must be providederror(reference.exists() or identifier.exists())
patient-nhsNHS Number must be in the English and Welsh NHS Number range or length of the number is wrong.erroridentifier.where(system='https://fhir.nhs.uk/Id/nhs-number').exists().not() or (identifier.where(system='https://fhir.nhs.uk/Id/nhs-number').exists() and identifier.where(system='https://fhir.nhs.uk/Id/nhs-number').value.matches('^([456789]{1}[0-9]{9})$'))

Constraint Profiles

nameprofilepurpose
NHSDigitalTaskEPShttps://fhir.nhs.uk/StructureDefinition/NHSDigital-Task-EPS

Constraint profile for Electronic Prescription System

NHSDigitalTaskPatientCarehttps://fhir.nhs.uk/StructureDefinition/NHSDigital-Task-PatientCare

Profile on NHSDigital-Task for NHS App/e-RS PatientCare

Definition

FHIR Task usage and scope is defined as

A task resource describes an activity that can be performed and tracks the state of completion of that activity. It is a representation that an activity should be or has been initiated, and eventually, represents the successful or unsuccessful completion of that activity. Note that there are a variety of processes associated with making and processing orders. Some orders may be handled immediately by automated systems but most require real world actions by one or more humans. Some orders can only be processed when other real world actions happen, such as a patient presenting themselves so that the action to be performed can actually be performed. Often these real world dependencies are only implicit in the order details.

A Task resource often exists in parallel with clinical resources.

For example, a Task could request fulfillment of a ServiceRequest ordering a Procedure that would result in a Procedure, Observation, DiagnosticReport, ImagingStudy or similar resource. Another example would be a Task that requests fulfillment of a CommunicationRequest to be performed between various actors.

Comment

Task has three main uses:

  • basic delivery of an order resource (e.g. MedicationRequest or ServiceRequest)
  • minor workflow requests (e.g. phone patient, complete form or validate a referral)
  • workflow support (centred around complex workflow support and may involves a workflow engine)
Order Fulfilment

Centres on the fulfilment of the order. It does not contain the order details which are held in a referenced request resource. In the diagram below the recipient or fulfiller of the order uses FHIR Task to accept or reject the order, it also uses Task to send event updates. Note the fulfiller will use other resources to record the details of the fulfilment such as MedicationDispense for a MedicationRequest.

Examples:

Task.code Task.status Task.focus Task.requester Meaning
fulfill rejected MedicationRequest dispenser The dispenser is rejecting the fulfilment/deliver of a referenced MedicationRequest. The MedicationRequest is not cancelled
fullfill cancelled MedicationRequest any The requested fulfilment of the MedicationRequest is cancelled. The referenced MedicationRequest is not cancelled
fullfill accepted MedicationRequest dispenser The dispenser is taking responsibility of fulfilling the referenced MedicationRequest.
fullfill completed MedicationRequest dispenser The requested fulfilment of the MedicationRequest is completed. The referenced MedicationRequest can now be changed to completed.

See the section on status for more details.


Minor Workflow Requests

This is used to implement additional around an order or to record specific workflow requests. These may not have a focused resource reference. It is anticipated they are coded using SNOMED CT.

Examples:
Task.code Task.focus Task.requester Task.owner Task.reasonCode Meaning
413292001 Assessment for referral ServiceRequest referrer clinician 3457005 Patient Referral Check the referenced referral is valid.
182836005 Review of medication clinician GP 151715009 Emergency admission, asthma Request to review medication following an emergency admission.
103742009 Renewal of prescription MedicationRequest patient GP Request for a reissue/refill of a medication
324861000000109 Review of patient laboratory test report DiagnosticReport consultant Request for a lab report to be reviewed. See also UHS Lab Reports

The Task.status can be used to indicate fulfilment/delivery status.


Workflow Support

More advanced workflow is supported, this adds in the use of Task.input and Task.output. This allows the passage of inputs and outputs which may be found in automated workflow activities.

The diagram below is from an acute trusts handling of a received eRS referral request. Each process communicates via the FHIR Task, the first process takes the eRS referral and gets the referral letter from eRS, these are then passed to the clinician for triage. Once triaged, the clinician creates a book appointment Task which the admin's action.

Constraints

extension:agent

Element Id Task.extension:agent
Cardinality 0..1
Slice Name agent
type Extension(ExtensionProvenanceAgent)

Definition

Is used as the author on request resources.

extension:prescription

Element Id Task.extension:prescription
Cardinality 0..1
Slice Name prescription
type Extension(ExtensionEPSPrescription)

Definition

"extension":  [
       {
           "url": "https://fhir.nhs.uk/StructureDefinition/Extension-EPS-Prescription",
           "extension":  [
               {
                   "url": "courseOfTherapyType",
                   "valueCoding": {
                       "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy",
                       "code": "acute",
                       "display": "Acute"
                   }
               }
           ]
       }
   ],

extension:repeatInformation

Element Id Task.extension:repeatInformation
Cardinality 0..1
Slice Name repeatInformation
type Extension(ExtensionEPSRepeatInformation)

Definition

"extension": [
       {
           "url": "https://fhir.nhs.uk/StructureDefinition/Extension-EPS-RepeatInformation",
           "extension": [
               {
                   "url": "numberOfRepeatsAllowed",
                   "valueUnsignedInt": 6
               },
               {
                   "url": "numberOfRepeatsIssued",
                   "valueUnsignedInt": 2
               }
           ]
       },

identifier

Element Id Task.identifier
Cardinality 0..*
type Identifier

Definition

For EPS

A single identifier MUST be present and the value must be a UUID.

"identifier":  [
        {
            "system": "https://tools.ietf.org/html/rfc4122",
            "value": "5AC84C11-DB8B-44DA-8FCF-8980B3D13596"
        }
    ],

groupIdentifier

Element Id Task.groupIdentifier
Cardinality 0..1
type Identifier

Definition

EPS Only

An identifier to the original prescription-order MUST be present. Only the short form identifier needs to be supplied.

"groupIdentifier": {
        "system": "https://fhir.nhs.uk/Id/prescription-order-number",
        "value": "88AF6C-C81007-00001C"
    },

Requirements

Billing and/or reporting can be linked to whether multiple requests were created as a single unit.

status

Element Id Task.status
Cardinality 1..1
Terminology Binding TaskStatus (Required)
The current status of the task.
type code

Definition

These workflow tasks have status which indicates the Task status.

The following diagram reflects the "typical" state machine for Task. Note that not all states will be supported by all workflows and that some workflows may support additional transitions, including transitions from terminal states (e.g. back to "in-progress" from "failed" or "completed").

For example:

A patient requesting a repeat prescription would ask for task with code fulfil used with 103742009 | Renewal of prescription and a status of requested.
Once reviewed (by a clinician), the task status would be changed to accepted. When the task is then picked up (in-progress) and the related MedicationRequest is sent, the status would change to completed.

Requirements

These states enable coordination of task status with off-the-shelf workflow solutions that support automation of tasks.

Comment

For EPS

Only in-progress is currently supported for reasonCode = 373784005 (Dispensing medication) and focus is a dispense-notification.

rejected / cancelled / failed are supported for reasonCode = 33633005 (Prescription of drug) and focus is a prescription-order.

intent

Element Id Task.intent
Cardinality 1..1
Terminology Binding TaskIntent (Required)
Distinguishes whether the task is a proposal, plan or full order.
type code

Definition

Indicates the "level" of actionability associated with the Task, i.e. i+R[9]Cs this a proposed task, a planned task, an actionable task, etc.

Comment

Is not processed by EPS and is included for FHIR compliance reasons. The value should always be order.

code

Element Id Task.code
Cardinality 1..1
Terminology Binding NHSDigitalTaskCode (Extensible)
type CodeableConcept

Definition

e-RS

A SNOMED CT procedure code to indicate the action

  "code": {
        "coding": [
            {
                "system": "http://snomed.info/sct",
                "code": "386053000",
                "display": "Evaluation procedure"
            }
        ]
    },

EPS

The SNOMED action codes are complemented with order delivery task-code which indicates the type of action to be performed against the focal resource.

For example:

The code fulfil used with 182836005 | Review of medication means a task to review medication. The code approve used with 103742009 | Renewal of prescription is a task for a clinician to approve the issue of a repeat medication.

 "code": {
        "coding":  [
            {
                "system": "http://hl7.org/fhir/CodeSystem/task-code",
                "code": "fulfill",
                "display": "Fulfill the focal request"
            }
        ]

Comment

The title (eg "My Tasks", "Outstanding Tasks for Patient X") should go into the code.

focus

Element Id Task.focus
Cardinality 0..1
type Reference(NHSDigitalAppointment NHSDigitalServiceRequest NHSDigitalBundleFHIRMessage NHSDigitalMedicationRequest UKCorePatient)

Definition

e-RS

Reference to the resource which is the focus of the action

 "focus": {
        "reference": "https://server.fire.ly/ServiceRequest/eb13327f-e990-4667-b37a-89eb93a94c47"
    },

** EPS Only**

This will be the Bundle.identifier of the message this Task is acting on. For Tasks with a reasonCode of 373784005 - Dispensing medication this will be a dispense-notification message. For Tasks with a reasonCode of 33633005 - Prescription of drug this will be the prescription-order message from the Task/$release operation.

"focus": {
        "type": "Bundle",
        "identifier": {
            "system": "https://tools.ietf.org/html/rfc4122",
            "value": "334a3195-1f6c-497a-8efe-d272ca9c4e38"
        }
    },

Requirements

Used to identify the thing to be done.

Comment

Tasks are often generated as a consequence of other workflows or relate to FHIR Workflow resources. For example a repeat medication request will be related to a previous MedicationRequest or a medication reconciliation may relate to a hospital admissions Encounter/EpisodeOfCare. This is carried in the focus element.

focus can be omitted. For example if an ED generated a Medication Review as a result of COPD Emergency encounter they may chose to include a reference to the Encounter but they may decide instead to use a more specific reasonCode such as 394720003 | Asthma medication review.

Constraints

  • nhsd-taskfocus (ERROR) focus - An identifier reference or resource reference must be provided

for

Element Id Task.for
Cardinality 1..1
type Reference(Resource)

Definition

A reference to the patient the Task is for. This will always be an identifier reference using the Patients NHSNumber.

"for": {
        "identifier": {
            "system": "https://fhir.nhs.uk/Id/nhs-number",
            "value": "9446368138"
        }
    },

Requirements

Used to track tasks outstanding for a beneficiary. Do not use to track the task owner or creator (see owner and creator respectively). This can also affect access control.

Constraints

  • patient-reference (ERROR) An identifier reference or resource reference must be provided
  • patient-nhs (ERROR) NHS Number must be in the English and Welsh NHS Number range or length of the number is wrong.

for.identifier.system

Element Id Task.for.identifier.system
Cardinality 1..1
Fixed Value https://fhir.nhs.uk/Id/nhs-number
type uri

Definition

Establishes the namespace for the value - that is, a URL that describes a set values that are unique.

Requirements

There are many sets of identifiers. To perform matching of two identifiers, we need to know what set we're dealing with. The system identifies a particular set of unique identifiers.

Comment

Identifier.system is always case sensitive.

authoredOn

Element Id Task.authoredOn
Cardinality 0..1
type dateTime

Definition

Date and time the task was created.

"authoredOn": "2020-12-21T17:03:20-00:00",

Requirements

Most often used along with lastUpdated to track duration of task to supporting monitoring and management.

requester

Element Id Task.requester
Cardinality 0..1
type Reference(NHSDigitalPractitionerRole)
Aggregation - contained

Definition

Who is created the Request or the Event. In NHSDigital API's this SHOULD always be a PractitionerRole role reference.

 "requester": {
        "reference": "#requester"
    },

This will reference a contained PractitionerRole (note: this resource only contains limited user metadata such as ODS Code, professional code and SDS User Profile Id). This resource should not hold data which is held in SDS, only enough information to identify the SDS Entry,

{
    "resourceType": "Task",
    "id": "bd1ca5c4-ff49-4f2a-9db4-f5dda0112084",
    "meta": {
        "lastUpdated": "2016-07-11T11:07:22+00:00"
    },
    "contained": [
        {
            "resourceType": "PractitionerRole",
            "id": "requester",
            "practitioner": {
                "identifier": {
                    "system": "https://fhir.hl7.org.uk/Id/gmp-number",
                    "value": "G8123456"
                },
                "display": "DR AA BHATIA"
            },
            "organization": {
                "identifier": {
                    "system": "https://fhir.nhs.uk/Id/ods-organization-code",
                    "value": "C81007"
                },
                "display": "VERNON STREET MEDICAL CTR"
            },
            "telecom": [
                {
                    "system": "phone",
                    "use": "work",
                    "value": "01234567890"
                }
            ]
        }
    ],

Requirements

Identifies who created this task. May be used by access control mechanisms (e.g., to ensure that only the creator can cancel a task).

owner

Element Id Task.owner
Cardinality 0..1
type Reference(NHSDigitalPractitionerRole NHSDigitalOrganization)

Definition

EPS

Who is responsible for actioning the request Task (e.g. for a prescription-order this will be the pharmacy).

"owner": {
        "identifier": {
            "system": "https://fhir.nhs.uk/Id/ods-organization-code",
            "value": "FB444"
        },
        "display": "Freds Pharmacy"
    },

e-RS

"owner": {
        "identifier": {
            "system": "https://fhir.nhs.uk/Id/ers-service",
            "value": "12444"
        }
    },

Requirements

Identifies who is expected to perform this task.

Comment

Tasks may be created with an owner not yet identified.

reasonCode

Element Id Task.reasonCode
Cardinality 0..1
type CodeableConcept

Definition

In FHIR Task these types of workflow would be represented via reasonCode and/or reasonReference

For medication this is probably SNOMED CT based using codes under the SNOMED CT 182832007 Medication management and includes codes such as:

SNOMED CT Display
33633005 Prescription of drug
373784005 Dispensing medication

For referral management

SNOMED CT Display
3457005 Patient Referral
185499000 Expedite appointment

Comment

This should only be included if there is no focus or if it differs from the reason indicated on the focus.

reasonCode.coding:SNOMED

Element Id Task.reasonCode.coding:SNOMED
Cardinality 0..*
Slice Name SNOMED
type Coding

Definition

A reference to a code defined by a terminology system.

Requirements

Allows for alternative encodings within a code system, and translations to other code systems.

Comment

Codes may be defined very casually in enumerations, or code lists, up to very formal definitions such as SNOMED CT - see the HL7 v3 Core Principles for more information. Ordering of codings is undefined and SHALL NOT be used to infer meaning. Generally, at most only one of the coding values will be labeled as UserSelected = true.

reasonCode.coding:SNOMED.system

Element Id Task.reasonCode.coding:SNOMED.system
Cardinality 0..1
Fixed Value http://snomed.info/sct
type uri

Definition

The identification of the code system that defines the meaning of the symbol in the code.

Requirements

Need to be unambiguous about the source of the definition of the symbol.

Comment

The URI may be an OID (urn:oid:...) or a UUID (urn:uuid:...). OIDs and UUIDs SHALL be references to the HL7 OID registry. Otherwise, the URI should come from HL7's list of FHIR defined special URIs or it should reference to some definition that establishes the system clearly and unambiguously.

note

Element Id Task.note
Cardinality 0..*
type Annotation

Definition

EPS Only

This may contain cancellation reason.

e-RS

Used to add notes to the worklist items

"note": [
    {
      "text": "Optional comments"
    }
  ]

restriction

Element Id Task.restriction
Cardinality 0..1
type BackboneElement

Definition

If the Task.focus is a request resource and the task is seeking fulfillment (i.e. is asking for the request to be actioned), this element identifies any limitations on what parts of the referenced request should be actioned.

Requirements

Sometimes when fulfillment is sought, you don't want full fulfillment.

restriction.period.end

Element Id Task.restriction.period.end
Cardinality 0..1
type dateTime

Definition

In e-RS this is also known as the review date due.

Comment

e-RS

  • If deferred to provider (because there were no appointments available for a directly bookable service) then this is the date by which the provide should resolve the appointment slot issue; or
  • If the referral was sent to a triage service then this is the date by which the provider should have reviewed the referral

input

Element Id Task.input
Cardinality 0..*
type BackboneElement

Definition

Additional information that may be needed in the execution of the task.

Requirements

Resources and data used to perform the task. This data is used in the business logic of task execution, and is stored separately because it varies between workflows.

NHSDigital-Provenance

Conformance url
https://fhir.nhs.uk/StructureDefinition/NHSDigital-Provenance

NHSDigital-Provenance is used to convey the prescription digital signature.





referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uri
valueΣ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
occurredPeriodPeriod
occurredDateTimedateTime
recordedΣ1..1instant
policy0..*uri
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
reason0..*CodeableConceptBinding
activity0..1CodeableConceptBinding
typeΣ0..1CodeableConceptBinding
role0..*CodeableConcept
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uri
valueΣ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
roleΣ1..1codeBinding
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
agent0..*see (agent)
typeΣ1..*CodingBinding
whenS Σ1..1instant
referenceΣ I1..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
targetFormat0..1codeBinding
sigFormat0..1codeBinding
data0..1base64Binary

referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uri
valueΣ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
occurredPeriodPeriod
occurredDateTimedateTime
recordedΣ1..1instant
policy0..*uri
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
reason0..*CodeableConceptBinding
activity0..1CodeableConceptBinding
typeΣ0..1CodeableConceptBinding
role0..*CodeableConcept
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uri
valueΣ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
roleΣ1..1codeBinding
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
agent0..*see (agent)
typeΣ1..*CodingBinding
whenS Σ1..1instant
referenceΣ I1..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
targetFormat0..1codeBinding
sigFormat0..1codeBinding
data0..1base64Binary

keyhumanseverityexpression
who-referenceagent.who - An identifier reference or resource reference must be providedwarning(reference.exists() or identifier.exists())


target

A resource reference to the target of the Provenance (i.e. the resource being signed)

"target": [
        {
            "type": "MedicationRequest",
            "identifier": {
                "system": "https://fhir.nhs.uk/Id/prescription-order-item-number",
                "value": "a54219b8-f741-4c47-b662-e4f8dfa49ab6"
            }
        }
    ]


agent.who

Actors who have responsibility for the target resource.

It is recommended practitioner professional (e.g. GMC, GMP, etc) and/or organisation ODS codes are used. However SDS id's are permitted.

This SHOULD use identifier references.

"agent": [
        {
            "who": {
                "identifier": {
                    "system": "https://fhir.hl7.org.uk/Id/gmc-number",
                    "value": "C9876543"
                }
            }
        }
    ],


signature.type

type must be provided.

"signature": [
        {
            "type": [
                {
                    "system": "urn:iso-astm:E1762-95:2013",
                    "code": "1.2.840.10065.1.12.1.1"
                }
            ]
        }
    ]


signature.when

The dateTime the signature was signed.

"signature": [
        {
            "when": "2008-02-27T11:38:00+00:00"
        }
    ]


signature.who

A resource reference to a PractitionerRole resource which is normally present in the same FHIR Message.

"signature": [
        {
            "who": {
                "reference": "urn:uuid:16708936-6397-4e03-b84f-4aaa790633e0"
            }
    ]


signature.data

Base 64 encoded signature.

"signature": [
        {
            "data": "PFNpZ25hdHVyZSB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC8wOS94bWxkc2lnIyI+PFNpZ25lZEluZm8+PENhbm9uaWNhbGl6YXRpb25NZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzEwL3htbC1leGMtYzE0biMiLz48U2lnbmF0dXJlTWV0aG9kIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMC8wOS94bWxkc2lnI3JzYS1zaGExIi8+PFJlZmVyZW5jZT48VHJhbnNmb3Jtcz48VHJhbnNmb3JtIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8xMC94bWwtZXhjLWMxNG4jIi8+PC9UcmFuc2Zvcm1zPjxEaWdlc3RNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjc2hhMSIvPjxEaWdlc3RWYWx1ZT4zWWxGUU1PcncyUTBkVWt5dHpzNTBKRjdIVW89PC9EaWdlc3RWYWx1ZT48L1JlZmVyZW5jZT48L1NpZ25lZEluZm8+PFNpZ25hdHVyZVZhbHVlPlhwanNLWFBmVVc3MDhyR1B1T0FwaGxyNC9VQTIzZjNiaGRCT29jRUoxN0JYVjBKcnV6MUUxS0xGUXdxMzdFSmZuVm8vV0NMVFNqZ2sKa3AwQldqNWJHM0pqRWZqNzhaakkxeVZTUmJmYlZYWFFYMEdMWm1pU0dKcmhXbkZadDhjRnJ4TzFNRkF0U0xtS2Z5WEt6YnVIc0xUbQpzSFFLcFhDUmRabkZtS0JvakxtcDdOQnIwbExFOFBodHR1OEYyRWFldTJ3UFE4NHAxaU5XOTFmbzFIK1NGVnhDK0JSb1BJMXBvbFhnCjQyY2VUam9KNytGcVlQREhmQzduTkZJZ1RZSlpsUWRib01OYm5kdjZCUER1RnEwd3VzUWpEUTR6TVorOENscFJkdDNpS215bFhObUsKa0pBMTVXMHBGYkdxMFhuZjNTMU1YV0Vsa2FDSVVDZEdLMldzUEE9PTwvU2lnbmF0dXJlVmFsdWU+PEtleUluZm8+PFg1MDlEYXRhPjxYNTA5Q2VydGlmaWNhdGU+TUlJRUpEQ0NBd3lnQXdJQkFnSVVLM3hrRVVsUmhYUEpLTlZ3cnlxTFpSb05UUVF3RFFZSktvWklodmNOQVFFTEJRQXdSREVPTUF3RwpBMVVFQ2hNRlNGTkRTVU14RVRBUEJnTlZCQXNUQ0U5d1pXNTBaWE4wTVI4d0hRWURWUVFERXhaRlVGTWdUbTl1TFhKbGNIVmthV0YwCmFXOXVJRU5CTUI0WERUSXdNREl5TnpFek1EY3lNbG9YRFRJeU1ESXlOakV6TURjeU1sb3dPekVPTUF3R0ExVUVDaE1GU0ZORFNVTXgKR3pBWkJnTlZCQXNURWxOdmJIVjBhVzl1SUVGemMzVnlZVzVqWlRFTU1Bb0dBMVVFQXhNRFJVMVZNSUlCSWpBTkJna3Foa2lHOXcwQgpBUUVGQUFPQ0FROEFNSUlCQ2dLQ0FRRUFwMEc0R2FjN1MwbXFsSFkvc1crRUZaWkw4QVUrRk1SclNGSWVmSVNvY0E2RHNIZVBnSHBnCjB0SmNkbWozTjQ1VlI2RkhEckt4NURnLzAwNVIvdDhnYnVJSEYraUkxcHVUY1Y5aldQbWFra3VybFZQQVJtaUF5NzY3V1BrOW1wVW8KbGZvSGRJTEtxZklXTXpRelc3QzRMOHZGSzU1QkllVjQvbElEdkVweForTEhXYmttay9oMWRXZXh1cGpPVGZxVG4vVWl4K0xhdDJUcApxellTck0wYmVwOHA4dWNuZE41c3FjbTZVa1BvdGhzeE5FaTJIamtkOGFvSDFINEtJVndnY0J3V2UrWHJMWEs1V2FyTVcwWTlxZ1FLCnhNc252VzhveUhhODNta0hZK2U4T2VOL1NucVlqa2FnMEk0cHZiQlRjbHJHZklTY0lmVFpvclZuMld2Q0lRSURBUUFCbzRJQkZUQ0MKQVJFd0NRWURWUjBUQkFJd0FEQU9CZ05WSFE4QkFmOEVCQU1DQmFBd0lBWURWUjBsQVFIL0JCWXdGQVlJS3dZQkJRVUhBd0VHQ0NzRwpBUVVGQndNQ01EWUdDV0NHU0FHRytFSUJEUVFwRmlkUGNHVnVkR1Z6ZERvZ1QzQmxibE5UVENCSFpXNWxjbUYwWldRZ1EyVnlkR2xtCmFXTmhkR1V3SFFZRFZSME9CQllFRkFINHB0Y2tPaHNVekJmVmp0L20wNUdpTzhYUk1Ic0dBMVVkSXdSME1IS0FGTklSdlg5b21ybDcKWlhTcUVJTnk2dzJyUFFkdW9VK2tUVEJMTVJRd0VnWURWUVFLRXd0T1NGTWdSR2xuYVhSaGJERVJNQThHQTFVRUN4TUlUM0JsYm5SbApjM1F4SURBZUJnTlZCQU1URjA5d1pXNTBaWE4wSUZKdmIzUWdRWFYwYUc5eWFYUjVnZ2tBNnUwY1hiTHFLb1F3RFFZSktvWklodmNOCkFRRUxCUUFEZ2dFQkFFRGNyUGNkcklDNXVmVkhyYTYyb0dCUC9sejVvSnEzUWw5M1BoZ3c5QkRidW1QVTc0UCtYZ1FvTzl2dzh4TzIKWWI0K1BMN00yQnVKbzNmRHFjRHNXKzRCNHQ5bWRoV1c3bFJqTjNXY3Vqb0xzbFB6MjNjZnl4Q2dabllNTURiT2hCckp4VkN6WWVDNgpueDZPaGtMMVYzWW9lK09JeXJSZVV6cHplQndzVVg1cTgwMmROYVYxeXJiNmFpMmljZ3hxcFkrZk9aWUZMUmVmUElxdXRCSzczaG5ECnV4RGpJKzdlaHlGcGFwZk9YVkJtTFRhY0x4TEYxRHkvNytHSVhiZEl3YmVkZXQ0cDJJY0VhUlgwZVdUMFUvL1pKU2VCcW5PT3BYbzYKNERmWnRTOVZsMmV4SGJISHFZYzBSVk5wS0ltYVdWck15ZEMxcU9leGpVWlNWQlZkK1pvPTwvWDUwOUNlcnRpZmljYXRlPjwvWDUwOURhdGE+PC9LZXlJbmZvPjwvU2lnbmF0dXJlPg=="
        }
    ]

NHSDigital-Location

Conformance url FHIR Module Maturity Level
https://fhir.nhs.uk/StructureDefinition/NHSDigital-Location draft

A Location includes both incidental locations (a place which is used for healthcare without prior designation or authorisation) and dedicated, formally appointed locations. Locations may be private, public, mobile or fixed and scale from small freezers to full hospital buildings or parking garages.



useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uriFixed Value
valueΣ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uriFixed Value
valueΣ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(Organization)
statusΣ ?!0..1codeBinding
operationalStatusΣ0..1CodingBinding
nameΣ0..1string
alias0..*string
descriptionΣ0..1string
modeΣ0..1codeBinding
typeΣ0..*CodeableConceptBinding
telecomI0..*ContactPoint
addressS1..1Address
physicalTypeΣ0..1CodeableConcept
longitude1..1decimal
latitude1..1decimal
altitude0..1decimal
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uri
valueΣ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uri
valueΣ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
daysOfWeek0..*codeBinding
allDay0..1boolean
openingTime0..1time
closingTime0..1time
availabilityExceptions0..1string
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string

useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uriFixed Value
valueΣ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uriFixed Value
valueΣ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(Organization)
statusΣ ?!0..1codeBinding
operationalStatusΣ0..1CodingBinding
nameΣ0..1string
alias0..*string
descriptionΣ0..1string
modeΣ0..1codeBinding
typeΣ0..*CodeableConceptBinding
telecomI0..*ContactPoint
addressS1..1Address
physicalTypeΣ0..1CodeableConcept
longitude1..1decimal
latitude1..1decimal
altitude0..1decimal
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uri
valueΣ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uri
valueΣ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
daysOfWeek0..*codeBinding
allDay0..1boolean
openingTime0..1time
closingTime0..1time
availabilityExceptions0..1string
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string

keyhumanseverityexpression
nhds-10managingOrganization - a display name should be providedwarning(display.exists())
nhsd-9partOf - display name should be providedwarning(display.exists())

- RBA11

Search Parameters

The following search parameters and search parameter combinations SHALL be supported.:

Name Type Description Conformance Path
address-postcode string A postalCode specified in an address MAY Location.address.postalCode
identifier token Any identifier for the location (e.g. SDS/ODS code) MAY Location.identifier

Additional parameters can be on Location - Search Parameters

Mandatory Search Parameters

None

Optional Search Parameters

address-postcode

MAY support searching by the address-postcode search parameter:

GET [baseUrl]/Location?address-postcode=[address-postcode]

Example:

GET [baseUrl]/Location?address-postcode=NG10%201RY

Return all Location resources with Post Code of NG10 1RY.

identifier (SDS/ODS Code)

MAY support searching by the identifier search parameter:

GET [baseUrl]/Location?identifier={system|}[code]

Example:

GET [baseUrl]/Location?identifier=https://fhir.nhs.uk/Id/ods-site-code|RTG08

Return all Location resources with NHS Trust Site of RTG08 (Long Eaton Clinic).

NHSDigital-OperationDefinition

Conformance url
https://fhir.nhs.uk/StructureDefinition/NHSDigital-OperationDefinition


with OperationDefinition

urlΣ0..1uri
versionΣ0..1string
nameΣ I1..1string
titleΣ0..1string
statusΣ ?!1..1codeBinding
kindΣ1..1codeBinding
experimentalΣ0..1boolean
dateΣ0..1dateTime
publisherΣ0..1string
contactΣ0..*ContactDetail
description0..1markdown
useContextΣ0..*UsageContext
jurisdictionΣ0..*CodeableConceptBinding
purpose0..1markdown
affectsStateS Σ1..1boolean
codeΣ1..1code
comment0..1markdown
baseΣ0..1canonical(OperationDefinition)
resourceΣ0..*codeBinding
systemΣ1..1boolean
typeΣ1..1boolean
instanceΣ1..1boolean
inputProfile0..1canonical(StructureDefinition)
outputProfile0..1canonical(StructureDefinition)
name1..1code
use1..1codeBinding
min1..1integer
max1..1string
documentation0..1string
typeI0..1codeBinding
targetProfile0..*canonical(StructureDefinition)
searchTypeI0..1codeBinding
strength1..1codeBinding
valueSet1..1canonical(ValueSet)
source1..1string
sourceId0..1string
partI0..*see (parameter)
parameterName0..*string
comment0..1string

from OperationDefinition

urlΣ0..1uri
versionΣ0..1string
nameΣ I1..1string
titleΣ0..1string
statusΣ ?!1..1codeBinding
kindΣ1..1codeBinding
experimentalΣ0..1boolean
dateΣ0..1dateTime
publisherΣ0..1string
contactΣ0..*ContactDetail
description0..1markdown
useContextΣ0..*UsageContext
jurisdictionΣ0..*CodeableConceptBinding
purpose0..1markdown
affectsStateS Σ1..1boolean
codeΣ1..1code
comment0..1markdown
baseΣ0..1canonical(OperationDefinition)
resourceΣ0..*codeBinding
systemΣ1..1boolean
typeΣ1..1boolean
instanceΣ1..1boolean
inputProfile0..1canonical(StructureDefinition)
outputProfile0..1canonical(StructureDefinition)
name1..1code
use1..1codeBinding
min1..1integer
max1..1string
documentation0..1string
typeI0..1codeBinding
targetProfile0..*canonical(StructureDefinition)
searchTypeI0..1codeBinding
strength1..1codeBinding
valueSet1..1canonical(ValueSet)
source1..1string
sourceId0..1string
partI0..*see (parameter)
parameterName0..*string
comment0..1string

NHS Digital has defined the following operations:

NHSDigital-MessageDefinition

Conformance url
https://fhir.nhs.uk/StructureDefinition/NHSDigital-MessageDefinition


with MessageDefinition

urlS Σ1..1uri
identifierΣ0..*Identifier
versionΣ0..1string
nameΣ I0..1string
titleΣ0..1string
replacesΣ0..*canonical(MessageDefinition)
statusΣ ?!1..1codeBinding
experimentalΣ0..1boolean
dateΣ1..1dateTime
publisherΣ0..1string
contactΣ0..*ContactDetail
descriptionS Σ1..1markdown
codeΣ1..1CodingBinding
valueCodeableConceptCodeableConcept
valueQuantityQuantity
valueRangeRange
valueReferenceReference(PlanDefinition | ResearchStudy | InsurancePlan | HealthcareService | Group | Location | Organization)
jurisdictionΣ0..*CodeableConceptBinding
purposeΣ0..1markdown
copyright0..1markdown
baseΣ0..1canonical(MessageDefinition)
parentΣ0..*canonical(ActivityDefinition | PlanDefinition)
eventCodingCoding
categoryΣ0..1codeBinding
codeΣ1..1codeBinding
profile0..1canonical(StructureDefinition)
minΣ1..1unsignedInt
maxI0..1string
responseRequired0..1codeBinding
message1..1canonical(MessageDefinition)
situation0..1markdown
graph0..*canonical(GraphDefinition)

from MessageDefinition

urlS Σ1..1uri
identifierΣ0..*Identifier
versionΣ0..1string
nameΣ I0..1string
titleΣ0..1string
replacesΣ0..*canonical(MessageDefinition)
statusΣ ?!1..1codeBinding
experimentalΣ0..1boolean
dateΣ1..1dateTime
publisherΣ0..1string
contactΣ0..*ContactDetail
descriptionS Σ1..1markdown
codeΣ1..1CodingBinding
valueCodeableConceptCodeableConcept
valueQuantityQuantity
valueRangeRange
valueReferenceReference(PlanDefinition | ResearchStudy | InsurancePlan | HealthcareService | Group | Location | Organization)
jurisdictionΣ0..*CodeableConceptBinding
purposeΣ0..1markdown
copyright0..1markdown
baseΣ0..1canonical(MessageDefinition)
parentΣ0..*canonical(ActivityDefinition | PlanDefinition)
eventCodingCoding
categoryΣ0..1codeBinding
codeΣ1..1codeBinding
profile0..1canonical(StructureDefinition)
minΣ1..1unsignedInt
maxI0..1string
responseRequired0..1codeBinding
message1..1canonical(MessageDefinition)
situation0..1markdown
graph0..*canonical(GraphDefinition)

None Defined

NHSDigital-ServiceRequest

Conformance url FHIR Module Maturity Level
https://fhir.nhs.uk/StructureDefinition/NHSDigital-ServiceRequest draft

Conformance Rules



idΣ0..1System.String
sourceOfServiceRequestI0..1Extension(CodeableConcept)
ERSAdviceAndGuidanceS I0..1Extension(Complex)
ERSServiceRequestStateS I0..1Extension(Complex)
serviceRequestPriorityS I0..1Extension(Coding)
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uriFixed Value
valueΣ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
instantiatesCanonicalΣ0..*canonical(ActivityDefinition | PlanDefinition)
instantiatesUriΣ0..*uri
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uri
valueΣ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
statusΣ ?!1..1codeBinding
intentΣ ?!1..1codeBinding
systemΣ1..1uri
versionΣ0..1string
codeΣ1..1code
displayΣ0..1string
userSelectedΣ0..1boolean
systemΣ0..1uriFixed Value
versionΣ0..1string
codeΣ0..1code
displayΣ0..1string
userSelectedΣ0..1boolean
systemΣ0..1uriFixed Value
versionΣ0..1string
codeΣ0..1code
displayΣ0..1string
userSelectedΣ0..1boolean
textΣ0..1string
priorityS Σ0..1codeBinding
doNotPerformΣ ?!0..1boolean
systemΣ1..1uriFixed Value
versionΣ0..1string
codeΣ1..1code
displayΣ0..1string
userSelectedΣ0..1boolean
systemΣ1..1uriFixed Value
versionΣ0..1string
codeΣ1..1code
displayΣ0..1string
userSelectedΣ0..1boolean
textΣ0..1string
orderDetailΣ I0..*CodeableConcept
quantityQuantityQuantity
quantityRatioRatio
quantityRangeRange
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uriFixed Value
valueΣ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
occurrenceDateTimedateTime
occurrencePeriodPeriod
occurrenceTimingTiming
asNeededBooleanboolean
asNeededCodeableConceptCodeableConcept
authoredOnS Σ0..1dateTime
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
systemΣ0..1uriFixed Value
versionΣ0..1string
codeΣ0..1code
displayΣ0..1string
userSelectedΣ0..1boolean
systemΣ0..1uriFixed Value
versionΣ0..1string
codeΣ0..1code
displayΣ0..1string
userSelectedΣ0..1boolean
textΣ0..1string
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uri
valueΣ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
locationCodeΣ0..*CodeableConcept
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
reasonCodeS Σ0..*CodeableConceptBinding
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
bodySiteΣ0..*CodeableConceptBinding
noteS0..*Annotation
patientInstructionΣ0..1string
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string

idΣ0..1System.String
sourceOfServiceRequestI0..1Extension(CodeableConcept)
ERSAdviceAndGuidanceS I0..1Extension(Complex)
ERSServiceRequestStateS I0..1Extension(Complex)
serviceRequestPriorityS I0..1Extension(Coding)
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uriFixed Value
valueΣ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
instantiatesCanonicalΣ0..*canonical(ActivityDefinition | PlanDefinition)
instantiatesUriΣ0..*uri
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uri
valueΣ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
statusΣ ?!1..1codeBinding
intentΣ ?!1..1codeBinding
systemΣ1..1uri
versionΣ0..1string
codeΣ1..1code
displayΣ0..1string
userSelectedΣ0..1boolean
systemΣ0..1uriFixed Value
versionΣ0..1string
codeΣ0..1code
displayΣ0..1string
userSelectedΣ0..1boolean
systemΣ0..1uriFixed Value
versionΣ0..1string
codeΣ0..1code
displayΣ0..1string
userSelectedΣ0..1boolean
textΣ0..1string
priorityS Σ0..1codeBinding
doNotPerformΣ ?!0..1boolean
systemΣ1..1uriFixed Value
versionΣ0..1string
codeΣ1..1code
displayΣ0..1string
userSelectedΣ0..1boolean
systemΣ1..1uriFixed Value
versionΣ0..1string
codeΣ1..1code
displayΣ0..1string
userSelectedΣ0..1boolean
textΣ0..1string
orderDetailΣ I0..*CodeableConcept
quantityQuantityQuantity
quantityRatioRatio
quantityRangeRange
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uriFixed Value
valueΣ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
occurrenceDateTimedateTime
occurrencePeriodPeriod
occurrenceTimingTiming
asNeededBooleanboolean
asNeededCodeableConceptCodeableConcept
authoredOnS Σ0..1dateTime
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
systemΣ0..1uriFixed Value
versionΣ0..1string
codeΣ0..1code
displayΣ0..1string
userSelectedΣ0..1boolean
systemΣ0..1uriFixed Value
versionΣ0..1string
codeΣ0..1code
displayΣ0..1string
userSelectedΣ0..1boolean
textΣ0..1string
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uri
valueΣ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
locationCodeΣ0..*CodeableConcept
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
reasonCodeS Σ0..*CodeableConceptBinding
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
bodySiteΣ0..*CodeableConceptBinding
noteS0..*Annotation
patientInstructionΣ0..1string
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string

None defined at present

Constraint Profiles

nameprofilepurpose
NHSDigitalServiceRequestPatientCarehttps://fhir.nhs.uk/StructureDefinition/NHSDigital-ServiceRequest-PatientCare

Profile on NHSDigital-ServiceRequest for NHS App/e-RS PatientCare


Definition

A record of a request for service such as diagnostic investigations, treatments, or operations to be performed.

Constraints

extension:ERSAdviceAndGuidance

Element Id ServiceRequest.extension:ERSAdviceAndGuidance
Cardinality 0..*
Slice Name ERSAdviceAndGuidance
type Extension(ExtensionERSAdviceAndGuidance)

Definition

 "extension": [
       {
           "url": "https://fhir.nhs.uk/StructureDefinition/Extension-ERS-Referral",
           "extension": [
               {
                   "url": "sourceSystem",
                   "valueCode": "ers"
               },
               {
                   "url": "status",
                   "valueCode": "unbooked"
               }
           ]
       },

extension:ERSServiceRequestState

Element Id ServiceRequest.extension:ERSServiceRequestState
Cardinality 0..*
Slice Name ERSServiceRequestState
type Extension(ExtensionNHSDigitaleRSReferralState)

Definition

e-RS representation of the state of the referral

"extension": [
        {
            "url": "https://fhir.nhs.uk/StructureDefinition/Extension-ERS-Referral",
            "extension": [
                {
                    "url": "sourceSystem",
                    "valueCode": "ers"
                },
                {
                    "url": "status",
                    "valueCode": "unbooked"
                }
            ]
        }
    ],

Element Id ServiceRequest.extension:portalLink
Cardinality 0..1
Slice Name portalLink
type Extension(ExtensionPortalLink)

Definition

Deep Link into the specific landing page in MYR

"extension": [
        {
            "url": "https://fhir.nhs.uk/StructureDefinition/Extension-Portal-Link",
            "valueUrl": "https://virtual.nhs.uk/MyPatientRecords"
        }
    ],

extension:serviceRequestPriority

Element Id ServiceRequest.extension:serviceRequestPriority
Cardinality 0..1
Slice Name serviceRequestPriority
type Extension(ExtensionServiceRequestPriority)

Definition

Optional Extension Element - found in all resources.

identifier

Element Id ServiceRequest.identifier
Cardinality 1..*
Slicing OPEN discriminator - VALUE system
type Identifier

Definition

Identifiers assigned to this order instance by the orderer and/or the receiver and/or order fulfiller.

"identifier": [
                    {
                        "system": "https://fhir.nhs.uk/Id/UBRN",
                        "value": "111111111112"
                    }
                ],

Comment

The identifier.type element is used to distinguish between the identifiers assigned by the orderer (known as the 'Placer' in HL7 v2) and the producer of the observations in response to the order (known as the 'Filler' in HL7 v2). For further discussion and examples see the resource notes section below.

identifier:UBRN

Element Id ServiceRequest.identifier:UBRN
Cardinality 0..1
Slice Name UBRN
type Identifier

Definition

Unique Booking Reference Number (12 digit number used as an internal and external identifier of the referral), known as "Booking Reference" Patient side

Comment

The identifier.type element is used to distinguish between the identifiers assigned by the orderer (known as the 'Placer' in HL7 v2) and the producer of the observations in response to the order (known as the 'Filler' in HL7 v2). For further discussion and examples see the resource notes section below.

identifier:UBRN.system

Element Id ServiceRequest.identifier:UBRN.system
Cardinality 1..1
Fixed Value https://fhir.nhs.uk/Id/UBRN
type uri

Definition

Establishes the namespace for the value - that is, a URL that describes a set values that are unique.

Requirements

There are many sets of identifiers. To perform matching of two identifiers, we need to know what set we're dealing with. The system identifies a particular set of unique identifiers.

Comment

Identifier.system is always case sensitive.

basedOn

Element Id ServiceRequest.basedOn
Cardinality 0..*
type Reference(CarePlan MedicationRequest ServiceRequest)

Definition

Plan/proposal/order fulfilled by this request.

basedOn.identifier

Element Id ServiceRequest.basedOn.identifier
Cardinality 0..1
type Identifier

Definition

An identifier for the target resource. This is used when there is no way to reference the other resource directly, either because the entity it represents is not available through a FHIR server, or because there is no way for the author of the resource to convert a known identifier to an actual location. There is no requirement that a Reference.identifier point to something that is actually exposed as a FHIR instance, but it SHALL point to a business concept that would be expected to be exposed as a FHIR instance, and that instance would need to be of a FHIR resource type allowed by the reference.

Comment

When an identifier is provided in place of a reference, any system processing the reference will only be able to resolve the identifier to a reference if it understands the business context in which the identifier is used. Sometimes this is global (e.g. a national identifier) but often it is not. For this reason, none of the useful mechanisms described for working with references (e.g. chaining, includes) are possible, nor should servers be expected to be able resolve the reference. Servers may accept an identifier based reference untouched, resolve it, and/or reject it - see CapabilityStatement.rest.resource.referencePolicy. When both an identifier and a literal reference are provided, the literal reference is preferred. Applications processing the resource are allowed - but not required - to check that the identifier matches the literal reference Applications converting a logical reference to a literal reference may choose to leave the logical reference present, or remove it. Reference is intended to point to a structure that can potentially be expressed as a FHIR resource, though there is no need for it to exist as an actual FHIR resource instance - except in as much as an application wishes to actual find the target of the reference. The content referred to be the identifier must meet the logical constraints implied by any limitations on what resource types are permitted for the reference. For example, it would not be legitimate to send the identifier for a drug prescription if the type were Reference(Observation|DiagnosticReport). One of the use-cases for Reference.identifier is the situation where no FHIR representation exists (where the type is Reference (Any).

category

Element Id ServiceRequest.category
Cardinality 1..1
Terminology Binding ServiceRequestCategoryCodes (Example)
Classification of the requested service.
type CodeableConcept

Definition

A code that classifies the service for searching, sorting and display purposes (e.g. "Surgical Procedure").

At present the only code in use is Patient Referral

 "category": [
        {
            "coding": [
                {
                    "system": "http://snomed.info/sct",
                    "code": "3457005",
                    "display": "Patient referral"
                }
            ]
        }
    ],

Requirements

Used for filtering what service request are retrieved and displayed.

Comment

There may be multiple axis of categorization depending on the context or use case for retrieving or displaying the resource. The level of granularity is defined by the category concepts in the value set.

category.coding.system

Element Id ServiceRequest.category.coding.system
Cardinality 1..1
Fixed Value http://snomed.info/sct
type uri

Definition

The identification of the code system that defines the meaning of the symbol in the code.

Requirements

Need to be unambiguous about the source of the definition of the symbol.

Comment

The URI may be an OID (urn:oid:...) or a UUID (urn:uuid:...). OIDs and UUIDs SHALL be references to the HL7 OID registry. Otherwise, the URI should come from HL7's list of FHIR defined special URIs or it should reference to some definition that establishes the system clearly and unambiguously.

priority

Element Id ServiceRequest.priority
Cardinality 0..1
Terminology Binding RequestPriority (Required)
Identifies the level of importance to be assigned to actioning the request.
type code

Definition

Request Priority Code

Code for the priority of the referral set by the Referring Clinician

 "priority": "routine",

code

Element Id ServiceRequest.code
Cardinality 0..1
Terminology Binding UKCoreProcedureCode (Preferred)
A set of codes that define a procedure or a procedure with explicit context. Selected from the SNOMED CT UK coding system.
type CodeableConcept

Definition

A code that identifies a particular service (i.e., procedure, diagnostic investigation, or panel of investigations) that have been requested.

Ideally this should be a child code of the ServiceRequest.category

Comment

Many laboratory and radiology procedure codes embed the specimen/organ system in the test order name, for example, serum or serum/plasma glucose, or a chest x-ray. The specimen might not be recorded separately from the test code.

code.coding:SNOMEDProcedureCode

Element Id ServiceRequest.code.coding:SNOMEDProcedureCode
Cardinality 1..*
Slice Name SNOMEDProcedureCode
type Coding

Definition

A reference to a code defined by a terminology system.

Requirements

Allows for alternative encodings within a code system, and translations to other code systems.

Comment

Codes may be defined very casually in enumerations, or code lists, up to very formal definitions such as SNOMED CT - see the HL7 v3 Core Principles for more information. Ordering of codings is undefined and SHALL NOT be used to infer meaning. Generally, at most only one of the coding values will be labeled as UserSelected = true.

code.coding:SNOMEDProcedureCode.system

Element Id ServiceRequest.code.coding:SNOMEDProcedureCode.system
Cardinality 1..1
Fixed Value http://snomed.info/sct
type uri

Definition

The identification of the code system that defines the meaning of the symbol in the code.

Requirements

Need to be unambiguous about the source of the definition of the symbol.

Comment

The URI may be an OID (urn:oid:...) or a UUID (urn:uuid:...). OIDs and UUIDs SHALL be references to the HL7 OID registry. Otherwise, the URI should come from HL7's list of FHIR defined special URIs or it should reference to some definition that establishes the system clearly and unambiguously.

subject

Element Id ServiceRequest.subject
Cardinality 1..1
type Reference(NHSDigitalPatient)

Definition

On whom or what the service is to be performed. This is usually a human patient, but can also be requested on animals, groups of humans or animals, devices such as dialysis machines, or even locations (typically for environmental scans).

"subject": {
        "identifier": {
            "system": "https://fhir.nhs.uk/Id/nhs-number",
            "value": "9999998887"
        }
    },

Constraints

  • patient-reference (ERROR) An identifier reference or resource reference must be provided
  • patient-nhs (ERROR) NHS Number must be in the English and Welsh NHS Number range or length of the number is wrong.

subject.identifier.system

Element Id ServiceRequest.subject.identifier.system
Cardinality 1..1
Fixed Value https://fhir.nhs.uk/Id/nhs-number
type uri

Definition

Establishes the namespace for the value - that is, a URL that describes a set values that are unique.

Requirements

There are many sets of identifiers. To perform matching of two identifiers, we need to know what set we're dealing with. The system identifies a particular set of unique identifiers.

Comment

Identifier.system is always case sensitive.

authoredOn

Element Id ServiceRequest.authoredOn
Cardinality 0..1
type dateTime

Definition

Date the referral was initiated in e-RS

"authoredOn": "2022-01-11T16:40:00+00:00",

requester

Element Id ServiceRequest.requester
Cardinality 1..1
type Reference(NHSDigitalPractitionerRoleMinimal)
Aggregation - contained

Definition

Who is created the Request or the Event. In NHSDigital API's this SHOULD always be a PractitionerRole role reference.

 "requester": {
        "reference": "#requester"
    },

This will reference a contained PractitionerRole (note: this resource only contains limited user metadata such as ODS Code, professional code and SDS User Profile Id). This resource should not hold data which is held in SDS, only enough information to identify the SDS Entry,

{
    "resourceType": "ServiceRequest",
    "id": "bd1ca5c4-ff49-4f2a-9db4-f5dda0112084",
    "meta": {
        "lastUpdated": "2016-07-11T11:07:22+00:00"
    },
    "contained": [
        {
            "resourceType": "PractitionerRole",
            "id": "requester",
            "practitioner": {
                "identifier": {
                    "system": "https://fhir.hl7.org.uk/Id/gmp-number",
                    "value": "G8123456"
                },
                "display": "DR AA BHATIA"
            },
            "organization": {
                "identifier": {
                    "system": "https://fhir.nhs.uk/Id/ods-organization-code",
                    "value": "C81007"
                },
                "display": "VERNON STREET MEDICAL CTR"
            },
        }
    ],
    "requester": {
        "reference": "#requester"
    },

e-RS

The contained PractitionerRole must contain

  • SDS User ID of the Referrer in practitioner
  • ODS Code of the Referring Organisation in organization

Comment

This not the dispatcher, but rather who is the authorizer. This element is not intended to handle delegation which would generally be managed through the Provenance resource.

performerType

Element Id ServiceRequest.performerType
Cardinality 0..1
Terminology Binding ParticipantRoles (Example)
Indicates specific responsibility of an individual within the care team, such as "Primary physician", "Team coordinator", "Caregiver", etc.
type CodeableConcept

Definition

ERS

Specialty used to search for the shortlisted service(s) (if one was used)

"performerType": {
        "coding": [
            {
                "system": "https://fhir.nhs.uk/CodeSystem/eRS-Specialty",
                "code": "GENERAL_MEDICINE"
            }
        ]
    },

"performerType": {
                    "coding": [
                        {
                            "display": "Dermatology"
                        }
                    ]
                }

Comment

This is a role, not a participation type. In other words, does not describe the task but describes the capacity. For example, “compounding pharmacy”, “psychiatrist” or “internal referral”.

performerType.coding:treatmentFunctionCodes

Element Id ServiceRequest.performerType.coding:treatmentFunctionCodes
Cardinality 0..*
Terminology Binding NHSDataDictionaryTreatmentFunctionCodes (Required)
Slice Name treatmentFunctionCodes
type Coding

Definition

A reference to a code defined by a terminology system.

Requirements

Allows for alternative encodings within a code system, and translations to other code systems.

Comment

Codes may be defined very casually in enumerations, or code lists, up to very formal definitions such as SNOMED CT - see the HL7 v3 Core Principles for more information. Ordering of codings is undefined and SHALL NOT be used to infer meaning. Generally, at most only one of the coding values will be labeled as UserSelected = true.

performerType.coding:treatmentFunctionCodes.system

Element Id ServiceRequest.performerType.coding:treatmentFunctionCodes.system
Cardinality 0..1
Fixed Value https://fhir.nhs.uk/CodeSystem/NHSDataModelAndDictionary-treatment-function
type uri

Definition

The identification of the code system that defines the meaning of the symbol in the code.

Requirements

Need to be unambiguous about the source of the definition of the symbol.

Comment

The URI may be an OID (urn:oid:...) or a UUID (urn:uuid:...). OIDs and UUIDs SHALL be references to the HL7 OID registry. Otherwise, the URI should come from HL7's list of FHIR defined special URIs or it should reference to some definition that establishes the system clearly and unambiguously.

performerType.coding:eRSSpecialty

Element Id ServiceRequest.performerType.coding:eRSSpecialty
Cardinality 0..*
Terminology Binding NHSDigitaleRSSpecialty (Required)
Slice Name eRSSpecialty
type Coding

Definition

A reference to a code defined by a terminology system.

Requirements

Allows for alternative encodings within a code system, and translations to other code systems.

Comment

Codes may be defined very casually in enumerations, or code lists, up to very formal definitions such as SNOMED CT - see the HL7 v3 Core Principles for more information. Ordering of codings is undefined and SHALL NOT be used to infer meaning. Generally, at most only one of the coding values will be labeled as UserSelected = true.

performerType.coding:eRSSpecialty.system

Element Id ServiceRequest.performerType.coding:eRSSpecialty.system
Cardinality 0..1
Fixed Value https://fhir.nhs.uk/CodeSystem/eRS-Specialty
type uri

Definition

The identification of the code system that defines the meaning of the symbol in the code.

Requirements

Need to be unambiguous about the source of the definition of the symbol.

Comment

The URI may be an OID (urn:oid:...) or a UUID (urn:uuid:...). OIDs and UUIDs SHALL be references to the HL7 OID registry. Otherwise, the URI should come from HL7's list of FHIR defined special URIs or it should reference to some definition that establishes the system clearly and unambiguously.

performer

Element Id ServiceRequest.performer
Cardinality 0..*
type Reference(UKCoreCareTeam UKCoreDevice UKCoreHealthcareService UKCoreOrganization UKCorePatient UKCorePractitioner UKCorePractitionerRole UKCoreRelatedPerson)

Definition

The desired performer for doing the requested service. For example, the surgeon, dermatopathologist, endoscopist, etc.

Comment

If multiple performers are present, it is interpreted as a list of alternative performers without any preference regardless of order. If order of preference is needed use the request-performerOrder extension. Use CareTeam to represent a group of performers (for example, Practitioner A and Practitioner B).

performer.identifier

Element Id ServiceRequest.performer.identifier
Cardinality 0..1
type Identifier

Definition

An identifier for the target resource. This is used when there is no way to reference the other resource directly, either because the entity it represents is not available through a FHIR server, or because there is no way for the author of the resource to convert a known identifier to an actual location. There is no requirement that a Reference.identifier point to something that is actually exposed as a FHIR instance, but it SHALL point to a business concept that would be expected to be exposed as a FHIR instance, and that instance would need to be of a FHIR resource type allowed by the reference.

Comment

When an identifier is provided in place of a reference, any system processing the reference will only be able to resolve the identifier to a reference if it understands the business context in which the identifier is used. Sometimes this is global (e.g. a national identifier) but often it is not. For this reason, none of the useful mechanisms described for working with references (e.g. chaining, includes) are possible, nor should servers be expected to be able resolve the reference. Servers may accept an identifier based reference untouched, resolve it, and/or reject it - see CapabilityStatement.rest.resource.referencePolicy. When both an identifier and a literal reference are provided, the literal reference is preferred. Applications processing the resource are allowed - but not required - to check that the identifier matches the literal reference Applications converting a logical reference to a literal reference may choose to leave the logical reference present, or remove it. Reference is intended to point to a structure that can potentially be expressed as a FHIR resource, though there is no need for it to exist as an actual FHIR resource instance - except in as much as an application wishes to actual find the target of the reference. The content referred to be the identifier must meet the logical constraints implied by any limitations on what resource types are permitted for the reference. For example, it would not be legitimate to send the identifier for a drug prescription if the type were Reference(Observation|DiagnosticReport). One of the use-cases for Reference.identifier is the situation where no FHIR representation exists (where the type is Reference (Any).

reasonCode

Element Id ServiceRequest.reasonCode
Cardinality 0..*
Terminology Binding UKCoreServiceRequestReasonCode (Extensible)
A set of codes that define a reason for a service request.
type CodeableConcept

Definition

An explanation or justification for why this service is being requested in coded or textual form. This is often for billing purposes. May relate to the resources referred to in supportingInfo.

Comment

This element represents why the referral is being made and may be used to decide how the service will be performed, or even if it will be performed at all. Use CodeableConcept.text element if the data is free (uncoded) text as shown in the CT Scan example.

supportingInfo

Element Id ServiceRequest.supportingInfo
Cardinality 0..*
type Reference(Resource NHSDigitalDocumentReference)
Aggregation - referenced

Definition

Additional clinical information about the patient or specimen that may influence the services or their interpretations. This information includes diagnosis, clinical findings and other observations. In laboratory ordering these are typically referred to as "ask at order entry questions (AOEs)". This includes observations explicitly requested by the producer (filler) to provide context or supporting information needed to complete the order. For example, reporting the amount of inspired oxygen for blood gas measurements.

"supportingInfo": [
        {
            "type" : "DocumentReference",
            "reference": "DocumentReference/5da894e0-a57e-43e9-a1a1-e283a484003c"
        },
        {
            "type" : "QuestionnaireResponse",
            "reference" : "QuestionnaireResponse/d9d4cf80-3f9d-4435-9f3b-e6efb09ad654"
        }
    ],

Comment

To represent information about how the services are to be delivered use the instructions element.

note

Element Id ServiceRequest.note
Cardinality 0..*
type Annotation

Definition

Any other notes and comments made about the service request. For example, internal billing notes.

Comment

For systems that do not have structured annotations, they can simply communicate a single annotation with no author or time. This element may need to be included in narrative because of the potential for modifying information. Annotations SHOULD NOT be used to communicate "modifying" information that could be computable. (This is a SHOULD because enforcing user behavior is nearly impossible).

"note": [
        {
            "text": "Please advise me on this patient who ...(information about patient)"
        }
    ]

NHSDigital-Appointment

Conformance url FHIR Module Maturity Level
https://fhir.nhs.uk/StructureDefinition/NHSDigital-Appointment Administration trial-use

Conformance Rules



bookingOrganizationI0..1Extension(Reference(UK Core Organization))
deliveryChannelI0..1Extension(code)
requesterI0..1Extension(Reference(NHSDigitalPractitionerRole | NHSDigitalPractitioner | NHSDigitalHealthcareService))
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uri
valueΣ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
statusS Σ ?!1..1codeBinding
cancelationReasonΣ0..1CodeableConcept
systemΣ1..1uri
versionΣ0..1string
codeΣ1..1code
displayΣ0..1string
userSelectedΣ0..1boolean
textΣ0..1string
systemΣ0..1uriFixed Value
versionΣ0..1string
codeΣ0..1code
displayΣ0..1string
userSelectedΣ0..1boolean
textΣ0..1string
systemΣ0..1uriFixed Value
versionΣ0..1string
codeΣ0..1code
displayΣ0..1string
userSelectedΣ0..1boolean
textΣ0..1string
serviceTypeΣ0..*CodeableConceptBinding
specialtyΣ0..*CodeableConceptBinding
appointmentTypeΣ0..1CodeableConceptBinding
reasonCodeS Σ0..*CodeableConceptBinding
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
priority0..1unsignedInt
description0..1string
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
startS Σ1..1instant
endS Σ1..1instant
minutesDuration0..1positiveInt
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uriFixed Value
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
created0..1dateTime
comment0..1string
patientInstruction0..1string
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uri
valueΣ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
typeΣ0..*CodeableConceptBinding
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uri
valueΣ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
requiredΣ0..1codeBinding
statusΣ1..1codeBinding
periodI0..1Period
requestedPeriodI0..*Period

bookingOrganizationI0..1Extension(Reference(UK Core Organization))
deliveryChannelI0..1Extension(code)
requesterI0..1Extension(Reference(NHSDigitalPractitionerRole | NHSDigitalPractitioner | NHSDigitalHealthcareService))
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uri
valueΣ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
statusS Σ ?!1..1codeBinding
cancelationReasonΣ0..1CodeableConcept
systemΣ1..1uri
versionΣ0..1string
codeΣ1..1code
displayΣ0..1string
userSelectedΣ0..1boolean
textΣ0..1string
systemΣ0..1uriFixed Value
versionΣ0..1string
codeΣ0..1code
displayΣ0..1string
userSelectedΣ0..1boolean
textΣ0..1string
systemΣ0..1uriFixed Value
versionΣ0..1string
codeΣ0..1code
displayΣ0..1string
userSelectedΣ0..1boolean
textΣ0..1string
serviceTypeΣ0..*CodeableConceptBinding
specialtyΣ0..*CodeableConceptBinding
appointmentTypeΣ0..1CodeableConceptBinding
reasonCodeS Σ0..*CodeableConceptBinding
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
priority0..1unsignedInt
description0..1string
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
startS Σ1..1instant
endS Σ1..1instant
minutesDuration0..1positiveInt
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uriFixed Value
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
created0..1dateTime
comment0..1string
patientInstruction0..1string
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uri
valueΣ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
typeΣ0..*CodeableConceptBinding
referenceΣ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uri
valueΣ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(UK Core Organization)
displayΣ0..1string
requiredΣ0..1codeBinding
statusΣ1..1codeBinding
periodI0..1Period
requestedPeriodI0..*Period

None defined at present

Constraint Profiles

nameprofilepurpose
NHSDigitalAppointmentPatientCarehttps://fhir.nhs.uk/StructureDefinition/NHSDigital-Appointment-PatientCare

Profile on NHSDigital-Appointment for NHS App/e-RS PatientCare



Definition

A booking of a healthcare event among patient(s), practitioner(s), related person(s) and/or device(s) for a specific date/time. This may result in one or more Encounter(s).

Constraints

  • app-2 (ERROR) Either start and end are specified, or neither
  • app-3 (ERROR) Only proposed or cancelled appointments can be missing start/end dates
  • app-4 (ERROR) Cancellation reason is only used for appointments that have been cancelled, or no-show

identifier

Element Id Appointment.identifier
Cardinality 0..*
type Identifier

Definition

This records identifiers associated with this appointment concern that are defined by business processes and/or used to refer to it when a direct URL reference to the resource itself is not appropriate (e.g. in CDA documents, or in written / printed documentation).

status

Element Id Appointment.status
Cardinality 1..1
Terminology Binding AppointmentStatus (Required)
The free/busy status of an appointment.
type code

Definition

The overall status of the Appointment. Each of the participants has their own participation status which indicates their involvement in the process, however this status indicates the shared status.

e-RS

Will default to booked

Comment

If the Appointment's status is "cancelled" then all participants are expected to have their calendars released for the appointment period, and as such any Slots that were marked as BUSY can be re-set to FREE. This element is labelled as a modifier because the status contains the code entered-in-error that mark the Appointment as not currently valid.

serviceCategory:NHSDataDictionaryTreatmentFunction

Element Id Appointment.serviceCategory:NHSDataDictionaryTreatmentFunction
Cardinality 0..*
Terminology Binding ServiceCategory (Example)
Slice Name NHSDataDictionaryTreatmentFunction
type CodeableConcept

Definition

A broad categorisation of the service that is to be performed during this appointment.

serviceCategory:NHSDataDictionaryTreatmentFunction.coding.system

Element Id Appointment.serviceCategory:NHSDataDictionaryTreatmentFunction.coding.system
Cardinality 0..1
Fixed Value https://fhir.nhs.uk/CodeSystem/NHSDataModelAndDictionary-treatment-function
type uri

Definition

The identification of the code system that defines the meaning of the symbol in the code.

Requirements

Need to be unambiguous about the source of the definition of the symbol.

Comment

The URI may be an OID (urn:oid:...) or a UUID (urn:uuid:...). OIDs and UUIDs SHALL be references to the HL7 OID registry. Otherwise, the URI should come from HL7's list of FHIR defined special URIs or it should reference to some definition that establishes the system clearly and unambiguously.

serviceCategory:eRSClinicType

Element Id Appointment.serviceCategory:eRSClinicType
Cardinality 0..1
Terminology Binding ServiceCategory (Example)
Slice Name eRSClinicType
type CodeableConcept

Definition

A broad categorisation of the service that is to be performed during this appointment.

serviceCategory:eRSClinicType.coding.system

Element Id Appointment.serviceCategory:eRSClinicType.coding.system
Cardinality 0..1
Fixed Value https://fhir.nhs.uk/CodeSystem/NHSDigital-ClinicType
type uri

Definition

The identification of the code system that defines the meaning of the symbol in the code.

Requirements

Need to be unambiguous about the source of the definition of the symbol.

Comment

The URI may be an OID (urn:oid:...) or a UUID (urn:uuid:...). OIDs and UUIDs SHALL be references to the HL7 OID registry. Otherwise, the URI should come from HL7's list of FHIR defined special URIs or it should reference to some definition that establishes the system clearly and unambiguously.

reasonCode

Element Id Appointment.reasonCode
Cardinality 0..*
Terminology Binding EncounterReasonCodes (Preferred)
The Reason for the appointment to take place.
type CodeableConcept

Definition

The coded reason that this appointment is being scheduled. This is more clinical than administrative.

start

Element Id Appointment.start
Cardinality 1..1
type instant

Definition

Date time of the current appointment booking (if there is a current appointment booking to a Directly Bookable Service)

 "start": "2021-06-13T12:30:00+00:00",

end

Element Id Appointment.end
Cardinality 1..1
type instant

Definition

Date/Time that the appointment is to conclude.

"end": "2021-06-13T12:45:00+00:00",

slot

Element Id Appointment.slot
Cardinality 0..*
Slicing OPEN discriminator - VALUE identifier.system
type Reference(UKCoreSlot)

Definition

The slots from the participants' schedules that will be filled by the appointment.

slot:alternativeSlot

Element Id Appointment.slot:alternativeSlot
Cardinality 0..1
Slice Name alternativeSlot
type Reference(UKCoreSlot)

Definition

"slot": [
                   {
                       "identifier": {
                           "system": "https://fhir.nhs.uk/CodeSystem/unique-slot-reference-number",
                           "value": "USRN-12000001"
                       }
                   }
               ],

slot:alternativeSlot.identifier.system

Element Id Appointment.slot:alternativeSlot.identifier.system
Cardinality 0..1
Fixed Value https://fhir.nhs.uk/CodeSystem/unique-slot-reference-number
type uri

Definition

Establishes the namespace for the value - that is, a URL that describes a set values that are unique.

Requirements

There are many sets of identifiers. To perform matching of two identifiers, we need to know what set we're dealing with. The system identifies a particular set of unique identifiers.

Comment

Identifier.system is always case sensitive.

basedOn

Element Id Appointment.basedOn
Cardinality 0..*
type Reference(ServiceRequest)

Definition

The service request this appointment is allocated to assess (e.g. incoming referral or procedure request).

"basedOn": [
                    {
                        "reference": "https://server.fire.ly/ServiceRequest/6c2a1f9b-2517-419d-9099-591ba63f176c"
                    }
                ],

basedOn.identifier

Element Id Appointment.basedOn.identifier
Cardinality 0..1
type Identifier

Definition

An identifier for the target resource. This is used when there is no way to reference the other resource directly, either because the entity it represents is not available through a FHIR server, or because there is no way for the author of the resource to convert a known identifier to an actual location. There is no requirement that a Reference.identifier point to something that is actually exposed as a FHIR instance, but it SHALL point to a business concept that would be expected to be exposed as a FHIR instance, and that instance would need to be of a FHIR resource type allowed by the reference.

Comment

When an identifier is provided in place of a reference, any system processing the reference will only be able to resolve the identifier to a reference if it understands the business context in which the identifier is used. Sometimes this is global (e.g. a national identifier) but often it is not. For this reason, none of the useful mechanisms described for working with references (e.g. chaining, includes) are possible, nor should servers be expected to be able resolve the reference. Servers may accept an identifier based reference untouched, resolve it, and/or reject it - see CapabilityStatement.rest.resource.referencePolicy. When both an identifier and a literal reference are provided, the literal reference is preferred. Applications processing the resource are allowed - but not required - to check that the identifier matches the literal reference Applications converting a logical reference to a literal reference may choose to leave the logical reference present, or remove it. Reference is intended to point to a structure that can potentially be expressed as a FHIR resource, though there is no need for it to exist as an actual FHIR resource instance - except in as much as an application wishes to actual find the target of the reference. The content referred to be the identifier must meet the logical constraints implied by any limitations on what resource types are permitted for the reference. For example, it would not be legitimate to send the identifier for a drug prescription if the type were Reference(Observation|DiagnosticReport). One of the use-cases for Reference.identifier is the situation where no FHIR representation exists (where the type is Reference (Any).

participant

Element Id Appointment.participant
Cardinality 1..*
type BackboneElement

Definition

List of participants involved in the appointment.

This should include a Patient and a HealthcareService

 "participant": [
                    {
                        "actor": {
                            "identifier": {
                                "system": "https://fhir.nhs.uk/Id/ers-service",
                                "value": "11002"
                            }
                        },
                        "status": "accepted"
                    },
                    {
                        "actor": {
                            "identifier": {
                                "system": "https://fhir.nhs.uk/Id/nhs-number",
                                "value": "9912003888"
                            }
                        },
                        "status": "accepted"
                    }
                ]

Constraints

  • app-1 (ERROR) Either the type or actor on the participant SHALL be specified

participant.actor

Element Id Appointment.participant.actor
Cardinality 1..1
type Reference(NHSDigitalHealthcareService NHSDigitalPractitionerRoleMinimal NHSDigitalPatient NHSDigitalLocation NHSDigitalPractitioner)
Aggregation - contained
Aggregation - referenced

Definition

A Person, Location/HealthcareService or Device that is participating in the appointment.

Constraints

  • participant (ERROR) An identifier reference or resource reference must be provided

England-Slot

NHSDigital-Binary

England-Parameters-SubscriptionStatus

Conformance url
https://fhir.nhs.uk/StructureDefinition/England-Parameters-SubscriptionStatus

Conformance Rules



nameΣ1..1string
valueBase64Binarybase64Binary
valueBooleanboolean
valueCanonicalcanonical()
valueCodecode
valueDatedate
valueDateTimedateTime
valueDecimaldecimal
valueIdid
valueInstantinstant
valueIntegerinteger
valueMarkdownmarkdown
valueOidoid
valuePositiveIntpositiveInt
valueStringstring
valueTimetime
valueUnsignedIntunsignedInt
valueUriuri
valueUrlurl
valueUuiduuid
valueAddressAddress
valueAgeAge
valueAnnotationAnnotation
valueAttachmentAttachment
valueCodeableConceptCodeableConcept
valueCodingCoding
valueContactPointContactPoint
valueCountCount
valueDistanceDistance
valueDurationDuration
valueHumanNameHumanName
valueIdentifierIdentifier
valueMoneyMoney
valuePeriodPeriod
valueQuantityQuantity
valueRangeRange
valueRatioRatio
valueSampledDataSampledData
valueSignatureSignature
valueTimingTiming
valueContactDetailContactDetail
valueContributorContributor
valueDataRequirementDataRequirement
valueExpressionExpression
valueParameterDefinitionParameterDefinition
valueRelatedArtifactRelatedArtifact
valueTriggerDefinitionTriggerDefinition
valueUsageContextUsageContext
valueDosageDosage
valueMetaMeta
valueReferenceReference()
resourceΣ I0..1Resource
partΣ0..*see (parameter)
nameΣ1..1stringFixed Value
valueCodecode
resourceΣ I0..1Resource
partΣ0..*see (parameter)
nameΣ1..1stringFixed Value
valueBase64Binarybase64Binary
valueBooleanboolean
valueCanonicalcanonical()
valueCodecode
valueDatedate
valueDateTimedateTime
valueDecimaldecimal
valueIdid
valueInstantinstant
valueIntegerinteger
valueMarkdownmarkdown
valueOidoid
valuePositiveIntpositiveInt
valueStringstring
valueTimetime
valueUnsignedIntunsignedInt
valueUriuri
valueUrlurl
valueUuiduuid
valueAddressAddress
valueAgeAge
valueAnnotationAnnotation
valueAttachmentAttachment
valueCodeableConceptCodeableConcept
valueCodingCoding
valueContactPointContactPoint
valueCountCount
valueDistanceDistance
valueDurationDuration
valueHumanNameHumanName
valueIdentifierIdentifier
valueMoneyMoney
valuePeriodPeriod
valueQuantityQuantity
valueRangeRange
valueRatioRatio
valueSampledDataSampledData
valueSignatureSignature
valueTimingTiming
valueContactDetailContactDetail
valueContributorContributor
valueDataRequirementDataRequirement
valueExpressionExpression
valueParameterDefinitionParameterDefinition
valueRelatedArtifactRelatedArtifact
valueTriggerDefinitionTriggerDefinition
valueUsageContextUsageContext
valueDosageDosage
valueMetaMeta
valueReferenceReference()
resourceΣ I0..1Resource
nameΣ1..1stringFixed Value
valueInstantinstant
resourceΣ I0..1Resource
partΣ0..*see (parameter)
nameΣ1..1stringFixed Value
valueReferenceReference()
resourceΣ I0..1Resource
partΣ0..*see (parameter)
nameΣ1..1stringFixed Value
valueReferenceReference()
resourceΣ I0..1Resource
partΣ0..*see (parameter)
nameΣ1..1stringFixed Value
valueIntegerinteger
resourceΣ I0..1Resource
partΣ0..*see (parameter)
nameΣ1..1stringFixed Value
valueReferenceReference()
resourceΣ I0..1Resource
partΣ0..0see (parameter)
nameΣ1..1stringFixed Value
valueCanonicalcanonical()
resourceΣ I0..1Resource
partΣ0..*see (parameter)
nameΣ1..1stringFixed Value
valueCodeableConceptCodeableConcept
resourceΣ I0..1Resource
partΣ0..0see (parameter)

nameΣ1..1string
valueBase64Binarybase64Binary
valueBooleanboolean
valueCanonicalcanonical()
valueCodecode
valueDatedate
valueDateTimedateTime
valueDecimaldecimal
valueIdid
valueInstantinstant
valueIntegerinteger
valueMarkdownmarkdown
valueOidoid
valuePositiveIntpositiveInt
valueStringstring
valueTimetime
valueUnsignedIntunsignedInt
valueUriuri
valueUrlurl
valueUuiduuid
valueAddressAddress
valueAgeAge
valueAnnotationAnnotation
valueAttachmentAttachment
valueCodeableConceptCodeableConcept
valueCodingCoding
valueContactPointContactPoint
valueCountCount
valueDistanceDistance
valueDurationDuration
valueHumanNameHumanName
valueIdentifierIdentifier
valueMoneyMoney
valuePeriodPeriod
valueQuantityQuantity
valueRangeRange
valueRatioRatio
valueSampledDataSampledData
valueSignatureSignature
valueTimingTiming
valueContactDetailContactDetail
valueContributorContributor
valueDataRequirementDataRequirement
valueExpressionExpression
valueParameterDefinitionParameterDefinition
valueRelatedArtifactRelatedArtifact
valueTriggerDefinitionTriggerDefinition
valueUsageContextUsageContext
valueDosageDosage
valueMetaMeta
valueReferenceReference()
resourceΣ I0..1Resource
partΣ0..*see (parameter)
nameΣ1..1stringFixed Value
valueCodecode
resourceΣ I0..1Resource
partΣ0..*see (parameter)
nameΣ1..1stringFixed Value
valueBase64Binarybase64Binary
valueBooleanboolean
valueCanonicalcanonical()
valueCodecode
valueDatedate
valueDateTimedateTime
valueDecimaldecimal
valueIdid
valueInstantinstant
valueIntegerinteger
valueMarkdownmarkdown
valueOidoid
valuePositiveIntpositiveInt
valueStringstring
valueTimetime
valueUnsignedIntunsignedInt
valueUriuri
valueUrlurl
valueUuiduuid
valueAddressAddress
valueAgeAge
valueAnnotationAnnotation
valueAttachmentAttachment
valueCodeableConceptCodeableConcept
valueCodingCoding
valueContactPointContactPoint
valueCountCount
valueDistanceDistance
valueDurationDuration
valueHumanNameHumanName
valueIdentifierIdentifier
valueMoneyMoney
valuePeriodPeriod
valueQuantityQuantity
valueRangeRange
valueRatioRatio
valueSampledDataSampledData
valueSignatureSignature
valueTimingTiming
valueContactDetailContactDetail
valueContributorContributor
valueDataRequirementDataRequirement
valueExpressionExpression
valueParameterDefinitionParameterDefinition
valueRelatedArtifactRelatedArtifact
valueTriggerDefinitionTriggerDefinition
valueUsageContextUsageContext
valueDosageDosage
valueMetaMeta
valueReferenceReference()
resourceΣ I0..1Resource
nameΣ1..1stringFixed Value
valueInstantinstant
resourceΣ I0..1Resource
partΣ0..*see (parameter)
nameΣ1..1stringFixed Value
valueReferenceReference()
resourceΣ I0..1Resource
partΣ0..*see (parameter)
nameΣ1..1stringFixed Value
valueReferenceReference()
resourceΣ I0..1Resource
partΣ0..*see (parameter)
nameΣ1..1stringFixed Value
valueIntegerinteger
resourceΣ I0..1Resource
partΣ0..*see (parameter)
nameΣ1..1stringFixed Value
valueReferenceReference()
resourceΣ I0..1Resource
partΣ0..0see (parameter)
nameΣ1..1stringFixed Value
valueCanonicalcanonical()
resourceΣ I0..1Resource
partΣ0..*see (parameter)
nameΣ1..1stringFixed Value
valueCodeableConceptCodeableConcept
resourceΣ I0..1Resource
partΣ0..0see (parameter)

None defined at present

Could not find subject. File was not found for

back to top