From b5c028f80ad6ff8442ab1f21a29cabfdcdaa7337 Mon Sep 17 00:00:00 2001
From: Justin McKelvy <60718638+Capt-Mac@users.noreply.github.com>
Date: Wed, 3 Jan 2024 10:16:08 -0700
Subject: [PATCH] Add Evaluate Library operation and bump CR (#5570)
* add evaluateLibrary operation
* add tests and constants for operations
* move off snapshot
* code review comments
* version bump to 6.11.8-SNAPSHOT
* spotless edit
---
hapi-deployable-pom/pom.xml | 2 +-
hapi-fhir-android/pom.xml | 2 +-
hapi-fhir-base/pom.xml | 2 +-
hapi-fhir-bom/pom.xml | 4 +-
hapi-fhir-checkstyle/pom.xml | 2 +-
hapi-fhir-cli/hapi-fhir-cli-api/pom.xml | 2 +-
hapi-fhir-cli/hapi-fhir-cli-app/pom.xml | 2 +-
hapi-fhir-cli/pom.xml | 2 +-
hapi-fhir-client-okhttp/pom.xml | 2 +-
hapi-fhir-client/pom.xml | 2 +-
hapi-fhir-converter/pom.xml | 2 +-
hapi-fhir-dist/pom.xml | 2 +-
hapi-fhir-docs/pom.xml | 2 +-
.../5569-upgrade-clinical-reasoning.yaml | 4 +
hapi-fhir-jacoco/pom.xml | 2 +-
hapi-fhir-jaxrsserver-base/pom.xml | 2 +-
hapi-fhir-jpa/pom.xml | 2 +-
hapi-fhir-jpaserver-base/pom.xml | 2 +-
.../pom.xml | 2 +-
hapi-fhir-jpaserver-hfql/pom.xml | 2 +-
hapi-fhir-jpaserver-ips/pom.xml | 2 +-
hapi-fhir-jpaserver-mdm/pom.xml | 2 +-
hapi-fhir-jpaserver-model/pom.xml | 2 +-
hapi-fhir-jpaserver-searchparam/pom.xml | 2 +-
hapi-fhir-jpaserver-subscription/pom.xml | 2 +-
hapi-fhir-jpaserver-test-dstu2/pom.xml | 2 +-
hapi-fhir-jpaserver-test-dstu3/pom.xml | 2 +-
hapi-fhir-jpaserver-test-r4/pom.xml | 2 +-
hapi-fhir-jpaserver-test-r4b/pom.xml | 2 +-
hapi-fhir-jpaserver-test-r5/pom.xml | 2 +-
hapi-fhir-jpaserver-test-utilities/pom.xml | 2 +-
hapi-fhir-jpaserver-uhnfhirtest/pom.xml | 2 +-
hapi-fhir-server-cds-hooks/pom.xml | 2 +-
hapi-fhir-server-mdm/pom.xml | 2 +-
hapi-fhir-server-openapi/pom.xml | 2 +-
hapi-fhir-server/pom.xml | 2 +-
.../server/provider/ProviderConstants.java | 11 +-
.../hapi-fhir-caching-api/pom.xml | 2 +-
.../hapi-fhir-caching-caffeine/pom.xml | 4 +-
.../hapi-fhir-caching-guava/pom.xml | 2 +-
.../hapi-fhir-caching-testing/pom.xml | 2 +-
hapi-fhir-serviceloaders/pom.xml | 2 +-
.../pom.xml | 2 +-
.../pom.xml | 2 +-
.../pom.xml | 2 +-
.../pom.xml | 2 +-
.../hapi-fhir-spring-boot-samples/pom.xml | 2 +-
.../hapi-fhir-spring-boot-starter/pom.xml | 2 +-
hapi-fhir-spring-boot/pom.xml | 2 +-
hapi-fhir-sql-migrate/pom.xml | 2 +-
hapi-fhir-storage-batch2-jobs/pom.xml | 2 +-
.../pom.xml | 2 +-
hapi-fhir-storage-batch2/pom.xml | 2 +-
hapi-fhir-storage-cr/pom.xml | 2 +-
.../ca/uhn/fhir/cr/config/r4/CrR4Config.java | 21 +++-
.../measure/MeasureOperationsProvider.java | 2 +-
.../cr/r4/ICqlExecutionServiceFactory.java | 2 +-
.../r4/ILibraryEvaluationServiceFactory.java | 9 ++
.../CqlExecutionOperationProvider.java | 5 +-
.../LibraryEvaluationOperationProvider.java | 107 ++++++++++++++++++
.../r4/measure/CareGapsOperationProvider.java | 3 +-
.../r4/measure/MeasureOperationsProvider.java | 2 +-
.../cr/r4/measure/SubmitDataProvider.java | 3 +-
.../CrDstu3MeasureOperationProviderIT.java | 3 +-
.../ca/uhn/fhir/cr/r4/CareGapsProviderIT.java | 5 +-
...est.java => CpgOperationProviderTest.java} | 96 +++++++++++-----
.../cr/r4/R4MeasureOperationProviderIT.java | 41 +++----
.../fhir/cr/r4/SubmitDataServiceR4Test.java | 2 -
hapi-fhir-storage-mdm/pom.xml | 2 +-
hapi-fhir-storage-test-utilities/pom.xml | 2 +-
hapi-fhir-storage/pom.xml | 2 +-
hapi-fhir-structures-dstu2.1/pom.xml | 2 +-
hapi-fhir-structures-dstu2/pom.xml | 2 +-
hapi-fhir-structures-dstu3/pom.xml | 2 +-
hapi-fhir-structures-hl7org-dstu2/pom.xml | 2 +-
hapi-fhir-structures-r4/pom.xml | 2 +-
hapi-fhir-structures-r4b/pom.xml | 2 +-
hapi-fhir-structures-r5/pom.xml | 2 +-
hapi-fhir-test-utilities/pom.xml | 2 +-
hapi-fhir-testpage-overlay/pom.xml | 2 +-
.../pom.xml | 2 +-
hapi-fhir-validation-resources-dstu2/pom.xml | 2 +-
hapi-fhir-validation-resources-dstu3/pom.xml | 2 +-
hapi-fhir-validation-resources-r4/pom.xml | 2 +-
hapi-fhir-validation-resources-r4b/pom.xml | 2 +-
hapi-fhir-validation-resources-r5/pom.xml | 2 +-
hapi-fhir-validation/pom.xml | 2 +-
hapi-tinder-plugin/pom.xml | 2 +-
hapi-tinder-test/pom.xml | 2 +-
pom.xml | 4 +-
.../pom.xml | 2 +-
.../pom.xml | 2 +-
.../pom.xml | 2 +-
93 files changed, 328 insertions(+), 148 deletions(-)
create mode 100644 hapi-fhir-docs/src/main/resources/ca/uhn/hapi/fhir/changelog/7_0_0/5569-upgrade-clinical-reasoning.yaml
create mode 100644 hapi-fhir-storage-cr/src/main/java/ca/uhn/fhir/cr/r4/ILibraryEvaluationServiceFactory.java
rename hapi-fhir-storage-cr/src/main/java/ca/uhn/fhir/cr/r4/{cqlexecution => cpg}/CqlExecutionOperationProvider.java (98%)
create mode 100644 hapi-fhir-storage-cr/src/main/java/ca/uhn/fhir/cr/r4/cpg/LibraryEvaluationOperationProvider.java
rename hapi-fhir-storage-cr/src/test/java/ca/uhn/fhir/cr/r4/{CqlExecutionOperationProviderTest.java => CpgOperationProviderTest.java} (67%)
diff --git a/hapi-deployable-pom/pom.xml b/hapi-deployable-pom/pom.xml
index e0fdc9defbd..91c0c5019fa 100644
--- a/hapi-deployable-pom/pom.xml
+++ b/hapi-deployable-pom/pom.xml
@@ -5,7 +5,7 @@
ca.uhn.hapi.fhir
hapi-fhir
- 6.11.7-SNAPSHOT
+ 6.11.8-SNAPSHOT
../pom.xml
diff --git a/hapi-fhir-android/pom.xml b/hapi-fhir-android/pom.xml
index ee1c47560a0..bbd0604b5f5 100644
--- a/hapi-fhir-android/pom.xml
+++ b/hapi-fhir-android/pom.xml
@@ -5,7 +5,7 @@
ca.uhn.hapi.fhir
hapi-deployable-pom
- 6.11.7-SNAPSHOT
+ 6.11.8-SNAPSHOT
../hapi-deployable-pom/pom.xml
diff --git a/hapi-fhir-base/pom.xml b/hapi-fhir-base/pom.xml
index 0b400e33354..b8bc743ae09 100644
--- a/hapi-fhir-base/pom.xml
+++ b/hapi-fhir-base/pom.xml
@@ -5,7 +5,7 @@
ca.uhn.hapi.fhir
hapi-deployable-pom
- 6.11.7-SNAPSHOT
+ 6.11.8-SNAPSHOT
../hapi-deployable-pom/pom.xml
diff --git a/hapi-fhir-bom/pom.xml b/hapi-fhir-bom/pom.xml
index 39b230f2ea5..d97e2a1b8ce 100644
--- a/hapi-fhir-bom/pom.xml
+++ b/hapi-fhir-bom/pom.xml
@@ -4,7 +4,7 @@
4.0.0
ca.uhn.hapi.fhir
hapi-fhir-bom
- 6.11.7-SNAPSHOT
+ 6.11.8-SNAPSHOT
pom
HAPI FHIR BOM
@@ -12,7 +12,7 @@
ca.uhn.hapi.fhir
hapi-deployable-pom
- 6.11.7-SNAPSHOT
+ 6.11.8-SNAPSHOT
../hapi-deployable-pom/pom.xml
diff --git a/hapi-fhir-checkstyle/pom.xml b/hapi-fhir-checkstyle/pom.xml
index 22eba74f131..326e23e0365 100644
--- a/hapi-fhir-checkstyle/pom.xml
+++ b/hapi-fhir-checkstyle/pom.xml
@@ -5,7 +5,7 @@
ca.uhn.hapi.fhir
hapi-fhir
- 6.11.7-SNAPSHOT
+ 6.11.8-SNAPSHOT
../pom.xml
diff --git a/hapi-fhir-cli/hapi-fhir-cli-api/pom.xml b/hapi-fhir-cli/hapi-fhir-cli-api/pom.xml
index aa68ece2aeb..3e86d67292d 100644
--- a/hapi-fhir-cli/hapi-fhir-cli-api/pom.xml
+++ b/hapi-fhir-cli/hapi-fhir-cli-api/pom.xml
@@ -4,7 +4,7 @@
ca.uhn.hapi.fhir
hapi-deployable-pom
- 6.11.7-SNAPSHOT
+ 6.11.8-SNAPSHOT
../../hapi-deployable-pom/pom.xml
diff --git a/hapi-fhir-cli/hapi-fhir-cli-app/pom.xml b/hapi-fhir-cli/hapi-fhir-cli-app/pom.xml
index a1d5071ed88..eb48a0b77f3 100644
--- a/hapi-fhir-cli/hapi-fhir-cli-app/pom.xml
+++ b/hapi-fhir-cli/hapi-fhir-cli-app/pom.xml
@@ -6,7 +6,7 @@
ca.uhn.hapi.fhir
hapi-fhir-cli
- 6.11.7-SNAPSHOT
+ 6.11.8-SNAPSHOT
../pom.xml
diff --git a/hapi-fhir-cli/pom.xml b/hapi-fhir-cli/pom.xml
index dbcfdedd285..df7007a6bf7 100644
--- a/hapi-fhir-cli/pom.xml
+++ b/hapi-fhir-cli/pom.xml
@@ -5,7 +5,7 @@
ca.uhn.hapi.fhir
hapi-fhir
- 6.11.7-SNAPSHOT
+ 6.11.8-SNAPSHOT
../pom.xml
diff --git a/hapi-fhir-client-okhttp/pom.xml b/hapi-fhir-client-okhttp/pom.xml
index 78bda8b4a32..6a41866b841 100644
--- a/hapi-fhir-client-okhttp/pom.xml
+++ b/hapi-fhir-client-okhttp/pom.xml
@@ -4,7 +4,7 @@
ca.uhn.hapi.fhir
hapi-deployable-pom
- 6.11.7-SNAPSHOT
+ 6.11.8-SNAPSHOT
../hapi-deployable-pom/pom.xml
diff --git a/hapi-fhir-client/pom.xml b/hapi-fhir-client/pom.xml
index 8dfd0a83790..6274e089dfb 100644
--- a/hapi-fhir-client/pom.xml
+++ b/hapi-fhir-client/pom.xml
@@ -4,7 +4,7 @@
ca.uhn.hapi.fhir
hapi-deployable-pom
- 6.11.7-SNAPSHOT
+ 6.11.8-SNAPSHOT
../hapi-deployable-pom/pom.xml
diff --git a/hapi-fhir-converter/pom.xml b/hapi-fhir-converter/pom.xml
index 9589ca5d79c..cba5c537148 100644
--- a/hapi-fhir-converter/pom.xml
+++ b/hapi-fhir-converter/pom.xml
@@ -5,7 +5,7 @@
ca.uhn.hapi.fhir
hapi-deployable-pom
- 6.11.7-SNAPSHOT
+ 6.11.8-SNAPSHOT
../hapi-deployable-pom/pom.xml
diff --git a/hapi-fhir-dist/pom.xml b/hapi-fhir-dist/pom.xml
index e896e8c4bf0..063774252a9 100644
--- a/hapi-fhir-dist/pom.xml
+++ b/hapi-fhir-dist/pom.xml
@@ -5,7 +5,7 @@
ca.uhn.hapi.fhir
hapi-fhir
- 6.11.7-SNAPSHOT
+ 6.11.8-SNAPSHOT
../pom.xml
diff --git a/hapi-fhir-docs/pom.xml b/hapi-fhir-docs/pom.xml
index 53b477e73d8..1ddc4a28853 100644
--- a/hapi-fhir-docs/pom.xml
+++ b/hapi-fhir-docs/pom.xml
@@ -5,7 +5,7 @@
ca.uhn.hapi.fhir
hapi-deployable-pom
- 6.11.7-SNAPSHOT
+ 6.11.8-SNAPSHOT
../hapi-deployable-pom/pom.xml
diff --git a/hapi-fhir-docs/src/main/resources/ca/uhn/hapi/fhir/changelog/7_0_0/5569-upgrade-clinical-reasoning.yaml b/hapi-fhir-docs/src/main/resources/ca/uhn/hapi/fhir/changelog/7_0_0/5569-upgrade-clinical-reasoning.yaml
new file mode 100644
index 00000000000..44c25c9e298
--- /dev/null
+++ b/hapi-fhir-docs/src/main/resources/ca/uhn/hapi/fhir/changelog/7_0_0/5569-upgrade-clinical-reasoning.yaml
@@ -0,0 +1,4 @@
+---
+type: add
+issue: 5569
+title: "Upgrade Clinical Reasoning version for latest bug fixes and available operations. Add $evaluate library operation."
diff --git a/hapi-fhir-jacoco/pom.xml b/hapi-fhir-jacoco/pom.xml
index 96c394d0795..5fd49f8045d 100644
--- a/hapi-fhir-jacoco/pom.xml
+++ b/hapi-fhir-jacoco/pom.xml
@@ -11,7 +11,7 @@
ca.uhn.hapi.fhir
hapi-deployable-pom
- 6.11.7-SNAPSHOT
+ 6.11.8-SNAPSHOT
../hapi-deployable-pom/pom.xml
diff --git a/hapi-fhir-jaxrsserver-base/pom.xml b/hapi-fhir-jaxrsserver-base/pom.xml
index ce646c625d0..d703b9e9233 100644
--- a/hapi-fhir-jaxrsserver-base/pom.xml
+++ b/hapi-fhir-jaxrsserver-base/pom.xml
@@ -4,7 +4,7 @@
ca.uhn.hapi.fhir
hapi-deployable-pom
- 6.11.7-SNAPSHOT
+ 6.11.8-SNAPSHOT
../hapi-deployable-pom/pom.xml
diff --git a/hapi-fhir-jpa/pom.xml b/hapi-fhir-jpa/pom.xml
index 80afed07c9f..9cfa3af4c4a 100644
--- a/hapi-fhir-jpa/pom.xml
+++ b/hapi-fhir-jpa/pom.xml
@@ -5,7 +5,7 @@
ca.uhn.hapi.fhir
hapi-deployable-pom
- 6.11.7-SNAPSHOT
+ 6.11.8-SNAPSHOT
../hapi-deployable-pom/pom.xml
diff --git a/hapi-fhir-jpaserver-base/pom.xml b/hapi-fhir-jpaserver-base/pom.xml
index f8b5642bab5..b2211b2d49b 100644
--- a/hapi-fhir-jpaserver-base/pom.xml
+++ b/hapi-fhir-jpaserver-base/pom.xml
@@ -5,7 +5,7 @@
ca.uhn.hapi.fhir
hapi-deployable-pom
- 6.11.7-SNAPSHOT
+ 6.11.8-SNAPSHOT
../hapi-deployable-pom/pom.xml
diff --git a/hapi-fhir-jpaserver-elastic-test-utilities/pom.xml b/hapi-fhir-jpaserver-elastic-test-utilities/pom.xml
index 646a34bf07a..09f0b0f584f 100644
--- a/hapi-fhir-jpaserver-elastic-test-utilities/pom.xml
+++ b/hapi-fhir-jpaserver-elastic-test-utilities/pom.xml
@@ -6,7 +6,7 @@
ca.uhn.hapi.fhir
hapi-deployable-pom
- 6.11.7-SNAPSHOT
+ 6.11.8-SNAPSHOT
../hapi-deployable-pom/pom.xml
diff --git a/hapi-fhir-jpaserver-hfql/pom.xml b/hapi-fhir-jpaserver-hfql/pom.xml
index 254e53aa47f..3d9fdc9eb35 100644
--- a/hapi-fhir-jpaserver-hfql/pom.xml
+++ b/hapi-fhir-jpaserver-hfql/pom.xml
@@ -3,7 +3,7 @@
ca.uhn.hapi.fhir
hapi-deployable-pom
- 6.11.7-SNAPSHOT
+ 6.11.8-SNAPSHOT
../hapi-deployable-pom/pom.xml
diff --git a/hapi-fhir-jpaserver-ips/pom.xml b/hapi-fhir-jpaserver-ips/pom.xml
index c284d9ed955..f79a2f0e696 100644
--- a/hapi-fhir-jpaserver-ips/pom.xml
+++ b/hapi-fhir-jpaserver-ips/pom.xml
@@ -3,7 +3,7 @@
ca.uhn.hapi.fhir
hapi-deployable-pom
- 6.11.7-SNAPSHOT
+ 6.11.8-SNAPSHOT
../hapi-deployable-pom/pom.xml
diff --git a/hapi-fhir-jpaserver-mdm/pom.xml b/hapi-fhir-jpaserver-mdm/pom.xml
index 94bd39c91a2..d8a16bc7e52 100644
--- a/hapi-fhir-jpaserver-mdm/pom.xml
+++ b/hapi-fhir-jpaserver-mdm/pom.xml
@@ -6,7 +6,7 @@
ca.uhn.hapi.fhir
hapi-deployable-pom
- 6.11.7-SNAPSHOT
+ 6.11.8-SNAPSHOT
../hapi-deployable-pom/pom.xml
diff --git a/hapi-fhir-jpaserver-model/pom.xml b/hapi-fhir-jpaserver-model/pom.xml
index 5000d617b40..9407ddabe0a 100644
--- a/hapi-fhir-jpaserver-model/pom.xml
+++ b/hapi-fhir-jpaserver-model/pom.xml
@@ -5,7 +5,7 @@
ca.uhn.hapi.fhir
hapi-deployable-pom
- 6.11.7-SNAPSHOT
+ 6.11.8-SNAPSHOT
../hapi-deployable-pom/pom.xml
diff --git a/hapi-fhir-jpaserver-searchparam/pom.xml b/hapi-fhir-jpaserver-searchparam/pom.xml
index 20a05eaa091..7fda0f0b3d2 100755
--- a/hapi-fhir-jpaserver-searchparam/pom.xml
+++ b/hapi-fhir-jpaserver-searchparam/pom.xml
@@ -5,7 +5,7 @@
ca.uhn.hapi.fhir
hapi-deployable-pom
- 6.11.7-SNAPSHOT
+ 6.11.8-SNAPSHOT
../hapi-deployable-pom/pom.xml
diff --git a/hapi-fhir-jpaserver-subscription/pom.xml b/hapi-fhir-jpaserver-subscription/pom.xml
index dca57d868d6..e251aff6596 100644
--- a/hapi-fhir-jpaserver-subscription/pom.xml
+++ b/hapi-fhir-jpaserver-subscription/pom.xml
@@ -5,7 +5,7 @@
ca.uhn.hapi.fhir
hapi-deployable-pom
- 6.11.7-SNAPSHOT
+ 6.11.8-SNAPSHOT
../hapi-deployable-pom/pom.xml
diff --git a/hapi-fhir-jpaserver-test-dstu2/pom.xml b/hapi-fhir-jpaserver-test-dstu2/pom.xml
index d168f8148a2..936f840c8d1 100644
--- a/hapi-fhir-jpaserver-test-dstu2/pom.xml
+++ b/hapi-fhir-jpaserver-test-dstu2/pom.xml
@@ -6,7 +6,7 @@
ca.uhn.hapi.fhir
hapi-deployable-pom
- 6.11.7-SNAPSHOT
+ 6.11.8-SNAPSHOT
../hapi-deployable-pom/pom.xml
diff --git a/hapi-fhir-jpaserver-test-dstu3/pom.xml b/hapi-fhir-jpaserver-test-dstu3/pom.xml
index b23b2ed48f0..fbac5083f6f 100644
--- a/hapi-fhir-jpaserver-test-dstu3/pom.xml
+++ b/hapi-fhir-jpaserver-test-dstu3/pom.xml
@@ -6,7 +6,7 @@
ca.uhn.hapi.fhir
hapi-deployable-pom
- 6.11.7-SNAPSHOT
+ 6.11.8-SNAPSHOT
../hapi-deployable-pom/pom.xml
diff --git a/hapi-fhir-jpaserver-test-r4/pom.xml b/hapi-fhir-jpaserver-test-r4/pom.xml
index fbcdfb36f6e..15b0316f0b2 100644
--- a/hapi-fhir-jpaserver-test-r4/pom.xml
+++ b/hapi-fhir-jpaserver-test-r4/pom.xml
@@ -6,7 +6,7 @@
ca.uhn.hapi.fhir
hapi-deployable-pom
- 6.11.7-SNAPSHOT
+ 6.11.8-SNAPSHOT
../hapi-deployable-pom/pom.xml
diff --git a/hapi-fhir-jpaserver-test-r4b/pom.xml b/hapi-fhir-jpaserver-test-r4b/pom.xml
index fc9a0d3a742..2a04f3b5e9e 100644
--- a/hapi-fhir-jpaserver-test-r4b/pom.xml
+++ b/hapi-fhir-jpaserver-test-r4b/pom.xml
@@ -6,7 +6,7 @@
ca.uhn.hapi.fhir
hapi-deployable-pom
- 6.11.7-SNAPSHOT
+ 6.11.8-SNAPSHOT
../hapi-deployable-pom/pom.xml
diff --git a/hapi-fhir-jpaserver-test-r5/pom.xml b/hapi-fhir-jpaserver-test-r5/pom.xml
index eb2a7a64796..3251e1bf21f 100644
--- a/hapi-fhir-jpaserver-test-r5/pom.xml
+++ b/hapi-fhir-jpaserver-test-r5/pom.xml
@@ -6,7 +6,7 @@
ca.uhn.hapi.fhir
hapi-deployable-pom
- 6.11.7-SNAPSHOT
+ 6.11.8-SNAPSHOT
../hapi-deployable-pom/pom.xml
diff --git a/hapi-fhir-jpaserver-test-utilities/pom.xml b/hapi-fhir-jpaserver-test-utilities/pom.xml
index 225aae4f29f..385fede23e6 100644
--- a/hapi-fhir-jpaserver-test-utilities/pom.xml
+++ b/hapi-fhir-jpaserver-test-utilities/pom.xml
@@ -6,7 +6,7 @@
ca.uhn.hapi.fhir
hapi-deployable-pom
- 6.11.7-SNAPSHOT
+ 6.11.8-SNAPSHOT
../hapi-deployable-pom/pom.xml
diff --git a/hapi-fhir-jpaserver-uhnfhirtest/pom.xml b/hapi-fhir-jpaserver-uhnfhirtest/pom.xml
index 0409211c054..22222bd2b2c 100644
--- a/hapi-fhir-jpaserver-uhnfhirtest/pom.xml
+++ b/hapi-fhir-jpaserver-uhnfhirtest/pom.xml
@@ -5,7 +5,7 @@
ca.uhn.hapi.fhir
hapi-fhir
- 6.11.7-SNAPSHOT
+ 6.11.8-SNAPSHOT
../pom.xml
diff --git a/hapi-fhir-server-cds-hooks/pom.xml b/hapi-fhir-server-cds-hooks/pom.xml
index dd01ffff387..c820f6e99fb 100644
--- a/hapi-fhir-server-cds-hooks/pom.xml
+++ b/hapi-fhir-server-cds-hooks/pom.xml
@@ -7,7 +7,7 @@
ca.uhn.hapi.fhir
hapi-deployable-pom
- 6.11.7-SNAPSHOT
+ 6.11.8-SNAPSHOT
../hapi-deployable-pom/pom.xml
diff --git a/hapi-fhir-server-mdm/pom.xml b/hapi-fhir-server-mdm/pom.xml
index 6e163215517..37a51383e4e 100644
--- a/hapi-fhir-server-mdm/pom.xml
+++ b/hapi-fhir-server-mdm/pom.xml
@@ -7,7 +7,7 @@
ca.uhn.hapi.fhir
hapi-deployable-pom
- 6.11.7-SNAPSHOT
+ 6.11.8-SNAPSHOT
../hapi-deployable-pom/pom.xml
diff --git a/hapi-fhir-server-openapi/pom.xml b/hapi-fhir-server-openapi/pom.xml
index dfe33aeeb93..44b39c3abb6 100644
--- a/hapi-fhir-server-openapi/pom.xml
+++ b/hapi-fhir-server-openapi/pom.xml
@@ -5,7 +5,7 @@
ca.uhn.hapi.fhir
hapi-deployable-pom
- 6.11.7-SNAPSHOT
+ 6.11.8-SNAPSHOT
../hapi-deployable-pom/pom.xml
diff --git a/hapi-fhir-server/pom.xml b/hapi-fhir-server/pom.xml
index 3a521cd7eae..ceca880b052 100644
--- a/hapi-fhir-server/pom.xml
+++ b/hapi-fhir-server/pom.xml
@@ -5,7 +5,7 @@
ca.uhn.hapi.fhir
hapi-deployable-pom
- 6.11.7-SNAPSHOT
+ 6.11.8-SNAPSHOT
../hapi-deployable-pom/pom.xml
diff --git a/hapi-fhir-server/src/main/java/ca/uhn/fhir/rest/server/provider/ProviderConstants.java b/hapi-fhir-server/src/main/java/ca/uhn/fhir/rest/server/provider/ProviderConstants.java
index 01e36c75f12..bd8ee964093 100644
--- a/hapi-fhir-server/src/main/java/ca/uhn/fhir/rest/server/provider/ProviderConstants.java
+++ b/hapi-fhir-server/src/main/java/ca/uhn/fhir/rest/server/provider/ProviderConstants.java
@@ -104,13 +104,16 @@ public class ProviderConstants {
public static final String OPERATION_MDM_SUBMIT_OUT_PARAM_SUBMITTED = "submitted";
public static final String MDM_BATCH_RUN_CRITERIA = "criteria";
public static final String MDM_BATCH_RUN_RESOURCE_TYPE = "resourceType";
- /**
- * CQL Operations
- */
- public static final String CQL_EVALUATE_MEASURE = "$evaluate-measure";
+
/**
* Clinical Reasoning Operations
*/
+ public static final String CR_OPERATION_EVALUATE_MEASURE = "$evaluate-measure";
+
+ public static final String CR_OPERATION_CARE_GAPS = "$care-gaps";
+ public static final String CR_OPERATION_SUBMIT_DATA = "$submit-data";
+ public static final String CR_OPERATION_EVALUATE = "$evaluate";
+ public static final String CR_OPERATION_CQL = "$cql";
public static final String CR_OPERATION_APPLY = "$apply";
public static final String CR_OPERATION_R5_APPLY = "$r5.apply";
diff --git a/hapi-fhir-serviceloaders/hapi-fhir-caching-api/pom.xml b/hapi-fhir-serviceloaders/hapi-fhir-caching-api/pom.xml
index 717dc503b22..c328868c019 100644
--- a/hapi-fhir-serviceloaders/hapi-fhir-caching-api/pom.xml
+++ b/hapi-fhir-serviceloaders/hapi-fhir-caching-api/pom.xml
@@ -7,7 +7,7 @@
hapi-fhir-serviceloaders
ca.uhn.hapi.fhir
- 6.11.7-SNAPSHOT
+ 6.11.8-SNAPSHOT
../pom.xml
diff --git a/hapi-fhir-serviceloaders/hapi-fhir-caching-caffeine/pom.xml b/hapi-fhir-serviceloaders/hapi-fhir-caching-caffeine/pom.xml
index 4892de65b91..c1b667b9647 100644
--- a/hapi-fhir-serviceloaders/hapi-fhir-caching-caffeine/pom.xml
+++ b/hapi-fhir-serviceloaders/hapi-fhir-caching-caffeine/pom.xml
@@ -7,7 +7,7 @@
hapi-fhir-serviceloaders
ca.uhn.hapi.fhir
- 6.11.7-SNAPSHOT
+ 6.11.8-SNAPSHOT
../pom.xml
@@ -21,7 +21,7 @@
ca.uhn.hapi.fhir
hapi-fhir-caching-api
- 6.11.7-SNAPSHOT
+ 6.11.8-SNAPSHOT
diff --git a/hapi-fhir-serviceloaders/hapi-fhir-caching-guava/pom.xml b/hapi-fhir-serviceloaders/hapi-fhir-caching-guava/pom.xml
index 4ac7744f800..b845bfb8fbb 100644
--- a/hapi-fhir-serviceloaders/hapi-fhir-caching-guava/pom.xml
+++ b/hapi-fhir-serviceloaders/hapi-fhir-caching-guava/pom.xml
@@ -7,7 +7,7 @@
hapi-fhir-serviceloaders
ca.uhn.hapi.fhir
- 6.11.7-SNAPSHOT
+ 6.11.8-SNAPSHOT
../pom.xml
diff --git a/hapi-fhir-serviceloaders/hapi-fhir-caching-testing/pom.xml b/hapi-fhir-serviceloaders/hapi-fhir-caching-testing/pom.xml
index 68182ea7940..ba0125c4ec7 100644
--- a/hapi-fhir-serviceloaders/hapi-fhir-caching-testing/pom.xml
+++ b/hapi-fhir-serviceloaders/hapi-fhir-caching-testing/pom.xml
@@ -7,7 +7,7 @@
hapi-fhir
ca.uhn.hapi.fhir
- 6.11.7-SNAPSHOT
+ 6.11.8-SNAPSHOT
../../pom.xml
diff --git a/hapi-fhir-serviceloaders/pom.xml b/hapi-fhir-serviceloaders/pom.xml
index 45d0307e9d7..559cfaecd11 100644
--- a/hapi-fhir-serviceloaders/pom.xml
+++ b/hapi-fhir-serviceloaders/pom.xml
@@ -5,7 +5,7 @@
hapi-deployable-pom
ca.uhn.hapi.fhir
- 6.11.7-SNAPSHOT
+ 6.11.8-SNAPSHOT
../hapi-deployable-pom/pom.xml
diff --git a/hapi-fhir-spring-boot/hapi-fhir-spring-boot-autoconfigure/pom.xml b/hapi-fhir-spring-boot/hapi-fhir-spring-boot-autoconfigure/pom.xml
index 4e76a3e78e7..9e4dcb2601c 100644
--- a/hapi-fhir-spring-boot/hapi-fhir-spring-boot-autoconfigure/pom.xml
+++ b/hapi-fhir-spring-boot/hapi-fhir-spring-boot-autoconfigure/pom.xml
@@ -5,7 +5,7 @@
ca.uhn.hapi.fhir
hapi-deployable-pom
- 6.11.7-SNAPSHOT
+ 6.11.8-SNAPSHOT
../../hapi-deployable-pom/pom.xml
diff --git a/hapi-fhir-spring-boot/hapi-fhir-spring-boot-samples/hapi-fhir-spring-boot-sample-client-apache/pom.xml b/hapi-fhir-spring-boot/hapi-fhir-spring-boot-samples/hapi-fhir-spring-boot-sample-client-apache/pom.xml
index 2b50aacd7ef..e82e507dac9 100644
--- a/hapi-fhir-spring-boot/hapi-fhir-spring-boot-samples/hapi-fhir-spring-boot-sample-client-apache/pom.xml
+++ b/hapi-fhir-spring-boot/hapi-fhir-spring-boot-samples/hapi-fhir-spring-boot-sample-client-apache/pom.xml
@@ -5,7 +5,7 @@
ca.uhn.hapi.fhir
hapi-fhir-spring-boot-samples
- 6.11.7-SNAPSHOT
+ 6.11.8-SNAPSHOT
hapi-fhir-spring-boot-sample-client-apache
diff --git a/hapi-fhir-spring-boot/hapi-fhir-spring-boot-samples/hapi-fhir-spring-boot-sample-client-okhttp/pom.xml b/hapi-fhir-spring-boot/hapi-fhir-spring-boot-samples/hapi-fhir-spring-boot-sample-client-okhttp/pom.xml
index 4f5bae777e6..838d9f90469 100644
--- a/hapi-fhir-spring-boot/hapi-fhir-spring-boot-samples/hapi-fhir-spring-boot-sample-client-okhttp/pom.xml
+++ b/hapi-fhir-spring-boot/hapi-fhir-spring-boot-samples/hapi-fhir-spring-boot-sample-client-okhttp/pom.xml
@@ -5,7 +5,7 @@
ca.uhn.hapi.fhir
hapi-fhir-spring-boot-samples
- 6.11.7-SNAPSHOT
+ 6.11.8-SNAPSHOT
diff --git a/hapi-fhir-spring-boot/hapi-fhir-spring-boot-samples/hapi-fhir-spring-boot-sample-server-jersey/pom.xml b/hapi-fhir-spring-boot/hapi-fhir-spring-boot-samples/hapi-fhir-spring-boot-sample-server-jersey/pom.xml
index 6ac1fcffe05..16c63315cb3 100644
--- a/hapi-fhir-spring-boot/hapi-fhir-spring-boot-samples/hapi-fhir-spring-boot-sample-server-jersey/pom.xml
+++ b/hapi-fhir-spring-boot/hapi-fhir-spring-boot-samples/hapi-fhir-spring-boot-sample-server-jersey/pom.xml
@@ -5,7 +5,7 @@
ca.uhn.hapi.fhir
hapi-fhir-spring-boot-samples
- 6.11.7-SNAPSHOT
+ 6.11.8-SNAPSHOT
diff --git a/hapi-fhir-spring-boot/hapi-fhir-spring-boot-samples/pom.xml b/hapi-fhir-spring-boot/hapi-fhir-spring-boot-samples/pom.xml
index 213031cf9f9..5164cdc9199 100644
--- a/hapi-fhir-spring-boot/hapi-fhir-spring-boot-samples/pom.xml
+++ b/hapi-fhir-spring-boot/hapi-fhir-spring-boot-samples/pom.xml
@@ -5,7 +5,7 @@
ca.uhn.hapi.fhir
hapi-fhir-spring-boot
- 6.11.7-SNAPSHOT
+ 6.11.8-SNAPSHOT
diff --git a/hapi-fhir-spring-boot/hapi-fhir-spring-boot-starter/pom.xml b/hapi-fhir-spring-boot/hapi-fhir-spring-boot-starter/pom.xml
index 4c620fb3e24..374d492042a 100644
--- a/hapi-fhir-spring-boot/hapi-fhir-spring-boot-starter/pom.xml
+++ b/hapi-fhir-spring-boot/hapi-fhir-spring-boot-starter/pom.xml
@@ -5,7 +5,7 @@
ca.uhn.hapi.fhir
hapi-deployable-pom
- 6.11.7-SNAPSHOT
+ 6.11.8-SNAPSHOT
../../hapi-deployable-pom/pom.xml
diff --git a/hapi-fhir-spring-boot/pom.xml b/hapi-fhir-spring-boot/pom.xml
index 08ebc710049..2c0136df1af 100644
--- a/hapi-fhir-spring-boot/pom.xml
+++ b/hapi-fhir-spring-boot/pom.xml
@@ -5,7 +5,7 @@
ca.uhn.hapi.fhir
hapi-fhir
- 6.11.7-SNAPSHOT
+ 6.11.8-SNAPSHOT
../pom.xml
diff --git a/hapi-fhir-sql-migrate/pom.xml b/hapi-fhir-sql-migrate/pom.xml
index 5152c3ba85f..da1704aaaca 100644
--- a/hapi-fhir-sql-migrate/pom.xml
+++ b/hapi-fhir-sql-migrate/pom.xml
@@ -5,7 +5,7 @@
ca.uhn.hapi.fhir
hapi-deployable-pom
- 6.11.7-SNAPSHOT
+ 6.11.8-SNAPSHOT
../hapi-deployable-pom/pom.xml
diff --git a/hapi-fhir-storage-batch2-jobs/pom.xml b/hapi-fhir-storage-batch2-jobs/pom.xml
index a7f5d8ecbaf..a3c24bb15b3 100644
--- a/hapi-fhir-storage-batch2-jobs/pom.xml
+++ b/hapi-fhir-storage-batch2-jobs/pom.xml
@@ -5,7 +5,7 @@
ca.uhn.hapi.fhir
hapi-deployable-pom
- 6.11.7-SNAPSHOT
+ 6.11.8-SNAPSHOT
../hapi-deployable-pom/pom.xml
diff --git a/hapi-fhir-storage-batch2-test-utilities/pom.xml b/hapi-fhir-storage-batch2-test-utilities/pom.xml
index 38658c74f86..024d5fdac80 100644
--- a/hapi-fhir-storage-batch2-test-utilities/pom.xml
+++ b/hapi-fhir-storage-batch2-test-utilities/pom.xml
@@ -7,7 +7,7 @@
ca.uhn.hapi.fhir
hapi-deployable-pom
- 6.11.7-SNAPSHOT
+ 6.11.8-SNAPSHOT
../hapi-deployable-pom/pom.xml
diff --git a/hapi-fhir-storage-batch2/pom.xml b/hapi-fhir-storage-batch2/pom.xml
index 42541c03098..6c7eaaaaed8 100644
--- a/hapi-fhir-storage-batch2/pom.xml
+++ b/hapi-fhir-storage-batch2/pom.xml
@@ -7,7 +7,7 @@
ca.uhn.hapi.fhir
hapi-deployable-pom
- 6.11.7-SNAPSHOT
+ 6.11.8-SNAPSHOT
../hapi-deployable-pom/pom.xml
diff --git a/hapi-fhir-storage-cr/pom.xml b/hapi-fhir-storage-cr/pom.xml
index 9ff0f31d888..3067454328b 100644
--- a/hapi-fhir-storage-cr/pom.xml
+++ b/hapi-fhir-storage-cr/pom.xml
@@ -7,7 +7,7 @@
ca.uhn.hapi.fhir
hapi-deployable-pom
- 6.11.7-SNAPSHOT
+ 6.11.8-SNAPSHOT
../hapi-deployable-pom/pom.xml
diff --git a/hapi-fhir-storage-cr/src/main/java/ca/uhn/fhir/cr/config/r4/CrR4Config.java b/hapi-fhir-storage-cr/src/main/java/ca/uhn/fhir/cr/config/r4/CrR4Config.java
index 7edeccf819c..716055860e1 100644
--- a/hapi-fhir-storage-cr/src/main/java/ca/uhn/fhir/cr/config/r4/CrR4Config.java
+++ b/hapi-fhir-storage-cr/src/main/java/ca/uhn/fhir/cr/config/r4/CrR4Config.java
@@ -27,15 +27,18 @@ import ca.uhn.fhir.cr.config.ProviderSelector;
import ca.uhn.fhir.cr.config.RepositoryConfig;
import ca.uhn.fhir.cr.r4.ICareGapsServiceFactory;
import ca.uhn.fhir.cr.r4.ICqlExecutionServiceFactory;
+import ca.uhn.fhir.cr.r4.ILibraryEvaluationServiceFactory;
import ca.uhn.fhir.cr.r4.IMeasureServiceFactory;
import ca.uhn.fhir.cr.r4.ISubmitDataProcessorFactory;
-import ca.uhn.fhir.cr.r4.cqlexecution.CqlExecutionOperationProvider;
+import ca.uhn.fhir.cr.r4.cpg.CqlExecutionOperationProvider;
+import ca.uhn.fhir.cr.r4.cpg.LibraryEvaluationOperationProvider;
import ca.uhn.fhir.cr.r4.measure.CareGapsOperationProvider;
import ca.uhn.fhir.cr.r4.measure.MeasureOperationsProvider;
import ca.uhn.fhir.cr.r4.measure.SubmitDataProvider;
import ca.uhn.fhir.rest.server.RestfulServer;
import org.opencds.cqf.fhir.cql.EvaluationSettings;
-import org.opencds.cqf.fhir.cr.cql.r4.R4CqlExecutionService;
+import org.opencds.cqf.fhir.cr.cpg.r4.R4CqlExecutionService;
+import org.opencds.cqf.fhir.cr.cpg.r4.R4LibraryEvaluationService;
import org.opencds.cqf.fhir.cr.measure.CareGapsProperties;
import org.opencds.cqf.fhir.cr.measure.MeasureEvaluationOptions;
import org.opencds.cqf.fhir.cr.measure.r4.R4CareGapsService;
@@ -72,11 +75,22 @@ public class CrR4Config {
return rd -> new R4CqlExecutionService(theRepositoryFactory.create(rd), theEvaluationSettings);
}
+ @Bean
+ ILibraryEvaluationServiceFactory r4LibraryEvaluationServiceFactory(
+ IRepositoryFactory theRepositoryFactory, EvaluationSettings theEvaluationSettings) {
+ return rd -> new R4LibraryEvaluationService(theRepositoryFactory.create(rd), theEvaluationSettings);
+ }
+
@Bean
CqlExecutionOperationProvider r4CqlExecutionOperationProvider() {
return new CqlExecutionOperationProvider();
}
+ @Bean
+ LibraryEvaluationOperationProvider r4LibraryEvaluationOperationProvider() {
+ return new LibraryEvaluationOperationProvider();
+ }
+
@Bean
ICareGapsServiceFactory careGapsServiceFactory(
IRepositoryFactory theRepositoryFactory,
@@ -118,7 +132,8 @@ public class CrR4Config {
MeasureOperationsProvider.class,
SubmitDataProvider.class,
CareGapsOperationProvider.class,
- CqlExecutionOperationProvider.class)));
+ CqlExecutionOperationProvider.class,
+ LibraryEvaluationOperationProvider.class)));
return new ProviderLoader(theRestfulServer, theApplicationContext, selector);
}
diff --git a/hapi-fhir-storage-cr/src/main/java/ca/uhn/fhir/cr/dstu3/measure/MeasureOperationsProvider.java b/hapi-fhir-storage-cr/src/main/java/ca/uhn/fhir/cr/dstu3/measure/MeasureOperationsProvider.java
index afbd57ba6bf..17bb97d317b 100644
--- a/hapi-fhir-storage-cr/src/main/java/ca/uhn/fhir/cr/dstu3/measure/MeasureOperationsProvider.java
+++ b/hapi-fhir-storage-cr/src/main/java/ca/uhn/fhir/cr/dstu3/measure/MeasureOperationsProvider.java
@@ -65,7 +65,7 @@ public class MeasureOperationsProvider {
* autopopulated HAPI.
* @return the calculated MeasureReport
*/
- @Operation(name = ProviderConstants.CQL_EVALUATE_MEASURE, idempotent = true, type = Measure.class)
+ @Operation(name = ProviderConstants.CR_OPERATION_EVALUATE_MEASURE, idempotent = true, type = Measure.class)
public MeasureReport evaluateMeasure(
@IdParam IdType theId,
@OperationParam(name = "periodStart") String thePeriodStart,
diff --git a/hapi-fhir-storage-cr/src/main/java/ca/uhn/fhir/cr/r4/ICqlExecutionServiceFactory.java b/hapi-fhir-storage-cr/src/main/java/ca/uhn/fhir/cr/r4/ICqlExecutionServiceFactory.java
index 8708eebe155..e346648d4d0 100644
--- a/hapi-fhir-storage-cr/src/main/java/ca/uhn/fhir/cr/r4/ICqlExecutionServiceFactory.java
+++ b/hapi-fhir-storage-cr/src/main/java/ca/uhn/fhir/cr/r4/ICqlExecutionServiceFactory.java
@@ -20,7 +20,7 @@
package ca.uhn.fhir.cr.r4;
import ca.uhn.fhir.rest.api.server.RequestDetails;
-import org.opencds.cqf.fhir.cr.cql.r4.R4CqlExecutionService;
+import org.opencds.cqf.fhir.cr.cpg.r4.R4CqlExecutionService;
@FunctionalInterface
public interface ICqlExecutionServiceFactory {
diff --git a/hapi-fhir-storage-cr/src/main/java/ca/uhn/fhir/cr/r4/ILibraryEvaluationServiceFactory.java b/hapi-fhir-storage-cr/src/main/java/ca/uhn/fhir/cr/r4/ILibraryEvaluationServiceFactory.java
new file mode 100644
index 00000000000..5ade2781cdb
--- /dev/null
+++ b/hapi-fhir-storage-cr/src/main/java/ca/uhn/fhir/cr/r4/ILibraryEvaluationServiceFactory.java
@@ -0,0 +1,9 @@
+package ca.uhn.fhir.cr.r4;
+
+import ca.uhn.fhir.rest.api.server.RequestDetails;
+import org.opencds.cqf.fhir.cr.cpg.r4.R4LibraryEvaluationService;
+
+@FunctionalInterface
+public interface ILibraryEvaluationServiceFactory {
+ R4LibraryEvaluationService create(RequestDetails theRequestDetails);
+}
diff --git a/hapi-fhir-storage-cr/src/main/java/ca/uhn/fhir/cr/r4/cqlexecution/CqlExecutionOperationProvider.java b/hapi-fhir-storage-cr/src/main/java/ca/uhn/fhir/cr/r4/cpg/CqlExecutionOperationProvider.java
similarity index 98%
rename from hapi-fhir-storage-cr/src/main/java/ca/uhn/fhir/cr/r4/cqlexecution/CqlExecutionOperationProvider.java
rename to hapi-fhir-storage-cr/src/main/java/ca/uhn/fhir/cr/r4/cpg/CqlExecutionOperationProvider.java
index 0e52b2a3960..ba2d0c36b7f 100644
--- a/hapi-fhir-storage-cr/src/main/java/ca/uhn/fhir/cr/r4/cqlexecution/CqlExecutionOperationProvider.java
+++ b/hapi-fhir-storage-cr/src/main/java/ca/uhn/fhir/cr/r4/cpg/CqlExecutionOperationProvider.java
@@ -17,13 +17,14 @@
* limitations under the License.
* #L%
*/
-package ca.uhn.fhir.cr.r4.cqlexecution;
+package ca.uhn.fhir.cr.r4.cpg;
import ca.uhn.fhir.cr.r4.ICqlExecutionServiceFactory;
import ca.uhn.fhir.model.api.annotation.Description;
import ca.uhn.fhir.rest.annotation.Operation;
import ca.uhn.fhir.rest.annotation.OperationParam;
import ca.uhn.fhir.rest.api.server.RequestDetails;
+import ca.uhn.fhir.rest.server.provider.ProviderConstants;
import org.hl7.fhir.r4.model.BooleanType;
import org.hl7.fhir.r4.model.Bundle;
import org.hl7.fhir.r4.model.Endpoint;
@@ -112,7 +113,7 @@ public class CqlExecutionOperationProvider {
* is a CQL system-defined or FHIR-defined type, the result is returned
* as a {@link Parameters} Parameters resource
*/
- @Operation(name = "$cql")
+ @Operation(name = ProviderConstants.CR_OPERATION_CQL)
@Description(
shortDefinition = "$cql",
value =
diff --git a/hapi-fhir-storage-cr/src/main/java/ca/uhn/fhir/cr/r4/cpg/LibraryEvaluationOperationProvider.java b/hapi-fhir-storage-cr/src/main/java/ca/uhn/fhir/cr/r4/cpg/LibraryEvaluationOperationProvider.java
new file mode 100644
index 00000000000..d972193ca4e
--- /dev/null
+++ b/hapi-fhir-storage-cr/src/main/java/ca/uhn/fhir/cr/r4/cpg/LibraryEvaluationOperationProvider.java
@@ -0,0 +1,107 @@
+package ca.uhn.fhir.cr.r4.cpg;
+
+import ca.uhn.fhir.cr.r4.ILibraryEvaluationServiceFactory;
+import ca.uhn.fhir.rest.annotation.IdParam;
+import ca.uhn.fhir.rest.annotation.Operation;
+import ca.uhn.fhir.rest.annotation.OperationParam;
+import ca.uhn.fhir.rest.api.server.RequestDetails;
+import ca.uhn.fhir.rest.server.provider.ProviderConstants;
+import org.hl7.fhir.r4.model.Bundle;
+import org.hl7.fhir.r4.model.Endpoint;
+import org.hl7.fhir.r4.model.IdType;
+import org.hl7.fhir.r4.model.Library;
+import org.hl7.fhir.r4.model.Parameters;
+import org.springframework.beans.factory.annotation.Autowired;
+
+import java.util.List;
+
+public class LibraryEvaluationOperationProvider {
+ @Autowired
+ ILibraryEvaluationServiceFactory myLibraryEvaluationServiceFactory;
+ /**
+ * Evaluates a CQL library and returns the results as a Parameters resource.
+ *
+ * @param theRequestDetails the {@link RequestDetails RequestDetails}
+ * @param theId the library resource's Id
+ * @param theSubject Subject for which the library will be evaluated.
+ * This corresponds to the context in which the
+ * library
+ * will be evaluated and is represented as a relative
+ * FHIR id (e.g. Patient/123), which establishes both
+ * the context and context value for the evaluation
+ * @param theExpression Expression(s) to be evaluated. If no expression
+ * names
+ * are provided, the operation evaluates all public
+ * expression definitions in the library
+ * @param theParameters Any input parameters for the expression.
+ * {@link Parameters} Parameters defined in this
+ * input will be made available by name to the CQL
+ * expression. Parameter types are mapped to CQL as
+ * specified in the Using CQL section of the CPG
+ * Implementation guide. If a parameter appears more
+ * than once in the input Parameters resource, it is
+ * represented with a List in the input CQL. If a
+ * parameter has parts, it is represented as a Tuple
+ * in the input CQL
+ * @param theData Data to be made available to the library
+ * evaluation. This parameter is exclusive with the
+ * prefetchData parameter (i.e. either provide all
+ * data as a single bundle, or provide data using
+ * multiple bundles with prefetch descriptions)
+ * @param thePrefetchData ***Not Yet Implemented***
+ * @param theDataEndpoint An {@link Endpoint} endpoint to use to access data
+ * referenced by retrieve operations in the library.
+ * If provided, this endpoint is used after the data
+ * or prefetchData bundles, and the server, if the
+ * useServerData parameter is true.
+ * @param theContentEndpoint An {@link Endpoint} endpoint to use to access
+ * content (i.e. libraries) referenced by the
+ * library. If no content endpoint is supplied, the
+ * evaluation will attempt to retrieve content from
+ * the server on which the operation is being
+ * performed
+ * @param theTerminologyEndpoint An {@link Endpoint} endpoint to use to access
+ * terminology (i.e. valuesets, codesystems, and
+ * membership testing) referenced by the library. If
+ * no terminology endpoint is supplied, the
+ * evaluation will attempt to use the server on which
+ * the operation is being performed as the
+ * terminology server
+ * @return The results of the library evaluation, returned as a
+ * {@link Parameters} resource
+ * with a parameter for each named expression defined in the library.
+ * The value of
+ * each expression is returned as a FHIR type, either a resource, or a
+ * FHIR-defined
+ * type corresponding to the CQL return type, as defined in the Using
+ * CQL section of
+ * this implementation guide. If the result of an expression is a list
+ * of resources,
+ * that parameter will be repeated for each element in the result
+ */
+ @Operation(name = ProviderConstants.CR_OPERATION_EVALUATE, idempotent = true, type = Library.class)
+ public Parameters evaluate(
+ RequestDetails theRequestDetails,
+ @IdParam IdType theId,
+ @OperationParam(name = "subject") String theSubject,
+ @OperationParam(name = "expression") List theExpression,
+ @OperationParam(name = "parameters") Parameters theParameters,
+ @OperationParam(name = "data") Bundle theData,
+ @OperationParam(name = "prefetchData") List thePrefetchData,
+ @OperationParam(name = "dataEndpoint") Endpoint theDataEndpoint,
+ @OperationParam(name = "contentEndpoint") Endpoint theContentEndpoint,
+ @OperationParam(name = "terminologyEndpoint") Endpoint theTerminologyEndpoint) {
+ return myLibraryEvaluationServiceFactory
+ .create(theRequestDetails)
+ .evaluate(
+ theId,
+ theSubject,
+ theExpression,
+ theParameters,
+ theData,
+ thePrefetchData,
+ theDataEndpoint,
+ theContentEndpoint,
+ theTerminologyEndpoint);
+ }
+}
diff --git a/hapi-fhir-storage-cr/src/main/java/ca/uhn/fhir/cr/r4/measure/CareGapsOperationProvider.java b/hapi-fhir-storage-cr/src/main/java/ca/uhn/fhir/cr/r4/measure/CareGapsOperationProvider.java
index 105003f8022..b7773290243 100644
--- a/hapi-fhir-storage-cr/src/main/java/ca/uhn/fhir/cr/r4/measure/CareGapsOperationProvider.java
+++ b/hapi-fhir-storage-cr/src/main/java/ca/uhn/fhir/cr/r4/measure/CareGapsOperationProvider.java
@@ -25,6 +25,7 @@ import ca.uhn.fhir.model.api.annotation.Description;
import ca.uhn.fhir.rest.annotation.Operation;
import ca.uhn.fhir.rest.annotation.OperationParam;
import ca.uhn.fhir.rest.api.server.RequestDetails;
+import ca.uhn.fhir.rest.server.provider.ProviderConstants;
import org.hl7.fhir.instance.model.api.IPrimitiveType;
import org.hl7.fhir.r4.model.CanonicalType;
import org.hl7.fhir.r4.model.Measure;
@@ -97,7 +98,7 @@ public class CareGapsOperationProvider {
shortDefinition = "$care-gaps operation",
value =
"Implements the $care-gaps operation found in the Da Vinci DEQM FHIR Implementation Guide which is an extension of the $care-gaps operation found in the FHIR Clinical Reasoning Module.")
- @Operation(name = "$care-gaps", idempotent = true, type = Measure.class)
+ @Operation(name = ProviderConstants.CR_OPERATION_CARE_GAPS, idempotent = true, type = Measure.class)
public Parameters careGapsReport(
RequestDetails theRequestDetails,
@OperationParam(name = "periodStart", typeName = "date") IPrimitiveType thePeriodStart,
diff --git a/hapi-fhir-storage-cr/src/main/java/ca/uhn/fhir/cr/r4/measure/MeasureOperationsProvider.java b/hapi-fhir-storage-cr/src/main/java/ca/uhn/fhir/cr/r4/measure/MeasureOperationsProvider.java
index b61c422ded1..c7cd5fbed34 100644
--- a/hapi-fhir-storage-cr/src/main/java/ca/uhn/fhir/cr/r4/measure/MeasureOperationsProvider.java
+++ b/hapi-fhir-storage-cr/src/main/java/ca/uhn/fhir/cr/r4/measure/MeasureOperationsProvider.java
@@ -63,7 +63,7 @@ public class MeasureOperationsProvider {
* autopopulated HAPI.
* @return the calculated MeasureReport
*/
- @Operation(name = ProviderConstants.CQL_EVALUATE_MEASURE, idempotent = true, type = Measure.class)
+ @Operation(name = ProviderConstants.CR_OPERATION_EVALUATE_MEASURE, idempotent = true, type = Measure.class)
public MeasureReport evaluateMeasure(
@IdParam IdType theId,
@OperationParam(name = "periodStart") String thePeriodStart,
diff --git a/hapi-fhir-storage-cr/src/main/java/ca/uhn/fhir/cr/r4/measure/SubmitDataProvider.java b/hapi-fhir-storage-cr/src/main/java/ca/uhn/fhir/cr/r4/measure/SubmitDataProvider.java
index 0e486a533ce..dd2045dc129 100644
--- a/hapi-fhir-storage-cr/src/main/java/ca/uhn/fhir/cr/r4/measure/SubmitDataProvider.java
+++ b/hapi-fhir-storage-cr/src/main/java/ca/uhn/fhir/cr/r4/measure/SubmitDataProvider.java
@@ -25,6 +25,7 @@ import ca.uhn.fhir.rest.annotation.IdParam;
import ca.uhn.fhir.rest.annotation.Operation;
import ca.uhn.fhir.rest.annotation.OperationParam;
import ca.uhn.fhir.rest.api.server.RequestDetails;
+import ca.uhn.fhir.rest.server.provider.ProviderConstants;
import org.hl7.fhir.instance.model.api.IBaseResource;
import org.hl7.fhir.r4.model.Bundle;
import org.hl7.fhir.r4.model.IdType;
@@ -70,7 +71,7 @@ public class SubmitDataProvider {
shortDefinition = "$submit-data",
value =
"Implements the $submit-data operation found in the FHIR Clinical Reasoning Module per the Da Vinci DEQM FHIR Implementation Guide.")
- @Operation(name = "$submit-data", type = Measure.class)
+ @Operation(name = ProviderConstants.CR_OPERATION_SUBMIT_DATA, type = Measure.class)
public Bundle submitData(
RequestDetails theRequestDetails,
@IdParam IdType theId,
diff --git a/hapi-fhir-storage-cr/src/test/java/ca/uhn/fhir/cr/dstu3/CrDstu3MeasureOperationProviderIT.java b/hapi-fhir-storage-cr/src/test/java/ca/uhn/fhir/cr/dstu3/CrDstu3MeasureOperationProviderIT.java
index e66a2a8bfad..6232949ded8 100644
--- a/hapi-fhir-storage-cr/src/test/java/ca/uhn/fhir/cr/dstu3/CrDstu3MeasureOperationProviderIT.java
+++ b/hapi-fhir-storage-cr/src/test/java/ca/uhn/fhir/cr/dstu3/CrDstu3MeasureOperationProviderIT.java
@@ -2,6 +2,7 @@ package ca.uhn.fhir.cr.dstu3;
import ca.uhn.fhir.cr.dstu3.measure.MeasureOperationsProvider;
+import ca.uhn.fhir.rest.server.provider.ProviderConstants;
import org.hamcrest.Matchers;
import org.hl7.fhir.dstu3.model.Bundle;
import org.hl7.fhir.dstu3.model.DateType;
@@ -82,7 +83,7 @@ public class CrDstu3MeasureOperationProviderIT extends BaseCrDstu3TestServer {
}
return ourClient.operation().onInstance(measureId)
- .named("$evaluate-measure")
+ .named(ProviderConstants.CR_OPERATION_EVALUATE_MEASURE)
.withParameters(parametersEval1)
.returnResourceType(MeasureReport.class)
.execute();
diff --git a/hapi-fhir-storage-cr/src/test/java/ca/uhn/fhir/cr/r4/CareGapsProviderIT.java b/hapi-fhir-storage-cr/src/test/java/ca/uhn/fhir/cr/r4/CareGapsProviderIT.java
index 566b13bcff0..295e05758e1 100644
--- a/hapi-fhir-storage-cr/src/test/java/ca/uhn/fhir/cr/r4/CareGapsProviderIT.java
+++ b/hapi-fhir-storage-cr/src/test/java/ca/uhn/fhir/cr/r4/CareGapsProviderIT.java
@@ -1,5 +1,6 @@
package ca.uhn.fhir.cr.r4;
+import ca.uhn.fhir.rest.server.provider.ProviderConstants;
import org.hl7.fhir.r4.model.Bundle;
import org.hl7.fhir.r4.model.CodeableConcept;
import org.hl7.fhir.r4.model.Coding;
@@ -69,7 +70,7 @@ class CareGapsProviderIT extends BaseCrR4TestServer
parameters.addParameter("measureId", "ColorectalCancerScreeningsFHIR");
var result = ourClient.operation().onType(Measure.class)
- .named("$care-gaps")
+ .named(ProviderConstants.CR_OPERATION_CARE_GAPS)
.withParameters(parameters)
.returnResourceType(Parameters.class)
.execute();
@@ -84,7 +85,7 @@ class CareGapsProviderIT extends BaseCrR4TestServer
// 7. Provider runs care-gaps again
result = ourClient.operation().onType("Measure")
- .named("care-gaps")
+ .named(ProviderConstants.CR_OPERATION_CARE_GAPS)
.withParameters(parameters)
.execute();
diff --git a/hapi-fhir-storage-cr/src/test/java/ca/uhn/fhir/cr/r4/CqlExecutionOperationProviderTest.java b/hapi-fhir-storage-cr/src/test/java/ca/uhn/fhir/cr/r4/CpgOperationProviderTest.java
similarity index 67%
rename from hapi-fhir-storage-cr/src/test/java/ca/uhn/fhir/cr/r4/CqlExecutionOperationProviderTest.java
rename to hapi-fhir-storage-cr/src/test/java/ca/uhn/fhir/cr/r4/CpgOperationProviderTest.java
index 559e2024e50..9f56c02ba2f 100644
--- a/hapi-fhir-storage-cr/src/test/java/ca/uhn/fhir/cr/r4/CqlExecutionOperationProviderTest.java
+++ b/hapi-fhir-storage-cr/src/test/java/ca/uhn/fhir/cr/r4/CpgOperationProviderTest.java
@@ -1,7 +1,7 @@
package ca.uhn.fhir.cr.r4;
-import ca.uhn.fhir.cr.r4.cqlexecution.CqlExecutionOperationProvider;
+import ca.uhn.fhir.rest.server.provider.ProviderConstants;
import org.hl7.fhir.r4.model.BooleanType;
import org.hl7.fhir.r4.model.Bundle;
import org.hl7.fhir.r4.model.Condition;
@@ -12,12 +12,11 @@ import org.hl7.fhir.r4.model.OperationOutcome;
import org.hl7.fhir.r4.model.Parameters;
import org.hl7.fhir.r4.model.Patient;
import org.hl7.fhir.r4.model.Period;
+import org.hl7.fhir.r4.model.StringType;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
-import org.springframework.beans.factory.annotation.Autowired;
-
-import java.io.IOException;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
import static org.opencds.cqf.fhir.utility.r4.Parameters.booleanPart;
import static org.opencds.cqf.fhir.utility.r4.Parameters.canonicalPart;
import static org.opencds.cqf.fhir.utility.r4.Parameters.parameters;
@@ -28,43 +27,66 @@ import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertTrue;
-public class CqlExecutionOperationProviderTest extends BaseCrR4TestServer{
- @Autowired
- CqlExecutionOperationProvider myCqlExecutionProvider;
+public class CpgOperationProviderTest extends BaseCrR4TestServer{
@BeforeEach
- void setup() throws IOException {
+ void setup() {
var reqDeets = setupRequestDetails();
loadResource(Library.class, "SimpleR4Library.json", reqDeets);
loadResource(Patient.class, "SimplePatient.json", reqDeets);
loadResource(Observation.class, "SimpleObservation.json", reqDeets);
loadResource(Condition.class, "SimpleCondition.json", reqDeets);
}
- public Parameters runCqlExecution(Parameters parameters){
- var results = ourClient.operation().onServer()
- .named("$cql")
- .withParameters(parameters)
- .execute();
- return results;
- }
@Test
- void testSimpleDateCqlExecutionProvider() {
+ void cqlExecutionProvider_testSimpleDate() {
+ // execute cql expression on date interval
Parameters params = parameters(stringPart("expression", "Interval[Today() - 2 years, Today())"));
Parameters results = runCqlExecution(params);
assertTrue(results.getParameter("return").getValue() instanceof Period);
}
@Test
- void testSimpleArithmeticCqlExecutionProvider() {
+ void cqlExecutionProvider_testSimpleArithmetic() {
+ // execute simple cql expression
Parameters params = parameters(stringPart("expression", "5 * 5"));
Parameters results = runCqlExecution(params);
assertTrue(results.getParameter("return").getValue() instanceof IntegerType);
assertEquals("25", ((IntegerType) results.getParameter("return").getValue()).asStringValue());
}
- @Test
- void testReferencedLibraryCqlExecutionProvider() {
- var test = ourClient.read().resource(Library.class).withId("SimpleR4Library").execute();
+ @Test
+ void evaluateLibraryProvider_testLibraryWithSubject() {
+ // evaluate library resource for a subject
+ var params = new Parameters();
+ params.addParameter("subject", new StringType("Patient/SimplePatient"));
+
+ Parameters report = runEvaluateLibrary(params, "SimpleR4Library");
+
+ assertNotNull(report);
+ assertTrue(report.hasParameter("Initial Population"));
+ assertTrue(((BooleanType) report.getParameter("Initial Population").getValue()).booleanValue());
+ assertTrue(report.hasParameter("Numerator"));
+ assertTrue(((BooleanType) report.getParameter("Numerator").getValue()).booleanValue());
+ assertTrue(report.hasParameter("Denominator"));
+ assertTrue(((BooleanType) report.getParameter("Denominator").getValue()).booleanValue());
+ }
+
+ @Test
+ void evaluateLibraryProvider_testSimpleExpression() {
+ // evaluate expression for subject from specified library resource
+ var params = new Parameters();
+ params.addParameter("subject", new StringType("Patient/SimplePatient"));
+ params.addParameter("expression", "Numerator");
+
+ Parameters report = runEvaluateLibrary(params, "SimpleR4Library");
+ assertNotNull(report);
+ assertTrue(report.hasParameter("Numerator"));
+ assertTrue(((BooleanType) report.getParameter("Numerator").getValue()).booleanValue());
+ }
+
+ @Test
+ void cqlExecutionProvider_testReferencedLibrary() {
+ // execute cql expression from referenced library on subject
Parameters libraryParameter = parameters(
canonicalPart("url", ourClient.getServerBase() + "/Library/SimpleR4Library|0.0.1"),
stringPart("name", "SimpleR4Library"));
@@ -79,9 +101,10 @@ public class CqlExecutionOperationProviderTest extends BaseCrR4TestServer{
}
@Test
- void testDataBundleCqlExecutionProvider() throws IOException {
+ void cqlExecutionProvider_testDataBundle() {
+ // execute cql expression from library over data from bundle with no subject
Parameters libraryParameter = parameters(
- canonicalPart("url", this.ourClient.getServerBase() + "/Library/SimpleR4Library"),
+ canonicalPart("url", ourClient.getServerBase() + "/Library/SimpleR4Library"),
stringPart("name", "SimpleR4Library"));
//var data = loadBundle(Bundle.class,"SimpleDataBundle.json");
var data = (Bundle) readResource("SimpleDataBundle.json");
@@ -96,7 +119,8 @@ public class CqlExecutionOperationProviderTest extends BaseCrR4TestServer{
}
@Test
- void testDataBundleCqlExecutionProviderWithSubject() {
+ void cqlExecutionProvider_testDataBundleWithSubject() {
+ // execute cql expression from library over data from bundle with subject
Parameters libraryParameter = parameters(
canonicalPart("url", ourClient.getServerBase() + "/Library/SimpleR4Library"),
stringPart("name", "SimpleR4Library"));
@@ -112,7 +136,8 @@ public class CqlExecutionOperationProviderTest extends BaseCrR4TestServer{
}
@Test
- void testSimpleParametersCqlExecutionProvider() {
+ void cqlExecutionProvider_testSimpleParameters() {
+ // execute inline cql date expression with input valuemv
Parameters evaluationParams = parameters(
datePart("%inputDate", "2019-11-01"));
Parameters params = parameters(
@@ -124,7 +149,8 @@ public class CqlExecutionOperationProviderTest extends BaseCrR4TestServer{
}
@Test
- void testCqlExecutionProviderExpression() {
+ void cqlExecutionProvider_testExpression() {
+ // execute cql expression from referenced library
Parameters libraryParameter = parameters(
canonicalPart("url", ourClient.getServerBase() + "/Library/SimpleR4Library"),
stringPart("name", "SimpleR4Library"));
@@ -143,9 +169,12 @@ public class CqlExecutionOperationProviderTest extends BaseCrR4TestServer{
}
@Test
- void testErrorExpression() {
+ void cqlExecutionProvider_testErrorExpression() {
+ // execute invalid cql expression
Parameters params = parameters(stringPart("expression", "Interval[1,5]"));
+
Parameters results = runCqlExecution(params);
+
assertTrue(results.hasParameter());
assertTrue(results.getParameterFirstRep().hasName());
assertEquals("evaluation error", results.getParameterFirstRep().getName());
@@ -155,4 +184,19 @@ public class CqlExecutionOperationProviderTest extends BaseCrR4TestServer{
((OperationOutcome) results.getParameterFirstRep().getResource()).getIssueFirstRep().getDetails()
.getText());
}
+
+ public Parameters runCqlExecution(Parameters parameters){
+
+ return ourClient.operation().onServer()
+ .named(ProviderConstants.CR_OPERATION_CQL)
+ .withParameters(parameters)
+ .execute();
+ }
+ public Parameters runEvaluateLibrary(Parameters parameters, String libraryId){
+
+ return ourClient.operation().onInstance("Library/" + libraryId)
+ .named(ProviderConstants.CR_OPERATION_EVALUATE)
+ .withParameters(parameters)
+ .execute();
+ }
}
diff --git a/hapi-fhir-storage-cr/src/test/java/ca/uhn/fhir/cr/r4/R4MeasureOperationProviderIT.java b/hapi-fhir-storage-cr/src/test/java/ca/uhn/fhir/cr/r4/R4MeasureOperationProviderIT.java
index d822fe1ad1a..6cca834e17f 100644
--- a/hapi-fhir-storage-cr/src/test/java/ca/uhn/fhir/cr/r4/R4MeasureOperationProviderIT.java
+++ b/hapi-fhir-storage-cr/src/test/java/ca/uhn/fhir/cr/r4/R4MeasureOperationProviderIT.java
@@ -1,5 +1,6 @@
package ca.uhn.fhir.cr.r4;
+import ca.uhn.fhir.rest.server.provider.ProviderConstants;
import org.hl7.fhir.r4.model.DateType;
import org.hl7.fhir.r4.model.IdType;
import org.hl7.fhir.r4.model.MeasureReport;
@@ -11,6 +12,7 @@ import org.junit.jupiter.api.extension.ExtendWith;
import org.springframework.test.context.junit.jupiter.SpringExtension;
+import java.util.NoSuchElementException;
import java.util.Optional;
import static org.junit.jupiter.api.Assertions.assertEquals;
@@ -30,7 +32,7 @@ class R4MeasureOperationProviderIT extends BaseCrR4TestServer {
parametersEval.addParameter("subject", subject);
var report = ourClient.operation().onInstance("Measure/" + measureId)
- .named("$evaluate-measure")
+ .named(ProviderConstants.CR_OPERATION_EVALUATE_MEASURE)
.withParameters(parametersEval)
.returnResourceType(MeasureReport.class)
.execute();
@@ -41,7 +43,7 @@ class R4MeasureOperationProviderIT extends BaseCrR4TestServer {
}
@Test
- void testMeasureEvaluate_EXM130() throws InterruptedException {
+ void testMeasureEvaluate_EXM130() {
loadBundle("ColorectalCancerScreeningsFHIR-bundle.json");
runEvaluateMeasure("2019-01-01", "2019-12-31", "Patient/numer-EXM130", "ColorectalCancerScreeningsFHIR", "Individual", null);
}
@@ -59,22 +61,13 @@ class R4MeasureOperationProviderIT extends BaseCrR4TestServer {
var returnMeasureReport = runEvaluateMeasure("2022-01-01", "2022-12-31", patientId, measureId, "Individual", null);
for (MeasureReport.MeasureReportGroupPopulationComponent population : returnMeasureReport.getGroupFirstRep()
- .getPopulation()) {
- switch (population.getCode().getCodingFirstRep().getCode()) {
- case "initial-population":
- assertEquals(initialPopulationCount, population.getCount());
- break;
- case "denominator":
- assertEquals(denominatorCount, population.getCount());
- break;
- case "denominator-exclusion":
- assertEquals(denominatorExclusionCount, population.getCount());
- break;
- case "numerator":
- assertEquals(numeratorCount, population.getCount());
- break;
- }
- }
+ .getPopulation())
+ switch (population.getCode().getCodingFirstRep().getCode()) {
+ case "initial-population" -> assertEquals(initialPopulationCount, population.getCount());
+ case "denominator" -> assertEquals(denominatorCount, population.getCount());
+ case "denominator-exclusion" -> assertEquals(denominatorExclusionCount, population.getCount());
+ case "numerator" -> assertEquals(numeratorCount, population.getCount());
+ }
Observation enrolledDuringParticipationPeriodObs = null;
Observation participationPeriodObs = null;
@@ -148,7 +141,7 @@ class R4MeasureOperationProviderIT extends BaseCrR4TestServer {
}
@Test
- void testLargeValuesetMeasure() {
+ void testLargeValuesetMeasure() throws NoSuchElementException {
this.loadBundle("largeValueSetMeasureTest-Bundle.json");
var returnMeasureReport = runEvaluateMeasure("2023-01-01", "2024-01-01", null, "CMSTest", "population", null);
@@ -160,10 +153,12 @@ class R4MeasureOperationProviderIT extends BaseCrR4TestServer {
.getPopulation().stream().filter(x -> x.hasCode() && x.getCode().hasCoding()
&& x.getCode().getCoding().get(0).getCode().equals(populationName))
.findFirst();
-
- assertEquals(population.get().getCount(), expectedCount,
- String.format("expected count for population \"%s\" did not match", populationName));
-
+ assertTrue(population.isPresent(), String.format("population \"%s\" not found in report", populationName));
+ assertEquals(
+ expectedCount,
+ population.get().getCount(),
+ String.format("expected count for population \"%s\" did not match", populationName)
+ );
}
diff --git a/hapi-fhir-storage-cr/src/test/java/ca/uhn/fhir/cr/r4/SubmitDataServiceR4Test.java b/hapi-fhir-storage-cr/src/test/java/ca/uhn/fhir/cr/r4/SubmitDataServiceR4Test.java
index a9c13bdcd79..59b0726c871 100644
--- a/hapi-fhir-storage-cr/src/test/java/ca/uhn/fhir/cr/r4/SubmitDataServiceR4Test.java
+++ b/hapi-fhir-storage-cr/src/test/java/ca/uhn/fhir/cr/r4/SubmitDataServiceR4Test.java
@@ -19,8 +19,6 @@ import org.springframework.beans.factory.annotation.Autowired;
import static org.junit.jupiter.api.Assertions.assertNotNull;
public class SubmitDataServiceR4Test extends BaseCrR4TestServer {
- @Autowired
- IRepositoryFactory myRepositoryFactory;
@Autowired
ISubmitDataProcessorFactory myR4SubmitDataProcessorFactory;
diff --git a/hapi-fhir-storage-mdm/pom.xml b/hapi-fhir-storage-mdm/pom.xml
index 6612210e842..46cd15f4a67 100644
--- a/hapi-fhir-storage-mdm/pom.xml
+++ b/hapi-fhir-storage-mdm/pom.xml
@@ -5,7 +5,7 @@
ca.uhn.hapi.fhir
hapi-deployable-pom
- 6.11.7-SNAPSHOT
+ 6.11.8-SNAPSHOT
../hapi-deployable-pom/pom.xml
diff --git a/hapi-fhir-storage-test-utilities/pom.xml b/hapi-fhir-storage-test-utilities/pom.xml
index d58ac7db8c2..a833ecf16c6 100644
--- a/hapi-fhir-storage-test-utilities/pom.xml
+++ b/hapi-fhir-storage-test-utilities/pom.xml
@@ -5,7 +5,7 @@
ca.uhn.hapi.fhir
hapi-deployable-pom
- 6.11.7-SNAPSHOT
+ 6.11.8-SNAPSHOT
../hapi-deployable-pom/pom.xml
diff --git a/hapi-fhir-storage/pom.xml b/hapi-fhir-storage/pom.xml
index c2be7451e3a..538224bd99d 100644
--- a/hapi-fhir-storage/pom.xml
+++ b/hapi-fhir-storage/pom.xml
@@ -5,7 +5,7 @@
ca.uhn.hapi.fhir
hapi-deployable-pom
- 6.11.7-SNAPSHOT
+ 6.11.8-SNAPSHOT
../hapi-deployable-pom/pom.xml
diff --git a/hapi-fhir-structures-dstu2.1/pom.xml b/hapi-fhir-structures-dstu2.1/pom.xml
index 0ca9230dac6..e9546ce0098 100644
--- a/hapi-fhir-structures-dstu2.1/pom.xml
+++ b/hapi-fhir-structures-dstu2.1/pom.xml
@@ -5,7 +5,7 @@
ca.uhn.hapi.fhir
hapi-deployable-pom
- 6.11.7-SNAPSHOT
+ 6.11.8-SNAPSHOT
../hapi-deployable-pom/pom.xml
diff --git a/hapi-fhir-structures-dstu2/pom.xml b/hapi-fhir-structures-dstu2/pom.xml
index 4532fb82ccf..57009001f92 100644
--- a/hapi-fhir-structures-dstu2/pom.xml
+++ b/hapi-fhir-structures-dstu2/pom.xml
@@ -4,7 +4,7 @@
ca.uhn.hapi.fhir
hapi-deployable-pom
- 6.11.7-SNAPSHOT
+ 6.11.8-SNAPSHOT
../hapi-deployable-pom/pom.xml
diff --git a/hapi-fhir-structures-dstu3/pom.xml b/hapi-fhir-structures-dstu3/pom.xml
index f4cfda0fd24..cd6622ac00a 100644
--- a/hapi-fhir-structures-dstu3/pom.xml
+++ b/hapi-fhir-structures-dstu3/pom.xml
@@ -5,7 +5,7 @@
ca.uhn.hapi.fhir
hapi-deployable-pom
- 6.11.7-SNAPSHOT
+ 6.11.8-SNAPSHOT
../hapi-deployable-pom/pom.xml
diff --git a/hapi-fhir-structures-hl7org-dstu2/pom.xml b/hapi-fhir-structures-hl7org-dstu2/pom.xml
index 91c113e8e84..12fa5c87f89 100644
--- a/hapi-fhir-structures-hl7org-dstu2/pom.xml
+++ b/hapi-fhir-structures-hl7org-dstu2/pom.xml
@@ -5,7 +5,7 @@
ca.uhn.hapi.fhir
hapi-deployable-pom
- 6.11.7-SNAPSHOT
+ 6.11.8-SNAPSHOT
../hapi-deployable-pom/pom.xml
diff --git a/hapi-fhir-structures-r4/pom.xml b/hapi-fhir-structures-r4/pom.xml
index f2d1ae5e412..ff864b34ad1 100644
--- a/hapi-fhir-structures-r4/pom.xml
+++ b/hapi-fhir-structures-r4/pom.xml
@@ -5,7 +5,7 @@
ca.uhn.hapi.fhir
hapi-deployable-pom
- 6.11.7-SNAPSHOT
+ 6.11.8-SNAPSHOT
../hapi-deployable-pom/pom.xml
diff --git a/hapi-fhir-structures-r4b/pom.xml b/hapi-fhir-structures-r4b/pom.xml
index 937f228073f..e463de3be1d 100644
--- a/hapi-fhir-structures-r4b/pom.xml
+++ b/hapi-fhir-structures-r4b/pom.xml
@@ -5,7 +5,7 @@
ca.uhn.hapi.fhir
hapi-deployable-pom
- 6.11.7-SNAPSHOT
+ 6.11.8-SNAPSHOT
../hapi-deployable-pom/pom.xml
diff --git a/hapi-fhir-structures-r5/pom.xml b/hapi-fhir-structures-r5/pom.xml
index 2c4111ad99a..0e9d2957b28 100644
--- a/hapi-fhir-structures-r5/pom.xml
+++ b/hapi-fhir-structures-r5/pom.xml
@@ -5,7 +5,7 @@
ca.uhn.hapi.fhir
hapi-deployable-pom
- 6.11.7-SNAPSHOT
+ 6.11.8-SNAPSHOT
../hapi-deployable-pom/pom.xml
diff --git a/hapi-fhir-test-utilities/pom.xml b/hapi-fhir-test-utilities/pom.xml
index dcbb597eae8..f76f5b9e7d2 100644
--- a/hapi-fhir-test-utilities/pom.xml
+++ b/hapi-fhir-test-utilities/pom.xml
@@ -5,7 +5,7 @@
ca.uhn.hapi.fhir
hapi-deployable-pom
- 6.11.7-SNAPSHOT
+ 6.11.8-SNAPSHOT
../hapi-deployable-pom/pom.xml
diff --git a/hapi-fhir-testpage-overlay/pom.xml b/hapi-fhir-testpage-overlay/pom.xml
index e16f86ae51f..5c7e56048d7 100644
--- a/hapi-fhir-testpage-overlay/pom.xml
+++ b/hapi-fhir-testpage-overlay/pom.xml
@@ -5,7 +5,7 @@
ca.uhn.hapi.fhir
hapi-fhir
- 6.11.7-SNAPSHOT
+ 6.11.8-SNAPSHOT
../pom.xml
diff --git a/hapi-fhir-validation-resources-dstu2.1/pom.xml b/hapi-fhir-validation-resources-dstu2.1/pom.xml
index 83a66052cab..2e306bdfb5b 100644
--- a/hapi-fhir-validation-resources-dstu2.1/pom.xml
+++ b/hapi-fhir-validation-resources-dstu2.1/pom.xml
@@ -4,7 +4,7 @@
ca.uhn.hapi.fhir
hapi-deployable-pom
- 6.11.7-SNAPSHOT
+ 6.11.8-SNAPSHOT
../hapi-deployable-pom/pom.xml
diff --git a/hapi-fhir-validation-resources-dstu2/pom.xml b/hapi-fhir-validation-resources-dstu2/pom.xml
index 8ada6af4694..b9a0b70867e 100644
--- a/hapi-fhir-validation-resources-dstu2/pom.xml
+++ b/hapi-fhir-validation-resources-dstu2/pom.xml
@@ -4,7 +4,7 @@
ca.uhn.hapi.fhir
hapi-deployable-pom
- 6.11.7-SNAPSHOT
+ 6.11.8-SNAPSHOT
../hapi-deployable-pom/pom.xml
diff --git a/hapi-fhir-validation-resources-dstu3/pom.xml b/hapi-fhir-validation-resources-dstu3/pom.xml
index c40a055b673..bbebbc250a1 100644
--- a/hapi-fhir-validation-resources-dstu3/pom.xml
+++ b/hapi-fhir-validation-resources-dstu3/pom.xml
@@ -4,7 +4,7 @@
ca.uhn.hapi.fhir
hapi-deployable-pom
- 6.11.7-SNAPSHOT
+ 6.11.8-SNAPSHOT
../hapi-deployable-pom/pom.xml
diff --git a/hapi-fhir-validation-resources-r4/pom.xml b/hapi-fhir-validation-resources-r4/pom.xml
index 09851ccaae7..89c6fd3225f 100644
--- a/hapi-fhir-validation-resources-r4/pom.xml
+++ b/hapi-fhir-validation-resources-r4/pom.xml
@@ -4,7 +4,7 @@
ca.uhn.hapi.fhir
hapi-deployable-pom
- 6.11.7-SNAPSHOT
+ 6.11.8-SNAPSHOT
../hapi-deployable-pom/pom.xml
diff --git a/hapi-fhir-validation-resources-r4b/pom.xml b/hapi-fhir-validation-resources-r4b/pom.xml
index 6f76cc68bfa..585f375bc09 100644
--- a/hapi-fhir-validation-resources-r4b/pom.xml
+++ b/hapi-fhir-validation-resources-r4b/pom.xml
@@ -4,7 +4,7 @@
ca.uhn.hapi.fhir
hapi-deployable-pom
- 6.11.7-SNAPSHOT
+ 6.11.8-SNAPSHOT
../hapi-deployable-pom/pom.xml
diff --git a/hapi-fhir-validation-resources-r5/pom.xml b/hapi-fhir-validation-resources-r5/pom.xml
index 8d2eb9d4a2a..1378d7f914e 100644
--- a/hapi-fhir-validation-resources-r5/pom.xml
+++ b/hapi-fhir-validation-resources-r5/pom.xml
@@ -4,7 +4,7 @@
ca.uhn.hapi.fhir
hapi-deployable-pom
- 6.11.7-SNAPSHOT
+ 6.11.8-SNAPSHOT
../hapi-deployable-pom/pom.xml
diff --git a/hapi-fhir-validation/pom.xml b/hapi-fhir-validation/pom.xml
index d9c0db5bf70..7f0b3f84ac8 100644
--- a/hapi-fhir-validation/pom.xml
+++ b/hapi-fhir-validation/pom.xml
@@ -5,7 +5,7 @@
ca.uhn.hapi.fhir
hapi-deployable-pom
- 6.11.7-SNAPSHOT
+ 6.11.8-SNAPSHOT
../hapi-deployable-pom/pom.xml
diff --git a/hapi-tinder-plugin/pom.xml b/hapi-tinder-plugin/pom.xml
index 9168501c763..067088ad509 100644
--- a/hapi-tinder-plugin/pom.xml
+++ b/hapi-tinder-plugin/pom.xml
@@ -5,7 +5,7 @@
ca.uhn.hapi.fhir
hapi-fhir
- 6.11.7-SNAPSHOT
+ 6.11.8-SNAPSHOT
../pom.xml
diff --git a/hapi-tinder-test/pom.xml b/hapi-tinder-test/pom.xml
index 476c18dfb17..6368bb3355d 100644
--- a/hapi-tinder-test/pom.xml
+++ b/hapi-tinder-test/pom.xml
@@ -4,7 +4,7 @@
ca.uhn.hapi.fhir
hapi-fhir
- 6.11.7-SNAPSHOT
+ 6.11.8-SNAPSHOT
../pom.xml
diff --git a/pom.xml b/pom.xml
index 9c188328297..d2786f8fec3 100644
--- a/pom.xml
+++ b/pom.xml
@@ -9,7 +9,7 @@
ca.uhn.hapi.fhir
hapi-fhir
pom
- 6.11.7-SNAPSHOT
+ 6.11.8-SNAPSHOT
HAPI-FHIR
An open-source implementation of the FHIR specification in Java.
@@ -992,7 +992,7 @@
1.0.8
- 3.0.0-PRE12
+ 3.0.0-PRE14
5.4.1
diff --git a/tests/hapi-fhir-base-test-jaxrsserver-kotlin/pom.xml b/tests/hapi-fhir-base-test-jaxrsserver-kotlin/pom.xml
index 2909352b306..96b10385a35 100644
--- a/tests/hapi-fhir-base-test-jaxrsserver-kotlin/pom.xml
+++ b/tests/hapi-fhir-base-test-jaxrsserver-kotlin/pom.xml
@@ -7,7 +7,7 @@
ca.uhn.hapi.fhir
hapi-fhir
- 6.11.7-SNAPSHOT
+ 6.11.8-SNAPSHOT
../../pom.xml
diff --git a/tests/hapi-fhir-base-test-mindeps-client/pom.xml b/tests/hapi-fhir-base-test-mindeps-client/pom.xml
index 6fa67a8ec2a..9d439c89c43 100644
--- a/tests/hapi-fhir-base-test-mindeps-client/pom.xml
+++ b/tests/hapi-fhir-base-test-mindeps-client/pom.xml
@@ -4,7 +4,7 @@
ca.uhn.hapi.fhir
hapi-fhir
- 6.11.7-SNAPSHOT
+ 6.11.8-SNAPSHOT
../../pom.xml
diff --git a/tests/hapi-fhir-base-test-mindeps-server/pom.xml b/tests/hapi-fhir-base-test-mindeps-server/pom.xml
index 55eed794a47..c6668f4dfd5 100644
--- a/tests/hapi-fhir-base-test-mindeps-server/pom.xml
+++ b/tests/hapi-fhir-base-test-mindeps-server/pom.xml
@@ -5,7 +5,7 @@
ca.uhn.hapi.fhir
hapi-fhir
- 6.11.7-SNAPSHOT
+ 6.11.8-SNAPSHOT
../../pom.xml