Stef et al,

In response to Stef's plea for others' opinions, I'd like to add my voice to 
Tom's concerns.

I certainly believe that the whole ISO process with respect to health 
informatics standards is deeply flawed. As Grahame implies with the datatypes 
standard, the process is politically driven and compromises in modelling, 
engineering, safety, implementability inevitably occur. The question is how 
significant are these compromises and what effect will they have on the 
evolution of e-health?

It is highly unlikely that we would have an ISO standard for "Health 
Informatics - Harmonized data types for information interchange" without the 
monumental effort of Grahame Grieve in producing and managing the draft. 
However, it is, first and foremost, an HL7 flavoured standard. The most recent 
draft I have seen is, according to its forward, "a shared document between 
Health Level Seven (HL7) and ISO". ISO 21090 is undoubtedly complex. One has to 
question the value of an international standard, if it is so complex that it 
has to be 'profiled' by different organisations before it can be used. By whom, 
for what purposes, and by what processes, will such profiling be managed?

ISO 21090 suffers some of the significant flaws that permeate much of HL7 
specifications. Tom has already cited the peculiar inheritance hierarchy 
amongst others. Another engineering flaw is the pervasive use of cryptic, often 
ad hoc enumerations. Even the names of the types wouldn't pass muster in most 
quality engineering schools. Names like ENP, HXIT, CO, EN, EN.TN, CD.CV, URG 
are simply inexcusable. Levels of indirection never aid readability, and lead 
to difficulty in implementation and testing.

It is not necessarily sensible to compare openEHR datatypes with ISO 21090. 
They are designed for different purposes. openEHR datatypes underpin openEHR's 
reference implementation and archetype object models for building electronic 
health record software and so can be augmented by these additional artefacts, 
as described below. The ISO datatypes should be able to stand on their own in a 
diverse range of implementation environments. This is a much harder task, and 
bumps up against fundamental principles of information exchange, whereby the 
assumptions of participating systems need to be carefully considered. 
Contraints and constraint mechanisms are pivotal here.

A datatype embodies the "agreed" set of values and operations pertaining to 
that type. If an item of received data "211414" has been denoted to be of type 
integer, then the receiving system "knows" how to process it, and will process 
it differently than if it had been denoted as a date ( AKA TS.DATE in 
HL7/ISO/DIS 21090 HI-HDTII ).  Healthcare includes a very rich vocabulary, and 
text-based value sets are common in information exchange. A datatype for coded 
text, say, needs to convey the agreed set of values of that type. Let's firstly 
consider values for "severity of adverse reaction to medication". Ideally, both 
a sending and a receiving system needs to agree on the set of values - and may 
behave sub-optimally if one system uses the set { "undetectable", "mild", 
"moderate" } and the other uses the set { "mild", "moderate", "severe", 
"extreme", "almost inevitably fatal" } , even if these values all came from the 
same terminology. In other words, the sending and receiving system are not 
actually using the same datatypes in this case.

How do we deal with this in real systems? The United Kingdom's Connecting for 
Health program has addressed this in their HL7 V3 - based models by carrying 
the constraint within the datatype - in the coding scheme's identifier. So 
rather than say the values come from some specific version of SNOMED CT, they 
constrain the values to a specific subset using a Refset Identifier. And this 
can be carried in instance data.

Now whilst ISO 21090 is capable of constraining text-based value sets, such 
constraints are often done by other means - particularly through conformance 
statements in non-computable documents, most notably HL7 CDA Implementation 
Guides. We are seeing plenty of this in the US, as a result of their Meaningful 
Use provisions. In these cases, the datatype does not necessarily carry the 
constraint. It almost invariably doesn't. This means that in such transactions, 
the receiving system has no way of knowing the true datatype - i.e. the set of 
values - for each such data item. The only way for such constraints to be known 
to the receiving system is through access to HL7 templates - thus violating THE 
principal tenet of HL7's RIM-based information exchange paradigm.

