Sources of information on HL7 EHR/OpenEHR

Gerard,
Interesting you raise this topic as it is becoming an interest of mine to start investigating the use of openEHR instructions to support the documentation requirements of clinical workflows such as medication prescriptions, dispense and administration, and referrals. The existing work of ContSys could certainly assist in this but being a techo, I need some clinicians to assist in developing these requirements and my Ocean clinician colleagues are already over extended. As you know, Ocean has and continues to develop the tools to support a simulation of these kind of clinical workflow scenarios and are looking for ways to gather more and varied clinical content to populate and test the OceanEHR suite. Are there people interested in providing clinical scenarios and data to assist in the requirements and content gathering process to be used in clinical workflow simulations? How can we initiate and progress this kind of activity and investigation?

Regards

Heath

Heath Frankel
Product Development Manager
Ocean Informatics

Ground Floor, 64 Hindmarsh Square
Adelaide, SA, 5000
Australia

ph: +61 (0)8 8223 3075
fax: +61 (0)8 8223 2570
mb: +61 (0)412 030 741
email: heath.frankel@oceaninformatics.biz

Hello Heath,

As part of an Australian RACGP/GPCG informatics project, i've made
tentative steps into generating a resource for clinicians in migrating
traditional paper-based clinical guidelines to their equivalent within
an EHR framework; openEHR being the type example. The web resource is an
evolving project in that I acknowledge that I've bitten off too much to
chew - had hoped to generate both the archetypes and templates for
asthma management !! Anyways. This resource which is very much open to
comment, refinement and collaboration is available at:

http://www.adelaide.edu.au/health/gp/units/medic-gp/openehr/

Being semi-techo and straddling the clinical domain, i've used the
Australian Asthma Management Handbook for primary care as the type
example. In respect to clinical workflows for asthma management, you may
want to look at the following link which aims to abstract clinical
asthma workflows from the handbook:

http://www.adelaide.edu.au/health/gp/units/medic-gp/openehr/asthma/

I very much believe that a generic set of archetypes would straddle many
  clinical activities and would act to bind management motifs across
disease states (or alternate considerations). Thus very keen to see and
add to this domain of knowledge ! Thanks additionally to Gerard for
raising CEN/TC251 - interesting.

Regards,

Andre Duszynski.

Andre,
Thanks for these links, this resource will be useful in the future.
However, it is significantly more in-depth then I am looking for at the
moment. It is probably a terminology issue also when I talked about
clinical workflow, perhaps I should not have used this term as I wasn't
talking about guidelines. Although I have an interest in guidelines my
current issue is the day-to-day work of a clinician prescribing medication
and writing referrals, and following the state transitions of these
instructions through to conclusion by recording them in the EHR. It is
mainly the generation of clinical scenarios and content that I am seeking
assistance to allow me to simulate the scenarios using the Ocean openEHR
suite of tools to test the application of openEHR in the process of
medication orders to Pharmacies, and clinical and diagnostic referrals for
starters.

Once we get these day to day clinical processes supported then we can look
at the more complex work flows like guidelines and care plans. Do you have
any clinical scenarios and sample clinical content for your Asthma
guidelines?

Hope this clarifies.

Heath

Grahame Grieve wrote:


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.


The "subtractive logic" as you call it, is exactly what cADL is.

No, it’s not - this is a fundamental misunderstanding. The subtractive logic of the HL7v3 methodology is the ability of one model in the chain (say an RMIM) to remove attributes in class A that were defined in the same class A in the predecessor model (say a DIM). The models are defined, starting with the RIM, loaded with attributes that can be deleted (projected out) in this way. In the cADL formalism (which is mathematically based on F-logic), you cannot do any such thing. A cADL text simply says how instances from an existing object model fit together to create some particular lump of content.It is like the LEGO instruction sheet that says how to put LEGO blocks together; but you cannot modify the LEGO blocks themselves. As a consequence, the object model (the openEHR reference model) is defined in the normal way, rather than containing every possible attribute so that they can be later masked out.

It's true that it's not part of normal object modelling - and that's
a deficiency of normal object modelling.

This isn’t a deficiency in object modelling, because it is not part of the object model; cADL is mathematically a query or configuration of object model instances, but is not itself an object model. A good way to think about a cADL statement is like a piece of cardboard with a particular shape cut out of the centre; then you pass this over a database fully of various cardboard shapes; those that fit in the cADL hole are “matched” - this is how to understand a cADL statement as a query.

So you invent cADL and
Hl7 invents Static Model Diagrams, but they both do the same thing,
and in this regard OpenEHR and HL7 do not follow normal object
modelling.

No, that’s not true. The object modelling part of openEHR is quite clear - it is the reference model, service models and so on (see http://svn.openehr.org/specification/TRUNK/publishing/architecture/computable/UML/uml_start_view.html). Whether this is a “good” object model is open to debate, but it does follow normal precepts of object modelling, including abstraction, specialisation and extension. It doesn’t contain all possible attributes in the most abstract classes, as the HL7v3 RIM does, because its mode of use is not part of a subtractive methodology. The two models can be compared side-by-side and the differences are clear; similarly, the differences in the two methods for creating content models are quite demonstrable. The differences are what makes HL7v3 so difficult to use (also easily demonstrable).


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.


it's not a misleading statement. I am aware that lot's of HL7 people are
making misleading statements about HL7 modelling - but they are mislead
themselves, and they are generally open to being educated.

if I can interconvert, therefore it's true that the 2 formats are
presentations of the same concept. ADL is a more natural fit, and
I think that in the long term, most people would prefer to develop
in the tools that arise out of the ADL constructs. But they are
still the same concept

but there is still the key difference to do with attribute deletions. It could be faked by including a lot of invariants in an archetype to force all such attributes to 0, Void whatever, but we cannot get away from the fact that this is an ugly workaround, nor that the HL7 RIM had to be built in the first place to support it (by containing numerous attributes that only relate to some instances of some subclasses). And the other problem with this is that two distinct RMIMs each containing (say) a clone of the Observation class from the RIM could delete different combinations of attributes (i.e. create 2 new projections on the RIM Observation class); multiply this up to N RMIMs doing the same thing, and M classes. None of this can happen in openEHR.

The reason I want to make this clear is simply that potential and actual users of both approaches need to understand what the approaches represent, what the consequences are - and why they are different for software. In openEHR, there is only one schema, forever - that of the reference model.

Believe me, if interconversion was easy, we would have done it years ago (when we did in fact try, in concert with senior HL7 people). What you are now able to do is a conversion between formalisms (or parts thereof; RMIMs etc don’t have a place to put the meta-data, archetype terminology or code-bindings), which is not the same as a conversion between artifacts. It will be great if the ADL formalism can be used more widely, but please don’t imply that a) archetypes and RMIMs now seamlessly interconvert or b) that the methods are really the same in HL7 and openEHR. This will just confuse people.


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.


