This page is part of the Clinical Quality Language Specification (v1.5.2: Normative - Normative) based on FHIR R4. This is the current published version. For a full list of available versions, see the Directory of published versions
This changelist describes the substantive changes, as well as a handful of more significant changes to the specification as a result of STU 3 comment reconciliation. For a complete list of changes, refer to the repository commit history and the ballot reconciliation spreadsheet.
#30: Updated terminology identifiers to use URIs in examples throughout
#36: Added discussion of code and concept declarations and literals
#42: Specified duration of year as 365 days and month as 30 days when there is no anchor
#43: Clarified that timezone offset normalization should only apply for time-based precisions
#47: Added Date overloads for CalculateAge operators in ELM and CQL; AgeInYears and AgeInMonths use Date, AgeInWeeks and finer use DateTime
#48: Added examples of Date-interval with open/closed boundaries
#57: Added guidance on use of external functions
#61: Added examples throughout
#65: Added documentation of formatting strings
#67: Clarified behavior of precision with between and other date/time functions
#72: Added SplitOnMatches operator
#73: Added discussion of potential pitfalls with uncertainty and date/time arithmetic
#75: Added Concept overload for Equivalence
#101: Updated ELM model
#167: Clarified mixed-type signatures for interval and date/time operators and the semantics for interval promotion/demotion and when they are used
#207: Added OperatorExpression type in ELM
#214: Align with the FHIRPath normative ballot
#215: Remove the ability to extract a week component
#216: Remove the ability to say "same week as"
#211: Symbolic date/time comparisons now occur at finest precision specified in either input
#212: Remove unnecessary overloads of Divide and Multiply
#217: Added choice-casting and interval promotion/demotion to conversion precedence
#218: Added discussion of the option to require the from keyword for all queries
#219: Changed date/time equality/comparison to return null only if the values have different levels of precision
#220: Changed tuple equality to return null only if the values have different elements specified
#221: Changed list membership and duplicate detection semantics throughout to use equality instead of equivalence
#222: Add a per clause to the collapse operator
1377: Corrected link to Type Operators section
1378: Corrected link to Type Operators section
1379: Improved formatting for table 9-E
1432: Added signature element to FunctionRef ELM type
1433: Clarified that on and same are synonyms in timing phrases
1434: Relaxed quantity operation semantics to return null rather than raise an error for invalid quantity operations
1435: Exists operator now ignores null elements in lists
1436: Clarified aliases are not allowed in sort clauses
1437: Added Ratio system-defined type
1438: Fixed take() FHIRPath mapping
1439: Added difference of and duration between operators
1440: Require case-sensitivity for UCUM units
1441: Added clarifying guidance regarding date/time calculations involving date/time values with different timezone offsets
1442: Division of like quantities results in a quantity with the default UCUM unit ('1')
1443: Added implicit conversion from Integer or Decimal to Quantity
1444: Added Date system-defined type
1445: Clarified singular and UCUM temporal units are allowed for date/time arithmetic
1446: Changed conversion of List<Code> to Concept from implicit to explicit
1447: Added overloads of In to support List<Code>
1475: Clarified set semantics of intersect and except
1478: Clarified timezone offset handling for difference calculations
1479: Clarified calendar semantics for date/time arithmetic, even when using UCUM time-period units
1483: BinaryExpression and TernaryExpression ELM types are now abstract
1500: Union, Intersect, and Except are now NaryExpressions
1507: Generalized named type specifier rule to allow for multiple-qualifier type names
1509: Clarified case-insensitive behavior of string comparison
1538: Clarified instance selector behavior for missing elements
1539: Clarified behavior of a quantity with a null unit
1540: Corrected ELM documentation for IdentifierRef
1541: Added support for Product and GeometricMean aggregate operators
1542: Added support for Expand interval set operator
1549: Publish CQL as a web-based specification
1552: Clarified that ELM and CQL do not prescribe short-circuit evaluation
1553: Clarified that parameter defaults must be compile-time evaluable
1555: Relaxed semantics of conversion failures to return null instead of run-time errors
1556: Clarify semantics for string overload of valueset membership operator (in)
1560: Corrected population context example
1561: Added singleton overloads for included in and includes
1569: Corrected missing operators in operator precedence chart
1574: Clarified null-handling behavior for in and contains
1579: Added FHIRPath changes: Mappings for hasValue, conformsTo, memberOf, subsumes, subsumedBy, toChars, and aggregate; added $index and $total iterators
1580: Changed ELM serialization to avoid type clash with JSON serializers