Overview
BC Lab eOrders is a BC-specific project in partnership with LifeLabs and PHSA. It uses the Ocean eReferrals messaging workflow in the Ocean Provider Network to support laboratory ordering in British Columbia, while relying on LifeLabs/eOrder infrastructure to validate and manage electronic lab orders in a provincial holding-tank model.
The integration allows an ordering provider or delegate launch Ocean from an EMR or Ocean Portal, complete a Standard Outpatient Laboratory Requisition (SOPLR) (which is a BC specific lab form), validate order content using CDS Hooks in Ocean, create an eOrder in the LifeLabs eOrder service, receive from Lifelabs and print the generated SOPLR PDF with barcode, and track order status in Ocean. Laboratory receivers do not primarily work inside Ocean; they retrieve the requisition and associated data from the Life Labs holding tank through lab-side systems when the patient presents.
Project Background
The core business goal is to let healthcare practitioners submit lab requisition orders electronically from Ocean into an eOrder service. The eOrder service validates the order, stores it in a provincial repository or holding tank, and allows participating labs to retrieve and fulfill the order when the patient attends a lab service centre.
Ocean operates as the front end for healthcare providers and eOrder as a background service and the proposed integration model keeps the provider experience in Ocean while allowing LifeLabs/the eOrder service to handle validation, repository storage, and lab retrieval workflows.
The design allows for patient flexibility – the patient is not necessarily tied to a single patient service centre chosen at order time. Instead, the eOrder can be made available to participating lab locations, which can retrieve the order data electronically. This is expected to improve lab operational efficiency, reduce manual data entry, and support faster turnaround for patients.
| Stakeholder/System | Role in the model |
|---|---|
| Ordering provider/ delegate | Launches Ocean, completes or resumes the SOPLR entry form, submits the eOrder, prints the SOPLR PDF, and views eOrder status information. |
| Ocean platform | Front-end ordering workflow, EMR/portal launch, patient/provider form pre-population, form validation, receives and displays the ordering form, eOrder folder and status display and receives notifications |
| LifeLabs eOrder service | Authenticates and supports eOrder validation, order creation, SOPLR generation, holding-tank/repository storage, and asynchronous notifications to Ocean |
| Participating labs / LIS | Retrieve the requisition and associated data from the holding tank, print or process requisitions, and claim orders. |
| Patient | May present with a printed SOPLR/barcode or without a printout; lab QA/UAT scenarios cover both. |
End-to-End Workflow
The table below outlines the end-to-end workflow expected in the eOrder flow
| Step | Actor(s) | What happens | Key outputs |
|---|---|---|---|
| 1 | Provider and Ocean | Provider launches Ocean from an integrated EMR using SSO or accesses Ocean Portal. Provider locates the eOrder listing and opens the SOPLR form. | Patient and ordering provider information can pre-populate into the form. |
| 2 | Ocean | Ocean renders the eOrder entry workflow including test selection. | Form is ready for provider completion; Other Tests references the Provincial Test Catalogue in real time. |
| 3 | Provider | Provider completes the SOPLR, optionally uses saved order sets/autofill, may save an incomplete order for later, and reviews entries before submission. | Draft or completed eOrder entry form. |
| 4 | Ocean and LifeLabs validation engine (InRule) | Ocean calls InRule using CDS Hooks integration to validate order content. | Validated electronic order or validation feedback requesting corrections or missing information. |
| 5 | Provider | After ensuring a validated order, provider submits the eOrder from Ocean. | eOrder is created in Ocean and sent to LifeLabs. |
| 5 | LifeLabs eOrder service | eOrder stores the order in the holding tank/provincial repository for participating lab retrieval. | eOrder ID/requisition identifier; order available for lab retrieval. |
| 6 | LifeLabs eOrder service | The SOPLR document is asynchronously sent to Ocean after the order is created. | The SOPLR PDF is displayed to the provider in Ocean and stored on the eOrder in Ocean. |
| 7 | Ocean | Ocean makes the eOrder PDF summary and SOPLR PDF available in Ocean and, where applicable, the EMR. The SOPLR includes a barcode. | Printable SOPLR, Ocean dashboard item, EMR attachment/summary. |
| 8 | Patient and LIS | Patient attends a lab with the SOPLR barcode or without a printout. Lab retrieves the requisition using the barcode or patient identifiers such as PHN/name. | Lab retrieves and prints/processes the requisition. |
| 9 | LIS and LifeLabs eOrder service | When a lab system claims the order, the eOrder service sends a FHIR message to Ocean for a status update. | Ocean shows the order as claimed/completed; the workflow loop is partially closed. |
Integration Architecture
Important system responsibilities:
- Ocean is the provider-facing front end system and the eOrder API client.
- LifeLabs operates as the validation system, eOrder repository, SOPLR PDF-generation system, eOrder API client, and lab-side retrieval service.
- Participating labs/LIS retrieve and claim orders from the holding tank; they do not use Ocean as their primary receiver workflow.
| Integration | Design |
|---|---|
| Protocol/style | RESTful API, FHIR payloads/resources, and CDS Hooks validation. |
| Authentication | OAuth 2.0 client credentials - Ocean receives a client ID and client secret to obtain access tokens. |
| Order codes/catalogue | Ocean can retrieve ValueSet order codes and metadata such as display name, alias, additional information required, category, collection instructions, patient instructions, and last updated. |
| Validation | CDS validates an eOrder payload with LL and returns CDS response cards confirming validation. |
| Order creation | Ocean creates a new eOrder ServiceRequest in the LifeLabs system. |
| SOPLR PDF | Not returned synchronously but delivered asynchronously to Ocean as a FHIR Communication Bundle payload containing base64 PDF binary titled “soplr.pdf”. |
| Claim/status update | When LIS claims the SOPLR/order, eOrder sends a FHIR Task Bundle to Ocean with details such as date claimed and LIS accession identifier. |
| Retries | Ocean message retries occur immediately and several times in the first hour. If unsuccessful, Ocean will try once an hour for the next 96 hours. Every 24 hours, Ocean will send an email alert to the 'Clinical Administrator / Ocean Support Contact' listed on the Lifelabs eOrder site. After 96 hours, Ocean will abort attempts to reach the endpoint. Ocean will, however, continue to send daily emails. |