Clinical Quality Language Publication Directory

This page is part of the CQL Standard (v1.5.1: Normative Edition ). This is the current published version. For a full list of available versions, see the Directory of published versions

1.2 Change Log

Update 2 Changes:

Adopted the FHIRPath.g4 grammar as the base expression grammar for the language

Expanded semantics to enable FHIRPath expressions:

  • Added ability to invoke property accessors on a list

  • Added $ and % identifier scopes

  • Added implies operator

  • Added | as a synonym for union

  • Added & string concatenation operator

  • Added promotion and demotion of lists

  • Added options to support enabling aspects of FHIRPath functionality

  • Added “method-style” invocation syntax

  • Added rewrite rules for FHIRPath operations

  • Added Repeat, Slice, StartsWith, EndsWith, Matches, ReplaceMatches, LastPositionOf, Children, and Descendents operations

  • Applied “treat null as empty list” semantics for list operators (e.g. exists (null) now returns false, not null)

  • Added ToList operator to support efficient list promotion

Corrected String concatenation mapping

Clarified runtime behavior for options on quantities with incompatible units

Clarifications and errata throughout based on ballot comments

#824: Fixed Substring declarations in ELM

#991: Clarified semantics for conditional expressions

#1009: Clarified semantics and usage of retrieve with codes and terminologies

#1013: Changed semantics of set operators to distinct

#1031: Clarified semantics of decimal equality (trailing zeroes are ignored)

#1057: Added CQL and ELM Media Types and URL.

#1064: Added support for declaration-only libraries

#1102: Clarified quoted-identifier semantics

#1105: Added version header to CQL grammar file

#1111: Clarified semantics of time-based quantities

#1114: Clarified calculations involving weeks

#1116: Specified semantics for CQL versioning within libraries

#1120: Clarified semantics of date/time arithmetic with timezones

#1122: Added choice types

#1196: Clarified semantics of multiple with/without clauses in a query

#1197: Clarified semantics of weeks for date/time operations

#1221: Added warnings for decimal truncation of time-valued quantities

#1223: Added external function definitions to support import of external libraries

#1229: Clarified subtype vs proper subtype definition

#1232: Fixed incorrect IndexOf documentation

#1233: Fixed Implies signature

#1235: Clarified semantics for Upper and Lower operators

#1236: Clarified semantics for Min and Max aggregate operators

#1237: Clarified semantics for Age in a population context

#1287: Clarified rules for interval construction

#1309: Called clause in the include definition is now optional

#1310: Added source locator information to ELM

#1311: Added result type information to ELM

#1312: Specified JSON format for ELM

#1313: Added less than/more than qualifiers to interval operator phrases

#1314: Provided examples for time interval calculations

#1315: Clarified type inference rules for queries

#1316: Added EndsWith operator

#1317: Fixed an error with escape characters not parsing correctly

#1336: Clarified semantics for before/after timing phrases

#1337: Added on or/or on qualifier to timing phrases to enable inclusive before/after

#1339: Clarified sort behavior in the presence of nulls

#1340: Added Message operators to support errors, warnings, messages and tracing

#1341: Relaxed syntactic restriction on terminology expression in retrieves

#1345: Corrected interpretation of timing phrases

#1348: Clarified let semantics and added documentation for the let clause


#1407: Corrected signature for Interval Intersect

#1426: Corrected signature for Same or Before

#1427: Corrected capitalization of is in keywords list

#1431: Relaxed equivalence semantics for Code values to ignore code system version