Showing posts with label SNOMED CT. Show all posts
Showing posts with label SNOMED CT. Show all posts

Tuesday, March 28, 2023

Translating CDA to FHIR: SNOMED CT Codes


One of the challenges in translating from CDA (or C-CDA) to FHIR is related to variations in how CDA and FHIR store complex SNOMED-CT codes using qualifiers.  As you might expect, these differences are especially significant when the concept being encoded uses the SNOMED CT Expressions. 

In CDA, these codes are stored using the ConceptDescriptor (CD) data type, and unpacks the concept using the Qualifier component of the concept description when the code is a SNOMED CT expression.  This is arguably a flaw in HL7 Version 3 standards, as the qualifier concept is variably expressed in SNOMED CT and other terminology systems differently through their own expression languages, and shouldn't be syntactically unpacked in the CD data type.  It's overengineering the terminology component to meet the needs of a data model, and overgeneralizing (in the favor of SNOMED) how this may be handled in other terminologies.

HL7 FHIR uses the CodableConcept data type, and doesn't unpack the expression (fixing this flaw).  If we take the SNOMED CT example provided at that link and shown below:

Example

And look at it in CDA, we would see:

<code xsi:type="CD" code="284196006" codeSystem="2.16.840.1.113883.6.96" 
      displayName="burn of skin">
    <qualifier>
        <name code="363698007" codeSystem="2.16.840.1.113883.6.96" displayName="finding site" />
        <value code="770850006" codeSystem="2.16.840.1.113883.6.96" 
               displayName="Skin structure of left index finger"/>
    </qualifier>
</code>

But in FHIR:

<code>
  <coding>
    <code value='284196006|burn of skin|:363698007|finding site|=770850006|Skin structure of left index finger|' 
          system='http://snomed.info/sct'/>
  </coding>
</code>
                    <!-- OR Better yet (IMNSHO*) -->
<code>
  <coding>
    <code value='284196006:363698007=770850006' system='http://snomed.info/sct'
          display='|burn of skin|:|finding site|=|Skin structure of left index finger|'/>
  </coding>
</code>
NOTE, the latter example is just a simplified version of the former without any display name values.

This use of SNOMED CT Expressions is advanced, and doesn't show up often in the real world, but when it does, it is a real challenge for implementers.

To convert from a SNOMED CT code with qualifiers in CDA to a SNOMED CT Code in FHIR, apply the following algorithm:

  1. Generate new nested <fhir:code>, <fhir:coding> and <fhir:code> elements.
  2. If there is a cda:code/@code attribute, generate a value attribute in the final fhir:code element as follows:
    1. Set fhir:code/@value attribute in FHIR to the value of cda:code/@code
    2. (Optional and legal, but not recommended): If there is a cda:code/@displayName attribute in the CDA, append "|" + @displayName + "|" to fhir:code/@value.  NOTE: This captures displayNames, which you should only trust from your own terminology service, and it also appends a string to fhir:code/@value which will complicate FHIR Search operations in most FHIR implementations.
    3. For each cda:qualifier element from SNOMED CT in the cda:code element. 
      1. Append ":" + cda:qualifer/cda:name/@code to fhir:code/@value
      2. Again, optional, legal and not recommended: append "|" + @displayName + "|" to fhir:code/@value
      3. Append "=" + cda:qualifer/cda:value/@code to fhir:code/@value
  3. If there isn't a code/@code attribute, generate an appropriate uncoded value in FHIR (possibly using null flavors depending on the IG).  NOTE: If there's NO @code, but there are cda:qualifier elements, this is bogus, and should be reported as a validation error on input, at least for SNOMED CT.  You can't qualify an uncoded value.
