Skip to content

CQL Conformance

Implementation State of ELM Forms

The section numbers refer to the documentation of the ELM Specification v1.5.1. Please note that CQL itself translates to ELM, but doesn't use every ELM feature. Because Blaze implements ELM and not CQL directly, the documentation is about the ELM forms and not about the CQL forms. A clear view about the CQL coverage of Blaze is not available yet.

1. Simple Values

NumGroupExpressionStateNotes
1.1.Literal!only Boolean, Integer, Decimal, String

2. Structured Values

NumGroupExpressionStateNotes
2.1.Tuple
2.2.Instance
2.3.Property!no full FHIRPathFHIRPath is not used by CQL

3. Clinical Values

NumGroupExpressionStateNotes
3.1.Code
3.2.CodeDef
3.3.CodeRef!only inside same library
3.4.CodeSystemDef
3.5.CodeSystemRef!only inside same library
3.6.Concept
3.7.ConceptDef
3.8.ConceptRef
3.9.Quantity
3.10.Ratio
3.11.ValueSetDef
3.12.ValueSetRef

4. Type Specifiers

NumGroupExpressionStateNotes
4.1.TypeSpecifier
4.2.NamedTypeSpecifier
4.3.IntervalTypeSpecifier
4.4.ListTypeSpecifier
4.5.TupleTypeSpecifier
4.6.ChoiceTypeSpecifier

5. Libraries

NumGroupExpressionStateNotes
5.1.Library
5.2.IncludeDef!no custom includes, only FHIRHelpers
5.3.VersionedIdentifier
5.4.ContextDef

6. Data Model

NumGroupExpressionStateNotes
6.1. UsingDef!only FHIR R4

7. Parameters

NumGroupExpressionStateNotes
7.1.ParameterDef
7.2.ParameterRef

8. Expressions

NumGroupExpressionStateNotes
8.1.Expression
8.2.OperatorExpression
8.3.UnaryExpression
8.4.BinaryExpression
8.5.TernaryExpression
8.6.NaryExpression
8.7.AggregateExpression

9. Reusing Logic

NumGroupExpressionStateNotes
9.1.ExpressionDef
9.2.ExpressionRef!only inside same library
9.3.FunctionDef
9.4.FunctionRef!hard coded implementation of some functions
9.5.OperandRef

10. Queries

NumGroupExpressionStateNotes
10.1.Query
10.2.AliasedQuerySource!only single source
10.3.AliasRef
10.4.ByColumn
10.5.ByDirection
10.6.ByExpression
10.7.IdentifierRef
10.8.LetClause
10.9.QueryLetRef
10.10.RelationshipClause
10.11.ReturnClause
10.12.AggregateClause
10.13.SortClause
10.14.With
10.15.Without

11. External Data

NumGroupExpressionStateNotes
11.1.Retrieve!no date ranges
11.2.IncludeElement

12. Comparison Operators

NumGroupExpressionStateNotes
12.1.Equal
12.2.Equivalent
12.3.Greater
12.4.GreaterOrEqual
12.5.Less
12.6.LessOrEqual
12.7.NotEqual

13. Logical Operators

NumGroupExpressionStateNotes
13.1.And
13.2.Implies
13.3.Not
13.4.Or
13.5.Xor

14. Nullological Operators

NumGroupExpressionStateNotes
14.1.Null
14.2.Coalesce
14.3.IsFalse
14.4.IsNull
14.5.IsTrue

15. Conditional Operators

NumGroupExpressionStateNotes
15.1.Case
15.2.If

16. Arithmetic Operators

NumGroupExpressionStateNotes
16.1.Abs
16.2.Add
16.3.Ceiling
16.4.Divide
16.5.Exp
16.6.Floor
16.7.HighBoundary
16.8.Log
16.9.LowBoundary
16.10.Ln
16.11.MaxValue
16.12.MinValue
16.13.Modulo
16.14.Multiply
16.15.Negate
16.16.Power
16.17.Precision
16.18.Predecessor
16.19.Round
16.20.Subtract
16.21.Successor
16.22.Truncate
16.23.TruncatedDivide

17. String Operators

NumGroupExpressionStateNotes
17.1.Combine
17.2.Concatenate
17.3.EndsWith
17.4.Equal
17.5.Equivalent
17.6.Indexer
17.7.LastPositionOf
17.8.Length
17.9.Lower
17.10.Matches
17.11.Not Equal
17.12.PositionOf
17.13.ReplaceMatches
17.14.Split
17.15.SplitOnMatches
17.16.StartsWith
17.17.Substring
17.18.Upper

