Grahame Grieve wrote:
Hi Tom
The main difference architecturally is that there in openEHR there is a
reference model from which software and systems can be built.
This is not a difference; it's true of HL7 as well
I think people would have a hard time finding it - where is the
reference model from which you can build software? It's not the RIM as
we are told time and time again (I can pull a dozen quotes from all the
core RIM designers to say that the RIM is not a basis for software, only
generating other schemas - this has been practically religion for 10
years)... you could call the sum total of all the HMDs a "reference
model" I guess, since they are what software is based on, but that's
stretching the meaning of the term...anyway, it's a pretty clear
difference for all practical purposes.
In HL7, the data are instances of schemas that are
progressively refined from the RIM.
well, it doesn't have to be; and also, you could do this with archetypes
and/or templates, and it would have some use too.
I'm just saying how things work now, so that new people have some hope
of understanding. I doubt if it would have any use with archetypes /
templates though - the subtractive logic based on relational projections
just isn't a part of normal object modelling or openEHR.
In recent discussions with the
designers, they claim that the theory of DIMs, RMIMs etc is based on
"relational projections" on the RIM (i.e. that's the basis of attribute
"removal").
well, I can't speak for "the designers" (I'm spending some time with him
today on this subject ;-), but archetypes and HL7 models are the same thing.
I can interconvert between them. The only issues are syntactical differences
in things that are allowed in each language, and they are minor. Obvious
conclusion: they are the same thing.
That's a somewhat misleading statement. An archetype isn't a new model;
it's a statement about putting together pieces from an existing model.
An RMIM is a new model with respect to the model from which it was
derived - different classes, different attributes. That's the whole
point of the HL7 refinement method - to iteratively derive new schemas
from the RIM...you can't pick up an RMIM and say what configuration of
classes from another model you have, because you don't have classes from
another model, you have _modified_ classes from another model. I know
that some RIM people will then say that the classes aren't really
modified, the missing attributes are "projected out", which means the
new classes are indeed new classes - each one specifying a new
projection on a class in the preceding model. Which brings us to the
question of the quality of the original model (the RIM), as well as the
details of the refinement method as a way of specifying content models.
Some archetypes and RMIMs are trying to say the same thing however. Is
reliable machine conversion possible? The key point is that while
conversion between the formalisms of some part of an archetype and an
RMIM and vice versa may be possible, conversion between actual real
archetypes and real RMIMs is not the same thing, due to the reference
models involved. Conversions that might be considered:
a) existing openEHR or CEN archetypes -> RMIM "language" - based on the RIM?
b) existing RMIMs -> archetypes based on the RIM
c) existing RMIMs -> archetypes based on openEHR
a) might be possible, but seems hard, because the RIM lacks numerous
primitives present in the openEHR reference model; if it was achieved,
it would allow openEHR content to be communicated in an HL7v3 message
(although why incur all the pain of transformation at both ends, when
the information can just be sent in the normal way is beyond me -
sending it as an opaque payload would be easier and safer); b) may well
be doable, and I suspect is the transformation you have most likely
achieved already - this would allow archetyping tools to be used in
HL7, but still wouldn't provide a way for openEHR archetypes to be used
in HL7, due to the difference reference models; c) I cannot see being
possible because of the differences in reference models and also another
problem: it is hard to tell with RMIMs what was intended and what "had
to be done that way" due to the limited language available in the RIM.
Actually reverse-engineering the true intention of the modellers from an
RMIM in general will be hard, due to this effect, and it should not be
under-estimated. So c) is only likely to be doable my manual means, but
it certainly should be considered, because there is a goldmine of domain
thinking locked up in the RMIMs which needs to be shared by systems and
technologies outside of HL7v3 messages.
One of the things newcomers to this field have to do is have a very hard
look at the reference models involved, how they enable semantically rich
systems and how they provide business value; then they need to
understand the methodologies involved in actually building software, and
what the costs and benefits are.
- thomas beale