agree that automated conversion between reference models is not (yet)
possible, and agree that the key difference is in the reference models.
This is something we all need to work on. At least we have made
major progress with data types.

the problem of overuse of coded attributes in HL7 is what killed this kind of effort the last time it was tried - the HL7 people could not produce reliable rules as to when some value went into Act.code and when it went into Act.code.text, and so on. The combinatorial problem quickly grew out of hand due to the number of coded attributes on Act and Act_relationship. I an not saying “don’t try”, just pointing out the difficulties…

I suggest as an opening gambit regarding how to progress this that the
OpenEHR reference model corresponds more closely to the HL7 domain models
than to the RIM, and that's the useful point to pursue genuine
interoperability.

The comparison I have made recently has the following equivalence:

  • openEHR data types and support model ----- HL7 data types
  • openEHR data structures ----- (nothing)
  • openEHR Common IM (~8 patterns) + Demographic model ----- RIM (~2-3 patterns + left hand side)
  • openEHR EHR IM ----- some mixture of DIMs from patient care, clinical statement pattern, …
    I agree with you about the importance of the DIMs - which I had previously under-estimated (and I suspect some HL7 people underestimate). My worry with all of the HL7 models is: how much was modelled the way it was because of the limited language of the RIM, and how much was intended to be exactly that way?

Anyway, I think we will be all very interested in the progress you make on this front.

  • thomas

But.
-1-
The HL7 RIM is a reference model for any sentence.
The EHRcom reference model defines any document.
The former will be more difficult to implement generally by writing generic
software, because sentences can express very many nuances of trillions of things.
The latter is more easy to implement. The model for any generic document is only
a limited amount of classes and structural codes.

Perhaps the answer is that the reference models are not equivalent. The openEHR
reference model is equivalent to the HL7 DIMs. The fact that the HL7 DIM's are
based on a metamodel with a structural code pattern is both a strength and a
weakness when compared with the OpenEHR reference model, which is not based on
a seemantic metamodel, only on a technical metamodel (MOF). So we
should not compare reference models, we should compare the openEHR reference
model with the HL7 Domain Models

-2-
The HL7v3 method, using the RIM as template for further developments, produces
R-MIMs in a not-computable way.

they are computable, but not compatible with each other in a computible fashion.

Each R-MIM generates an unique xml-schema needing unique software.

well, I will keep saying this until everyone listens:
* R-MIM's need not be treated this way
* Archetypes can be treated this way.

Each approach has advantages. HL7 chose one, OpenEHR chose the other.
Full analysis suggests that HL7 should change on this issue, we are
considering this.

-3-
Using the Message paradigm, a community of healthcare providers, together with
the vendors, produce a series of XML-schema's for a clinical domain.
In the Archetype (or Two Level Model) paradigm only healthcare providers meet to
produce the archetypes/templates. All vendors have to implement one relatively
simple and stable XML-scheme based on the EHRcom reference model.

Implementing a reference model is more costly than implementing a few messages
with specific models. Implementing a lot of messages with specific models is
more costly than implementing a reference model. The structural code pattern
allows HL7 users to choose either approach, but this has not proved very
successful, partly because the nominated reference model is actually the
metamodel.

-4-
HL7v3 is based on the philosophy that only the common information model is used
in the exchange structure. It is system agnostic. It is not impacting the
proprietary components of the communicating systems.
EHRcom impacts one or more components is EHR-systems in order to be able to reap
the benefits of this standard. The full deployment of EHRcom needs a new layer
in EHR-systems. One layer that conditions the archetypes and accompanying data
such that it provides a uniform interface with the other EHR-SYSTEM components
like the persistence layer, the presentation layer and the business logic layer.
(This is why the CEN/tc251 HISA standard is important next to EN13606 EHRcom)

so this is why they have different scope. But the scopes very clearly have a
large overlap

-5-
EHRcom is an European standard (and will become an ISO standard as well)
European standards play a reserved role in the European Market.
Only European standards (or equivalent standards) can be used in legislation in
Europe and its Member States.
Several European Directives regulate this in the European Economic system.

In view of the first four topics mentioned above, I don't think HL7v3 messages
and EHRcom can be considered equivalent.

they are not the same. But the focus clearly overlaps.

In our game of 'EHR-chess' you will not be surprised to learn that my next move is:
*/CEN/tc251 EN13606 EHRcom (openEHR) deserves to be considered for worldwide
patient safe communication between EHR's and EHR-systems./*
It is a new exciting paradigm.

I could respond with: HL7 V3 is the primary contender for world wide
communication between all health systems, including EHR's.