Some comments:
  1. SNOMED CT expressions allow display name values to be appended to a code between vertical bars | (we call these pipes in HL7 V2).  I don't recommend putting the display names into the code even though it's legal and semantically correct.  Pragmatically, it's going to cause your FHIR implementation to have problems in search.
    1. This is legal:
      <code value='284196006|burn of skin|:363698007|finding site|=770850006|Skin structure of left index finger|'  system='http://snomed.info/sct'/>
    2. But this is MUCH better:
      <code value='284196006:363698007=770850006'
            display='|burn of skin|:|finding site|=|Skin structure of left index finger|'
            system='http://snomed.info/sct'/>

  2. Don't trust display name values from external systems.  Use the display name values from your own, validated terminology service.

  3. Consider how incorporating qualifiers into codes will impact your search.  In general, qualifiers reflect refinement in SNOMED CT, which implies subclasses of the core code.  You might consider coding it twice, once without the qualifiers, and a second time with the qualifiers:
    <code>
      <coding>
    
        <code value='284196006' system='http://snomed.info/sct'
              display='burn of skin'/>
        <code value='284196006:363698007=770850006' system='http://snomed.info/sct'
    display='|burn of skin|:|finding site|=|Skin structure of left index finger|'/> </coding> </code>
    I like this better because a search for fhir/Condition?code=
    http://snomed.info/sct|284196006 is going to find what the end user expects, all Condition resources representing a burn of skin.

  4. If you go with #3 above, you may be concerned (and rightly so) about negation.  There are a couple of recommendations you might consider:
    1. Insert a human into the mix and ensure that qualifiers related to negation or other situations with explicit context are correctly interpreted in workflows that involve importing data from CDA into the patient chart.
    2. Read through and understand SNOMED CT documentation on this topic.
    3. Few systems today use SNOMED CT expressions.  Fewer yet use them with negation.  That doesn't mean you can safely ignore it. Make it an exceptional process in your conversions, AND don't try to automate processing it, just detect it and call for (human) assistance in interpretation.  The number of times that happens is likely be small enough to avoid user complaint, yet remain safe for patient care.  And note, my expert opinion does not excuse you from making your own risk assessments and code accordingly.

Keith

P.S. To make it even uglier, technically, the FHIR representation would also be legal in CDA, if about as rare as a snowball in Central Africa.

<code xsi:type="CD" value='284196006:363698007=770850006'
      displayName='|burn of skin|:|finding site|=|Skin structure of left index finger|'
      codeSystem="2.16.840.1.113883.6.96">
* IMNSHO = In My Not So Humble Opinion

Monday, June 16, 2014

NIC NOC Who's there?

Arguably in the various Healthcare Standards battles I've watched, it is most often the nurses that act like grown ups.  But not always. I sit on the sidelines and observe this time around, as the Nursing Terminology Wars heat up again in the discussion of appropriate terminologies for encoding different parts of the care plan.  Someone asserts that general agreement was made to use terminology X, another person cites terminology Y is better suited.  This same debate occurred more than five years ago in my memory, and I'm sure it has occurred many times prior to that.  For the most part, I'm hoping against hope that it won't crop up again after this minor flare up.

Several (perhaps the majority even), are fairly clear, and readily understand the way forward, and that is simply to use SNOMED CT (at least in countries that license it) for this challenge.  NIC, NOC, NANDA, and CCC terms have all been mapped into SNOMED CT.  Unlike many of the nursing specific vocabularies, SNOMED CT is free to use by all in the US, does not have restrictive licensing agreements on use with other terminology systems, and has already been built into many products.

So why are we having this debate again?


Friday, February 17, 2012

On the ICD-10 Delay, ICD-11 and SNOMED CT

I was asked what I thought about the ICD-10 delay on twitter yesterday, and it is the topic of an #HITsm chat today. Tom Sullivan over at Health IT News writes about how this might set the stage for use of ICD-11. I wrote about ICD-10 and ICD-11 and SNOMED CT a few years ago.  In response to that post, Chris Schute at Mayo, who is also the ICD-11 Steering group chair told me about how they planned on ensuring that ICD-11 would be linked to SNOMED CT.  Details are in this 2008 report to NCVHS. You can even read about it on Wikipedia:

SNOMED CT is currently used in a joint project with the WHO as the ontological basis of the upcoming ICD 11.

Now I have to tell you, I'm of two minds about the whole idea.  Because of the timing for ICD-10, Health IT vendors have invested quite a bit of effort into it already.  A lot of that work would need to be tossed out and redone.  Not so much for field widths, but dealing with mapping, lookup, et cetera.

On the flip side, using an ontology for billing that is strongly linked to one that is used for providing clinical care will (I believe) really improve care.  It would also provide for much greater interoperability between clinical (e.g., EHR and CDS) and revenue cycle management applications.  And there's the whole "quality measurement" set of issues regarding EHR vs. Abstraction workflows that we were discussing yesterday in the Clinical Quality Workgroup that could be dramatically improved too.

