Add support for Real values in DV_ORDINAL


Assessment scales provide a rich seam of frustration for developers, with their seemingly limitless capacity for arbitrary scales and quantities.
Here is a current example about which I have been asked for advice - the Borgscale (
It is a scale from 0-10, so would be ideal to express as a DV_ORDINAL but includes 0.5 which makes this impossible.
There are a number of workarounds but is there a case for adding some form of Coded Quantity datatype to openEHR? The primary problem is in representing such constraints in archetypes but there might be some value in simplifying integration from Snomed coded findings.

Borg Scale

0 No Breathlessness at all
0.5 Very Very Slight (Just Noticeable)
1 Very Slight
2 Slight Breathlessness
3 Moderate
... etc etc

The suggestion has been made on the openEHR lists to change the DV_ORDINAL datatype to REAL but with a default precision of 0. This proposal had a high degree of acceptance.

e.g. from Grahame Grieve:

"Ordinals are not just about order. That's certainly a primary use, but for some specific ordinal scales, specific operations are defined that give
(quasi) meaningful results when performed upon the numbers. There's no general case, and
additionally, I think that many of the specific defined operations fail any sort of
rigor test at all. But never-the-less, they are defined and used in clinical contexts.
That's an additional reason why the ordinal equivalent in ISO 21090 has a real number for
value, not an integer. And for this reason, openEHR should probably have a real too."




Ian McNicoll




Affects versions