But that's not what I'm here for, we cannot afford to compete and confront.
Instead, my move is about stepping in the direction towards this statement:

  The HL7/CEN healthcare standard provides a solid base for everyone who
  wishes to communicate and manage information in healthcare.

ok. my move:

If we work together (i.e. our different focuses overlap with common engineering
and semantics support, and we can use each others content models), this will be
a net benefit to everyone. For instance, I note that OpenEHR does not include
general business process / orchestration models, and you really need to
consider this before systems can usefully communicate. This is a core interest
of HL7. But OpenEHR/13606 have a focus of managing persisted information - everyone
has to do this, and HL7 is not good here. So, it's good to work together
for everyone's benefit. We can do this if we share:

* reference models
* constraint pattern expressions
* wire formats

So, we can move ahead in each of these areas:
* I have a data types ITS for HL7 V3 which is well cross-mapped to the OpenEHR
   data types. The differences are mainly due to requirements differences, and
   we can use this as a base to move to a single model that everyone shares.
   I am starting to work on the reference model. (There is a joint working party
   already working the reference model who have made significant progress, some
   of the contributers to this are on this list)
* I can interconvert between R-MIM's and ADL diagrams. I have code for this.
   To complete the work, some small changes are needed in ADL and HL7 constraint
   methodology. I have been proposing changes here at Boca Raton for the HL7
   methodology, and I have been discussing the changes required in ADL with Tom.
   I believe that they make sense in their own right, not just justified by
   harmonization.
   And in Eclipse, we will be working on having a single editor for both
   archetypes and HL7 models
* The HL7 wire format is being reexamined. For technical reasons, a wire format
   that closely resembles the OpenEHR wire format is emerging as a front runner.
   (i.e. a single schema at the domain level). This is not an established decision,
   it's something that is still being worked on

So, in each of the 3 areas, fundamental progress is being made, and, while not
complete, progress is accelerating, and being taken seriously by everyone. I
look forward to advancing this even further in Geneva in a few weeks time.

Last point: the most important thing to understand is that both OpenEHR and
HL7 are *very closely* aligned in goals and methods. There is some engineering
differences. I wish that important clever people who should know better would
stop claiming these differences are significant, and start talking about how
these things are nearly the same after all. Then we can accept that both are
flawed, and have useful discussions about how to move forward together. (and
pigs will fly, I guess, in some cases)

Grahame

The "subtractive logic" as you call it, is exactly what cADL is.
  

No, it's not - this is a fundamental misunderstanding. The subtractive logic of
the HL7v3 methodology is the ability of one model in the chain (say an RMIM) to
remove attributes in class A that were defined in the same class A in the
predecessor model (say a DIM).

In cADL, I can say something like this:

   attributeName cardinality matches {0} matches {*}

this is a statement that attributeName cannot be valued in this model.
But attributeName must exist in the reference model, and it is superfluous
to say this if some other archetype on which you are based has already said
this. And you cannot add or define attributeName in cADL

In an RMIM, you make a statement that attributeName cannot be valued
in this model. AttributeName must exist in the reference model, and it
is superfluous to say this if some other RMIM or DMIM on which you are
based has already said this. And you cannot add or define attributeName in
DMIMs or R-MIMS

If you want, you can interpret the statement, either in an archetype or
an RMIM, as a definition of a new class which has had that value
"subtracted", as HL7 does with RMIM's. This may or may not be a good
idea, but doesn't change the fact that what is going on in concept is
no different

> The models are defined, starting with the RIM,

loaded with attributes that can be deleted (projected out) in this way.

you've been listening to someone who's trying too hard to pretend these
things are not the same too much; ignore him. In spite of the fact that
I will use "projection" below, I think it's an extremely unhelpful term.

This isn't a deficiency in object modelling, because it is not part of the
object model

I believe that it should be; it's certainly part of Bertrand Meyer's scope
for an object model: design by contract.

So you invent cADL and
Hl7 invents Static Model Diagrams, but they both do the same thing,
and in this regard OpenEHR and HL7 do not follow normal object
modelling.

You objected to this. And yes, The reference models for both are normal
object models. But the idea that the value of the construct is found in
constraint definitions on the construct is not normal practice. I believe
it's the only game in our town, but it is not normal practice. I think
it should be.

but there is still the key difference to do with attribute deletions. It could
be faked by including a lot of invariants in an archetype to force all such
attributes to 0

what's fake about that?
We could talk about whether it is good that HL7 constraint statements implicitly
prohibit anything not mentioned - but this is a policy, it doesn't really
bear relevance on the question of the concepts

And the other problem with this is that two
distinct RMIMs each containing (say) a clone of the Observation class from the
RIM could delete different combinations of attributes (i.e. create 2 new
projections on the RIM Observation class); multiply this up to N RMIMs doing the
same thing, and M classes. None of this can happen in openEHR.

really? So I cannot make cADL statements that make different constraints on
a reference model class in different archetypes (or even the same one)? Of course
this is how things work. If I chose to treat an archetype as a "projection" - which
I could - then this might be a problem. If I chose not to treat an RMIM is a
"projection", then it's not a problem.

I'm going to keep saying this until everyone listens: the difference is not
in what is being done, it's in how the outcome is treated.

Believe me, if interconversion was easy, we would have done it years ago (when
we did in fact try, in concert with senior HL7 people). What you are now able to
do is a conversion between formalisms (or parts thereof; RMIMs etc don't have a
place to put the meta-data, archetype terminology or code-bindings), which is
not the same as a conversion between artifacts. It will be great if the ADL
formalism can be used more widely, but please don't imply that a) archetypes and
RMIMs now seamlessly interconvert or b) that the methods are really the same in
HL7 and openEHR. This will just confuse people.

the methods are the same, the perception is different. Agree that RMIM's
are missing some things. They can - and will - be changed.

