NHS North West Genomics
0.1.0 - ci-build
NHS North West Genomics - Local Development build (v0.1.0) built by the FHIR (HL7® FHIR® Standard) Build Tools. See the Directory of published versions
| Official URL: https://fhir.nwgenomics.nhs.uk/StructureDefinition/CorrelationIdentifier | Version: 0.1.0 | |||
| Draft as of 2026-01-13 | Computable Name: CorrelationIdentifier | |||
Core Data Contract for FHIR Identifier, v2 CX and EI
Identifiers play a central role in both HL7 v2 and FHIR, enabling systems to uniquely reference and track entities such as patients, samples, orders, and clinical documents. In traditional point-to-point messaging, these identifiers are primarily used to correlate and reconcile messages exchanged between two systems—often those operating within the same organisation.
As the Regional Integration and Clinical Data Repository evolves to support genomic data exchange at a national scale, the demands placed on identifier management increase significantly. Genomic workflows involve multiple laboratories, platforms, and services distributed across the UK, all of which must consistently recognise and reference the same entities throughout complex end-to-end processes.
To meet these needs, a standardised and interoperable identifier model is required—one that ensures traceability, prevents collisions, supports cross-organisation communication, and aligns with national data-sharing patterns.
The following identifier data contract is therefore proposed to underpin the reliable exchange, correlation, and lifecycle management of genomic data across the UK health ecosystem.
Used in HL7 v2 ORC, SPM and OBR, and FHIR ServiceRequest, Specimen and DiagnosticReport.
| Field | Optionality | Example Placer | Example Filler | HL7 FHIR Identifier | HL7 v2 EI | |
|---|---|---|---|---|---|---|
| Entity Identifier | 1..1 | 1012233558 | T25-8ZEA | Identifier.value | EI.1 | |
| Namespace Id | 1..1 | ROA-EPI | 699X0-iGene | EI.2 | This field is ODS code plus an existing Id for a system or a newly allocated one. The system is specified by the assigning authority/NHS Trust | |
| Universal Id | 0..1 | urn:oid:1.2.840.114350.1.13.861.1.7.2.798268 | https://fhir.north-west.england.nhs.uk/iGene/ReportIdentifier | Identifier.system | EI.3 | The example used here is a generic value, NHS Trusts should supply actual value. Systems with a HL7 FHIR RESTful API e.g. EPIC and Meditech may have provided this value, the values in HL7 v2 and FHIR should be the same. |
| Universal Id Type | 0..1 | URI | URI | EI.4 fixed value URI |
||
| Identifier Type Code | 1..1 | PLAC | FILL | Identifier.type | n/a - identifiers use seperate fields in HL7 v2 Messages |
HL7 v2
With EPIC Order Placer OID
1029467053^ROA-EPI^urn:oid:1.2.840.114350.1.13.861.1.7.2.798268^URI
With self assigned Report Identifier for iGene
T25-8ZEA^699X0-iGene^https://fhir.north-west.england.nhs.uk/iGene/ReportIdentifier^URI
HL7 FHIR
"identifier": [
{
"assigner": {
"identifier": {
"system": "https://fhir.nhs.uk/Id/ods-organization-code",
"value": "699X0"
}
},
"system": "https://fhir.north-west.england.nhs.uk/iGene/ReportIdentifier",
"type": {
"coding": [
{
"code": "FILL",
"system": "http://terminology.hl7.org/CodeSystem/v2-0203"
}
]
},
"value": "T25-8ZEA"
},
{
"system": "urn:oid:1.2.840.114350.1.13.861.1.7.2.798268",
"type": {
"coding": [
{
"code": "PLAC",
"system": "http://terminology.hl7.org/CodeSystem/v2-0203"
}
]
},
"value": "1029467053"
}
],
where ROA is the ODS code for Manchester University NHS Foundation Trust and 699XO is the ODS code from NW Region GLH
Used in HL7 v2 PID and FHIR Patient.
| Field | Optionality | Example NHS Number | Example MRN | HL7 FHIR Identifier | HL7 v2 CX | Notes |
|---|---|---|---|---|---|---|
| Id Number | 1..1 | 921 906 8409 | 12067204 | Identifier.value | CX.1 | |
| Assigning Authority | 1..1 | NHS | ROA | Identifier.assigner.value | CX.4 | For MRN the assigning authority shall be the NHS Trust ODS Code. For NHS identifiers valid values are NHS - England and Wales HSNI - Northern Ireland CHI - Scotland |
| Identifier Type Code | 1..1 | NH | MR | Identifier.type | CX.5 | |
| Universal Id | 1..1 | https://fhir.nhs.uk/Id/nhs-number | https://nw-gmsa.github.io/Id/MR | Identifier.system | N/a |
HL7 v2
NHS Number
9219068409^^^NHS^NH
MFT MRN
12067204^^^R0A^MR
HL7 FHIR
"identifier": [
{
"system": "https://fhir.nhs.uk/Id/nhs-number",
"type": {
"coding": [
{
"code": "NH",
"system": "http://terminology.hl7.org/CodeSystem/v2-0203"
}
]
},
"value": "9219068409"
},
{
"assigner": {
"identifier": {
"system": "https://fhir.nhs.uk/Id/ods-organization-code",
"value": "R0A"
}
},
"system": "https://nw-gmsa.github.io/Id/MR",
"type": {
"coding": [
{
"code": "MR",
"system": "http://terminology.hl7.org/CodeSystem/v2-0203"
}
]
},
"value": "12067204"
}
]
where ROA is the ODS code for Manchester University NHS Foundation Trust
Usages:
You can also check for usages in the FHIR IG Statistics
Description of Profiles, Differentials, Snapshots and how the different presentations work.
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() |
|---|---|---|---|---|
![]() |
0..* | Identifier | An identifier intended for computation | |
![]() ![]() |
?!Σ | 0..1 | code | usual | official | temp | secondary | old (If known) Binding: IdentifierUse (required): Identifies the purpose for this identifier, if known . |
![]() ![]() |
SΣ | 0..1 | CodeableConcept | Description of identifier Binding: NW IdentifierType (required) |
![]() ![]() |
SΣ | 1..1 | uri | uri is defined by supplying organisation. Example General: http://www.acme.com/identifiers/patient |
![]() ![]() |
SΣ | 1..1 | string | The value MUST be unique to the organisation Example General: 123456 |
![]() ![]() |
SΣ | 1..1 | Reference(Organization) | Organization that issued id (may be just text) |
![]() ![]() ![]() |
SΣ | 1..1 | Identifier | Logical reference, when literal reference is not known |
![]() ![]() ![]() ![]() |
?!Σ | 0..1 | code | usual | official | temp | secondary | old (If known) Binding: IdentifierUse (required): Identifies the purpose for this identifier, if known . |
![]() ![]() ![]() ![]() |
SΣ | 1..1 | uri | The namespace for the identifier value Required Pattern: https://fhir.nhs.uk/Id/ods-organization-code |
![]() ![]() ![]() ![]() |
SΣ | 1..1 | string | The value that is unique Example General: 123456 Example Manchester University NHS Foundation Trust: R0A |
Documentation for this format | ||||
| Path | Status | Usage | ValueSet | Version | Source |
| Identifier.use | Base | required | IdentifierUse | 📍4.0.1 | FHIR Std. |
| Identifier.type | Base | required | NW IdentifierType | 📦0.1.0 | This IG |
| Identifier.assigner.identifier.use | Base | required | IdentifierUse | 📍4.0.1 | FHIR Std. |
| Id | Grade | Path(s) | Description | Expression |
| ele-1 | error | **ALL** elements | All FHIR elements must have a @value or children |
hasValue() or (children().count() > id.count())
|
This structure is derived from Identifier
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() |
|---|---|---|---|---|
![]() |
0..* | Identifier | An identifier intended for computation | |
![]() ![]() |
S | 0..1 | CodeableConcept | Description of identifier Binding: NW IdentifierType (required) |
![]() ![]() |
S | 1..1 | uri | uri is defined by supplying organisation. |
![]() ![]() |
S | 1..1 | string | The value MUST be unique to the organisation |
![]() ![]() |
S | 1..1 | Reference(Organization) | Organization that issued id (may be just text) |
![]() ![]() ![]() |
S | 1..1 | Identifier | Logical reference, when literal reference is not known |
![]() ![]() ![]() ![]() |
S | 1..1 | uri | The namespace for the identifier value Required Pattern: https://fhir.nhs.uk/Id/ods-organization-code |
![]() ![]() ![]() ![]() |
S | 1..1 | string | The value that is unique Example Manchester University NHS Foundation Trust: R0A |
Documentation for this format | ||||
| Path | Status | Usage | ValueSet | Version | Source |
| Identifier.type | Base | required | NW IdentifierType | 📦0.1.0 | This IG |
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() |
|---|---|---|---|---|
![]() |
0..* | Identifier | An identifier intended for computation | |
![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |
![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |
![]() ![]() |
?!Σ | 0..1 | code | usual | official | temp | secondary | old (If known) Binding: IdentifierUse (required): Identifies the purpose for this identifier, if known . |
![]() ![]() |
SΣ | 0..1 | CodeableConcept | Description of identifier Binding: NW IdentifierType (required) |
![]() ![]() |
SΣ | 1..1 | uri | uri is defined by supplying organisation. Example General: http://www.acme.com/identifiers/patient |
![]() ![]() |
SΣ | 1..1 | string | The value MUST be unique to the organisation Example General: 123456 |
![]() ![]() |
Σ | 0..1 | Period | Time period when id is/was valid for use |
![]() ![]() |
SΣ | 1..1 | Reference(Organization) | Organization that issued id (may be just text) |
![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |
![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |
![]() ![]() ![]() |
ΣC | 0..1 | string | Literal reference, Relative, internal or absolute URL |
![]() ![]() ![]() |
Σ | 0..1 | uri | Type the reference refers to (e.g. "Patient") Binding: ResourceType (extensible): Aa resource (or, for logical models, the URI of the logical model). |
![]() ![]() ![]() |
SΣ | 1..1 | Identifier | Logical reference, when literal reference is not known |
![]() ![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |
![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |
![]() ![]() ![]() ![]() |
?!Σ | 0..1 | code | usual | official | temp | secondary | old (If known) Binding: IdentifierUse (required): Identifies the purpose for this identifier, if known . |
![]() ![]() ![]() ![]() |
Σ | 0..1 | CodeableConcept | Description of identifier Binding: Identifier Type Codes (extensible): A coded type for an identifier that can be used to determine which identifier to use for a specific purpose. |
![]() ![]() ![]() ![]() |
SΣ | 1..1 | uri | The namespace for the identifier value Required Pattern: https://fhir.nhs.uk/Id/ods-organization-code |
![]() ![]() ![]() ![]() |
SΣ | 1..1 | string | The value that is unique Example General: 123456 Example Manchester University NHS Foundation Trust: R0A |
![]() ![]() ![]() ![]() |
Σ | 0..1 | Period | Time period when id is/was valid for use |
![]() ![]() ![]() ![]() |
Σ | 0..1 | Reference(Organization) | Organization that issued id (may be just text) |
![]() ![]() ![]() |
Σ | 0..1 | string | Text alternative for the resource |
Documentation for this format | ||||
| Path | Status | Usage | ValueSet | Version | Source |
| Identifier.use | Base | required | IdentifierUse | 📍4.0.1 | FHIR Std. |
| Identifier.type | Base | required | NW IdentifierType | 📦0.1.0 | This IG |
| Identifier.assigner.type | Base | extensible | ResourceType | 📍4.0.1 | FHIR Std. |
| Identifier.assigner.identifier.use | Base | required | IdentifierUse | 📍4.0.1 | FHIR Std. |
| Identifier.assigner.identifier.type | Base | extensible | IdentifierType | 📍4.0.1 | FHIR Std. |
| Id | Grade | Path(s) | Description | Expression |
| ele-1 | error | **ALL** elements | All FHIR elements must have a @value or children |
hasValue() or (children().count() > id.count())
|
| ext-1 | error | **ALL** extensions | Must have either extensions or value[x], not both |
extension.exists() != value.exists()
|
This structure is derived from Identifier
Key Elements View
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() |
|---|---|---|---|---|
![]() |
0..* | Identifier | An identifier intended for computation | |
![]() ![]() |
?!Σ | 0..1 | code | usual | official | temp | secondary | old (If known) Binding: IdentifierUse (required): Identifies the purpose for this identifier, if known . |
![]() ![]() |
SΣ | 0..1 | CodeableConcept | Description of identifier Binding: NW IdentifierType (required) |
![]() ![]() |
SΣ | 1..1 | uri | uri is defined by supplying organisation. Example General: http://www.acme.com/identifiers/patient |
![]() ![]() |
SΣ | 1..1 | string | The value MUST be unique to the organisation Example General: 123456 |
![]() ![]() |
SΣ | 1..1 | Reference(Organization) | Organization that issued id (may be just text) |
![]() ![]() ![]() |
SΣ | 1..1 | Identifier | Logical reference, when literal reference is not known |
![]() ![]() ![]() ![]() |
?!Σ | 0..1 | code | usual | official | temp | secondary | old (If known) Binding: IdentifierUse (required): Identifies the purpose for this identifier, if known . |
![]() ![]() ![]() ![]() |
SΣ | 1..1 | uri | The namespace for the identifier value Required Pattern: https://fhir.nhs.uk/Id/ods-organization-code |
![]() ![]() ![]() ![]() |
SΣ | 1..1 | string | The value that is unique Example General: 123456 Example Manchester University NHS Foundation Trust: R0A |
Documentation for this format | ||||
| Path | Status | Usage | ValueSet | Version | Source |
| Identifier.use | Base | required | IdentifierUse | 📍4.0.1 | FHIR Std. |
| Identifier.type | Base | required | NW IdentifierType | 📦0.1.0 | This IG |
| Identifier.assigner.identifier.use | Base | required | IdentifierUse | 📍4.0.1 | FHIR Std. |
| Id | Grade | Path(s) | Description | Expression |
| ele-1 | error | **ALL** elements | All FHIR elements must have a @value or children |
hasValue() or (children().count() > id.count())
|
Differential View
This structure is derived from Identifier
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() |
|---|---|---|---|---|
![]() |
0..* | Identifier | An identifier intended for computation | |
![]() ![]() |
S | 0..1 | CodeableConcept | Description of identifier Binding: NW IdentifierType (required) |
![]() ![]() |
S | 1..1 | uri | uri is defined by supplying organisation. |
![]() ![]() |
S | 1..1 | string | The value MUST be unique to the organisation |
![]() ![]() |
S | 1..1 | Reference(Organization) | Organization that issued id (may be just text) |
![]() ![]() ![]() |
S | 1..1 | Identifier | Logical reference, when literal reference is not known |
![]() ![]() ![]() ![]() |
S | 1..1 | uri | The namespace for the identifier value Required Pattern: https://fhir.nhs.uk/Id/ods-organization-code |
![]() ![]() ![]() ![]() |
S | 1..1 | string | The value that is unique Example Manchester University NHS Foundation Trust: R0A |
Documentation for this format | ||||
| Path | Status | Usage | ValueSet | Version | Source |
| Identifier.type | Base | required | NW IdentifierType | 📦0.1.0 | This IG |
Snapshot View
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() |
|---|---|---|---|---|
![]() |
0..* | Identifier | An identifier intended for computation | |
![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |
![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |
![]() ![]() |
?!Σ | 0..1 | code | usual | official | temp | secondary | old (If known) Binding: IdentifierUse (required): Identifies the purpose for this identifier, if known . |
![]() ![]() |
SΣ | 0..1 | CodeableConcept | Description of identifier Binding: NW IdentifierType (required) |
![]() ![]() |
SΣ | 1..1 | uri | uri is defined by supplying organisation. Example General: http://www.acme.com/identifiers/patient |
![]() ![]() |
SΣ | 1..1 | string | The value MUST be unique to the organisation Example General: 123456 |
![]() ![]() |
Σ | 0..1 | Period | Time period when id is/was valid for use |
![]() ![]() |
SΣ | 1..1 | Reference(Organization) | Organization that issued id (may be just text) |
![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |
![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |
![]() ![]() ![]() |
ΣC | 0..1 | string | Literal reference, Relative, internal or absolute URL |
![]() ![]() ![]() |
Σ | 0..1 | uri | Type the reference refers to (e.g. "Patient") Binding: ResourceType (extensible): Aa resource (or, for logical models, the URI of the logical model). |
![]() ![]() ![]() |
SΣ | 1..1 | Identifier | Logical reference, when literal reference is not known |
![]() ![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |
![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |
![]() ![]() ![]() ![]() |
?!Σ | 0..1 | code | usual | official | temp | secondary | old (If known) Binding: IdentifierUse (required): Identifies the purpose for this identifier, if known . |
![]() ![]() ![]() ![]() |
Σ | 0..1 | CodeableConcept | Description of identifier Binding: Identifier Type Codes (extensible): A coded type for an identifier that can be used to determine which identifier to use for a specific purpose. |
![]() ![]() ![]() ![]() |
SΣ | 1..1 | uri | The namespace for the identifier value Required Pattern: https://fhir.nhs.uk/Id/ods-organization-code |
![]() ![]() ![]() ![]() |
SΣ | 1..1 | string | The value that is unique Example General: 123456 Example Manchester University NHS Foundation Trust: R0A |
![]() ![]() ![]() ![]() |
Σ | 0..1 | Period | Time period when id is/was valid for use |
![]() ![]() ![]() ![]() |
Σ | 0..1 | Reference(Organization) | Organization that issued id (may be just text) |
![]() ![]() ![]() |
Σ | 0..1 | string | Text alternative for the resource |
Documentation for this format | ||||
| Path | Status | Usage | ValueSet | Version | Source |
| Identifier.use | Base | required | IdentifierUse | 📍4.0.1 | FHIR Std. |
| Identifier.type | Base | required | NW IdentifierType | 📦0.1.0 | This IG |
| Identifier.assigner.type | Base | extensible | ResourceType | 📍4.0.1 | FHIR Std. |
| Identifier.assigner.identifier.use | Base | required | IdentifierUse | 📍4.0.1 | FHIR Std. |
| Identifier.assigner.identifier.type | Base | extensible | IdentifierType | 📍4.0.1 | FHIR Std. |
| Id | Grade | Path(s) | Description | Expression |
| ele-1 | error | **ALL** elements | All FHIR elements must have a @value or children |
hasValue() or (children().count() > id.count())
|
| ext-1 | error | **ALL** extensions | Must have either extensions or value[x], not both |
extension.exists() != value.exists()
|
This structure is derived from Identifier
Other representations of profile: CSV, Excel, Schematron