Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ docpath.txt

*.log
*.log.*
LOG_FILE_IS_UNDEFINED
.idea
*.iml
*.vsix
Expand Down
25 changes: 24 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,30 @@

## v4.5.0

Date: 2026-04-08
Date: 2026-04-15

### Execute CQL

Adds a JSON-RPC–based Execute CQL command (`org.opencds.cqf.cql.ls.executeCql`) that
replaces the previous CLI-based approach.

* Accepts a structured `ExecuteCqlRequest` with per-library FHIR model paths, terminology URI,
context, and user-defined parameters
* Evaluates all test cases for a library in a single batch (compile once, evaluate per patient)
* `CqlEvaluator` — new evaluator that builds a shared engine per batch and runs each patient context
* `DelegatingRepository` — mutable repository wrapper that swaps the patient bundle between evaluations
* `ExecuteCqlCommandContribution` — registers the command and dispatches to `CqlEvaluator`
* Removed `CliCommand` and `CqlCommand` (picocli CLI) — no longer needed
* Returns structured JSON: expression results, server-side logs, and used-default-parameter metadata

### Compilation Cache + Surgical Invalidation

* `CqlCompilationManager` now caches compiled `CqlCompiler` results per source URI
* Reverse dependency index tracks which URIs depend on each library identifier
* `invalidate(uri)` evicts the URI and all dependents from the cache
* `DiagnosticsService.didChangeWatchedFiles` triggers surgical invalidation on `.cql` file changes
* `IgStandardRepository` adds a `typeResourceCache` — caches directory scans per resource
type/compartment combination, eliminating redundant filesystem walks across patients in a batch

### Module Consolidation

Expand Down
44 changes: 9 additions & 35 deletions ls/server/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
<parent>
<groupId>org.opencds.cqf.cql.ls</groupId>
<artifactId>cql-ls</artifactId>
<version>4.5.0-SNAPSHOT</version>
<version>4.5.0</version>
<relativePath>../../pom.xml</relativePath>
</parent>

Expand Down Expand Up @@ -88,11 +88,6 @@
<artifactId>eventbus-java</artifactId>
</dependency>

<dependency>
<groupId>info.picocli</groupId>
<artifactId>picocli</artifactId>
</dependency>

<!-- Generated annotation -->
<dependency>
<groupId>jakarta.annotation</groupId>
Expand Down Expand Up @@ -153,31 +148,17 @@
</execution>
</executions>
</plugin>
<!-- All source is Kotlin; checkstyle is a Java linter and has no work to do here. -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
<configuration>
<skip>true</skip>
</configuration>
</plugin>
</plugins>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-maven-plugin</artifactId>
<executions>
<execution>
<id>kapt</id>
<goals><goal>kapt</goal></goals>
<configuration>
<sourceDirs>
<sourceDir>${project.basedir}/src/main/kotlin</sourceDir>
</sourceDirs>
<annotationProcessorPaths>
<annotationProcessorPath>
<groupId>info.picocli</groupId>
<artifactId>picocli-codegen</artifactId>
<version>${picocli.version}</version>
</annotationProcessorPath>
</annotationProcessorPaths>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
Expand All @@ -192,13 +173,6 @@
<arg>-Werror</arg>
<arg>-implicit:none</arg>
</compilerArgs>
<annotationProcessorPaths>
<path>
<groupId>info.picocli</groupId>
<artifactId>picocli-codegen</artifactId>
<version>${picocli.version}</version>
</path>
</annotationProcessorPaths>
</configuration>
</plugin>
</plugins>
Expand Down

This file was deleted.

Loading
Loading