APPENDIX I

Protocol Engine Component Descriptions and Class Definitions

Class Purpose
Protocol Type This is the base protocol class from which specific protocols can inherit many of their attributes. Data describing each element in this class will be stored in a protocol type table. In this class, protocol groups are defined in order to simplify the task of creating specific protocols that belong to the group. Each individual protocol will become an instance of its protocol type class and be able to inherit the default triggering event, activity list, outcomes, data sources, and tracking specifications defined for the group or class. The user can then modify a few elements of the protocol rather than having to fully define all elements of the protocol. For example we might want to create a protocol type for pre-placement exams that we do for any client company. In it we could describe standard actions that would be performed whenever someone came in for a pre-placement exam, what data would be tracked, and in which files that data would be found. Then whenever a user wanted to tailor a protocol to the requirements of a specific employer, by selecting the pre-placement protocol type, everything already defined for the class would be inherited and it would only be necessary to change or add specific prescribed activities.
A protocol type will have all of the same instance variables described for protocols.
Protocols The members of this class will be every protocol which is defined and described. A protocol definition consists of:
  • a name,
  • a unique protocol ID# assigned by the system,
  • a protocol type category which the computer will use to help it scan for the occurrence of the protocol and to track data once the protocol has occurred,
  • a triggering event, which will activate the protocol and begin tracking data and initiate any actions defined in the protocol activity list,
  • an activity list in which each activity that needs to be carried out to implement the protocol is defined,
  • an outcome / milestone list in which any status changes or events that are critical to protocol decision points or determining the success of the work are defined,
  • a list of data that needs to be tracked whenever the protocol is activated.
Actions This class provides the system with a list of all tasks that it is capable of performing, and the information required to know how to perform them. Every item in a list of protocol activities will refer to an action in this list. The action class has methods which initialize, perform, and close actions.

An action is one of the basic building blocks of the system. It is a task that needs to be performed either by the computer or by an individual. When it is to be performed by the computer, we need to provide enough information so that the computer will be able to complete it. When it is to performed by an individual, the computer can play a role in scheduling the task, monitoring that it has been performed, or checking data associated with or outcomes of the action.

An action definition includes:

  • Name and description,
  • a unique ID assigned by system,
  • an action type definition (consultations, tests, treatment, medication, patient activity, diet, education, computer output, email, data search)
  • Required discipline or skill level which optionally can restrict or specify who is able to perform the task,
  • estimated completion times (optional, but minimum, maximum, and average can be specified),
  • Form Identifier when some sort of system output is involved,
  • Methods for initializing, performing, and closing the action.
Expressions Every event, milestone, outcome, or status descriptor will be listed in the expression list. An expression is a means of describing an event in a way that a computer can interpret and compile for the purpose of rapid evaluation. The abstraction of events and status descriptors into an expression list, is one of the levels of abstraction needed to make this system portable to different data and software environments.

Each expression definition includes:

  • name and description of the expression,
  • a unique ID assigned by system,
  • a logical and textual list of all of the elements and operators which make up the expression,
  • a compiled set of tokens and operations which the system can use for rapid evaluation of the expression,
  • a list of parameter names and data types that can be passed into the expression,
  • the data type of the expression's output.

Appendix II contains a discussion about how expressions will be described and compiled.

Protocol Activities The protocol activity definitions are the keys to making this system flexible enough to be used for critical path definition, clinical practice guidelines, clinical or treatment protocols, or standard order sets. Each protocol activity links a protocol to a predefined action item. It also put constraints on when that action needs to be performed, who will perform it, if it needs to be preceded by other actions or milestones, how often and at what frequency it needs to recur, how it should be followed up, how to determine if it was completed successfully, and what variances should be allowed to explain why it was not performed or completed.

Each activity definition includes:

  • Reference to Protocol to which this activity belongs;
  • Reference to Action ID that will be performed;
  • Description;
  • Type of Action;
  • Reference to Data Source ID which will determine which files are opened to perform or evaluate action;
  • The person by whom the action will be performed;
  • Information on allowable completion time including minimum, maximum, and optimal, and units of measurement (minutes, hours, days, etc.);
  • Recurrence quantity and frequency information;
  • Reference to preceding action that must be completed, before this action is initiated. This reference will be to an expression in the expression list, and can also include other milestones, events, status descriptors;
  • Form ID;
  • Email Address where messages may be sent;
    • Message to be passed to printed or displayed form or report, or to be sent by email. References to expressions can be filled into message to allow data to be merged with standard text;
    • Destination identifier;
    • Completion Expression ID: reference to an expression which will indicate if a specific action has been completed;
    • Follow up information and schedule to provide information to the system on how often to check if activity has been completed;
  • Variance List;
    • Data Tracking List: will contain details of what information needs to be gathered so that users throughout the network can monitor and analyze protocol performance.

