This wiki has undergone a migration to Confluence found Here
<meta name="googlebot" content="noindex">

Difference between revisions of "FHIR Examples For Driving FHIR Ontology Development"

From HL7Wiki
Jump to navigation Jump to search
 
(12 intermediate revisions by 4 users not shown)
Line 7: Line 7:
 
From http://www.hl7.org/implement/standards/fhir/observation-example.html
 
From http://www.hl7.org/implement/standards/fhir/observation-example.html
  
XML 31 lines excluding comments:
+
Latest version: http://www.hl7.org/implement/standards/fhir/observation-example.html
 +
 
 +
XML 31 lines excluding comments (NOT the latest version):
 
<pre>
 
<pre>
 
<Observation xmlns="http://hl7.org/fhir">
 
<Observation xmlns="http://hl7.org/fhir">
Line 52: Line 54:
 
* (DBooth) This example would be ideal for slide use if it were a lot smaller, because everyone understands blood pressure as a clinical measurement, and it involves two numbers (systolic/diastolic), so it can be used to demonstrate translations to other data models that either combine or separate those two values.  But the current version is far too long because it duplicates the measurement information so much -- 3 times!  It is an Atom feed that bundles three FHIR Resources.  First it has an Observation that includes both systolic and diastolic values (107/60), but only in human-readable free text -- not as structured data suitable for machine processing.  Then it has two more Observations (one for systolic and one for diastolic), which each contain the measured value both as human-oriented free text and as structured data.  It would be great if a much smaller version could be made.
 
* (DBooth) This example would be ideal for slide use if it were a lot smaller, because everyone understands blood pressure as a clinical measurement, and it involves two numbers (systolic/diastolic), so it can be used to demonstrate translations to other data models that either combine or separate those two values.  But the current version is far too long because it duplicates the measurement information so much -- 3 times!  It is an Atom feed that bundles three FHIR Resources.  First it has an Observation that includes both systolic and diastolic values (107/60), but only in human-readable free text -- not as structured data suitable for machine processing.  Then it has two more Observations (one for systolic and one for diastolic), which each contain the measured value both as human-oriented free text and as structured data.  It would be great if a much smaller version could be made.
 
** (DBooth) On our 24-Feb-2015 teleconference, Lloyd indicated that the narrative could be removed, but the other redundancy would have to stay, because systolic and diastolic are treated as separate Observations.
 
** (DBooth) On our 24-Feb-2015 teleconference, Lloyd indicated that the narrative could be removed, but the other redundancy would have to stay, because systolic and diastolic are treated as separate Observations.
 +
 +
== Clinical / Observation: Smaller Blood Pressure ==
 +
XML 29 lines, though it may not be valid FHIR.  Drafted by EricP from BP example on FHIR site.
 +
 +
<pre>
 +
<feed xmlns="http://www.w3.org/2005/Atom">
 +
  <entry>
 +
    <content type="text/xml">
 +
      <Observation xmlns="http://hl7.org/fhir">
 +
        <related><target><reference value="http://acme.org/ehr/observations/34252345234-s"/></target></related>
 +
        <related><target><reference value="http://acme.org/ehr/observations/34252345234-d"/></target></related>
 +
      </Observation>
 +
    </content>
 +
  </entry>
 +
  <entry>
 +
    <id>http://acme.org/ehr/observations/34252345234-s</id>
 +
    <content type="text/xml">
 +
      <Observation xmlns="http://hl7.org/fhir">
 +
        <name><coding>
 +
            <system value="http://loinc.org"/><code value="8480-6"/>
 +
            <display value="Systolic blood pressure"/>
 +
        </coding></name>
 +
        <valueQuantity><value value="107"/><units value="mm[Hg]"/></valueQuantity>
 +
      </Observation>
 +
      <Observation xmlns="http://hl7.org/fhir">
 +
        <name><coding>
 +
            <system value="http://loinc.org"/><code value="8480-6"/>
 +
            <display value="Systolic blood pressure"/>
 +
        </coding></name>
 +
        <valueQuantity><value value="107"/><units value="mm[Hg]"/></valueQuantity>
 +
      </Observation>
 +
    </content>
 +
    </entry>
 +
</feed>
 +
</pre>
 +
 +
 +
Comments:
 +
* (DBooth) We need to check if this is valid FHIR and make it valid if not.
  
 
== Clinical / AllergyIntolerance: Bee Sting ==
 
== Clinical / AllergyIntolerance: Bee Sting ==
Line 86: Line 127:
 
Comments:
 
Comments:
 
