The At-Home Testkit can be composed of two distinct Order lifecycles, which we detail bellow.

Order Lifecycle

As discussed in Lab Test Lifecycle - Statuses, each lab testing modality has the following format

[HIGH-LEVEL STATUS].[TEST MODALITY].[LOW-LEVEL STATUS]

For each modality, there can be multiple low-level status, for At-Home Testkit the possible low-level status are:

Registered Teskits

  • ordered: Vital received the order, stored it into our system, and started processing it asynchronously.
  • requisition_created: An order requisition form was validated and created with the partner laboratory, making the order available to be carried out.
  • transit_customer: The teskit is shipped and in transit to the customer.
  • out_for_delivery: The teskit is out for delivery.
  • with_customer: The teskit is delivered to the customer.
  • transit_lab: The customer has sent the testkit back to the lab.
  • delivered_to_lab: The lab has received the testkit.
  • failure_to_deliver_to_customer: The shipping company was unable to deliver the testkit to the customer.
  • failure_to_deliver_to_lab: The shipping company was unable to deliver the testkit to the lab.
  • sample_error: The collected sample was unprocessable by the lab.
  • completed: The laboratory processed the blood sample and final results are available.
  • cancelled: The order was cancelled by either the patient, Vital or you.

The Finite State Machine that defines the possible transitions for the low-level statuses described above is illustrated in the following diagram.

Possible state transitions for the At-Home Testkit Order low-level statuses.

Registrable Testkits

  • ordered: Vital received the order, stored it into our system, and started processing it asynchronously.
  • awaiting_registration: Order is created but no user has been registered yet
  • transit_customer: The teskit is shipped and in transit to the customer.
  • out_for_delivery: The teskit is out for delivery.
  • with_customer: The teskit is delivered to the customer.
  • registered: Order has been registered, and a requisition will be created.
  • requisition_created: An order requisition form was validated and created with the partner laboratory, making the order available to be carried out.
  • transit_lab: The customer has sent the testkit back to the lab.
  • delivered_to_lab: The lab has received the testkit.
  • failure_to_deliver_to_customer: The shipping company was unable to deliver the testkit to the customer.
  • failure_to_deliver_to_lab: The shipping company was unable to deliver the testkit to the lab.
  • sample_error: The collected sample was unprocessable by the lab.
  • completed: The laboratory processed the blood sample and final results are available.
  • cancelled: The order was cancelled by either the patient, Vital or you.

The Finite State Machine that defines the possible transitions for the low-level statuses described above is illustrated in the following diagram.

Possible state transitions for the registrable At-Home Testkit Order low-level statuses.


In sandbox, there is no async transition from the ordered state to the requisition_created state, this must be manually triggered via the Vital Dashboard.