NHS North West Genomics
2.2.0 - ci-build United Kingdom flag

NHS North West Genomics - Local Development build (v2.2.0) built by the FHIR (HL7® FHIR® Standard) Build Tools. See the Directory of published versions

Use Case: iGene Orders and Reports (Alder Hey, MFT, Liverpool)

iGene Orders and Reports: how Alder Hey, Manchester Foundation Trust (MFT) and Liverpool Women's send genomic test orders directly to NW Genomics, and receive reports back, via the Regional Integration Engine (RIE).

References

  1. Regional Integration Engine (RIE) - the message-processing and routing infrastructure this use case relies on
  2. Genomic Test Order
  3. Ask At Order Entry Questions
  4. LTW - Laboratory Order (LAB-1) / Laboratory Report (LAB-3)
  5. Diagnostic Model Overview

Clinical Pathway Overview

What is being tested

This page isn't about one specific clinical test - it's about how three NHS Trusts (Alder Hey, MFT and Liverpool Women's), plus Clatterbridge for immunology, place genomic and immunology test orders directly with NW Genomics and receive reports back, rather than via a national order comms system. The underlying tests are whatever each Trust's clinicians order from the NW Genomics test directory.

The end-to-end clinical journey

  1. Order placed at the Trust - a clinician at Alder Hey, MFT or Liverpool Women's orders a genomic test (or, for Clatterbridge, a genomic or immunology test) using the Trust's EPR.
  2. Order reaches NW Genomics - the order is exported from the Trust's EPR and reaches NW Genomics via the Trust's own Trust Integration Engine (TIE) and the RIE, arriving at the destination LIMS (currently iGene).
  3. Testing performed - NW Genomics carries out the requested test.
  4. Report compiled and returned - a report is produced and routed back to the ordering Trust via the RIE, so it reaches the same EPR the order came from.
  5. Clinical decision - the ordering clinician acts on the result.
flowchart LR
    A[Clinician at Trust<br/>orders test] --> B[Order reaches<br/>NW Genomics via RIE]
    B --> C[Testing<br/>performed]
    C --> D[Report<br/>compiled]
    D --> E[Report returned<br/>to Trust via RIE]
    E --> F[Clinical decision]

Why this matters for developers

  • This use case describes the NHS Trust side of the relationship: which Trusts integrate directly, what they send, and how their TIE converts to the NW Standard before the order ever reaches the RIE.
  • For what happens once the order or report is with the RIE (validation, enrichment, LIMS routing, shared care record wire-tap), see Regional Integration Engine (RIE) - Current Process - this use case does not repeat that detail.
  • iGene is the Order Filler for these Trusts today, but not necessarily the system that performs every test: iGene may sub-contract work out to other labs (see Regional Integration Engine (RIE) - Sub-Contracted and Reflex Orders), and the RIE may in future route some orders directly to StarLIMS instead of iGene - StarLIMS was the main LIMS for the Liverpool GLH, and iGene the main LIMS for the Manchester GLH, before the two merged into a single North West Genomics service. See StarLIMS / iGene Integration for that routing.

Actors

IHE Actor Role
Order Placer Manchester Foundation Trust (MFT) - NHS Trust, direct HL7 (EPIC and HODS)
Order Placer Alder Hey - NHS Trust, direct HL7 (EPR: Meditech)
Order Placer Liverpool Women's - NHS Trust, direct HL7 (EPR: Meditech)
Order Placer Clatterbridge - NHS Trust, direct HL7 (EPR: Meditech) (Immunology test requests + Genomic and Immunology reports)
Intermediary Regional Integration Engine (RIE) - see Regional Integration Engine (RIE) for its own use case detail
Order Filler LIMS iGene - internal LIMS, master LIMS

Transactions

Transaction Description
OML_O21 / FHIR O21 Laboratory order placement, Trust to RIE
ORU_R01 Test report/result delivery, RIE to Trust

Current Process

Alder Hey, MFT and Liverpool Women's each send genomic orders directly to NW Genomics and receive reports back, rather than via a national order comms system - Clatterbridge does the same for immunology test requests, and additionally receives combined genomic and immunology reports.

Order Process

Each Trust exports its order from its EPR to its own Trust Integration Engine (TIE) as a local HL7 v2 ORM_O01 - see Regional Integration Engine (RIE) - Order Process for what happens from here onwards. How each Trust converts that local ORM_O01 into the NW Standard before sending it to the RIE differs. The RIE then forwards the order to the destination LIMS (iGene) as a V2 order:

  • Alder Hey and Liverpool Women's - the EPR is Meditech; the TIE sends the order to a Docker service (built using Apache Camel and HAPI FHIR) which converts the local ORM_O01 into a FHIR Message O21 (NW Standard).
  • Manchester Foundation Trust (MFT) - the conversion from local ORM_O01 to the NW HL7 Standard happens within the MFT TIE itself.
flowchart LR
    subgraph AH["Alder Hey / Liverpool Women's"]
        EPR1["EPR (Meditech)"] --> TIE1[TIE] --> Conv["Docker service<br/>(Apache Camel + HAPI FHIR)"]
    end
    subgraph MFT["Manchester Foundation Trust (MFT)"]
        EPR2["EPR (EPIC, HODS)"] --> TIE2["TIE<br/>(converts internally)"]
    end
    Conv -- "FHIR Message O21<br/>(NW Standard)" --> RIE
    TIE2 -- "NW HL7 Standard<br/>ORM_O01" --> RIE

    subgraph LIMS["Internal LIMS Systems"]
        L1[LIMS iGene<br/>HL7 flavour A]
    end

    subgraph RIE["NW Genomics Regional Integration Engine"]
        direction TB
        T[Message Distribution and Transform to<br/>individual LIMS HL7]
    end
    RIE -- "Orders V2" --> L1

Report Process and Technical Diagram

Reports flow back from the RIE to each Trust as ORU_R01, NW Standard - see Regional Integration Engine (RIE) - Report Process for the RIE-side detail (LIMS conversion, PDS/ODT validation and enrichment, ODS-code routing). The diagram below shows the four Trusts covered by this use case alongside the RIE and its internal LIMS - for each Trust the report flows from the RIE to the Trust's TIE and on to the Trust's EPR.

flowchart LR
    subgraph LIMS["Internal LIMS Systems"]
        L1[LIMS iGene<br/>HL7 flavour A]
    end

    subgraph RIE["NW Genomics Regional Integration Engine"]
        direction TB
        T[Message Distribution and Transform to<br/>standardised HL7]
    end

    subgraph TR1G["Manchester Foundation Trust (MFT)"]
        TIE1[TIE] --> EPR1["EPR (EPIC and HODS)"]
    end
    subgraph TR2G["Alder Hey"]
        TIE2[TIE] --> EPR2["EPR (Meditech)"]
    end
    subgraph TR3G["Liverpool Women's"]
        TIE3[TIE] --> EPR3["EPR (Meditech)"]
    end
    subgraph TR4G["Clatterbridge<br/>Immunology test requests +<br/>Genomic and Immunology reports"]
        TIE4[TIE] --> EPR4["EPR (Meditech)"]
    end

    L1 -- Reports V2 --> RIE
    RIE -- "NW Diagnostic Core Standard reports (ORU_R01)<br/>Genomics and Haemato-Oncology" --> TIE1
    RIE -- "NW Diagnostic Core Standard reports (ORU_R01) Genomics" --> TIE2
    RIE -- "NW Diagnostic Core Standard reports (ORU_R01) Genomics" --> TIE3
    RIE -- "NW Diagnostic Core Standard reports (ORU_R01)<br/>Genomics and Immunology" --> TIE4

Future Process

No Trust-specific future-state changes are planned beyond those already described for the RIE as a whole - see Regional Integration Engine (RIE) - Future Process, which covers potential interfacing with National Genomic Order Comms systems.

Data Models

This use case uses the same Diagnostic Core and Genomic Model (Placer Order LAB-1 / Reports LAB-3) data models as the RIE generally - see Regional Integration Engine (RIE) - Data Models for the full detail, including the Account Number, Placer Order Number, NHS Number and Requested Procedure Code identifiers these Trusts' orders and reports carry.

These two Questionnaires are the actual LAB-1 data model for this use case, in both HL7 v2 (ORM_O01/NW Standard) and FHIR (Message O21) form - Genomic Test Order for the common core order fields, NW Genomic General Test Order for the default Ask At Order Entry questions (Consent, infection risk, pregnancy/neonatal, etc.) these four Trusts use. This is what Alder Hey, MFT, Liverpool Women's and Clatterbridge's own EPR/TIE actually sends, described in Order Process above.

The Laboratory Order O21 Mapping table below is a different thing, despite the name and heavy field overlap: it's the shape of iGene Laboratory Order Export, which documents LAB-2 - iGene's own daily CSV re-export of an order after it has been received (via LAB-1) or manually entered, not the LAB-1 message itself. It's reproduced here (for IG purposes, so this use case has its own worked mapping, rather than only a link that may drift from NEYManagementInformation.html over time) because most of its fields still apply once an order from these Trusts reaches iGene. There's an open TODO to look at whether the LAB-1 model (GenomicTestOrder/GenomicGeneralAskAtOrderEntry) and this LAB-2 model (iGeneLaboratoryOrderExport/iGeneWorkOrderExport) should eventually be merged into one - not attempted here, since the two currently serve different stages of the same order's journey.

Laboratory Order O21 Mapping

Field Description Type FHIR Mapping
PatientAccessionIdentifier iGene's internal patient accession number - see Patient Identifier string Patient.identifier (PatientIdentifier)
NHSNumber Patient's NHS Number - see NHS Identifier string Patient.identifier (NHS Number)
HospitalNumber Patient's hospital/medical record number - see Medical Record Number string Patient.identifier (MedicalRecordNumber)
PatientFamilyName Patient's surname string Patient.name.family
PatientGivenName Patient's first name string Patient.name.given
DateOfBirth Patient's date of birth date Patient.birthDate
AdministrativeSex Sex registered at birth string Patient.gender
PostCode Patient's postcode string Patient.address.postalCode
HospitalSpellIdentifier Identifier for the hospital spell/episode the order was placed under - see Hospital Provider Spell Identifier string ServiceRequest.encounter.identifier (HospitalProviderSpellIdentifier)
OrderingProviderIdentifier Ordering clinician's professional identifier - see Practitioner Identifier string PractitionerRole.practitioner.identifier.value
OrderingProviderName Ordering clinician's name string PractitionerRole.practitioner.display
RequestingOrganisationCode Requesting Trust's ODS code - see Organisation Code string PractitionerRole.organization.identifier.value
RequestingOrganisationName Requesting Trust's name string PractitionerRole.organization.display
PlacerOrderNumber Order identifier assigned by the ordering Trust - see Order Identifier string ServiceRequest.identifier (OrderIdentifier, type=PLAC)
FMIIdentifier Blank on every current example row - purpose not yet confirmed string ServiceRequest.identifier (TBD)
FillerOrderNumber Order identifier assigned by iGene (the lab) - see Order Identifier string ServiceRequest.identifier (OrderIdentifier, type=FILL)
OrderStatus Order's current status in iGene string ServiceRequest.status
NGTDTestCode NHS England Genomic Test Directory test code string ServiceRequest.code
NGTDTestName NHS England Genomic Test Directory test/package name string ServiceRequest.code.coding.display
TestCode Local iGene short test code (e.g. ctDNA_M4) string ServiceRequest.code.coding (second coding, local system TBD)
TestAccessionIdentifier iGene's test-level accession number string ServiceRequest.identifier (system TBD)
TestOrderDate Date/time the test was ordered dateTime ServiceRequest.authoredOn
SpecimenTakenDateTime Date/time the specimen was taken from the patient dateTime Specimen.collection.collectedDateTime
SpecimenReceivedDateTime Date/time the specimen was received in the lab dateTime Specimen.receivedTime
SpecimenAccessionIdentifier Specimen's lab accession number - see Specimen Accession Number string Specimen.accessionIdentifier
SpecimenTypeCode Coded specimen type (e.g. SAMPLE: BL) - normally SNOMED coded using the Specimen Type value set string Specimen.type.coding.code
SpecimenTypeDescription Specimen type, free text (e.g. Blood) string Specimen.type.coding.display

Laboratory Report R01 Mapping

Same underlying model as Laboratory Order O21 Mapping above, with one addition: unlike NE&Y's management-information copy (which strips the clinical PDF), the Laboratory Report these Trusts receive carries the full Narrative Report.

Field Description Type FHIR Mapping
NHSNumber Patient's NHS Number - see NHS Identifier string Patient.identifier (NHS Number) - also echoed on DiagnosticReport.subject.identifier/ServiceRequest.subject.identifier
HospitalNumber Patient's hospital/medical record number - see Medical Record Number string Patient.identifier (MedicalRecordNumber)
PatientFamilyName Patient's surname string Patient.name.family
PatientGivenName Patient's first name string Patient.name.given
DateOfBirth Patient's date of birth date Patient.birthDate
AdministrativeSex Sex registered at birth string Patient.gender
PostCode Patient's postcode string Patient.address.postalCode
HospitalSpellIdentifier Identifier for the hospital spell/episode the order was placed under - see Hospital Provider Spell Identifier string ServiceRequest.encounter.identifier (HospitalProviderSpellIdentifier)
OrderingProviderIdentifier Ordering clinician's professional identifier - see Practitioner Identifier string PractitionerRole.practitioner.identifier.value
OrderingProviderName Ordering clinician's name string PractitionerRole.practitioner.display
RequestingOrganisationCode Requesting Trust's ODS code - see Organisation Code string PractitionerRole.organization.identifier.value
RequestingOrganisationName Requesting Trust's name string PractitionerRole.organization.display
PlacerOrderNumber Order identifier assigned by the ordering Trust - see Order Identifier string ServiceRequest.identifier (OrderIdentifier, type=PLAC)
FillerOrderNumber Order identifier assigned by iGene (the lab) - see Order Identifier string ServiceRequest.identifier (OrderIdentifier, type=FILL), echoed on DiagnosticReport.basedOn
OrderStatus Order's current status in iGene string ServiceRequest.status
ReportStatusDateTime Date/time the report status was last updated dateTime DiagnosticReport.issued
ReportIdentifier Report's identifier, once issued - see Report Identifier string DiagnosticReport.identifier (ReportIdentifier)
NGTDTestCode NHS England Genomic Test Directory test code string DiagnosticReport.code.coding
NGTDTestName NHS England Genomic Test Directory test/package name string DiagnosticReport.code.coding.display
TestCode Local iGene short test code (e.g. ctDNA_M4) string DiagnosticReport.code.coding (second coding, local system TBD)
TestAccessionIdentifier iGene's test-level accession number string DiagnosticReport.identifier / ServiceRequest.identifier (system TBD)
TestOrderDate Date/time the test was ordered dateTime ServiceRequest.authoredOn
ObservationResultStatus Result status (F = finalised) string DiagnosticReport.status
ObservationDateTime Date/time the result was observed/produced dateTime DiagnosticReport.effectiveDateTime
ObservationIdentifierCode Code identifying the result outcome - also known as the Genomics Test Outcome, see Genomic Test Outcome Codes string DiagnosticReport.conclusionCode.coding.code
ObservationIdentifierDescription Display name for the result/analyte code above string DiagnosticReport.conclusionCode.coding.display
Narrative Report The clinical PDF narrative report - not stripped for these Trusts, unlike NE&Y's management-information copy Attachment DiagnosticReport.presentedForm

See ctDNA Management Information - Laboratory Report R01 Mapping for the open questions the worked ctDNA example surfaces against this same model (identifier ambiguity between FillerOrderNumber/TestAccessionIdentifier/ ReportIdentifier, and Specimen not currently being included in the R01 Bundle) - not repeated here since they aren't specific to this use case.

Outstanding Issues

HODS-originated orders from MFT use PV1-3/PV1-4 non-standardly. MFT sends orders from both EPIC and HODS through the same TIE (see Actors above) - but HODS orders carry a site code in PV1-3 and a HODS Order Placer Number in PV1-4, rather than either field's usual meaning. This IG's own PV1 definition models PV1-3 as Assigned Patient Location (the ward/clinic/bed the patient is assigned to, which can include a facility component) - a site code isn't necessarily inconsistent with that, but isn't confirmed either. PV1-4 isn't modelled by this IG at all, and standard HL7 v2.5.1 defines it as Admission Type, not an order identifier - HODS appears to be repurposing it to carry an order-level identifier on what is otherwise a visit/admission segment. Not yet resolved:

  • Whether the RIE/conversion pipeline that turns MFT's local ORM_O01 into the NW Standard (see Order Process above) currently reads PV1-4 for HODS orders, or only looks at the usual ORC/OBR placer-order fields.
  • Whether the HODS Order Placer Number in PV1-4 should map onto ServiceRequest.identifier (OrderIdentifier, type=PLAC) the same way PlacerOrderNumber does elsewhere in this use case's Laboratory Order O21 Mapping above, or whether it represents a distinct identifier from a standard Placer Order Number.

Examples

FHIR examples for the Laboratory Order (LAB-1) and Laboratory Report (LAB-3) interactions described above:

Security Considerations

Includes:

Developer Guides

See Developer Guides for the full notebook series.