NHS North West Genomics
0.1.0 - ci-build
NHS North West Genomics, published by NHS North West Genomics. This guide is not an authorized publication; it is the continuous build for version 0.1.0 built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/nw-gmsa/nw-gmsa.github.com/ and changes regularly. See the Directory of published versions
Most common method
graph LR
OrderPlacer[<b>Order Placer</b><br/>EPR] --> |1. General Order<br/>HL7 v2 ORM_O01| OrderFiller
OrderFiller[<b>Order Filler</b><br/>LIMS] --> |2. Laboratory Report<br/>HL7 v2 ORU_R01| OrderPlacer
graph LR
OrderPlacer[<b>Order Placer</b><br/>EPR] --> |1. General Order<br/>HL7 v2 OML_O21<br/>IHE LTW LAB-1| OrderFiller
OrderFiller[<b>Order Filler</b><br/>LIMS] --> |2. Laboratory Report<br/>HL7 v2 ORU_R01<br/>IHE LTW LAB-3| OrderPlacer
FHIR version of the HL7 v2 Message
graph LR
OrderPlacer[<b>Order Placer</b><br/>EPR] --> |1. General Order<br/>HL7 FHIR Message O21| OrderFiller
OrderFiller[<b>Order Filler</b><br/>LIMS] --> |2. Laboratory Report<br/>HL7 FHIR Message R01| OrderPlacer
Similar to the previous options but without the definition of payloads.
graph LR
OrderPlacer[<b>Order Placer</b><br/>EPR] --> |HL7 FHIR RESTful transaction| OrderFiller
OrderPlacer[<b>Order Placer</b><br/>EPR] --> |HL7 FHIR RESTful GET/POST/PUT| OrderFiller
OrderFiller[<b>Order Filler</b><br/>LIMS] --> |HL7 FHIR RESTful transaction| OrderPlacer
OrderFiller[<b>Order Filler</b><br/>LIMS] --> |HL7 FHIR RESTful GET/POST/PUT| OrderPlacer
chatty interface due to lookups (GET) needed for POST or PUT requests.graph LR
DataConsumer[<b>Data Consumer</b>] --> |HL7 FHIR RESTful GET<br/>read only| GenomicDataRepository[<b>Genomic Data Repository</b>]
Is a modernisation of all the previous methods, full FHIR workflow requires both the Order Placer and Order Filler to have a FHIR Repository. Examples:
Note: FHIR workflow described is based on the same FHIR Workflow described in FHIR Genomics Implementation Guide - Interactions, in FHIR Worflow documentation this is known as Option H: POST of Task to a workflow broker
sequenceDiagram
participant OrderPlacer As Order Placer
participant OrderFiller As Order Filler
OrderPlacer ->> OrderPlacer: Create OrderPlacer
OrderPlacer ->> OrderFiller: DiagnosticRequest - Event Notification (FHIR Task (requested))
OrderFiller ->> OrderPlacer: Retrieve Laboratory Order (FHIR RESTful API Query)
alt is accepted
OrderFiller ->> OrderPlacer: Task Diagnostic Request - Event Notification (FHIR Task (accepted))
Note over OrderFiller: Starts Testing
OrderFiller ->> OrderPlacer: Task Diagnostic Request - Event Notification (FHIR Task (in-progress))
Note over OrderFiller: Interpretation of results and write Report
OrderFiller ->> OrderPlacer: Task DiagnosticRequest - Event Notification (FHIR Task (completed))
OrderPlacer ->> OrderFiller: Retrieve Laboratory Report (FHIR RESTful API Query)
else is rejected
OrderFiller ->> OrderPlacer: Task Diagnostic Request - Event Notification (FHIR Task (rejected))
end
North West Genomics has used multiple interaction styles to populate the FHIR Repository. This is using a combination of all the above options.
At a high level there are two workflow styles:
Currently, the Health Information Exchange (HIE) is implemented as:
graph TD
subgraph TIE[NHS Trust TIE]
OrderPlacer[Order Placer] --> V2Message1[HL7 V2 Message]
end
subgraph HIE[NW Genomics HIE]
FHIRMessage[FHIR Message]
V2Message[HL7 v2 Message]
Transaction[RESTful Transaction and PUT/POST]
FHIRRepository[FHIR Server/Repository]
OrderFiller
end
V2Message1 --> |Transform to FHIR Message| FHIRMessage
FHIRMessage--> |Transform to v2| V2Message
FHIRMessage --> Transaction
V2Message --> OrderFiller
Transaction --> |FHIR Workflow Step 1, 2 and Step 3 inferred| FHIRRepository
classDef pink fill:#F8CECC
classDef blue fill:#DAE8FC;
classDef grey fill:#F5F5F5;
class OrderFiller grey;
class OrderPlacer pink
class FHIRRepository blue
The NHS Trust TIE:
The NW Genomics HIE:
For orders originating from Laboratory, the following process is suggested:
graph TD
subgraph HIE[NW Genomics HIE]
RetrieveOrder --> |"(c)"| V2Message1[HL7 v2 Message]
V2Message1 --> OrderFiller[Order Filler]
OrderFiller[Order Filler]
end
subgraph Lab["Workflow Broker (Medicus or NHS England) "]
Step2[FHIR Workflow Step 4]
FHIRRepository[FHIR Server/Repository]
end
Step2 --> |"Laboratory (a)"| RetrieveOrder[Retrieve Order]
RetrieveOrder --> |"(b) HL7 FHIR RESTful Query"| FHIRRepository
classDef pink fill:#F8CECC
classDef blue fill:#DAE8FC;
classDef grey fill:#F5F5F5;
class OrderFiller grey;
class OrderPlacer pink
class FHIRRepository blue
The NW Genomics HIE:
A suggestion design for working with the NHS England Genomic Order Management Server (GOMS) is:
graph TD
subgraph HIE[NW Genomics HIE]
FHIRMessage[FHIR Message]
ProcessMessage[Process Message]
Transaction[RESTful Transactions and Queries]
end
subgraph GOMS[NHS England Genomic Order Management Service]
FHIRRepository[FHIR Server/Repository]
end
FHIRMessage --> ProcessMessage
ProcessMessage --> Transaction
Transaction --> FHIRRepository
ProcessMessage --> Step2[FHIR Workflow Step 2]
Step2 --> |FHIR Workflow Step 3 - FHIR RESTful POST /Task| FHIRRepository
classDef pink fill:#F8CECC
classDef blue fill:#DAE8FC;
classDef grey fill:#F5F5F5;
class OrderFiller grey;
class OrderPlacer pink
class FHIRRepository blue
The NW Genomics HIE:
graph TD
subgraph HIE[NW Genomics HIE]
V2Message["HL7 v2 Message Laboratory Report (Step 7)"]
Transaction[RESTful Transaction and PUT/POST]
FHIRRepository[FHIR Server/Repository]
Step10[FHIR Worflow Step 10]
end
subgraph TIE[NHS Trust TIE]
OrderPlacer
RetrieveReport
V2Message1[HL7 V2 Message]
end
OrderFiller --> |Laboratory Report| V2Message
V2Message["V2 Message (FHIR Workflow Step 7)"] --> Transaction
Transaction --> |"FHIR Workflow Step 7 + 8 (inferred)"| FHIRRepository
FHIRRepository --> Step10
Step10[FHIR Worflow Step 10] --> |"(a)"| RetrieveReport[Retrieve Report]
RetrieveReport --> |"(b) HL7 FHIR RESTful Query"| FHIRRepository
RetrieveReport --> |"(c)"| V2Message1[HL7 v2 Message]
V2Message1 --> OrderPlacer
V2Message --> OrderPlacer
classDef pink fill:#F8CECC
classDef blue fill:#DAE8FC;
classDef grey fill:#F5F5F5;
class OrderFiller grey;
class OrderPlacer pink
class FHIRRepository blue