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

Difference between revisions of "PA Registry State Model"

From HL7Wiki
Jump to navigation Jump to search
 
(12 intermediate revisions by the same user not shown)
Line 1: Line 1:
 +
Return to [[PA_Interdependent_Registries]] project page
 +
 
=HL7 Administrative Registry Dynamic Model=
 
=HL7 Administrative Registry Dynamic Model=
  
The current HL7 V3 messaging standards for administrative registries are based on a (more or less) common dynamic model. It consists of three basic patterns:
+
== Registration vs. Registry Record ==
 +
 
 +
The events in a registry can be mapped to state changes in a '''Registration Act'''. Note that for consistency the Registration Act is located in a common Control Act wrapper while the content of the registry (identified person, patient, service delivery location, provider, identified organization) is a Role class defined in the content domain. Both the Registration Act and registry record (Role) can have "state". Current specifications do not clarify the relationship between Registration status and Registry Record status.
 +
 
 +
 
 +
== Currently Supported Registry Dynamic Model ==
 +
 
 +
The current HL7 V3 messaging standards for administrative registries are based on a (more or less) common dynamic model consisting of three basic patterns:
 
# '''Simple Notification'''
 
# '''Simple Notification'''
 
#* A ''Registry Informer'' sends information to one or more ''Registry Tracker'' application roles whenever a registry record is added or changed. The receivers have no stated responsibilities.
 
#* A ''Registry Informer'' sends information to one or more ''Registry Tracker'' application roles whenever a registry record is added or changed. The receivers have no stated responsibilities.
Line 12: Line 21:
 
#* A ''Registry Request Placer'' sends a request for action to a ''Registry Request Fulfiller'' application role that is responsible for accepting or rejecting the request and informing the requestor of the result or reason for rejection.
 
#* A ''Registry Request Placer'' sends a request for action to a ''Registry Request Fulfiller'' application role that is responsible for accepting or rejecting the request and informing the requestor of the result or reason for rejection.
 
#* The [http://www.hl7.org/v3ballot/html/domains/uvmi/editable/MFMI_RM700720UV.html Master File / Registry Request Control Act] RMIM describes the Registration Request
 
#* The [http://www.hl7.org/v3ballot/html/domains/uvmi/editable/MFMI_RM700720UV.html Master File / Registry Request Control Act] RMIM describes the Registration Request
#* The [http://www.hl7.org/v3ballot/html/domains/uvmi/editable/MFMI_RM700700UV.html Master File / Registry Event Notification] RMIM describes the response when the registration request is accepted
+
#* For Patient Administration registries:
#* For rejected request:
+
#** If the request is accepted the Registry Request Fulfiller returns a [http://www.hl7.org/v3ballot/html/domains/uvmi/editable/MFMI_RM700700UV.html Master File / Registry Event Notification]
#** Patient Administration registries return the original request with the reason for the rejection returned as a Detected Issue in the Master File / Reg Request Control Act,Role Subject wrapper
+
#** If the request is rejected the Registry Request Fulfiller returns the original request [http://www.hl7.org/v3ballot/html/domains/uvmi/editable/MFMI_RM700720UV.html Master File / Registry Request Control Act] with the reason for the rejection in the Detected Issue class
#** PersonnelManagement registries return a Registry Event Notification and indicate that the request was rejected in the Acknowledgement type code in the A [http://www.hl7.org/v3ballot/html/domains/uvci/editable/MCCI_RM000300UV.html Application Acknowledgement] transmission wrapper
+
#* For Personnel Management registries:
 +
#** The Registry Request Fulfiller returns a return a [http://www.hl7.org/v3ballot/html/domains/uvmi/editable/MFMI_RM700700UV.html Master File / Registry Event Notification] indicating whether the request was rejected or accepted using the Acknowledgement type code in the [http://www.hl7.org/v3ballot/html/domains/uvci/editable/MCCI_RM000300UV.html Application Acknowledgement] transmission wrapper
  
  
Management of a registry can be described as state changes in a '''Registration Act'''.
+
== Currently Supported Registration Events ==
  
 
+
As of 2010 the HL7 administrative registry domains include notification messages for the following registration events:
[http://www.hl7.org/v3ballot/html/domains/uvmi/editable/MFMI_RM700700UV.html Registry Event Notification RMIM]
 
== Simple Registry ==
 
 
 
As of 2010 the HL7 administrative registry domains only include notification messages for the following registration actions:
 
  
 
{| class="wikitable"
 
{| class="wikitable"
Line 51: Line 57:
  
 
The following diagram represents these actions as state transitions of a Registration Act.
 
The following diagram represents these actions as state transitions of a Registration Act.
 +
  
 
[[Image:RegistryActStateModel.gif]]
 
[[Image:RegistryActStateModel.gif]]
  
  
== Manage Records in Registry ==
+
== Additional Registration Events to Consider ==
  
A more comprehensive description of registry behavior would include the ability to set records in the registry as either temporarily or permanantly inactive. Here are some possible events to describe that:
+
A more comprehensive description of registry behavior would include the ability to set records in the registry as either temporarily or permanantly inactive. Here is that more comprehensive set of registration events:
  
 
{| class="wikitable"
 
{| class="wikitable"
Line 71: Line 78:
 
| complete
 
| complete
 
| active / completed
 
| active / completed
| active record is inactivated
+
| active record is inactivated (closed)
 +
|-
 +
| revise
 +
| completed / completed
 +
| inactive (closed) record is revsied
 
|-
 
|-
 
| reactivate
 
| reactivate
 
| completed / active
 
| completed / active
| inactivated record is reactivated
+
| inactivated (closed) record is reactivated
 
|-
 
|-
 
| revise  
 
| revise  
Line 92: Line 103:
 
| suspended / completed
 
| suspended / completed
 
| temporarily inactivated record is made permanatly inactive
 
| temporarily inactivated record is made permanatly inactive
|-
 
 
|-
 
|-
 
| revise
 
| revise
 
| suspended / suspended
 
| suspended / suspended
 
| temporariy inactivated record is revised
 
| temporariy inactivated record is revised
 
+
|-
| complete
 
 
| complete
 
| complete
 +
| null / complete
 +
| inactive (closed) record is added to the registry
 
|-
 
|-
 
| nullify  
 
| nullify  
Line 110: Line 121:
 
|}
 
|}
  
[[Image:RegistryActStateModelAddlStates.gif]]
 
  
== Registry with verification process ==
+
The following diagram represents these actions as state transitions of a Registration Act.
 +
 
  
The following diagram imagines a more complex state machine for a registry.
+
[[Image:RegistryActStateModelAddlStates.gif]]
  
[[Image:RegistryActStateModelFuture.gif]]
 
  
 +
== Registry with Verification Events ==
  
Envision a registry that follows a two step process for adding records to the official registry. Each candidate registration must pass certain business processes such as duplicate checking or credentials verification before it is processed into the official registry. The '''new, held, cancelled''' states can represent this:  
+
One could envision a more complex registry that employs a two step process for adding records. Each candidate registration would be subjected to business processes such as duplicate checking or credentials verification before it is processed into the official registry. The '''new, held, cancelled''' states can represent this:  
  
 
{| class="wikitable"
 
{| class="wikitable"
Line 133: Line 144:
 
| activate
 
| activate
 
| new / active
 
| new / active
| pending record satisfied business rules and is added as an active record to the registry
+
| pending record satisfis business rules and is added as an active record to the registry
 
|-
 
|-
 
| hold
 
| hold
Line 141: Line 152:
 
| release
 
| release
 
| held /new
 
| held /new
| exceptional processing completed and pending record returned to normal vetting process
+
| exceptional processing is completed and pending record returned to normal vetting process
 
|-
 
|-
 
| cancel
 
| cancel
Line 157: Line 168:
  
  
| active
+
The following diagram represents this more complex state machine for a registry.
| null / active
+
 
| active record added to registry
+
 
|-
+
[[Image:RegistryActStateModelFuture.gif]]
|revise
+
 
| active / active
+
 
| active record revised in registry
+
== Questions ==
|-
+
 
|nullify
+
If the state transitions listed above reflect real events in (some) registry then we must decide which state transitions represent:
| normal / nullify
+
* Information that should be the subject of a notification message
| erroneous record in registry nullified
+
* A state transition could be requested by an external application
|-
+
 
|obsolete
+
[[Category:Interdependent_Registries]]
| normal / obsolete
 
| duplicate record in registry registry replaced by newer record
 
|}
 

Latest revision as of 17:56, 21 December 2010

Return to PA_Interdependent_Registries project page

HL7 Administrative Registry Dynamic Model

Registration vs. Registry Record

The events in a registry can be mapped to state changes in a Registration Act. Note that for consistency the Registration Act is located in a common Control Act wrapper while the content of the registry (identified person, patient, service delivery location, provider, identified organization) is a Role class defined in the content domain. Both the Registration Act and registry record (Role) can have "state". Current specifications do not clarify the relationship between Registration status and Registry Record status.


Currently Supported Registry Dynamic Model

The current HL7 V3 messaging standards for administrative registries are based on a (more or less) common dynamic model consisting of three basic patterns:

  1. Simple Notification
    • A Registry Informer sends information to one or more Registry Tracker application roles whenever a registry record is added or changed. The receivers have no stated responsibilities.
    • The Master File / Registry Event Notification RMIM describes the Registration Event for this interaction.
  2. Query and Response
    • A Registry Query Placer sends a set of parameters to a Registry Query Fulfiller application role that is responsible for returning all records that match the parameters.
    • The Query by Parameter control act RMIM describes the query placement
    • The Registry Query Response RMIM describes how the matching Registration Events are returned
  3. Request and Fulfillment


Currently Supported Registration Events

As of 2010 the HL7 administrative registry domains include notification messages for the following registration events:

State Transition From / To Business Event
activate null / active active record added to registry
revise active / active active record revised in registry
nullify normal / nullify erroneous record in registry nullified
obsolete normal / obsolete duplicate record in registry registry replaced by newer record


The following diagram represents these actions as state transitions of a Registration Act.


RegistryActStateModel.gif


Additional Registration Events to Consider

A more comprehensive description of registry behavior would include the ability to set records in the registry as either temporarily or permanantly inactive. Here is that more comprehensive set of registration events:

State Transition From / To Business Event
activate null / active active record added to registry
complete active / completed active record is inactivated (closed)
revise completed / completed inactive (closed) record is revsied
reactivate completed / active inactivated (closed) record is reactivated
revise active / active active record revised in registry
suspend active / suspended active record is temporarily inactivated
resume suspended /active temporarily inactivated reacord is made active again
complete suspended / completed temporarily inactivated record is made permanatly inactive
revise suspended / suspended temporariy inactivated record is revised
complete null / complete inactive (closed) record is added to the registry
nullify normal / nullify erroneous record in registry nullified
obsolete normal / obsolete duplicate record in registry registry replaced by newer record


The following diagram represents these actions as state transitions of a Registration Act.


RegistryActStateModelAddlStates.gif


Registry with Verification Events

One could envision a more complex registry that employs a two step process for adding records. Each candidate registration would be subjected to business processes such as duplicate checking or credentials verification before it is processed into the official registry. The new, held, cancelled states can represent this:

State Transition From / To Business Event
create null / new pending record is submited to registry
activate new / active pending record satisfis business rules and is added as an active record to the registry
hold new / held pending record is pulled back from vetting process for exceptional processing
release held /new exceptional processing is completed and pending record returned to normal vetting process
cancel new / cancelled pending record processing is stopped because the record failed the vetting process
cancel held / cancelled pending record rejected during exceptional processing
revise new / new pending record is revised


The following diagram represents this more complex state machine for a registry.


RegistryActStateModelFuture.gif


Questions

If the state transitions listed above reflect real events in (some) registry then we must decide which state transitions represent:

  • Information that should be the subject of a notification message
  • A state transition could be requested by an external application