Requirements-Dynamic Model
This page documents one or more V3 Methodology Requirements
Contents
Description
The HL7 methodology includes two parts needed for communication of information between systems, the static model (information content itself and any wrappers) and the dynamic model which describes the circumstances under which that information is sent and how that exchange fits into an overall pattern of communication. "Dynamic model" refers to a set of interrelated artifacts that together define the behavioral portion of an HL7 v3 specification. The artifacts include:
- Trigger Events: When is information exchanged?
- Application Roles: Who are the participants in an exchange?
- Interactions: What are the characteristics of a single exchange, including its place in an overall communication pattern?
Requirements
Trigger Events
Requirement | There needs to be a means of defining and standardizing the definition of the 'real world' occurrences that result in a need for information to be exchanged. |
Rationale | Part of interoperability is not only what information will get shared but also the circumstances where it will be shared. A system that does not share the appropriate information at the correct time will not achieve interoperability. |
MIF | mif-model-dynamic.xsd/TriggerEvent |
Requirement | Each trigger event must have a unique name |
Rationale | The trigger events must be able to be precisely referenced in human-to-human communication. |
MIF |
|
Requirement | Each trigger event must identify, as formally as possible, the real-world occurrence that causes information to flow. |
Rationale | The purpose of a trigger event is to give a standardized label to a particular type of real-world event so that it can be referenced. If the real-world event isn't defined or is defined only loosely, the trigger event's purpose won't be met. |
Methodology | There are three categories:
|
MIF |
|
Requirement | EnvironmentalOccurrence may have a related state transition. |
Rationale | Some events that aren't directly caused by a state transition might still have an association to a transition. There are two common situations where this occurs:
In the first case, the triggering action is usually some user or system decision, but not the actual state transition (because it hasn't happened yet - it's just being asked for. For example, when a user requests info to be posted to a patient's EHR (related state transition is to 'complete' an observation) In the second case, the state transition happened some time ago (possibly seconds, possibly days). A decision has been taken to ask another system to "action" that state transition. For example, "please fill this prescription". |
MIF |
|
Requirement | Trigger Events may have a number of different types of annotations |
Rationale | See rationales for individual annotations types |
Implementation |
Interations
Requirement | HL7 v3 specifications must be able to define each possible "exchange" of information including the structure and type of information to be sent, the circumstances in which it is sent and expectations on the receiver. |
Rationale | A single exchange is the lowest possible unit of actual interoperability. While an exchange is made up of multiple components, there is no interoperability without at least one successfully completed exchange. To have interoperability, the characteristics of that exchange must be fully defined and agreed to by both parties. |
MIF | mif-model-dynamic.xsd/Interaction |
Requirement | Each interaction must have a unique name |
Rationale | Interactions must be able to be referenced in human communication |
MIF |
|
Requirement | Each interaction may have an interaction type. |
Rationale | Interactions typically fall into one of a set of stereotypical behaviors. Each of these stereotypes have distinct expectations for the types of trigger events and receiver responsibilities associated with them. |
Methodology |
|
MIF |
|
Requirement | Each interaction must identify the type of event that causes the exchange defined by the interaction to occur. |
Rationale | The same set of data might be exchanged for many different purposes and in many different circumstances. Agreement on a specific reason for a given exchange is important to shared interpretation of the information. For example, a structure defining a prescription might be sent when asking for the prescription to be created in some central system, when asking a pharmacy to fill the prescription, or as a response to a query. The same data is sent, but the triggering event (and thus the semantic interpretation of the information and what internal business process should be invoked) is different. |
MIF | mif-model-dynamic.xsd/Interaction/invokingTriggerEvent |
Requirement | Each interaction must have a definition of the content allowed to be conveyed as part of the exchange defined by the interaction. |
Rationale | A key part of standardizing communication is standardizing the data content to be exchanged and how that data will be structured. Without knowledge of the data to be conveyed, interoperability cannot be achieved. |
Methodology | Refer to Bound Models |
MIF | mif-model-dynamic.xsd/Interaction/argumentMessage |
Requirement | Interactions must be able to define the communication flow expectations on a receiver of the exchange |
Rationale | Frequently in response to an interaction, one or more 'response' interactions are triggered. There can be multiple responses. For a simple, two-part example, a 'transaction' is not complete until both a request trigger event is and information is communication and it's confirm response is receiver. The confirm response is the 'receive responsibility'. These responsibilities are communicated by the sender and are intended to 'complete' a business function. In other cases, there is an expectation that an "event" will occur within the receiving system that will result in additional communications. |
Methodology |
|
MIF |
|
Receiver Responsibilities
Requirement | Each receiver responsibility must have a reason. |
Rationale | Indicates the conditions under which this receiver responsibility should be chosen. Should be mutually exclusive with the conditions of all other receiver responsibilities for this interaction. Also, the combined reasons for all receiver responsibilities should be complete. I.e. There should be no circumstance that doesn't fit into the reason of one and only one receiver responsibility. This set of conditions ensures that the allowed communication behavior of the receiver is fully defined. For example, one responsibility might be invoked if a request is accepted, another if the request is not accepted but an alternative is proposed, and a third responsibility invoked in all other circumstances. |
MIF |
|
Requirement | A receiver responsibility may have one or more 'response' interactions. |
Rationale | A common pattern of communications is to send some sort of response when a piece of information has been received. This type of receiver responsibility allows interactions to be chained together. Supports acknowledgements as well as query responses. |
MIF |
|
Requirement | A receiver responsibility may have one or more 'response' trigger events. |
Rationale | Some interactions may result in a defined "real world event" occurring in the receiving application. For example, if a request for fulfillment of an order is 'accepted', there may be a requirement that the receiver 'activate' a 'Promise' object. That trigger event would then fire all interactions having that state transition as the initiating trigger event |
MIF |
|
Requirement | Interactions may have a number of different types of annotations |
Rationale | See rationales for individual annotations types |
Implementation |
Application Roles
Requirement | There is a need to define groupings of exchanges that systems might choose to support |
Rationale | Applications that choose to implement random combinations of interactions will not interoperate. For example, a system that can send a query but cannot receive the response is useless. For true interoperability there needs to be a collection of interactions defined that a particular system can send and/or receive. That application would then be able to communicate with any system that supports the paired grouping.
Application roles serve many purposes:
|
MIF |
|
Requirement | Each application role must have a unique name |
Rationale | There's a need to reference interactions in human-to-human communication |
MIF |
|
Requirement | Each application role may have related application roles. |
Rationale | When defining conformance structures, it's useful to allow composition of common combinations into more complex structures. For example a "Pharmacy system" application role might be composed of "Prescription filler", "Dispense notifier", "Medication profile querier" and similar roles. |
Methodology | Two types of composition are defined:
|
MIF |
|
Requirement | Each application role may be either or both sending interactions and/or receiving interactions. |
Rationale | Application role is about the functional capability. Need to document for each role what the application is capable of receiving and sending. |
MIF |
|
Requirement | Each application role may either create or consume documents. |
Rationale | In addition to sending and receiving messages (services), applications may also create and consume documents, which don't have an associated dynamic model. This capability also needs to be bound into the definition of a system's characteristics. |
MIF |
|
Requirement | Interactions, Trigger Events, Application Roles and Structured Documents may have a number of different types of annotations |
Rationale | See rationales for individual annotations types |
Implementation |
Structured Documents
Requirement | HL7 v3 specifications need to support defining information structures without any accompanying dynamic model |
Rationale | Some standards do not involve any behavioral aspects. The definitions of any behavior are outside the scope of the standard. While this may reduce chances of interoperability, it does allow for increased flexibility on the usage of the standard |
MIF |
|
Requirement | Structured document definitions must have a unique name |
Rationale | Structured document definitions need to be referenced in human-to-human communication |
MIF |
|
Requirement | Structured documents must have defined information structures |
Rationale | Seeing as there's no dynamic model, the only thing left to standardize is the data content and structure. |
Methodology | Refer to Bound Models |
MIF |
|
Requirement | Interactions, Trigger Events, Application Roles and Structured Documents may have a number of different types of annotations |
Rationale | See rationales for individual annotations types |
Implementation |
Bound Models
Requirement | Static models need to be able to be combined at run-time |
Rationale | Sometimes static models need to be constructed in such a way that they have associations that point to variable "un-defined" content. Before the model can be used, these "stub" locations need to be resolved. For example, a model that defines the transport information for a message might be capable of conveying many types of messages. However, when referenced in a particular interaction, the specific message content needs to be defined |
Methodology | HL7 models can contain named stubs or "template parameters" [To do: insert reference]. These parameters are then bound to other static models when the static model is referenced in a document or interaction definition. |
MIF |
|
Future Requirements (not complete)
Note that HL7 is currently re-developing and replacing the current dynamic model methodolgy. Below are SOME of the requirements. Requirements are still being determined and documented as part of the HL7 Enterprise Architecture Framework Alpha implementation projects.
Future Requirement | Communicate conformance of receiver responsibilities. It is necessary to know which receiver responsibilities must happen (mandatory), should happen (required), may happen (optional), and must not happen (usually based on a previous elaboration of a receiver responsibility). |
Rationale | It is necessary to know which receiver responsibilities must happen (mandatory), should happen (required), may happen (optional), and must not happen (usually based on a previous elaboration of a receiver responsibility). |
MIF |
|