Stream: implementers
Topic: Trouble understanding Observation.ReferenceRange
Michael Christensen (Jul 11 2018 at 11:20):
Kind of a long one, so first a short summary:
a) It's hard to infer what the exact intended connection between Observation.ReferenceRange and Observation.Interpretation is.
b) Definitions of Observation.referenceRange.type and Observation.referenceRange.appliesTo seem to overlap, at least in part, and this is quite confusing in relation to how Observation.referenceRange.type should/could be used.
More detail:
We are developing a remote patient monitoring system where clinicians wish to have incoming measurement results (automatically) marked as being either a 'normal', 'warning' or 'alarm' category. So, a 'normal' heartbeat for a particular patient could be defined as being between 50 and 80, an abnormal heartbeat between 40 and 50 or between 80 and 90 and a pathological heartbeat would be anything lower than 40 or above 90:
We are looking at using Observation.ReferenceRange (possibly in combination with the new ObservationDefinition.qualifiedInterval) to achieve this. We would then define one 'normal' range, two 'warning' ranges and two open-ended 'alarm' ranges and the type should reflect if the ReferenceRange in question is 'normal', 'warning' or 'alarm'. However, when reading the 'ReferenceRange.type' definition ('Codes to indicate the what part of the targeted reference population it applies to') and particularly when looking at the Expansion in http://hl7.org/fhir/2018May/valueset-referencerange-meaning.html we get confused if this is the correct way to do it: Some of the codes in the expansion sound more like 'appliesTo' than 'type' codes - e.g. 'pre-puberty'. And how does all of this relate to Observation.Interpretation with a ValueSet with codes like 'Low', 'Very Low', 'High', 'Significantly high'?
Grahame Grieve (Jul 11 2018 at 11:20):
@Rob Hausam
Eric Haas (Jul 12 2018 at 05:46):
the appliesTo and type along with age are orthogonal axis that allow representations of the most common ways to slice and dice a reference population. For example a age based normal range for females aged 16 to 31. How an interpretation of the result is derived is not part of Observation. It is a coded interpretation intended as a flag to alert the end user of the normalcy/abnormalcy of the results. It could be perfectly aligned with the observation refrange, or the ref-range may be absent and all you get is an interpretation. However in some cases a normal reference range is an Abnormal result so there no correlation that can be made without some background about the measurement and ideally the ObsDef would provide this for a given use case.
Eric Haas (Jul 12 2018 at 05:48):
An alternative is to provide a description in the comment element describing the different interpretations for a measurement.
Rob Hausam (Jul 12 2018 at 14:31):
I was thinking about a response to this. I agree generally with what Eric said. I do think that when referenceRange is present the typical expectation would be that the interpretation code value would utilize the reference range categories. But, as Eric said, at this point the connection between them is at best implicit, as you've noted. Do you actually need an explicit connection for the use scenarios that you've described? It's not clear to me that you wouldn't be able to handle it with what we have currently.
Last updated: Apr 12 2022 at 19:14 UTC