December 28th, 2008 andrew
Every now and again someone decides that health IT is obviously doing something wrong and they are going to fix it. This is a familiar call, often made by well meaning bureaucracy and its part of the problem and not part of the solution.
Health IT is hard and its become much harder with the involvement of well meaning bureaucracy. They often regard (and even refer to!) health it people as a bunch of “nerds”. If only there were more nerds and less bureaucracy we may be further ahead. Yes it is possible for the banks to have ATM machines working in a global sense and interoperating but they are only adding and subtracting figures from a balance and tolerate a fair bit of fraud as part of the cost. I am sure it all we wanted to do was maintain long term records of patients blood pressure and have this interoperate, with low levels of security it could be done quite easily. If we did this for the same transaction fees as the banks charge for ATM transfers there would also be a funding model!
Health IT is hard because the problem that we are trying to solve is huge, changes rapidly and cannot be modelled completely at any one point in time. It also rightly needs to be done with a very high level of security and even low levels of fraud and security breaches are intolerable and cannot be assigned to an “acceptable level of fraud” – which is what happens in the banking industry. It is also either starved of funds or funds are wasted in large treasure chest sized amounts by giving it to the large corporate software pirates who conduct yet another study or review the “state of the art” and sail on to their next victim.
Meanwhile standards bodies try and pull together workable standards with volunteer labour and laughable budgets. The standards meeting have also been invaded by bureaucracy and modellers with the “nerds” having been left at home.
What health IT needs is an army of smart technical people (ie nerds) and smart clinical people who can get together and actually try and pull together the technologies needed to make it work in the real world.
As the guardian of a million lines of very technical HL7 orientated source code I am acutely aware of the difficulty of the problem. Medical-Objects has some top class technical brains at its disposal but you know that even with someone who is exceptional you have to try and partition their problem space off to a small subsection and do a lot of hand holding if you want any useful work done. It takes years to get a top class technical person to see the whole picture as it’s all interlinked. They may be a database/internet/user interface guru but to make it work together a lot of balls need to be in the air and aligned at the same time. Any model needs to be serialiseable in HL7, security and digital signatures/authorisation appear at all sorts of levels. The model has to support not only the HL7 model but also the Snomed-CT model and this model has to be addressable by the GELLO code in a standard way. In many cases the number of patient/records may be huge so performance issues are critical and it has to operate in a secure distributed fashion in software environments that are totally uncontrolled and often unreliable. No matter how well you model it it will have to go to systems that are quite basic so it needs to gracefully downgrade to a simple text document on demand. At some point a dicom image might appear so this needs to be supported as well. Finding people who can function over a landscape dotted with landmarks like HL7, Dicom, PKI, GELLO, SQL, XML, XML-Schema, SOAP, HTTP, HTML, RTF, SNOMED-CT, Archetypes, BNF, RDF etc is no small task. Then of course you have the clinical knowledge that is so vital to build systems that are actually useful. This clinical knowledge is changing and variable, and sometimes contradictory between institutions.
Meanwhile the bureaucracy is being wined and dined by the salesmen of the latest wizz bang technology and engaging well dressed consultants to come up with a plan… Working proven scalable technologies must be replaced by new unproven and less scalable technologies… Of course these plans fail, and the whole process restarts with a new bureaucracy who go through the same process yet another time.
Its time they actually looked at working Health IT technologies and tried to emulate them. Pathology has been delivering electronic results for over 10 years. The system would not cope if they did not. The quality is patchy but it works and there is lots of room for enhancements. This has been done without any significant government handouts. Australia has standards in place that could be enforced, but no one seems to have the balls to do it. If the government wants to throw money at it then they could reward the use of standards, standards that we know work and not some “almost ready” latest greatest thing that is unproven. It is impossible for the government bureaucracy to come up with their own new “standard” and possibly have it work, its just to hard to get it right until you have been doing it for 10 years and even then you get it right a little bit at a time. Organisations such as NEHTA need about 10 years to actually get their finger on the pulse and government can’t see that far ahead. They also need 10 years of actually trying to make it work rather than 10 years of whiteboard scribbling. They need to be highly concerned when “nerds” who are making some things work actually disagree with their plans and alas this is not the case! NEHTA needs to become a promoter and enabler of proven standards and a funder of standards work and true R&D, it cannot “solve” the problem on its own and unless they feel totally across all the acronyms above they should not be trying.
Posted in DECISION SUPPORT, EHR, GELLO, STANDARDS | No Comments »
February 2nd, 2008 andrew
This is the challenge of health IT at the primary care level. Most of the medical-objects destinations are Australian general practices which while computerised, are only just computerised and the stability and management of their systems is well… poor in general.
On top of this we run real time messaging using full PKI security for privacy and authentication. It is a challenge at times and we are continuing to learn, sometimes the hard way. The average life of a client install is < 12 months and often no one in the practice knows which computer is on, and frequently that computer disappears as part of an upgrade or reshuffle.
Managing this over thousands of sites is something we are trying to perfect. The first lesson we learnt was to get the content of the messages standards compliant. This has been vital as when we know that the payload meets Australian standards we can safely tweak the envelope to suite to recipients software, which often can’t handle compliant HL7. Compliant messages have allowed us to develop a large number of message modifiers or decorators which can be chained together in a huge number of ways to achieve a message that can be consumed. Even with a huge array of standard modifiers we still run into problems. Corporate systems are virtually impossible to tweak and the fact that they read to report date from the wrong place is something that you sometimes just have to accept. So the next element that makes it work is scriptable modifiers. We have a pascal script interface into our hl7 and xml parser that allow virtually any modification to be made. This is less routine and scalable that the canned modifiers, but is something you just need to have.
The other area that has proved vital is ongoing monitoring of server uptime. This allows us to detect clients with problems before someone notices that there have been no results for a while. Installation of new anti-virus software or changes to authentication parameters commonly cause this. We have also found sever instances of ISP misconfiguration of routers that block traffic between 2 clients.
Forwarding of errors in sending to support is another vital health monitor. Analysis of this is still not to the stage we would like it as many clients are disconnected after hours and weekends and the monitoring has to try and take this into account. Automating analysis of the problem is also an area we can improve on. We have started to identify patterns in the errors that mean something but the analysis is quite complex. We are considering using GELLO (Clinical decision support Language) to try and recognise these patterns in an automated way.
Double checking of new user and upgrade configuration is now much enhanced also. Users are good at finding shortcuts and at one stage we found support found a way to copy installation setups, followed by a few modifications. This made their setup much quicker but they did not change the GUID that is used for the URL on the proxy server…. The pleasing thing was that the PKI infrastructure prevented breaches of privacy as a wrong recipient could not decrypt the data but it had us scratching our heads. The sender and recipient both had each others keys and they were signed and correct but still we were getting errors in both authentication and decryption. In the end several clients were randomly getting each others messages so it would fail commonly, but if the correct client eventually received the message it would work. It was only when we noticed no hits in the client log despite a failed transmission that we tweaked to this one. The servers now avidly check all setups to prevent this happening.
The process has also made us aware of the difficulties in testing distributed systems. We have complex test setups but trying to simulate the real world of a distrubuted messaging system is also impossible. You have to try but the ongoing monitoring of connectivity and errors is something you have to have and the real world will always throw up surprises.
However we are excited about how well it works and how fast distributed systems are. The real world works quicker than any test setup and the message processing is done on different machines. In a test setup on a few machines you can almost follow it by looking at logging windows. In the real world it moves so fast that you have no hope of following it. Now to build something useful on top of it, after all that’s why we built it!
Posted in GELLO, HL7, MESSAGING, STANDARDS, Uncategorized | No Comments »
January 19th, 2008 andrew
Medical-Objects has spent the last 12 months refining its realtime HL7 messaging client. It has been an enormous effort to get this working smoothly when the environments it has to run in are so varied and often not well resourced with anyone with IT knowledge.
More recently we have been completing the Linux/OSX port of the client. We now know the differences in the threading and synchronization primates between Windows and these operating systems!
In the end however it will be worth it as it opens the door to a new type of eHealth where messaging becomes infrastructure and we start to see some real benefits for the effort. Most providers are impatient, usually for good reasons, and if you can’t match the fax for speed then its doesn’t work. When they have 30 minutes to sort out a complex patient and they need that X-ray report now and 30 minute store and forward delivery cycle just doesn’t cut it.
The other area is of course services. Once the messaging is in place queries for appointments and patient status updates become possible. The vast knowledge base that is out there also become reachable in an automated way. Software can act as an agent seeking out information without someone having to load up a browser, login and manually search. A world where machine readable decision support encoded with eg GLIF and GELLO is available on demand goes from science fiction to a matter of developing content. The use of message level encryption allows a level of authentication that we have not previously had and has the potential to cut red tape. Why can’t the software validate the patients authority script, download the latest guidelines and check on the patients address details in the background, while in another thread of execution it requests that patients past lab tests and X-ray reports. With real time messaging and good authentication it can, and it will.
Standards will play a bit role in this and at this point in Australia that means Certified HL7V2 messages, functioning as they were intended, as a messaging format. Other pieces we are using include the GELLO and GLIF specs along with Archetypes and this is built on top of some very simple REST methods.
Pulling it all together remains a challenge, but we are at the point where we know it works. Hopefully by the end of 2008 we will see some standardised messaging specs to create a level playing field in the messaging space, as the real value lies in what is built on top of this infrastructure.
Posted in DECISION SUPPORT, EHR, GELLO, GLIF, HL7 | No Comments »
March 11th, 2007 andrew
Archetypes – SNOMED-CT – HL7 – GELLO – GLIF
What are the boundaries between these important concepts and where and how do they fit together.
This is an important question, one we have been expending a lot of energy on and we have ended up with some ideas that we would like to share. We also have firm opinions!
Really the problem is that there is overlap, or in some cases “underlap”
HL7 V3 has terminology properties that conflict and create mismatch with SNOMED-CT. Its also very verbose and overloaded by Modelling, complexity and infrastructure issues. HL7 V2 in general does not, as apart from medications it has not really invaded the clinical data relationship space as yet. Its a blank slate with respect to clinical modelling, but quite a well proven and efficient blank slate!
Archetypes as pioneered by OpenEHR has conflict with SNOMED-CT – they try to be terminology neutral and in effect often also invade the Terminology space – as simple terminologies are semantically deficient and need their help. In reality SNOMED-CT relationships and grammar and Archetypes are in the same space and we would view them this way. Ideally the terminology should be able to create the relationships between data items that the archetypes currently create and in many areas SNOMED-CT already does this very well. Our somewhat provocative view is that Archetypes fill the gaps where the terminology is deficient, and with time will gradually fade as the relationships in SNOMED-CT become richer.
Archetypes also conflict with GELLO. Data validation and calculated values should be handled by a constraint language, and GELLO as a direct descendant of OCL fits this bill well. Having a specific “COUNT” node in an archetype should be replaced by some GELLO that can do basic addition.
What about high level decision support? To clinicians this is flow charts. Not dumb ones, but really smart flow charts that already knows whats excluded and whats contraindicated. Not that they can have the final say. Rules are made to be broken and often are for good reasons. GLIF (Guideline Interchange Format) does fit the bill well here – it represents decisions and flow charts very well and is designed to defer to GELLO for the actual computation.
What about the “Big” model – The HL7 V3 model at a high level is quite true to Medical Practice. Medical records really are a collection of observations about a Patient, some right some wrong, some in conflict with each other, that’s the real world.
So where do we see this fitting together now….
HL7 V2 is very efficient and fast and widely implemented. An implementation of the HL7 V3 model over V2 messaging using Archetypes to plaster over the cracks left by SNOMED-CT, complemented by GELLO working on the HL7 V3 Model (represented in the HL7 v2 data) with GLIF for high level decision support. Thats where we see the potential for success and a possibility for some sort of transition from where we are now to a exciting semantically interoperable future.
Is it possible… Its not easy, but it is possible. We have done enough work now to be sure of that.
Posted in DECISION SUPPORT, EHR, GELLO, GLIF, HL7 | No Comments »
December 21st, 2006 andrew
It’s and awesome combination. Thats the feeling we have after completing the first round of integration between our GELLO interpreter and our SNOMED-CT server.
One simple Method “.implies” has some much power in a multiple inheritance hierarchy like SNOMED-CT.
For instance:
This is a Laparoscopic appendix in SNOMED-CT
let Chole:SD = Factory.SnomedUtterance(”602280XX|Cholecystectomy, exploration of duct and cholangiogram|”)
Now what can the computer tell about this surgery? Well quite a lot really!
It has a parent of Cholangiogram so you can ask if a cholangiogram was done like this:
let CholangiogramDone: Boolean = Chole.implies(Factory.SnomedUtterance(”283670XX|Cholangiogram|”))
Now was this an open procedure or a laparoscopic one?
let Laparoscopic: SD = Factory.SnomedUtterance(”736320XX|Laparoscopic Procedure|”)
let isLaparoscopic: Boolean = Chole.implies(Laparoscopic)
This sort if information gathering is very useful in clinical decision support and GELLO is the perfect language to write the logic in.
At last we have a path to computable medical records!
Posted in DECISION SUPPORT, EHR, GELLO, SNOMED, STANDARDS | No Comments »
August 26th, 2006 andrew
Gello Lives!
Gello, a decision support programming language, has been declared an ANSI standard without any actual implementations, that is up until now.
Over the last few months Medical-Objects has been busy implementing a Gello interpreter and this was recently demonstrated at the Australian HIC 2006 conference.
This allows level 4 decision support and represents the first Gello implementation anywhere in the World. Gello is a relative of OCL (Object Constraint Language) and opens up many exciting decision support options, as the full array of atomic patient data is now available to assist in better, safer medical decision making by clinicians. In fact it empowers clinicians to customize their own systems to assist them in very specialty specific ways.
Posted in DECISION SUPPORT, EHR, GELLO, GLIF, HL7 | No Comments »
June 1st, 2005 andrew
The real jewel in the e-Health crown is computers that meticulously check everything in a way that no human can hope to match.
Using a modern PC to produce a text based letter is like calling in NASA for the launch of a paper plane. Our computers should be checking everything based on a set of rules we give them, not simple rules but easily customised rules that clinicians can enter and then ask our PCs to execute.
And, your PC could triage your in-tray
The medical day includes a lot of juggling of priorities, and ideally we want to be able to triage the in tray.
I want the abnormal result that is a surprise, to jump out at me, the referral for the deeply jaundiced patient to float to the top of the pile of requests. The patient who is on Warfarin that is booked for a procedure should generate an alert about the Warfarin. The follow up system should know that the patient actually has been followed up.
Medical-Objects has been delving into Snomed-CT for 12 months, and we are hooked.
It’s so beautifully simple and yet so powerful. Snomed-CT is very user friendly, to a clinician it has the richness to actually find most things you normally say, and if it doesn’t you can combine concepts to say it.
From a computer science point of view it has intelligence about medical concepts that take years for clinicians to acquire, and its all there for the taking.
Questions like “Was the procedure done laparoscopically” can be answered in a flash. You can compare different ways of saying the same thing for equivalence and it works, or at least for now it works pretty well.
The beauty of its structure is that it can get better at this and drag all the existing data up to new higher level.
Australia has been evaluating its options, but there is a cost in the delay.
The US and UK have made Snomed the national terminology, freely available for any clinician to use.
Even if we do not use the full power of something like snomed-CT we need to make a start, try and allow patient health records to be coded into some way, even at a basic level, as this can be leveraged in the future.
A simple system might look attractive, both financially and technically to “get things going”, but it won’t cut it in the long run, we sacrifice the future to make the balance sheet look good now.
The lack of a national terminology is a huge roadblock.
The ability to communicate medical data electronically is highly dependant on a good terminology.
Most packages have the ability to import HL7 automatically, which is a very big advantage over manually pasting text into the practice software, and places it well ahead of unstructured messages, but it’s the potential to really understand what is in the content that’s the real prize.
There have been many calls for simple transfer formats, to get “things happening”, but in reality its the communications and PKI infrastructure that is holding this up rather than the structure of messages.
Once the ability to cope with the communications and security issues becomes widespread, which it will, the focus will turn to content.
Transport of unstructured content will increase the speed of delivery and availability of patient notes when they are needed, but that’s just replacing paper.
While that is a worthwhile outcome and a very solid first step, it fails to capitalise on the advantages of atomic health data in a standard format.
Posted in DECISION SUPPORT, EHR, GELLO, GLIF, HL7, SNOMED | No Comments »