From 1bb6e9e6104b98192faf88e7e4ea9acce9c90dc1 Mon Sep 17 00:00:00 2001
From: Justin McKelvy <60718638+Capt-Mac@users.noreply.github.com>
Date: Mon, 18 Sep 2023 16:53:32 -0600
Subject: [PATCH] updating to latest hapi, fixing cr tests
---
pom.xml | 2 +-
.../uhn/fhir/jpa/starter/AppProperties.java | 59 +----
.../cr/CrOperationProviderFactory.java | 103 --------
.../starter/cr/CrOperationProviderLoader.java | 54 ----
.../cr/PostInitProviderRegisterer.java | 51 ----
.../jpa/starter/cr/StarterCrDstu3Config.java | 211 ++++++++--------
.../jpa/starter/cr/StarterCrR4Config.java | 239 +++++++++---------
.../fhir/jpa/starter/ExampleServerR4IT.java | 30 ++-
8 files changed, 249 insertions(+), 500 deletions(-)
delete mode 100644 src/main/java/ca/uhn/fhir/jpa/starter/cr/CrOperationProviderFactory.java
delete mode 100644 src/main/java/ca/uhn/fhir/jpa/starter/cr/CrOperationProviderLoader.java
delete mode 100644 src/main/java/ca/uhn/fhir/jpa/starter/cr/PostInitProviderRegisterer.java
diff --git a/pom.xml b/pom.xml
index ce13948..e38c38c 100644
--- a/pom.xml
+++ b/pom.xml
@@ -14,7 +14,7 @@
ca.uhn.hapi.fhir
hapi-fhir
- 6.7.14-SNAPSHOT
+ 6.9.6-SNAPSHOT
hapi-fhir-jpaserver-starter
diff --git a/src/main/java/ca/uhn/fhir/jpa/starter/AppProperties.java b/src/main/java/ca/uhn/fhir/jpa/starter/AppProperties.java
index 1880b0e..22696a9 100644
--- a/src/main/java/ca/uhn/fhir/jpa/starter/AppProperties.java
+++ b/src/main/java/ca/uhn/fhir/jpa/starter/AppProperties.java
@@ -6,14 +6,12 @@ import java.util.List;
import java.util.Map;
import java.util.Objects;
-import ca.uhn.fhir.cr.config.CrProperties;
+
import org.cqframework.cql.cql2elm.CqlCompilerException;
import org.cqframework.cql.cql2elm.CqlTranslator;
import org.cqframework.cql.cql2elm.CqlTranslatorOptions;
import org.cqframework.cql.cql2elm.LibraryBuilder;
import org.hl7.fhir.r4.model.Bundle;
-import org.opencds.cqf.cql.evaluator.CqlOptions;
-import org.opencds.cqf.cql.evaluator.engine.CqlEngineOptions;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.annotation.Configuration;
@@ -30,7 +28,6 @@ import ca.uhn.fhir.rest.api.EncodingEnum;
@EnableConfigurationProperties
public class AppProperties {
//cql settings
- private CqlEngineOptions cqlEngineOptions = CqlEngineOptions.defaultOptions();
private Boolean cql_use_embedded_libraries = true;
private Boolean cql_runtime_debug_logging_enabled = false;
private Boolean cql_runtime_enable_validation = false;
@@ -385,50 +382,6 @@ public class AppProperties {
this.cql_compiler_translator_format = cqlTranslatorFormat;
}
- private CqlTranslatorOptions cqlTranslatorOptions = new CqlTranslatorOptions(
- getCqlTranslatorFormat(),
- cql_compiler_enable_date_range_optimization,
- cql_compiler_enable_annotations,
- cql_compiler_enable_locators,
- cql_compiler_enable_results_type,
- isCqlCompilerVerifyOnly(),
- cql_compiler_enable_detailed_errors,
- getCqlCompilerErrorSeverityLevel(),
- cql_compiler_disable_list_traversal,
- cql_compiler_disable_list_demotion,
- cql_compiler_disable_list_promotion,
- cql_compiler_enable_interval_demotion,
- cql_compiler_enable_interval_promotion,
- cql_compiler_disable_method_invocation,
- cql_compiler_require_from_keyword,
- isCqlCompilerValidateUnits(),
- cql_compiler_disable_default_model_info_load,
- getCqlCompilerSignatureLevel(),
- getCqlCompilerCompatibilityLevel());
-
- public CqlTranslatorOptions getCqlTranslatorOptions() {
- return this.cqlTranslatorOptions;
- }
-
- public void setCqlTranslator(CqlTranslatorOptions translator) {
- this.cqlTranslatorOptions = translator;
- }
-
- public CqlEngineOptions getCqlEngineOptions() {
- return this.cqlEngineOptions;
- }
-
- public void setCqlEngineOptions(CqlEngineOptions engine) {
- this.cqlEngineOptions = engine;
- }
-
- public CqlOptions getCqlOptions() {
- CqlOptions cqlOptions = new CqlOptions();
- cqlOptions.setUseEmbeddedLibraries(this.cql_use_embedded_libraries);
- cqlOptions.setCqlEngineOptions(this.getCqlEngineOptions());
- cqlOptions.setCqlTranslatorOptions(this.getCqlTranslatorOptions());
- return cqlOptions;
- }
public Boolean getCr_enabled() {
return cr_enabled;
@@ -448,16 +401,6 @@ public class AppProperties {
public void setCareGapsReporter(String theCareGapsReporter) {
this.caregaps_reporter = theCareGapsReporter;
}
- public CrProperties.MeasureProperties getMeasureProperties(){
- var measureProperties = new CrProperties.MeasureProperties();
- var measureReportConfiguration = new CrProperties.MeasureProperties.MeasureReportConfiguration();
- measureReportConfiguration.setCareGapsReporter(this.getCareGapsReporter());
- measureReportConfiguration.setCareGapsCompositionSectionAuthor(this.getCareGapsSectionAuthor());
-
- measureProperties.setMeasureReportConfiguration(measureReportConfiguration);
-
- return measureProperties;
- }
public Boolean getIps_enabled() {
return ips_enabled;
}
diff --git a/src/main/java/ca/uhn/fhir/jpa/starter/cr/CrOperationProviderFactory.java b/src/main/java/ca/uhn/fhir/jpa/starter/cr/CrOperationProviderFactory.java
deleted file mode 100644
index 4b75fe2..0000000
--- a/src/main/java/ca/uhn/fhir/jpa/starter/cr/CrOperationProviderFactory.java
+++ /dev/null
@@ -1,103 +0,0 @@
-package ca.uhn.fhir.jpa.starter.cr;
-
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.context.ApplicationContext;
-
-import ca.uhn.fhir.context.ConfigurationException;
-import ca.uhn.fhir.context.FhirContext;
-import ca.uhn.fhir.cr.r4.measure.CareGapsOperationProvider;
-import ca.uhn.fhir.cr.r4.measure.SubmitDataProvider;
-import ca.uhn.fhir.cr.dstu3.activitydefinition.ActivityDefinitionOperationsProvider;
-import ca.uhn.fhir.cr.dstu3.measure.MeasureOperationsProvider;
-import ca.uhn.fhir.cr.dstu3.plandefinition.PlanDefinitionOperationsProvider;
-import ca.uhn.fhir.cr.dstu3.questionnaire.QuestionnaireOperationsProvider;
-import ca.uhn.fhir.cr.dstu3.questionnaireresponse.QuestionnaireResponseOperationsProvider;
-
-public class CrOperationProviderFactory {
- @Autowired
- private FhirContext myFhirContext;
-
- @Autowired
- private ApplicationContext myApplicationContext;
-
- public Object getMeasureOperationsProvider() {
- switch (myFhirContext.getVersion().getVersion()) {
- case DSTU3:
- return myApplicationContext.getBean(MeasureOperationsProvider.class);
- case R4:
- return myApplicationContext.getBean(ca.uhn.fhir.cr.r4.measure.MeasureOperationsProvider.class);
- default:
- throw new ConfigurationException("Measure operations are not supported for FHIR version "
- + myFhirContext.getVersion().getVersion());
- }
- }
-
- public Object getActivityDefinitionProvider() {
- switch (myFhirContext.getVersion().getVersion()) {
- case DSTU3:
- return myApplicationContext.getBean(ActivityDefinitionOperationsProvider.class);
- case R4:
- return myApplicationContext
- .getBean(ca.uhn.fhir.cr.r4.activitydefinition.ActivityDefinitionOperationsProvider.class);
- default:
- throw new ConfigurationException("ActivityDefinition operations are not supported for FHIR version "
- + myFhirContext.getVersion().getVersion());
- }
- }
-
- public Object getPlanDefinitionProvider() {
- switch (myFhirContext.getVersion().getVersion()) {
- case DSTU3:
- return myApplicationContext.getBean(PlanDefinitionOperationsProvider.class);
- case R4:
- return myApplicationContext
- .getBean(ca.uhn.fhir.cr.r4.plandefinition.PlanDefinitionOperationsProvider.class);
- default:
- throw new ConfigurationException("PlanDefinition operations are not supported for FHIR version "
- + myFhirContext.getVersion().getVersion());
- }
- }
-
- public Object getCareGapsProvider() {
- switch (myFhirContext.getVersion().getVersion()) {
- case R4:
- return myApplicationContext.getBean(CareGapsOperationProvider.class);
- default:
- throw new ConfigurationException("PlanDefinition operations are not supported for FHIR version "
- + myFhirContext.getVersion().getVersion());
- }
- }
- public Object getSubmitDataProvider() {
- switch (myFhirContext.getVersion().getVersion()) {
- case R4:
- return myApplicationContext.getBean(SubmitDataProvider.class);
- default:
- throw new ConfigurationException("PlanDefinition operations are not supported for FHIR version "
- + myFhirContext.getVersion().getVersion());
- }
- }
- public Object getQuestionnaireResponseOperationProvider() {
- switch (myFhirContext.getVersion().getVersion()) {
- case DSTU3:
- return myApplicationContext.getBean(QuestionnaireResponseOperationsProvider.class);
- case R4:
- return myApplicationContext
- .getBean(ca.uhn.fhir.cr.r4.questionnaireresponse.QuestionnaireResponseOperationsProvider.class);
- default:
- throw new ConfigurationException("PlanDefinition operations are not supported for FHIR version "
- + myFhirContext.getVersion().getVersion());
- }
- }
- public Object getQuestionnaireOperationProvider() {
- switch (myFhirContext.getVersion().getVersion()) {
- case DSTU3:
- return myApplicationContext.getBean(QuestionnaireOperationsProvider.class);
- case R4:
- return myApplicationContext
- .getBean(ca.uhn.fhir.cr.r4.questionnaire.QuestionnaireOperationsProvider.class);
- default:
- throw new ConfigurationException("PlanDefinition operations are not supported for FHIR version "
- + myFhirContext.getVersion().getVersion());
- }
- }
-}
\ No newline at end of file
diff --git a/src/main/java/ca/uhn/fhir/jpa/starter/cr/CrOperationProviderLoader.java b/src/main/java/ca/uhn/fhir/jpa/starter/cr/CrOperationProviderLoader.java
deleted file mode 100644
index 4cc568d..0000000
--- a/src/main/java/ca/uhn/fhir/jpa/starter/cr/CrOperationProviderLoader.java
+++ /dev/null
@@ -1,54 +0,0 @@
-package ca.uhn.fhir.jpa.starter.cr;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.context.event.ContextRefreshedEvent;
-import org.springframework.context.event.EventListener;
-
-import ca.uhn.fhir.context.ConfigurationException;
-import ca.uhn.fhir.context.FhirContext;
-import ca.uhn.fhir.rest.server.provider.ResourceProviderFactory;
-
-public class CrOperationProviderLoader {
- private static final Logger myLogger = LoggerFactory.getLogger(CrOperationProviderLoader.class);
- private final FhirContext myFhirContext;
- private final ResourceProviderFactory myResourceProviderFactory;
- private final CrOperationProviderFactory myCrProviderFactory;
-
- private final PostInitProviderRegisterer myPostInitProviderRegister;
-
- public CrOperationProviderLoader(FhirContext theFhirContext, ResourceProviderFactory theResourceProviderFactory,
- CrOperationProviderFactory theCrProviderFactory, PostInitProviderRegisterer thePostInitProviderRegister) {
- myFhirContext = theFhirContext;
- myResourceProviderFactory = theResourceProviderFactory;
- myCrProviderFactory = theCrProviderFactory;
- myPostInitProviderRegister = thePostInitProviderRegister;
- loadProvider();
- }
-
- public void loadProvider() {
- switch (myFhirContext.getVersion().getVersion()) {
- case DSTU3:
- myLogger.info("Registering DSTU3 Clinical Reasoning Providers");
- myResourceProviderFactory.addSupplier(myCrProviderFactory::getMeasureOperationsProvider);
- myResourceProviderFactory.addSupplier(myCrProviderFactory::getActivityDefinitionProvider);
- myResourceProviderFactory.addSupplier(myCrProviderFactory::getPlanDefinitionProvider);
- myResourceProviderFactory.addSupplier(myCrProviderFactory::getQuestionnaireResponseOperationProvider);
- myResourceProviderFactory.addSupplier(myCrProviderFactory::getQuestionnaireOperationProvider);
- break;
- case R4:
- myLogger.info("Registering R4 Clinical Reasoning Providers");
- myResourceProviderFactory.addSupplier(myCrProviderFactory::getMeasureOperationsProvider);
- myResourceProviderFactory.addSupplier(myCrProviderFactory::getActivityDefinitionProvider);
- myResourceProviderFactory.addSupplier(myCrProviderFactory::getPlanDefinitionProvider);
- myResourceProviderFactory.addSupplier(myCrProviderFactory::getCareGapsProvider);
- myResourceProviderFactory.addSupplier(myCrProviderFactory::getSubmitDataProvider);
- myResourceProviderFactory.addSupplier(myCrProviderFactory::getQuestionnaireResponseOperationProvider);
- myResourceProviderFactory.addSupplier(myCrProviderFactory::getQuestionnaireOperationProvider);
- break;
- default:
- throw new ConfigurationException("Clinical Reasoning not supported for FHIR version "
- + myFhirContext.getVersion().getVersion());
- }
- }
-}
diff --git a/src/main/java/ca/uhn/fhir/jpa/starter/cr/PostInitProviderRegisterer.java b/src/main/java/ca/uhn/fhir/jpa/starter/cr/PostInitProviderRegisterer.java
deleted file mode 100644
index 55e7e8f..0000000
--- a/src/main/java/ca/uhn/fhir/jpa/starter/cr/PostInitProviderRegisterer.java
+++ /dev/null
@@ -1,51 +0,0 @@
-package ca.uhn.fhir.jpa.starter.cr;
-
-import java.util.function.Supplier;
-
-import ca.uhn.fhir.rest.server.RestfulServer;
-import ca.uhn.fhir.rest.server.provider.IResourceProviderFactoryObserver;
-import ca.uhn.fhir.rest.server.provider.ResourceProviderFactory;
-
-public class PostInitProviderRegisterer {
- public PostInitProviderRegisterer(RestfulServer restfulServer,
- ResourceProviderFactory resourceProviderFactory) {
- resourceProviderFactory.attach(new Observer(restfulServer));
- }
-
- private class Observer implements IResourceProviderFactoryObserver {
- private RestfulServer restfulServer;
-
- public Observer(RestfulServer restfulServer) {
- this.restfulServer = restfulServer;
- }
-
- public void update(Supplier