argonautproject / implementation-program

Project Argonaut: Implementation Program
36 stars 5 forks source link

What is the behavior or guidance if units are wrong or missing? #19

Closed Healthedata1 closed 7 years ago

Healthedata1 commented 8 years ago

For the Vitals IG and Labs IG it is implied that the resource validation requires use prescribed UCUM units listed in the vitals table and LOINC database. However, there is no guidance or specified behavior if the units are wrong or missing which will likely occur in the real world.

No units Example:

{
  "resourceType": "Observation",
  "id": "691-respiratoryrate",
"status": "final",
  "category": {
    "coding": [
      {
        "system": "http://hl7.org/fhir/observation-category",
        "code": "vital-signs",
        "display": "Vital Signs"
      }
    ],
    "text": "Vital Signs"
  },
  "code": {
    "coding": [
      {
        "system": "http://loinc.org",
        "code": "9279-1",
        "display": "respiratory_rate"
      }
    ],
    "text": "respiratory_rate"
  },
  "subject": {
    "reference": "Patient/1186747"
  },
  "encounter": {
    "reference": "Encounter/691"
  },
  "effectiveDateTime": "1999-07-02",
  "valueQuantity": {
    "value": 26.0   
  }
}

Wrong units example:

{
  "resourceType": "Observation",
  "id": "691-respiratoryrate",
  "status": "final",
  "category": {
    "coding": [
      {
        "system": "http://hl7.org/fhir/observation-category",
        "code": "vital-signs",
        "display": "Vital Signs"
      }
    ],
    "text": "Vital Signs"
  },
  "code": {
    "coding": [
      {
        "system": "http://loinc.org",
        "code": "9279-1",
        "display": "respiratory_rate"
      }
    ],
    "text": "respiratory_rate"
  },
  "subject": {
    "reference": "Patient/1186747"
  },
  "encounter": {
    "reference": "Encounter/691"
  },
  "effectiveDateTime": "1999-07-02",
  "valueQuantity": {
    "value": 26.0,
    "unit": "RR",
    "system": "http://myunits.org",
    "code": "RR"
  }
}
Healthedata1 commented 8 years ago

By defining "mandatory" Data-elements my assumption was that we are being strict and the client should not expect any bad data for these elements. If we want to be Permissive and send bad data or missing data then they shouldn't be mandatory and put them into the SHOULD category which we generally don't explicitly call out in these IG's.

Do we need to spell this out in the introduction?

Healthedata1 commented 8 years ago

Change the binding from required to extensible to handle the real world of units.

Quantity Datatype

Healthedata1 commented 8 years ago

Decision:

  1. Binding is still required
  2. Core Quantity datatype
  3. Add guidance to IG

Use Cases: Ideal --> less ideal UCUM code provided

 "valueQuantity": {
    "value": 26.0,
    "unit": "g/mL",
   "system": "http://unitsofmeasure.org",
   "code": "g/mL"
  }

free text units (no UCUM units) if have no UCUM units then represent units only in units element

 "valueQuantity": {
    "value": 26.0,
    "unit": "RR",
     }

no units

      "valueQuantity": {
    "value": 26.0
 }
Healthedata1 commented 8 years ago

Will update IG with guidance

Healthedata1 commented 7 years ago

US-Core comment re vitals:

Is profile intended only to cover the vitals listed by loinc? Normally, systems would return other vitals outside that list (if queried by category vital-signs). If this occurs, the code.code, valueQuantity, etc may not make sense to be required for those values (they may be string or not have a mappable loins)(thank you Jenni)

This is great point and would suggest that the LOINC and UCUM bindings need to be extensible to accommodate vitals outside this list. MAP for example.

Healthedata1 commented 7 years ago

updated guidance on this in IGs