But yes, I don't (yet) convert between reference models. I don't want to
imply something different, but the language you have chosen to use is
confusing. what's an "archetype"? Is it an ADL statement against any
reference model, or an ADL statement against the openEHR reference model?
Please advise me how to describe things so they aren't confusing.

the problem of overuse of coded attributes in HL7 is what killed this kind of
effort the last time it was tried - the HL7 people could not produce reliable
rules as to when some value went into Act.code and when it went into
Act.code.text, and so on. The combinatorial problem quickly grew out of hand due
to the number of coded attributes on Act and Act_relationship. I an not saying
"don't try", just pointing out the difficulties...

sure. If it was easy, where would the challenge be?
And I agree that the structures is going to be one of the more interesting challenge.

Grahame

Grahame Grieve wrote:

The "subtractive logic" as you call it, is exactly what cADL is.
  

No, it's not - this is a fundamental misunderstanding. The subtractive logic of
the HL7v3 methodology is the ability of one model in the chain (say an RMIM) to
remove attributes in class A that were defined in the same class A in the
predecessor model (say a DIM).
    
In cADL, I can say something like this:

   attributeName cardinality matches {0} matches {*}
  

Grahame,

you can only do this if the reference model already says that the
cardinality (which is only for container types by the way) is
0..something. You can't say and attribute value is absent unless the
reference model already allows that.

this is a statement that attributeName cannot be valued in this model.
But attributeName must exist in the reference model, and it is superfluous
to say this if some other archetype on which you are based has already said
this. And you cannot add or define attributeName in cADL
  

no, that's not right - the attributeName of course exists in the RM, but
if its cardinality is 0..1 or 0..*, clearly it is allowable for there to
be no value in the data. cADL statements are statements about objects,
i.e. instances, not models.

In an RMIM, you make a statement that attributeName cannot be valued
in this model. AttributeName must exist in the reference model, and it
is superfluous to say this if some other RMIM or DMIM on which you are
based has already said this. And you cannot add or define attributeName in
DMIMs or R-MIMS

If you want, you can interpret the statement, either in an archetype or
an RMIM, as a definition of a new class which has had that value
"subtracted", as HL7 does with RMIM's. This may or may not be a good
idea, but doesn't change the fact that what is going on in concept is
no different
  

see above. There are no new classes of any kind in ADL archetypes, nor
any subtractions, additions or any other modifications to the reference
model, because archetypes are not saying anything about models, or
classes, they only make statements about instances.

> The models are defined, starting with the RIM,
  

loaded with attributes that can be deleted (projected out) in this way.
    
you've been listening to someone who's trying too hard to pretend these
things are not the same too much; ignore him. In spite of the fact that
I will use "projection" below, I think it's an extremely unhelpful term.
  

well, he's the most vocal advocate/defender/architect of the RIM, and
seems to represent HL7 on the matter...and that's how he describes the
theory behind the RIM.

  

This isn't a deficiency in object modelling, because it is not part of the
object model
    
I believe that it should be; it's certainly part of Bertrand Meyer's scope
for an object model: design by contract.
  

that is something else entirely - DbC statements like in Eiffel and OCL
are statements attached to models, defining or modifying their
semantics. Archetypes don't add anything to the model, they say how its
instances should be used.

  

So you invent cADL and
Hl7 invents Static Model Diagrams, but they both do the same thing,
and in this regard OpenEHR and HL7 do not follow normal object
modelling.
      
You objected to this. And yes, The reference models for both are normal
object models.

well, I don't think many people would agree,with respect to HL7 - I have
numerous reports and references to that effect over the years. And they
are right: no-one builds object models by including all possible
attributes in the most abstract classes so that they can be stripped out
in "derived" models - there is not one paper, textbook or other
published source that says to do this, and there are many that show why
it should not be done. I will write a cheque for £100 to anyone who can
find one that anyone has heard of (not published by HL7 obviously),
describing why an object model should be built this way.

But the idea that the value of the construct is found in
constraint definitions on the construct is not normal practice. I believe
it's the only game in our town, but it is not normal practice. I think
it should be.

well constraints on models have been normal since Djikstra and others
invented the concepts; it's a pity that only languages like Z, Eiffel
and a few others have incorporated them. In fact, I think we should
consider it an aberration that the other programming languages have
failed to do something so basic so far.... But now Java has the JML
effort, and C# will finally get design by contract. But we need to be
careful in our understanding - these contracts are constraints on the
reference model; there is no point trying to express domain specific
constraints (i.e. business rules) on instances as contracts, because a)
we don't want that stuff built into the software and b) there are
different sets of constraints depending on the particularities; they
have to be separated from the object model and encapsulated each on
their own.

I made some points about this difference some years ago....see
http://www.deepthought.com.au/it/ocl_review.html

And the other problem with this is that two
distinct RMIMs each containing (say) a clone of the Observation class from the
RIM could delete different combinations of attributes (i.e. create 2 new
projections on the RIM Observation class); multiply this up to N RMIMs doing the
same thing, and M classes. None of this can happen in openEHR.
    
really? So I cannot make cADL statements that make different constraints on
a reference model class in different archetypes (or even the same one)? Of course
this is how things work.

yes you can, naturally...but since cADL is not defining any classes, or
saying anything about the reference model, it's not the same thing - 2
archetype models are just like 2 LEGO instruction sheets - they give 2
different ways to put the LEGO pieces together; they don't invent or
modify the LEGO pieces.

If I chose to treat an archetype as a "projection" - which
I could - then this might be a problem. If I chose not to treat an RMIM is a
"projection", then it's not a problem.
  

but - an archetype isn't, and an RMIM is....these are both facts - they
are in the formal expressions....

I'm going to keep saying this until everyone listens: the difference is not
in what is being done, it's in how the outcome is treated.