The idealist in me shouts "Yes! Let's use ICD-11".  The pragmatist in me says (more quietly) to move ahead with ICD-10, perhaps a bit more slowly because of all the investments made by organizations thus far. Right now, the idealist is winning, but my guess is that he's likely to be disappointed.

The benefit of being of two minds on this topic is that no matter how it turns out, I'll win.  The disadvantage is that no matter how it turns out, I'll also lose.

Friday, August 19, 2011

The focus is changing in HealthIT

Why do EMR systems come with ICD-9-CM codes installed instead of SNOMED CT?  It may very well be that it's because that's what providers get paid for.  It used to be common wisdom that biggest reason for installing an EHR was to improve upon payment.  With meaningful use, the focus is shifting from that to exchange of clinical data.

If you look at the ACO rules, the shift is also towards exchanging clinical data.

If you look at some of the work happening in Health Information Exchanges that payers are setting up, there also is a move towards clinical data exchange.

If you look at the recent work of the HIT Standards committee, you see the focus on quality measures has shifted to clinical vocabularies.

I welcome this shift, and see it as the start of a Healthcare Revolution.

This sort of revolution won't be without its challenges.  We definitely need established mappings from ICD-9-CM and ICD-10-CM to SNOMED CT to support them.  As HIMSS mentions in their post, it could take some time to implement.

Tuesday, September 14, 2010

The Healthcare Standards Interconnections

Somebody recently asked me for information about collaborations between the different standards organizations and gave me a spreadsheet they had started.  Well, a spreadsheet might be a good way to gather this data, but it wasn't the best for visualization.  I spent about half a day putting together something that I think works based on a very small data set based on what I knew and could find out quickly.  It really works out to two tables:

Organizations
SDO/Profiling Organization   Type of Organization   URL

Types of organizations include SDOs like HL7 and IHTSDO, Profiling Organizations like Continua and IHE, and could include other kinds of organizations like government agencencies and medical professional societies, but I skipped these latter two.  The problem is already pretty complex.  I did separate Vocabulary from other sorts of SDOs, and general rather than healthcare specific SDOs.

Relationships
Source   Destination  Relationship Type  Relationship Description   URL

Relationship types included governance (like JIC or the SCO Summit), joint work products/ballots, MOUs and Collaborations, Memberships of one organization to another, or liaison relationships of one organization with another.

The best visualization I've been able to come up with is using FDP with GraphViz.  FDP uses a node placement strategy based on weights associated with edges between nodes.  It then minimizes the energy or force exerted in the graph.  I'd love to have added an image map with this, but it seems my version of GraphViz generates empty maps.  This was a brief side project so I haven't tracked it down, but you can if you want.  The source file for the image below is on Google Docs using the DOT Langauge.

Color Key
Profiling Organizations are in brown ovals.
Healthcare SDOs are in black ovals.
Healthcare Vocabulary SDOs are in cyan ovals.
General IT SDOs are in magenta ovals.

Red arrows are Joint work products.
Blue arrows are MOUs.
Green arrows are Memberships.
Purple arrows are Liaison Relationships.
Yellow connections are between SCO Summit Organizations
Orange connections are between JIC Organizations

Visualization

This graph shows one view of the community, and a pretty well connected one at that. But I'm still missing a LOT of data (this is really about a four-week long research project with direct contacts to each SDO).  I know there are relationships I don't know about and don't even know how to find.  I've also pruned the graph some.  I have omitted two treaty organizations (IEC and ITU) and a few other SDOs because they had only one other connection.

I also have NOT dealt with use of standards across these workgroups (e.g., IHE use of HL7 CDA or DICOM WADO, or HL7 use of W3C XML, et cetera).  That would be an even bigger data set to gather, and would put IHE, Continua, W3C and IETF right in the middle of all the action.

If you like, download the data file, add your own connections, and play around.  GraphViz is pretty easy to use.

What you DO NOT see on this graph are the connections made because of the people involved. Cross membership of individuals would overwhelm this simple diagram. But in many cases, it's that same cross membership of key individuals that brings SNOMED CT or LOINC expertise into IHE or HL7, or NEMSIS to HL7, or ...

Cross leadership is probably something worth figuring out (but not on my time). Cochairs of IHE Committees are often cochairs of DICOM committees or HL7 workgroups, or leaders of ISO TC 215 workgroups or ASTM committees or ... and visa versa.

