Convert your FHIR JSON -> XML and back here. The CDA Book is sometimes listed for Kindle here and it is also SHIPPING from Amazon! See here for Errata.

Tuesday, July 12, 2011

How to say no...

Yesterday I posted a long write-up describing how to say I don't know.  Following up on some questions from yesterday, I'll explore how to say now.

First, let's summarize the bestiary we need to address:

  1. Patient is not on THIS drug.
  2. Patient is not on ANY drugs.
  3. Patient does not have THIS ailment.
  4. Patient does not have ANY ailment.
  5. Patient does not have THIS allergy.
  6. Patient does not have ANY allergy.
Two patterns here:

  1. Patient does not have / is not on a specific thing.
  2. Patient does not have / is not on any known thing.
Now, I didn't address this when dealing with unknown, because this is knowledge.  Forget the hedge implicit in "Patient has no known allergies."  No known is NOT the same as unknown, and is there to remind the reader that what is known does not necessarily cover every possibility that could occur.  I didn't know I was allergic to bee stings until I was exposed to them.  A close friend developed an allergy to wheat products later in life, possibly as a result of some other illness.

Patterns 1 and 2 above correspond very closely to patterns 2 and 3 from yesterday.

Pattern #1
A specific thing is not present.

Specific Problem Not Present
<entry>
<observation classCode="OBS" moodCode="EVN" negationInd="true"> <code code="64572001" displayName="Disease" codeSystem="2.16.840.1.113883.6.96"/> <value xsi:type="CD" code="38341003" displayName="Hypertensive Disorder" codeSystem="2.16.840.1.113883.6.96" codeSystemName="SNOMED CT"/> </observation> </entry> Specific Medication Not Present <entry> <substanceAdministration moodCode="EVN" classCode="SBADM" negationInd="true"> <consumable> <manufacturedProduct> <manufacturedLabeledDrug> <code code="81839001" displayName="anticoagulant drug" codeSystem="2.16.840.1.113883.6.96" codeSystemName="SNOMED CT"/> </manufacturedLabeledDrug> </manufacturedProduct> </consumable> </substanceAdministration> </entry> Specific Allergy Not Present <entry> <observation classCode="OBS" moodCode="EVN" negationInd="true"> <code code="106190000" displayName="Allergy" codeSystem="2.16.840.1.113883.6.1"/> <value xsi:type="CD" code="300916003" displayName="Latex Allergy" codeSystem="2.16.840.1.113883.6.96" codeSystemName="SNOMED CT"/> <participant typeCode='CSM'> <participantRole classCode='MANU'> <playingEntity classCode='MMAT'> <code code="111088007" displayName="latex" codeSystem="2.16.840.1.113883.6.96" codeSystemName="SNOMED CT"/> </playingEntity> </participantRole> </participant> </observation> </entry>

Pattern #2
Nothing is present.

No Known Problems
<entry>
 <observation classCode="OBS" moodCode="EVN" negationInd="true">
  <code code="64572001" displayName="Disease" 
   codeSystem="2.16.840.1.113883.6.96"/>
  <value xsi:type="CD" code='64572001' displayName='Disease'
   codeSystem='2.16.840.1.113883.6.96' codeSystemName='SNOMED CT'/>
 </observation>
</entry>

No Known Medications
<entry>
 <substanceAdministration moodCode="EVN" classCode="SBADM" negationInd="true">
  <consumable>
   <manufacturedProduct>
    <manufacturedLabeledDrug>
     <code code='410942007' displayName='Drug or Medicament' 
codeSystem='2.16.840.1.113883.6.96' codeSystemName='SNOMED CT'/>
    </manufacturedLabeledDrug>
   </manufacturedProduct>
  </consumable>
 </substanceAdministration>
</entry>

No Known Allergies
<entry> <observation classCode="OBS" moodCode="EVN" negationInd="true"> <code code="106190000" displayName="Allergy" codeSystem="2.16.840.1.113883.6.1"/> <value xsi:type="CD" nullFlavor="NA"/> <participant typeCode='CSM'> <participantRole classCode='MANU'> <playingEntity classCode='MMAT'> <code code='413477004' displayName='Allergen or Pseudoallergen' codeSystem='2.16.840.1.113883.6.96' codeSystemName='SNOMED CT'/> </playingEntity> </participantRole> </participant> </observation> </entry>

The close relationship of these negated assertions to yesterday's unknowns is no accident. Negation is one end of the scale of knowledge about a thing, a positive assertion is the other end, and unknowns fit right in the middle along an axis of uncertainty.

Tommorow, I won't be writing about how to say yes, or at least I hope I won't. To do that, you'd simply follow pattern #1 above, and use negationInd="false" (which is what the default value SHOULD be in CDA, but isn't.) Grahame's assertion that lack of negationInd specifies that negationInd is NULL, while technically correct, is A) not obvious, and B) dangerous, especially in the presence of assumed defaults. The most common way of reporting observations in CDA doesn't require the use of negationInd at all, and the assumption is that it is set to false. This should be added as an errata for CDA Release 2.0. We'll fix that in CDA Release 3.

Keith


This post was updated on July 18th to reflect adjustments made by the HL7 Structured Documents Workgroup based on feedback from Grahame Grieve. The key change was in using a general code rather than unknown for pattern 2. A similar change was made for Smells like Unknown...