except is an operation that applies to two sets. It removes any attributes from the first set that appear in the second. The first set is usually expressed in terms of group names, whilst the second set contains attribute names. The simplest syntax is

{ names_1 } in range [lower, upper] except { names_2 }

where:

names_1 is a comma separated list of group attribute names

names_2 is a comma separated list of attribute names

lower and upper are constants or numbers defining the range.

For example, suppose the definition of a calculated value attribute HighAllergens was any allergen with value in the range [15, 50), with the exception of milk which had a separate definition for children aged 2 or younger. We need to define a set of all allergens except milk with a value in the range, as follows:

{pollen, food, mould, mite} in range [15, 50) except {milk}

and then add the age-dependent definition for milk as follows:

union {milk} in range [2, 15) for (age <= 2)
union {milk} in range [15, 50) for (age > 2)

Note that with this definition, milk is considered to be a high allergen for the following 1 year old patient:

age            1
sex            F
milk           11.0
peanut         43.5
cod            12.1
soya           44.6
wheat          25.3
HighAllergens  soya (44.6), wheat (25.3) and milk (11.0)

See also: for