An interesting implementation question was recently submitted to the HL7 list serve for structured documents. The question centered around the correct way to express “none” in a CDA instance. In a general sense, “none” can have two meanings:
- A positive assertion. For example, a patient positively asserts no known allergies, no active medications, etc.
- An absence of information regarding any known allergies, medications, etc.
In a clinical setting, a physician clearly needs to be made aware of the difference between ‘no medication used’ from ‘no information about medication use’. The former is real medical information that can be used to diagnose and treat, while the latter confirms a lack of medical information.
With regards to how to code these differences, one opinion is as follows:
- ‘No medications used’ could be modeled using a SubstanceAdministration Act with a negation indicator and no reference to any specific type of medication.
- ‘No information about medication use’ could be coded with null flavors.
Other options include the use of an Observation Act and explicit SNOMED codes which clearly indicate the semantic meaning.
Each coding solution has its own advantages and disadvantages.
Negation is clearly defined in the RIM model, and ideally if there is a way to express a semantic directly using the RIM then that would be the preferred approach. However, there are mixed opinions to whether the negation indicator provides a clear semantic meaning in this case. The negation indicator, actionNegationInd, works as a negative existence quantifier on the actual, intended or described Act event. So what does a SubstanceAdministration Act with a negated indicator actually mean semantically? Simplistically it would indicate that there were no known medications taken by the patient at this time. But, what does an application do with an instance of the SubstanceAdministration Act that includes a negation indicator and also contains a medication? The semantics of this would be ambiguous.
All of the HL7 v3 data types include an attribute called nullFlavor. The nullFlavor text indicates that the value is either missing, incomplete, or somehow invalid with regard to the rules associated with the use code. This would seem to make sense for coding the scenario when no information is available about medication use. However, nullFlavor coding is not presently defined for this use case. Others may argue that null flavors could never provide the level of detail that a SNOMED code would provide.
Observation and Coding
As another alternative, the example scenario above could be modeled as an Observation Act. With an Observation Act, one could more clearly indicate the true semantic meaning of the scenario. A participant in the converstion, Dr. Bob Dolin, provided one example of how observations can be more effective. He asserted that at the effective time of the observation it would be clear that “the patient is not taking any regular medications at this time”. While a SubstanceAdministation Act negation indicator in a strict sense says at the effective time that “the patient is not ingesting a pill at this time.”
- Observation.code = “on no medications”, effectiveTime = June 23, 2011 (Indicates that on June 23, 2011, the patient is not on any regular medications.)
- SubstanceAdministration, actNegationInd = “true,” effectiveTime = June 23, 2011 (Indicates that the patient is not having something administered to them on that specific day of June 23, 2011.)
While using the Observation Act seems like a clear approach, HL7 wants to prevent everything from becoming an observation. The general rule with HL7 v3 is that you do not include something in an Observation Act if you can achieve the same result using other acts. And, data related to medications logically seems like it should be included in the SubstanceAdministration Act.
Using SNOMED coding is another alternative to provide greater details with consistent meanings. However, there are concerns as to the universal acceptance of SNOMED or any other coding system which might provide suitable meanings.
Impact on Semantic Interoperability
The case of interpreting “unkown” with regards to medication is not just an isolated case, but brings to the front some very good questions about semantic interoperability using the RIM-based model.
There are many domains in addition to the CDA specification which are RIM-based. The questions posed in this blog go beyond the impacts to CDA. When it comes to healthcare interoperability, it is not only critical that applications exchange the data flawlessly but that they interpret the meaning of the data in the same way. Negation is a perfect example of how the same data can be interpreted differently by different applications.
It is great to see questions such as this rising. It means that HL7 v3 is actively being implemented into applications. As more questions are asked, and the proposed solutions are debated, clear definitions will arise from the discussion. And clearer definitions are good for everyone involved. They will lead the industry closer to semantic interoperability and thus a better level of care.