NHS North West Genomics
0.2.1 - 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.2.1 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
The North West Genomics data exchange architecture enables secure and standardised communication between NHS Trust clinical systems and regional genomic laboratory services.
The architecture consists of three primary components:
Regional Orchestration Engine (RIE)
Routes and standardises messaging between organisations.
Genomic Data Repository (GDR)
A central read-only repository for genomic data and reports. Also known as a Data Platform
API Gateway (APIG)
Provides external data access to the GDR and also provides API Security.
Together these components form the Health Information Exchange (HIE) for the North West Genomic Medicine Service Alliance.
Key goals:
Historically, each NHS Trust integrated directly with laboratory systems. This resulted in multiple bespoke integrations.
Problems:
The Regional Orchestration Engine introduces a hub-and-spoke model.
Each participant integrates once with the RIE.
Benefits:
The exchange architecture is based on several core principles.
All participating organisations integrate with a Regional Orchestration Engine (RIE) rather than building direct integrations with each other.
This approach:
The exchange uses widely adopted healthcare interoperability standards including:
Modern workflows are supported through:
This enables clinical systems to respond dynamically to laboratory workflow events.
Two complementary exchange patterns are used:
| Pattern | Purpose |
|---|---|
| Messaging | Operational workflow communication |
| APIs | Access to structured genomic data |
graph TD
EPR[EPR / Order Placer]
TIE["Trust Integration Engine (TIE)"]
subgraph HIE["Health Information Exchange (HIE)"]
RIE["Regional Orchestration Engine (RIE)"]
GDR["Genomic Data Repository (GDR)"]
APIG["API Gateway (APIG)"]
end
subgraph APIM[API Gateway to NHS England APIM]
PDS["Personnel Demographic Service (PDS)"]
ODS["Organisation Terminology Service (ODS)"]
NRL["Nationa Record Locator Service (NRL)"]
end
LIMS[LIMS / Order Filler]
DC["Data and Document Consumer"]
EPR --> |Document Messaging| TIE
TIE --> RIE
RIE --> |Document Messaging| LIMS
RIE --> |"RESTful API (GET/PUT/POST/DELETE)"| GDR
RIE --> |Event Messaging| EPR
EPR --> |"RESTful API (GET)"| APIG
DC --> |"RESTful API (GET)"| APIG
APIG --> |"RESTful API (GET)"| GDR
RIE --> |RESTful API| APIM
classDef purple fill:#E1D5E7;
class EPR,TIE,LIMS,DC purple
Exhange has two high-level styles:
The general trend is to use FHIR RESTful (GET) for data sharing.
HL7 v2 is the most common exchange format for healthcare data. It has two basic interaction styles:
HL7 FHIR has several interaction styles which can replace HL7 v2.
graph LR;
subgraph Producer;
s[Data Source]
s --> v2E
v2E["HL7 v2 Event Message"]
s --> fEvent["FHIR Message (Event) and Subscription"]
end
subgraph Consumer
B[Business Logic]
d[Data Consumer]
B --> d
end
v2E --> B
fEvent --> B
classDef pink fill:#F8CECC
classDef green fill:#D5E8D4;
class restC,v2E,fEvent,Agg green
graph LR;
subgraph Producer;
s[Data Source]
v2D["HL7 v2 Document Message"]
s --> v2D
s --> fMessage["FHIR Message (Document)"]
end
subgraph Consumer
B[Business Logic]
d[Data Consumer]
B --> d
end
v2D --> B
fMessage --> B
classDef yellow fill:#FFF2CC;
class v2D,fMessage yellow
graph LR;
subgraph Producer;
s[Data Source]
s --> rest["FHIR RESTful (PUT/POST) and Transaction"]
rB[Business Logic]
rest --> rB
end
subgraph Consumer
d[Data Consumer]
end
rB --> d
classDef pink fill:#F8CECC
class rest,rB pink
graph LR;
subgraph Consumer
d[Data Consumer]
d --> restC["FHIR RESTful (GET)"]
end
subgraph Source;
s[Data Source]
end
restC --> s
classDef green fill:#D5E8D4;
class restC,v2E,fEvent,Agg green
graph LR;
subgraph Consumer
d[Data Consumer]
d --> restC["FHIR RESTful (GET)"]
end
subgraph Source;
s[Data Source]
Agg["FHIR Document<br/>(Aggregation Layer)"]
Agg --> s
end
restC --> Agg
classDef green fill:#D5E8D4;
class restC,v2E,fEvent,Agg green