diff --git a/hapi-fhir-docs/src/main/resources/ca/uhn/hapi/fhir/changelog/6_6_0/4821-update-clinical-reasoning-version.yaml b/hapi-fhir-docs/src/main/resources/ca/uhn/hapi/fhir/changelog/6_6_0/4821-update-clinical-reasoning-version.yaml new file mode 100644 index 000000000000..343e93af7495 --- /dev/null +++ b/hapi-fhir-docs/src/main/resources/ca/uhn/hapi/fhir/changelog/6_6_0/4821-update-clinical-reasoning-version.yaml @@ -0,0 +1,4 @@ +--- +type: add +issue: 4821 +title: "Update the clinical reasoning module version to the latest release of 3.0.0-PRE2" diff --git a/hapi-fhir-storage-cr/src/main/java/ca/uhn/fhir/cr/config/BaseClinicalReasoningConfig.java b/hapi-fhir-storage-cr/src/main/java/ca/uhn/fhir/cr/config/BaseClinicalReasoningConfig.java index 811a73864279..ffc3a8725edc 100644 --- a/hapi-fhir-storage-cr/src/main/java/ca/uhn/fhir/cr/config/BaseClinicalReasoningConfig.java +++ b/hapi-fhir-storage-cr/src/main/java/ca/uhn/fhir/cr/config/BaseClinicalReasoningConfig.java @@ -33,25 +33,20 @@ import ca.uhn.fhir.cr.common.IDataProviderFactory; import ca.uhn.fhir.cr.common.IFhirDalFactory; import ca.uhn.fhir.cr.common.ILibraryLoaderFactory; -import ca.uhn.fhir.cr.common.ILibraryManagerFactory; import ca.uhn.fhir.cr.common.ILibrarySourceProviderFactory; import ca.uhn.fhir.cr.common.ITerminologyProviderFactory; import ca.uhn.fhir.i18n.Msg; import ca.uhn.fhir.jpa.api.dao.DaoRegistry; -import ca.uhn.fhir.jpa.api.dao.IFhirResourceDaoValueSet; import ca.uhn.fhir.jpa.cache.IResourceChangeListenerRegistry; import ca.uhn.fhir.jpa.searchparam.SearchParameterMap; import ca.uhn.fhir.rest.server.provider.ResourceProviderFactory; import org.cqframework.cql.cql2elm.CqlTranslatorOptions; -import org.cqframework.cql.cql2elm.LibraryManager; -import org.cqframework.cql.cql2elm.LibrarySourceProvider; import org.cqframework.cql.cql2elm.ModelManager; import org.cqframework.cql.cql2elm.model.Model; import org.cqframework.cql.cql2elm.quick.FhirLibrarySourceProvider; import org.hl7.cql.model.ModelIdentifier; import org.hl7.fhir.common.hapi.validation.support.ValidationSupportChain; import org.hl7.fhir.instance.model.api.IBaseBundle; -import org.hl7.fhir.instance.model.api.IBaseResource; import org.opencds.cqf.cql.engine.data.CompositeDataProvider; import org.opencds.cqf.cql.engine.fhir.model.Dstu3FhirModelResolver; import org.opencds.cqf.cql.engine.fhir.model.R4FhirModelResolver; @@ -61,7 +56,6 @@ import org.opencds.cqf.cql.evaluator.CqlOptions; import org.opencds.cqf.cql.evaluator.builder.DataProviderComponents; import org.opencds.cqf.cql.evaluator.builder.EndpointInfo; -import org.opencds.cqf.cql.evaluator.cql2elm.model.CacheAwareModelManager; import org.opencds.cqf.cql.evaluator.cql2elm.util.LibraryVersionSelector; import org.opencds.cqf.cql.evaluator.engine.execution.CacheAwareLibraryLoaderDecorator; import org.opencds.cqf.cql.evaluator.engine.execution.TranslatingLibraryLoader; @@ -69,6 +63,7 @@ import org.opencds.cqf.cql.evaluator.engine.retrieve.BundleRetrieveProvider; import org.opencds.cqf.cql.evaluator.fhir.Constants; import org.opencds.cqf.cql.evaluator.fhir.adapter.AdapterFactory; +import org.opencds.cqf.cql.evaluator.library.EvaluationSettings; import org.opencds.cqf.cql.evaluator.measure.MeasureEvaluationOptions; import org.opencds.cqf.cql.evaluator.spring.fhir.adapter.AdapterConfiguration; import org.slf4j.Logger; @@ -87,13 +82,22 @@ import java.util.concurrent.Executor; import java.util.concurrent.ForkJoinPool; -@Import(AdapterConfiguration.class) + @Configuration -public abstract class BaseClinicalReasoningConfig extends BaseRepositoryConfig { +@Import({AdapterConfiguration.class, BaseRepositoryConfig.class}) +public abstract class BaseClinicalReasoningConfig { private static final Logger ourLogger = LoggerFactory.getLogger(BaseClinicalReasoningConfig.class); + @Bean + EvaluationSettings evaluationSettings(CqlOptions theCqlOptions, Map theGlobalModelCache, Map theGlobalLibraryCache) { + var evaluationSettings = new EvaluationSettings(); + evaluationSettings.setCqlOptions(theCqlOptions); + evaluationSettings.setModelCache(theGlobalModelCache); + evaluationSettings.setLibraryCache(theGlobalLibraryCache); + return evaluationSettings; + } @Bean CrProviderFactory cqlProviderFactory() { return new CrProviderFactory(); @@ -153,7 +157,7 @@ public CqlTranslatorOptions cqlTranslatorOptions(FhirContext theFhirContext, CrP @Scope("prototype") public ModelManager modelManager( Map theGlobalModelCache) { - return new CacheAwareModelManager(theGlobalModelCache); + return new ModelManager(theGlobalModelCache); } @Bean @@ -229,15 +233,7 @@ ILibraryLoaderFactory libraryLoaderFactory( lcp.add(new FhirLibrarySourceProvider()); } - return new CacheAwareLibraryLoaderDecorator( - new TranslatingLibraryLoader(theModelManager, lcp, theCqlTranslatorOptions, null), theGlobalLibraryCache) { - // TODO: This is due to a bug with the ELM annotations which prevent options - // from matching the way they should - @Override - protected Boolean translatorOptionsMatch(org.cqframework.cql.elm.execution.Library library) { - return true; - } - }; + return new TranslatingLibraryLoader(theModelManager, lcp, theCqlTranslatorOptions, theGlobalLibraryCache); }; } @@ -296,7 +292,7 @@ public LibraryVersionSelector libraryVersionSelector(AdapterFactory theAdapterFa return new LibraryVersionSelector(theAdapterFactory); } - @Bean(name = "cqlExecutor") + @Bean public Executor cqlExecutor() { CqlForkJoinWorkerThreadFactory factory = new CqlForkJoinWorkerThreadFactory(); ForkJoinPool myCommonPool = new ForkJoinPool(Math.min(32767, Runtime.getRuntime().availableProcessors()), diff --git a/hapi-fhir-storage-cr/src/main/java/ca/uhn/fhir/cr/config/BaseRepositoryConfig.java b/hapi-fhir-storage-cr/src/main/java/ca/uhn/fhir/cr/config/BaseRepositoryConfig.java index 55bb7bc9020e..4b64e3ef6963 100644 --- a/hapi-fhir-storage-cr/src/main/java/ca/uhn/fhir/cr/config/BaseRepositoryConfig.java +++ b/hapi-fhir-storage-cr/src/main/java/ca/uhn/fhir/cr/config/BaseRepositoryConfig.java @@ -28,7 +28,6 @@ import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Import; -@Import(AdapterConfiguration.class) @Configuration public abstract class BaseRepositoryConfig { @Bean diff --git a/hapi-fhir-storage-cr/src/main/java/ca/uhn/fhir/cr/config/CrDstu3Config.java b/hapi-fhir-storage-cr/src/main/java/ca/uhn/fhir/cr/config/CrDstu3Config.java index b9429fb17b3f..7847014dff76 100644 --- a/hapi-fhir-storage-cr/src/main/java/ca/uhn/fhir/cr/config/CrDstu3Config.java +++ b/hapi-fhir-storage-cr/src/main/java/ca/uhn/fhir/cr/config/CrDstu3Config.java @@ -25,12 +25,14 @@ import org.springframework.context.ApplicationContext; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.Import; import org.springframework.context.annotation.Scope; import java.util.function.Function; @Configuration -public class CrDstu3Config extends BaseClinicalReasoningConfig { +@Import(BaseClinicalReasoningConfig.class) +public class CrDstu3Config { @Bean public Function dstu3MeasureServiceFactory(ApplicationContext theApplicationContext) { diff --git a/hapi-fhir-storage-cr/src/main/java/ca/uhn/fhir/cr/config/CrR4Config.java b/hapi-fhir-storage-cr/src/main/java/ca/uhn/fhir/cr/config/CrR4Config.java index 0f7c1c259790..7c7aee0f540c 100644 --- a/hapi-fhir-storage-cr/src/main/java/ca/uhn/fhir/cr/config/CrR4Config.java +++ b/hapi-fhir-storage-cr/src/main/java/ca/uhn/fhir/cr/config/CrR4Config.java @@ -31,12 +31,15 @@ import org.springframework.context.ApplicationContext; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.Import; import org.springframework.context.annotation.Scope; +import java.util.concurrent.Executor; import java.util.function.Function; @Configuration -public class CrR4Config extends BaseClinicalReasoningConfig { +@Import(BaseClinicalReasoningConfig.class) +public class CrR4Config { @Bean public Function r4MeasureServiceFactory(ApplicationContext theApplicationContext) { @@ -61,10 +64,10 @@ public MeasureOperationsProvider r4measureOperationsProvider() { @Bean public Function r4CareGapsServiceFactory(Function theR4MeasureServiceFactory, CrProperties theCrProperties, - DaoRegistry theDaoRegistry) { + DaoRegistry theDaoRegistry, Executor cqlExecutor) { return r -> { var ms = theR4MeasureServiceFactory.apply(r); - var cs = new CareGapsService(theCrProperties, ms, theDaoRegistry, cqlExecutor(), r); + var cs = new CareGapsService(theCrProperties, ms, theDaoRegistry, cqlExecutor, r); return cs; }; } diff --git a/hapi-fhir-storage-cr/src/test/java/ca/uhn/fhir/cr/dstu3/TestCrDstu3Config.java b/hapi-fhir-storage-cr/src/test/java/ca/uhn/fhir/cr/dstu3/TestCrDstu3Config.java index ee89e5965a63..eb7dc00e8bf5 100644 --- a/hapi-fhir-storage-cr/src/test/java/ca/uhn/fhir/cr/dstu3/TestCrDstu3Config.java +++ b/hapi-fhir-storage-cr/src/test/java/ca/uhn/fhir/cr/dstu3/TestCrDstu3Config.java @@ -1,75 +1,16 @@ package ca.uhn.fhir.cr.dstu3; -import ca.uhn.fhir.context.FhirContext; -import ca.uhn.fhir.context.support.IValidationSupport; import ca.uhn.fhir.cr.TestCrConfig; -import ca.uhn.fhir.cr.common.CodeCacheResourceChangeListener; -import ca.uhn.fhir.cr.common.CqlExceptionHandlingInterceptor; -import ca.uhn.fhir.cr.common.CqlForkJoinWorkerThreadFactory; -import ca.uhn.fhir.cr.common.ElmCacheResourceChangeListener; -import ca.uhn.fhir.cr.common.HapiFhirDal; -import ca.uhn.fhir.cr.common.HapiFhirRetrieveProvider; -import ca.uhn.fhir.cr.common.HapiLibrarySourceProvider; -import ca.uhn.fhir.cr.common.HapiTerminologyProvider; -import ca.uhn.fhir.cr.common.IDataProviderFactory; -import ca.uhn.fhir.cr.common.IFhirDalFactory; -import ca.uhn.fhir.cr.common.ILibraryLoaderFactory; -import ca.uhn.fhir.cr.common.ILibraryManagerFactory; -import ca.uhn.fhir.cr.common.ILibrarySourceProviderFactory; -import ca.uhn.fhir.cr.common.ITerminologyProviderFactory; -import ca.uhn.fhir.cr.config.CrProperties; -import ca.uhn.fhir.cr.config.CrProviderFactory; -import ca.uhn.fhir.cr.config.CrProviderLoader; -import ca.uhn.fhir.cr.config.PreExpandedValidationSupportLoader; import ca.uhn.fhir.cr.dstu3.measure.MeasureOperationsProvider; import ca.uhn.fhir.cr.dstu3.measure.MeasureService; -import ca.uhn.fhir.i18n.Msg; -import ca.uhn.fhir.jpa.api.dao.DaoRegistry; -import ca.uhn.fhir.jpa.cache.IResourceChangeListenerRegistry; -import ca.uhn.fhir.jpa.searchparam.SearchParameterMap; import ca.uhn.fhir.rest.api.server.RequestDetails; -import ca.uhn.fhir.rest.server.provider.ResourceProviderFactory; import org.cqframework.cql.cql2elm.CqlTranslatorOptions; -import org.cqframework.cql.cql2elm.LibraryManager; -import org.cqframework.cql.cql2elm.LibrarySourceProvider; -import org.cqframework.cql.cql2elm.ModelManager; -import org.cqframework.cql.cql2elm.model.Model; -import org.cqframework.cql.cql2elm.quick.FhirLibrarySourceProvider; -import org.hl7.cql.model.ModelIdentifier; -import org.hl7.fhir.common.hapi.validation.support.ValidationSupportChain; -import org.hl7.fhir.instance.model.api.IBaseBundle; -import org.opencds.cqf.cql.engine.data.CompositeDataProvider; -import org.opencds.cqf.cql.engine.fhir.model.Dstu3FhirModelResolver; -import org.opencds.cqf.cql.engine.fhir.model.R4FhirModelResolver; -import org.opencds.cqf.cql.engine.fhir.searchparam.SearchParameterResolver; -import org.opencds.cqf.cql.engine.model.ModelResolver; -import org.opencds.cqf.cql.engine.runtime.Code; -import org.opencds.cqf.cql.evaluator.CqlOptions; -import org.opencds.cqf.cql.evaluator.builder.DataProviderComponents; -import org.opencds.cqf.cql.evaluator.builder.EndpointInfo; -import org.opencds.cqf.cql.evaluator.cql2elm.model.CacheAwareModelManager; -import org.opencds.cqf.cql.evaluator.cql2elm.util.LibraryVersionSelector; -import org.opencds.cqf.cql.evaluator.engine.execution.CacheAwareLibraryLoaderDecorator; -import org.opencds.cqf.cql.evaluator.engine.execution.TranslatingLibraryLoader; -import org.opencds.cqf.cql.evaluator.engine.model.CachingModelResolverDecorator; -import org.opencds.cqf.cql.evaluator.engine.retrieve.BundleRetrieveProvider; -import org.opencds.cqf.cql.evaluator.fhir.Constants; -import org.opencds.cqf.cql.evaluator.fhir.adapter.AdapterFactory; -import org.opencds.cqf.cql.evaluator.measure.MeasureEvaluationOptions; import org.springframework.context.ApplicationContext; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Import; -import org.springframework.context.annotation.Primary; import org.springframework.context.annotation.Scope; -import org.springframework.security.concurrent.DelegatingSecurityContextExecutor; -import org.springframework.security.core.context.SecurityContextHolder; -import java.util.List; -import java.util.Map; -import java.util.concurrent.ConcurrentHashMap; -import java.util.concurrent.Executor; -import java.util.concurrent.ForkJoinPool; import java.util.function.Function; @Configuration @@ -84,235 +25,27 @@ public Function dstu3MeasureServiceFactory(Appli }; } - @Bean - @Scope("prototype") - public MeasureService dstu3measureService() { - return new MeasureService(); - } - - @Bean - public MeasureOperationsProvider dstu3measureOperationsProvider() { - return new MeasureOperationsProvider(); - } - - @Bean - CrProviderFactory cqlProviderFactory() { - return new CrProviderFactory(); - } - - @Bean - CrProviderLoader cqlProviderLoader(FhirContext theFhirContext, ResourceProviderFactory theResourceProviderFactory, CrProviderFactory theCqlProviderFactory) { - return new CrProviderLoader(theFhirContext, theResourceProviderFactory, theCqlProviderFactory); - } - - @Bean - public CrProperties crProperties() { - var cqlProperties = new CrProperties.CqlProperties(); - var translatorOptions = cqlProperties.getCqlTranslatorOptions(); - translatorOptions.setCompatibilityLevel("1.3"); - cqlProperties.setCqlTranslatorOptions(translatorOptions); - var properties = new CrProperties(); - properties.setCqlProperties(cqlProperties); - - return properties; - } - - @Bean - public CrProperties.CqlProperties cqlProperties(CrProperties theCrProperties) { - return theCrProperties.getCqlProperties(); - } - - @Bean - public CrProperties.MeasureProperties measureProperties(CrProperties theCrProperties) { - return theCrProperties.getMeasureProperties(); + static class CqlTranslatorOptionsHelper { + void setCqlCompatibilityLevelTo13(CqlTranslatorOptions theCqlTranslatorOptions) { + theCqlTranslatorOptions.setCompatibilityLevel("1.3"); + } } @Bean - public MeasureEvaluationOptions measureEvaluationOptions(CrProperties theCrProperties) { - return theCrProperties.getMeasureProperties().getMeasureEvaluationOptions(); + CqlTranslatorOptionsHelper setTranslatorOptionsForTest(CqlTranslatorOptions theCqlTranslatorOptions) { + var helper = new CqlTranslatorOptionsHelper(); + helper.setCqlCompatibilityLevelTo13(theCqlTranslatorOptions); + return helper; } @Bean - public CqlOptions cqlOptions(CrProperties theCrProperties) { - return theCrProperties.getCqlProperties().getCqlOptions(); - } - - @Bean - public CqlExceptionHandlingInterceptor cqlExceptionHandlingInterceptor() { - return new CqlExceptionHandlingInterceptor(); - } - - @Bean - public CqlTranslatorOptions cqlTranslatorOptions(FhirContext theFhirContext, CrProperties.CqlProperties theCqlProperties) { - CqlTranslatorOptions options = theCqlProperties.getCqlOptions().getCqlTranslatorOptions(); - - return options; - } - - @Bean - public ModelManager modelManager( - Map theGlobalModelCache) { - return new CacheAwareModelManager(theGlobalModelCache); - } - - @Bean - public ILibraryManagerFactory libraryManagerFactory( - ModelManager theModelManager) { - return (providers) -> { - LibraryManager libraryManager = new LibraryManager(theModelManager); - for (LibrarySourceProvider provider : providers) { - libraryManager.getLibrarySourceLoader().registerProvider(provider); - } - return libraryManager; - }; - } - - @Bean - public SearchParameterResolver searchParameterResolver(FhirContext theFhirContext) { - return new SearchParameterResolver(theFhirContext); - } - - @Bean - IFhirDalFactory fhirDalFactory(DaoRegistry theDaoRegistry) { - return rd -> new HapiFhirDal(theDaoRegistry, rd); - } - - @Bean - IDataProviderFactory dataProviderFactory(ModelResolver theModelResolver, DaoRegistry theDaoRegistry, - SearchParameterResolver theSearchParameterResolver) { - return (rd, t) -> { - HapiFhirRetrieveProvider provider = new HapiFhirRetrieveProvider(theDaoRegistry, theSearchParameterResolver, rd); - if (t != null) { - provider.setTerminologyProvider(t); - provider.setExpandValueSets(true); - provider.setMaxCodesPerQuery(500); - provider.setModelResolver(theModelResolver); - } - return new CompositeDataProvider(theModelResolver, provider); - }; - } - - @Bean - org.opencds.cqf.cql.evaluator.builder.DataProviderFactory builderDataProviderFactory(FhirContext theFhirContext, ModelResolver theModelResolver) { - return new org.opencds.cqf.cql.evaluator.builder.DataProviderFactory() { - @Override - public DataProviderComponents create(EndpointInfo theEndpointInfo) { - // to do implement endpoint - return null; - } - - @Override - public DataProviderComponents create(IBaseBundle theDataBundle) { - return new DataProviderComponents(Constants.FHIR_MODEL_URI, theModelResolver, - new BundleRetrieveProvider(theFhirContext, theDataBundle)); - } - }; - - } - - @Bean - public HapiFhirRetrieveProvider fhirRetrieveProvider(DaoRegistry theDaoRegistry, - SearchParameterResolver theSearchParameterResolver) { - return new HapiFhirRetrieveProvider(theDaoRegistry, theSearchParameterResolver); - } - - @Bean - public ITerminologyProviderFactory terminologyProviderFactory( - IValidationSupport theValidationSupport, - Map> theGlobalCodeCache) { - return rd -> new HapiTerminologyProvider(theValidationSupport, theGlobalCodeCache, - rd); - } - - @Bean - ILibrarySourceProviderFactory librarySourceProviderFactory(DaoRegistry theDaoRegistry) { - return rd -> new HapiLibrarySourceProvider(theDaoRegistry, rd); - } - - @Bean - ILibraryLoaderFactory libraryLoaderFactory( - Map theGlobalLibraryCache, - ModelManager theModelManager, CqlTranslatorOptions theCqlTranslatorOptions, CrProperties.CqlProperties theCqlProperties) { - return lcp -> { - - if (theCqlProperties.getCqlOptions().useEmbeddedLibraries()) { - lcp.add(new FhirLibrarySourceProvider()); - } - - return new CacheAwareLibraryLoaderDecorator( - new TranslatingLibraryLoader(theModelManager, lcp, theCqlTranslatorOptions, null), theGlobalLibraryCache) { - // TODO: This is due to a bug with the ELM annotations which prevent options - // from matching the way they should - @Override - protected Boolean translatorOptionsMatch(org.cqframework.cql.elm.execution.Library library) { - return true; - } - }; - }; - } - - // TODO: Use something like caffeine caching for this so that growth is limited. - @Bean - public Map globalLibraryCache() { - return new ConcurrentHashMap<>(); - } - - @Bean - public Map> globalCodeCache() { - return new ConcurrentHashMap<>(); - } - - @Bean - public Map globalModelCache() { - return new ConcurrentHashMap<>(); - } - - @Bean - @Primary - public ElmCacheResourceChangeListener elmCacheResourceChangeListener( - IResourceChangeListenerRegistry theResourceChangeListenerRegistry, DaoRegistry theDaoRegistry, - Map theGlobalLibraryCache) { - ElmCacheResourceChangeListener listener = new ElmCacheResourceChangeListener(theDaoRegistry, theGlobalLibraryCache); - theResourceChangeListenerRegistry.registerResourceResourceChangeListener("Library", - SearchParameterMap.newSynchronous(), listener, 1000); - return listener; - } - - @Bean - @Primary - public CodeCacheResourceChangeListener codeCacheResourceChangeListener( - IResourceChangeListenerRegistry theResourceChangeListenerRegistry, DaoRegistry theDaoRegistry, - Map> theGlobalCodeCache) { - CodeCacheResourceChangeListener listener = new CodeCacheResourceChangeListener(theDaoRegistry, theGlobalCodeCache); - theResourceChangeListenerRegistry.registerResourceResourceChangeListener("ValueSet", - SearchParameterMap.newSynchronous(), listener, 1000); - return listener; - } - - @Bean - public ModelResolver modelResolver(FhirContext theFhirContext) { - return new CachingModelResolverDecorator(new Dstu3FhirModelResolver()); - } - - @Bean - public LibraryVersionSelector libraryVersionSelector(AdapterFactory theAdapterFactory) { - return new LibraryVersionSelector(theAdapterFactory); - } - - @Bean(name = "cqlExecutor") - public Executor cqlExecutor() { - CqlForkJoinWorkerThreadFactory factory = new CqlForkJoinWorkerThreadFactory(); - ForkJoinPool myCommonPool = new ForkJoinPool(Math.min(32767, Runtime.getRuntime().availableProcessors()), - factory, - null, false); - - return new DelegatingSecurityContextExecutor(myCommonPool, - SecurityContextHolder.getContext()); + @Scope("prototype") + public MeasureService dstu3measureService() { + return new MeasureService(); } @Bean - public PreExpandedValidationSupportLoader preExpandedValidationSupportLoader(ValidationSupportChain theSupportChain, - FhirContext theFhirContext) { - return new PreExpandedValidationSupportLoader(theSupportChain, theFhirContext); + public MeasureOperationsProvider dstu3measureOperationsProvider() { + return new MeasureOperationsProvider(); } } diff --git a/hapi-fhir-storage-cr/src/test/java/ca/uhn/fhir/cr/r4/TestCrR4Config.java b/hapi-fhir-storage-cr/src/test/java/ca/uhn/fhir/cr/r4/TestCrR4Config.java index 3472522e2928..4ffd447de1f2 100644 --- a/hapi-fhir-storage-cr/src/test/java/ca/uhn/fhir/cr/r4/TestCrR4Config.java +++ b/hapi-fhir-storage-cr/src/test/java/ca/uhn/fhir/cr/r4/TestCrR4Config.java @@ -10,6 +10,7 @@ import ca.uhn.fhir.cr.r4.questionnaire.QuestionnaireOperationsProvider; import ca.uhn.fhir.cr.r4.questionnaireresponse.QuestionnaireResponseOperationsProvider; import org.opencds.cqf.cql.evaluator.activitydefinition.r4.ActivityDefinitionProcessor; +import org.opencds.cqf.cql.evaluator.library.EvaluationSettings; import org.opencds.cqf.cql.evaluator.plandefinition.r4.PlanDefinitionProcessor; import org.opencds.cqf.cql.evaluator.questionnaire.r4.QuestionnaireProcessor; import org.opencds.cqf.cql.evaluator.questionnaireresponse.r4.QuestionnaireResponseProcessor; @@ -20,10 +21,9 @@ @Configuration @Import(TestCrConfig.class) public class TestCrR4Config { - @Bean - IActivityDefinitionProcessorFactory r4ActivityDefinitionProcessorFactory() { - return r -> new ActivityDefinitionProcessor(r); + IActivityDefinitionProcessorFactory r4ActivityDefinitionProcessorFactory(EvaluationSettings theEvaluationSettings) { + return r -> new ActivityDefinitionProcessor(r, theEvaluationSettings); } @Bean @@ -32,8 +32,8 @@ public ActivityDefinitionOperationsProvider r4ActivityDefinitionOperationsProvid } @Bean - IPlanDefinitionProcessorFactory r4PlanDefinitionProcessorFactory() { - return r -> new PlanDefinitionProcessor(r); + IPlanDefinitionProcessorFactory r4PlanDefinitionProcessorFactory(EvaluationSettings theEvaluationSettings) { + return r -> new PlanDefinitionProcessor(r, theEvaluationSettings); } @Bean diff --git a/pom.xml b/pom.xml index 2fc71ffdc246..3ea56cdb3ddc 100644 --- a/pom.xml +++ b/pom.xml @@ -962,7 +962,7 @@ 1.28.4 - 3.0.0-SNAPSHOT + 3.0.0-PRE2 5.4.1