Compound Expression Constraints

Expression constraints can be built up from smaller parts using conjunction (i.e. AND) and disjunction (i.e. OR). The simplest example of this is where the conjunction or disjunction is used between two simple expressions. For example, the following expression constraint is satisfied only by clinical findings which are both a disorder of the lung and an edema of the trunk. This gives the same result as a mathematical intersection between the set of  descendants and the set of  descendants.

   < 19829001 |Disorder of lung| AND < 301867009 |Edema of trunk|

Please note that all keywords are case insensitive, so the following two expression constraints are equivalent to the above:

   < 19829001 |Disorder of lung| and < 301867009 |Edema of trunk|

   < 19829001 |Disorder of lung| And < 301867009 |Edema of trunk|

The next expression constraint is satisfied only by clinical findings which are either a disorder of the lung or an edema of the trunk. This gives the same result as a mathematical union of the set of  descendants and the set of  descendants. For this reason, an OR operator will usually allow more valid clinical meanings than an AND operator.

  < 19829001 |Disorder of lung| OR < 301867009 |Edema of trunk|

Conjunction and disjunction operators may also be combined with the use of the 'member of' function, as shown below:

   < 19829001|Disorder of lung| AND ^ 700043003 |Example problem list concepts reference set|

This expression constraint is satisfied only by concepts that belong to the  hierarchy and are also members of the .

When more than one conjunction or more than one disjunction is used, round brackets can be optionally applied. For example, the following expression constraints are all valid and equivalent to each other:

   < 19829001 |Disorder of lung| AND < 301867009 |Edema of trunk| AND
      ^ 700043003 |Example problem list concepts reference set|

   (< 19829001 |Disorder of lung| AND < 301867009 |Edema of trunk|) AND
         ^ 700043003 |Example problem list concepts reference set|

   < 19829001 |Disorder of lung| AND (< 301867009 |Edema of trunk| AND
         ^ 700043003 |Example problem list concepts reference set|)

However, where a conjunction and disjunction are both used together, it is mandatory to use round brackets to disambiguate the meaning of the expression constraint. For example, the following expression constraint is not valid:

   < 19829001 |Disorder of lung| AND < 301867009 |Edema of trunk| OR
         ^ 700043003 |Example problem list concepts reference set|

And must be expressed (depending on the intended meaning) as either:

   (< 19829001 |Disorder of lung| AND < 301867009 |Edema of trunk|) OR
         ^ 700043003 |Example problem list concepts reference set|

Or as:

   < 19829001 |Disorder of lung| AND (< 301867009 |Edema of trunk| OR
         ^ 700043003 |Example problem list concepts reference set|)

Attribute Conjunction and Disjunction

Conjunction and disjunction may be used within refinements in a variety of ways. The most common way of using these operators in a refinement is to define the conjunction or disjunction of individual attributes.

For example, the expression constraint below, in which the comma between the two attributes represents conjunction, is satisfied only by clinical findings which have both a finding site of pulmonary valve structure (or subtype) and an associated morphology of stenosis (or subtype).

   < 404684003 |Clinical finding|:
         363698007 |Finding site| = << 39057004 |Pulmonary valve structure|,
         116676008 |Associated morphology| = << 415582006 |Stenosis|

This expression constraint can equivalently be expressed as:

   < 404684003 |Clinical finding|:
         363698007 |Finding site| = << 39057004 |Pulmonary valve structure| AND
         116676008 |Associated morphology| = << 415582006 |Stenosis|

The following example uses the disjunction operator (OR) to represent the disjunction of two attributes. This constraint is satisfied only by clinical findings which have either an associated morphology of 'infarct' (or subtype) or are due to a myocardial infarction (or subtype).

   < 404684003 |Clinical finding|:
         116676008 |Associated morphology| = << 55641003 |Infarct| OR
         42752001 |Due to| = << 22298006 |Myocardial infarction|

When more than one conjunction or more than one disjunction is used in a refinement, round brackets can be optionally applied. For example, the following expression constraints are all valid and equivalent to each other:

   < 404684003 |Clinical finding|:
         363698007 |Finding site| = << 39057004 |Pulmonary valve structure| AND
         116676008 |Associated morphology| = << 415582006 |Stenosis| AND
         42752001 |Due to| = << 445238008|Malignant carcinoid tumor|

   < 404684003 |Clinical finding|:
         (363698007 |Finding site| = << 39057004 |Pulmonary valve structure| AND
          116676008 |Associated morphology| = << 415582006 |Stenosis| ) AND
          42752001 |Due to| = << 445238008|Malignant carcinoid tumor|

   < 404684003 |Clinical finding|:
         363698007 |Finding site| = << 39057004 |Pulmonary valve structure| AND
         (116676008 |Associated morphology| = << 415582006 |Stenosis| AND
          42752001 |Due to| = << 445238008|Malignant carcinoid tumor| )

However, where a conjunction and disjunction are both used together in a refinement, it is mandatory to use brackets to disambiguate the meaning of the expression constraint.

For example, the following expression constraint is not valid:

   < 404684003 |Clinical finding| :
         363698007 |Finding site| = << 39057004 |Pulmonary valve structure| AND
         116676008 |Associated morphology| = << 415582006 |Stenosis| OR
         42752001 |Due to| = << 445238008|Malignant carcinoid tumor|

And must be expressed (depending on the intended meaning) as either:

   < 404684003 |Clinical finding| :
         (363698007 |Finding site| = << 39057004 |Pulmonary valve structure| AND
          116676008 |Associated morphology| = << 415582006 |Stenosis|) OR
          42752001 |Due to| = << 445238008|Malignant carcinoid tumor|

Or as:

   < 404684003 |Clinical finding| :
         363698007 |Finding site| = << 39057004 |Pulmonary valve structure| AND
         (116676008 |Associated morphology| = << 415582006 |Stenosis| OR
          42752001 |Due to| = << 445238008|Malignant carcinoid tumor| )

Attribute Group Conjunction and Disjunction

Similarly, conjunction and disjunction may be defined between attribute groups. The following expression constraint is satisfied only by clinical findings which either have a finding site of pulmonary valve structure (or subtype) and an associated morphology of stenosis (or subtype), OR have a finding site of right ventricular structure (or subtype) and an associated morphology of hypertrophy (or subtype).

   < 404684003 |Clinical finding|:
         {363698007 |Finding site| = << 39057004 |Pulmonary valve structure|,
          116676008 |Associated morphology| = << 415582006 |Stenosis|} OR
         {363698007 |Finding site| = << 53085002 |Right ventricular structure|,
          116676008 |Associated morphology| = << 56246009 |Hypertrophy|}

Attribute Value Conjunction and Disjunction

Conjunction and disjunction can also be applied to attribute values. The example below is satisfied only by members of the adverse drug reactions reference set for GP/FP health issue, which have a causative agent that is either a subtype of pharmaceutical / biologic product or a subtype of substance.

   ^ 450990004 |Adverse drug reactions reference set for GP/FP health issue|:
         246075003 |Causative agent| = (< 373873005 |Pharmaceutical / biologic product| OR < 105590001 |Substance|)

Similarly, attribute values can also use conjunction. The following expression constraint is satisfied only by clinical findings with an associated morphology whose value is both a subtype (or self) of ulcer and a subtype (or self) of hemorrhage.

   < 404684003 |Clinical finding|: 116676008 |Associated morphology| =
         (<< 56208002|Ulcer| AND << 50960005|Hemorrhage|)

For more information about nested attribute values and nested compound expression constraints, please refer to 6.7 Nested Expression Constraints.