And I am going to keep repeating: two different things are being done
here: a) constraining instances (archetypes) and b) creating new schemas
in terms of projections of existing classes (xIMs). There may well be
practical solutions to connecting them, but establishing such a solution
doesn't change the underlying theory of the two approaches; and neither
should we - the theories are clear.

Believe me, if interconversion was easy, we would have done it years ago (when
we did in fact try, in concert with senior HL7 people). What you are now able to
do is a conversion between formalisms (or parts thereof; RMIMs etc don't have a
place to put the meta-data, archetype terminology or code-bindings), which is
not the same as a conversion between artifacts. It will be great if the ADL
formalism can be used more widely, but please don't imply that a) archetypes and
RMIMs now seamlessly interconvert or b) that the methods are really the same in
HL7 and openEHR. This will just confuse people.
    
the methods are the same, the perception is different. Agree that RMIM's
are missing some things. They can - and will - be changed.
  

see above ....

But yes, I don't (yet) convert between reference models. I don't want to
imply something different, but the language you have chosen to use is
confusing. what's an "archetype"? Is it an ADL statement against any
reference model, or an ADL statement against the openEHR reference model?
Please advise me how to describe things so they aren't confusing.
  

I accept any criticism of the above sort - I know we have to find better
ways of explaining things. To answer your question:
* an archetype is a set of statements constraining the instances of a
reference (object) model to a particular configuration or set of
configurations
* an openEHR archetype is the above, where the reference model is the
openEHR reference model

hope this helps,

- thomas

Dear Graham,

This round no next move from me.
I call for a time out.

This gives time for some reflections:
-1-
HL7 as an organisation is extremely valuable.
We really must preserve this precious resource of healthcare providers, their organisations and Software vendors.

-2-
This is not to say that everything they thought of is valuable and must be preserved.

-3-
The same is true for CEN/tc251 but for other reasons

-4-
Lets say the HL7 v3 community and the CEN/tc251 community are equal.
(And I think they are)

-5-
And that both perceive an internal and external drive to harmonise
(As many know I’m in favour of this since I tried to get at a Memorandum of Understanding between CEN and HL7)

-6-
So far it is my perception that the voice of CEN/tc251, and their not unimportant contributions to medical informatics, was not heard, understood by our American partners.

-7-
Then the question arises:
When the world starts to experience the multitude of difficuties with the HL7v3 RIM and message development method what will we do?
Will we start to patch up something that has intrinsic problems?
(Do you remember the recent discussion on a HL7 e-mail list. My conclusion was that they don’t know the definitions of the major classes of the RIM.
Luckily HL7v3 is not deployed that widely, so there are not much legacy systems to reckon with?)
Or will we start from a more sound starting point. One that will become an European standard and is on its way to become an ISO standard as well?

I reserve my next move until you and Thomas agree on technical details in your interesting dispute.
(For the moment I’m in Thomas’s corner. I agree more with him than with your position.
As said. I wait for your next moves and Thomas’ moves in the technical dispute)

Have a nice weekend.

Gerard

ps:
In the end we all MUST co-operate.
Their is only one patient with one problem that needs our undivided attention, care and devotion.
The poor sod needs the best solution for his problem.

– –
Gerard Freriks, arts
Huigsloterdijk 378
2158 LR Buitenkaag
The Netherlands

T: +31 252 544896
M: +31 653 108732

Grahame Grieve wrote:

But.
-1-
The HL7 RIM is a reference model for any sentence.
The EHRcom reference model defines any document.
The former will be more difficult to implement generally by writing generic
software, because sentences can express very many nuances of trillions of things.
The latter is more easy to implement. The model for any generic document is only
a limited amount of classes and structural codes.


Perhaps the answer is that the reference models are not equivalent. The openEHR
reference model is equivalent to the HL7 DIMs. The fact that the HL7 DIM's are
based on a metamodel with a structural code pattern is both a strength and a
weakness when compared with the OpenEHR reference model, which is not based on
a seemantic metamodel, only on a technical metamodel (MOF).

