Search in sources :

Example 1 with DaoConfig

use of ca.uhn.fhir.jpa.api.config.DaoConfig in project fhir-bridge by ehrbase.

the class HapiFhirJpaConfiguration method daoConfig.

@Bean
public DaoConfig daoConfig(HapiFhirJpaProperties properties) {
    DaoConfig config = new DaoConfig();
    config.setAllowInlineMatchUrlReferences(properties.isAllowInlineMatchUrlReferences());
    config.setReuseCachedSearchResultsForMillis(null);
    config.setResourceServerIdStrategy(DaoConfig.IdStrategyEnum.UUID);
    return config;
}
Also used : DaoConfig(ca.uhn.fhir.jpa.api.config.DaoConfig) Bean(org.springframework.context.annotation.Bean)

Example 2 with DaoConfig

use of ca.uhn.fhir.jpa.api.config.DaoConfig in project hapi-fhir-jpaserver-starter by hapifhir.

the class FhirServerConfigCommon method daoConfig.

/**
 * Configure FHIR properties around the the JPA server via this bean
 */
@Bean
public DaoConfig daoConfig(AppProperties appProperties) {
    DaoConfig retVal = new DaoConfig();
    retVal.setIndexMissingFields(appProperties.getEnable_index_missing_fields() ? DaoConfig.IndexEnabledEnum.ENABLED : DaoConfig.IndexEnabledEnum.DISABLED);
    retVal.setAutoCreatePlaceholderReferenceTargets(appProperties.getAuto_create_placeholder_reference_targets());
    retVal.setEnforceReferentialIntegrityOnWrite(appProperties.getEnforce_referential_integrity_on_write());
    retVal.setEnforceReferentialIntegrityOnDelete(appProperties.getEnforce_referential_integrity_on_delete());
    retVal.setAllowContainsSearches(appProperties.getAllow_contains_searches());
    retVal.setAllowMultipleDelete(appProperties.getAllow_multiple_delete());
    retVal.setAllowExternalReferences(appProperties.getAllow_external_references());
    retVal.setSchedulingDisabled(!appProperties.getDao_scheduling_enabled());
    retVal.setDeleteExpungeEnabled(appProperties.getDelete_expunge_enabled());
    retVal.setExpungeEnabled(appProperties.getExpunge_enabled());
    if (appProperties.getSubscription() != null && appProperties.getSubscription().getEmail() != null)
        retVal.setEmailFromAddress(appProperties.getSubscription().getEmail().getFrom());
    Integer maxFetchSize = appProperties.getMax_page_size();
    retVal.setFetchSizeDefaultMaximum(maxFetchSize);
    ourLog.info("Server configured to have a maximum fetch size of " + (maxFetchSize == Integer.MAX_VALUE ? "'unlimited'" : maxFetchSize));
    Long reuseCachedSearchResultsMillis = appProperties.getReuse_cached_search_results_millis();
    retVal.setReuseCachedSearchResultsForMillis(reuseCachedSearchResultsMillis);
    ourLog.info("Server configured to cache search results for {} milliseconds", reuseCachedSearchResultsMillis);
    Long retainCachedSearchesMinutes = appProperties.getRetain_cached_searches_mins();
    retVal.setExpireSearchResultsAfterMillis(retainCachedSearchesMinutes * 60 * 1000);
    if (appProperties.getSubscription() != null) {
        // Subscriptions are enabled by channel type
        if (appProperties.getSubscription().getResthook_enabled()) {
            ourLog.info("Enabling REST-hook subscriptions");
            retVal.addSupportedSubscriptionType(org.hl7.fhir.dstu2.model.Subscription.SubscriptionChannelType.RESTHOOK);
        }
        if (appProperties.getSubscription().getEmail() != null) {
            ourLog.info("Enabling email subscriptions");
            retVal.addSupportedSubscriptionType(org.hl7.fhir.dstu2.model.Subscription.SubscriptionChannelType.EMAIL);
        }
        if (appProperties.getSubscription().getWebsocket_enabled()) {
            ourLog.info("Enabling websocket subscriptions");
            retVal.addSupportedSubscriptionType(org.hl7.fhir.dstu2.model.Subscription.SubscriptionChannelType.WEBSOCKET);
        }
    }
    retVal.setFilterParameterEnabled(appProperties.getFilter_search_enabled());
    retVal.setAdvancedLuceneIndexing(appProperties.getAdvanced_lucene_indexing());
    retVal.setTreatBaseUrlsAsLocal(new HashSet<>(appProperties.getLocal_base_urls()));
    return retVal;
}
Also used : DaoConfig(ca.uhn.fhir.jpa.api.config.DaoConfig) Bean(org.springframework.context.annotation.Bean) LocalContainerEntityManagerFactoryBean(org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean)

