Lab Test Lifecycle
Introduction
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
Statuses are namespaced with the following format:
[HIGH-LEVEL STATUS].[TEST MODALITY].[LOW-LEVEL STATUS]
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 order.events
list. These include a list of all the events for that test:
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
collecting_sample.walk_in_test.appointment_pending
collecting_sample.walk_in_test.appointment_scheduled
collecting_sample.walk_in_test.appointment_cancelled
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_pending
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