================ Working with CQL ================ As a result of the cooperation between Firely and `NCQA `_, the SDK contains a full CQL Engine and a tool to convert ELM-based CQL logic to C#. To start working with CQL, you need to do two things: - Install the CQL Packager .NET tool, which will allow you to read ELM files, turn them into C# and compile them. This is done by running ``dotnet tool install Hl7.Cql.Packager --global`` (add ``--prerelease`` if you are feeling adventurous). - Add a reference to the `main CQL package `_ to your project. The packager tool will generate the C# that the engine can run using the engine. For example, if we had compiled a library called ``BCSEHEDISMY2022`` (version 1.0.0), the packager will create a class called ``BCSEHEDISMY2022_1_0_0`` that can be invoked like this: .. code-block:: csharp using Hl7.Cql.Fhir; using Hl7.Cql.Packaging; using Hl7.Cql.Primitives; using Hl7.Fhir.Model; // Set up the parameters for the CQL library private readonly IDictionary MY2023 = new Dictionary { { "Measurement Period", new CqlInterval( new CqlDateTime(2023, 1, 1, 0, 0, 0, 0, 0, 0), new CqlDateTime(2023, 12, 31, 0, 0, 0, 0, 0, 0), true, true) } }; var patientEverything = new Bundle(); // add some data var context = FhirCqlContext.ForBundle(patientEverything, MY2023); var bcs = new BCSEHEDISMY2022_1_0_0(context); // instantiate the library var numerator = bcs.Numerator(); // invoke one of the definition in the library More information can be found in the `GitHub repository for the CQL Engine `_.