jeff b wrote:
> Reading your description of GEHR, only one question comes to mind -- how is it as an
>interchange format? So far, HL7 has proved the most versatile and easily workable
>interchange format, but I would love to equip freemed with a GEHR interchange
>component if it proves easy enough.
GEHR on its own is not an interchange format. The "modern" way to do interchange is
using generic mechanisms like CORBA, rather than application level protocols like HL7.
CORBA (for example) just serialises whatever structures it finds in memory into a
bytestream, according to the rules for the language and the IDL definition for the
classes involved. So there is no need to say anything about clinical concepts in the
protocol - it's all in the object model (i.e. the class model, i.e. the software -
it's all the same thing in OO). HL7 v 2.x has to define
clinical concepts in the protocol, because it makes no other assumptions about
systems. All one has to do is to build an HL7 interface and stick to the HL7 rules.
The limitations of HL7 v 2.x are now becoming clearer (this post is not a criticism of
HL7 by the way - for good technical criticisms, see the HL7 group's own work on v3) -
there seem to be two types:
- there is no separation between concrete communication structures and clinical
concepts, meaning that the protocol is under constant revision. The only way to get
out of this is to use a two level model i.e. model and meta-model, as in GEHR (note
this technique is not new - it is pretty standard in OO).
- because the protocol is defined in terms of its semantic content, there is always
the problem of older software not understanding newer messages. This should not in
principle happen with CORBA.
> I may have missed the point, but all of the open source medical projects _don't_
>need to have the same core -- in fact, that would probably kill the whole point of
>the thing. The only thing that any of us should be concerned with is the flow of data
>in and out of each of our respective data structures, using common interchange
>formats. I know that HL7, CorbaMED PIDS and GEHR have many common components in terms
>of patient records -- why not exploit those similarities to allow all of the projects
>to pretty much seamlessly move data between platforms?
No they don't, but it makes life much easier, since otherwise every developer has to
redevelop the same core stuff - assuming we move away from protocols to models (which
HL7 is doing with version 3). And we are not arguing that the GEHR kernel is the
"only" kernel - we foresee a market in which a small number of high-quality kernels
are used by most application developers. We just hope to be able to build one of the
best. This liberates application developers from the hard work of ensuring their
software conforms to the requiremets, and lets them get
on with building systems, GUI apps etc.
The other point is that the GEHR requirements are not just about what is transmitted
between sites - it makes statements about the content of the record, even if it does
not move. For example, the medico-legal requirements are of this kind.These
requirements are essentially about a quality EHR for clinical use, not just the
ability to transmit bytes here and there.
regards,
- thomas beale