Is RIMBAA a Mistake?

HL7v3 is a framework for developing messages in healthcare. Unlike its predecessor, v2, HL7v3 has at its core an information model, the RIM (Reference Information Model). The RIM contains classes and relations. From the RIM actual healthcare messages are derived, usually as XML instances. This is what HL7v3 does in a nutshell, and its focus is clearly on messaging, nothing else.

Recently a new school of thought is gaining ground: RIMBAA (RIM-Based Application Architectures). RIMBAA seeks to use the RIM not solely as the basis for messages, but to use it as the basis for an entire EHR (Electronic Health Record) system. The RIM, after all, is quite rich, and if it is rich enough to describe messages which care providers exchange between them, why not use it to describe the data contained in an EHR itself? This also makes deriving messages from my EHR a piece of cake.

Here’s why not.

Suppose I build an EHR from a certain HL7v3 version X (there are plenty of versions, called “ballots”, to choose from) and I also exchange messages with my colleagues using version X. If we now decide to upgrade the messages to version Y, I’m forced to do a double update: I have to upgrade not only my messaging framework to version Y, I also have to upgrade my entire EHR to version Y.

RIMBAA thus leads to tightly coupled systems. In a loosely coupled architecture, systems are black boxes: each system just has to know the interface (messages) of another system to communicate. In loosely coupled systems, each system can be upgraded or changed independent of other systems, as long as the interfaces remain unchanged. Loose coupling is a core design principle of Internet-scale messaging, and RIMBAA violates it.

Moreover, if RIMBAA gains wide acceptance, a majority of EHR’s would become RIM-based, and thus EHR’s would be very alike. Good, not? Since they’re so alike, won’t it be easy to communicate? Nope. If all, or many, EHR’s follow the RIM, there will be less competition, which will stifle innovation. Having EHR’s which are not based on the RIM enables healthcare developers to adopt any wild, new, unthought-of innovation they wish, as long as they keep supporting the common messages. This difference allows the full creativity of healthcare providers to be expressed in their systems, and is good for innovation and competition, major drivers of human progress.

With RIMBAA, it’s either taking what the RIM offers, or leaving RIMBAA. The latter is probably the best choice: take some inspiration from the RIM where useful, develop your EHR, and forget there ever was a link. I’ve seen a lot of efforts to harmonize data models, and it seldom works on a large scale, not even in a single large company. Different needs are simply too different. For messaging, a common data model is a necessity. For application architectures, it is a commodity at best and a nuisance at worst.

RIMBAA (and similar initiatives), in short, will lead to systems which are hard to upgrade, will stifle innovation and will hinder progress. It is much better to follow HL7v3’s original course and keep standards for messaging separate from standards for EHR’s. RIMBAA violates the fundamental design pattern of loose coupling and is a mistake.

Doesn’t the rejection of a compromise presuppose a reasonable alternative?

Friday (April 17, 2009) I attended Avishai Margalit‘s lecture ‘Comprise and Rotten Compromise’ at the Amsterdam ‘Nacht van de Filosofie‘ (Night of Philosphy). Margalit, as far as I’m concerned, is one of the most interesting living philosophers, so this lecture was a must-see.

Margalit argues that compromise in politics in general is a good thing – even, in his own words, ‘shabby, sodden compromises’ can be good because they avoid a worse outcome. Yet not all compromises are good – the exemplar of course is the Munich agreement, in which Chamberlain’s Britain, France and Italy allowed Hitler to annex the Czechoslovakian Sudetenland, in return for promises for peace. Why, Margalit asks, are some compromises never good – or, rotten. His answer lies in the nature of the other party. Hitler was evil, and therefore any compromise with him would be a rotten compromise. Hitler in 1938 was not the Hitler of 1945, but still, the nature of Hitler’s Third Reich was clear. If the other party’s regime is inhuman, a compromise with the other party will be rotten. Rotten compromises, according to Margalit, should not be agreed to, ‘come what may’.

If we look at the Munich agreement, of course the dictum ‘rotten compromises must be rejected, come what may’ easily holds. If Britain had rejected the Munich agreement, the Second World War would have started earlier, and since the military build-up of the Third Reich had not been completed at the time, the Second World War probably would have ended sooner, with less casualties and suffering. And even if not, the War would have come anyway. But what if we look at the Yalta agreement, where the Allied powers split up Europe in a Western and Eastern sphere of influence? Stalin, the other party in this compromise, was clearly running an inhuman regime – an evil one. So this must have constituted a rotten compromise. But what was the alternative to the Western powers? Should they have rejected the compromise, and marched on to Moscow and Stalingrad in 1945, unleashing another devastating war on already war-torn Eastern Europe? To phrase it differently, doesn’t the rejection of any compromise, rotten or not, presuppose a reasonable alternative?

I posed this question to Margalit after his lecture. Margalit qualified it ‘a very good question’ and noted he took three chapters in his upcoming book to answer this very question. So, he said, he wouldn’t be able to fully answer it in this session, without summarizing his entire book. Yet he did provide ‘a short answer’. There he used the acute metaphor of a cockroach in the soup – if there is one, we do not take it out and say ‘the cockroach was bad, but the soup is still good’. If, on the other hand, there is a fly in the ointment, we can take out the fly and say ‘the ointment is still good’. At Yalta, according to Margalit, there was ‘a very big cockroach in the soup’.

Still, though this may settle Yalta, I’m looking forward to the larger answer in his book to the general question: doesn’t the rejection of any compromise presuppose a reasonable alternative? Generalizing from compromises, this boils down to question whether politics should take a pragmatic or idealistic stance. Margalit’s outright denunciation of rotten compromises is an idealistic component in a pragmatic political framework. I’m curious whether his book will answer whether this is still tenable when a reasonable alternative is not on the horizon.

Update: Margalit’s lecture is online now. My question is at the end of the interview with him.