The OpenIZ protocol model is used to track the types of clinical protocols and links between an encounter and a clinical protocol. Protocols can be expressed in a variety of manners and are adhered to by their protocol handler. The protocol handler identifies which piece of code should be invoked to handle the particular workflow.
Protocol handlers are pieces of code which run in the backbone IMS application and may schedule future events, analyse prior events and execute tasks, etc. Whenever an Act is associated with an Act protocol any addition, modification, or link made to that Act will trigger the execution of the protocol handler.
Examples of protocols can include vaccination schedules, appointment scheduling, adverse event treatment, etc.
Table |
Column |
Type |
Description |
Protocol |
(None) |
N/A |
The protocol table is used to store discrete protocols related to immunization, reporting, etc. |
ProtocolId |
UUID |
Uniquely identifies the protocol within the OpenIZ data model. |
|
Name |
VARCHAR |
A human readable name for the protocol. Example: “BCG Immunization Scheduling” |
|
AutoStartCriteria |
VARCHAR |
A predicate which, when true, triggers the automated start of the protocol. |
|
ProtocolDefinition |
VARBINARY |
An implementation specific definition of the protocol. This can be BPMN, RulesML, JavaScript, etc. The protocol definition must be understood by the associated handler. |
|
CreationTime |
DATETIME |
Identifies the time when the protocol definition was created. |
|
CreatedBy |
UUID |
Identifies the user who was responsible for the creation of the protocol definition. |
|
ObsoletionTime |
DATETIME |
When present, indicates the time when the protocol definition is or was no longer active. |
|
ObsoletedBy |
UUID |
Identifies the user who was responsible for obsoleting the protocol. |
|
ReplacesProtocolId |
UUID |
Identifies the protocol which the current tuple replaces. |
|
ProtocolTypeId |
UUID |
Identifies the protocol handler which should be used to execute the protocol. |
|
ProtocolHandler |
(None) |
N/A |
The protocol handler table is used maintain a registration of all handlers which are responsible for the execution of protocols. |
ProtocolHandlerId |
UUID |
Uniquely identifies the protocol handler. |
|
Name |
VARCHAR |
A human readable name for the protocol handler type. |
|
ProtocolHandlerClass |
VARCHAR |
The assembly qualified name of the handler which executes the protocol. Must implement IProtocolHandler |
|
CreationTime |
DATETIME |
Identifies the time when the protocol handler was registered. |
|
CreatedBy |
UUID |
Identifies the user which was responsible for the creation of the protocol handler. |
|
ObsoletionTime |
DATETIME |
When present, identifies the time when the protocol handler is no longer active. |
|
ObsoletedBy |
UUID |
Identifies the user that was responsible for the obsoleting of the protocol handler entry. |
|
ReplacesProtocolHandlerId |
UUID |
Identifies the protocol handler registration that the current tuple replaces. |
|
ActProtocol |
(None) |
N/A |
The act protocol table is used to associate a protocol definition with an Act. This association identifies the “why” an act was created (i.e. it was associated with an protocol) |
ProtocolId |
UUID |
Identifies the protocol definition to which the association applies. |
|
ActId |
UUID |
Identifies the act which the protocol is associated with. |
|
IsComplete |
BIT |
Identifies whether the act completed the protocol (terminated it). |
|
ProtocolState |
VARBINARY |
A handler specific piece of data which can be used to store application specific state related to the instance of the protocol definition. |