cqframework/cqf-tooling

CqlToR4Library error: fhirhelpers not found

cmoesel opened this issue · 2 comments

Describe the bug
When running CqlToR4Library on a CQL file that depends on FHIRHelpers, the tooling reports the following error:

java.lang.IllegalArgumentException: Referenced library: fhirhelpers not found
    at org.opencds.cqf.tooling.library.r4.LibraryGenerator.processLibrary (LibraryGenerator.java:41)
    at org.opencds.cqf.tooling.library.BaseLibraryGenerator.execute (BaseLibraryGenerator.java:66)
    at org.opencds.cqf.tooling.cli.Main.main (Main.java:235)
    at org.codehaus.mojo.exec.ExecJavaMojo$1.run (ExecJavaMojo.java:279)
    at java.lang.Thread.run (Thread.java:829)

I am including FHIRHelpers.cql in the same directory, and I have also tried various other file names (FHIRHelpers-4.0.1.cql, fhirhelpers.cql, fhirhelpers-4.0.1.cql). No matter what, I cannot get past this error.

To Reproduce
Steps to reproduce the behavior:

  1. Download and unzip this simple folder of CQL: SimpleLibrary.zip
  2. Run the following command from this project's tooling-cli directory: mvn exec:java -Dexec.mainClass="org.opencds.cqf.tooling.cli.Main" -Dexec.args="-CqlToR4Library -ptcql=/Path/To/SimpleLibrary/SimpleLibrary.cql" (replacing the path with the correct one for your system)
  3. Observer the error

Expected behavior
It should generate the library for SimpleCQL.cql.

Desktop (please complete the following information):

  • OS: Mac OS Ventura
  • Java Version: openjdk 11.0.17

Am I doing something wrong? Should this work? Or is it a known bug/limitation?

In BaseLibraryGenerator.execute() after the translateCQLFiles() call, the FHIRHelpers library is contained in the libraryManager.libraries. It is NOT in the translatorMap, which is looped through with LibraryGenerator.processLibrary() called for each library in the translatorMap. libraryManager is not used in processLibrary