This project has moved. For the latest updates, please go here.

Protocol Data Model

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.

image

 

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.

Last edited Jan 13, 2016 at 7:08 PM by jf03cg, version 2