Clinical Quality Language Publication Directory

All Published Versions of Clinical Quality Language

The following versions of Clinical Quality Language are available:

Date Version Description
Current Versions
September 5, 20181.3Current Official Published Version (Release 1 STU3)
(draft) (last commit) Current Development build (may be incoherent and change rapidly)
STU4 sequence
March 24th, 2019 1.4 STU4 Ballot. Changes:
  • Breaking Changes:
    • #1716: Added support for non-patient, model-defined contexts
    • #1723: Define seconds as a Decimal for the purposes of comparison
    • #1724: Removed timezone offset from Time
  • Substantive Changes:
    • #1707: Added a Size operator for intervals
    • #1719: Added support for namespaces for library names
    • #1720: Added support for qualifiers in retrieve code paths
    • #1722: Updated FHIRPath usage and translation mappings for FHIRPath Normative 3 ballot
    • #1727: Added unit conversion support for quantities
    • #1766: Added valuesetProperty to ELM Retrieve
    • Added support for related-context queries

Detailed Change Log

STU3 sequence
September 5, 2018 1.3 STU3 Release. Changes:
  • Equality for types with components now only returns null if the values have different elements specified
  • List membership and duplicate detection now use equality rather than equivalence semantics throughout
  • Clarified date/time equality/equivalence/comparison semantics
  • Symbolic date/time comparisons now occur at finest precision specified in either value
  • Clarified relationship between symbolic/specified comparison operators
  • Clarified relationship between date/time and interval overloads for equality/equivalence/comparison operators
  • Clarified definition and behavior of interval promotion and demotion and indicated it is optional and disabled by default
  • Improved conversion precedence
  • Removed "week" operations that require a "week number"
  • Changed AgeInYears() and AgeInMonths() to use Date, not DateTime
  • Added a per clause to collapse
  • Added SplitOnMatches
  • Added backtick-delimited identifiers
  • ELM operator content is now generated from the ELM model
  • Numerous clarifications and errata throughout
  • Added sidebar navigation

Detailed change log

April 1st, 2018 1.3 STU3 Ballot. Changes:
  • Language Changes:
    • Added Ratio and Date system-defined types
    • Added difference of and duration between syntax
    • Named type specifiers now allow multiple qualifiers
    • Added Product and GeometricMean aggregate operators
    • Added Expand interval set operator
    • Invalid quantity operations and conversions now return null instead of error
    • Exists now ignores null elements
    • Added implicit conversion from Integer or Decimal to Quantity
  • ELM Changes:
    • Added signature element to FunctionRef
    • Added ELM classes for new operators
    • BinaryExpression and TernaryExpression are now abstract
    • Union, Intersect, and Except are now NaryExpressions
  • FHIRPath Support:
    • Added mappings for hasValue, conformsTo, memberOf, subsumes, subsumedBy, toChars
    • Added support for new aggregate()
    • Added support for $index and $total accessors

Detailed change log

STU2 sequence
July 2017 (published link)
July 2017 (web version)
1.2 STU2 Release. Changes:
  • Adopted FHIRPath grammar as basis for expressions
    • Support for paths
    • Method-style invocation
    • List promotion and demotion
    • Empty list as null semantics
    • $ and % identifier scopes
    • Additional FHIRPath operators
  • Support for declaration-only libraries
  • Added choice type support
  • Added Message operator to support run-time messages, errors, and warnings
  • Added external function declarations
  • Added debug and type information to ELM
  • Specified JSON format for ELM
  • Added less than/more than timing phrase modifiers
  • Added on or/or on timing phrase modifiers
  • Relaxed syntactic restriction on terminology target in a retrieve

Detailed change log

STU1 sequence
July 2016 1.1 DSTU Update. Changes:
  • Changed define clause to let within queries
  • Changed matches to ~
  • Changed <> to !=
  • Changed lists to be 0-based instead of 1-based
  • Renamed expand to flatten
  • Added implicit conversion from List<Code> to Concept
  • Added Exp operator (inverse of Ln)
  • Added weeks duration
  • Added support for forward declarations
  • Added concept and code declarations

Detailed change log

May 2015 1.0 STU1 Release May 2015