Added Normalized Quantity Search Support

This commit is contained in:
Frank Tao
2021-01-07 22:47:02 -05:00
parent aa467a71a7
commit 71541574e9
4 changed files with 27 additions and 8 deletions

View File

@@ -1,22 +1,23 @@
package ca.uhn.fhir.jpa.starter; package ca.uhn.fhir.jpa.starter;
import ca.uhn.fhir.context.FhirVersionEnum;
import ca.uhn.fhir.jpa.api.config.DaoConfig.ClientIdStrategyEnum;
import ca.uhn.fhir.rest.api.EncodingEnum;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableMap;
import org.hl7.fhir.r4.model.Bundle; import org.hl7.fhir.r4.model.Bundle;
import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableMap;
import ca.uhn.fhir.context.FhirVersionEnum;
import ca.uhn.fhir.jpa.api.config.DaoConfig.ClientIdStrategyEnum;
import ca.uhn.fhir.jpa.model.entity.NormalizedQuantitySearchLevel;
import ca.uhn.fhir.rest.api.EncodingEnum;
@ConfigurationProperties(prefix = "hapi.fhir") @ConfigurationProperties(prefix = "hapi.fhir")
@Configuration @Configuration
@@ -66,6 +67,7 @@ public class AppProperties {
private Map<String, ImplementationGuide> implementationGuides = null; private Map<String, ImplementationGuide> implementationGuides = null;
private Boolean lastn_enabled = false; private Boolean lastn_enabled = false;
private NormalizedQuantitySearchLevel normalized_quantity_search_level = NormalizedQuantitySearchLevel.NORMALIZED_QUANTITY_SEARCH_NOT_SUPPORTED;
public Integer getDefer_indexing_for_codesystems_of_size() { public Integer getDefer_indexing_for_codesystems_of_size() {
return defer_indexing_for_codesystems_of_size; return defer_indexing_for_codesystems_of_size;
@@ -403,6 +405,15 @@ public class AppProperties {
this.lastn_enabled = lastn_enabled; this.lastn_enabled = lastn_enabled;
} }
public NormalizedQuantitySearchLevel getNormalized_quantity_search_level() {
return this.normalized_quantity_search_level;
}
public void setNormalized_quantity_search_level(NormalizedQuantitySearchLevel normalized_quantity_search_level) {
this.normalized_quantity_search_level = normalized_quantity_search_level;
}
public static class Cors { public static class Cors {
private Boolean allow_Credentials = true; private Boolean allow_Credentials = true;
private List<String> allowed_origin = ImmutableList.of("*"); private List<String> allowed_origin = ImmutableList.of("*");

View File

@@ -363,6 +363,8 @@ public class BaseJpaRestfulServer extends RestfulServer {
daoConfig.setLastNEnabled(true); daoConfig.setLastNEnabled(true);
} }
daoConfig.getModelConfig().setNormalizedQuantitySearchLevel(appProperties.getNormalized_quantity_search_level());
// Repository Validating Interceptor // Repository Validating Interceptor
if (Boolean.TRUE.equals(appProperties.getEnable_repository_validating_interceptor())) { if (Boolean.TRUE.equals(appProperties.getEnable_repository_validating_interceptor())) {
RepositoryValidationInterceptorFactory repositoryValidationInterceptorFactory = myApplicationContext.getBean(RepositoryValidationInterceptorFactory.class); RepositoryValidationInterceptorFactory repositoryValidationInterceptorFactory = myApplicationContext.getBean(RepositoryValidationInterceptorFactory.class);

View File

@@ -163,6 +163,7 @@ public class FhirServerConfigCommon {
modelConfig.addSupportedSubscriptionType(Subscription.SubscriptionChannelType.EMAIL); modelConfig.addSupportedSubscriptionType(Subscription.SubscriptionChannelType.EMAIL);
} }
modelConfig.setNormalizedQuantitySearchLevel(appProperties.getNormalized_quantity_search_level());
return modelConfig; return modelConfig;
} }

View File

@@ -126,6 +126,11 @@ hapi:
# startTlsRequired: # startTlsRequired:
# quitWait: # quitWait:
# lastn_enabled: true # lastn_enabled: true
#### This is configuration for normalized quantity serach level default is 0
#### 0: NORMALIZED_QUANTITY_SEARCH_NOT_SUPPORTED - default
#### 1: NORMALIZED_QUANTITY_STORAGE_SUPPORTED
#### 2: NORMALIZED_QUANTITY_SEARCH_SUPPORTED
# normalized_quantity_search_level: 2
# #