PROforma is a knowledge representation language which supports the definition of clinical guidelines and protocols in terms of:
* A well-defined set of tasks that can be composed into networks representing plans or procedures carried out over time. These tasks enable the high level structure of a guideline to be represented;
* Logical constructs such as situations, events, constraints, pre- and post-conditions, and inference rules which allow the details of each task and inter-relationships between tasks to be defined (via templates).
Four types (or sub-classes) of task are defined in a class hierarchy:
General characteristics of tasks
Any specific clinical task is seen as an instance of some more general class of tasks. Each class is eventually a specialisation of a root task. Any class can be further specialised into particular sub-types. For example, plans may be specialised into research protocols and routine guidelines and decisions can be specialised into diagnosis and treatment decisions etc:
When tasks are enacted, the communication of information between tasks is achieved by passing messages between encapsulated task objects, rather than by explicit procedure calls or other mechanisms that require access to the internal definition of a task.
Every task inherits part of its specification from the classes above it in the hierarchy, expressed as a set of attributes. A task is distinguished from its parents by the possession of additional attributes, and distinguished from its siblings by different values for their common attributes.
Attributes of the (top level) root task are generic and are inherited by each task class and sub-class; attributes of task classes are specific to that class and only inherited by sub-classes of that type.
Attributes and their allowable values are specified in templates. These show us, for example, that every task has a description, a title and preconditions, but only tasks of type action have a procedure, and only tasks of type decision have candidates. The attributes of the root (generic) task are shown in the table below.
PROforma applications are designed to support the management of medical procedures and clinical decision making at the point of care. PROforma software, consisting of a graphical editor to support the authoring process and an engine to enact the "proformalised" guideline specificatio, has been developed to support the design, testing and execution of guidelines. Development of a PROforma application is a two-step process:
1- Developing a high level diagram which describes the outline of guideline in terms of the PROforma set of tasks (logical and temporal relationships between tasks are captured naturally by linking them as required with arrows);
2- Converting this graphical structure into a database, and populating it, using software implementations of the task templates, with the detailed procedural and medical knowledge required to execute the guideline.
Both these steps are carried out using a graphical editor (or knowledge authoring tool) such as the Arezzo Composer . The resulting computerised enactable clinical guideline is tested and executed using a PROforma-compatible engine, such as Arezzo Performer .