cqframework / cqf-tooling

Tooling for CQL and IG Authors
Apache License 2.0
19 stars 22 forks source link

CqlToR4Library error: fhirhelpers not found #443

Open cmoesel opened 1 year ago

cmoesel commented 1 year ago

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):

cmoesel commented 1 year ago

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

bryantaustin13 commented 6 months ago

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