getAllowed_origin() {
return allowed_origin;
@@ -856,36 +871,6 @@ public void setRefuse_to_fetch_third_party_urls(Boolean refuse_to_fetch_third_pa
}
}
- public static class ImplementationGuide
- {
- private String url;
- private String name;
- private String version;
-
- public String getUrl() {
- return url;
- }
-
- public void setUrl(String url) {
- this.url = url;
- }
-
- public String getName() {
- return name;
- }
-
- public void setName(String name) {
- this.name = name;
- }
-
- public String getVersion() {
- return version;
- }
-
- public void setVersion(String version) {
- this.version = version;
- }
- }
public static class Validation {
diff --git a/src/main/java/ca/uhn/fhir/jpa/starter/ExtraStaticFilesConfigurer.java b/src/main/java/ca/uhn/fhir/jpa/starter/ExtraStaticFilesConfigurer.java
index d875ec6a5d6..a3b528c0bda 100644
--- a/src/main/java/ca/uhn/fhir/jpa/starter/ExtraStaticFilesConfigurer.java
+++ b/src/main/java/ca/uhn/fhir/jpa/starter/ExtraStaticFilesConfigurer.java
@@ -1,6 +1,5 @@
package ca.uhn.fhir.jpa.starter;
-import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.Ordered;
@@ -14,25 +13,37 @@
@ConditionalOnProperty(prefix = "hapi.fhir", name = "staticLocation")
public class ExtraStaticFilesConfigurer implements WebMvcConfigurer {
- public static final String ROOT_CONTEXT_PATH = "/static";
- @Autowired
- AppProperties appProperties;
+ private String staticLocation;
+ private String rootContextPath;
- @Override
+ public ExtraStaticFilesConfigurer(AppProperties appProperties) {
+
+ rootContextPath = appProperties.getStaticLocationPrefix();
+ if(rootContextPath.endsWith("/"))
+ rootContextPath = rootContextPath.substring(0, rootContextPath.lastIndexOf('/'));
+
+ staticLocation = appProperties.getStaticLocation();
+ if(staticLocation.endsWith("/"))
+ staticLocation = staticLocation.substring(0, staticLocation.lastIndexOf('/'));
+
+ }
+
+
+ @Override
public void addResourceHandlers(ResourceHandlerRegistry theRegistry) {
- theRegistry.addResourceHandler(ROOT_CONTEXT_PATH + "/**").addResourceLocations(appProperties.getStaticLocation());
+ theRegistry.addResourceHandler(rootContextPath + "/**").addResourceLocations(staticLocation);
}
@Override
public void addViewControllers(ViewControllerRegistry registry) {
- String path = URI.create(appProperties.getStaticLocation()).getPath();
+ String path = URI.create(staticLocation).getPath();
String lastSegment = path.substring(path.lastIndexOf('/') + 1);
- registry.addViewController(ROOT_CONTEXT_PATH).setViewName("redirect:" + ROOT_CONTEXT_PATH + "/" + lastSegment + "/index.html");
+ registry.addViewController(rootContextPath).setViewName("redirect:" + rootContextPath + "/" + lastSegment + "/index.html");
- registry.addViewController(ROOT_CONTEXT_PATH + "/*").setViewName("redirect:" + ROOT_CONTEXT_PATH + "/" + lastSegment + "/index.html");
+ registry.addViewController(rootContextPath + "/*").setViewName("redirect:" + rootContextPath + "/" + lastSegment + "/index.html");
- registry.addViewController(ROOT_CONTEXT_PATH + "/" + lastSegment + "/").setViewName("redirect:" + ROOT_CONTEXT_PATH + "/" + lastSegment + "/index.html");
+ registry.addViewController(rootContextPath + "/" + lastSegment + "/").setViewName("redirect:" + rootContextPath + "/" + lastSegment + "/index.html");
registry.setOrder(Ordered.HIGHEST_PRECEDENCE);
}
diff --git a/src/main/java/ca/uhn/fhir/jpa/starter/common/FhirServerConfigCommon.java b/src/main/java/ca/uhn/fhir/jpa/starter/common/FhirServerConfigCommon.java
index 38df9ec0c4b..648147cd20c 100644
--- a/src/main/java/ca/uhn/fhir/jpa/starter/common/FhirServerConfigCommon.java
+++ b/src/main/java/ca/uhn/fhir/jpa/starter/common/FhirServerConfigCommon.java
@@ -9,7 +9,6 @@
import ca.uhn.fhir.jpa.model.entity.StorageSettings;
import ca.uhn.fhir.jpa.starter.AppProperties;
import ca.uhn.fhir.jpa.starter.util.JpaHibernatePropertiesProvider;
-import ca.uhn.fhir.jpa.subscription.channel.subscription.SubscriptionDeliveryHandlerFactory;
import ca.uhn.fhir.jpa.subscription.match.deliver.email.EmailSenderImpl;
import ca.uhn.fhir.jpa.subscription.match.deliver.email.IEmailSender;
import ca.uhn.fhir.rest.server.mail.IMailSvc;
@@ -26,8 +25,6 @@
import org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean;
import org.springframework.transaction.annotation.EnableTransactionManagement;
-import java.util.HashSet;
-import java.util.Optional;
import java.util.stream.Collectors;
/**
@@ -49,6 +46,7 @@ public FhirServerConfigCommon(AppProperties appProperties) {
ourLog.info("Server configured to " + (appProperties.getExpunge_enabled() ? "enable" : "disable") + " expunges");
ourLog.info("Server configured to " + (appProperties.getAllow_override_default_search_params() ? "allow" : "deny") + " overriding default search params");
ourLog.info("Server configured to " + (appProperties.getAuto_create_placeholder_reference_targets() ? "allow" : "disable") + " auto-creating placeholder references");
+ ourLog.info("Server configured to auto-version references at paths {}", appProperties.getAuto_version_reference_at_paths());
if (appProperties.getSubscription().getEmail() != null) {
AppProperties.Subscription.Email email = appProperties.getSubscription().getEmail();
@@ -86,8 +84,9 @@ public FhirServerConfigCommon(AppProperties appProperties) {
public JpaStorageSettings jpaStorageSettings(AppProperties appProperties) {
JpaStorageSettings jpaStorageSettings = new JpaStorageSettings();
- jpaStorageSettings.setIndexMissingFields(appProperties.getEnable_index_missing_fields() ? JpaStorageSettings.IndexEnabledEnum.ENABLED : JpaStorageSettings.IndexEnabledEnum.DISABLED);
+ jpaStorageSettings.setIndexMissingFields(appProperties.getEnable_index_missing_fields() ? StorageSettings.IndexEnabledEnum.ENABLED : StorageSettings.IndexEnabledEnum.DISABLED);
jpaStorageSettings.setAutoCreatePlaceholderReferenceTargets(appProperties.getAuto_create_placeholder_reference_targets());
+ jpaStorageSettings.setAutoVersionReferenceAtPaths(appProperties.getAuto_version_reference_at_paths());
jpaStorageSettings.setEnforceReferentialIntegrityOnWrite(appProperties.getEnforce_referential_integrity_on_write());
jpaStorageSettings.setEnforceReferentialIntegrityOnDelete(appProperties.getEnforce_referential_integrity_on_delete());
jpaStorageSettings.setAllowContainsSearches(appProperties.getAllow_contains_searches());
@@ -128,10 +127,10 @@ public JpaStorageSettings jpaStorageSettings(AppProperties appProperties) {
}
jpaStorageSettings.setFilterParameterEnabled(appProperties.getFilter_search_enabled());
- jpaStorageSettings.setAdvancedHSearchIndexing(appProperties.getAdvanced_lucene_indexing());
- jpaStorageSettings.setTreatBaseUrlsAsLocal(new HashSet<>(appProperties.getLocal_base_urls()));
+ jpaStorageSettings.setAdvancedHSearchIndexing(appProperties.getAdvanced_lucene_indexing());
+ jpaStorageSettings.setTreatBaseUrlsAsLocal(appProperties.getLocal_base_urls());
- if (appProperties.getLastn_enabled()) {
+ if (appProperties.getLastn_enabled()) {
jpaStorageSettings.setLastNEnabled(true);
}
diff --git a/src/main/java/ca/uhn/fhir/jpa/starter/common/FhirTesterConfig.java b/src/main/java/ca/uhn/fhir/jpa/starter/common/FhirTesterConfig.java
index cb28659d52c..c8c89251278 100644
--- a/src/main/java/ca/uhn/fhir/jpa/starter/common/FhirTesterConfig.java
+++ b/src/main/java/ca/uhn/fhir/jpa/starter/common/FhirTesterConfig.java
@@ -4,6 +4,7 @@
import ca.uhn.fhir.to.FhirTesterMvcConfig;
import ca.uhn.fhir.to.TesterConfig;
import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Conditional;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
@@ -18,6 +19,7 @@
*/
@Configuration
@Import(FhirTesterMvcConfig.class)
+@Conditional(FhirTesterConfigCondition.class)
public class FhirTesterConfig {
/**
@@ -26,7 +28,7 @@ public class FhirTesterConfig {
* server, as well as one public server. If you are creating a project to
* deploy somewhere else, you might choose to only put your own server's
* address here.
- *
+ *
* Note the use of the ${serverBase} variable below. This will be replaced with
* the base URL as reported by the server itself. Often for a simple Tomcat
* (or other container) installation, this will end up being something
diff --git a/src/main/java/ca/uhn/fhir/jpa/starter/common/FhirTesterConfigCondition.java b/src/main/java/ca/uhn/fhir/jpa/starter/common/FhirTesterConfigCondition.java
new file mode 100644
index 00000000000..f5670d9c528
--- /dev/null
+++ b/src/main/java/ca/uhn/fhir/jpa/starter/common/FhirTesterConfigCondition.java
@@ -0,0 +1,16 @@
+package ca.uhn.fhir.jpa.starter.common;
+
+import ca.uhn.fhir.jpa.starter.util.EnvironmentHelper;
+import org.springframework.context.annotation.Condition;
+import org.springframework.context.annotation.ConditionContext;
+import org.springframework.core.env.ConfigurableEnvironment;
+import org.springframework.core.type.AnnotatedTypeMetadata;
+
+public class FhirTesterConfigCondition implements Condition {
+ @Override
+ public boolean matches(ConditionContext conditionContext, AnnotatedTypeMetadata metadata) {
+
+ var properties = EnvironmentHelper.getPropertiesStartingWith((ConfigurableEnvironment) conditionContext.getEnvironment(), "hapi.fhir.tester");
+ return !properties.isEmpty();
+ }
+}
diff --git a/src/main/java/ca/uhn/fhir/jpa/starter/common/StarterJpaConfig.java b/src/main/java/ca/uhn/fhir/jpa/starter/common/StarterJpaConfig.java
index eaf5a9ae16b..ef83751ebd1 100644
--- a/src/main/java/ca/uhn/fhir/jpa/starter/common/StarterJpaConfig.java
+++ b/src/main/java/ca/uhn/fhir/jpa/starter/common/StarterJpaConfig.java
@@ -9,6 +9,7 @@
import ca.uhn.fhir.context.FhirContext;
import ca.uhn.fhir.context.FhirVersionEnum;
import ca.uhn.fhir.context.support.IValidationSupport;
+
import ca.uhn.fhir.interceptor.api.IInterceptorBroadcaster;
import ca.uhn.fhir.jpa.api.IDaoRegistry;
import ca.uhn.fhir.jpa.api.config.JpaStorageSettings;
@@ -17,13 +18,12 @@
import ca.uhn.fhir.jpa.api.dao.IFhirSystemDao;
import ca.uhn.fhir.jpa.binary.interceptor.BinaryStorageInterceptor;
import ca.uhn.fhir.jpa.binary.provider.BinaryAccessProvider;
-import ca.uhn.fhir.jpa.bulk.export.provider.BulkDataExportProvider;
+import ca.uhn.fhir.batch2.jobs.export.BulkDataExportProvider;
import ca.uhn.fhir.jpa.config.util.HapiEntityManagerFactoryUtil;
import ca.uhn.fhir.jpa.config.util.ResourceCountCacheUtil;
import ca.uhn.fhir.jpa.config.util.ValidationSupportConfigUtil;
import ca.uhn.fhir.jpa.dao.FulltextSearchSvcImpl;
import ca.uhn.fhir.jpa.dao.IFulltextSearchSvc;
-import ca.uhn.fhir.jpa.dao.mdm.MdmLinkDaoJpaImpl;
import ca.uhn.fhir.jpa.dao.search.HSearchSortHelperImpl;
import ca.uhn.fhir.jpa.dao.search.IHSearchSortHelper;
import ca.uhn.fhir.jpa.delete.ThreadSafeResourceDeleterSvc;
@@ -47,12 +47,10 @@
import ca.uhn.fhir.jpa.starter.interceptor.CustomAuthorizationInterceptor;
import ca.uhn.fhir.jpa.starter.interceptor.CustomConsentService;
import ca.uhn.fhir.jpa.starter.interceptor.CustomSearchNarrowingInterceptor;
-import ca.uhn.fhir.jpa.starter.ips.IpsConfigCondition;
import ca.uhn.fhir.jpa.starter.util.EnvironmentHelper;
import ca.uhn.fhir.jpa.subscription.util.SubscriptionDebugLogInterceptor;
import ca.uhn.fhir.jpa.util.ResourceCountCache;
import ca.uhn.fhir.jpa.validation.JpaValidationSupportChain;
-import ca.uhn.fhir.mdm.dao.IMdmLinkDao;
import ca.uhn.fhir.mdm.provider.MdmProviderLoader;
import ca.uhn.fhir.narrative.DefaultThymeleafNarrativeGenerator;
import ca.uhn.fhir.narrative2.NullNarrativeGenerator;
@@ -68,7 +66,6 @@
import ca.uhn.fhir.validation.IValidatorModule;
import ca.uhn.fhir.validation.ResultSeverityEnum;
import com.google.common.base.Strings;
-import com.google.common.collect.ImmutableList;
import org.hl7.fhir.common.hapi.validation.support.CachingValidationSupport;
import org.springframework.beans.factory.NoSuchBeanDefinitionException;
import org.springframework.beans.factory.annotation.Autowired;
@@ -84,7 +81,6 @@
import javax.persistence.EntityManagerFactory;
import javax.sql.DataSource;
-
import java.util.*;
import static ca.uhn.fhir.jpa.starter.common.validation.IRepositoryValidationInterceptorFactory.ENABLE_REPOSITORY_VALIDATING_INTERCEPTOR;
@@ -119,6 +115,8 @@ public CachingValidationSupport validationSupportChain(JpaValidationSupportChain
@Autowired
private ConfigurableEnvironment configurableEnvironment;
+
+
/**
* Customize the default/max page sizes for search results. You can set these however
* you want, although very large page sizes will require a lot of RAM.
@@ -200,13 +198,15 @@ public IPackageInstallerSvc packageInstaller(AppProperties appProperties, JobDef
jobDefinitionRegistry.addJobDefinitionIfNotRegistered(reindexJobParametersJobDefinition);
if (appProperties.getImplementationGuides() != null) {
- Map guides = appProperties.getImplementationGuides();
- for (Map.Entry guide : guides.entrySet()) {
- PackageInstallationSpec packageInstallationSpec = new PackageInstallationSpec().setPackageUrl(guide.getValue().getUrl()).setName(guide.getValue().getName()).setVersion(guide.getValue().getVersion()).setInstallMode(PackageInstallationSpec.InstallModeEnum.STORE_AND_INSTALL);
- packageInstallationSpec.setReloadExisting(appProperties.getReload_existing_implementationguides());
+ Map guides = appProperties.getImplementationGuides();
+ for (Map.Entry guidesEntry : guides.entrySet()) {
+ PackageInstallationSpec packageInstallationSpec = guidesEntry.getValue();
if (appProperties.getInstall_transitive_ig_dependencies()) {
- packageInstallationSpec.setFetchDependencies(true);
- packageInstallationSpec.setDependencyExcludes(ImmutableList.of("hl7.fhir.r2.core", "hl7.fhir.r3.core", "hl7.fhir.r4.core", "hl7.fhir.r5.core"));
+
+ packageInstallationSpec.addDependencyExclude("hl7.fhir.r2.core")
+ .addDependencyExclude("hl7.fhir.r3.core")
+ .addDependencyExclude("hl7.fhir.r4.core")
+ .addDependencyExclude("hl7.fhir.r5.core");
}
packageInstallerSvc.install(packageInstallationSpec);
}
diff --git a/src/main/java/ca/uhn/fhir/jpa/starter/common/validation/RepositoryValidationInterceptorFactoryDstu3.java b/src/main/java/ca/uhn/fhir/jpa/starter/common/validation/RepositoryValidationInterceptorFactoryDstu3.java
index f8874b31a50..edaade773a3 100644
--- a/src/main/java/ca/uhn/fhir/jpa/starter/common/validation/RepositoryValidationInterceptorFactoryDstu3.java
+++ b/src/main/java/ca/uhn/fhir/jpa/starter/common/validation/RepositoryValidationInterceptorFactoryDstu3.java
@@ -47,12 +47,12 @@ public RepositoryValidationInterceptorFactoryDstu3(RepositoryValidatingRuleBuild
public RepositoryValidatingInterceptor buildUsingStoredStructureDefinitions() {
IBundleProvider results = structureDefinitionResourceProvider.search(new SearchParameterMap().add(StructureDefinition.SP_KIND, new TokenParam("resource")));
- Map> structureDefintions = results.getResources(0, results.size())
+ Map> structureDefinitions = results.getResources(0, results.size())
.stream()
.map(StructureDefinition.class::cast)
.collect(Collectors.groupingBy(StructureDefinition::getType));
- structureDefintions.forEach((key, value) -> {
+ structureDefinitions.forEach((key, value) -> {
String[] urls = value.stream().map(StructureDefinition::getUrl).toArray(String[]::new);
repositoryValidatingRuleBuilder.forResourcesOfType(key).requireAtLeastOneProfileOf(urls).and().requireValidationToDeclaredProfiles();
});
diff --git a/src/main/java/ca/uhn/fhir/jpa/starter/cr/StarterCrDstu3Config.java b/src/main/java/ca/uhn/fhir/jpa/starter/cr/StarterCrDstu3Config.java
index 9efc08645b9..06d95f4dd1e 100644
--- a/src/main/java/ca/uhn/fhir/jpa/starter/cr/StarterCrDstu3Config.java
+++ b/src/main/java/ca/uhn/fhir/jpa/starter/cr/StarterCrDstu3Config.java
@@ -1,6 +1,6 @@
package ca.uhn.fhir.jpa.starter.cr;
-import ca.uhn.fhir.cr.config.CrDstu3Config;
+import ca.uhn.fhir.cr.config.dstu3.CrDstu3Config;
import ca.uhn.fhir.jpa.starter.annotations.OnDSTU3Condition;
import org.springframework.context.annotation.Conditional;
import org.springframework.context.annotation.Configuration;
diff --git a/src/main/java/ca/uhn/fhir/jpa/starter/cr/StarterCrR4Config.java b/src/main/java/ca/uhn/fhir/jpa/starter/cr/StarterCrR4Config.java
index a97cea7835f..586a32499e5 100644
--- a/src/main/java/ca/uhn/fhir/jpa/starter/cr/StarterCrR4Config.java
+++ b/src/main/java/ca/uhn/fhir/jpa/starter/cr/StarterCrR4Config.java
@@ -1,6 +1,6 @@
package ca.uhn.fhir.jpa.starter.cr;
-import ca.uhn.fhir.cr.config.CrR4Config;
+import ca.uhn.fhir.cr.config.r4.CrR4Config;
import ca.uhn.fhir.jpa.starter.annotations.OnR4Condition;
import org.springframework.context.annotation.Conditional;
import org.springframework.context.annotation.Import;
diff --git a/src/main/java/ca/uhn/fhir/jpa/starter/ips/StarterIpsConfig.java b/src/main/java/ca/uhn/fhir/jpa/starter/ips/StarterIpsConfig.java
index e777879a580..308a3aafaf0 100644
--- a/src/main/java/ca/uhn/fhir/jpa/starter/ips/StarterIpsConfig.java
+++ b/src/main/java/ca/uhn/fhir/jpa/starter/ips/StarterIpsConfig.java
@@ -15,18 +15,18 @@
@Conditional(IpsConfigCondition.class)
public class StarterIpsConfig {
@Bean
- IIpsGenerationStrategy IpsGenerationStrategy()
+ IIpsGenerationStrategy ipsGenerationStrategy()
{
return new DefaultIpsGenerationStrategy();
}
@Bean
- public IpsOperationProvider IpsOperationProvider(IIpsGeneratorSvc theIpsGeneratorSvc){
+ public IpsOperationProvider ipsOperationProvider(IIpsGeneratorSvc theIpsGeneratorSvc){
return new IpsOperationProvider(theIpsGeneratorSvc);
}
@Bean
- public IIpsGeneratorSvc IpsGeneratorSvcImpl(FhirContext theFhirContext, IIpsGenerationStrategy theGenerationStrategy, DaoRegistry theDaoRegistry)
+ public IIpsGeneratorSvc ipsGeneratorSvcImpl(FhirContext theFhirContext, IIpsGenerationStrategy theGenerationStrategy, DaoRegistry theDaoRegistry)
{
return new IpsGeneratorSvcImpl(theFhirContext, theGenerationStrategy, theDaoRegistry);
}
diff --git a/src/main/java/ca/uhn/fhir/jpa/starter/mdm/MdmConfig.java b/src/main/java/ca/uhn/fhir/jpa/starter/mdm/MdmConfig.java
index 50dfe9e0489..7f0ee4c314f 100644
--- a/src/main/java/ca/uhn/fhir/jpa/starter/mdm/MdmConfig.java
+++ b/src/main/java/ca/uhn/fhir/jpa/starter/mdm/MdmConfig.java
@@ -6,7 +6,6 @@
import ca.uhn.fhir.mdm.api.IMdmSettings;
import ca.uhn.fhir.mdm.rules.config.MdmRuleValidator;
import ca.uhn.fhir.mdm.rules.config.MdmSettings;
-import com.google.common.base.Charsets;
import org.apache.commons.io.IOUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
@@ -17,6 +16,7 @@
import org.springframework.core.io.Resource;
import java.io.IOException;
+import java.nio.charset.StandardCharsets;
@Configuration
@Conditional(MdmConfigCondition.class)
@@ -27,7 +27,7 @@ public class MdmConfig {
IMdmSettings mdmSettings(@Autowired MdmRuleValidator theMdmRuleValidator, AppProperties appProperties) throws IOException {
DefaultResourceLoader resourceLoader = new DefaultResourceLoader();
Resource resource = resourceLoader.getResource("mdm-rules.json");
- String json = IOUtils.toString(resource.getInputStream(), Charsets.UTF_8);
+ String json = IOUtils.toString(resource.getInputStream(), StandardCharsets.UTF_8);
return new MdmSettings(theMdmRuleValidator).setEnabled(appProperties.getMdm_enabled()).setScriptText(json);
}
}
diff --git a/src/main/java/ca/uhn/fhir/jpa/starter/util/EnvironmentHelper.java b/src/main/java/ca/uhn/fhir/jpa/starter/util/EnvironmentHelper.java
index 41bb556c4c3..71d947ac410 100644
--- a/src/main/java/ca/uhn/fhir/jpa/starter/util/EnvironmentHelper.java
+++ b/src/main/java/ca/uhn/fhir/jpa/starter/util/EnvironmentHelper.java
@@ -17,7 +17,6 @@
import org.hibernate.search.mapper.orm.schema.management.SchemaManagementStrategyName;
import org.springframework.beans.factory.config.ConfigurableListableBeanFactory;
import org.springframework.boot.orm.jpa.hibernate.SpringImplicitNamingStrategy;
-import org.springframework.boot.orm.jpa.hibernate.SpringPhysicalNamingStrategy;
import org.springframework.core.env.CompositePropertySource;
import org.springframework.core.env.ConfigurableEnvironment;
import org.springframework.core.env.EnumerablePropertySource;
diff --git a/src/main/resources/application-custom.yaml b/src/main/resources/application-custom.yaml
index 1d44f9ec974..4a631e32af4 100644
--- a/src/main/resources/application-custom.yaml
+++ b/src/main/resources/application-custom.yaml
@@ -10,7 +10,6 @@ spring:
allow-circular-references: true
#allow-bean-definition-overriding: true
banner-mode: "log"
- batch.job.enabled: false
flyway:
enabled: false
check-location: false
@@ -29,6 +28,10 @@ spring:
properties:
hibernate.format_sql: false
hibernate.show_sql: false
+
+ #Hibernate dialect is automatically detected except Postgres and H2.
+ #If using H2, then supply the value of ca.uhn.fhir.jpa.model.dialect.HapiFhirH2Dialect
+ #If using postgres, then supply the value of ca.uhn.fhir.jpa.model.dialect.HapiFhirPostgres94Dialect
hibernate.dialect: ${hibernate.dialect}
hibernate.hbm2ddl.auto: update
hibernate.jdbc.batch_size: 20
@@ -56,12 +59,19 @@ hapi:
openapi_enabled: true
### This is the FHIR version. Choose between, DSTU2, DSTU3, R4 or R5
fhir_version: ${fhir_version}
+ ### This flag when enabled to true, will avail evaluate measure operations from CR Module.
+ ### Flag is false by default, can be passed as command line argument to override.
+ cr_enabled: "${CR_ENABLED: false}"
### enable to use the ApacheProxyAddressStrategy which uses X-Forwarded-* headers
### to determine the FHIR server address
# use_apache_address_strategy: false
### forces the use of the https:// protocol for the returned server address.
### alternatively, it may be set using the X-Forwarded-Proto header.
# use_apache_address_strategy_https: false
+ ### enables the server to host content like HTML, css, etc. under the url pattern of eg. /static/**
+ # staticLocationPrefix: /static
+ ### the deepest folder level will be used. E.g. - if you put file:/foo/bar/bazz as value then the files are resolved under /static/bazz/**
+ #staticLocation: file:/foo/bar/bazz
### enable to set the Server URL
# server_path: /baseR4
# server_address: http://hapi.fhir.org/baseR4
@@ -69,31 +79,39 @@ hapi:
# install_transitive_ig_dependencies: true
### tells the server whether to attempt to load IG resources that are already present
# reload_existing_implementationGuides : false
- # implementationguides:
+ #implementationguides:
### example from registry (packages.fhir.org)
- # swiss:
- # name: swiss.mednet.fhir
- # version: 0.8.0
+ # swiss:
+ # name: swiss.mednet.fhir
+ # version: 0.8.0
+ # reloadExisting : false
# example not from registry
# ips_1_0_0:
- # url: https://build.fhir.org/ig/HL7/fhir-ips/package.tgz
+ # packageUrl: https://build.fhir.org/ig/HL7/fhir-ips/package.tgz
# name: hl7.fhir.uv.ips
# version: 1.0.0
# supported_resource_types:
# - Patient
# - Observation
+ ##################################################
+ # Allowed Bundle Types for persistence (defaults are: COLLECTION,DOCUMENT,MESSAGE)
+ ##################################################
+ # allowed_bundle_types: COLLECTION,DOCUMENT,MESSAGE,TRANSACTION,TRANSACTIONRESPONSE,BATCH,BATCHRESPONSE,HISTORY,SEARCHSET
allow_cascading_deletes: true
allow_contains_searches: true
allow_external_references: true
allow_multiple_delete: true
allow_override_default_search_params: true
auto_create_placeholder_reference_targets: false
- # cql_enabled: true
+ ### tells the server to automatically append the current version of the target resource to references at these paths
+ # auto_version_reference_at_paths: Device.patient, Device.location, Device.parent, DeviceMetric.parent, DeviceMetric.source, Observation.device, Observation.subject
+ # cr_enabled: true
+ # ips_enabled: false
default_encoding: JSON
# default_pretty_print: true
default_page_size: 20
# delete_expunge_enabled: true
- # enable_repository_validating_interceptor: false
+ # enable_repository_validating_interceptor: true
# enable_index_missing_fields: false
# enable_index_of_type: true
# enable_index_contained_resource: false
@@ -106,15 +124,14 @@ hapi:
enforce_referential_integrity_on_write: false
etag_support_enabled: true
expunge_enabled: true
- # daoconfig_client_id_strategy: null
# client_id_strategy: ALPHANUMERIC
# fhirpath_interceptor_enabled: false
filter_search_enabled: true
graphql_enabled: true
# narrative_enabled: true
# mdm_enabled: true
-# local_base_urls:
-# - https://hapi.fhir.org/baseR4
+ # local_base_urls:
+ # - https://hapi.fhir.org/baseR4
mdm_enabled: false
# partitioning:
# allow_references_across_partitions: false
@@ -130,9 +147,17 @@ hapi:
search-coord-max-pool-size: 100
search-coord-queue-capacity: 200
+ # comma-separated package names, will be @ComponentScan'ed by Spring to allow for creating custom Spring beans
+ #custom-bean-packages:
+
+ # comma-separated list of fully qualified interceptor classes.
+ # classes listed here will be fetched from the Spring context when combined with 'custom-bean-packages',
+ # or will be instantiated via reflection using an no-arg contructor; then registered with the server
+ #custom-interceptor-classes:
+
# Threadpool size for BATCH'ed GETs in a bundle.
-# bundle_batch_pool_size: 10
-# bundle_batch_pool_max_size: 50
+ # bundle_batch_pool_size: 10
+ # bundle_batch_pool_max_size: 50
oauth:
enabled: ${OAUTH_ENABLED:false}
@@ -177,11 +202,12 @@ hapi:
name: Global Tester
server_address: "http://hapi.fhir.org/baseR4"
refuse_to_fetch_third_party_urls: false
- fhir_version: ${fhir_version}
- # validation:
- # requests_enabled: true
- # responses_enabled: true
+ fhir_version: R4
+ # validation:
+ # requests_enabled: true
+ # responses_enabled: true
binary_storage_enabled: true
+ inline_resource_storage_below_size: 4000
bulk_export_enabled: true
subscription:
resthook_enabled: true
diff --git a/src/main/resources/application.yaml b/src/main/resources/application.yaml
index d8822766f2c..a77d91b18fb 100644
--- a/src/main/resources/application.yaml
+++ b/src/main/resources/application.yaml
@@ -58,13 +58,17 @@ hapi:
openapi_enabled: true
### This is the FHIR version. Choose between, DSTU2, DSTU3, R4 or R5
fhir_version: R4
+ ### This flag when enabled to true, will avail evaluate measure operations from CR Module.
+ ### Flag is false by default, can be passed as command line argument to override.
+ cr_enabled: "${CR_ENABLED: false}"
### enable to use the ApacheProxyAddressStrategy which uses X-Forwarded-* headers
### to determine the FHIR server address
# use_apache_address_strategy: false
### forces the use of the https:// protocol for the returned server address.
### alternatively, it may be set using the X-Forwarded-Proto header.
# use_apache_address_strategy_https: false
- ### enables the server to host content like HTML, css, etc. under the url pattern of /static/**
+ ### enables the server to host content like HTML, css, etc. under the url pattern of eg. /static/**
+ # staticLocationPrefix: /static
### the deepest folder level will be used. E.g. - if you put file:/foo/bar/bazz as value then the files are resolved under /static/bazz/**
#staticLocation: file:/foo/bar/bazz
### enable to set the Server URL
@@ -74,14 +78,15 @@ hapi:
# install_transitive_ig_dependencies: true
### tells the server whether to attempt to load IG resources that are already present
# reload_existing_implementationGuides : false
- # implementationguides:
+ #implementationguides:
### example from registry (packages.fhir.org)
- # swiss:
- # name: swiss.mednet.fhir
- # version: 0.8.0
+ # swiss:
+ # name: swiss.mednet.fhir
+ # version: 0.8.0
+ # reloadExisting : false
# example not from registry
# ips_1_0_0:
- # url: https://build.fhir.org/ig/HL7/fhir-ips/package.tgz
+ # packageUrl: https://build.fhir.org/ig/HL7/fhir-ips/package.tgz
# name: hl7.fhir.uv.ips
# version: 1.0.0
# supported_resource_types:
@@ -97,6 +102,8 @@ hapi:
# allow_multiple_delete: true
# allow_override_default_search_params: true
# auto_create_placeholder_reference_targets: false
+ ### tells the server to automatically append the current version of the target resource to references at these paths
+ # auto_version_reference_at_paths: Device.patient, Device.location, Device.parent, DeviceMetric.parent, DeviceMetric.source, Observation.device, Observation.subject
# cr_enabled: true
# ips_enabled: false
# default_encoding: JSON
@@ -140,14 +147,14 @@ hapi:
search-coord-core-pool-size: 20
search-coord-max-pool-size: 100
search-coord-queue-capacity: 200
-
+
# comma-separated package names, will be @ComponentScan'ed by Spring to allow for creating custom Spring beans
#custom-bean-packages:
-
- # comma-separated list of fully qualified interceptor classes.
- # classes listed here will be fetched from the Spring context when combined with 'custom-bean-packages',
- # or will be instantiated via reflection using an no-arg contructor; then registered with the server
- #custom-interceptor-classes:
+
+ # comma-separated list of fully qualified interceptor classes.
+ # classes listed here will be fetched from the Spring context when combined with 'custom-bean-packages',
+ # or will be instantiated via reflection using an no-arg contructor; then registered with the server
+ #custom-interceptor-classes:
# Threadpool size for BATCH'ed GETs in a bundle.
# bundle_batch_pool_size: 10
diff --git a/src/main/webapp/WEB-INF/templates/tmpl-banner.html b/src/main/webapp/WEB-INF/templates/tmpl-banner.html
index abbe718db63..cafc016f18f 100644
--- a/src/main/webapp/WEB-INF/templates/tmpl-banner.html
+++ b/src/main/webapp/WEB-INF/templates/tmpl-banner.html
@@ -3,18 +3,18 @@
-

+
-
-
+
+
-
+