Merge pull request #742 from hapifhir/expose-search-prefetch-thresholds

Expose Setting for prefetch thresholds
This commit is contained in:
dotasek
2024-10-28 14:09:49 -04:00
committed by GitHub
3 changed files with 26 additions and 1 deletions

View File

@@ -105,6 +105,8 @@ public class AppProperties {
private final List<String> custom_provider_classes = new ArrayList<>();
private Boolean upliftedRefchains_enabled = false;
private List<Integer> search_prefetch_thresholds = new ArrayList<>();
public List<String> getCustomInterceptorClasses() {
return custom_interceptor_classes;
@@ -644,6 +646,14 @@ public Cors getCors() {
this.language_search_parameter_enabled = language_search_parameter_enabled;
}
public List<Integer> getSearch_prefetch_thresholds() {
return this.search_prefetch_thresholds;
}
public void setSearch_prefetch_thresholds(List<Integer> thePrefetchThresholds) {
this.search_prefetch_thresholds = thePrefetchThresholds;
}
public boolean getUpliftedRefchains_enabled() {
return upliftedRefchains_enabled;
}

View File

@@ -152,6 +152,10 @@ public class FhirServerConfigCommon {
jpaStorageSettings.setIndexOnUpliftedRefchains(appProperties.getUpliftedRefchains_enabled());
if (!appProperties.getSearch_prefetch_thresholds().isEmpty()) {
jpaStorageSettings.setSearchPreFetchThresholds(appProperties.getSearch_prefetch_thresholds());
}
Integer maxFetchSize = appProperties.getMax_page_size();
jpaStorageSettings.setFetchSizeDefaultMaximum(maxFetchSize);
ourLog.info("Server configured to have a maximum fetch size of "

View File

@@ -237,6 +237,17 @@ hapi:
search-coord-max-pool-size: 100
search-coord-queue-capacity: 200
# Search Prefetch Thresholds.
# This setting sets the number of search results to prefetch. For example, if this list
# is set to [100, 1000, -1] then the server will initially load 100 results and not
# attempt to load more. If the user requests subsequent page(s) of results and goes
# past 100 results, the system will load the next 900 (up to the following threshold of 1000).
# The system will progressively work through these thresholds.
# A threshold of -1 means to load all results. Note that if the final threshold is a
# number other than -1, the system will never prefetch more than the given number.
search_prefetch_thresholds: 13,503,2003,-1
# comma-separated package names, will be @ComponentScan'ed by Spring to allow for creating custom Spring beans
#custom-bean-packages: