Search in sources :

Example 1 with Interceptor

use of org.opencds.cqf.ruler.api.Interceptor 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

FhirVersionEnum (ca.uhn.fhir.context.FhirVersionEnum)1 IValidationSupport (ca.uhn.fhir.context.support.IValidationSupport)1 DaoConfig (ca.uhn.fhir.jpa.api.config.DaoConfig)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 ServerProperties (org.opencds.cqf.ruler.config.ServerProperties)1