What Do Pointers Do?
Pointers on the NRL tell consumers the type of information that is available from a provider and how to get it. A provider can choose what information they want to share and how they want to share it.
A provider might allow consumers to retrieve the same information in a number of different ways, and this would be reflected in the pointer(s) they create on the NRL. The following diagram illustrates the concept that a provider might enable different ways of retrieving the same information.
The provider creates a single pointer on the NRL that points to the information (Record A) within the provider system. The pointer references each method or format of retrieving the record:
- The first reference included on the pointer is the URL of a web page contianing contact details for the provider organisation. Retrieval in this scenario begins with a user in the consumer organisation visiting the URL contained within the pointer and dialling the telephone number listed on the web page; this begins a human-controlled process that ultimately leads to “Record A” being retrieved.
- The second reference included on the pointer is to an API endpoint exposed by the provider. In this scenario the consumer system would use the details in the pointer to programatically request Record A directly from the provider system to use/display its content within the consumer system.
A pointer could contain multiple references to API endpoints that return the record in different formats. For example, an endpoint which returns the record as a PDF document and another that returns it in a structured data format.
Pointer Data Items
For a consumer, the information carried in the pointer serves two main purposes:
- to determine which information could be useful
- how to retrieve the information
The content of the pointer is intended to be lightweight and high-level, giving enough information to indicate the type of information the consumer can retrieve and some contextual information, such as the care setting the information is being shared from. This enables the consumer system or user to apply filtering to find relevant pointers.
The pointer model is intentionally lean. Including complex detail within a pointer would put a significant maintenance burden on the provider and risks making consumption of pointers more difficult for consumers.
The pointer data model is based on the FHIR NRL-DocumentReference-1 resource and carries the following information:
- Identifiers for the pointer and patient
- Metadata about the pointer (e.g. version control, pointer ownership)
- Metadata about the referenced information (e.g. information type, ownership and associated dates)
- Information for retrieving the record (e.g. URL, information format)
For more detailed information about the pointer data model and population guidance, see the Pointer Data Model page.
The pointer lifecycle within the NRL focuses on the
status of pointers and the permitted transitions between those statuses. The statuses and transitions ensure that only the appropriate pointers are shown to consumers.
A pointer can have one of three possible statuses:
|current||Indicates that the pointer and referenced information is considered by the provider to be valid for consumption and can be used to inform clinical decision making. The NRL will make pointers with the
|superseded||Indicates that this pointer has been replaced by a new pointer.
|entered-in-error||Indicates that the pointer should not have been created in the NRL, and is not valid. This status allows a provider to mark a pointer as erroneous without needing to delete it.
Pointer Status Transitions
The permitted transition from one status to another, within the NRL, are outlined within the diagram below:
When a pointer is created it will have a status of
current. From the
current state the pointer may either transition to the
entered-in-error state. After entering the
entered-in-error state the pointer may not transition to any other state.
Pointer status transitions are related to the pointer management interactions provided by the NRL:
|Create||A new pointer will default to the
|Supersede||The new pointer will be created with a status of
|Update||The status of the pointer will transition from
If a pointer is no longer valid or appropriate for use and should not be superseded or marked as
entered-in-error, the pointer should be deleted.