Hl7.Cql.Packager 2.0.7-alpha

This is a prerelease version of Hl7.Cql.Packager.
dotnet tool install --global Hl7.Cql.Packager --version 2.0.7-alpha                
This package contains a .NET tool you can call from the shell/command line.
dotnet new tool-manifest # if you are setting up this repo
dotnet tool install --local Hl7.Cql.Packager --version 2.0.7-alpha                
This package contains a .NET tool you can call from the shell/command line.
#tool dotnet:?package=Hl7.Cql.Packager&version=2.0.7-alpha&prerelease                
nuke :add-package Hl7.Cql.Packager --version 2.0.7-alpha                

HL7 CQL Packager

A .NET tool that packages CQL, ELM, and build outputs into a FHIR Library resource.

Overview

The HL7 CQL Packager performs the following steps:

  1. Translation: Converts ELM JSON files into Linq.Expressions, then translates these expressions into C# code. Each ELM file is converted into a class, with each function within that file becoming a public method in the class.
  2. Compilation: Compiles the generated C# code into a single assembly per ELM file.
  3. Packaging: Packages the assembly (and optionally the original CQL, ELM, and C# source code) into a FHIR Library resource, creating one resource per original ELM file.

Getting Started

Installation

Install the packager tool globally using the following command:

dotnet tool install Hl7.Cql.Packager --global --prerelease

Note: The --prerelease option is required because only prerelease versions are currently available.

Prerequisites

The tool does not convert CQL into ELM. You need to use the existing Java-based tooling for this conversion.

Usage

Run the tool with the following command:

cql-package --elm <directory> --cql <directory> [options]

Mandatory Parameters

  • --elm <directory>: Specifies the root directory for the ELM files. This parameter is required.
  • --cql <directory>: Specifies the root directory for the CQL files. This parameter is required.

Optional Parameters

  • [--fhir <directory>]: Specifies the output directory for the FHIR resources
  • [--cs <directory>]: Specifies the output directory for generated C# code
  • [--cs-typeformat <var|explicit>]: Specifies whether to use 'var' (default) or explicit types in the generated C# output
  • [--dll <directory>]: Specifies the DLL output directory
  • [--log-debug <true|false>]: Enable debug logging or not (default)
  • [--canonical-root-url <url>]: Specifies the root url used for the resource canonical. If omitted a '#' will be used.
  • [--override-utc-date-time <ISO8601-date-time>]: Defines the UTC date to override in the generated FHIR resource libraries (example: 2000-12-31T23:59:59.99Z). If omitted the current date time will be used.

Example

cql-package --elm Elm\json --cql Cql\input --fhir c:\packager-output-fhir --cs c:\packager-output-cs

This command packages the ELM and CQL files from the specified directories and writes the generated FHIR Resources and C# code to the respective directories.

Further Reading

The CQL Packager tool is part of the Firely CQL SDK. More information can be found at Firely’s documentation site.

Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

This package has no dependencies.

Version Downloads Last updated
2.0.7-alpha 33 11/19/2024
2.0.4-alpha 74 9/20/2024
2.0.3-alpha 86 9/4/2024
2.0.2-alpha 51 9/4/2024
2.0.1-alpha 100 8/21/2024
2.0.0-alpha 61 6/17/2024
1.0.0-rc3 57 7/10/2024
1.0.0-rc2 357 10/23/2023
1.0.0-rc1 97 9/7/2023