[FOSS_health] my summary of discussion

Lee Seldon lseldon at alum.mit.edu
Tue Jun 5 08:52:30 MYT 2007


This morning I finally gave up and decided to make a digest of the 
discussion. So I have pasted together what I find interesting pieces. I 
still need time to study this and follow up on many of the points.
A very very short summary:
  - FOSS should probably aim for 'functional' interoperability, but 
might have to start with a 'basic' one.
  - communications should be based on XML, not on HL7 v2.x.
  - using XML there already seem to be several (compatible?) 
initiatives. However, VistA and openMRS both use HL7 v2.x, obviously for 
reasons of interoperability with existing applications (including 
themselves).
  - middleware approaches (CORBAmed, gateways, hubs) have been 
successful, but seem to have gotten lost or lost favor like much other 
stuff (good and bad) in IT. Reviving one of them might be more effort 
than just letting it rest in peace.
  - the next step could be to agree on an existing XML-based standard, 
e.g. CCR, HL7 v3 CDA, HL7 v3 messages (of which there exists an 
extensive list), etc, or join an existing interoperability project, e.g. 
HSSP HDTF, ... (I am not familiar with these, but somebody certainly 
is). I can give my opinion of the CCR, HL7 v3, etc ones if desired.
Lee
DIGEST:
24/5/2007 Wayne Wilson - I work in one of the largest academic health 
systems in the US. For about 5 years ending just 5 years ago I worked to 
establish strategic IT directions in clinical care.
I had a very difficult time getting any open source software to be 1) 
accepted by the IT management and 2) gain the support of the academic 
doctors who were tapped to guide the professional IT shop.
  Why was this?
In the case of IT management, there were several 'buzz' concepts that I 
couldn't penetrate:
1) We are poor at developing software compared to proprietary software 
vendor. - now this was cognitive dissonance, since the most successful 
software ever was an in-house developed clinical web portal. I had set 
up the web services group, but was not in charge of it after it's 
creation, I did strategy not implementation. It was a miracle we managed 
to get a web developer group started at all! I remember sitting at one 
executive board meeting and presenting data that I had gathered from our 
commercially procured, competitive economic analysis with other top 
academic medical centers. That data consistently showed a better 
accepted system and better return on investment for in-house developed 
software. That should have caused questions to be raised to be raised 
about proprietary vendors. Yet, the Nursing representative, who had 
joint academic and clinical care duties, basically said right after my 
presentation something like this: "But we know we are no good at 
developing software, everything we do in house has failed". A bunch of 
nods at the table and my presentation was promptly forgotten.
2) A re-enforcing factor for the above sentiment - COTS. Commercial Off 
The Shelf software. It's was the latest word in effective IT management 
circles.
3) Finally, I discovered that one or more academic doctors had a long 
term relationship with one or more commercial software companies. This 
is technically not a conflict of interest, as long as your are not 
getting directly paid this year by them. But you are free to encourage 
attendance at love fests like HIMSS, while you hit the booths of your 
favorites and keep on the lookup for up and coming contenders.
4) Several in house developed software packages had been taken and 
continue to be taken commercial via start-ups, by either the 
professional staff or the academic health care staff. The University is 
pushing licensing of IP revenue to start to make up for the declining 
support from the public. WE are supposed to be a public institution, yet 
the public is now more or less a minority investor. Combine that with 
bubble effect of the wide publicity of all these kids making millions 
from startups.
So, what kind of effort could turn these concepts upside down? I think 
that COTS and startups have nearly run their course. Things are no 
better in IT than before those concepts were endorsed. That leaves long 
term relationships with commercial vendors and the reluctance of 
professional IT to get involved with FOSS where it counts, in clinical 
software. It's curious to note that infrastructure FOSS software in 
professional IT shops can easily come in. It lowers cost and does the 
job. No other comparisons and factors then count.

24/5/2007 Tom Jones - >That depends on what level of interoperability we 
are discussing.
 >Interoperability has several meanings. For instance, in Lumpkin, John 
et al "National Committee on Vital and Health Statistics report to the 
Secretary of the US Department of Health and Human Services on Uniform 
Data Standards for Patient Medical Record Information" July 6, 2000, p 
6, one can find the following:
 >"Interoperability refers to the ability of one computer system to 
exchange data with another computer system. There are three levels of 
interoperability.
 >'Basic' interoperability allows a message from one computer to be 
received by another but does not require the ability for the receiving 
computer to interpret the data.
 >'Functional' interoperability is an intermediate level that defines 
