See also Administering Programs Workflows and States
Introduction
A program is typically used when a patient is identified as belonging to a group for which a particular set of coordinated interventions is to be followed. For example, programs might be used for diseases such as HIV or tuberculosis or conditions such as pregnancy or interventions such as childhood immunization.
A program is may be composed of one or more workflows. If there are no workflows, only the patient_program data (entry date, exit date, outcome) is maintained. Many programs have only one workflow, but some have more than one. For example, in the pregnancy program, there might be an "all patients" workflow, a "high risk" workflow, and a "delivery" workflow; a woman with a high risk pregnancy would get both the "all patients" protocol and the "high risk" protocol.
...
When the patient's participation in a program comes to an end, an outcome may recorded; typically, this indicates the success or failure of the intervention in achieving its purposes. This is a new feature introducted in OpenMRS version 1.9. In earlier versions, these outcomes would have had to be terminal states of a workflow.
Thus there are two main ways of using Programs: (1) without workflows, in which program entry and exit dates plus program outcome would be used; (2) with workflows, in which the traversal of internal workflow states is recorded and terminal states record outcome.
The primary reason for using a program is where entry and exit dates for the program and its component workflow states are significant for reporting. The reporting module allows the selection of patients both on program and workflow state. Statistics which can be computed include median time spent in a workflow state, number of program participants in a particular workflow state on a particular date, outcome by initial state, etc.
Data Model
...
Gliffy | ||||
---|---|---|---|---|
|
...
|
User Interface
Program Administration (on the Administration page)
Note that program, workflow and state all keep their names in concepts, so these concepts must be defined before adding a program. Also, the possible outcome values must be in a concept set or coded answers, which should be defined in advance as well.
...