There is little doubt that the first time you see the HL7 v3 RIM, or Reference Information Model, it will make you wonder how someone thought that this could make things easier. One of the key thoughts in moving from HL7 v2 to HL7 v3 is that the new v3 would be a model-driven methodology. The idea being that the v3 standard would support all healthcare workflows through modeling. The end result would be a standard that reduces optionality, maximizes reuse, and increases consistency in HL7 message specifications.
I don’t think anyone can argue with the goals above. Considering all the focus on interoperability, the goals of reuse, consistency, and reduced optionality are fundamental in the path towards achieving more seamless communication among applications and providers. But if this is a model-driven methodology, one needs to first understand the model. At first glance the RIM looks like a maze of colored boxes forced into an 8 by 11 page with arrows pointing every direction.

Probably the biggest hurdle to making sense of it all is an understanding of the colors, which represent classes. The class colors present in the RIM include:
- Red: The central block and represents an action,
- Pink: Represents an act relationship to describe how acts are related,
- Blue: Defines a participant,
- Yellow: Describes the role of the participant,
- Green: Represents the entity playing the role.
Once the coloring is understood, one can begin to imagine how the model might apply to a clinical setting. If I have an inpatient visit for a surgery at a hospital, I can start to put some pieces together. For example:
- The surgery is an act (red) that is a Procedure,
- I am participating (blue) as a Record Target,
- My surgeon is participating (blue) as the Performer,
- My role (yellow) is as a Patient, and
- I am the entity (green) of a Person.
It does indeed get more complicated than this, but at a very simple level I can walk through a few blocks of the model.
So why is this important?
I think it is important to draw a link between the coding of data and how it actually maps to a real-world scenario. For example, when I first started looking at XML instances of HL7 v3 CDA documents, I could read and determine what data was included but I had little feel for whether the data provided was complete nor what the context of the document as a whole represented.
Now that I have an understanding for the RIM, and more specifically the R-MIM constraint of the RIM for CDA, I have a better feel for whether the data provided is complete, whether all the appropriate classes are represented, and how the model ties everything together. The most important part is that I can read the code of a CDA document and start to picture the sequence of events that happened in the clinical setting. It would be much harder to do this without an understanding of the RIM.
While the RIM may seem to be an eye-sore at first, the value it provides in wrapping a real clinical workflow around what will eventually transform into cryptic XML code is extremely important. Once a basic understanding is achieved of the color scheme and the definition rules inside the blocks, the RIM can become a valuable to understanding v3 documents and giving them real context. And further looking at R-MIMs, which are derived from the RIM, can give much more insight to the make-up of specific documents within the HL7 v3 standard, such as CDA.
Is the RIM really that intimidating? Not really, and it is really worth the effort.
Rob Brull
Latest posts by Rob Brull (see all)
- Opinions about HL7 FHIR in the JASON Report - January 22, 2015
- What the JASON Report says about CDA - January 8, 2015
- The CCD/CCR Fork in the Road. Did Health IT Take the Wrong Path? - July 30, 2014