the structure, or format, of messages (hence the term message format 
standards). Functional interoperability defines the syntax of the 
message. It ensures that messages between computers can be interpreted 
at the level of data fields. For example, when one computer has a 
structured data field for Ear Exam, that computer should be able to pass 
data from that structured data field on to another computer and have it 
appropriately stored in a comparably structured field for Ear Exam in 
the receiving computer. Neither system has understanding, however, of 
the meaning of the data within the fields.
 >'Semantic' interoperability provides common interpretability, i.e., 
information in the fields within the message can be used in an 
intelligent manner. At the highest level, semantic interoperability 
takes advantage of both the structuring of the message and the 
codification of the data so that the receiving computer can interpret 
the data."
 >Up through version 2 of the HL7 messaging standard, each enterprise 
created its own information model. Within the "pipes and bars" (or 
within the XML standard used by versions 2.4 - 2.n), the representation 
of the content of each HL7 message was left up to the enterprise (and to 
the vendors servicing that enterprise's system needs). While each 
enterprise was able to maintain a degree of interoperability within its 
boundaries, once an enterprise had to communicate outside of its 
boundaries, effective communication faltered because the "optionality" 
inherent in these older versions of HL7 prevented systems from 
exchanging the meaning of the message content. This shortcoming was 
highlighted in an NCVHS report to HHS Secretary Shalala in 2000.
 >"Today, these standards have a high degree of optionality in order to 
accommodate the variability of workflow and availability of information 
in different care settings. This optionality creates the need for costly 
and time-consuming customization when implementing message format 
standards. In addition, vendors and providers have developed their own 
implementation guides that differ from the standards. Finally, there is 
little or no conformance testing of message format standards.
 >Non-standard implementations result in the need for costly and 
time-consuming customization to allow information systems to seamlessly 
exchange data with one another. These customized solutions contribute to 
high cost of systems."
 >When enterprises merge for business or regulatory reasons, the need 
for more robust standards for interoperability becomes more acute. In 
these merged entities, simple graphic display of numerical laboratory 
results becomes a nightmare, and automated decision support a virtual 
impossibility. The situation is just as intolerable for the continuing 
consolidation of commercial hospital groups as it is for the evolution 
of government-mandated regional healthcare networks.
 >As the HL7 messaging standards gained wider use (the majority of 
automated clinical systems take advantage of one or more of the older 
versions of HL7), recognition of the need to more fully specify and 
normalize the content of HL7 messages led to the development of the HL7 
Reference Information Model (RIM), an integral part of HL7 version 3 
(the messaging structure in this version continues the XML standard 
established with HL7 2.4). In an early white paper, a committee within 
the HL7 organization proposed a model for the actual content of an HL7 
message. They believed "that the proposed model will pave the way to new 
messaging opportunities, including quality management, outcome 
assessment, decision support, cost control, and authenticated, accurate, 
electronic medical record communication". As work on the RIM progressed, 
one can see that its authors' collective ambition was to represent the 
world of clinical care in a formal >logic that would allow engineers to 
write code and build clinical >information systems that would more 
accurately represent that world. Such >systems could facilitate more 
effective electronic communication among clinicians, and they could also 
cross enterprise boundaries and therefore be truly "patient centric".
 >The bottom line, in my view, is that HL7 v2.X sets the bar too low – 
at functional, rather than semantic, interoperability. HL7 v.3 (which 
includes the RIM) would be a better level.

24/5/2007 Klaus Veil - The problem has been with " just agree on the 
terminology (elements)." - this has been in an international agreement 
process for ~20 years and HL7 SNOMED, LOINC, etc have been the result. 
Having been involved in healthcare standards development since ~1987, I 
can only say how very hard it is to develop globally agreed consensus 
standards...
HL7 V2.x comes in a compact delimited version ("vertical bars") or in a 
XML version (It is actually not a XML wrapper, but true XML).
V3 is very complex and requires extensive knowledge of the HL7 model 
("RIM") and is quite resource intensive (both implementation and 
run-time) to implement. Fortunately, there are a number of initiatives 
underway to simplify its use.
For those who recently joined this list, here is an HL7 Intro:
www.HL7.com.au/FAQ.htm
For those looking for HL7 tools and resources, go to:
www.HL7.org.au/HL7-Tools.htm
There is also a RSS feed at www.HL7.org.au/HL7-Tools-RSS.xml

24/5/2007 Boh Heong Yap - agreed, with Lee, we should go with the later 
XML based stds. to 'future proof' the stuff we do. Also as Lee pointed 
out, most languages, certainly Java and Python has strong support for 
XML handling.
Also as a suggestion, why don't we pick just ONE aspect of 
interoperability to work on; and the OBVIOUS one would be EHR/patient 
records' (or a subset of?), say the demographic details - then expand 
that to encompass diagnosis and prescription (which I understand may 
encompass other encoding standards (ICD, SNOMED etc...)
Also as a methodology and to spread the knowledge/work around, (for e.g. 
I can hack code and handle complex data-structures, but have next to 
zero knowledge of HL7 et-al, whereas others have the HL7 knowhow) can 
someone with the knowhow specify/extract the encoding (representation of 
EHR, Electornic Health Records, in XML) so that other hackers can then 
work at building the 'black-boxes' the do the translation. Perhaps this 
is best illustrated by a simple diagram:

1.                                                         5.
+--------+    2.                                4.         +----------+
| app.1  |    +------+     3.                  +-------+   | app.2    |
|OpenMRS |<-->|black |    +---------------+    |black  |<->|VistA     |
+--------+    | box  |<-->| HL7/XML rep.  |<-->| box   |   |          |
               +------+    |  of EHR       |    +-------+   +----------+
                           +---------------+

When one app needs to talk to another app. to transfer EHR, its done 
thru the intermediary of the HL7 representation of a EHR, which might be 
a bunch of XML tagged data, show as 3. in the diagram.
OpenMRS may have its own internal representation, and so does VistA. 
What is needed are the 2 'black-boxes' represented by 2. & 4. above. 
What these are, is code that can read/write from their internal 
representation to the HL7 representation.
Once 3. is specified (among OSHCA devlopers) any other app. that needs 
to trnsfer EHR would just need to build its own 'black-box'. e.g SAHANA 
would build a 'SAHANA black-box' to join the party...
And if written well, the 'black-boxes' can be done as libraries for 
specific languages (say a Java, PHP, Python vesions...) to that it can 
be reused by other apps.

24/5/2007 Tim Churches - I think that is a rather good summary of the 
problems with HL7 v2.x. I would add that the HL7 specifications do not 
really address the issue of what receiving information systems are 
supposed to with the the messages which they are sent. For example, if a 
pathology laboratory discovers a life threatening abnormal result, say a 
very low serum potassium level, then it can send an HL7 result message 
to the requesting doctor's system, and it can even flag in that message 
that the result is abnormal and urgent and life-threatening, but HL7 
provides no mechanism for directly requesting that the other system 
bring this result to the attention of a relevant human being (probably a 
doctor or nurse), nor does HL7 provide any help with communicating back 
that the requested action was done, or was not done as the case may be. 
In other words, HL7 v2.x defines (rather loosely in most cases) how data 
or information should be formatted and to a lesser or non-existent 
extent how data should be semantically represented, but is completely 
silent about what should be done with that data by the receiving 
computer system: actions are all implicit and have to be worked out on a 
case-by-case basis. What is actually needed is a mechanism for receiving 
systems to advertise what actions they are able or willing to perform, 
and a mechanism to explicitly request one or more of those actions when 
sending data to that system. In order words, a remote procedure calling 
system. CORBA and CORBAmed had all this a decade or more ago, but HL7 
won out over CORBAmed for various reasons. Thus, apart from solving all 
the problems with the optionality of the HL7 v2.x specifications and the 
many semantic encoding issues which HL7 v2.x does not address, there is 
also the problem of negotiating what receiving systems are supposed to 
do with the HL7 messages which they receive, and that ends up being 
implicit and again worked out on a case-by-case basis.
Now, none of these issues mean that one should not use HL7 v2.x, just 
that one needs to be aware that the decision to use HL7 v2.x is only a 
very partial solution to the interoperability problem, and that in 
almost all cases, a lot more work will be needed to either define 
additional (usually national, regional or local) standards and protocols 
layered on top of HL7 v2.x for specific purposes (eg path lab results 
reporting), or a lot of case-by-case, point-to-point negotiation and 
pre-processing and post-processing of HL7 messages will be needed in 
order to achieve useful levels of interoperability.
That's why I opined at the OSHCA conference that the decision to use HL7 
v2.x in any interoperability circumstance should be a considered one, 
not an automatic one, and that HL7 is not a panacea, and in some cases 
it may be better to use a simpler, more light-weight mechanisms to 
exchange data between health applications.
Perhaps openEHR and/or HL7 v3.x will solve these problems, but as 
various people have said, practical implementations of these are still 
some way off and we need to get on with life (and death) in the meantime.
The other point regarding HL7 is that its whole interoperability model 
is based on the assumption that health care applications are black boxes 
and that their internal data models and data representations can't be 
examined, modified or augmented - hence the need for a single 
comprehensive standard (which is supposed to be HL7). Of course, that 
model is valid for almost all closed-source software, but it is not true 
of open-source health software. When considering interoperability of 
open-source information systems, other models are possible. Underlying 
databases and data stores can often be accessed directly, it may be 
possible to actually embed one open-source application in another, or 
special-purpose data interchange modules can be written. For example, 
say I want SAHANA to exchange data with NetEpi. The traditional approach 
is to look at the HL7 specifications, work out which message types and 
message segments are most appropriate, and for the developers of each of 
the applications to add the ability to emit and consume HL7 messages 
which are compliant with the relevant aspects and parts of the HL7 
specification. Of course, the actually data items collected by SAHANA 
and NetEpi are quite volatile and dynamic (that is, the data which needs 
to be exchanged will change as a disaster or a disease outbreak develops 
and unfolds), and HL7 v2.x does not handle changing data requirements 
very nicely at all. But alternative approaches are possible. For 
example, as a NetEpi developer, I can download all the SAHANA source 
code, set up an instance of it, and write a plug-in module or code patch 
for SAHANA which will produce data in exactly the form that NetEpi 
requires - without all the overhead of pouring through 700 pages of HL7 
v2.x specifications, then having to augment those specifications in any 
case, write up those augmented specifications, send them tot he SAHAN 
people and try to get them to implement them. Or I can write a NetEpi 
extension to directly access the underlying SAHANA database. Or both 
SAHANA and NetEpi can agree to use XML-RPC or some other simple 
mechanism to interchange data and to remotely cause specific actions to 
occur in each others' systems.
Of course, the objection will be raised that it will take more resources 
to define and create such special-purpose interfaces than it would to 
use a "standard" HL7 interface. The problem is, as has been discussed, 
that HL7 v2.x is an insufficient standard in so many respects, and thus 
it may, in many circumstances, be harder and more resource intensive, 
even in the long-term, to use it than to ignore it. Also, health 
applications and information systems themselves are in a constant state 
of development and change (particularly open-source applications), and 
so ongoing maintenance of any interoperability mechanism, whether it 
involves HL7 or not, will be needed in any case. Finally, open-source 
health information systems, particularly those deployed in developing 
and transitional countries and those deployed in community settings as 
opposed to hospitals and large clinics, should not allow themselves to 
be dictated to by a "standard" which is primarily designed to help run 
large hospitals in rich countries. After all, there is not exactly a lot 
of evidence from rich countries that have adopted HL7 v2.x widely that 
it is a better solution than other approaches. There are so many stories 
of systems which are supposedly "HL7" compliant failing to interoperate 
properly, or only being able to interoperate after a lot of case-by-case 
and point-to-point effort and money is expended. Open-source health 
systems should only use what has been demonstrated to work well, and 
should feel free to explore alternatives to HL7. Remember, what matters 
is that patient care and public health is improved, not that systems are 
compliant with arbitrary information standards developed in rich 
countries to run their well-resourced hospitals. Let's not put the cart 
before the horse.

25/5/2007 Christian Heller - You may also want to have a look at CYBOL, 
an XML-based format described here (DTD, XSD, EBNF):
http://cybop.berlios.de/cybol/index.html

It has just four tags and four attributes and is very flexible, yet able 
to hold meta information (the third level :-) . I just copy the DTD here:

<!ELEMENT model (part*)>
<!ELEMENT part (property*)>
<!ELEMENT property (constraint*)>
<!ELEMENT constraint EMPTY>

<!ATTLIST part
  name CDATA #REQUIRED
  channel CDATA #REQUIRED
  abstraction CDATA #REQUIRED
  model CDATA #REQUIRED>

<!ATTLIST property
  name CDATA #REQUIRED
  channel CDATA #REQUIRED
  abstraction CDATA #REQUIRED
  model CDATA #REQUIRED>

<!ATTLIST constraint
  name CDATA #REQUIRED
  channel CDATA #REQUIRED
  abstraction CDATA #REQUIRED
  model CDATA #REQUIRED>

Here are some example models:
http://cvs.berlios.de/cgi-bin/viewcvs.cgi/cybop/examples/helloworld/greeting.cybol?rev=1.2&content-type=text/vnd.viewcvs-markup
http://cvs.berlios.de/cgi-bin/viewcvs.cgi/cybop/examples/helloworld/startup.cybol?rev=1.10&content-type=text/vnd.viewcvs-markup

Note, that "state models" (the first link being part of a textual user 
interface) and "logic models" (the second link representing the startup 
algorithm) are represented in the same way, as opposed to traditional 
programming languages having a different syntax for structures/ classes 
and methods/ functions/ procedures.

25/5/2007 David Forslund - Christian Heller wrote:
Interoperability - Message standards
Some people seem to be interested in pursuing this. I have had more 
thoughts since my original proposal.
I do not have time to commit to the project, but would like to give my 
opinion, if possible. I vote for your proposal to stick with XML.
Also, I do not recommend using HL7 RIM3 since it is a complex domain 
model to be used in application frameworks for building standalone 
application systems, but not suitable for data interchange. HL7 CDA 
might be a better solution.
The interoperability of FOSS should be in concert with non-FOSS systems, 
too, which is why standard bodies for interoperability exist. Having 
interoperability between FOSS systems is valuable, but likely to go very 
far unless they interoperate with non-FOSS systems.
OpenEHR is very complex and not mature in my eyes (my opinion). HDTF 
(CORBAmed) is o.k. and might be faster than an XML-based approach, but 
brings with some overhead, needs IDL interfaces, an ORB process
All of these capabilities come with standard Java, and CORBA solutions 
are perhaps 10 fold (or more) faster than XML approaches. (The use of 
the DOM standard adds enormously the the XML bloat, but this can be 
eliminated). Most of the data movement in the HDTF standards is 
completely compatible with XML. In our OpenEMed software we use XML 
extensively and it works well with those standards.
running etc. and not many programmers know about CORBA any longer.
This is probably the biggest barrier even though, IMHO, it is much 
simpler than Web Services because objects are handled more clearly and 
it was designed with interoperability from the beginning, while Web 
Services is not. Doing things in XML does little for interoperability 
unless one has some common semantics. CORBA doesn't guarantee 
interoperability. Standard interfaces are what are required. The FOSS 
folks need to connect up with the HSSP efforts so that one doesn't have 
to reinvent the wheel.
I wonder what happened to HXP, in which OSCAR was involved? In my 
opinion, this is the way to go. Start simple and get some data exchanged 
via XML, as prototype solution. Then think closely about the XML format 
and refine it.

26/5/2007 William Lauesen - It was interesting to hear about IHE 
"Integrating the Healthcare Enterprise" ( http://www.ihe.net/ ) and the 
HIMSS Interoperability Showcase ( 
http://www.interoperabilityshowcase.org/ ) in the US. There were some 
talks about IHE in their booth at the adjoining exhibition (but there 
was no Interoperability Showcase in Singapore). Perhaps if OSHCA could 
demonstrate interoperability of some FOSS products at one of their big 
showcases it would be a good opportunity to showcase FOSS and its 
advantages to a wider audience.

28/5/2007 Adrian Midgley - I think if several groups are trying to 
connect _in the same time period_ then a lingua franca or even hub and 
spoke arrangement is more likely to arise and is clearly better.
http://www.defoam.net/writing/4xn.gif
Given that, new arrivals coming one at a time should find it is cheaper 
to join that, particularly if the lower layers of protocols and 
components are FLOSS rather than proprietary, or at least are published 
and gratuit to use.
However if two orgs need to swap info, they are likely to see a 
bilateral special purpose link as cheaper, and they are right. So later 
you end up with http://www.defoam.net/writing/4x2.gif

28/5/2007 David Forslund - Check out http://healthcare.omg.org and 
http://OpenEMed.org. OpenEMed.org implements most of the OMG HDTF 
specifications from the late 90s and early 2000's all in open source. 
These are service-oriented specifications specifically designed for 
interoperability and demonstrated to work. The OMG HDTF is working as a 
joint effort with HL7 to update these specifications to current popular 
technologies and to increase their capabilities. You can read more about 
this work at http://hssp.wikispaces.org. It is an open process and, in 
my opinion, should be participated in by those in the FOSS community 
that are interested in interoperability. Participating in this process 
would ensure that open source solutions would be able to interoperate 
with commercial products, this increasing their penetration into the 
broad healthcare market. For many on this list, they've heard this from 
me before. There are some participants in the HSSP effort from the open 
source community, but there should be more and it provides some 
interesting targets for demonstrating true interoperability.

29/5/2007 Tim C - >> I believe the "intellectually pleasing" approach 
was accomplished almost a decade ago (or more) but no one seems to 
understand it or care, which is too bad. "emitting messages" is a fairly 
archaic and "assembly language" approach to the problem which keeps 
software engineers busy but does little to "solve" the problem. 
Distributed services and standards for them have been around a long 
time, and people are just starting to understand their value and power. 
I think they actually simplify the problem considerably, but I appear to 
be a minority. There I think I see the value of HDTF. OpenEMed is an 
impressive project and I am glad that its source is open.
 > However, changing Interface Definition Language (IDL) interfaces and 
having to compile them into "Stubs" as soon as new domain knowledge 
requirements appear (or the standard changes) also keeps developers 
busy. May be less frequently.
That was also my initial reaction to CORBA and the HDTF specs. I think 
it reflects the mindset of those who believe that compile-time binding 
in programming languages is the only sensible way to work (think C, C++, 
Java). However, to others who have adopted the mindset of dynamic 
programming languages (Python, Perl, Ruby, Lua etc), this seems 
unecessarily cumbersome and like a straightjacket. That dichotomy is 
also reflected in approaches to Web services, between the WS-* mindset 
(as promoted by Microsoft and other large IT companies) and the much 
looser coupling approach of REST, as used mainly be Web start-ups - for 
an introduction to the ideas behind REST, see 
http://www.xfront.com/REST-Web-Services.html
I know such loose coupling horrifies Dave and many others, but for a lot 
of sub-domains, it seems to work rather well. Most of the "Web 2.0" 
sites use a RESTful approach, as do all the Web "mash-ups" that are 
appearing. Is it useful or sufficient for health applications? That's an 
open question, but I urge open-source developers to think outside the 
square of HL7 and even outside the box of CORBA, HDTF and WS-* services 
and explore RESTful approaches to interoperability, and teh use of Web 
"microformats" like RSS, ATOM and FOAF, and the use of asynchronous HTTP 
calls via AJAX machinery in Web (or GUI) apps. They may get you a lot 
further far more quickly. OK, without much standardisation, but my 
position is that standardisation should derive from practice, not v-v, 
and that in many settings it is better to start experimenting and using 
non-standardised interoperability than it is to get bogged down with 
having to implement things like the CORBA/HDTF specs, or the nascent 
HSSP specs (which are not complete, I note) using HL7 v3.x and WS-* for 
web services. Groan! If you live and work in the richest country in the 
world which has a health care system that eats 13 or 14% of its huge 
GDP, then those approaches might be justifiable, but if you live and 
work in less well-off places, then simpler, more lightweight, 
faster-to-implement but less standardised approaches might be a better 
idea in the first instance. Then start to develop appropriate standards 
for local and regional use on the back of those initial implementations. 
Leapfrog the mess of of developed-world health IT, don't replicate it. 
Or at least chose very careful which parts you chose to emulate.
You should look at the IDL (not because it is IDL, but because of how it 
captures this in a way that changes are needed only infrequently). This 
is a characteristic of any interoperable solution. One needs to use 
standards that only change infrequently.
I'm not sure about that. Certainly in public health applications that is 
not true, nor in a lot of medical research. But I am less and less sure 
that it is true in clinical medicine as well. openEHR may be the answer 
to this issue of dynamism, but that remains to be proven in practice, 
and there are still missing technical parts to the openEHR jigsaw as 
well as many questions about the ecology of openEHR archetype and 
template definitions.
This is needed for any interoperable solution, in my opinion. I see 
nothing special other than providing a way of expressing 
interoperability in a language independent way. Certainly this can be 
done with XML and Web Services which, I'm sure will be the result of the 
HSSP work. My major "complaint" about web services so far, is that 
little concern about interoperability has been considered. Just because 
you have a web service and I have a web service, doesn't mean we can 
interoperate.
True, although the RESTful approach typically involves the minimal 
transformation necessary for a specific purpose. That works when the 
specific purpose is somewhat constrained. If the aim is to be able to 
have complete interoperability between one comprehensive clinical 
application and another, then a more structured approach as embodied by 
CORBA/HDTF/HL7v3 etc is better. However, I suspect that many real-life 
(as opposed to thought-experiment) interoperability requirements between 
applications are a lot more limited than that.

30/5/2007 David Forslund - I agree. The original GCPR project between 
the VA, DOD and IHS actually involved the identical software at all the 
sites, but configured differently at each site and were totally 
non-interoperable as a result, even though much of it was open source 
(VistA). The HDTF solution chosen dealt specifically to deal with this 
problem and it helped in the solution. HL7 had been used but HL7, 
itself, doesn't mean systems are interoperable. Low level database 
replication is likely to be a poor interoperability platform in my 
experience. If one has total control of all the sites, one might get 
away with it. Otherwise, forget it. Mapping XML structures between sites 
should work well in this situation, once one knows how to do the 
appropriate transforms.
Dave
Tim C wrote:
The other type of interoperability which hasn't really been mentioned is 
the interoperability between the same software application which is 
deployed in multiple sites. I suspect that in developing and 
transitional countries, it is that form of interoperability which is the 
most pressing problem. Using complex mappings to and from HL7 for such 
purposes may not make a lot of sense when data structures and semantic 
representations which are native to the application can be shared around 
far more easily and directly. For example, database replication between 
different instances of the same software application can be a very 
effective and effort-effective means of achieving quite extensive 
interoperability. Sure it is limited to a single type of software, but 
often that is all that is needed. But with open source, you can 
mix-and-match. For example, if, say, NetEpi implements database-level 
replication between sites which are running netEpi, then one way for a 
SAHANA site to interface to many NetEpi sites would be for the SAHANA 
site to set up a NetEpi node, have data replicated to it, and then read 
the required data items directly from their local copy of the NetEpi 
database. Or vice-versa (NetEpi reads directly from a local replicated 
SAHANA database). This is possible because a) open-source applications 
don't hide their internal details like almost all closed-source 
applications do and b) the marginal cost of setting up an instance of, 
say, SAHANA or NetEpi is very low - no additional license fees, they can 
both run on the same hardware and operating system etc.. No message 
passing at all, except at the application-specific low-level of the 
database replication. OK, privacy and other concerns may mitigate 
against that approach everywhere, but it should still be considered in 
many situations.

30/5/2007 David Forslund - Wayne Wilson wrote:
On May 28, 2007, at 5:21 PM, Tim C wrote:
Most of the "Web 2.0" sites use a RESTful approach, as do all the Web 
"mash-ups" that are appearing. Is it useful or sufficient for health 
applications? That's an open question, but I urge open-source developers 
to think outside the square of HL7 and even outside the box of CORBA, 
HDTF and WS-* services and explore RESTful approaches to 
interoperability, and teh use of Web "microformats" like RSS, ATOM and 
FOAF, and the use of asynchronous HTTP calls via AJAX machinery in Web 
(or GUI) apps.
Ok, from my some 5 year old perspective, the WEB 2.0 and Identity 2.0 
(soon to be followed by 3.0 no doubt :) ) are 'where the most 
development in Internet based computing' is taking place. It definitely 
challenges established and standards body approaches to things. My final 
words to the OMG HDTF, low these many years ago, was to that they had to 
find a way to start using then emerging (and by induction, any future 
emerging) approaches such as XML, and follow the old Internet model of 
starting simple and getting more complex only as needed. You can easily 
see the this difference by comparing two Internet standards, SMTP 
(Simple Mail Transport Protocol) and body of PKI work published by IETF.
We did include XML concepts into COAS and it actually supports a full 
super set of XML. I demonstrated this last year with simple handling of 
the ASTM CCR model without any changes in my backend COAS server. This 
totally unknown data model at the time of the COAS specification design 
was rather easily handled by the COAS model because of its flexible 
design and interface. We could easily run the COAS model over HTTP if we 
wanted, but I've never seen any good reason to do so.
Dave
  Uptake of SMTP is near universal now, despite such 'extensions' into 
complexity as MIME while uptake of PKI is still starting and stumbling. 
While there are always really good engineers and programmers who can 
take the most complex of standards and use them, my generalization (thus 
not always true, but mostly true) is that adoption of a standard is 
inversely proportional to it's complexity.
Even then, a simple core communications protocol which is general and 
can implement specific application protocols on top of it, has been 
difficult for people to use. One of the Internet's more experienced and 
seminal protocol engineers, Marshall Rose (SNMP and POP among many 
others), created just such an abstraction called BEEP. www.beepcore.org 
<http://www.beepcore.org>.
So far, the most significant work built using BEEP has been Apple's 
Xgrid technology.
What I have observed is that people take the fastest and easy route, and 
for some years now that has been various application protocols built on 
top of HTTP, including SOAP.
For a brief overview of the various components that are being used to 
build a web services architecture see here: 
http://en.wikipedia.org/wiki/Web_Services_Protocol_Stack

30/5/2007 Klaus Veil - UK parliamentary briefing document on ICT 
assistance to developing countries
http://www.parliament.uk/documents/upload/postpn261.pdf
As a reference for those who might be involved with that, and with UK 
agencies.

30/5/2007 KS Bhaskar - There was a successful proof of concept showing 
data from both CHCS (DoD version) and VistA (VA version) integrated in 
the same browser screen using Esi Objects to wrap both flavors of the 
same application so that they looked like an integrated system. I 
actually saw a demonstration of this a few years ago.
However, even though the technical feasibility was demonstrated, I 
understand that the rollout was not funded because it was not the 
officially blessed way to integrate information.
Others may have better insight into it, but perhaps too much management 
can ruin any worthwhile project, as the saying goes... [Yes, I confess 
to being a manager!]
David Forslund wrote, On 05/29/2007 06:19 PM:
I agree. The original GCPR project between the VA, DOD and IHS actually 
involved the identical software at all the sites, but configured 
differently at each site and were totally non-interoperable as a result, 
even though much of it was open source (VistA). The HDTF solution chosen 
dealt specifically to deal with this problem and it helped in the 
solution. HL7 had been used but HL7, itself, doesn't mean systems are 
interoperable. Low level database replication is likely to be a poor 
interoperability platform in my experience. If one has total control of 
all the sites, one might get away with it. Otherwise, forget it. Mapping 
XML structures between sites should work well in this situation, once 
one knows how to do the appropriate transforms.

1/6/2007 Tom Jones - If your focus is on a single enterprise and you 
believe that there is no other open source alternative, then you will be 
willing to spend time working with VistA. This is particularly true if 
your organization has access to MUMPS programmers and you have limited 
ambition to develop web-based applications that can be used by a range 
of existing devices. VistA has been and will continue to be a 
highly-regarded 20th century solution.
If your focus is on community integration across a lot of organizations 
and you want to take advantage of Java, of the WEB for multi-device 
deployment (including hand-helds), of the opportunity to evolve a PHR 
(which is beginning to be an important application in many geographies), 
of a hosted implementation so that local users need only have access to 
a browser, and of relational data base technology, then you might want 
to look at something like Tolven (www.tolven.org)
Presumably Tom's comments relate to VistA, which is the subject of the 
article.
 > * Home grown information model
What is wrong with that if the information model is 
highly-fit-for-purpose? The idea that one information model can serve 
all purposes is a pipe dream.
 > * Reasonable use of standard vocabulary, but no deployment of 
archetypes/ templates
Do you mean openEHR archetypes/templates? An interesting but as yet 
completely unproven and unevaluated approach. It is absurd to suggest 
that a system must be based on openEHR (or HL7 v3.x) archetypes and 
templates in order for that system to have any utility or worth.
 > * Semantic interoperability is sufficiently limited that, for 
example, allergy information cannot be exchanged with the DOD
That is an implementation/configuration/deployment issue - something to 
be avoided in future deployments, but not a fundamental problem of VistA 
itself. Or at least, no more fundamental a problem than exists in every 
single other available, proven, fielded health information system. > * 
Application development framework is cumbersome
Compared to what? And at least it is free and open-source. There are so 
many "non-cumbersome" development technologies which are blind alleys or 
mechanisms for complete lock-in with vendors. But sure, MUMPS is 30 year 
old technology. But then my car is full of 100 year old technology and I 
still drive it, and my bicycle is closely based on 150 year old 
technology but it still works really well.
 > * No personal health record functionality
Is that a showstopper for hospitals or clinics? Very, very few 
proprietary systems sold here in Oz offer operational personal health 
record interfaces either. There are several bolt-on or third-party 
personal health record systems, all of which have problems interfacing 
with clinical systems to some degree.
... Sort of.... VistA has MyHealtheVet for a personal health record.... 
and it's just a matter of time before it too becomes available and 
integrated with WorldVistA EHR.... there is also the option of 
integrating MyOSCAR. (JDM)
 > * Most organizations that have deployed clinical information > 
systems on MUMPS have had to turn to one of the relational > data bases 
to develop data mining and/or data ware-housing > capabilities.
Most organisations of appreciable size who have deployed clinical 
information systems based on third-normal-form relational structures 
have had to turn to dimensional data base structures to develop data 
mining and/or data warehousing capabilities. Both MUMPS and relational 
systems with large amounts of data both need to move data into a data 
warehouse which is optimised for reporting and analysis queries. That's 
life, and it is good practice. And there is no reason why you can't host 
your reporting and analysis data warehouse in PostgreSQL or MySQL 
(license costs $0) running on the same Linux server that hosts your GT.M 
database for VistA. MUMPS and GT.M is sufficiently efficient to leave 
plenty of horsepower for PostgreSQL or MySQL for the data warehouse even 
on a modest dual processor machine.
So I don't buy your objections to VistA, Tom. But I'd be interested to 
hear about alternatives (open-source, of course). Tim Churches

1/6/2007 Dr HM Goh - the URL: http://forum.apami.org

01/06/07, David Forslund <forslund at mail.com> wrote:
It was this full integration that was the goal of the original GCPR 
project some 7+ years ago. It was well along in a phased development 
cycle, when the DoD pulled out. The VA continued in a limited way which 
I think was the basis of this demonstration referred to here. Wrapping 
them on the screen isn't sufficient. EsiObjects could do much more than 
this, in my opinion.

3/6/2007 David Forslund - I agree. I don't think there is such a thing 
as "spontaneous semantic interoperability". The major effort of the GCPR 
was to provide semantic interoperability between essentially identical 
systems (VA, DoD, IHS) that had different semantics. They were 
developing a metadata repository that would do the mapping so that each 
site could see the "foreign" data in their on semantic view. Just 
running the same system at multiple locations is no guarantee of 
semantic interoperability. Interoperability takes deliberate effort, but 
with the right representations of the data and the processes involved, 
the effort can be made "easier". I think it requires more than data 
translation, but process translation, too.




More information about the FOSS_health mailing list