Example 3 with DaoConfig

use of ca.uhn.fhir.jpa.api.config.DaoConfig in project cqf-ruler by DBCG.

the class Server method initialize.

@Override
@SuppressWarnings({ "rawtypes", "unchecked" })
protected void initialize() throws ServletException {
    super.initialize();
    log.info("Loading metadata extenders from plugins");
    Map<String, MetadataExtender> extenders = myApplicationContext.getBeansOfType(MetadataExtender.class);
    for (MetadataExtender o : extenders.values()) {
        log.info("Found {} extender", o.getClass().getName());
    }
    FhirVersionEnum fhirVersion = fhirSystemDao.getContext().getVersion().getVersion();
    String implementationDescription = myServerProperties.getImplementation_description();
    if (fhirVersion == FhirVersionEnum.DSTU2) {
        List<MetadataExtender<Conformance>> extenderList = extenders.values().stream().map(x -> (MetadataExtender<Conformance>) x).collect(Collectors.toList());
        ExtensibleJpaConformanceProviderDstu2 confProvider = new ExtensibleJpaConformanceProviderDstu2(this, fhirSystemDao, daoConfig, extenderList);
        confProvider.setImplementationDescription(firstNonNull(implementationDescription, "CQF RULER DSTU2 Server"));
        setServerConformanceProvider(confProvider);
    } else {
        if (fhirVersion == FhirVersionEnum.DSTU3) {
            List<MetadataExtender<CapabilityStatement>> extenderList = extenders.values().stream().map(x -> (MetadataExtender<CapabilityStatement>) x).collect(Collectors.toList());
            ExtensibleJpaConformanceProviderDstu3 confProvider = new ExtensibleJpaConformanceProviderDstu3(this, fhirSystemDao, daoConfig, searchParamRegistry, extenderList);
            confProvider.setImplementationDescription(firstNonNull(implementationDescription, "CQF RULER DSTU3 Server"));
            setServerConformanceProvider(confProvider);
        } else if (fhirVersion == FhirVersionEnum.R4) {
            List<MetadataExtender<IBaseConformance>> extenderList = extenders.values().stream().map(x -> (MetadataExtender<IBaseConformance>) x).collect(Collectors.toList());
            ExtensibleJpaCapabilityStatementProvider confProvider = new ExtensibleJpaCapabilityStatementProvider(this, fhirSystemDao, daoConfig, searchParamRegistry, myValidationSupport, extenderList);
            confProvider.setImplementationDescription(firstNonNull(implementationDescription, "CQF RULER R4 Server"));
            setServerConformanceProvider(confProvider);
        } else if (fhirVersion == FhirVersionEnum.R5) {
            List<MetadataExtender<IBaseConformance>> extenderList = extenders.values().stream().map(x -> (MetadataExtender<IBaseConformance>) x).collect(Collectors.toList());
            ExtensibleJpaCapabilityStatementProvider confProvider = new ExtensibleJpaCapabilityStatementProvider(this, fhirSystemDao, daoConfig, searchParamRegistry, myValidationSupport, extenderList);
            confProvider.setImplementationDescription(firstNonNull(implementationDescription, "CQF RULER R5 Server"));
            setServerConformanceProvider(confProvider);
        } else {
            throw new IllegalStateException();
        }
    }
    log.info("Loading operation providers from plugins");
    Map<String, OperationProvider> providers = myApplicationContext.getBeansOfType(OperationProvider.class);
    for (OperationProvider o : providers.values()) {
        log.info("Registering {}", o.getClass().getName());
        this.registerProvider(o);
    }
    log.info("Loading interceptors from plugins");
    Map<String, Interceptor> interceptors = myApplicationContext.getBeansOfType(Interceptor.class);
    for (Interceptor o : interceptors.values()) {
        log.info("Registering {} interceptor", o.getClass().getName());
        this.registerInterceptor(o);
    }
}
Also used : ExtensibleJpaConformanceProviderDstu2(org.opencds.cqf.ruler.capability.ExtensibleJpaConformanceProviderDstu2) DaoConfig(ca.uhn.fhir.jpa.api.config.DaoConfig) ExtensibleJpaConformanceProviderDstu3(org.opencds.cqf.ruler.capability.ExtensibleJpaConformanceProviderDstu3) IValidationSupport(ca.uhn.fhir.context.support.IValidationSupport) ServletException(javax.servlet.ServletException) LoggerFactory(org.slf4j.LoggerFactory) Autowired(org.springframework.beans.factory.annotation.Autowired) Interceptor(org.opencds.cqf.ruler.api.Interceptor) OperationProvider(org.opencds.cqf.ruler.api.OperationProvider) BaseJpaRestfulServer(org.opencds.cqf.ruler.external.BaseJpaRestfulServer) ISearchParamRegistry(ca.uhn.fhir.rest.server.util.ISearchParamRegistry) FhirVersionEnum(ca.uhn.fhir.context.FhirVersionEnum) Map(java.util.Map) Conformance(ca.uhn.fhir.model.dstu2.resource.Conformance) ServerProperties(org.opencds.cqf.ruler.config.ServerProperties) Logger(org.slf4j.Logger) IBaseConformance(org.hl7.fhir.instance.model.api.IBaseConformance) AppProperties(org.opencds.cqf.ruler.external.AppProperties) Collectors(java.util.stream.Collectors) ApplicationContext(org.springframework.context.ApplicationContext) List(java.util.List) CapabilityStatement(org.hl7.fhir.dstu3.model.CapabilityStatement) IFhirSystemDao(ca.uhn.fhir.jpa.api.dao.IFhirSystemDao) MetadataExtender(org.opencds.cqf.ruler.api.MetadataExtender) MoreObjects.firstNonNull(com.google.common.base.MoreObjects.firstNonNull) ExtensibleJpaCapabilityStatementProvider(org.opencds.cqf.ruler.capability.ExtensibleJpaCapabilityStatementProvider) FhirVersionEnum(ca.uhn.fhir.context.FhirVersionEnum) ExtensibleJpaConformanceProviderDstu3(org.opencds.cqf.ruler.capability.ExtensibleJpaConformanceProviderDstu3) ExtensibleJpaConformanceProviderDstu2(org.opencds.cqf.ruler.capability.ExtensibleJpaConformanceProviderDstu2) ExtensibleJpaCapabilityStatementProvider(org.opencds.cqf.ruler.capability.ExtensibleJpaCapabilityStatementProvider) OperationProvider(org.opencds.cqf.ruler.api.OperationProvider) List(java.util.List) IBaseConformance(org.hl7.fhir.instance.model.api.IBaseConformance) Interceptor(org.opencds.cqf.ruler.api.Interceptor) MetadataExtender(org.opencds.cqf.ruler.api.MetadataExtender)

Aggregations

DaoConfig (ca.uhn.fhir.jpa.api.config.DaoConfig)3 Bean (org.springframework.context.annotation.Bean)2 FhirVersionEnum (ca.uhn.fhir.context.FhirVersionEnum)1 IValidationSupport (ca.uhn.fhir.context.support.IValidationSupport)1 IFhirSystemDao (ca.uhn.fhir.jpa.api.dao.IFhirSystemDao)1 Conformance (ca.uhn.fhir.model.dstu2.resource.Conformance)1 ISearchParamRegistry (ca.uhn.fhir.rest.server.util.ISearchParamRegistry)1 MoreObjects.firstNonNull (com.google.common.base.MoreObjects.firstNonNull)1 List (java.util.List)1 Map (java.util.Map)1 Collectors (java.util.stream.Collectors)1 ServletException (javax.servlet.ServletException)1 CapabilityStatement (org.hl7.fhir.dstu3.model.CapabilityStatement)1 IBaseConformance (org.hl7.fhir.instance.model.api.IBaseConformance)1 Interceptor (org.opencds.cqf.ruler.api.Interceptor)1 MetadataExtender (org.opencds.cqf.ruler.api.MetadataExtender)1 OperationProvider (org.opencds.cqf.ruler.api.OperationProvider)1 ExtensibleJpaCapabilityStatementProvider (org.opencds.cqf.ruler.capability.ExtensibleJpaCapabilityStatementProvider)1 ExtensibleJpaConformanceProviderDstu2 (org.opencds.cqf.ruler.capability.ExtensibleJpaConformanceProviderDstu2)1 ExtensibleJpaConformanceProviderDstu3 (org.opencds.cqf.ruler.capability.ExtensibleJpaConformanceProviderDstu3)1