UK Core FHIR Profiles
UK Core FHIR Profiles
UK Core is the national FHIR R4 profile set for England, published jointly by NHS England and HL7 UK. It is the UK equivalent of US Core — the shared conformance baseline that systems must meet to connect to NHS England FHIR APIs and exchange data with other NHS organisations.
UK Core constrains base FHIR R4 with UK-specific extensions, value set bindings, and cardinality rules. It does not mandate the depth of constraint that individual NHS APIs add on top — those add their own profiles derived from UK Core. But UK Core is the floor: an NHS API will not accept a resource that violates UK Core even if it passes base FHIR validation.
For the NHS technical infrastructure layer (APIs, authentication, supplier onboarding) see NHS England Digital Standards. For how profiles work mechanically, see FHIR Profiling.
Scope
UK Core profiles exist for the most commonly used FHIR resource types. As of the current release, this includes: Patient, Practitioner, PractitionerRole, Organization, Location, Encounter, Appointment, Slot, Schedule, AllergyIntolerance, Condition, Observation, DiagnosticReport, Procedure, MedicationRequest, MedicationStatement, MedicationDispense, Medication, Immunization, RelatedPerson, ServiceRequest, Composition, DocumentReference, Questionnaire, QuestionnaireResponse, and List.
Resources not yet profiled by UK Core — including some less common resource types — fall back to base FHIR R4.
Key UK-specific extensions
UK Core defines a set of extensions that carry information required in UK health contexts but absent from base FHIR.
NHS number verification status
The most important. NHS number is mandatory on Patient resources exchanged in NHS systems, and the verification status must be declared:
{
"resourceType": "Patient",
"id": "example",
"identifier": [
{
"extension": [
{
"url": "https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-NHSNumberVerificationStatus",
"valueCodeableConcept": {
"coding": [
{
"system": "https://fhir.hl7.org.uk/CodeSystem/UKCore-NHSNumberVerificationStatusEngland",
"code": "01",
"display": "Number present and verified"
}
]
}
}
],
"system": "https://fhir.nhs.uk/Id/nhs-number",
"value": "9000000009"
}
]
}
Valid verification status codes: 01 (present and verified), 02 (present but not traced), 03 (trace required), 04 (trace attempted — not traced), 05 (trace needs to be resolved), 06 (trace in progress), 07 (number not present), 08 (number present but invalid).
Sending a Patient resource with an NHS number but without the verification status extension is a validation failure on most NHS APIs.
Ethnic category
UK Core defines Extension-UKCore-EthnicCategory using the NHS Data Dictionary ethnic category code system. This replaces the US-centric race/ethnicity extensions from US Core. The code system is specific to the UK census classification.
Other commonly used extensions
Extension-UKCore-BirthSex— recorded biological sex at birth, distinct from administrative genderExtension-UKCore-DeathNotificationStatus— indicates whether death has been formally notified (important for PDS integration)Extension-UKCore-ContactRank— priority ranking for patient contactsExtension-UKCore-AddressKey— structured address key for UK address matching (PAF, UPRN)Extension-UKCore-MedicationRepeatInformation— repeat prescription authorisation details, used on MedicationRequest
Profile highlights
UKCore-Patient
The most impacted profile. Key constraints beyond base FHIR:
- NHS number identifier slice: system must be
https://fhir.nhs.uk/Id/nhs-number; the NHSNumberVerificationStatus extension must be present namemust include at least one HumanName with family name present- Administrative gender follows base FHIR codes; birth sex uses the UK Core extension
- Address should use UK-standard structured address where possible
UKCore-Medication
The medication profile is where UK Core departs most significantly from US practice. dm+d (Dictionary of Medicines and Devices) is the required coding system for medications, replacing RxNorm.
dm+d has four relevant concept types for prescribing:
| dm+d type | What it represents | Use case |
|---|---|---|
| VTM (Virtual Therapeutic Moiety) | The therapeutic substance (e.g., amoxicillin) | Allergy recording |
| VMP (Virtual Medicinal Product) | Generic product with dose form and strength | Most prescribing |
| AMP (Actual Medicinal Product) | Branded product | Brand-specific prescribing |
| AMPP (Actual Medicinal Product Pack) | Specific pack size | Dispensing |
For a MedicationRequest, the preferred coding is VMP (or AMP when brand matters). dm+d codes are SNOMED CT identifiers from the SNOMED UK Drug Extension — the system URI is https://dmd.nhs.uk.
{
"resourceType": "Medication",
"id": "amoxicillin-vmp",
"code": {
"coding": [
{
"system": "https://dmd.nhs.uk",
"code": "39732311000001104",
"display": "Amoxicillin 500mg capsules"
}
]
}
}
UKCore-Observation
Clinical observations must use SNOMED CT UK Clinical Extension codes where a SNOMED code exists. LOINC is used for laboratory results where SNOMED is insufficient or absent — primarily quantitative lab tests. The observation category uses SNOMED-based UK Core value sets.
UKCore-AllergyIntolerance
Allergy substance coding must use SNOMED CT UK Edition, VTM codes for drug allergies, or UK Core value sets for other substances. The verification status and clinical status cardinality are more restrictive than base FHIR.
Care Connect — the predecessor
Care Connect was the previous NHS FHIR profile set, based on FHIR STU3. Many NHS systems deployed between 2017 and 2022 implement Care Connect rather than UK Core. Care Connect is no longer being maintained and NHS England has deprecated it, but live systems continue to exchange Care Connect STU3 resources.
The practical consequence: if you are integrating with an older NHS system (many GP clinical systems, legacy EPR integrations), you may receive Care Connect STU3 resources rather than UK Core R4. Your integration layer needs to handle both, or you need a clear contractual statement about which version the counterparty supports.
Key differences from UK Core:
- FHIR version: STU3 vs R4 (substantial structural differences)
- Extension URLs differ (Care Connect used
https://fhir.hl7.org.uk/STU3/...paths) - Profile canonical URLs differ
- Care Connect did not have the NHS number verification status extension — it used a separate extension
Do not plan new development against Care Connect. If an integration partner still uses it, agree a migration timeline.
Conformance and validation
Package and tooling
The UK Core FHIR package is published on Simplifier.net (fhir.r4.ukcore.stu3.currentbuild for the development build; versioned packages for stable releases). To validate against UK Core:
- HAPI FHIR: load the UK Core NPM package alongside the base R4 package
- Firely SDK / Firely Terminal: supports UK Core package loading natively
- HL7 FHIR Validator: use
--ig hl7.fhir.r4.ukcore.stu3.currentbuildor the specific release version
Versioning
UK Core follows a STU (Standard for Trial Use) versioning model through HL7 UK’s ballot process. The current active release sequence is STU3. Releases are versioned independently of FHIR R4 releases.
NHS England publishes API-specific implementation guides that state which version of UK Core they require. An API may lag behind the current UK Core release — always check the specific API’s conformance documentation.
Common validation failures
- Missing NHS number verification status extension
- Incorrect dm+d system URI (using SNOMED system URI instead of
https://dmd.nhs.uk) - Care Connect STU3 extensions on R4 resources (extension URLs from the wrong version)
- Ethnic category coded with US-style OMB codes rather than NHS Data Dictionary codes
- Using LOINC where SNOMED UK is required (or vice versa)
Relationship to NHS England FHIR APIs
Individual NHS England APIs publish their own implementation guides on top of UK Core. For example:
- GP Connect Access Record (Structured) has its own profile set that derives from UK Core, adding further constraints on medication and allergy representation
- EPS FHIR API adds prescribing-specific constraints on MedicationRequest
- PDS FHIR API constrains Patient with PDS-specific identifier requirements
UK Core compliance is necessary but not sufficient for any specific NHS API. You must validate against both UK Core and the API-specific IG.
See also
- NHS England Digital Standards — DSPT, PDS, supplier onboarding
- UK GDPR and Health Data — legal framework
- FHIR Profiling — profile mechanics, validation, conformance
- FHIR Terminology — CodeSystem, ValueSet, binding strength