-
Notifications
You must be signed in to change notification settings - Fork 37
Feature Status
Dylan Hall edited this page Jun 23, 2026
·
1 revision
This table describes the feature support status in cql-execution with respect to the CQL specification, version 1.5.3.
For historical status prior to the creation of this wiki page, see https://github.com/cqframework/cql-execution/commits/master/CQL_Execution_Features.xlsx
The Status Summary column is derived from the Supported and STU columns using the following rules:
| Status Color | Rule |
|---|---|
| π¨ | Supported = no and STU = yes |
| π§ | Supported = partial and STU = partial |
| π₯ | Supported = partial and STU = no, or Supported = no and STU = partial |
| π« | Supported = incorrect, or Supported = no and STU = no |
| (blank) | Everything else |
| Logical | Alt Page | Alt | Capability | Supported | Tested | STU | Status Summary | Notes | GH Issue |
|---|---|---|---|---|---|---|---|---|---|
| Appendix B | 1.1 | SimpleValues: Any | yes | partial | no | * Implicitly tested in many other tests | |||
| 1.1 | Chapter 3 | 1.3 | SimpleValues: Literal - Null | yes | yes | no | * Implemented in nullological.js | ||
| 1.1 | Chapter 3 | 1.3 | SimpleValues: Literal - Boolean | yes | yes | no | |||
| 1.1 | Chapter 3 | 1.3 | SimpleValues: Literal - Integer | yes | yes | no | |||
| 1.1 | Chapter 3 | 1.3 | SimpleValues: Literal - Long | no | no | yes | π¨ | 207 | |
| 1.1 | Chapter 3 | 1.3 | SimpleValues: Literal - Decimal | yes | yes | no | |||
| 1.1 | Chapter 3 | 1.3 | SimpleValues: Literal - String | yes | yes | no | |||
| 1.1 | Chapter 3 | 1.3 | SimpleValues: Literal - String - escape sequences | yes | yes | no | |||
| 1.1 | Chapter 3 | 1.3 | SimpleValues: Literal - Date | yes | no | no | |||
| 1.1 | Chapter 3 | 1.3 | SimpleValues: Literal - DateTime | yes | yes | no | |||
| 1.1 | Chapter 3 | 1.3 | SimpleValues: Literal - Time | yes | yes | no | |||
| 1.1 | Chapter 3 | 1.3 | SimpleValues: Literal - Quantity | yes | no | no | |||
| 1.1 | Chapter 3 | 1.3 | SimpleValues: Literal - Ratio | yes | no | no | |||
| 2.1 | Chapter 2 | 4.3 | Structured Values: Tuple | yes | yes | no | |||
| 2.1 | Chapter 2 | 4.3.1 | Structured Values: Tuple - Missing Information | yes | no | no | |||
| 2.2 | Structured Values: Instance | yes | yes | no | |||||
| 2.3 | Structured Values: Property | yes | yes | no | * Implicitly tested in many tests | ||||
| 3.1 | Appendix B | 1.3 | Clinical Values: Code | yes | yes | no | * Tested in instance-test.js | ||
| 3.2 | Chapter 2 | 1.4 | Clinical Values: CodeDef | yes | yes | no | |||
| 3.3 | Clinical Values: CodeRef | yes | yes | no | |||||
| Appendix B | 1.4 | Clinical Values: CodeSystem | partial | no | partial | π§ | * Not supported as argument to function | ||
| 3.4 | Chapter 2 | 1.4 | Clinical Values: CodeSystemDef | yes | no | no | |||
| 3.5 | Clinical Values: CodeSystemRef | no | no | no | π« | * According to spec: Note that this operation should almost never be performed in practice. Code system references are allowed in order to allow for testing of code membership in a particular code system. | 259 | ||
| 3.6 | Appendix B | 1.5 | Clinical Values: Concept | yes | yes | no | * Tested in instance-test.js | ||
| 3.7 | Chapter 2 | 1.4 | Clinical Values: ConceptDef | yes | yes | no | |||
| 3.8 | Clinical Values: ConceptRef | yes | yes | no | |||||
| 3.9 | Appendix B | 1.11 | Clinical Values: Quantity | yes | yes | no | * Tested in instance-test.js | ||
| 3.10 | Appendix B | 1.12 | Clinical Values: Ratio | yes | no | no | |||
| Appendix B | 1.15 | Clinical Values: ValueSet | partial | no | partial | π§ | * Not supported as argument to function | ||
| 3.11 | Chapter 2 | 1.4 | Clinical Values: ValueSetDef | partial | partial | no | π₯ | * CodeSystem property not supported | |
| 3.12 | Clinical Values: ValueSetRef | partial | partial | no | π₯ | * Not supported as argument to function | 226 | ||
| Appendix B | 1.16 | Clinical Values: Vocabulary | no | no | yes | π¨ | 281 | ||
| 4.2 | Type Specifiers: NamedTypeSpecifier | yes | yes | no | * Implicitly tested in many tests | ||||
| 4.3 | Type Specifiers: IntervalTypeSpecifier | yes | yes | no | * Implicitly tested in many tests | ||||
| 4.4 | Type Specifiers: ListTypeSpecifier | yes | yes | no | * Implicitly tested in many tests | ||||
| 4.5 | Type Specifiers: TupleTypeSpecifier | yes | yes | no | * Implicitly tested in many tests | ||||
| 4.6 | Type Specifiers: ChoiceTypeSpecifier | yes | yes | no | * Implicitly tested in many tests | ||||
| 5.1 | Chapter 2 | 1.1 | Libraries: Library | yes | yes | no | |||
| 5.2 | Chapter 2 | 1.3 | Libraries: IncludeDef | yes | yes | no | * Not supported w/ its own class, but extracted from Library | ||
| 5.3 | Libraries: VersionedIdentifier | yes | yes | no | * Not supported w/ its own class, but extracted from Library | ||||
| 5.4 | Chapter 2 | 1.6 | Libraries: ContextDef - Patient | yes | yes | no | |||
| 5.4 | Chapter 2 | 1.6 | Libraries: ContextDef - Practitioner | no | no | ? | * Unclear if Practitioner context is actually part of the spec. | ||
| 5.4 | Chapter 2 | 1.6 | Libraries: ContextDef - Unfiltered | partial | partial | no | π₯ | * Retrieves not supported * References to expressions in other libraries not supported |
156 157 |
| 6.1 | Chapter 2 | 1.2 | DataModel: UsingDef | yes | yes | no | * Not supported w/ its own class, but extracted from Library | ||
| 7.1 | Chapter 2 | 1.5 | Parameters: ParameterDef | partial | partial | no | π₯ | * ParameterType property not supported (but may not be used) | |
| 7.2 | Parameters: ParameterRef | yes | yes | no | |||||
| 8.1 | Expressions: Expression | yes | yes | no | * Implicitly tested in many tests | ||||
| 8.2 | Expressions: OperatorExpression | no | no | no | π« | ||||
| 8.7 | Expressions: AggregateExpression | yes | yes | yes | |||||
| 9.1 | Reusing Logic: ExpressionDef | yes | yes | no | |||||
| 9.2 | Reusing Logic: ExpressionRef | yes | yes | no | |||||
| 9.3 | Chapter 3 | 13 | Reusing Logic: FunctionDef | yes | yes | no | |||
| 9.3 | Chapter 3 | 13.1 | Reusing Logic: FunctionDef - external | no | no | no | π« | 286 | |
| 9.3 | Chapter 3 | 13.2 | Reusing Logic: FunctionDef - fluent | yes | yes | yes | |||
| 9.4 | Chapter 3 | 2.3 | Reusing Logic: FunctionRef | yes | yes | no | |||
| 10.1 | Chapter 2 | 3 | Queries: Query | yes | yes | yes | |||
| 10.1 | Chapter 2 | 3.1 | Queries: Query - where | yes | yes | no | |||
| 10.2 | Chapter 3 | 9 | Queries: AliasedQuerySource | yes | yes | no | |||
| 10.3 | Chapter 3 | 9 | Queries: AliasRef | yes | yes | no | |||
| 10.4 | Chapter 2 | 3.3 | Queries: ByColumn | yes | yes | no | |||
| 10.5 | Chapter 2 | 3.3 | Queries: ByDirection | yes | yes | no | |||
| 10.6 | Chapter 2 | 3.3 | Queries: ByExpression | yes | yes | no | |||
| 10.7 | Chapter 3 | 8 | Queries: LetClause | yes | yes | no | |||
| 10.8 | Chapter 3 | 8 | Queries: QueryLetRef | yes | yes | no | |||
| 10.9 | Chapter 2 | 3.4 | Queries: RelationshipClause | yes | yes | no | |||
| 10.10 | Chapter 2 | 3.2 | Queries: ReturnClause | yes | yes | no | |||
| 10.11 | Chapter 3 | 12 | Queries: AggregateClause | yes | yes | yes | |||
| 10.12 | Chapter 2 | 3.3 | Queries: SortClause | yes | yes | no | |||
| 10.13 | Chapter 2 | 3.4 | Queries: With | yes | yes | no | |||
| 10.14 | Chapter 2 | 3.4 | Queries: Without | yes | yes | no | |||
| 11.1 | Chapter 2 | 2 | External Data: Retrieve | partial | partial | partial | π§ | ||
| 11.1.1 | Chapter 2 | 2.1 | External Data: Retrieve - id | no | no | ? | 294 | ||
| 11.1.2 | Chapter 2 | 2.2 | External Data: Retrieve - codes | yes | yes | no | |||
| 11.1.3 | External Data: Retrieve - dateRange | yes | no | no | |||||
| 11.1.4 | External Data: Retrieve - context | no | no | no | π« | * Used in Related Context Retrieves | 209 | ||
| 11.1.5 | External Data: Retrieve - include | no | no | yes | π¨ | 294 | |||
| 11.1.6 | External Data: Retrieve - dataType | yes | yes | no | |||||
| 11.1.7 | External Data: Retrieve - templateId | yes | yes | no | |||||
| 11.1.8 | External Data: Retrieve - idProperty | no | no | ? | 294 | ||||
| 11.1.9 | External Data: Retrieve - idSearch | no | no | yes | π¨ | 294 | |||
| 11.1.10 | Chapter 2 | 2.3 | External Data: Retrieve - contextProperty | no | no | ? | 294 | ||
| 11.1.11 | External Data: Retrieve - contextSearch | no | no | yes | π¨ | 294 | |||
| 11.1.12 | External Data: Retrieve - codeProperty | yes | yes | no | |||||
| 11.1.13 | External Data: Retrieve - codeSearch | no | no | yes | π¨ | 294 | |||
| 11.1.14 | External Data: Retrieve - codeComparator | no | no | ? | 293 | ||||
| 11.1.15 | External Data: Retrieve - valueSetProperty | no | no | no | π« | 294 | |||
| 11.1.16 | External Data: Retrieve - dateProperty | yes | no | no | |||||
| 11.1.17 | External Data: Retrieve - dateLowProperty | no | no | no | π« | 294 | |||
| 11.1.18 | External Data: Retrieve - dateHighProperty | no | no | no | π« | 294 | |||
| 11.1.19 | External Data: Retrieve - dateSearch | no | no | yes | π¨ | 294 | |||
| 11.2.1 | Chapter 3 | 11 | External Data: Retrieve - IncludeElement - relatedDataType | no | no | yes | π¨ | 294 | |
| 11.2.2 | Chapter 3 | 11 | External Data: Retrieve - IncludeElement - relatedProperty | no | no | yes | π¨ | 294 | |
| 11.2.3 | Chapter 3 | 11 | External Data: Retrieve - IncludeElement - relatedSearch | no | no | yes | π¨ | 294 | |
| 11.2.4 | Chapter 3 | 11 | External Data: Retrieve - IncludeElement - isReverse | no | no | yes | π¨ | 294 | |
| Appendix B | 5.1 | Comparison: Between | yes | yes | no | * Translated using GreaterOrEqual/LessOrEqual | |||
| 12.1 | Appendix B | 5.2 | Comparison: Equal | yes | partial | partial | * Needs tests for Decimal, String, Time, List, Interval, Null | ||
| 12.2 | Appendix B | 5.3 | Comparison: Equivalent | yes | partial | partial | * Needs tests for Decimal and Time | ||
| 12.3 | Appendix B | 5.4 | Comparison: Greater | yes | partial | partial | * Needs tests for Date, DateTime, Time, Decimal, and Null | ||
| 12.4 | Appendix B | 5.5 | Comparison: GreaterOrEqual | yes | partial | partial | * Needs tests for Date, Datetime, Time, Decimal, and Null | ||
| 12.5 | Appendix B | 5.6 | Comparison: Less | yes | partial | partial | * Needs tests for Date, DateTime, Time, Decimal, and Null | ||
| 12.6 | Appendix B | 5.7 | Comparison: LessOrEqual | yes | partial | partial | * Needs tests for Date, DateTime, Time, Decimal, and Null | ||
| 12.7 | Appendix B | 5.8 | Comparison: NotEqual | yes | partial | partial | * Translated as Not(Equal(a,b)) - so no extra implementation * Additional tests are probably not necessary |
||
| Appendix B | 5.9 | Comparison: Not Equivalent | yes | partial | partial | * Translated as Not(Equal(a,b)) - so no extra implementation * Additonal tests are probably not necessary |
|||
| 13.1 | Appendix B | 2.1 | Logical: And | yes | yes | no | |||
| 13.2 | Appendix B | 2.2 | Logical: Implies | yes | yes | no | |||
| 13.3 | Appendix B | 2.3 | Logical: Not | yes | yes | no | |||
| 13.4 | Appendix B | 2.4 | Logical: Or | yes | yes | no | |||
| 13.5 | Appendix B | 2.5 | Logical: Xor | yes | yes | no | |||
| 14.1 | Nullological: Null | yes | yes | no | |||||
| 14.2 | Appendix B | 4.1 | Nullological: Coalesce | yes | yes | no | |||
| 14.3 | Appendix B | 4.3 | Nullological: IsFalse | yes | yes | no | * Implemented in logical.js (not nullological.js) | ||
| 14.4 | Appendix B | 4.2 | Nullological: IsNull | yes | yes | no | |||
| 14.5 | Appendix B | 4.4 | Nullological: IsTrue | yes | yes | no | * Implemented in logical.js (not nullological.js) | ||
| 15.1 | Developer | 5 | Conditional: Case | yes | yes | no | |||
| 15.2 | Developer | 5 | Conditional: If | yes | yes | no | |||
| 16.1 | Appendix B | 6.1 | Arithmetic: Abs | yes | partial | partial | * Needs tests for Quantity and Null | ||
| 16.2 | Appendix B | 6.2 | Arithmetic: Add | yes | partial | partial | * Needs tests for Quantity and Null | ||
| 16.3 | Appendix B | 6.3 | Arithmetic: Ceiling | yes | partial | no | * Needs tests for Null | ||
| 16.4 | Appendix B | 6.4 | Arithmetic: Divide | yes | partial | no | * Needs tests for Quantity and Null | ||
| 16.5 | Appendix B | 6.6 | Arithmetic: Exp | yes | partial | no | * Needs tests for standard use | ||
| 16.6 | Appendix B | 6.5 | Arithmetic: Floor | yes | partial | no | * Needs tests for Null | ||
| 16.7 | Appendix B | 6.7 | Arithmetic: HighBoundary | no | no | no | π« | 159 | |
| 16.8 | Appendix B | 6.8 | Arithmetic: Log | yes | partial | no | * Needs tests for Null | ||
| 16.9 | Appendix B | 6.9 | Arithmetic: LowBoundary | no | no | no | π« | 159 | |
| 16.10 | Appendix B | 6.10 | Arithmetic: Ln | yes | partial | no | * Needs tests for null | ||
| 16.11 | Appendix B | 6.11 | Arithmetic: MaxValue | yes | partial | partial | * Needs tests for Date | ||
| 16.12 | Appendix B | 6.12 | Arithmetic: MinValue | yes | partial | partial | * Needs tests for Date | ||
| 16.13 | Appendix B | 6.13 | Arithmetic: Modulo | yes | partial | partial | * Needs tests for Decimal, Quantity, and Null | ||
| 16.14 | Appendix B | 6.14 | Arithmetic: Multiply | yes | partial | partial | * Needs tests for Decimal, Quantity, and Null |
|
|
| 16.15 | Appendix B | 6.15 | Arithmetic: Negate | yes | partial | partial | * Needs tests for Decimal, Quantity, Null, and Unrepresentable | ||
| 16.16 | Appendix B | 6.18 | Arithmetic: Power | incorrect | partial | partial | π« | * Some issues w/ very large numbers * Needs tests for Decimal and Null |
201 |
| 16.17 | Appendix B | 6.16 | Arithmetic: Precision | partial | partial | no | π₯ | * Implemented for date-based types but not numeric types | |
| 16.18 | Appendix B | 6.17 | Arithmetic: Predecessor | incorrect | partial | partial | π« | * Whole number decimals may be treated like integers * Needs tests for Quantity, Date, Time, and Null |
204 |
| 16.19 | Appendix B | 6.19 | Arithmetic: Round | yes | partial | no | * Needs tests for Null and other precisions | ||
| 16.20 | Appendix B | 6.20 | Arithmetic: Subtract | yes | partial | partial | * Needs tests for Quantity and Null | ||
| 16.21 | Appendix B | 6.21 | Arithmetic: Successor | incorrect | partial | partial | π« | * Whole number decimals may be treated like integers * Needs tests for Quantity, Date, Time, and Null |
204 |
| 16.22 | Appendix B | 6.22 | Arithmetic: Truncate | yes | partial | no | * Needs tests for Null | ||
| 16.23 | Appendix B | 6.23 | Arithmetic: Truncated Divide | yes | partial | partial | * Needs tests for Decimal, Quantity, and Null | ||
| 17.1 | Appendix B | 7.1 | String: Combine | yes | yes | no | |||
| 17.2 | Appendix B | 7.2 | String: Concatenate | yes | yes | no | |||
| 17.3 | Appendix B | 7.3 | String: EndsWith | yes | yes | no | |||
| 17.4 | Appendix B | 5.2 | String: Equal | yes | no | no | * Implemented in comparison.js * Needs tests |
||
| 17.5 | Appendix B | 5.3 | String: Equivalent | yes | no | no | * Implemented in comparison.js * Needs tests |
||
| 17.6 | Appendix B | 7.4 | String: Indexer | yes | yes | no | |||
| 17.7 | Appendix B | 7.5 | String: LastPositionOf | yes | yes | no | |||
| 17.8 | Appendix B | 7.6 | String: Length | yes | yes | no | |||
| 17.9 | Appendix B | 7.7 | String: Lower | yes | yes | no | |||
| 17.10 | Appendix B | 7.8 | String: Matches | yes | yes | no | |||
| 17.11 | Appendix B | 5.8 | String: Not Equal | yes | no | no | * Translated as Not(Equal(a,b)) - so no extra implementation * Additional tests are probably not necessary |
||
| 17.12 | Appendix B | 7.9 | String: PositionOf | yes | yes | no | |||
| 17.13 | Appendix B | 7.10 | String: ReplaceMatches | yes | yes | no | |||
| 17.14 | Appendix B | 7.11 | String: Split | yes | yes | no | |||
| 17.15 | Appendix B | 7.12 | String: SplitOnMatches | yes | yes | no | |||
| 17.16 | Appendix B | 7.13 | String: StartsWith | yes | yes | no | |||
| 17.17 | Appendix B | 7.14 | String: Substring | yes | yes | no | |||
| 17.18 | Appendix B | 7.15 | String: Upper | yes | yes | no | |||
| 18.1 | Appendix B | 8.1 | Date and Time: Add | yes | partial | no | * Needs tests for Date and Time | ||
| 18.2 | Appendix B | 8.2 | Date and Time: After | yes | partial | no | * Needs tests for Date and Time | ||
| 18.3 | Appendix B | 8.3 | Date and Time: Before | yes | partial | no | * Needs tests for Date and Time | ||
| 18.4 | Appendix B | 5.2 | Date and Time: Equal | yes | partial | no | * Implemented in comparison.js * Needs tests for Date and Time |
||
| 18.5 | Appendix B | 5.3 | Date and Time: Equivalent | yes | partial | no | * Implemented in comparison.js * Needs tests for Date and Time |
||
| 18.6 | Appendix B | 8.4 | Date and Time: Date | yes | no | no | * Needs tests | ||
| 18.7 | Appendix B | 8.6 | Date and Time: DateFrom | yes | yes | no | |||
| 18.8 | Appendix B | 8.5 | Date and Time: DateTime | yes | yes | no | |||
| 18.9 | Appendix B | 8.6 | Date and Time: DateTimeComponentFrom | yes | partial | no | * Needs tests for Date and Time | ||
| 18.10 | Appendix B | 8.7 | Date and Time: DifferenceBetween | yes | partial | no | * Needs tests for Date and Time | ||
| 18.11 | Appendix B | 8.8 | Date and Time: DurationBetween | yes | partial | no | * Needs tests for Date and Time |
|
|
| 18.12 | Appendix B | 5.8 | Date and Time: Not Equal | yes | partial | no | * Translated as Not(Equal(a,b)) - so no extra implementation * Additional tests are probably not necessary |
||
| 18.13 | Appendix B | 8.9 | Date and Time: Now | yes | yes | no | |||
| Appendix B | 8.10 | Date and Time: On Or After | yes | partial | no | * Translated as SameOrAfter * Additional tests are probably not necessary |
|||
| Appendix B | 8.11 | Date and Time: On Or Before | yes | partial | no | * Translated as SameOrBefore * Additional tests are probably not necessary |
|||
| 18.14 | Appendix B | 8.12 | Date and Time: SameAs | yes | partial | no | * Needs tests for Date and Time | ||
| 18.15 | Appendix B | 8.14 | Date and Time: SameOrBefore | yes | partial | no | * Needs tests for Date and Time | ||
| 18.16 | Appendix B | 8.13 | Date and Time: SameOrAfter | yes | partial | no | * Needs tests for Date and Time | ||
| 18.17 | Appendix B | 8.15 | Date and Time: Subtract | yes | partial | no | * Needs tests for Date and Time | ||
| 18.18 | Appendix B | 8.16 | Date and Time: Time | yes | yes | no | |||
| 18.19 | Appendix B | 8.6 | Date and Time: TimeFrom | yes | yes | no | |||
| 18.20 | Appendix B | 8.6 | Date and Time: TimeOffsetFrom | yes | yes | no | |||
| 18.21 | Appendix B | 8.17 | Date and Time: TimeOfDay | yes | yes | no | |||
| 18.22 | Appendix B | 8.18 | Date and Time: Today | yes | yes | no | |||
| 19.1 | Interval: Interval | yes | yes | no | |||||
| 19.2 | Appendix B | 9.1 | Interval: After | yes | partial | partial | * Needs tests for Date and Time | ||
| 19.3 | Appendix B | 9.2 | Interval: Before | yes | partial | partial | * Needs tests for Date and Time | ||
| 19.4 | Appendix B | 9.3 | Interval: Collapse | yes | partial | partial | * Need to compare implementation to behavior defined in specification (it's complicated) * Needs tests for Date and Time |
||
| 19.5 | Appendix B | 9.4 | Interval: Contains | yes | partial | partial | * Needs tests for Date and Time | ||
| 19.6 | Appendix B | 9.5 | Interval: End | yes | partial | partial | * Needs tests for Date and Time | ||
| 19.7 | Appendix B | 9.6 | Interval: Ends | yes | partial | partial | * Needs tests for Date and Time | ||
| 19.8 | Appendix B | 9.7 | Interval: Equal | yes | partial | partial | * Implemented in overloaded.js * Needs tests for Decimal, Date, and Time |
||
| 19.9 | Appendix B | 9.8 | Interval: Equivalent | yes | partial | partial | * Implemented in overloaded.js * Tests in comparison-tests.js * Needs tests for Decimal, Date, and Time |
||
| 19.10 | Appendix B | 9.9 | Interval: Except | yes | partial | partial | * Needs tests for Decimal, Quantity, Date, and Time | ||
| 19.11 | Appendix B | 9.10 | Interval: Expand | yes | partial | partial | * Need to compare implementation to behavior defined in specification (it's complicated) | ||
| 19.12 | Appendix B | 9.11 | Interval: In | yes | partial | partial | * Needs tests for Date and Time | ||
| 19.13 | Appendix B | 9.12 | Interval: Includes | yes | partial | partial | * Needs tests for Date and Time | ||
| 19.14 | Appendix B | 9.13 | Interval: IncludedIn | yes | partial | partial | * Needs tests for Date and Time | ||
| 19.15 | Appendix B | 9.14 | Interval: Intersect | yes | partial | partial | * Needs tests for Decimal, Quantity, Date, and Time | ||
| 19.16 | Appendix B | 9.15 | Interval: Meets | yes | partial | partial | * Needs tests for Decimal, Quantity, Date, and Time | ||
| 19.17 | Interval: MeetsBefore | yes | partial | partial | * Needs tests for Decimal, Quantity, Date, and Time | ||||
| 19.18 | Interval: MeetsAfter | yes | partial | partial | * Needs tests for Decimal, Quantity, Date, and Time | ||||
| 19.19 | Appendix B | 9.16 | Interval: Not Equal | yes | partial | partial | * Translated as Not(Equal(a,b)) - so no extra implementation * Additional tests are probably not necessary |
||
| Appendix B | 9.17 | Interval: Not Equivalent | yes | partial | partial | * Translated as Not(Equal(a,b)) - so no extra implementation * Additonal tests are probably not necessary |
|||
| Appendix B | 9.18 | Interval: On Or After | yes | partial | partial | * Translated as SameOrAfter * Additional tests are probably not necessary |
|||
| Appendix B | 9.19 | Interval: On Or Before | yes | partial | partial | * Translated as SameOrBefore * Additional tests are probably not necessary |
|||
| 19.20 | Appendix B | 9.20 | Interval: Overlaps | yes | partial | partial | * Needs tests for Quantity, Date, and Time | ||
| 19.21 | Interval: OverlapsBefore | yes | partial | partial | * Needs tests for Quantity, Date, and Time | ||||
| 19.22 | Interval: OverlapsAfter | yes | partial | partial | * Needs tests for Quantity, Date, and Time | ||||
| 19.23 | Appendix B | 9.21 | Interval: Point From | no | no | partial | π₯ | 163 | |
| 19.24 | Appendix B | 9.22 | Interval: ProperContains | no | no | partial | π₯ | 292 | |
| 19.25 | Appendix B | 9.23 | Interval: ProperIn | no | no | partial | π₯ | 292 | |
| 19.26 | Appendix B | 9.22 | Interval: ProperIncludes | yes | partial | partial | * Needs tests for Date and Time | ||
| 19.27 | Appendix B | 9.23 | Interval: ProperIncludedIn | yes | partial | partial | * Needs tests for Date and Time | ||
| Appendix B | 9.24 | Interval: Same As | yes | partial | partial | * Needs tests for Decimal, Quantity, Date, and Time | |||
| Appendix B | 9.25 | Interval: Same Or After | yes | partial | partial | * Needs tests for Decimal, Quantity, Date, and Time | |||
| Appendix B | 9.26 | Interval: Same Or Before | yes | partial | partial | * Needs tests for Decimal, Quantity, Date, and Time | |||
| 19.28 | Appendix B | 9.27 | Interval: Size | yes | yes | partial | |||
| 19.29 | Appendix B | 9.28 | Interval: Start | yes | partial | partial | * Needs tests for Date and Time | ||
| 19.30 | Appendix B | 9.29 | Interval: Starts | yes | partial | partial | * Needs tests for Date and Time | ||
| 19.31 | Appendix B | 9.30 | Interval: Union | yes | partial | partial | * Needs tests for Decimal, Quantity, Date, and Time | ||
| 19.32 | Appendix B | 9.31 | Interval: Width | yes | yes | partial | |||
| 20.1 | List: List | yes | yes | no | |||||
| 20.2 | Appendix B | 10.1 | List: Contains | yes | yes | no | |||
| 20.3 | List: Current | n/a | n/a | no | * Currently not used in CQL? | ||||
| 20.4 | Appendix B | 10.2 | List: Distinct | yes | yes | no | |||
| 20.5 | Appendix B | 10.3 | List: Equal | yes | yes | no | |||
| 20.6 | Appendix B | 10.4 | List: Equivalent | yes | partial | no | * Tests in comparison-tests.js * Needs tests for null (they're in CQL but not in the js) |
||
| 20.7 | Appendix B | 10.5 | List: Except | yes | yes | no | |||
| 20.8 | Appendix B | 10.6 | List: Exists | yes | yes | no | |||
| 20.9 | List: Filter | n/a | n/a | no | * Currently not used in CQL? | ||||
| 20.10 | Appendix B | 10.8 | List: First | yes | yes | no | |||
| 20.11 | Appendix B | 10.7 | List: Flatten | yes | yes | no | |||
| 20.12 | List: ForEach | n/a | n/a | no | * Currently not used in CQL? | ||||
| 20.13 | Appendix B | 10.9 | List: In | yes | yes | partial | |||
| 20.14 | Appendix B | 10.10 | List: Includes | yes | yes | partial | |||
| 20.15 | Appendix B | 10.11 | List: Included In | yes | yes | partial | |||
| Appendix B | 10.12 | List: Indexer | yes | yes | no | ||||
| 20.16 | Appendix B | 10.13 | List: IndexOf | yes | yes | no | |||
| 20.17 | Appendix B | 10.14 | List: Intersect | yes | yes | no | |||
| 20.18 | Appendix B | 10.15 | List: Last | yes | yes | no | |||
| Appendix B | 10.16 | List: Length | yes | yes | no | ||||
| 20.19 | Appendix B | 10.17 | List: Not Equal | yes | yes | no | * Translated as Not(Equal(a,b)) - so no extra implementation * Additional tests are probably not necessary |
||
| Appendix B | 10.18 | List: Not Equivalent | yes | no | no | * Translated as Not(Equivalent(a,b)) - so no extra implementation * Additional tests are probably not necessary |
|||
| 20.20 | List: ProperContains | no | no | no | π« | 291 | |||
| 20.21 | List: ProperIn | no | no | no | π« | 291 | |||
| 20.22 | Appendix B | 10.19 | List: ProperIncludes | yes | yes | no | |||
| 20.23 | Appendix B | 10.20 | List: ProperIncludedIn | yes | yes | no | |||
| 20.24 | List: Repeat | n/a | n/a | no | * Currently not used in CQL? | ||||
| 20.25 | Appendix B | 10.21 | List: Singleton From | yes | no | no | |||
| Appendix B | 10.22 | List: Skip | yes | no | no | ||||
| 20.26 | List: Slice | yes | no | no | |||||
| 20.27 | List: Sort | no | no | no | π« | ||||
| Appendix B | 10.23 | List: Tail | yes | no | no | ||||
| Appendix B | 10.24 | List: Take | yes | no | no | ||||
| 20.28 | List: Times | n/a | n/a | no | * Currently not used in CQL? | ||||
| 20.29 | Appendix B | 10.25 | List: Union | yes | yes | no | |||
| 21.1 | Appendix B | 11.1 | Aggregate: AllTrue | yes | yes | no | |||
| 21.2 | Appendix B | 11.2 | Aggregate: AnyTrue | yes | yes | no | |||
| 21.3 | Appendix B | 11.3 | Aggregate: Avg | yes | yes | no | |||
| 21.4 | Appendix B | 11.4 | Aggregate: Count | yes | yes | no | |||
| 21.5 | Appendix B | 11.5 | Aggregate: GeometricMean | yes | yes | no | * Implementation supports Quantity type, but that's not in spec | ||
| 21.6 | Appendix B | 11.12 | Aggregate: Product | yes | yes | partial | |||
| 21.7 | Appendix B | 11.6 | Aggregate: Max | yes | yes | partial | |||
| 21.8 | Appendix B | 11.8 | Aggregate: Median | yes | partial | no | * Needs tests for List with Null items (in test data but not in JS) | ||
| 21.9 | Appendix B | 11.7 | Aggregate: Min | yes | yes | partial | |||
| 21.10 | Appendix B | 11.9 | Aggregate: Mode | yes | yes | partial | |||
| 21.11 | Appendix B | 11.11 | Aggregate: PopulationVariance | yes | partial | no | * Needs tests for List with Null items | ||
| 21.12 | Appendix B | 11.10 | Aggregate: PopulationStdDev | yes | partial | no | * Needs tests for List with Null items | ||
| 21.3 | Appendix B | 11.14 | Aggregate: Sum | yes | yes | partial | |||
| 21.14 | Appendix B | 11.13 | Aggregate: StdDev | yes | partial | no | * Needs tests for List with Null items | ||
| 21.15 | Appendix B | 11.15 | Aggregate: Variance | yes | partial | no | * Needs tests for List with Null items | ||
| 22.1 | Appendix B | 3.1 | Type: As | yes | no | no | * Requires support from PatientSource | ||
| 22.2 | Type: CanConvert | no | no | no | π« | ||||
| 22.3 | Appendix B | 3.6 | Type: CanConvertQuantity | yes | yes | no | |||
| 22.4 | Appendix B | 3.2 | Type: Children | no | no | no | π« | 287 | |
| 22.5 | Appendix B | 3.3. | Type: Convert | yes | partial | partial | * Tests are incomplete | ||
| 22.6 | Appendix B | 3.7 | Type: ConvertQuantity | yes | partial | no | * Needs tests for Null | ||
| 22.7 | Appendix B | 3.8 | Type: ConvertsToBoolean | yes | yes | no | |||
| 22.8 | Appendix B | 3.9 | Type: ConvertsToDate | yes | yes | no | |||
| 22.9 | Appendix B | 3.10 | Type: ConvertsToDateTime | yes | yes | no | |||
| 22.10 | Appendix B | 3.11 | Type: ConvertsToDecimal | yes | yes | no | |||
| 22.11 | Appendix B | 3.12 | Type: ConvertsToLong | no | no | yes | π¨ | 207 | |
| 22.12 | Appendix B | 3.13 | Type: ConvertsToInteger | yes | yes | no | |||
| 22.13 | Appendix B | 3.14 | Type: ConvertsToQuantity | yes | yes | no | |||
| 22.14 | Type: ConvertsToRatio | yes | yes | no | |||||
| 22.15 | Appendix B | 3.15 | Type: ConvertsToString | yes | yes | no | |||
| 22.16 | Appendix B | 3.16 | Type: ConvertsToTime | yes | yes | no | |||
| 22.17 | Appendix B | 3.4 | Type: Descendents | no | no | no | π« | 288 | |
| 22.18 | Appendix B | 3.5 | Type: Is | yes | yes | no | * Requires support from PatientSource | ||
| 22.19 | Appendix B | 3.17 | Type: ToBoolean | yes | partial | partial | * Needs tests for Decimal, Long, Integer | ||
| 22.20 | Type: ToChars | no | no | no | π« | ||||
| 22.21 | Appendix B | 3.18 | Type: ToConcept | yes | partial | no | * Needs tests for List
|
||
| 22.22 | Appendix B | 3.19 | Type: ToDate | yes | yes | no | |||
| 22.23 | Appendix B | 3.20 | Type: ToDateTime | yes | no | no | |||
| 22.24 | Appendix B | 3.21 | Type: ToDecimal | partial | partial | no | π₯ | * Boolean not supported | |
| 22.25 | Appendix B | 3.23 | Type: ToInteger | partial | partial | partial | π§ | * Long not supported | |
| 22.26 | Type: ToList | yes | yes | no | * Implemented in list.js | ||||
| 22.27 | Appendix B | 3.22 | Type: ToLong | no | no | yes | π¨ | 207 | |
| 22.28 | Appendix B | 3.24 | Type: ToQuantity | yes | yes | no | |||
| 22.29 | Type: ToRatio | yes | yes | no | |||||
| 22.30 | Appendix B | 3.25 | Type: ToString | yes | no | partial |
|
||
| 22.31 | Appendix B | 3.26 | Type: ToTime | yes | yes | no | |||
| 23.1 | Clinical: AnyInCodeSystem | no | no | no | π« | * May require access to a terminology server | 289 | ||
| 23.2 | Clinical: AnyInValueSet | yes | yes | no | |||||
| Appendix B | 12.1 | Clinical: Age | yes | yes | no | ||||
| Appendix B | 12.2 | Clinical: AgeAt | yes | partial | no | * Needs tests for units other than years | |||
| 23.3 | Appendix B | 12.3 | Clinical: CalculateAge | yes | no | no | |||
| 23.4 | Appendix B | 12.4 | Clinical: CalculateAgeAt | yes | partial | no | * Needs tests for units other than years | ||
| 23.5 | Appendix B | 12.5 | Clinical: Equal | yes | no | no | |||
| 23.6 | Appendix B | 12.6 | Clinical: Equivalent | yes | no | no | |||
| 23.7 | Appendix B | 12.7 | Clinical: InCodeSystem | no | no | no | π« | * May require access to a terminology server | 289 |
| 23.8 | Appendix B | 12.8 | Clinical: InValueSet | yes | partial | no | * Needs tests for Concept, List, and List | ||
| 23.9 | Clinical: Not Equal | yes | no | no | * Translated as Not(Equal(a,b)) - so no extra implementation * Additional tests are probably not necessary |
||||
| 23.10 | Clinical: SubsumedBy | no | no | no | π« | * May require access to a terminology server | 290 | ||
| 23.11 | Clinical: Subsumes | no | no | no | π« | * May require access to a terminology server | 290 | ||
| 24.1 | Appendix B | 13.1 | Errors and Messages: Message | yes | yes | no | 176 | ||
| Chapter 5 | 5.1 | Uncertainty | yes | yes | no | ||||
| 5.1.1 | Uncertainty: Comparison Operators | yes | yes | no | |||||
| 5.1.2 | Uncertainty: Arithmetic Operators | yes | yes | no | |||||
| 5.1.3 | Uncertainty: Implicit Conversion | yes | yes | no |