There's also a few very strong connectors in that cloud above worth identifying. They are pure gold mines of information (I aspire to be one of them someday).

It was the people more than anything else that ensured that IHE, HITSP and HL7 coordination was as good as it was.  I can even point to a perfect example, because that individual was the recipient of the first Ad Hoc Harley, and he made sure that the three organizations stayed connected.
As I think about it, looking at the graph above, what it tells me is that I don't need one more place to go to deal with standards and harmonization.  I need a couple fewer.  I need a place where I can work on several of these activities at the same time, with the ideal being that I'm just working on one thing at that time.  I'll say it again, I'd love to see something like the Canadian model here.

Thursday, December 17, 2009

Vocabulary

Healthcare IT products need to deal with terminology for ICD-9-CM, ICD-10-CM, ICD-10-PCS, SNOMED-CT, RXNORM, LOINC, NDC, CPT, HCPCS, UMLS, the Healthcare Provider Taxonomy and a number of proprietary vocabularies as well.  Most of these use different file formats to exchange the data about the vocabulary.

What I'd really like to see is everyone use standard format to exchange this information.  Preferably I'd like that format to be XML-based to make it easier to process.  But I'd also like that representation to be fairly compact, so I might be able to live with a text delimited format.  I can readily create an XML reader that will import common text delimited formats in an XML document for processing, so it's not a huge problem if the format isn't XML-based.

Finally, I'd like everyone to agree on some very common concepts (e.g., "is a") that need to be expressed so that these concepts have the same meaning across terminology.  Ensuring that we have a set of commonly accepted (standard) relationships will certain help us get to a point where we can reason across terminology boundaries.

The US Federal government is responsible in some way for maintenance, delivery or mandated use of some of these vocabularies (RXNORM, UMLS, ICD-9 and 10 variants used in the US, NDC, HCPCS and the Healthcare Provider Taxonomy), and yet almost all of them require different file formats for distribution.  It's what I've come to expect from my government, but I wish it would stop.  At least the work done by NLM (RXNORM and UMLS) have a common file format.  The Rich Release Format is used for both of these and uses | as a text delimiter to separate columns.  In fact, it might even be worthwhile to have a number of SDOs get together and agree to use that format (or perhaps a modification of it) to deliver vocabulary information.

Some of the vocabularies I mention are published in books with a lot of ancillary material that should also be part of the downloads.  For example, the ICD-9-CM vocabulary contains a rather large index which is incredibly valuable, along with a number of inclusions and exclusions.  But to really make good use of the vocabulary you need the data associated with these additional parts incorporated into the downloads.

Finally, I'd like to see some of the hierarchical relationships in some of these terminologies be formally expressed within them.  LOINC for example, contains numerous concepts describing clinical documents, but the LOINC data itself doesn't actually include some of the important relationships between the different types.  For example, the Admission History and Physical Note (47039-3) doesn't show up as being related in the document hierarchy with the Cardiology Hospital Admission Note (34094-7).  The same is also true for relationships between the various laboratory results. 

As we in the US continue to talk about simplification and debate some of the really hard IT topics, this seems like a really simple problem to solve that could be addressed with just a little bit of the right attention.

Wednesday, November 25, 2009

Turducken

Thinking about what it takes to get healthcare information communicated securely from one point to another reminded me of a Thanksgiving feast I still haven't tried yet.

A Turducken is a chicken, stuffed inside of a duck, stuffed inside of a turkey, and then cooked for a good long time.  I'm told by people who've had them that they are:
  1. Wonderful to eat
  2. Complicated to prepare
I feel that way about the current set of healthcare standards. Think about it:  We've got SNOMED CT, LOINC and RXNORM stuffed inside an HL7 CDA Document, packaged inside an IHE Cross Enterprise sharing transaction.  It is in fact, wonderfully full of content, securely exchanged, but is a bit complicated to prepare. 

My friends' third observation on Turducken was that it was worth the effort, and that parallels my own experience with standards based health information exchanges.

Have a happy Thanksgiving for those of you in the US, and for those of you who are not, have a good week.

UPDATE:  My wife pointed out to me after having heard about this morning's post that you can purchase a Turducken already prepared.  The same is true for the multiple standards put together by HITSP.  See OHF,  IPF and CONNECT for some examples.  Another excellent comparison.

Wednesday, July 2, 2008

Healthcare Revolutions

In honor of Independence Day, I have a few rebellious thoughts on our healthcare system, and some revolutions that we might encourage. I happen to like fireworks, so consider this my contribution to an interesting Fourth of July.

Wipe out ICD for billing
Why is it that experts in the field of healthcare standards routinely comment on the fact that billing codes are not suitable for providing data useful for clinical care, and yet we are required to report care provided using billing codes. If we really want to improve healthcare, would it not make sense to use the same measures on both the clinical and billing side? One of the principles of Six Sigma (and similar process improvement initiatives) is that you need to be able to accurately measure inputs and outputs of a process in order to improve it. Furthermore, having appropriately calibrated measurements is vital to the success of these efforts.
Why have we invested so much time and effort in the US National program1 to promote reference terminologies like SNOMED CT, and yet we require the use of a vocabulary originally designed for reporting mortality statistics, and an outdated version at that so that providers can get paid? Wouldn't it make sense to require that billing be done using clincial codes? Why do we need to spend so much time dealing with two different coding systems? Why should providers be the ones who have to make the conversion from one to the other?

Here's a radical idea. Why don't we require that the values used for billing codes come from a clinical reference vocabulary like SNOMED CT. Furthermore, we could select a reasonable value set from SNOMED CT that would allow clinical users of that vocabulary to roll up their SNOMED CT codes into the billing value set automatically. If, for some arcane reason you have an absolute need to be able to map to a vocabulary such as ICD-10, then when you creating the billing value set, do so in such a way that the mapping to ICD-10 is also automatable.

One of the advantages of this revolution would be to accellerate the adoption of clinical reference vocabularies, as recommended by the NCVHS, the Consolidated Health Informatics Initiative, and ANSI/HITSP. Another potential advantage would be to increase the value of claims data to providers. A third rationale would be that the "instruments" used to measure the practice of care, and the cost of care, would be calibrated on the same scale.

Create a Healthcare Price Index
We note that consumers do not have a good way to understand the costs of healthcare, either direct or indirect. Yet we do have a way to compare fuel economy for different automobiles, and have had ways to compare the cost of living in two different cities for many years. Why can't we create a basket of healthcare goods and services that meet the needs of various healthcare constituencies, and use that as a standard measure?

Different healthcare providers could report their costs for each of the items in that basket of goods, and different insurers could also describe what the consumer's payroll deductions and out of pocket costs would be for goods and services. We would be able to easily determine which plans provided better value based on our own needs for items in that basket, and be able to compare the value given by various healthcare providers.

This may be radical, but it shouldn't be revolutionary. It just applies some of the same principles we've been applying to the economy to the economics of healthcare. I'll bet we could hire a blue ribbon panel to develop the basket of goods for the cost of say, two or three useful new terminology definitions.

Determine which jobs we need to eliminate
This breakdown shows that most of the costs in healthcare are labor. The most productive way to take costs out of the healthcare system would be to cut labor costs. Obviously it makes more sense to cut the most expensive labor costs before the lesser costs. So, the question to answer becomes, who are we going to get rid of, and what are we going to replace them with?

This question is so radical that I'd like to hear your own revolutionary thoughts...


1 You'll see me describe the ONC/AHIC/HITSP/CCHIT/NHIN/HISPC activities as the US National Program from time to time, usually when I've recently had to describe it to someone from outside the US.

Friday, June 27, 2008

Clinical Decision Support

Some problems are so complex that you have to be highly intelligent and well informed just to be undecided about them. – Laurence J. Peter

Clinical decision support is of great interest right now in the United States. In September of 2007, the American Health Information Community released prototypes of six use cases, almost all of which call for clinical decision support in some way. Earlier this week, I spent about 45 minutes on the phone explaining the current state of clinical decision support standardization to a contractor working for ONC. It was an important call, even though unscheduled, and so I gave up about half the unscheduled time I had left in the day to the topic.

One reason for the interest in clinical decision support is that a number of activities can be streamlined through the use of these tools, improving care and reducing healthcare spending. These tools enable clinicians to access relevant information to provide safe and effective care. Having access to relevant information is critical. The volume of knowledge necessary to provide safe and effective care to patients is such that no human can know all that is necessary. This knowledge is growing at an extremely rapid pace. MEDLINE, a database of clinical research citations provided by the US National Library of Medicine adds hundreds of thousands of citations to its database annually.

Another reason for interest in clinical decision support is that these tools might enable automation of mandated reporting under various State and Federal regulations. A great deal of paper flows inside healthcare facilities in order to keep up with these reporting requirements. It takes a great deal of manual effort to keep this information flowing. Even when the reporting is done electronically, the information does not often originate from electronic sources, and must be manually gathered.

As the starting quote alludes to, clinical decision support is an incredibly complex problem. Before I dive into the details, I'd first like to describe what clinical decision support is. A common interpretation of clinical decision support is that it involves invoking an application (or interface or service), providing it with data, and having it invoke some action like alerting a provider or returning a treatment plan or suggestion for care (as in the case for drug interaction tools). This is just one of many different ways that clinical decision support is implemented.

Clinical decision support encompasses a variety of tools that assist healthcare providers in providing safe and effective care to patients. These tools take a variety of forms, including flowsheets, assessment instruments, drug interaction knowledge bases, vaccine forecasting tools, genetic risk assessment tools, chronic disease management solutions, population stratification tools, and quality measures.

  • Flowsheets are designed to make the most relevant information available to healthcare providers quickly and easily to enable clinical decision-making.
  • Assessment instruments support clinical decision-making by gathering certain information supplied by a provider or the patient, and using that information to compute results that can help providers implement appropriate care plans based on overall assessment scores.
  • Drug interaction databases are probably the most common example of clinical decision support tools. These databases keep track of interactions between a drug and other drugs, allergies or conditions, and report potential difficulties when providers are ordering medications.
  • Vaccine forecasting tools take information about a patients current allergies, conditions, medications, and vaccination history, and propose plans for immunizations that should be received and when.
  • Chronic disease management solutions collect data on patients enrolled in a chronic disease management program, either through remote monitoring; telephone interviews, or electronic submissions from portals or provider EHR systems. These solutions review the gathered information and suggest various actions to take to facilitate management of the disease, including the scheduling appointments, patient contacts, et cetera.
  • Genetic risk assessment tools gather information about a patient; including their medical history, family history, and genetic test results, and assess the patient's risk for genetically related diseases.
  • Other tools allow populations to be ranked for disease risk to identify groups that may need alternate levels of care.
  • Quality measures are clinical decision support tools that can be used to identify areas that need attention in a clinical practice.

All of these tools provide clinical decision support. Some are applied in the context of a single patient, while others apply to populations.


No sensible decision can be made any longer without taking into account not only the world as it is, but the world as it will be. – Isaac Asimov

As the body that is responsible for selecting standards for the AHIC use cases, HITSP needs to take into account:

  • existing standards,
  • current works in progress,
  • the impact of selected standards within and across use cases.

In March of this year, the HITSP Population Perspective TC and Care Management and Health Records TC hosted a Clinical Decision Support day at our face-to-face meeting. During that day, we heard from several experts in the area of clinical decision support, including developers of some of the clinical decision support standards described below. As a result of these discussions we learned a great deal about clinical decision support, including some of the information already provided in this blog.

At the end of the day, we synthesized a model describing clinical decision support that received a good deal of validation from the participants. An image of that model appears here.

In our model, we viewed Clinical Decision Support as a black box, through which we have three different kinds of inputs, and several different types of outputs. The inputs and outputs are of interest to HITSP because they represent areas where standards are needed to support interoperability. The three different inputs include:

  1. Algorithms, or knowledge about how to make inferences or assertions based on existing instance or world knowledge.
  2. Instance data describing the specific case that is being address by the clinical decision support application.
  3. Ontological or "world knowledge", representing facts about the world, such as what drugs interact badly, or how body parts are related, or the relationships between genes and diseases.

Standards exist for each of these three areas, but also a need for more work to make these standards implementable in the healthcare environment. The puzzle is still missing a few pieces.


Algorithms
Several standards exist to support clinical decision support algorithms that need to make yes/no answers. More work is needed in this area to integrate those standards into a set of coherent tools that can be used together.

Arden Syntax
Arden Syntax is perhaps the oldest and most well known standard used for clinical decision support. Arden Syntax originated in 1989 at the Arden Homestead. In 1992, version 1.0 became an ASTM standard. It transitioned to HL7 and version 2.0 became an ANSI and HL7 standard in 1999. The HL7 Clinical Decision Support workgroup is responsible for maintaining the standard. The current version of Arden Syntax is 2.7, which passed HL7 Ballot in May of this year.

Arden Syntax is designed for use by clinicians with little or no formal training in programming. The benefit of this design is that it makes it easy for clinicians to verify the clinical accuracy of a particular medical logic module that is written in that language. Hundreds of medical logic modules have been created for Arden Syntax and are available from the CPMC Medical Logic Module Library.

A key problem in Arden Syntax is known in clinical decision support standards circles as the "curly brace" problem. In short, Arden does not define how an implementation of the language integrates with the healthcare application using it. Arden Syntax leaves that integration to statements that appear within pairs of curly braces { and } inside a medical logic module.

GELLO

GELLO has its ancestry in other expression languages and tools for clinical decision support, including GLIF and GLEE. GELLO is an object-oriented language designed to:

  • Extract information from electronic health records,
  • Compute decision critieria,
  • and abstract or derive summary information.

GELLO is based on the Object Constraint Language developed originally by IBM and now part of the UML Standard. GELLO is not a proper subset of OCL, nor is it a pure extension as it explicitly leaves out some capabilities of OCL. However, developers familiar with OCL should find GELLO syntax readily accessible.
GELLO, like OCL is a declarative, rather than procedural language. The simplest way to explain a declarative language is by example. PROLOG and SQL are declarative languages. You describe the result you want to the SQL or PROLOG interpreter, and it decides the best way to obtain the result. The same is true in OCL and GELLO. Declarative programming requires a different way of thinking when expressing a decision problem. When you describe how to make a decision, most people express the decision making process procedurally.
The GELLO language is sufficiently different from OCL that it does require a grammar to be specified. HL7 had previously published a grammar for the GELLO language. However, that grammar has several defects that needed to be corrected. Some ambiguities in either the published grammar or the GELLO language specification have resulted in differing implementations of the language.
The HL7 Clinical Decision Support workgroup is presently working on a new release of the grammar intended to correct these deficiencies. In this context there are several discussions within that work group on whether GELLO should be defined as a subset of OCL, or should be defined in a way that would allow it to be mapped to OCL. One benefit of this approach might be an increase the availability of GELLO language implementation. There are several existing implementations of OCL in existence, including several supported by open source.
There is also an open source project that is developing GELLO tools (see http://www.gello.org/), however no applications or software are available for download as of today.
Like Arden Syntax, GELLO does not explicitly define how GELLO is integrated with an electronic health record. However, GELLO can easily be integrated with any HL7 RIM-based data model due to the object-oriented nature of the language. A simple data model is given as an example in Annex D of the HL7 GELLO language specification. GELLO is intended to be used with something called the vMR or Virtual Medical Record, which is described in more detail in the next section.
Instance Data
With regard to instance data, one of the problems that needs to be resolved is how to represent the information needed to support clinical decisions support applications, and how to exchange that information between applications needing to provide clinical decision support services.
Virtual Medical Record
In 2001, Johnson, Tu, Musen and Purves published a paper titled "A virtual medical record for guideline-based decision support" which can be found in the Proceedings of the AMIA Library . This often-referenced paper describes the concept of the Virtual Medical Record, or vMR that can be used to support guideline-based decision support. The concept of the virtual medical record is so often referenced in clinical decision support circles that I found it surprising that this wasn't defined by HL7 as a standard already. However, in January of this year, the HL7 Clinical Decision Support work group submitted a project to create an implementation guide for the virtual medical record, and expects to complete this work in the months ahead. This project will recommend a data model to use with the vMR, based on existing HL7 standards. One proposal for this model has already been made and recommended by several members of HL7 and co-chairs of various HL7 working groups. That recommendation is to use the HL7 Care Record and Care Record Query draft standards for trial use (A DSTU is essential a "prototype" standard, released for implementation testing).
The Patient Care Coordination Domain of Integrating the Healthcare Enterprise recently released an update to the Query for Existing Data (QED) profile, which makes use of the aforementioned standards, and a new profile know as the Care Management (CM) profile, using those same standards.
HL7 Continuity of Care Document
On of the recent things we've learned about the HL7 Continuity of Care Document or CCD is that templates can be extremely powerful. Having defined a few dozen templates in the CCD, we now find those same templates appearing in numerous other standards and implementation guides from HL7, IHE, Continua and CDA for Common Document Types projects. The benefit for clinical decision support to this proliferation of the CCD templates is that we are finding the same templates being reused over and over again to record the same kinds of information. That degree of consistency is absolutely necessary when you want to apply decision support to information that may be coming from different healthcare IT applications deployed all over the country.
The IHE Patient Care Coordination Technical framework uses the CCD templates as the basis for much of its material. Where the CCD has defined a particular template for use, IHE has either used it directly, or used and further constrained it in its technical framework. One profile that makes surprising use of CCD templates is the Query for Existing Data profile described next. The Care Management and Health Records TC in ANSI/HITSP is looking at a similar approach in the HITSP component specifications, as that committee is already responsible for four specifications that make use of the IHE PCC profiles to exchange content.
Query for Existing Data
The IHE Query for Existing Data integration profile explains how to use the HL7 Version 3.0 Care Record and Care Record Query DSTUs to query an EMR for clinical information. This profile also makes use of the Continuity of Care Document templates, but enforcing the rules of those templates on the clinical statements returned by the query transaction. The QED profile supports the ability for a clinical decision support system inside an enterprise to query for specific clinical data from that enterprises EHR system.
Care Management
The IHE Care Management (CM) integration profile uses the same standards as QED, but for a different purpose. In this integration profile, the HL7 Version 3.0 Care Record messages play an extremely important role. They allow systems that IHE describes as "Guideline Managers" to publish parts of a guideline. The part of the guideline that is published is the list of specific clinical data they downstream systems are interested in receiving. These descriptions are given in enough detail so that EHR applications can automatically determine what information updates need to be sent and when. These information updates can also be provided using existing HL7 Version 2 messages to support legacy applications.

HL7 Decision Support Service

The HL7 Service Oriented Architectures workgroup is presently working on implementations of the Decision Support Service Functional Model DSTU. One possible implementation for this service would utilize the HL7 Care Record DSTU previously mentioned several times to generate a vaccine forecast for a patient. The way this service would work would be to publish a Care Record Event which contained the necessary information to generate a vaccine forcast using the Care Record message. The response message from the DSS would be another Care Record Event that contained two pieces of information:

  1. A validated list of immunizations
  2. A care plan containing a proposed vaccination schedule for the patient.

This follows the general structure needed for many clinical decision support problems (e.g., drug interaction checking). The care plans produced by the service can describe different treatment alternatives, provide the reasons for the suggested treatments and the goals and risks asociated with each.
World Knowledge
Ontological or world knowledge often appears in terminology systems, such as SNOMED CT and RxNORM, which require frequent updates as new world knowledge is provided. Standards are needed to support the exchange and update this information on a routine rather than exceptional basis.
IHE ITI Sharing Value Sets
Enter the Sharing Values Sets (SVS) profile supplement published recently by IHE for public comment. This profile is intended to provide a mechanism to for applications needing value sets to obtain them repositories that maintain them. This will allow common value sets to be maintained in central locations. One use for value sets in clinical decision support is to identify specific sets of values that describe an aggregate concept that a clinical decision support system needs to act upon. An example would be the set of values that are used to identify reportable or notifiable conditions from a reference vocabulary such as SNOMED CT. In this example, a limited subset of SNOMED CT codes could be maintained as a value set to identify a set of conditions that require reports to be made to state or Federal public health officials. The benefit of this to interoperability is that these value sets can then be accessed by a large number of applications systems as needed.

Summary
There is a great deal of activity going on through various standards organizations in the area of clinical decision support. Not all of the pieces are ready today, but it is no accident than many of the pieces of the puzzle are starting to fit into place. Those of us who spend a great deal of time in healthcare standards are paying attention, and making sure that the relevant standards bodies do as well.
There is still a great deal of work that needs to be done in the area of Clinical Decision Support. Future discussions on this topic within AHIC and ONC should continue to include those of us who have been working on these standards.

Let's get coordinated!

-- Keith

P.S. In the interest of full disclosure, I've been intimately involved with many of the aforementioned standards activities in IHE and ANSI/HITSP to some degree also in HL7. I am the principle editor of the IHE Query for Existing Data and Care Management profiles, and have been involved in many of the dicussions on GELLO and the Virtual Medical Record within HL7, and co-chair the CMHR TC in ANSI/HITSP.