Getting involved with NHS Aggregator service
Important: This site is under active development and is intended to provide all the technical resources you need to successfully develop with the Record Locator API. This project is being developed using an agile methodology, so iterative updates to content will be added on a regular basis.
Interactions
There are three main types of systems that need to integrate in order to share Granular Pointers -
System | Role in RL |
---|---|
Consumer | A system that wishes to retrieve Pointers related to a given patient by NHS number and optionally specify the type of Pointers to be retrieved |
LRL | Local Record Locator which pushes up Patient Pointers to the NRL and also exposes the Record Location Query API to allow the Aggregator service to request more granular pointers in response to a Consumer client’s request |
NRL | The National Record Locator that stores and provides access to Pointers for retrieval and maintenance |
In addition the consumer might not be interfacing directly with an LRL or the NRL. Instead it might be using a third type of Record Locator -
System | Role in RL |
---|---|
Aggregator service | A service that interfaces with the NRL and LRLs to assemble all relevant Pointers based on the Consumer client’s inbound request |
Consumer Interactions
Pointer Search
A Consumer can perform parameterised searches of the Pointers held within the RL using a search interaction:
- A Consumer can ask the RL to return all Pointers that relate to a given patient by supplying the NHS number of that patient.
- A Consumer can combine the Patient search parameter with the type of data that the Pointer references to further narrow the search space
Pointer Aggregation
In this scenario instead of directly interacting with the NRL or an LRL the consumer client communicates with an Aggregator. However the Aggregator exposes an RL interface meaning that the client is unaware of the complexity that the aggregator is hiding.
The diagram below illustrates how the aggregator sits in between the consumer and the NRL and LRLs -
- The consumer client initiates a request with the Aggregator service to find pointers for a given patient (optionally refining the search by type)
- The Aggregator first calls the NRL requesting Patient Pointers for the given patient
- The Aggregator iterators through the Patient Pointers and calls down on to the RL endpoint that is referenced passing the original query parameters from the consumer
- The Aggregator combines the results returned from each RL into one unified result set
- The Aggregator also queries the NRL passing in the original query and adds any Granular Pointers into the unified result set
- The Aggregator returns the unified result set to the consumer client