The top-level formal concept defined is the Work Plan, which
Within a Work Plan, each included Task Plan is:
Technically, these are currently special kinds of Task Group, but we will probably change that in v2. The general concept is a decision group consists of a root node followed by 2 or more branches. Each branch does work like a Task Group in that it contains elements.
This is like an if / then / elseif statement, where every branch contains a Boolean-valued expression, eg. '$sys_bp > 160 or $body_temp > 40', '$sys_bp > 180' etc.
For this kind of structure, each outgoing branch carries a potentially complex expression (might be too big to display by default in its entirety)
This structure is like a case or switch statement: the root node carries a single potentially complex expression of the form $xxx = a + b / c whose result can be Boolean, Numeric, Time duration etc, and the branches contain range expressions like
You could display the ranges in other ways e.g. $xxx matches |0.0 .. 100.0| or similar.
This is a wait state, each branch is like a when/then rule. When one of the conditions becomes True, that branch is followed. The 'when' part is expressed as a 'Task Wait' entity (see below).
xxx
xxx
Object representing a point in time in terms of one or more events. The start_window
is used to add an 'acceptable delay' time within which the Task should be start with respect to the intended start time. The timeout
attribute can be used for non-deterministic Events.
clock time: event = TIMELINE_MOMENT
, CALENDAR_EVENT
;
notification-based: event = or MANUAL_EVENT
, SYSTEM_NOTIFICATION
;
task-linked: event = TASK_TRANSITION
, e.g. 1hr after previous Task done;
state-linked: event = STATE_TRIGGER
, e.g. 'when systolic BP > 165';
any event with added delay: DELAY_EVENT
.
The various kinds of Event in a Task Wait object can be specified in the following ways:
CALENDAR_EVENT
: use a date or date/time, e.g. '2018-04-22', possibly with a calendar symbolTIMELINE_MOMENT
: is an offset from the time origin of the Task Plan e.g +2d; this can be converted to calendar time once the plan has started, but probably should be displayed in both forms, e.g. '2018-04-22 (+2d)'TASK_TRANSITION
: occurs when a Task has undergone a lifecycle state transition, e.g. 'Task 54 {Done, Cancelled}'