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

Difference between revisions of "Trigger Event"

From HL7Wiki
Jump to navigation Jump to search
(update)
(harminize with Len's paper)
Line 1: Line 1:
An [[Event]] which, when recorded or recognized by an application, indicates the need for an information flow to one or more other applications, resulting in one or more interactions.
+
An [[Event]] which, when recorded or recognized by an application, indicates the need for an information flow to one or more other applications, resulting in one or more [[Interaction]]s.
  
The trigger event represents the “real-world” occurrence that creates a need to exchange information. Note that a given trigger event may fire multiple [[Interaction]]s.  
+
A trigger event is an explicit set of conditions that initiate the transfer of information between system components ([[Application Role]]s). The trigger event represents the “real-world” event such as the placing of a laboratory order or drug order. The trigger event must be systematically recognizable by an automated system.
  
The Trigger Event may be based on the following:
+
The Trigger Event may be caused by one of the following:
*User Request - this is a query or a fulfillment request
+
*User Request - For example, the trigger event that prompts a system to send all accumulated data to a tracking system every 12 hours is considered User Based.
*[[State Transition]] or Unspecified - this is an unsolicited event
+
*[[State Transition]] - resulting from a state transition as depicted in the State Transition Model for a particular message interaction. The trigger for canceling a document, for example, may be considered a State Transition Based trigger event
*Interaction Based - this is a response to a fulfillment request or a query request
+
*Interaction Based - based on another interaction. For example, the response to a query (which is an interaction) is an Interaction Based trigger event.
 +
 
 +
Most trigger events are State-Transition based and will be encountered when reading the dynamic message model information defined to support a particular message interaction. Some trigger events may be based on more than one state transition, which are assumed to occur simultaneously.
  
 
== Discussion ==
 
== Discussion ==

Revision as of 18:50, 5 December 2005

An Event which, when recorded or recognized by an application, indicates the need for an information flow to one or more other applications, resulting in one or more Interactions.

A trigger event is an explicit set of conditions that initiate the transfer of information between system components (Application Roles). The trigger event represents the “real-world” event such as the placing of a laboratory order or drug order. The trigger event must be systematically recognizable by an automated system.

The Trigger Event may be caused by one of the following:

  • User Request - For example, the trigger event that prompts a system to send all accumulated data to a tracking system every 12 hours is considered User Based.
  • State Transition - resulting from a state transition as depicted in the State Transition Model for a particular message interaction. The trigger for canceling a document, for example, may be considered a State Transition Based trigger event
  • Interaction Based - based on another interaction. For example, the response to a query (which is an interaction) is an Interaction Based trigger event.

Most trigger events are State-Transition based and will be encountered when reading the dynamic message model information defined to support a particular message interaction. Some trigger events may be based on more than one state transition, which are assumed to occur simultaneously.

Discussion

A pharmacy can request for a physician order to be aborted (1) , but can't cancel it themselves. A physician can abort the order (2) and request the pharmacy to fulfill that. When they do so, they're not saying "abort your promise" or "abort your event". They're saying "Do what ever you need to do to deal with the fact that this order is cancelled". That may involve contacting a delegated pharmacy, or many other things the physician system doesn't know about or care about. The state-transition of (1) and (2) is the same. The payload is the same. The semantics of the request are distinct. The pharmacy domain has to define 2 different trigger events (“Please suspend this order” and “Please Deal With the Fact that I suspended this Order”). (Dick) In V2 we used to say the Trigger Events were real-world events such as "a patient is admitted" a lab test is ordered. (Rene) And that's the way it should stay IMO. If we look at activity diagrams, then these define the circumstances and the reasons for cummication.

Adding the Notification or Fullfillment request suffixes amounts to assigning "receiver behaviour" aspects to a trigger event. We don't want this to be dealt with at that level; receiver behaviour is linked to the interaction (in the form of receiver responsibilities) or to atribute values within the message itself.