Skip to content

Commit

Permalink
release-v3.0.0
Browse files Browse the repository at this point in the history
  • Loading branch information
mdnazmulkarim committed Jul 13, 2023
1 parent 69a7cd8 commit 3a64fee
Show file tree
Hide file tree
Showing 2 changed files with 34 additions and 22 deletions.
54 changes: 33 additions & 21 deletions Src/java/cql-to-elm/OVERVIEW.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,43 +17,43 @@ The `cql`, `model`, `elm`, and `cql-to-elm` packages are required to use the tra
<dependency>
<groupId>info.cqframework</groupId>
<artifactId>cql</artifactId>
<version>2.8.0</version>
<version>3.0.0</version>
</dependency>
<dependency>
<groupId>info.cqframework</groupId>
<artifactId>model</artifactId>
<version>2.8.0</version>
<version>3.0.0</version>
</dependency>
<dependency>
<groupId>info.cqframework</groupId>
<artifactId>elm</artifactId>
<version>2.8.0</version>
<version>3.0.0</version>
</dependency>
<dependency>
<groupId>info.cqframework</groupId>
<artifactId>cql-to-elm</artifactId>
<version>2.8.0</version>
<version>3.0.0</version>
</dependency>

In addition, to use the translator with QDM, FHIR, and QUICK, the model info packages must be included:

<dependency>
<groupId>info.cqframework</groupId>
<artifactId>quick</artifactId>
<version>2.8.0</version>
<version>3.0.0</version>
</dependency>
<dependency>
<groupId>info.cqframework</groupId>
<artifactId>qdm</artifactId>
<version>2.8.0</version>
<version>3.0.0</version>
</dependency>

To use the DataRequirementsProcessor, a component that performs data requirements analysis on ELM, as well as converts those data requirements to FHIR [DataRequirement](https://hl7.org/fhir/metadatatypes.html#DataRequirement) instances and renders the metadata for a CQL Library as a [FHIR ModuleDefinition Library](https://build.fhir.org/ig/HL7/cqf-measures/StructureDefinition-module-definition-library-cqfm.html), the elm-fhir package must be included:

<dependency>
<groupId>info.cqframework</groupId>
<artifactId>elm-fhir</artifact>
<version>2.8.0</version>
<version>3.0.0</version>
</dependency>

Note that this elm-fhir package includes a dependency on the HAPI FHIR Structures libraries (client-side dependencies) in order to provide FHIR object representation support. This is the only package from the translator that includes a specific dependency on FHIR.
Expand All @@ -66,7 +66,8 @@ CQL is defined using an [ANTLR4](http://www.antlr.org/) grammar. ANTLR4 is a sim

The CQL-to-ELM Translator supports all normative language constructs of the latest version of CQL (Release 1 (1.5.2)), the trial-use functionality of the 1.5 specification, as well as a broad range of functionality to support use of the translator in an Integrated Development Environment. Implementations making use of the translator can submit issues and track resolution progress through the Issues tracker in the Github repository.

The current release of the translator is version [2.8.0](https://github.com/cqframework/clinical_quality_language/releases/tag/v2.8.0), which includes support for QDM 5.6, enhanced model info to support more advanced authoring capabilities, including profile-informed authoring, as well as a new DataRequirementsProcessor to support data requirements inference and analysis and the 5.0.0 model info for QICore (also included in the QICore-ModelInfo library published as part of QICore).
The current release of the translator is version [3.0.0](https://github.com/cqframework/clinical_quality_language/releases/tag/v3.0.0), which introduces a breaking change of directly execute ELM rather previously converting ELM to Executable ELM tree.
It also includes support for QDM 5.6, enhanced model info to support more advanced authoring capabilities, including profile-informed authoring, as well as a new DataRequirementsProcessor to support data requirements inference and analysis and the 5.0.0 model info for QICore (also included in the QICore-ModelInfo library published as part of QICore).

## Roadmap

Expand Down Expand Up @@ -109,9 +110,9 @@ The CQL-to-ELM Translator is designed as a component that can be incorporated in
|validate-units||Indicates that the translator should validate UCUM units in quantity literals|
|stdout||Indicates that the translator should write output to the console instead of a file|

## CqlTranslatorOptions
## CqlCompilerOptions

The class CqlTranslatorOptions provides use of cql-options files in directories with the translator. A JSON schema file that documents the class' structure can be found
The class CqlCompilerOptions provides use of cql-options files in directories with the translator. A JSON schema file that documents the class' structure can be found
at clinical_quality_language\Src\java\cql-to-elm\src\test\resources\org\cqframework\cql\cql2elm\json.

An instance of the class with default options can be accessed through defaultOptions(), and returns the following translator options:
Expand All @@ -126,23 +127,34 @@ An instance of the class with default options can be accessed through defaultOpt
Several constructors exist allowing user control of specified options, such as:

```java
CqlTranslatorOptions(CqlTranslator.Options... options)
public CqlCompilerOptions(Options... options) {
this(CqlCompilerException.ErrorSeverity.Info, LibraryBuilder.SignatureLevel.Overloads, options);
}
```

```java
CqlTranslatorOptions(CqlTranslatorException.ErrorSeverity errorLevel,
LibraryBuilder.SignatureLevel signatureLevel,
CqlTranslator.Options... options)
public CqlCompilerOptions(CqlCompilerException.ErrorSeverity errorLevel, Options... options) {
this(errorLevel, LibraryBuilder.SignatureLevel.Overloads, options);
}
```

```java
CqlTranslatorOptions(CqlTranslator.Format format, boolean dateRangeOptimizations,
boolean annotations, boolean locators, boolean resultTypes, boolean verifyOnly,
boolean detailedErrors, CqlTranslatorException.ErrorSeverity errorLevel,
boolean disableListTraversal, boolean disableListDemotion, boolean disableListPromotion,
boolean enableIntervalDemotion, boolean enableIntervalPromotion,
boolean disableMethodInvocation, boolean requireFromKeyword, boolean validateUnits,
LibraryBuilder.SignatureLevel signatureLevel, String compatibilityLevel)
public CqlCompilerOptions(CqlCompilerException.ErrorSeverity errorLevel, LibraryBuilder.SignatureLevel signatureLevel, Options... options) {
this.setOptions(options);
this.errorLevel = errorLevel;
this.signatureLevel = signatureLevel;
}
```

```java
CqlCompilerOptions(boolean dateRangeOptimizations,
boolean annotations, boolean locators, boolean resultTypes, boolean verifyOnly,
boolean detailedErrors, CqlCompilerException.ErrorSeverity errorLevel,
boolean disableListTraversal, boolean disableListDemotion, boolean disableListPromotion,
boolean enableIntervalDemotion, boolean enableIntervalPromotion,
boolean disableMethodInvocation, boolean requireFromKeyword, boolean validateUnits,
boolean disableDefaultModelInfoLoad,
LibraryBuilder.SignatureLevel signatureLevel, String compatibilityLevel)
```

`toString()` has been overridden to provide an easy-to-read breakdown of existing options within an instance of this class.
2 changes: 1 addition & 1 deletion Src/java/gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ org.gradle.caching=true
org.gradle.parallel=true

group=info.cqframework
version=3.0.0-SNAPSHOT
version=3.0.0
specification.version=1.5.2
hapi.version=6.4.4
antlr.version=4.10.1
Expand Down

0 comments on commit 3a64fee

Please sign in to comment.