FHIR Chat · Using finding codes for time spent in physiological state · Orders and Observation WG

Stream: Orders and Observation WG

Topic: Using finding codes for time spent in physiological state


view this post on Zulip Morten Ernebjerg (Nov 17 2021 at 07:30):

(Travelling thread - moved at the suggestion of @Rob Hausam, previous incarnation is this thread in #terminology )

I am looking at encoding measurements from wearable devices in Observations - specifically, data about when (or for how long) a user had poor posture (as detected by the device). There is, understandably, no LOINC code for "time spent in poor posture". However, there are SNOMED finding codes for poor posture. I imagine this is not an unusual situation, especially with wearables: I want to capture "period/total tim spent in state X" where X is some physiological state (in poor posture, low blood sugar, asleep etc.) for which there is a SNOMED finding code for X. One could of course define custom codes, but it seems desirable to leverage the fact that we already have a clean well-known code for X. So my question is: Is it possible to "post-coordinate" a SNOMED finding code for X in an Observation resource to communicate

  1. "total time spent in state X" and
  2. "period spent in state X"??

E.g one could image setting Observation.code to the SNOMED finding code and then, for case (1) using Observation.valueQuantity to communicate the amount of time in this state, or, for (2) to use Observation.valuePeriod to communicate the period in this state (with Observation.effectivePeriod given the total observation time/reference time). Lloyd indicated that there are mechanisms to combine observation codes and components to communicate such things - I would be very interested in hearing about that.

view this post on Zulip Morten Ernebjerg (Nov 17 2021 at 07:36):

Comment by @Michael Lawley in previous thread:

Yes, there's a handful of "Duration of X" concepts in the SNOMED Observable entity hierarchy, but sadly no underlying modelling pattern that could be adopted to do some kind of (SNOMED) post coordination approach. Foe example, Duration of seizure has no relationships to a general concept of Duration nor even to Seizure.

view this post on Zulip Mark Kramer (Nov 22 2021 at 17:14):

I recommend using one Condition and one Observation.

In this case, you are making an observation about a condition (the patient having poor posture). Observation.focus allows you to reference a condition whose code represents poor posture. Observation.code should represent the attribute "duration", Observation.effective represents the observation period, and Observation.value is the duration of the condition during the Period of observation.

(I've used this pattern to represent the size of a tumor, where the tumor itself is represented by a BodyStructure resource: BodyStructure.code = Tumor, Observation.focus = Reference(BodyStructure), Observation.code = Length of Tumor, Observation.value = 4 mm. )

view this post on Zulip Morten Ernebjerg (Nov 24 2021 at 09:22):

@Mark Kramer Thanks for the suggestion! - that's an interesting take on it & would allow a clean "separation of codes" between the resources.

However, as far as I understand it, the kind of states I have in mind do not necessarily qualify as conditions. The poor posture occurrence I want to capture may simply be the fact that someone is slumped over at their desk for 10 minutes, even if it has no negative health impact. Indeed, the state may even be smt. that benefits your health, like "physically active". Since we are capturing periods of occurrences, the states are also have an "on-off-nature", which (again, as far as I understand) might make them less appropriate as Conditions. There is also the question of whether it is the same Condition instance (e.g. "poor posture") that re-occurs every time we measure it, or whether each measurement is a new Condition - neither seems perfect. For those reason, I was hoping for an Observation-only pattern.

view this post on Zulip Mark Kramer (Nov 29 2021 at 00:05):

The focus is Reference(Any). So you could in theory make an Observation about an Observation.

view this post on Zulip Morten Ernebjerg (Nov 29 2021 at 12:25):

Good point, I suppose I could always create an Observation stating that the state in question was present on a given day & then have a second Observation for the exact time period pointing to it via focus. The code on the latter would then have specify the time/period of interest in completely general terms ("time spent in state") - I wonder if such codes are available, will need to check. Seems like it could be a possible solution (though I'm a little worried about forcing clients to handle two linked resources per data point).

view this post on Zulip Andrea Pitkus, PhD, MLS(ASCP)CM, CSM (Dec 23 2021 at 04:20):

LOINC does have codes for "procedure duration" and "observation duration" that I suspect could be used someone was timing/observing how long the patient was in poor posture.


Last updated: Apr 12 2022 at 19:14 UTC