Trifolia, how do I love thee? Let Me Count the Ways (Part 1)

I’ve worked with various incarnations of HL7 Implementation Guides (IG) for roughly 8 years. My first exposure was in the UK with the NHS Connecting for Health’s Message Implementation Manual (MIM) for V3 messages. I wasn’t involved in building this specification, but I did use it for coding. Later, I was responsible for creating the Clinical Document Architecture (CDA) IGs for Australia’s national eHealth program. Back then, these were manually created Word documents that evolved into partially automated DocBook created PDF documents.



No matter how you slice it, there is a massive amount of information contained in and supporting an IG. Some of the moving parts are:

  • information models
  • templates
  • data types
  • constraints
  • value sets
  • code systems
  • OIDs
  • versions
  • Schema
  • Schematron

These parts, while separate, are connected, such that a simple change to one part of the whole can mean subsequent changes to other parts.

Clearly, a manual (or even semi-automated) process for creating these guides can quickly turn into a living nightmare!

I was introduced to Trifolia 3 years ago. Even at that early stage, the tool was a revelation for me and I’ve seen it improve in leaps and bounds since then.

Trifolia is a web-based tool for management and publication of various types of “templates” (CDA, FHIR, HQMF, etc.). It has a SQL Server back-end; and is Schema-based (meaning quick updates, when, for example, a new CDA extension is approved and added to the CDA Schema).

Trifolia makes the super-lazy programmer in me very happy because:

  • Creating an IG with Trifolia is exponentially easier and faster
  • Trifolia becomes the “single source of truth” with the moving parts defined once and then referred back to as needed from different locations in the IG (and across IGs)
  • Fixes/changes propagate throughout with no manual intervention
  • Reduces errors due to the fix-once ability
  • Trifolia automatically generates validation code (Schematron) which can be exported and used to test/validate sample XML
  • It offers automatic versioning of IGs and templates. Once an IG or template is published, simply push a button to create a new version of that IG or template
  • I can instantly see the changes that have been made between one version and the next
  • Binding to terminology is simple, and once a binding is made, the terminology is automatically pulled into the IG
  • Due to the large number of templates stored in Trifolia, I find myself never having to create a new template – there is always a similar template I can copy and then slightly modify for my purpose
  • One press of a button exports the IG as a fully formed artifact (in MS Word and other formats). There are no error-prone manual changes necessary to the document once it’s been exported
  • Trifolia is always improving. Read our last blog post for details about the most recent release.

Basically, this means that as an information analyst, I spend much less time on boring and time-consuming menial tasks and much more time on the fun stuff like analysis and modeling.

Stay tuned for my next blog post where I’ll describe how Trifolia fits into my normal workflow. In the next post, I’ll get into more details about the generation of validation code (Schematron) and how I export and use the Schematron to test and validate sample XML.