18. Date and Time Operators

NumGroupExpressionStateNotes
18.1.Add
18.2.After
18.3.Before
18.4.Equal
18.5.Equivalent
18.6.Date
18.7.DateFrom
18.8.DateTime
18.9.DateTimeComponentFrom
18.10.DifferenceBetween!same as DurationBetween
18.11.DurationBetween
18.12.Not Equal
18.13.Now
18.14.SameAs
18.15.SameOrBefore
18.16.SameOrAfter
18.17.Subtract
18.18.Time
18.19.TimeFrom
18.20.TimezoneOffsetFrom
18.21.TimeOfDay
18.22.Today

19. Interval Operators

NumGroupExpressionStateNotes
19.1.Interval
19.2.After
19.3.Before
19.4.Collapse
19.5.Contains
19.6.End
19.7.Ends
19.8.Equal
19.9.Equivalent
19.10.Except
19.11.Expand
19.12.In
19.13.Includes
19.14.IncludedIn
19.15.Intersect
19.16.Meets
19.17.MeetsBefore
19.18.MeetsAfter
19.19.Not Equal
19.20.Overlaps
19.21.OverlapsBefore
19.22.OverlapsAfter
19.23.PointFrom
19.24.ProperContains
19.25.ProperIn
19.26.ProperIncludes
19.27.ProperIncludedIn
19.28.Size
19.29.Start
19.30.Starts
19.31.Union
19.32.Width

20. List Operators

NumGroupExpressionStateNotes
20.1.List
20.2.Contains
20.3.Current
20.4.Distinct
20.5.Equal
20.6.Equivalent
20.7.Except
20.8.Exists
20.9.Filter
20.10.First
20.11.Flatten
20.12.ForEach
20.13.In
20.14.Includes
20.15.IncludedIn
20.16.IndexOf
20.17.Intersect
20.18.Last!no orderBy
20.19.Not Equal
20.20.ProperContains
20.21.ProperIn
20.22.ProperIncludes
20.23.ProperIncludedIn
20.24.Repeat
20.25.SingletonFrom
20.26.Slice
20.27.Sort
20.28.Times
20.29.Union

21. Aggregate Operators

NumGroupExpressionStateNotes
21.1.AllTrue!no pathpath not used from CQL
21.2.AnyTrue!no pathpath not used from CQL
21.3.Avg!no pathpath not used from CQL
21.4.Count!no pathpath not used from CQL
21.5.GeometricMean!no pathpath not used from CQL
21.6.Product!no pathpath not used from CQL
21.7.Max!no pathpath not used from CQL
21.8.Median!no pathpath not used from CQL
21.9.Min!no pathpath not used from CQL
21.10.Mode!no pathpath not used from CQL
21.11.PopulationVariance!no pathpath not used from CQL
21.12.PopulationStdDev!no pathpath not used from CQL
21.13.Sum!no pathpath not used from CQL
21.14.StdDev!no pathpath not used from CQL
21.15.Variance!no pathpath not used from CQL

22. Type Operators

NumGroupExpressionStateNotes
22.1.As!no strictness
22.2.CanConvert
22.3.CanConvertQuantity
22.4.Children
22.5.Convert
22.6.ConvertQuantity
22.7.ConvertsToBoolean
22.8.ConvertsToDate
22.9.ConvertsToDateTime
22.10.ConvertsToDecimal
22.11.ConvertsToLong
22.12.ConvertsToInteger
22.13.ConvertsToQuantity
22.14.ConvertsToRatio
22.15.ConvertsToString
22.16.ConvertsToTime
22.17.Descendents
22.18.Is
22.19.ToBoolean
22.20.ToChars
22.21.ToConcept
22.22.ToDate
22.23.ToDateTime
22.24.ToDecimal
22.25.ToInteger
22.26.ToList
22.27.ToLong
22.28.ToQuantity
22.29.ToRatio
22.30.ToString
22.31.ToTime

23. Clinical Operators

NumGroupExpressionStateNotes
23.1.AnyInCodeSystem
23.2.AnyInValueSet
23.3.CalculateAge
23.4.CalculateAgeAt
23.5.Equal
23.6.Equivalent
23.7.InCodeSystem
23.8.InValueSet
23.9.ExpandValueSet
23.10.Not Equal
23.11.SubsumedBy
23.12.Subsumes

24. Errors and Messages

NumGroupExpressionStateNotes
24.1. Message