This wiki has undergone a migration to Confluence found Here

Datatypes R2 Issue 10

From HL7Wiki
Revision as of 03:41, 12 January 2007 by GrahameGrieve (talk | contribs)
Jump to navigation Jump to search

Data Types Issue 10: Create URG constraint on UVP


URG means "Uncertain Range".

Add an “Uncertain Range” datatype that is a constraint on “Uncertain Value Probabilistic” but which behaves in much the same manner as an interval.

The use case is that now IVL is used for both ranges where all elements are equally valid and for ranges where only one number would be picked, like when I say "come tomorrow between 10 and 11" and of course you will only enter my door at one point in time between 10 and 11.

We often want to represent an uncertain range where the actual value is known to be somewhere between a lower-bound and an upper-bound. However, the distribution of probabilities may not be known, and is frequently quite variable. For example, in the statement “Take 1-3 tablets”, the probabilities of 1 tablet, 2 tablets and 3 tablets are non-zero. There may even be non-zero probabilities for 1.5 tablets and 2.5 tablets. However the probability of 2.37749 tablets is pretty much 0.

This concept differs from the concept of Interval, where the entire range is intended to be true.

For example, “He was in the hospital from January 1 to January 31” represents an IVL<TS>. On the other hand, “He was in the hospital one day between January 1 and January 31” represents a URG<TS>

? backward compatible: While not strictly semantically compatible with existing RIM datatypes, in practice, we’re merely updating the datatype to reflect actual semantic practice. There should be no XML instance changes as a result of this change, with the possible exception of xsi:type values



Basically copy the content of IVL, but derive the type from UVP<T> (or perhaps SET<UVP<T>>?)

Definition: Uncertain range represents a single quantity whose value falls somewhere within a specified boundary and where the probability distribution within that boundary is unknown.

This type is very similar to the Interval datatype. The distinction is that for Interval, the type represents the complete range within the identified boundary. Uncertain range represents a single unknown value drawn from the range.

All properties of IVL apply with the exception of the convex hull.

invariant(URG<T> x){



Should look identical to the IVL expression Should add a note to IVL<T> explaining its distinctions from URG<T> Change the datatypes of the following RIM attributes from IVL<x> to URG<x>: Act.repeatNumber SubstanceAdministration.doseQuantity SubstanceAdministration.rateQuantity

Being a constraint of UVP does not really make sense.

The datatype should best be almost identical with IVL. That way all that changes (particularly in the XML) would be the xsi:type, not anything in the data which people already build and parse today. So, low, center, high, width, etc.

We can say that UVP be a specialization of IVL, which would make it completely backwards compatible.

Logically more correct would be to make it a subtype of PPD.

In my view it should be considered as a confidence interval, and so it should also receive a confidence level, which is almost like a probability (i.e., it is then the same form and almost the same meaning as an UVP<IVL<T>>.)

PPD needs to be fixed also.

--Gschadow 01:20, 25 Jun 2006 (CDT)

BOF: Not a constraint on PPD

URG<T : QTY> extends T {

 range : IVL<T>
 confidenceLevel : REAL ( 0.. 1 )






Back to Data Types R2 issues