We encapsulate our lab test modalities in the order object. This is the main object you will interact with, as it contains all the information related to that lab test. An order has a high-level status which represents where the order is throughout its lifecycle, e.g. received/delivered/completed/cancelled etc.

The high-level status is the same across test modalities. On top of that, each modality has its own sub-statuses, to represents lifecycle stages specific to that modality. For example, test-kits involve shipping of the box, so we have a whole set of statuses to track the shipment.


Statuses are namespaced with the following format:


As an example, the status collecting_sample.at_home_phlebotomy.appointment_scheduled means the patient has scheduled an at-home phlebotomy appointment.

High-level statuses

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

  • received: we received the order, stored it into our system, and started processing it.
  • collecting_sample: these track collecting the sample from the patient. In the case of test-kits, these track the shipment of the kit. For at-home phlebotomy, these track the patient scheduling an appointment. Walk-in tests don’t have this status because the patient can turn up at the lab anytime.
  • sample_with_lab: the lab received the sample and is currently analyzing it.
  • completed: the order is complete and the results are ready.
  • cancelled: the order has been cancelled, by you or the patient.
  • failed: we failed to process the order.

Modality specific sub-statuses are encapsulated in the 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"

Below is a full list of all the available statuses by test modality. The names should be self-descriptive. Please do not hesitate to contact us if you need any additional clarification!

Test-kit statuses

  • received.testkit.ordered
  • received.testkit.awaiting_registration
  • received.testkit.testkit_registered
  • received.testkit.requisition_created
  • collecting_sample.testkit.transit_customer
  • collecting_sample.testkit.out_for_delivery
  • collecting_sample.testkit.with_customer
  • collecting_sample.testkit.transit_lab
  • sample_with_lab.testkit.delivered_to_lab
  • completed.testkit.completed
  • failed.testkit.failure_to_deliver_to_customer
  • failed.testkit.failure_to_deliver_to_lab
  • failed.testkit.sample_error
  • failed.testkit.lost
  • cancelled.testkit.cancelled
  • cancelled.testkit.do_not_process

Walk-in visit statuses

  • received.walk_in_test.ordered
  • received.walk_in_test.requisition_created
  • sample_with_lab.walk_in_test.partial_results
  • completed.walk_in_test.completed
  • failed.walk_in_test.sample_error
  • cancelled.walk_in_test.cancelled

At-home phlebotomy statuses

  • received.at_home_phlebotomy.ordered
  • received.at_home_phlebotomy.requisition_created
  • collecting_sample.at_home_phlebotomy.appointment_scheduled
  • collecting_sample.at_home_phlebotomy.draw_completed
  • collecting_sample.at_home_phlebotomy.appointment_cancelled
  • sample_with_lab.at_home_phlebotomy.partial_results
  • completed.at_home_phlebotomy.completed
  • cancelled.at_home_phlebotomy.cancelled