* (DBooth) For slide use, this example is very good except that it is confusingly similar to the next example (AdverseReaction: Bee Sting).  (One is documenting the patient's propensity to a bee sting reaction; the other is documenting an actual occurrence of that allergic reaction.)
 
* (DBooth) For slide use, this example is very good except that it is confusingly similar to the next example (AdverseReaction: Bee Sting).  (One is documenting the patient's propensity to a bee sting reaction; the other is documenting an actual occurrence of that allergic reaction.)
 +
*(twamarc) To disambiguate this, I would skip the "AdverseReaction: Bee Sting" and keep only "AllergyIntolerance: Bee Sting".  Clinically the term adverse reaction is mainly related to drugs/medicines substances. Any other reaction to other substances refers to allergy (allergic reaction). In the same way I would not use "Allergy intolerance to medication" because this is called "AdverseReaction to medication". 
  
 
== Clinical / AdverseReaction: Bee Sting ==
 
== Clinical / AdverseReaction: Bee Sting ==
Line 91: Line 133:
 
http://www.hl7.org/implement/standards/fhir/adversereaction-example.xml.html
 
http://www.hl7.org/implement/standards/fhir/adversereaction-example.xml.html
  
 +
=== data ===
 
<pre>
 
<pre>
 
<AdverseReaction xmlns="http://hl7.org/fhir">
 
<AdverseReaction xmlns="http://hl7.org/fhir">
Line 128: Line 171:
 
Comments:
 
Comments:
 
* (DBooth) For slide use, this example is very good except that it is confusingly similar to the previous example (AllergyIntolerance: Bee Sting).  (One is documenting the patient's propensity to a bee sting reaction; the other is documenting an actual occurrence of that allergic reaction.)
 
* (DBooth) For slide use, this example is very good except that it is confusingly similar to the previous example (AllergyIntolerance: Bee Sting).  (One is documenting the patient's propensity to a bee sting reaction; the other is documenting an actual occurrence of that allergic reaction.)
 +
 +
== Clinical / AllergyIntolerance: to Medication ==
 +
This example involves a number of reources:
 +
MedicationPrescription
 +
Medication
 +
AllergyIntolerance
 +
Substance
 +
Patient
 +
 +
In addition it will use RDF files (Ontologies) for FHIR and SNOMEDCT
 +
 +
The purpose is to detect whether a prescription poses a risk for adverse reaction due to allergy intolerance.
 +
The allergyintoleance substance will be at a broader type category than the prescription medication and will use the SNOMEDCT hierarchy to detect that they correspond.
 +
 +
*(twamarc) Referring to what I commented above, I would not use "Allergy intolerance to medication" because this means clinically the "AdverseReaction to medication".
 +
 +
=== story 1===
 +
 +
Patient P. presents with hives, tachycardia, high blood pressure.
 +
Doctor D. diagnoses 'allergy to bee sting', prescribes prednisone tablets.
 +
CDS system Panopticon checks that prednisone is a corticosteroid, which are administered for allergic reactions.
 +
It checks for evidence of any contraindications, including Varicella zoster virus, finds that the patient is prescribed Acyclovir, which is a guanosine analogue, and thus indicates the possibility of Varicella zoster virus.
 +
Advised of this, the physician takes steps to see if the patient has VSV.
 +
 +
=== story 2===
 +
 +
Simple use case to demonstrate technology. Patient PeterPatient has allergy intolerance to "Antibacterial Drugs" as classified in SNOMED CT. PaulProvider is making out a prescription to PeterPatient for Penicillin also classified in SNOMED CT. The objective is to detect the potential drug allergy interaction.
 +
 +
[http://wiki.hl7.org/index.php?title=File:Patient_Safety_Ontology_and_Instances.pdf [Patient Safety presentation]]
  
 
== Administrative / Patient: example-xcda ==
 
== Administrative / Patient: example-xcda ==

Latest revision as of 14:30, 12 April 2015

To coordinate and speed our efforts, it will be helpful to choose some initial FHIR examples that we can use to drive our FHIR ontology development effort. This would not be to the exclusion of other examples, but merely to act as a common starting point. The purpose of choosing FHIR examples is to facilitate explanations of design alternatives, both within this group and with the larger community. *All* of FHIR needs to be addressed by the time we have finished, so this is not about prioritizing what gets done or excluding anything, it is about choosing the best initial vehicles for communicating with each other and others about this work. If we are using the same example(s) we can more easily compare design alternatives and explain the work to others.

Comments:

  • (DBooth) First and foremost I'd like an example that is: (a) small enough to fit on a PowerPoint slide (the smaller the better); and (b) clinical -- obviously medical.

Clinical / Observation: Body Weight Measurement

From http://www.hl7.org/implement/standards/fhir/observation-example.html

Latest version: http://www.hl7.org/implement/standards/fhir/observation-example.html

XML 31 lines excluding comments (NOT the latest version):

<Observation xmlns="http://hl7.org/fhir">
  <text>
    <status value="generated"/>
    <div xmlns="http://www.w3.org/1999/xhtml">Jan 30 2014: Body Weight = 185 lbs</div>
  </text>
  <name>
    <coding>
      <system value="http://loinc.org"/>
      <code value="3141-9"/>
      <display value="Weight Measured"/>
    </coding>
    <coding>
      <system value="http://snomed.info/sct"/>
      <code value="27113001"/>
      <display value="Body weight"/>
    </coding>
    <coding>
      <system value="http://acme.org/devices/clinical-codes"/>
      <code value="body-weight"/>
      <display value="Body Weight"/>
    </coding>
  </name>
  <valueQuantity>
    <value value="185"/>
    <units value="lbs"/>
    <system value="http://unitsofmeasure.org"/>
    <code value="[lb_av]"/>
  </valueQuantity>
  <status value="final"/>
  <reliability value="ok"/>
</Observation>

Comments:

  • (DBooth) This example is small (which is good), but not ideal because: (a) it is only moderately medically oriented -- body weight is used in many non-medical settings; and (b) body weight is an emotionally charged topic to many people, which is not so good in slide presentations, because it is distracting.

Clinical / Observation: Blood Pressure

XML 140 lines without comments (188 lines with comments): http://www.hl7.org/implement/standards/fhir/observation-example-bloodpressure.xml.html

Comments:

  • (DBooth) This example would be ideal for slide use if it were a lot smaller, because everyone understands blood pressure as a clinical measurement, and it involves two numbers (systolic/diastolic), so it can be used to demonstrate translations to other data models that either combine or separate those two values. But the current version is far too long because it duplicates the measurement information so much -- 3 times! It is an Atom feed that bundles three FHIR Resources. First it has an Observation that includes both systolic and diastolic values (107/60), but only in human-readable free text -- not as structured data suitable for machine processing. Then it has two more Observations (one for systolic and one for diastolic), which each contain the measured value both as human-oriented free text and as structured data. It would be great if a much smaller version could be made.
    • (DBooth) On our 24-Feb-2015 teleconference, Lloyd indicated that the narrative could be removed, but the other redundancy would have to stay, because systolic and diastolic are treated as separate Observations.

Clinical / Observation: Smaller Blood Pressure

XML 29 lines, though it may not be valid FHIR. Drafted by EricP from BP example on FHIR site.

<feed xmlns="http://www.w3.org/2005/Atom">
  <entry>
    <content type="text/xml">
      <Observation xmlns="http://hl7.org/fhir">
        <related><target><reference value="http://acme.org/ehr/observations/34252345234-s"/></target></related>
        <related><target><reference value="http://acme.org/ehr/observations/34252345234-d"/></target></related>
      </Observation>
    </content>
  </entry>
  <entry>
    <id>http://acme.org/ehr/observations/34252345234-s</id>
    <content type="text/xml">
      <Observation xmlns="http://hl7.org/fhir">
        <name><coding>
            <system value="http://loinc.org"/><code value="8480-6"/>
            <display value="Systolic blood pressure"/>
        </coding></name>
        <valueQuantity><value value="107"/><units value="mm[Hg]"/></valueQuantity>
       </Observation>
      <Observation xmlns="http://hl7.org/fhir">
        <name><coding>
            <system value="http://loinc.org"/><code value="8480-6"/>
            <display value="Systolic blood pressure"/>
        </coding></name>
        <valueQuantity><value value="107"/><units value="mm[Hg]"/></valueQuantity>
       </Observation>
     </content>
    </entry>
 </feed>


Comments:

  • (DBooth) We need to check if this is valid FHIR and make it valid if not.

Clinical / AllergyIntolerance: Bee Sting

XML 25 lines: http://www.hl7.org/implement/standards/fhir/allergyintolerance-example.xml.html

<AllergyIntolerance xmlns="http://hl7.org/fhir">
  <text>
    <status value="generated"/>
    <div xmlns="http://www.w3.org/1999/xhtml">Sensitivity to Bee Stings</div>
  </text>
  <criticality value="fatal"/>
  <sensitivityType value="allergy"/>
  <recordedDate value="2012-09-17"/>
  <status value="confirmed"/>
  <subject>
    <reference value="Patient/example"/>
  </subject>
  <recorder>
    <reference value="Practitioner/example"/>
  </recorder>
  <substance>
    <reference value="Substance/example"/>
  </substance>
  <reaction>
    <reference value="AdverseReaction/example"/>
  </reaction>
  <sensitivityTest>
    <reference value="Observation/example"/>
  </sensitivityTest>
</AllergyIntolerance>

Comments:

  • (DBooth) For slide use, this example is very good except that it is confusingly similar to the next example (AdverseReaction: Bee Sting). (One is documenting the patient's propensity to a bee sting reaction; the other is documenting an actual occurrence of that allergic reaction.)
  • (twamarc) To disambiguate this, I would skip the "AdverseReaction: Bee Sting" and keep only "AllergyIntolerance: Bee Sting". Clinically the term adverse reaction is mainly related to drugs/medicines substances. Any other reaction to other substances refers to allergy (allergic reaction). In the same way I would not use "Allergy intolerance to medication" because this is called "AdverseReaction to medication".

Clinical / AdverseReaction: Bee Sting

XML 32 lines: http://www.hl7.org/implement/standards/fhir/adversereaction-example.xml.html

data

<AdverseReaction xmlns="http://hl7.org/fhir">
  <text>
    <status value="generated"/>
    <div xmlns="http://www.w3.org/1999/xhtml">Anaphylaxis Reaction to a bee sting</div>
  </text>
  <date value="2012-09-17"/>
  <subject>
    <reference value="Patient/example"/>
  </subject>
  <didNotOccurFlag value="false"/>
  <recorder>
    <reference value="Practitioner/example"/>
  </recorder>
  <symptom>
    <code>
      <coding>
        <system value="http://hl7.org/fhir/sid/icd-10"/>
        <code value="T78.2"/>
        <display value="Anaphylactic shock, unspecified"/>
      </coding>
      <text value="Anaphylaxis reaction"/>
    </code>
    <severity value="moderate"/>
  </symptom>
  <exposure>
    <date value="2012-09-17"/>
    <type value="coincidental"/>
    <substance>
      <reference value="Substance/example"/>
    </substance>
  </exposure>
</AdverseReaction>

Comments:

  • (DBooth) For slide use, this example is very good except that it is confusingly similar to the previous example (AllergyIntolerance: Bee Sting). (One is documenting the patient's propensity to a bee sting reaction; the other is documenting an actual occurrence of that allergic reaction.)

Clinical / AllergyIntolerance: to Medication

This example involves a number of reources: MedicationPrescription Medication AllergyIntolerance Substance Patient

In addition it will use RDF files (Ontologies) for FHIR and SNOMEDCT

The purpose is to detect whether a prescription poses a risk for adverse reaction due to allergy intolerance. The allergyintoleance substance will be at a broader type category than the prescription medication and will use the SNOMEDCT hierarchy to detect that they correspond.

  • (twamarc) Referring to what I commented above, I would not use "Allergy intolerance to medication" because this means clinically the "AdverseReaction to medication".

story 1

Patient P. presents with hives, tachycardia, high blood pressure. Doctor D. diagnoses 'allergy to bee sting', prescribes prednisone tablets. CDS system Panopticon checks that prednisone is a corticosteroid, which are administered for allergic reactions. It checks for evidence of any contraindications, including Varicella zoster virus, finds that the patient is prescribed Acyclovir, which is a guanosine analogue, and thus indicates the possibility of Varicella zoster virus. Advised of this, the physician takes steps to see if the patient has VSV.

story 2

Simple use case to demonstrate technology. Patient PeterPatient has allergy intolerance to "Antibacterial Drugs" as classified in SNOMED CT. PaulProvider is making out a prescription to PeterPatient for Penicillin also classified in SNOMED CT. The objective is to detect the potential drug allergy interaction.

[Patient Safety presentation]

Administrative / Patient: example-xcda

JSON 39 lines: http://www.hl7.org/implement/standards/fhir/patient-example-xcda.json.html

Comments:

  • (DBooth) This example is simple enough for slide use, but not clinically oriented.

Administrative / Substance: Bee Venom

JSON 10 lines: http://www.hl7.org/implement/standards/fhir/substance-example.json.html

Comments:

  • (DBooth) This example is very simple -- only 10 lines! -- but not obviously clinically oriented.

Administrative / Practitioner: CCDA Example Author

JSON 18 lines: http://www.hl7.org/implement/standards/fhir/practitioner-example-xcda-author.json.html

Comments:

  • (DBooth) This example is also very simple, but again not clinically oriented.

[Add others here]