Protocol Outcomes Each outcome definition includes:
  • Outcome ID, Name, and Description;
  • Reference to Protocol that outcome is an element of;
  • Reference to Expression that tells system how to evaluate outcome;
  • Reference to Data Source ID;
  • Time, units or measure, and recurrence information defining when and how often milestone must be achieved;
  • Variance List.
Variances This class maintains the definitions of all variances that can be used for either protocol activities or protocol outcomes. Each variance definition includes:
  • Variance ID;
  • Variance Name;
  • Variance Description.
Protocol Activity Variances One or more variances can be defined for any protocol activity. Because of the nature of health care work, many prescribed protocol activities will not be performed, often with good justification. For a rules system to be useful, it must allow for this fact, and in order to facilitate the analysis and tracking, make it as efficient as possible for users to acknowledge that certain tasks weren't completed and explain why. The key to doing this is to pre-select the most likely reasons that any activity will not get completed, so that the majority of times that this happens, a user will be able to select the reason from the list that immediately pops up, if needed, add a few notes, and then proceed with other things. It should also be possible to indicate that if a specific protocol activity variance is selected as the reason that the activity was not completed, this is a triggering event that can initiate another protocol.
Protocol Activity Tracking Whenever a protocol is triggered an action tracking record is initialized. One of these records is created for each activity included in the protocol. In addition to recording the date and time that the activity was initiated, this is where the system records when the activity was completed, or if it was not completed, the reason or variance, along with any additional notes. The definition for each activity tracking elements includes
  • Protocol ID#;
  • Action ID #;
  • Triggering Date;
  • Triggering Time;
  • Performed by;
  • Completion Flag;
  • Variances selected and associated notes.
Data Tracking The Data Tracking Class allows users to designate specific data to be gathered as part of any single protocol activity. When a field identifier is used, the system will attempt to get the data based on information it finds in the Field Structure List and any conditions specified in the expression reference to help narrow down a specific item of information, where there are multiples or some ambiguity. If no field or expression identifiers are filled in, the system can prompt users for the information. The definition for each data tracking element includes:
  • Protocol ID #;
  • Action ID #;
  • Field ID #;
  • Expression ID #;
    • Description;
    • Data Type;
    • Data Length;
    • Editing Template.

The following classes deal with accessing data. They act as a layer between the rules and the data to which the rules will be applied. On systems with diverse data sources, the set of data definitions used will depend on the data source.
Data Fields This is a generic list of fields to which all rule definitions will refer when they have to refer to field information.
Each field definition will include:
  • Field ID;
  • Description.
Data Sources Maintains a list of all data sources available on any network. Similar information from different locations may be coming from different local data sources maintained in table formats.
Each source definition will include:
  • Data Source ID;
  • Source Name;
  • Source Network Location;
  • Source Database Type;
  • Source Data Format.
Data Groups The data group class allows a series of related tables needed to evaluate expressions or perform activities to be classified in a group definition. Any member of this class can then be referenced prior to evaluating any expression or performing any action to insure that connections are in place to all data that will be needed during the process.
Each group definition will include:
  • Data Group ID, Name, and Description.
Data Group Tables Each member of this class contains the items that define tables that belong to each data group. Each item definition contains:
  • Reference to Data Group ID;
  • Data Source ID;
    • Table ID;
    • Parent Table ID;
    • Key Fields establishing relationship between Parent and Child;
    • Index Name (if applicable).
Data Tables This is a list of all tables on the network on which data is stored and can be accessed. Each definition includes:
  • Table ID;
  • Name of File or Database;
  • Data Source ID;
    • Description of Data stored;
  • Table Type;
    • Format in which data is stored;
    • Operating system under which data can be accessed;
    • Location of File on Network.
Table Field Structure The full definition of each field or data element is contained in the members of this class. This allows the system to enable users to build expressions based on the descriptions of the data field and table rather than having to know the specific field names or identifiers. This list also provides the information that the Protocol Engine will need to know how to evaluate expressions, and will allow protocols to be translated from one vendor's system to another. Any field identifier referenced by an expression can have different entries for each data source on the system.
  • Table ID
  • Table name
  • Data Source ID
    • Field ID
    • Field description
    • Data Type ( alphanumeric, integer, logical, date, etc.)
    • Field Length
    • Field editing picture
    • Index to the position of the field when shown in help lists displayed on expression definition screen.



Home ck_MedRules ck_CompCare ck_Medical Grants The Company Employment Request Info Links

Copyright 1997 CK Software, Inc., 210 N. Higgins, Suite 334, Missoula, MT 59802
Phone: (406) 721-2606 Fax: 721-4225