diff --git a/.gitignore b/.gitignore index ad8060a21..fbee0daec 100644 --- a/.gitignore +++ b/.gitignore @@ -393,3 +393,4 @@ VSCodeExtension/ncqa-cql-engine-workspace/test/*/*/results/*.json /Demo/Test/Resources /Demo/Elm/build.txt /Demo/Cql/Build/target/**/*.* +/Demo/build.txt diff --git a/Cql/PackagerCLI/Program.cs b/Cql/PackagerCLI/Program.cs index 0e10e0e5e..6a6098a7e 100644 --- a/Cql/PackagerCLI/Program.cs +++ b/Cql/PackagerCLI/Program.cs @@ -208,9 +208,9 @@ private static int ShowHelp() Console.WriteLine(); Console.WriteLine($"\t--elm \tLibrary root path"); Console.WriteLine($"\t--cql \tCQL root path"); - Console.WriteLine($"\t--fhir \tResource location, either file name or directory"); + Console.WriteLine($"\t[--fhir] \tResource location, either file name or directory"); Console.WriteLine($"\t[--cs] \tC# output location, either file name or directory"); - Console.WriteLine($"\t[--d] true|false\t\tProduce as a debug assmebly"); + Console.WriteLine($"\t[--d] true|false\t\tProduce as a debug assembly"); Console.WriteLine($"\t[--f] true|false\tIf output file already exists, overwrite"); Console.WriteLine(); return -1; diff --git a/README.md b/README.md index c9833bc6c..7d2e712a4 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@ This is NCQA's and Firely's official support SDK for working with [CQL][cql-spec] on the Microsoft .NET (dotnet) platform. It contains an engine for executing ELM, and/or turning the contents of an ELM file into a .NET assembly so it can be called statically. ## Release notes ## -We are preparing to release version 1.0 of the engine. The engine has been tested by running it against the current NCQA HEDIS measures. There is quite some variation in how CQL is written and interpreted, so it is likely at this early stage that there will be deviations from other engines currently available. As well, we expect parts of the public interface can to change. +This is release version 1.0 (release candidate) of the engine. The engine has been tested by running it against the current NCQA HEDIS measures. There is quite some variation in how CQL is written and interpreted, so it is likely at this early stage that there will be deviations from other engines currently available. As well, we expect parts of the public interface can to change. The releases notes at [firely-cql-sdk/releases](https://github.com/FirelyTeam/firely-cql-sdk/releases) for each major version will document these changes and (major) issues we have encountered. @@ -13,7 +13,13 @@ at [firely-cql-sdk/releases](https://github.com/FirelyTeam/firely-cql-sdk/releas ## Getting Started ## * Read how to [get started with the Demo solution](docs/getting-started.md) included in the repository. -* There is a great presentation on the engine from DevDays 2023 (TODO: need approval to publish link) +* There is a great presentation on the engine from [DevDays 2023](https://youtu.be/CkTbgfbttJc). +* [The CQL section](https://docs.fire.ly/projects/Firely-NET-SDK/cql.html) in the .NET SDK documentation +* A [word document](cql/CQL%20Engine%20Architecture.docx) with background documentation on the design. May be somewhat outdated. +* A [graphic](docs/CQL%20Engine%20v2.png) showing the main (internal) parts of the engine. May be somewhat outdated. + + +The presentation is a good place to start, but note that we have made some minor changes to the public surface, so the names of the classes in the presentation will differ from the examples in the Demo project itself. ## Dev Start During development, new alpha releases will appear on Firely's Github Package feed, to be able to use pre-release packages within the cql solution. To use theses packages you must add ```https://nuget.pkg.github.com/FirelyTeam/index.json``` to your NuGet sources: diff --git a/cql-sdk.props b/cql-sdk.props index a30dec15f..de70fb86a 100644 --- a/cql-sdk.props +++ b/cql-sdk.props @@ -6,10 +6,10 @@ - 0.9.0 - rc2 + 1.0.0 + rc1 NCQA, Firely (info@fire.ly) and contributors - Copyright 2013-2023 NCQA, Firely. Contains materials (C) HL7 International + Copyright 2013-2023 NCQA, Firely. Contains materials (C) HL7 International https://github.com/FirelyTeam/cql-sdk https://github.com/FirelyTeam/cql-sdk git diff --git a/docs/getting-started.md b/docs/getting-started.md index 590547757..2409495cc 100644 --- a/docs/getting-started.md +++ b/docs/getting-started.md @@ -44,12 +44,12 @@ With the measures generated, we can now build the other projects: two sample pro ## Evaluating measures The demo project showcases four ways to use the CQL SDK to execute measures in `MeasuresTest.cs`. No matter how the CQL expressions in each CQL file are invoked, you need to create an instance of a `CqlContext` first, which holds the basic external inputs to the function call: -* The data to run the function on, either as a `Bundle` FHIR resource, or an implementation of `IDataRetriever`. (default: empty data) +* The data to run the function on, either as a `Bundle` FHIR resource, or an implementation of `IDataSource`. (default: empty data) * The parameters passed to the measure (default: none). * A set of external valuesets (default: no valuesets). * The date to server as "today" (default: today) -This is most easily done by calling one of the overloads of the factory method `FirelyCqlContext.Create()`. When the `CqlContext` is created, +This is most easily done by calling one of the overloads of the factory method `FhirCqlContext.Create()`. When the `CqlContext` is created, we can now invoke the defined functions in the measure: 1. Directly call the generated measure. This is shown in `BCSEHEDIS2022_Numerator`. Calling a CQL expression directly requires the measures to be known in advance as a pre-compiled assembly.