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

UpdateTime proposal

From HL7Wiki
Jump to navigation Jump to search

Introduction

There is a requirement to be able to manage distributed updates between intermittently connected systems using timestamps to identify the most recently updated version of the information conveyed.

It is recognised that this approach is problematic because of the need to synchronise system clocks across systems. However it is an approach that is commonly used, and so should be supported by HL7 communication specifications.

Use cases

Supporting distributed changes to demographic information, where the patient address, telephone numbers and registered physicians can be changed independantly in different locations and computer systems.


Existing HL7 solutions

This timestamp information may be modelled as the controlAct.author.time.high for the most recent control act that applies to the information item in question.

One approach is to say that a separate communication (message / SOA method / Document) should be used for each change to an independent piece of information. This is impractical.

An alternate approach is to say that the controlActs should be conveyed with a "subject" actRelationship off the focal act of the payload. The datatypes R2 HIXT.controlActRef would be used to point from an HL7 attribute (such as an address or telephone number) to the controlAct that triggered the most recent change or verification of that information.

Proposed Solution

Add a new updateMode 'code' of "V" (Verified) to be used in situations where the data is unchanged but has been actively confirmed by the author.

Add an updateTime property to all attributes (via ANY) and associations (via InfrastructureRoot) as a 'parallel' to updateMode with a constraint that it must be identical to the ControlAct.author.time of the ControlAct resolved to by ControlActIdRef, if any.

Motion 20070803: MnM endorses the above approach and directs Charlie McKay to submit the necessary datatype change and harmonization proposal Moved: Charlie/Lee - 6/0/0


The following is an example of the use of updateTime in comparison to the controlAct.author.time method using a small healthcare agent update message:

ControlAct.author.time approach:

<AgentRole>
	<component>
		<agentControlAct>
			<id root="12712829-7ED7-76AD-13ED-125621EDA72C"/>
			<author>
				<time value="200603121432"/>
				<agent nullFlavor="NI"/>
			</author>
		</agentControlAct>
	</component>
	<id root="ADFEE4FB-1375-7443-8755-F43ED798BC62"/>
	<code codeSystem="2.16.840.1.113883.2.1.6.18.53" code="04" displayName="Retinal grader"/>
	<agentPerson>
		<id root="2.16.840.1.113883.2.1.4.7.12" extension="CHES02"/>
		<name>
			John Cholmondly-Warner
			<controlActIdRef root="12712829-7ED7-76AD-13ED-125621EDA72C"/>
		</name>
	</agentPerson>
</AgentRole>

updateTime approach:

<AgentRole>
	<id root="ADFEE4FB-1375-7443-8755-F43ED798BC62"/>
	<code codeSystem="2.16.840.1.113883.2.1.6.18.53" code="04" displayName="Retinal grader"/>
	<agentPerson>
		<id root="2.16.840.1.113883.2.1.4.7.12" extension="CHES02"/>
		<name updateTime="20030809123412">
			John Cholmondly-Warner
		</name>
	</agentPerson>
</AgentRole>