expression

The core expression grammar. Expressions encompass all value-producing constructs in CQL, from simple term references to complex timing and interval operations. Operator precedence is embedded in the grammar structure via the ordering of alternatives.

Examples

Simple comparison

AgeInYears() >= 18

Null check

Patient.birthDate is not null

Type cast

cast Obs.value as Quantity

Logical AND

"Has Diabetes" and "Has Hypertension"

Exists check on retrieve

exists [Condition: "Diabetes Mellitus"]

Timing relationship

Encounter.period during "Measurement Period"
Railroad Diagram
100%
expressionTerm retrieve query cast expression as typeSpecifier not expression exists expression expression is not null true false expression is as typeSpecifier expression properly between expressionTerm and expressionTerm expression intervalOperatorPhrase expression expression = != ~ !~ expression expression and expression expression or xor expression expression implies expression

scroll to zoom · drag to pan · click green rules or blue tokens to navigate

EBNF

expression
  : expressionTerm
  | retrieve
  | query
  | expression 'is' 'not'? ('null' | 'true' | 'false')
  | expression ('is' | 'as') typeSpecifier
  | 'cast' expression 'as' typeSpecifier
  | 'not' expression
  | 'exists' expression
  | expression 'properly'? 'between' expressionTerm 'and' expressionTerm
  | ... (timing, set, comparison, logical operators)
  ;

Used In