From e671f9246a5c3c6ab6e02e9f9769ed142bb0701c Mon Sep 17 00:00:00 2001 From: Abdulllah Rafiqi Date: Mon, 15 Jun 2020 08:36:05 -0400 Subject: [PATCH 01/19] FHIR-27517 - Changed the wording to suggested --- spec/02-authorsguide.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spec/02-authorsguide.adoc b/spec/02-authorsguide.adoc index 0c59ee6..8058fce 100644 --- a/spec/02-authorsguide.adoc +++ b/spec/02-authorsguide.adoc @@ -553,7 +553,7 @@ Note that the properties that can be specified within the [.kw]#sort# clause are If no ascending or descending specifier is provided, the order is ascending. -If no [.kw]#sort# clause is provided, the order of the result is undefined and may vary by implementation. +If no [.kw]#sort# clause is provided, the order of the result is unprescribed and is implementation specific. The [.kw]#sort# clause may include multiple attributes, each with their own sort order: From 84771fc0f2da7091e29d7440ef6cde30b0451421 Mon Sep 17 00:00:00 2001 From: Abdulllah Rafiqi Date: Mon, 15 Jun 2020 08:41:22 -0400 Subject: [PATCH 02/19] FHIR-27516 - Changed wording as suggested --- spec/02-authorsguide.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spec/02-authorsguide.adoc b/spec/02-authorsguide.adoc index 8058fce..579d5bc 100644 --- a/spec/02-authorsguide.adoc +++ b/spec/02-authorsguide.adoc @@ -512,7 +512,7 @@ For example: This example returns a list of tuples (structured values), one for each inpatient encounter performed, where each tuple consists of the [.id]#id# of the encounter as well as a [.id]#lengthOfStay# element, whose value is calculated by taking the duration of the period for the encounter. Tuples are discussed in detail in later sections. For more information on Tuples, see <>. -By default, queries return a distinct list of results. In other words, any duplicate values are suppressed from the results. To include duplicates, use the [.kw]#all# keyword in the [.kw]#return# clause. For example, the following will return a list of the lengths of stay for each Encounter: +By default, a query returns list of distinct results, supressing duplicates. To include duplicates, use the [.kw]#all# keyword in the [.kw]#return# clause. For example, the following will return a list of the lengths of stay for each Encounter: [source,cql] ---- From 3a53bd141741210dfe2f3e68d31d3fd1e40ab9c3 Mon Sep 17 00:00:00 2001 From: Abdulllah Rafiqi Date: Mon, 15 Jun 2020 08:48:13 -0400 Subject: [PATCH 03/19] FHIR-27515 - Changed wording as suggested --- spec/02-authorsguide.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spec/02-authorsguide.adoc b/spec/02-authorsguide.adoc index 579d5bc..f0d6eb3 100644 --- a/spec/02-authorsguide.adoc +++ b/spec/02-authorsguide.adoc @@ -495,7 +495,7 @@ The condition of a [.kw]#where# clause is allowed to contain any arbitrary combi and C.indication in "Fever" ---- -Note that because CQL uses three-valued logic, the result of evaluating any given boolean-valued condition may be _unknown_ ([.kw]#null#). For example, if the list of inpatient encounters from the first example contains some elements whose [.id]#period# attribute is [.kw]#null#, the result of the condition for that element will not be [.kw]#false#, but [.kw]#null#, indicating that it is not known whether or not the duration of the encounter was at least 120 days. For the purposes of evaluating a filter, only elements where the condition evaluates to [.kw]#true# are included in the result, effectively treating the unknown results as [.kw]#false#. For more discussion on three-valued logic, see the section on <> in the Author's Guide, as well as the section on <<03-developersguide.adoc#nullological-operators,Nullological Operators>> in the Developer's guide. +Note that because CQL uses three-valued logic, the result of evaluating any given boolean-valued condition may be _unknown_ ([.kw]#null#). For example, if the list of inpatient encounters from the first example contains some elements whose [.id]#period# attribute is [.kw]#null#, the result of the condition for that element will not be [.kw]#false#, but [.kw]#null#, indicating that it is not known whether or not the duration of the encounter was at least 120 days. For the purposes of evaluating a filter, only elements where the condition evaluates to [.kw]#true# are included in the result, effectively ignoring the entries for which the logical expression evaluates to [.kw]#null#. For more discussion on three-valued logic, see the section on <> in the Author's Guide, as well as the section on <<03-developersguide.adoc#nullological-operators,Nullological Operators>> in the Developer's guide. [[shaping]] === Shaping From cbd65856c1d574e452c7dbb54c58425334df0049 Mon Sep 17 00:00:00 2001 From: Abdulllah Rafiqi Date: Mon, 15 Jun 2020 08:56:48 -0400 Subject: [PATCH 04/19] FHIR-27511 - Changed wording to suggested --- spec/02-authorsguide.adoc | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/spec/02-authorsguide.adoc b/spec/02-authorsguide.adoc index f0d6eb3..d56d394 100644 --- a/spec/02-authorsguide.adoc +++ b/spec/02-authorsguide.adoc @@ -393,7 +393,12 @@ As another example, consider the set of encounters: [Encounter: "Inpatient"] ---- -As the following diagram illustrates, in the [.id]#Unfiltered# context, this retrieve will return all the encounters in the underlying system, whereas in the [.id]#Patient# context, this retrieve will return only encounters for the _current_ patient, where _current_ is determined by the evaluation: +Depending on the context the retrieve above will return: + +* [.id]#Unfiltered# - all the encounters in the underlying system. +* [.id]#Patient# - only encounters for the current patient (e.g. PAT-100) + +Consider the figure below: image:extracted-media/media/context-diagram.png[image] From 2abd0bf0c32cb0371eacb5fb7bc9a083592216f2 Mon Sep 17 00:00:00 2001 From: Abdulllah Rafiqi Date: Mon, 15 Jun 2020 09:19:02 -0400 Subject: [PATCH 05/19] FHIR-27497 - Changed wording to suggested --- spec/01-introduction.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spec/01-introduction.adoc b/spec/01-introduction.adoc index 9965838..d68be94 100644 --- a/spec/01-introduction.adoc +++ b/spec/01-introduction.adoc @@ -85,7 +85,7 @@ The author perspective is informed conceptually by the Quality Data Model (QDM), The logical perspective of the specification is concerned with complete and accurate representation of the semantics involved in the expression of quality logic, independent of the syntax in which that logic is rendered. -For the logical layer, this specification defines a Unified Modeling Language (UML) model called the Expression Logical Model (ELM) that defines a canonical representation of expression logic. This approach is intended to simplify implementation and machine processing by focusing on the content of an expression, rather than the syntax used to render it. The approach is based on and motivated by the concept of an Abstract Syntax Tree from traditional compiler implementation. The following diagram depicts the steps performed by a traditional compiler: +This perspective defines a Unified Modeling Language (UML) model called the Expression Logical Model (ELM) that defines a canonical representation of expression logic. This approach is intended to simplify implementation and machine processing by focusing on the content of an expression, rather than the syntax used to render it. The approach is based on and motivated by the concept of an Abstract Syntax Tree from traditional compiler implementation. The following diagram depicts the steps performed by a traditional compiler: [[figure-1-b]] image:extracted-media/media/image3.png[image,width=626,height=430] From 1379aaf39418c0947eb56da869e0d88ca03ffd4a Mon Sep 17 00:00:00 2001 From: Abdulllah Rafiqi Date: Mon, 15 Jun 2020 09:25:30 -0400 Subject: [PATCH 06/19] FHIR-27488 - Changed wording to suggested --- spec/02-authorsguide.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spec/02-authorsguide.adoc b/spec/02-authorsguide.adoc index d56d394..a46440c 100644 --- a/spec/02-authorsguide.adoc +++ b/spec/02-authorsguide.adoc @@ -28,7 +28,7 @@ And as a final introductory note, CQL is designed to support two levels of usage [[declarations]] == Declarations -All the constructs that can be expressed within CQL are packaged in a container called a _library_. Libraries provide a convenient unit for the definition, versioning, and distribution of logic. For simplicity, libraries in CQL correspond directly with a single file. +Constructs expressed within CQL are packaged in containers called _libraries_. Libraries provide a convenient unit for the definition, versioning, and distribution of logic. For simplicity, libraries in CQL correspond directly with a single file. Libraries in CQL provide the overall packaging for CQL definitions. Each library allows a set of declarations to provide information about the library as well as to define constructs that will be available within the library. From 317d731a7f676d6a0039ab2b3a05b304422b1bc1 Mon Sep 17 00:00:00 2001 From: Abdulllah Rafiqi Date: Mon, 15 Jun 2020 09:30:09 -0400 Subject: [PATCH 07/19] FHIR-27484 - Changed wording to suggested --- spec/01-introduction.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spec/01-introduction.adoc b/spec/01-introduction.adoc index d68be94..898ceef 100644 --- a/spec/01-introduction.adoc +++ b/spec/01-introduction.adoc @@ -21,7 +21,7 @@ In addition, this specification introduces a high-level, domain-specific languag Clinical Decision Support and Clinical Quality Measurement are closely related, share many common requirements, and both support improving healthcare quality. However, the standards used for the electronic representation of CDS and CQM artifacts have not been developed in consideration of each other, and the domains use different approaches to the representation of patient data and computable expression logic. The first step in enabling a harmonization of these approaches is clearly identifying the various components involved in the specification of quality artifacts, and then establishing as a principle the notion that they should be treated independently. Broadly, the components of an artifact involve specifying: * Metadata – Information about the artifact such as its identifier and version, what health topics it covers, supporting evidence, related artifacts, etc. -* Clinical Quality Information – The structure and content of the clinical data involved in the artifact +* Clinical Information – The structure and content of the clinical data involved in the artifact * Expression Logic – The actual knowledge and reasoning being communicated by the artifact Considering each of these components separately, the next step involves identifying the relationship of the current specifications to each component, as shown in the following table: From 879af890d78cd02833cf70cc2daa648025994fe4 Mon Sep 17 00:00:00 2001 From: Abdulllah Rafiqi Date: Mon, 15 Jun 2020 09:39:51 -0400 Subject: [PATCH 08/19] FHIR-27518 - Changed wording to suggested --- spec/02-authorsguide.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spec/02-authorsguide.adoc b/spec/02-authorsguide.adoc index a46440c..3a07477 100644 --- a/spec/02-authorsguide.adoc +++ b/spec/02-authorsguide.adoc @@ -573,7 +573,7 @@ When the sort elements do not provide a unique ordering (i.e. there is a possibi A query may only contain a single [.kw]#sort# clause, and it must always appear last in the query. -When the data being sorted includes [.kw]#nulls#, they are sorted first, meaning they will appear at the beginning of the list when the data is sorted ascending, and at the end of the list when the data is sorted descending. +When the data being sorted includes [.kw]#nulls#, they are considered lower than any non-null value, meaning they will appear at the beginning of the list when the data is sorted ascending, and at the end of the list when the data is sorted descending. [[relationships]] === Relationships From 9313123005201c897577814af5fdc5177d65e74e Mon Sep 17 00:00:00 2001 From: Abdulllah Rafiqi Date: Tue, 16 Jun 2020 11:02:20 -0400 Subject: [PATCH 09/19] FHIR-27481 - Added references to Table 1-A --- spec/01-introduction.adoc | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/spec/01-introduction.adoc b/spec/01-introduction.adoc index 898ceef..318ada2 100644 --- a/spec/01-introduction.adoc +++ b/spec/01-introduction.adoc @@ -30,9 +30,9 @@ Considering each of these components separately, the next step involves identify [cols=",,,,",options="header"] |======================================================================================================================================================================================== | | Model Type | Quality Information | Computable Expression Logic | Metadata -| *Clinical Decision Support (CDS)* |Physical and logical |Virtual Medical Record (vMR) |CDS Knowledge Artifact Specification |CDS Knowledge Artifact Specification/Decision Support Service -1.2+| *Electronic Clinical Quality Measurement (eCQM)* |Physical |Quality Reporting Document Architecture (QRDA) |Health Quality Measure Format (HQMF) |Health Quality Measure Format (HQMF) -1.1+|Logical |Quality Data Model (QDM) |Quality Data Model (QDM)| +| *Clinical Decision Support (CDS)* |<> |https://www.hl7.org/implement/standards/product_brief.cfm?product_id=338[Virtual Medical Record (vMR)] |http://www.hl7.org/implement/standards/product_brief.cfm?product_id=337[CDS Knowledge Artifact Specification] |http://www.hl7.org/implement/standards/product_brief.cfm?product_id=337[CDS Knowledge Artifact Specification] / http://www.hl7.org/implement/standards/product_brief.cfm?product_id=12[Decision Support Service] +1.2+| *Electronic Clinical Quality Measurement (eCQM)* |<> |http://www.hl7.org/implement/standards/product_brief.cfm?product_id=35[Quality Reporting Document Architecture (QRDA)] |<> |<> +1.1+|<> |http://www.hl7.org/implement/standards/product_brief.cfm?product_id=346[Quality Data Model (QDM)] |http://www.hl7.org/implement/standards/product_brief.cfm?product_id=346[Quality Data Model (QDM)]| |======================================================================================================================================================================================== Table 1‑A - Relationship of the current specifications to each component From 5992a75afddf6f9deeabf66ecc1cd3d80030ffa9 Mon Sep 17 00:00:00 2001 From: Abdulllah Rafiqi Date: Tue, 16 Jun 2020 11:13:02 -0400 Subject: [PATCH 10/19] FHIR-27478 - Corrected chapter references --- spec/01-introduction.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spec/01-introduction.adoc b/spec/01-introduction.adoc index 318ada2..45825c8 100644 --- a/spec/01-introduction.adoc +++ b/spec/01-introduction.adoc @@ -126,7 +126,7 @@ Table 1‑B - Major roles that this specification was written for Note that although Chapter 2 is intended for a non-technical audience, the material is still somewhat technical in nature, and that readers will benefit from some familiarity with and/or training in basic computer language and database language topics. -In general, each of these roles will benefit from focusing on different aspects of the specification. In particular, the Author role will be primarily interested in Chapter 2, the Language Guide for the high-level CQL syntax; the Developer role will be primarily interested in Chapters 2 & 3; the Integrator role will be primarily interested in Chapter 4, the formal description of the logical model; and the Implementer role will be primarily interested in Chapters 5, 6, and 7, which discuss the intended execution semantics, translation semantics, and physical representation, respectively, as well as Chapter 9 - Appendix B, and ELM UML model artifacts. +In general, each of these roles will benefit from focusing on different aspects of the specification. In particular, the Author role will be primarily interested in Chapter 2, the Language Guide for the high-level CQL syntax; the Developer role will be primarily interested in Chapters 2 & 3; the Integrator role will be primarily interested in Chapter 4, the formal description of the logical model; and the Implementer role will be primarily interested in Chapters 5, 6, and 7, which discuss the intended execution semantics, translation semantics, and physical representation, respectively, along with additional reference materials in Appendix A-K. [[scope-of-the-specification]] == Scope of the Specification From 8771e7c97bb27fbbb06ee79af1d92f0cc20781ee Mon Sep 17 00:00:00 2001 From: Abdulllah Rafiqi Date: Tue, 16 Jun 2020 11:30:58 -0400 Subject: [PATCH 11/19] FHIR-27477 - Corrected references --- spec/01-introduction.adoc | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/spec/01-introduction.adoc b/spec/01-introduction.adoc index 45825c8..7aeaa89 100644 --- a/spec/01-introduction.adoc +++ b/spec/01-introduction.adoc @@ -61,7 +61,7 @@ The Clinical Quality Framework (CQF) was initially a collaborative community of [[approach]] == Approach -As discussed in Section 1.1, one key principle underlying the current harmonization efforts is the separation of responsibilities within an artifact into _metadata_, _clinical information_, and _expression logic_. Focusing on the expression logic component and identifying the requirements common to both quality measurement and decision support, the Clinical Decision Support HL7 Work Group produced a harmonized conceptual requirements document: _HL7 Domain Analysis Model: Harmonization of Health Quality Artifact Reasoning and Expression Logic._ These requirements form the basis for the reasoning capabilities that this specification provides. +As discussed in <>, one key principle underlying the current harmonization efforts is the separation of responsibilities within an artifact into _metadata_, _clinical information_, and _expression logic_. Focusing on the expression logic component and identifying the requirements common to both quality measurement and decision support, the Clinical Decision Support HL7 Work Group produced a harmonized conceptual requirements document: _HL7 Domain Analysis Model: Harmonization of Health Quality Artifact Reasoning and Expression Logic._ These requirements form the basis for the reasoning capabilities that this specification provides. Building on those conceptual requirements, this specification defines the logical and physical layers necessary to achieve the goal of a unified specification for expression logic for use by both the clinical quality and decision support domains. @@ -124,9 +124,9 @@ The specification is written with the following major roles in mind: Table 1‑B - Major roles that this specification was written for -Note that although Chapter 2 is intended for a non-technical audience, the material is still somewhat technical in nature, and that readers will benefit from some familiarity with and/or training in basic computer language and database language topics. +Note that although the <<2. Author’s Guide, Author's Guide (Chapter 2)>> is intended for a non-technical audience, the material is still somewhat technical in nature, and that readers will benefit from some familiarity with and/or training in basic computer language and database language topics. -In general, each of these roles will benefit from focusing on different aspects of the specification. In particular, the Author role will be primarily interested in Chapter 2, the Language Guide for the high-level CQL syntax; the Developer role will be primarily interested in Chapters 2 & 3; the Integrator role will be primarily interested in Chapter 4, the formal description of the logical model; and the Implementer role will be primarily interested in Chapters 5, 6, and 7, which discuss the intended execution semantics, translation semantics, and physical representation, respectively, along with additional reference materials in Appendix A-K. +In general, each of these roles will benefit from focusing on different aspects of the specification. In particular, the Author role will be primarily interested in <<2. Author’s Guide, Chapter 2>>, the Language Guide for the high-level CQL syntax; the Developer role will be primarily interested in Chapter <<2. Author’s Guide, 2>> & <<3. Developer’s Guide, 3>>; the Integrator role will be primarily interested in <<4. Logical Specification, Chapter 4>>, the formal description of the logical model; and the Implementer role will be primarily interested in Chapters <<5. Language Semantics, 5>>, <<6. Translation Semantics, 6>>, and <<7. Physical Representation, 7>>, which discuss the intended execution semantics, translation semantics, and physical representation, respectively, along with additional reference materials in Appendix A-K. [[scope-of-the-specification]] == Scope of the Specification @@ -156,7 +156,7 @@ Figure 1‑C - How the CQL and ELM specifications will be used in the sharing us [[use-case-assumptions-and-conditions]] === Use Case Assumptions and Conditions -It is important for implementers to clearly understand the underlying environmental assumptions, defined in Section 5 of the CQF Use Case document referenced in the previous section, to ensure that these assumptions align to the implementation environment in which content will be exchanged using a knowledge artifact. Failure to meet any of these assumptions could impact implementation of the knowledge artifact. +It is important for implementers to clearly understand the underlying environmental assumptions, defined in https://oncprojectracking.healthit.gov/wiki/display/TechLabSC/CQF+Use+Cases+-+Discovery[Section 5 of the CQF Use Case document] referenced in the previous section, to ensure that these assumptions align to the implementation environment in which content will be exchanged using a knowledge artifact. Failure to meet any of these assumptions could impact implementation of the knowledge artifact. [[relationship-to-other-hl7-specifications]] == Relationship to Other HL7 Specifications From 10d5c6630711bc66274c74286467e63099a33d15 Mon Sep 17 00:00:00 2001 From: Abdulllah Rafiqi Date: Tue, 16 Jun 2020 11:35:11 -0400 Subject: [PATCH 12/19] FHIR-27475 - Fixed Hyperlinks --- spec/index.adoc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/spec/index.adoc b/spec/index.adoc index c6bfa96..116d09a 100644 --- a/spec/index.adoc +++ b/spec/index.adoc @@ -24,7 +24,7 @@ link:license.html[License] http://cql.hl7.org/history.html[Version History] -link:00-executivesummary.html[0. Executive Summary] +link:00-executivesummary.html[Executive Summary] [[organization-of-this-specification]] == Organization of this Specification @@ -45,7 +45,7 @@ link:06-translationsemantics.html[Chapter 6] – Translation Semantics describes link:07-physicalrepresentation.html[Chapter 7] – Physical Representation is reference documentation for the XML schema used to persist ELM. -link:08-a-cqlsyntax.html[Appendix A – CQL Syntax Formal Specification] discusses the ANTLR4 grammar for the Clinical Quality Language. +link:08-a-cqlsyntax.html[Appendix A] – CQL Syntax Formal Specification discusses the ANTLR4 grammar for the Clinical Quality Language. link:09-b-cqlreference.html[Appendix B] – CQL Reference provides a complete reference for the types and operators available in CQL, and is intended to be used by authors and developers alike. From b1d8506a30384e51bcc7985c324c5fb163c690b4 Mon Sep 17 00:00:00 2001 From: Abdulllah Rafiqi Date: Tue, 16 Jun 2020 12:00:01 -0400 Subject: [PATCH 13/19] FHIR-27081 - Updated test reference spec to 1.5 --- spec/tests.md | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/spec/tests.md b/spec/tests.md index c27e9fc..1f11de8 100644 --- a/spec/tests.md +++ b/spec/tests.md @@ -14,7 +14,7 @@ This is the same test format used by the FHIRPath specification. Test Source. -Note that these tests have not been fully updated to the 1.4 specification. +Note that these tests have not been fully updated to the 1.5 specification. At this point, the tests cover the following sections of the specification: @@ -35,5 +35,3 @@ At this point, the tests cover the following sections of the specification: The tests defined here are informative, not normative aspects of the specification. If there is a discrepancy between the behavior of a test and the specification, the specification should be considered the source of truth. {:.note-info} - - From 2dc709064cae4f310b8f550f52b12f04b5c863e2 Mon Sep 17 00:00:00 2001 From: Abdulllah Rafiqi Date: Tue, 16 Jun 2020 12:07:47 -0400 Subject: [PATCH 14/19] FHIR-27080 - Changed v1.5 change log title to "Normative/Trial-Use Ballot Changes" --- spec/v1.5-changelog.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spec/v1.5-changelog.adoc b/spec/v1.5-changelog.adoc index 2017343..fa6f995 100644 --- a/spec/v1.5-changelog.adoc +++ b/spec/v1.5-changelog.adoc @@ -3,7 +3,7 @@ :backend: xhtml :toc: -== Normative Ballot Changes +== Normative/Trial-Use Ballot Changes === Compatible, Substantive From d8c695e9a4585322d3a1a921a05f1e58826e5c54 Mon Sep 17 00:00:00 2001 From: Abdulllah Rafiqi Date: Tue, 23 Jun 2020 10:24:32 -0400 Subject: [PATCH 15/19] FHIR-27076 - Updated order of declarations in Grammar --- spec/cql/cql.g4 | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/spec/cql/cql.g4 b/spec/cql/cql.g4 index 3890da1..5e12be6 100644 --- a/spec/cql/cql.g4 +++ b/spec/cql/cql.g4 @@ -10,10 +10,9 @@ import fhirpath; /* * Parser Rules */ - -library + +definition : - libraryDefinition? usingDefinition* includeDefinition* codesystemDefinition* @@ -21,6 +20,11 @@ library codeDefinition* conceptDefinition* parameterDefinition* + ; + +library + : + libraryDefinition? statement* EOF ; From cc078b9da48452ee97ff497691a0e92107e5bf85 Mon Sep 17 00:00:00 2001 From: Abdulllah Rafiqi Date: Tue, 23 Jun 2020 11:19:04 -0400 Subject: [PATCH 16/19] FHIR-27439 - Updated the spec reference implementation page with the latest links --- spec/10-c-referenceimplementations.adoc | 63 +++++++++++++++++++++++++ 1 file changed, 63 insertions(+) diff --git a/spec/10-c-referenceimplementations.adoc b/spec/10-c-referenceimplementations.adoc index 5a69ea5..d03617a 100644 --- a/spec/10-c-referenceimplementations.adoc +++ b/spec/10-c-referenceimplementations.adoc @@ -38,4 +38,67 @@ Other CQL-related tools such as a graphical CQL grammar parsetree viewer, a Mode https://github.com/cqframework/clinical_quality_language/wiki/Community-Projects +[[cql-to-elm-translator-and-formatter]] +=== CQL-to-ELM Translator and Formatter +* https://github.com/cqframework/clinical_quality_language: CQL-to-ELM Translator + +[[javascript-execution-engine]] +=== JavaScript Execution Engine + +* https://github.com/cqframework/cql-execution: Java-Script Execution Engine +* https://github.com/cqframework/cql-exec-fhir: A FHIR data source provider for the CQL Execution framework +* https://github.com/cqframework/cql-exec-vsac: A VSAC-enabled value set provider for the CQL Execution framework +* https://github.com/cqframework/cql-exec-examples: Simple examples demonstrating how to use cql-execution, cql-exec-fhir, and cql-exec-vasc + +[[cql-translation-service]] +=== CQL Translation Service + +* https://github.com/cqframework/cql-translation-service: RESTful service for translating CQL to ELM + +[[java-execution-engine]] +=== Java Execution Engine + +* https://github.com/dbcg/cql_engine + +[[cql-execution-service]] +=== CQL Execution Service + +* https://github.com/dbcg/cql_execution_service +* https://github.com/AHRQ-CDS/AHRQ-CDS-Connect-CQL-SERVICES: Expose CQL via Custom-API or CDS Hooks interface (built on JavaScript CQL Execution Engine) + +[[atom-plugin]] +=== Atom Plugin + +* https://github.com/cqframework/atom-cql-support + +[[cds-connect]] +=== CDS Connect + +* https://cds.ahrq.gov/: Repository of CDS including CQL-based artifacts +* https://cds.ahrq.gov/authoring/: CDS Authoring Tool capable of exporting FHIR-based CQL logic +* https://github.com/AHRQ-CDS/AHRQ-CDS-Connect-Authoring-Tool: CDS Authoring Tool Source Code + +[[cql-testing]] +=== CQL Testing + +* https://github.com/AHRQ-CDS/CQL-Testing-Framework + +[[cql-server-side-functionality]] +=== CQL Server-side Functionality + +* https://github.com/samply/blaze: A FHIR® server with internal, fast CQL Evaluation Engine +* https://github.com/dbcg/cqf-ruler: HAPI FHIR server plugin to enable CQL evaluation and Clinical Reasoning functionality +* https://github.com/PheMA/cql-on-omop: Translates CQL (ELM) to OMOP for evaluation against an OHDSI repository + +[[cql-tooling]] +=== CQL Tooling + +* https://github.com/cqframework/cqf-tooling: Tooling to support CQL library tooling and other handy utilities related to CQL-based FHIR content + +[[formatting-and-usage]] +== Formatting and Usage + +Because of the flexibility and broad applicability of CQL, it necessarily covers a breadth of topics. The Clinical Quality Framework Initiative provides recommendations and guidance to ensure consistent and appropriate use of CQL in the following wiki: + +* https://github.com/cqframework/CQL-Formatting-and-Usage-Wiki/wiki/Formatting-and-Usage-Topics From e2b8ff6b9e74b90d49204c8e47ebb95421ff27af Mon Sep 17 00:00:00 2001 From: Abdulllah Rafiqi Date: Tue, 23 Jun 2020 11:29:23 -0400 Subject: [PATCH 17/19] FHIR-27447 - Added links for Arithmetic operators --- spec/02-authorsguide.adoc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/spec/02-authorsguide.adoc b/spec/02-authorsguide.adoc index 3a07477..a4964ba 100644 --- a/spec/02-authorsguide.adoc +++ b/spec/02-authorsguide.adoc @@ -761,14 +761,14 @@ The [.id]#Boolean# type in CQL supports the logical values [.kw]#true#, [.kw]#fa [[integer]] ==== Integer -The [.id]#Integer# type in CQL supports the representation of whole numbers, positive and negative. CQL supports a full set of Arithmetic Operators for performing computations involving whole numbers. +The [.id]#Integer# type in CQL supports the representation of whole numbers, positive and negative. CQL supports a full set of <> for performing computations involving whole numbers. In addition, any operation involving [.id]#Decimal# values can be used with values of type [.id]#Integer# because [.id]#Integer# values can always be implicitly converted to [.id]#Decimal# values. [[decimal]] ==== Decimal -The [.id]#Decimal# type in CQL supports the representation of real numbers, positive and negative. As with [.id]#Integer# values, CQL supports a full set of Arithmetic Operators for performing computations involving real numbers. +The [.id]#Decimal# type in CQL supports the representation of real numbers, positive and negative. As with [.id]#Integer# values, CQL supports a full set of <> for performing computations involving real numbers. [[string]] ==== String From 191640b44b93e43224ce07ddfdefab947e65bae4 Mon Sep 17 00:00:00 2001 From: Abdulllah Rafiqi Date: Tue, 23 Jun 2020 11:45:50 -0400 Subject: [PATCH 18/19] FHIR-27492 - Example (Data Model) with version added --- spec/02-authorsguide.adoc | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/spec/02-authorsguide.adoc b/spec/02-authorsguide.adoc index a4964ba..828d945 100644 --- a/spec/02-authorsguide.adoc +++ b/spec/02-authorsguide.adoc @@ -85,7 +85,12 @@ using QUICK The above declaration specifies that the [.id]#QUICK# model will be used as the data model within the library. -If necessary, a version specifier can be provided to indicate which version of the data model should be used. +If necessary, a version specifier can be provided to indicate which version of the data model should be used as shown below: + +[source,cql] +---- +using QUICK version '0.3.0' +---- [[libraries]] === Libraries From 9f102280f4e077fff85815c600f911445cfe5593 Mon Sep 17 00:00:00 2001 From: Abdulllah Rafiqi Date: Mon, 29 Jun 2020 10:26:46 -0400 Subject: [PATCH 19/19] FHIR-27519 - Added a hyperlink to the QUICK data model diagram --- spec/02-authorsguide.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spec/02-authorsguide.adoc b/spec/02-authorsguide.adoc index 828d945..5f98488 100644 --- a/spec/02-authorsguide.adoc +++ b/spec/02-authorsguide.adoc @@ -83,7 +83,7 @@ The following example illustrates the using declaration: using QUICK ---- -The above declaration specifies that the [.id]#QUICK# model will be used as the data model within the library. +The above declaration specifies that the [.id]#QUICK# model will be used as the data model within the library. The http://hl7.org/fhir/us/qicore/quick/QUICK-index.html[QUICK data model] will be used for the examples in this section unless specified otherwise. If necessary, a version specifier can be provided to indicate which version of the data model should be used as shown below: