add cqlconfigbeans
This commit is contained in:
@@ -427,7 +427,7 @@ public class AppProperties {
|
||||
getCqlCompilerSignatureLevel(),
|
||||
getCqlCompilerCompatibilityLevel()
|
||||
);
|
||||
public CqlTranslatorOptions getCqlTranslator() {
|
||||
public CqlTranslatorOptions getCqlTranslatorOptions() {
|
||||
return this.cqlTranslatorOptions;
|
||||
}
|
||||
|
||||
@@ -446,7 +446,7 @@ public class AppProperties {
|
||||
CqlOptions cqlOptions = new CqlOptions();
|
||||
cqlOptions.setUseEmbeddedLibraries(this.cql_use_embedded_libraries);
|
||||
cqlOptions.setCqlEngineOptions(this.getCqlEngineOptions());
|
||||
cqlOptions.setCqlTranslatorOptions(this.getCqlTranslator());
|
||||
cqlOptions.setCqlTranslatorOptions(this.getCqlTranslatorOptions());
|
||||
return cqlOptions;
|
||||
}
|
||||
|
||||
|
||||
@@ -17,6 +17,7 @@ import ca.uhn.fhir.rest.server.mail.MailSvc;
|
||||
import ca.uhn.fhir.rest.server.provider.ResourceProviderFactory;
|
||||
|
||||
import com.google.common.base.Strings;
|
||||
import org.cqframework.cql.cql2elm.CqlTranslatorOptions;
|
||||
import org.hl7.fhir.r4.model.Bundle.BundleType;
|
||||
import org.springframework.beans.factory.FactoryBean;
|
||||
import org.springframework.boot.env.YamlPropertySourceLoader;
|
||||
@@ -255,4 +256,6 @@ public class FhirServerConfigCommon {
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
package ca.uhn.fhir.jpa.starter.cr;
|
||||
|
||||
import ca.uhn.fhir.context.FhirContext;
|
||||
import ca.uhn.fhir.cr.common.IRepositoryFactory;
|
||||
import ca.uhn.fhir.context.FhirVersionEnum;
|
||||
import ca.uhn.fhir.cr.config.CrDstu3Config;
|
||||
import ca.uhn.fhir.cr.dstu3.IActivityDefinitionProcessorFactory;
|
||||
import ca.uhn.fhir.cr.dstu3.IPlanDefinitionProcessorFactory;
|
||||
@@ -11,26 +11,26 @@ import ca.uhn.fhir.cr.dstu3.activitydefinition.ActivityDefinitionOperationsProvi
|
||||
import ca.uhn.fhir.cr.dstu3.plandefinition.PlanDefinitionOperationsProvider;
|
||||
import ca.uhn.fhir.cr.dstu3.questionnaire.QuestionnaireOperationsProvider;
|
||||
import ca.uhn.fhir.cr.dstu3.questionnaireresponse.QuestionnaireResponseOperationsProvider;
|
||||
import ca.uhn.fhir.cr.repo.HapiFhirRepository;
|
||||
import ca.uhn.fhir.jpa.api.dao.DaoRegistry;
|
||||
import ca.uhn.fhir.jpa.starter.AppProperties;
|
||||
import ca.uhn.fhir.jpa.starter.annotations.OnDSTU3Condition;
|
||||
import ca.uhn.fhir.rest.server.RestfulServer;
|
||||
import ca.uhn.fhir.rest.server.provider.ResourceProviderFactory;
|
||||
import org.cqframework.cql.cql2elm.CqlTranslatorOptions;
|
||||
import org.opencds.cqf.cql.evaluator.CqlOptions;
|
||||
import org.opencds.cqf.cql.evaluator.activitydefinition.dstu3.ActivityDefinitionProcessor;
|
||||
import org.opencds.cqf.cql.evaluator.library.EvaluationSettings;
|
||||
import org.opencds.cqf.cql.evaluator.plandefinition.dstu3.PlanDefinitionProcessor;
|
||||
import org.opencds.cqf.cql.evaluator.questionnaire.dstu3.QuestionnaireProcessor;
|
||||
import org.opencds.cqf.cql.evaluator.questionnaireresponse.dstu3.QuestionnaireResponseProcessor;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Conditional;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.context.annotation.Import;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.context.annotation.*;
|
||||
|
||||
@Configuration
|
||||
@Conditional({ OnDSTU3Condition.class, CrConfigCondition.class })
|
||||
@Import({ CrDstu3Config.class })
|
||||
public class StarterCrDstu3Config {
|
||||
|
||||
private static final Logger ourLogger = LoggerFactory.getLogger(StarterCrDstu3Config.class);
|
||||
@Bean
|
||||
public PostInitProviderRegisterer postInitProviderRegisterer(RestfulServer theRestfulServer,
|
||||
ResourceProviderFactory theResourceProviderFactory) {
|
||||
@@ -93,4 +93,25 @@ public class StarterCrDstu3Config {
|
||||
EvaluationSettings theEvaluationSettings) {
|
||||
return r -> new PlanDefinitionProcessor(r, theEvaluationSettings);
|
||||
}
|
||||
@Primary
|
||||
@Bean
|
||||
public CqlOptions cqlOptions(AppProperties theAppProperties) {
|
||||
return theAppProperties.getCqlOptions();
|
||||
}
|
||||
|
||||
@Primary
|
||||
@Bean
|
||||
public CqlTranslatorOptions cqlTranslatorOptions(FhirContext theFhirContext, AppProperties theAppProperties) {
|
||||
CqlTranslatorOptions options = theAppProperties.getCqlTranslatorOptions();
|
||||
|
||||
if (theFhirContext.getVersion().getVersion().isOlderThan(FhirVersionEnum.R4)
|
||||
&& (options.getCompatibilityLevel().equals("1.5") || options.getCompatibilityLevel().equals("1.4"))) {
|
||||
ourLogger.warn("{} {} {}",
|
||||
"This server is configured to use CQL version > 1.4 and FHIR version <= DSTU3.",
|
||||
"Most available CQL content for DSTU3 and below is for CQL versions 1.3.",
|
||||
"If your CQL content causes translation errors, try setting the CQL compatibility level to 1.3");
|
||||
}
|
||||
|
||||
return options;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,7 +2,8 @@ package ca.uhn.fhir.jpa.starter.cr;
|
||||
|
||||
import ca.uhn.fhir.IHapiBootOrder;
|
||||
import ca.uhn.fhir.context.FhirContext;
|
||||
import ca.uhn.fhir.cr.common.IRepositoryFactory;
|
||||
import ca.uhn.fhir.context.FhirVersionEnum;
|
||||
|
||||
import ca.uhn.fhir.cr.config.CrR4Config;
|
||||
import ca.uhn.fhir.cr.r4.IActivityDefinitionProcessorFactory;
|
||||
import ca.uhn.fhir.cr.r4.IPlanDefinitionProcessorFactory;
|
||||
@@ -12,26 +13,26 @@ import ca.uhn.fhir.cr.r4.activitydefinition.ActivityDefinitionOperationsProvider
|
||||
import ca.uhn.fhir.cr.r4.plandefinition.PlanDefinitionOperationsProvider;
|
||||
import ca.uhn.fhir.cr.r4.questionnaire.QuestionnaireOperationsProvider;
|
||||
import ca.uhn.fhir.cr.r4.questionnaireresponse.QuestionnaireResponseOperationsProvider;
|
||||
import ca.uhn.fhir.cr.repo.HapiFhirRepository;
|
||||
import ca.uhn.fhir.jpa.api.dao.DaoRegistry;
|
||||
import ca.uhn.fhir.jpa.starter.AppProperties;
|
||||
import ca.uhn.fhir.jpa.starter.annotations.OnR4Condition;
|
||||
import ca.uhn.fhir.rest.server.RestfulServer;
|
||||
import ca.uhn.fhir.rest.server.provider.ResourceProviderFactory;
|
||||
import org.cqframework.cql.cql2elm.CqlTranslatorOptions;
|
||||
import org.opencds.cqf.cql.evaluator.CqlOptions;
|
||||
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;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Conditional;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.context.annotation.Import;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.context.annotation.*;
|
||||
|
||||
@Configuration
|
||||
@Conditional({ OnR4Condition.class, CrConfigCondition.class })
|
||||
@Import({ CrR4Config.class })
|
||||
public class StarterCrR4Config {
|
||||
|
||||
private static final Logger ourLogger = LoggerFactory.getLogger(StarterCrR4Config.class);
|
||||
@Bean
|
||||
public PostInitProviderRegisterer postInitProviderRegisterer(RestfulServer theRestfulServer,
|
||||
ResourceProviderFactory theResourceProviderFactory) {
|
||||
@@ -94,4 +95,27 @@ public class StarterCrR4Config {
|
||||
EvaluationSettings theEvaluationSettings) {
|
||||
return r -> new PlanDefinitionProcessor(r, theEvaluationSettings);
|
||||
}
|
||||
|
||||
@Primary
|
||||
@Bean
|
||||
public CqlOptions cqlOptions(AppProperties theAppProperties) {
|
||||
return theAppProperties.getCqlOptions();
|
||||
}
|
||||
|
||||
@Primary
|
||||
@Bean
|
||||
public CqlTranslatorOptions cqlTranslatorOptions(FhirContext theFhirContext, AppProperties theAppProperties) {
|
||||
CqlTranslatorOptions options = theAppProperties.getCqlTranslatorOptions();
|
||||
|
||||
if (theFhirContext.getVersion().getVersion().isOlderThan(FhirVersionEnum.R4)
|
||||
&& (options.getCompatibilityLevel().equals("1.5") || options.getCompatibilityLevel().equals("1.4"))) {
|
||||
ourLogger.warn("{} {} {}",
|
||||
"This server is configured to use CQL version > 1.4 and FHIR version <= DSTU3.",
|
||||
"Most available CQL content for DSTU3 and below is for CQL versions 1.3.",
|
||||
"If your CQL content causes translation errors, try setting the CQL compatibility level to 1.3");
|
||||
}
|
||||
|
||||
return options;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user