This actually isn’t as big a difference as you might think. The heavy use of codes in the HL7 model is a way of getting out of statically typing things. The various mood codes for example (originally 6, now 15 I think) are in lieu of using further typing in the model to express the basic differences between observation, recommendation, intention etc. The openEHR model includes type equivalents of some of these codes (although not drawn from speech/act theory) in the Entry model (see http://www.openehr.org/uml/release-1.0/Browsable/_9_0_76d0249_1109249648736_872559_12384Report.html). They are both ontological commitments, but they are just expressed in different ways.

The challenge of static typing is to be careful to express only what is universally true for all instances; the advantage is that you can build software directly from statically typed models.

The problem of embedding so many coded attributes in the HL7 model is that it creates a massive uncontrolled combinatorial space - but without other structure. This has to be defined later in the form of DIMs, RMIMs etc, then irrelevant coded attributes masked out, then constraints added on value sets. Ultimately a comprehensible model is possible - but painful, and with limited re-use.


Each R-MIM generates an unique xml-schema needing unique software.


well, I will keep saying this until everyone listens:
* R-MIM's need not be treated this way
* Archetypes can be treated this way.

I actually agree with this at a practical level, even though the different design intentions were clear from the outset. But the problem still remains: the semantics of the reference models.


Implementing a reference model is more costly than implementing a few messages
with specific models. Implementing a lot of messages with specific models is
more costly than implementing a reference model.

this is a fair enough statement. The problem is that in health we are clearly in the territory of “lots of messages”…

ok. my move:

If we work together (i.e. our different focuses overlap with common engineering
and semantics support, and we can use each others content models), this will be
a net benefit to everyone. For instance, I note that OpenEHR does not include
general business process / orchestration models, and you really need to
consider this before systems can usefully communicate.

this is true. What is there now:

  • CEN HISA
  • emerging openEHR service models for EHR, demographics, terminology access and archetype access
  • state-based process management for Instructions, i.e. medications, orders, procedures.
  • high-level HL7 HSSP specifications like RLUS etc
  • older and probably undervalued Corbamed specifications, like PIDS

What is nedeed:

  • CEN Contsys part 2
  • more generic inter-enterprise orchestration models, probably in the form of web-service interaction profiles
  • an accepted standard language for writing distributed workflows.

Our approach in openEHR will be to add some small pieces to the reference model as time goes by, principally in the workflow area, as well as service definitions, hopefully mostly extracted from the standards work, and expressed within the openEHR type system.

Last point: the most important thing to understand is that both OpenEHR and
HL7 are *very closely* aligned in goals and methods.

goals yes… methods, I think they could hardly be further apart…unfortunately.

 There is some engineering
differences. I wish that important clever people who should know better would
stop claiming these differences are significant, and start talking about how
these things are nearly the same after all. Then we can accept that both are
flawed, and have useful discussions about how to move forward together. (and
pigs will fly, I guess, in some cases)

well…some of us people have been trying since 1999 to get this kind of convergence going (by going to HL7 meetings in the US of course). The engineering differences are quite significant; they are the main game to be solved. But it requires commonality on some of the basics (e.g. data types, approach to modelling), and this has been missing. Let’s hope that it is changing.

  • thomas

In een bericht met de datum 15-9-2006 18:56:19 West-Europa (zomertijd), schrijft gfrer@luna.nl:

-7-
Then the question arises:
When the world starts to experience the multitude of difficuties with the HL7v3 RIM and message development method what will we do?
Will we start to patch up something that has intrinsic problems?
(Do you remember the recent discussion on a HL7 e-mail list. My conclusion was that they don’t know the definitions of the major classes of the RIM.
Luckily HL7v3 is not deployed that widely, so there are not much legacy systems to reckon with?)
Or will we start from a more sound starting point. One that will become an European standard and is on its way to become an ISO standard as well?

This is reversable:

When the world starts to experience the multitude of difficuties with the OpenEHR and CEN 13606 and archetype development method what will we do?

Will we start to patch up something that has intrinsic problems?

Do you remember the recent discussions on the OpenEHR list.

My conclusion was that they don’t know the definitions of the major classes of the RIM and other technicalities.

Luckily OpenEHR / 13606 is not deployed that widely, so there are not much legacy systems to reckon with?

Or will we start from a more sound starting point. One that is an International standard and is on its way to become an ISO standard as well?

Of course this reversion is just to point to the fact that we are apparently back in our corners and have this dispute that is nonsence and not contributing.

I am the last to tell that HL7 v3 is perfect, but will be one of the firsts to tell it is working.

I am the last to believe OpenEHR / 13606 is perfect, and wait till I see it work in real practice.

In the meantime, we have harmonized and differences (few) and commonalties (biljons) have been determined.
In the meantime, we will start working with existing tools, set requirements and improve the tools.

I do not care where the tools come from, I care what they can do for the very difficult work of entering, storing and exchanging information about patients and care in a intelligent, semantic interoperable way.

I do like HL7 v3 D-MIMs because I see several good working EHR systems based on this. To me, beside philosophical problems (fundamental to limits in human thinking), and technical approaches, it really does not make a difference: make the clinical materials available electronically and make clinicians not have to worry about the technology and transformations behind.

Any discussion in favour of one and against another approach is going back to the trenches of WW1 where we would like to work towards the future.

William

In cADL, I can say something like this:

   attributeName cardinality matches {0} matches {*}
  

Grahame,

you can only do this if the reference model already says that the
cardinality

of course

this is a statement that attributeName cannot be valued in this model.
But attributeName must exist in the reference model, and it is superfluous
to say this if some other archetype on which you are based has already said
this. And you cannot add or define attributeName in cADL
  

no, that's not right - the attributeName of course exists in the RM, but
if its cardinality is 0..1 or 0..*, clearly it is allowable for there to
be no value in the data. cADL statements are statements about objects,
i.e. instances, not models.

ok, I'll rephrase:

This is a statement that attributeName cannot be valued in an instance
that conforms to this constraint. But attributeName must exist in the
reference model, and it is superfluous to say this if some other archetype
on which you are based has already said this. And you cannot add or define
attributeName in cADL

This is a statement that attributeName cannot be valued in an instance
that conforms to this model. But attributeName must exist in the
reference model, and it is superfluous to say this if some other *IM
on which you are based has already said this. And you cannot add or define
attributeName in an *IM

If you want, you can interpret the statement, either in an archetype or
an RMIM, as a definition of a new class which has had that value
"subtracted", as HL7 does with RMIM's. This may or may not be a good
idea, but doesn't change the fact that what is going on in concept is
no different

so, you say:

There are no new classes of any kind in ADL archetypes, nor
any subtractions, additions or any other modifications to the reference
model, because archetypes are not saying anything about models, or
classes, they only make statements about instances.

And I say that this is equally true about archetypes and *IMs, and you can
choose, if you want, to create schemas or class models from either. HL7
chooses to. OpenEHR doesn't.

that is something else entirely - DbC statements like in Eiffel and OCL
are statements attached to models, defining or modifying their
semantics. Archetypes don't add anything to the model, they say how its
instances should be used.

So, an archetype is not a definition of semantics for how to use a
model in a particular context?

well, I don't think many people would agree,with respect to HL7 - I have
numerous reports and references to that effect over the years. And they
are right: no-one builds object models by including all possible
attributes in the most abstract classes so that they can be stripped out
in "derived" models

you do. tell me that this isn't how openEHR works? You define everything
you will need in the reference model and strip it out from the instances
using archetypes

If I chose to treat an archetype as a "projection" - which
I could - then this might be a problem. If I chose not to treat an RMIM is a
"projection", then it's not a problem.
  

but - an archetype isn't, and an RMIM is....these are both facts - they
are in the formal expressions....

So, I can see that I'm not getting anywhere. I am claiming that this
difference is a feature of how these things are used, and hoe they are
presented, not what they are. And that you can use either in either way.

Am I wrong to claim that you *can* use either in either way? (I am not
claiming that anything is useful, only possible)

You told me that you could a schema from an archetype....
And, if you remember, we spoke about why this would be useful and
how it would be limited - they are exactly the same issues that HL7 V3
implementers face today

Grahame

I call for a time out.

time out is good. I'm about to hit the road for a while

I agree with #1 - #6

When the world starts to experience the multitude of difficuties with
the HL7v3 RIM and message development method what will we do?

keep watching, we will find out next meeting.

Grahame

Last email for a little while

This actually isn't as big a difference as you might think. The heavy use of
codes in the HL7 model is a way of getting out of statically typing things. The
various mood codes for example (originally 6, now 15 I think) are in lieu of
using further typing in the model to express the basic differences between
observation, recommendation, intention etc.

yes, this coding pattern is very troublesome. It's a good thing I like
challenges huh? I will be happy, in this discussion, if we can accept
that the real differences we must master are our philosophy and
reference models (which are tightly tied together); these are
real differences.

We should not ignore the engineering differences - but these can be solved
if we want

this is true. What is there now:
* CEN HISA
* emerging openEHR service models for EHR, demographics, terminology access and
archetype access
* state-based process management for Instructions, i.e. medications, orders,
procedures.
* high-level HL7 HSSP specifications like RLUS etc
* older and probably undervalued Corbamed specifications, like PIDS

and the HL7 v2 and HL7 v3 event models.

yes, we need to work together on this. and there is
finally meaningful traction on this. Not easy, never
easy to make progress, but the glaciers are moving.

Grahame

Grahame Grieve wrote:

So, an archetype is not a definition of semantics for how to use a
model in a particular context?


sure - how to use it, i.e. how to use instances obeying it…


well, I don't think many people would agree,with respect to HL7 - I have
numerous reports and references to that effect over the years. And they
are right: no-one builds object models by including all possible
attributes in the most abstract classes so that they can be stripped out
in "derived" models


you do. tell me that this isn't how openEHR works? You define everything
you will need in the reference model and strip it out from the instances
using archetypes

no. We don’t do that at all. In HL7, the major classes are full of attributes (Act has 22 of them) that are only there to support some derived classes down the specialisation tree, as created by the refinement methodology. There are quite a few in Entity that clearly don’t sensibly apply even to all the RIM subclasses of Entity, let alone all the subclasses created via cloning in RMIMs. You won’t find any classes with anything like this number of attributes in openEHR. There are 2 key differences in the approach:

  • most of the attributes in Act (for example) do not have any meaning for all or even most instances of all or even most classes descending from Act. In openEHR, and normal object modelling, this is not the case; any attribute you find in an abstract parent class has meaning for all descendant classes and (in general) all instances of all those classes. There are some, but not many optional attributes in openEHR. Nearly everything is optional in the HL7 Act class.

  • you have to think of all the attributes you might need in any descendant class from Act, in advance, and put it in Act (i.e. in the RIM). This is clear on inspection, and the designers of the RIM have stated this as being the case. This means that you have to know all possible attributes in advance, since derived “classes” cannot add, as in normal OO, but are instead “projections” (i.e. like a select statement of attributes) on the original class. This is the consequence of the subtractive logic; object modelling is extensional. You don’t have to think of everything in advance. Clearly no-one can ever succeed 100% at this, so it is a deep problem for RIM and models based on it.
    There is no escape from the fact that with the RIM approach, you have to have it all right in the beginning. In normal OO modelling, you can always extend descendant classes, which is what happens in openEHR, and what will continue to happen as more pieces of the reference model are (slowly) added.



So, I can see that I'm not getting anywhere. I am claiming that this
difference is a feature of how these things are used, and hoe they are
presented, not what they are. And that you can use either in either way.

Am I wrong to claim that you *can* use either in either way? (I am not
claiming that anything is useful, only possible)

You told me that you could a schema from an archetype....
And, if you remember, we spoke about why this would be useful and
how it would be limited - they are exactly the same issues that HL7 V3
implementers face today

well, we could generate schemas from archetypes …as we have said - but they would be purely generated artifacts, never to be seen by human eyes, and never to be the subject of any design work. The challenge with doing this is: you instantly start creating data that conform only to that schema; it prevents Observations from two different archetypes (e.g two different path test archetypes) just conforming to the main reference model schema. The DSTC tried this approach about 4 years ago, and gave up…for the EHR. Where it can make sense is if we create such schemas and just give them to e.g. path labs and other message sources. But the instance data for such schemas should never be persisted in that form, it should always be converted to the reference model - based form, to allow proper longitudinal querying in the EHR. As long as this rule is followed, it makes good sense, and constitutes an archetype-compatible basis for messages…

Probably you are right - I continue to underestimate / forget the interest in doing it this way, since it is contrary to distributed object thinking. But it is nevertheless attractive to some people to just work off an XML-schema. We just have to be aware of the danger: as soon as anyone starts persisting such messages in a database, the story is over.

  • thomas

Grahame Grieve wrote:

  

this is true. What is there now:
* CEN HISA
* emerging openEHR service models for EHR, demographics, terminology access and
archetype access
* state-based process management for Instructions, i.e. medications, orders,
procedures.
* high-level HL7 HSSP specifications like RLUS etc
* older and probably undervalued Corbamed specifications, like PIDS
    
and the HL7 v2 and HL7 v3 event models.

sorry, I should have included those as well. I have a reservation that
they seem too pre-defined, and the real world just constantly throws up
exceptions, but I will be guided by others with more experience with
these models.

- thomas

Dear William,

Either the brave Dutch are stupid or very clever to become almost the only nations on this earth to vote negative on:
the CEN/tc251 EN13606 EHRcom and HISA standards.

I know one thing for certain.
Based on the openEHR specification in TNO project we have one working implementation from Sweden using Java and one from Australia using .Net.
And besides openEHR and CEN/tc251 are based on several working implementations produced in many European projects.

Not only the theoretic foundation is in order,
the implementations are there,
and they work as claimed.
It can be proved this solutions are scalable.

I know that there are parties that started to implement HL7v3 messages on a large scale and encountered scalability problems.
There parties are changing there point of view and are moving towards CEN/tc251 EHR related standards.

To read recently in a HL7 e-mail list a discussion dealing with the definitions used in HL7 with respect to several of the founding classes of the RIM (Entity and Act) and the confusion in the documentation is a tell tale example of only one of the serious problems in the HL7 community.
And all this after 10 years of work and the production of tons of documentation that can not be printed.

You can reverse any statement I make.
You can decide not to believe any statement I make,
as you and several of my country fellow man did when we were discussing EN13606 EHRcom,
lets see how history will prove who is right and who is wrong.
So we stop this debate and see how things evolve in time.

In the end what matters is, not only that the healthcare sector is able to express what they want,
but can it Plug-and-Play be implemented without reprogramming.
And then I’m confident that openEHR and CEN/tc251 EHRcom plus HISA will provide just this,
because it was in our requirements, also, from the start.

I agree.
There is only one patient, with one problem that needs our unified attention and devotion.
So we have to co-operate.
But we have to continue to discuss and provide arguments and listen to the arguments given.
Instead of attacking persons, as I have been able to observe several times it to happen in the Netherlands.

Lets start the real debate.
Patients and healthcare providers need real solutions that empower them.

Gerard

– –

Gerard Freriks, arts

Huigsloterdijk 378

2158 LR Buitenkaag

The Netherlands

T: +31 252 544896

M: +31 653 108732

I’m a .Net developer in the U.S. researching development of EHR. I’ve been absolutely fascinated by the recent debate between advocates of HL7 and openEHR. For me it was hugely informative and I’m glad it all happened. You don’t learn this stuff just be reading the papers from each community.

Since I’m not sufficiently acquainted with all the details of either system I could not follow each nuance of the argument. But among the things I’m taking away from this is that HL7 involves a complex and ever-changing schema at the DB storage level, something that worries me. I did not hear a rebuttal of this point from the HL7 side.

Randy Neall
Veriquant, LLC

tel 828-685-1302
fax 828-685-1957

randy.neall@veriquant.com

Dear William,

One very important point I forgot to make:
You wrote: Any discussion in favour of one and against another approach is going back to the trenches of WW1 where we would like to work towards the future.

What you write is that any discussion pro or contra a point of view will lead to a kind of war and prevents good results in the future.
This line of reasoning is strange for a person active in academic worlds with a PhD thesis in his CV.
A discourse pro and contra a point of view is the essence of science because it leads to better understanding of our complex world.
This line of reasoning of yours makes me feel uneasy because this way of argumentation is one seen in religious fanatics that don’t want any real discussion.

With regards,

Gerard Freriks

– –
Gerard Freriks, arts
Huigsloterdijk 378
2158 LR Buitenkaag
The Netherlands

T: +31 252 544896
M: +31 653 108732

Gerard,

I am amazed at the comments to your collegue. We are making great strides in bringing ISO/CEN/HL7 together with the potential of taking a step beyond even harmonization. I am in favor of pro and con discussion. As I read your earlier mail, I interpret those remarks as saying we don’t need HL& and don’t even look at HL7. I don’t think such remarks encourage a position of cooperation. I would sugget to Randy that he look at both HL7 and openEHR. Both have components in their favor and both have cons. It is my believe that working together gets us further along the road. I don;'t fully know what the referral is to an ever-changing schema at the DB storage level. CCD is becoming the recommended standard for the exchange of data in HL7. On the other hand, I think the work with archetypes brings a lot into the equation.

Competition is good at some times and destructive at others. Incrediably stupid doesn’t sound like a scientific argument.

I am sorry for these remarks, but I needed to express them.

Ed Hammond

“Randolph Neall” randy.neall@veriquant.com
Sent by: openehr-technical-bounces@openehr.org

09/15/2006 05:08 PM
Please respond to For openEHR technical discussions

|
To: “For openEHR technical discussions” openehr-technical@openehr.org
cc:
Subject: Re: Antw: Re: EHRcom/openEHR the new exciting paradigm |

  • | - | - |

I’m a .Net developer in the U.S. researching development of EHR. I’ve been absolutely fascinated by the recent debate between advocates of HL7 and openEHR. For me it was hugely informative and I’m glad it all happened. You don’t learn this stuff just be reading the papers from each community.

Since I’m not sufficiently acquainted with all the details of either system I could not follow each nuance of the argument. But among the things I’m taking away from this is that HL7 involves a complex and ever-changing schema at the DB storage level, something that worries me. I did not hear a rebuttal of this point from the HL7 side.

Randy Neall
Veriquant, LLC
tel 828-685-1302
fax 828-685-1957

randy.neall@veriquant.com

As an unqualified lurker in these groups I must say I was v. impressed
by the breadth and depth of knowledge of HL7 that Thomas Beale has shown
in these recent discussions - it gives me even more confidence
in the principled basis behind openEHR and the openess of the openEHR
people in their responses.
my2cents
\Gavin Brelstaff CRS4 Italy

William E Hammond wrote: