1. Workflow
  2. Lab Test Lifecycle

Introduction

We encapsulate our lab test modalities in the order object. An order has a status which represents the high-level status of the order. Each test has different sub-statuses which are modality specific.

Statuses

High level statuses

The high level statuses of an order, are represented by order.status:

  • received
  • collecting_sample
  • sample_with_lab
  • completed
  • cancelled
  • failed

Modality specific sub-statuses are encapsulated in the order.events list. These include a list of all the events for that test:

Test kit order status
{
        ...,
        "status": "cancelled",
        "events": [
            {
                "id": 1,
                "created_at": "2022-01-01T00:00:00Z",
                "status": "received.testkit.ordered",
            },
            {
                "id": 2,
                "created_at": "2022-01-01T00:00:00Z",
                "status": "received.testkit.requisition_created",
            },
            {
                "id": 3,
                "created_at": "2022-01-01T00:00:00Z",
                "status": "collecting_sample.testkit.transit_customer"
            },
    ],
}

Test kit statuses

The following testkit statuses are used:

  • testkit.transit_customer
  • testkit.out_for_delivery
  • testkit.with_customer
  • testkit.transit_lab
  • testkit.delivered_to_lab
  • testkit.completed
  • testkit.failure_to_deliver_to_customer
  • testkit.sample_error
  • testkit.lost
  • testkit.cancelled
  • testkit.do_not_process

Walk in visit statuses

The following walk in statuses are used:

  • walk_in.requisition_created
  • walk_in.order_completed
  • walk_in.sample_error