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✗