FHIR Chat · Relationship between observation.code (+ value) and componen · implementers

Stream: implementers

Topic: Relationship between observation.code (+ value) and componen


view this post on Zulip Mika Tuomainen (Nov 22 2016 at 13:30):

I discussed about this case in DevDays with David Hay and he suggested to send question to chat...

Can both observation.code (+ value) and component.code (+ value) be at the same time in observation? Example heart rate (loinc: 8867-4) and heart rate rhythm (loinc: 8884-9) (Note! This is just example, maybe the heart rate rhythm could go to interpretation):

Way 1:
- heart rate
-- observation.code (8867-4, Heart rate)
-- observation.valueQuantity (value + unit, unit beats/min)

- heart rate rhythm
-- observation.component.code (8884-9, Heart rate rhythm)
-- observation.component.valueCodeableConcept (system + code, ValueSet where codes regular|irregular)

Is that OK to use those as above?

Or is it better to put both in component:

Way 2 (two slices):
- heart rate rhythm
-- observation.component.code (8867-4, Heart rate)
-- observation.component.valueQuantity (value + unit, unit beats/min)

- heart rate rhythm
-- observation.component.code (8884-9, Heart rate rhythm)
-- observation.component.valueCodeableConcept (system + code, ValueSet where codes regular|irregular)

In the case above (if ok), is that OK to use value of the observation.component.code (8867-4) also in observation.code (because observation.code is mandatory)?

One way to use observation is also put heart rate rhythm in extension, example:

Way 3:
- heart rate
-- observation.code (8867-4, Heart rate)
-- observation.valueQuantity (value + unit, unit beats/min)

- extension(heart rate rhythm)
-- and if we want here both code (8884-9) and valueCodeableConcept (regular|irregular), this should perhaps be complex extension

Which is the recommended way to use observation resource?

view this post on Zulip Eric Haas (Nov 22 2016 at 16:26):

Those are two separate observations. They are not component of single observation IMO. i.e. they can stand alone and be interpreted separately. So if you want to group them then you would need to group as a panel. either using DiagnosticReport which is uncommon for vitals or using the .related element in Observation.

The pattern would be

Observation.code = heart rate panel code
NO Observation.value

Observation.related[1] = heartrate Observation
Observation.related[2] = rhythm Observation

If you insist on using Observation.component the pattern would be the similar

The pattern would be

Observation.code = heart rate panel code
NO Observation.value

Observation.component.code[1] = heartrate
Observation.component.value[1] = 80 BPM
Observation.component.code[2] = rhythm
Observation.component.code[2] = sinus tachycardia

view this post on Zulip Eric Haas (Nov 22 2016 at 16:30):

See examples in the spec for panels and components and here too.

view this post on Zulip Mika Tuomainen (Nov 23 2016 at 07:30):

As I said in the beginning of my question, heart rate + heart rate rhythm was just an example. The main question was, can observation.value and observation.component.value be present at the same time in one observation?

To be sure:
- "obs-7: Component code SHALL not be same as observation code" -> that is why I have to use panel code, am I right?
- "Secondly panels can be grouped via the component structure, if the panel members share the same attributes and are not separable observations" -> Does this "share the same attributes" prevent to use both Observation.component.valueQuantity and Observation.component.valueCodeableConcept in one observation (type of value is different)?

view this post on Zulip Grahame Grieve (Nov 24 2016 at 08:04):

you can have both Observation.value and Observation.component.value


Last updated: Apr 12 2022 at 19:14 UTC