This wiki has undergone a migration to Confluence found Here
<meta name="googlebot" content="noindex">

Design Pattern: Modeling Workflow

From HL7Wiki
Revision as of 20:33, 5 January 2012 by M walker (talk | contribs)
Jump to navigation Jump to search

Introduction

Here is what we are told in the RIM:

“The composition and sequence relationships can be arranged in a sequence to form temporal and conditional (non-temporal) action plans (e.g., care plan, critical path, clinical trials protocols, drug treatment protocols).”

In addition: “An action plan is a composite Act with component Acts. In a sequential plan, each component has a sequenceNumber that specifies the ordering of the plan steps. Branches exist when multiple components have the same sequenceNumber.”

Within the RIM documentation, the question of workflow management is raised in the context of the Act Relationship class, and in the discussion of these attributes that are identified as belonging to the “workflow suite of attributes that allow the detailed specification of executable action plans”.  Attributes on this list include:
  • Act.repeatNumber: When a study time point event is to be repeated, the attribute indicates the desired number of repetitions.
  • Act.interruptableInd: Indicates whether performance of the act may be interrupted. If the value is set to FALSE, attempts to interrupt performance will be ignored.
  • ActRelationship.sequenceNumber: Indicates the order in which time points (acts) having a common source will be performed.
  • ActRelationship.pauseQuantity: Defines the intended time delay between the point in time at which the preconditions for a time point allow execution, and the actual starting of the act.
  • ActRelationship.splitCode: Provides information to manage concurrent tasks – those under a parent which share sequence number values. The split code (a) indicates whether or not only one or all of a set of concurrent tasks are to be performed (whether selection is “inclusive” or “exclusive”, and (b) whether the precondition(s) for performing an act should be evaluated once, or continuously for until the subsequent task begins. Note, if continuous evaluation is chosen (inclusive wait or exclusive wait) the rules for transitioning to a subsequent task depend on the value of the join code.
  • ActRelationship.joinCode: Provides information to manage concurrent tasks – those under a parent which share sequence number values. The join code defines the conditions under which the completion of one of a set of concurrent act will impact on completion of the other concurrent tasks and on initiation of a successor act.
  • ActRelationship.checkpointCode: The checkpoint code applies to preconditions for performing an act. It indicates where in the performance of an act – or of a succession of act repetitions – the precondition is to be evaluated.
The diagram below shows the applicable classes from the document model.

File:WorkflowPattern.gif

Here are examples based on the storyboards from the V3 Message DSTU ballot.
  1. 200 eligible subjects among 40 centers will undergo device implantation and will be followed prospectively for two years. 48 hour continuous Holter monitoring will be done monthly.

File:WorflowEx1.png

Note, this shows use of sequence number to order steps.