Modelling scores with multiple unit options

When modelling certain scores who depend on particular clinical measurements such as lab values, an issue has been identified where the score in question comes in several different versions where the only difference is the units used.

For example, in SOFA score, the element “Respiration” depends on the calculation of a PaO2/FiO2 ratio, which may be given in either mmHg or kPa. This of course means that the threshold values differ between the different units, although they are equivalent when converting between the different units.

An example value from SOFA score:

  • 2: 200 - 299 [PaO2/FiO2 ratio is between 200 mmHg and 299 mmHg.]
    vs
  • 2: 26.6 - 39.8 [PaO2/FiO2 ratio is between 26.6 kPa and 39.8 kPa.]

We currently don’t have an established way of modelling this. In the Hscore archetype we’ve suggested doing it by choosing one unit for the value name and explaining the other in the description, like this:

  • 44: 1.5-4.0 mmol/L [The Triglyceride level is 1.5-4.0 mmol/L or 132.7-354 mg/dL.]

However, this makes it difficult or impossible to implement the archetype using the alternative unit.

We’ve thought of the possibility of specialising the archetype for sets of alternative units, based on sets in actual clinical use in different localities.

However, we’d like to seek the opinions of the community on how to do this. Ideally we’d like to be able to specify these sets of alternative units in the same archetype, if possible.

1 Like

This is the standard ADL2 way of modelling exactly this problem - Tuples. Archetype Designer should be able to do it, but you would not be able to save the archetype at 1.4. Mostly likely worth a query on the AD tool support category.

I assume you could express this in 1.4, in the standard equivalent form. As the specification says you kind of loss the implicit relation between both, but apart from that I’d say you can express that

This is interesting! What would a DV_ORDINAL with two separate sets of values look like in ADL2?

Well if you look a bit further down in the ADL2 spec, you’ll see how ordinals are represented in ADL2. I’m not sure what you mean by ‘two separate sets of values’ - Ordinals and Scales have only numbers, no units or anything else. What is an example of two sets of values for an Ordinal?

These two for example. They are the same values, only with different units in the labels.

       ​DV_ORDINAL[id3] ∈ {
           ​[value, symbol] ∈ {
               ​[{0}, {[at1]}],           -- ≥400 mmHg
               ​[{1}, {[at2]}],           -- 300-399 mmHg
               ​[{2}, {[at3]}]            -- 200-299 mmHg
               ​[{3}, {[at4]}]            -- 100-199 mmHg and mechanically ventilated
               ​[{4}, {[at5]}]            -- <100 mmHg and mechanically ventilated
           ​}
       ​}
       ​DV_ORDINAL[id3] ∈ {
           ​[value, symbol] ∈ {
               ​[{0}, {[at1]}],           -- > 53 kPa
               ​[{1}, {[at2]}],           -- 39.9 - 53 kPa
               ​[{2}, {[at3]}]            -- 26.6 - 39.8 kPa
               ​[{3}, {[at4]}]            -- 13.3 - 26.5 kPa and mechanically ventilated
               ​[{4}, {[at5]}]            -- < 13.3 kPa and mechanically ventilated
           ​}
       ​}

Ah got it. I would almost say that we need an intelligent kind of term that can have alternative texts based on different unit systems. Without that, today, I would just put both definitions in the term text so that any user can see both. It’s not ideal, but technically it’s the best possible today.

That’s an extension of what we tried to do with Hscore. I’m concerned about clinical safety. In many cases the numbers for different units will be in completely different ranges, but it’s conceivable that in some cases the numbers will be close enough to make it easy to mix up two separate categories.

I don’t really see an issue there- these are just text descriptions of the rules used to set a specific code/ordinal value, usually a sort of intermediate score. The real algorithms would sit in a GDL or other similar artefact.

There is/was a similar challenge with detailed TNM scores - highly complex rules for each level, and each cancer type. So much that we don’t even try to archetype these now and just stick to the generic TNM structures.

This is under the assumption that these scores are always done automatically by an algorithm, though? I agree that would normally be the case, but can we assume that’s the only way? If someone who used kPa, for whatever reason, wanted to make a UI where these things are selected manually and the archetype uses mmHg in the value names, it’s unusable to them.

I don’t think we could make this kind of intelligence, it seems to be completely arbitrary. For example, both Norway and Germany are completely metric countries. But for SOFA score, Germany uses mmHg while Norway uses kPa. :woman_shrugging:t3:

yes, this is already happening for some years in GDL-land, and is the future. We already know we need to deal with units there as a routine thing (e.g. BMI in US v Europe).

Good to know!

This is slightly different because BMI is a DV_QUANTITY, which in the current BMI archetype supports both kg/m2 and [lb_av]/[in_i]2 as units.

So are those ordinals 0-5 numbers actually used to classify patients for ventilation? (also in anaesthetics?)

The SOFA score is used to assess organ dysfunction :arrow_right: mortality risk, usually in an ICU environment. See the (currently broken) archetype: https://ckm.openehr.org/ckm/archetypes/1013.1.4696

I guess another option is to handle this using translations, treating them as more proper localisations rather than just translation of the words of the languages. This of course depends on only one set of units being used within a specific locale such as nb_NO, de_DE or en_AU, but I guess that’s not a super-unreasonable assumption?

That is probably reasonable, but perhaps you could add a bit of safety in associated description that mmHg is used in some countries (and perhaps another use case for ‘Original Text’?

1 Like

I would not suggest doing this - no tool or human author is ever going to guess that different unit systems are buried in different localised translations, and I’m pretty sure that we could find both unit systems even within a single country (i.e. the US).

I would welcome a better suggestion, in that case. :smile:

Like this? Observation Archetype: SOFA score [openEHR Clinical Knowledge Manager]

1 Like

Hi,

Another suggestion is to add the corresponding values as examples:

Element name Element description/comment English text for value item Norwegian text for value item
Respiration The ratio between the partial pressure of oxygen (PaO2) and the fraction of inspired oxygen (FiO2) is an indicator for a possible dysfunction of the respiratory system. Comment: 3 or 4 points only for patients on mechanical ventilation (NIV+IPPV). In some localities, PaO2 and the PaO2/FiO2 ratio are measured in kPa. 0: PaO2/FiO2 ≥ 400 mmHg [Or PaO2/FiO2 > 53 kPa. The partial pressure of oxygen in arterial or capillary blood measured in mmHg, divided by the fraction of inspired oxygen is greater than or equal to 400 mmHg.] 0: PaO2/FiO2 > 53 kPa [Eller PaO2/FiO2 ≥ 400 mmHg. Partialtrykket av oksygen i arterielt eller kapillært blod målt i kPa dividert med fraksjonen av innåndet oksygen er større enn 53 kPa.]

It is important is to make sure that the corresponding values match.

3 Likes