This leads on to one of William Goosen's favourite topics - that of Coded 
Ordinals. These have been introduced in ISO 21090 to meet the needs, often 
encountered in patient assessment forms, whereby  weights are given to 
descriptive phrases to indicate the scope of functionality a patient has to 
perform, say, activities of daily living (e.g.  Barthel Index). The weights can 
be used to derive an accumulated score for a collection of individual 
activities.  Unfortunately, ISO 21090 can't actually provide for this use case 
via the CO ( that's code for Coded Ordinal ) datatype, because it has no way of 
denoting the set of allowed values. Such a set might look like

[ { 0 , "unable"}, { 5, "needs help (verbal, physical, carrying aid" }, {10, 
"independent"}]

i.e. a set of pairs of weights and phrases. A coded ordinal only describes one 
value, not the set of permissable values! Now, of course it would be possible 
to specify these sorts of sets, and to publish them for use in clinical systems 
and information exchange. My point is that ISO 21090 doesn't support such a 
type and there currently is not a mechanism for this within HL7 - the primary 
standard for communicating clinical information. Even after all these years! 
I'd like to know how William, for one, hopes to solve this problem? Perhaps Ed 
Hammond has a solution in mind?

So I contend that ISO 21090 cannot solve the typing problem on it's own. Other 
components are required. And this questions (and always has questioned) the 
scope of an ISO standard.

One of the many beauties of openEHR is that it long ago recognised the need for 
a computable constraint mechanism that can help solve these problems. It not 
only recognised the need, but it has produced excellent specifications that 
marry datatypes, an information model, a constraint-based archetype object 
model, and a companion  syntax language(ADL) for archetype serialisation. And 
particularly to Tom Beale's credit, it did so through a well-engineered process 
that has produced a set of coherent, implementable artefacts for which the 
health informatics community should be immensely grateful. And it did so openly 
and for free to the community.

People who question the quality, safety, implementability, suitability of 
clinical information artefacts should never be characterised as merely "taking 
broadsides" at another organisation, whoever that may be. There are far too few 
people of ability and commitment for that . Their skills and commitment are 
sorely needed. The others can go off and sit in their committees to 
compromise/compromize and harmonise/harmonize.

- eric

On 2010-11-08, at 12:23 AM, Stef Verlinden wrote:

> It looks like we're getting to the heart of the matter here.....
> 
> What I really  would like to know from the others what their opinion's on 
> these subjects are?
> 
> If it indeed turns out to be true that Tom don't understand how datatypes, 
> RIM or data types are working, we, as the openEHR community, should ask him 
> to shut up. If not we should find better ways to get the message across...
> 
> 
> Cheers,
> 
> Stef
> 
> Op 7 nov 2010, om 12:12 heeft Grahame Grieve het volgende geschreven:
> 
>> hi Tom
>> 
> 
> .....
> 
>> 
>>> The context specific stuff is specific to HL7 only. It just doesn't apply 
>>> elsewhere.
>> 
>> not at all. And I'm surprised you still think this. HXIT is to do with 
>> capturing
>> and managing foreign data. As is some of the II stuff. It doesn't and won't
>> arise in an EHR system for internal data, but it will for imported data. So
>> where it does arise is not HL7 specific.
>> 
>> Flavors are a ISO 21090 thing. And optional - they aren't in the schema,
>> for instance.
>> 
>> Update mode is transactional. Almost everybody will profile it out.
>> 
> 
> ......
> 
>> 
>>> There is not a close correspondence between the 21090 idea of
>>> ?ANY? and the typical Any/Object or other root class of most
>>> object-oriented type systems ? this name clash would have to be resolved in 
>>> some way;
>> 
>> It appears I will have to keep repeating this until I am blue in the face.
>> It is not a name clash, nor does it (or should it) correspond to a root class
>> in any other system - it is it's own class. The fact you think this indicates
>> that you are totally confused as to what ISO 21090 is. (Hint: look at how you
>> modeled your own data types...)
>> 
> 
> .......
> 
>> 
>> 
>>> The modelling style seems to follow the strange HL7 obsession
>>> with non-object orientation, popularised in the RIM.
>> 
>> which indicates that you don't understand the RIM or the data types,
>> and how they differ.
>> 
>> Grahame
>> 
>> 


Reply via email to