Skip to content

Latest commit

 

History

History
386 lines (335 loc) · 19.5 KB

cql.md

File metadata and controls

386 lines (335 loc) · 19.5 KB

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

Num Group Expression State Notes
1.1. Literal ! only Boolean, Integer, Decimal, String

2. Structured Values

Num Group Expression State Notes
2.1. Tuple
2.2. Instance
2.3. Property ! no full FHIRPath FHIRPath is not used by CQL

3. Clinical Values

Num Group Expression State Notes
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

Num Group Expression State Notes
4.1. TypeSpecifier
4.2. NamedTypeSpecifier
4.3. IntervalTypeSpecifier
4.4. ListTypeSpecifier
4.5. TupleTypeSpecifier
4.6. ChoiceTypeSpecifier

5. Libraries

Num Group Expression State Notes
5.1. Library
5.2. IncludeDef ! no custom includes, only FHIRHelpers
5.3. VersionedIdentifier
5.4. ContextDef

6. Data Model

Num Group Expression State Notes
6.1. UsingDef ! only FHIR R4

7. Parameters

Num Group Expression State Notes
7.1. ParameterDef
7.2. ParameterRef

8. Expressions

Num Group Expression State Notes
8.1. Expression
8.2. OperatorExpression
8.3. UnaryExpression
8.4. BinaryExpression
8.5. TernaryExpression
8.6. NaryExpression
8.7. AggregateExpression

9. Reusing Logic

Num Group Expression State Notes
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

Num Group Expression State Notes
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 ! always distinct
10.12. AggregateClause
10.13. SortClause
10.14. With ! only equiv version
10.15. Without

11. External Data

Num Group Expression State Notes
11.1. Retrieve ! no date ranges
11.2. IncludeElement

12. Comparison Operators

Num Group Expression State Notes
12.1. Equal
12.2. Equivalent
12.3. Greater
12.4. GreaterOrEqual
12.5. Less
12.6. LessOrEqual
12.7. NotEqual

13. Logical Operators

Num Group Expression State Notes
13.1. And
13.2. Implies
13.3. Not
13.4. Or
13.5. Xor

14. Nullological Operators

Num Group Expression State Notes
14.1. Null
14.2. Coalesce
14.3. IsFalse
14.4. IsNull
14.5. IsTrue

15. Conditional Operators

Num Group Expression State Notes
15.1. Case
15.2. If

16. Arithmetic Operators

Num Group Expression State Notes
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

Num Group Expression State Notes
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

Num Group Expression State Notes
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

Num Group Expression State Notes
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

Num Group Expression State Notes
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

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

22. Type Operators

Num Group Expression State Notes
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

Num Group Expression State Notes
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

Num Group Expression State Notes
24.1. Message