A program is a program of care which a patient can be enrolled in, for example "HIV care and treatment" or "TB care" or "maternity care". Within a program, one or more workflows can be set up. For example, "patient overall status" could be a workflow, or "pregnancy status" could be another. Within a workflow, a patient has one state at any one time, and can move from one state to another over time. For example in the "patient overall status" workflow, a patient could first be "attending clinic" then "transferred out" then "attending clinic" again (if they were transferred back), then "died". A full history of states of a patient is stored, but only the current state of a patient within a workflow is normally visible.

The diagram illustrates a Maternity Care Program. While there could be many workflows that occur within Maternity Care, this example contains only one workflow - Pregnancy Status. The name of the workflow should describe the question which would be asked to determine where a patient is in the workflow. In this example, the question would be "What is the status of the patient's pregnancy?"

Notice that while pregnancy begins with conception and ends with birth, those events are not considered states of the workflow. The states are answers to the question posed by the workflow name. A possible answer here could be, "the patient is in the First Trimester."


To set up a program:

To set up a workflow:

To set up states:

Once you have set up programs, workflows and states, a patient can be enrolled in programs and moved between states in workflows in the program, from the patient dashboard.