Skip to content

Commit 103fd01

Browse files
dotasekbarhodes
andauthoredNov 22, 2024··
Update to HAPI 7.6.0 (#731)
* Bump to HAPI 7.5.0-SNAPSHOT * Bump to latest HAPI version + fix config * Bump to latest HAPI version + fix CR config + spotless * Bump parent version to 7.5.4-SNAPSHOT * Update to HAPI Release 7.6.0 --------- Co-authored-by: Brenin Rhodes <brenin@alphora.com>
1 parent 69fede9 commit 103fd01

14 files changed

+110
-113
lines changed
 

‎pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
<parent>
1515
<groupId>ca.uhn.hapi.fhir</groupId>
1616
<artifactId>hapi-fhir</artifactId>
17-
<version>7.4.0</version>
17+
<version>7.6.0</version>
1818
</parent>
1919

2020
<artifactId>hapi-fhir-jpaserver-starter</artifactId>

‎src/main/java/ca/uhn/fhir/jpa/starter/common/StarterJpaConfig.java

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package ca.uhn.fhir.jpa.starter.common;
22

3+
import ca.uhn.fhir.batch2.config.Batch2JobRegisterer;
34
import ca.uhn.fhir.batch2.coordinator.JobDefinitionRegistry;
45
import ca.uhn.fhir.batch2.jobs.export.BulkDataExportProvider;
56
import ca.uhn.fhir.batch2.jobs.imprt.BulkDataImportProvider;
@@ -46,7 +47,6 @@
4647
import ca.uhn.fhir.jpa.starter.common.validation.IRepositoryValidationInterceptorFactory;
4748
import ca.uhn.fhir.jpa.starter.ig.IImplementationGuideOperationProvider;
4849
import ca.uhn.fhir.jpa.starter.util.EnvironmentHelper;
49-
import ca.uhn.fhir.jpa.starter.ig.IImplementationGuideOperationProvider;
5050
import ca.uhn.fhir.jpa.subscription.util.SubscriptionDebugLogInterceptor;
5151
import ca.uhn.fhir.jpa.util.ResourceCountCache;
5252
import ca.uhn.fhir.jpa.validation.JpaValidationSupportChain;
@@ -66,6 +66,8 @@
6666
import com.google.common.base.Strings;
6767
import jakarta.persistence.EntityManagerFactory;
6868
import org.hl7.fhir.common.hapi.validation.support.CachingValidationSupport;
69+
import org.slf4j.Logger;
70+
import org.slf4j.LoggerFactory;
6971
import org.springframework.beans.factory.NoSuchBeanDefinitionException;
7072
import org.springframework.beans.factory.annotation.Autowired;
7173
import org.springframework.beans.factory.config.ConfigurableListableBeanFactory;
@@ -89,7 +91,7 @@
8991
@Import(ThreadPoolFactoryConfig.class)
9092
public class StarterJpaConfig {
9193

92-
private static final org.slf4j.Logger ourLog = org.slf4j.LoggerFactory.getLogger(StarterJpaConfig.class);
94+
private static final Logger ourLog = LoggerFactory.getLogger(StarterJpaConfig.class);
9395

9496
@Bean
9597
public IFulltextSearchSvc fullTextSearchSvc() {
@@ -191,11 +193,11 @@ public LoggingInterceptor loggingInterceptor(AppProperties appProperties) {
191193
@Primary
192194
@Conditional(OnImplementationGuidesPresent.class)
193195
public IPackageInstallerSvc packageInstaller(
194-
AppProperties appProperties,
195-
JobDefinition<ReindexJobParameters> reindexJobParametersJobDefinition,
196-
JobDefinitionRegistry jobDefinitionRegistry,
197-
IPackageInstallerSvc packageInstallerSvc) {
198-
jobDefinitionRegistry.addJobDefinitionIfNotRegistered(reindexJobParametersJobDefinition);
196+
AppProperties appProperties,
197+
IPackageInstallerSvc packageInstallerSvc,
198+
Batch2JobRegisterer batch2JobRegisterer) {
199+
200+
batch2JobRegisterer.start();
199201

200202
if (appProperties.getImplementationGuides() != null) {
201203
Map<String, PackageInstallationSpec> guides = appProperties.getImplementationGuides();
Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,22 @@
11
package ca.uhn.fhir.jpa.starter.cr;
22

33
public class CareGapsProperties {
4-
private String reporter = "default";
4+
private String reporter = "default";
55
private String section_author = "default";
66

7-
public String getReporter() {
8-
return reporter;
9-
}
7+
public String getReporter() {
8+
return reporter;
9+
}
1010

11-
public void setReporter(String reporter) {
12-
this.reporter = reporter;
13-
}
11+
public void setReporter(String reporter) {
12+
this.reporter = reporter;
13+
}
1414

15-
public String getSection_author() {
16-
return section_author;
17-
}
15+
public String getSection_author() {
16+
return section_author;
17+
}
1818

19-
public void setSection_author(String section_author) {
20-
this.section_author = section_author;
21-
}
19+
public void setSection_author(String section_author) {
20+
this.section_author = section_author;
21+
}
2222
}

‎src/main/java/ca/uhn/fhir/jpa/starter/cr/CqlCompilerProperties.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
import org.cqframework.cql.cql2elm.LibraryBuilder;
66

77
public class CqlCompilerProperties {
8-
private Boolean validate_units = true;
8+
private Boolean validate_units = true;
99
private Boolean verify_only = false;
1010
private String compatibility_level = "1.5";
1111
private CqlCompilerException.ErrorSeverity error_level = CqlCompilerException.ErrorSeverity.Info;
@@ -27,7 +27,6 @@ public class CqlCompilerProperties {
2727
private Boolean require_from_keyword = false;
2828
private Boolean disable_default_model_info_load = false;
2929

30-
3130
public boolean isValidateUnits() {
3231
return validate_units;
3332
}
@@ -194,5 +193,5 @@ public CqlTranslator.Format getTranslatorFormat() {
194193

195194
public void setTranslatorFormat(CqlTranslator.Format translatorFormat) {
196195
this.translator_format = translatorFormat;
197-
}
196+
}
198197
}

‎src/main/java/ca/uhn/fhir/jpa/starter/cr/CqlProperties.java

Lines changed: 45 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -5,49 +5,49 @@
55

66
public class CqlProperties {
77

8-
private Boolean use_embedded_libraries = true;
9-
private CqlCompilerProperties compiler = new CqlCompilerProperties();
10-
private CqlRuntimeProperties runtime = new CqlRuntimeProperties();
11-
private TerminologySettings terminology = new TerminologySettings();
12-
private RetrieveSettings data = new RetrieveSettings();
13-
14-
public Boolean getUse_embedded_libraries() {
15-
return use_embedded_libraries;
16-
}
17-
18-
public void setUse_embedded_libraries(Boolean use_embedded_libraries) {
19-
this.use_embedded_libraries = use_embedded_libraries;
20-
}
21-
22-
public CqlCompilerProperties getCompiler() {
23-
return compiler;
24-
}
25-
26-
public void setCompiler(CqlCompilerProperties compiler) {
27-
this.compiler = compiler;
28-
}
29-
30-
public CqlRuntimeProperties getRuntime() {
31-
return runtime;
32-
}
33-
34-
public void setRuntime(CqlRuntimeProperties runtime) {
35-
this.runtime = runtime;
36-
}
37-
38-
public TerminologySettings getTerminology() {
39-
return terminology;
40-
}
41-
42-
public void setTerminology(TerminologySettings terminology) {
43-
this.terminology = terminology;
44-
}
45-
46-
public RetrieveSettings getData() {
47-
return data;
48-
}
49-
50-
public void setData(RetrieveSettings data) {
51-
this.data = data;
52-
}
8+
private Boolean use_embedded_libraries = true;
9+
private CqlCompilerProperties compiler = new CqlCompilerProperties();
10+
private CqlRuntimeProperties runtime = new CqlRuntimeProperties();
11+
private TerminologySettings terminology = new TerminologySettings();
12+
private RetrieveSettings data = new RetrieveSettings();
13+
14+
public Boolean getUse_embedded_libraries() {
15+
return use_embedded_libraries;
16+
}
17+
18+
public void setUse_embedded_libraries(Boolean use_embedded_libraries) {
19+
this.use_embedded_libraries = use_embedded_libraries;
20+
}
21+
22+
public CqlCompilerProperties getCompiler() {
23+
return compiler;
24+
}
25+
26+
public void setCompiler(CqlCompilerProperties compiler) {
27+
this.compiler = compiler;
28+
}
29+
30+
public CqlRuntimeProperties getRuntime() {
31+
return runtime;
32+
}
33+
34+
public void setRuntime(CqlRuntimeProperties runtime) {
35+
this.runtime = runtime;
36+
}
37+
38+
public TerminologySettings getTerminology() {
39+
return terminology;
40+
}
41+
42+
public void setTerminology(TerminologySettings terminology) {
43+
this.terminology = terminology;
44+
}
45+
46+
public RetrieveSettings getData() {
47+
return data;
48+
}
49+
50+
public void setData(RetrieveSettings data) {
51+
this.data = data;
52+
}
5353
}

‎src/main/java/ca/uhn/fhir/jpa/starter/cr/CqlRuntimeProperties.java

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
public class CqlRuntimeProperties {
44

5-
private Boolean debug_logging_enabled = false;
5+
private Boolean debug_logging_enabled = false;
66
private Boolean enable_validation = false;
77
private Boolean enable_expression_caching = true;
88

@@ -14,7 +14,6 @@ public void setDebugLoggingEnabled(boolean debug_logging_enabled) {
1414
this.debug_logging_enabled = debug_logging_enabled;
1515
}
1616

17-
1817
public boolean isEnableExpressionCaching() {
1918
return enable_expression_caching;
2019
}
@@ -30,6 +29,4 @@ public boolean isEnableValidation() {
3029
public void EnableValidation(boolean enable_validation) {
3130
this.enable_validation = enable_validation;
3231
}
33-
34-
3532
}

‎src/main/java/ca/uhn/fhir/jpa/starter/cr/CrCommonConfig.java

Lines changed: 23 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,14 @@
11
package ca.uhn.fhir.jpa.starter.cr;
22

3-
import java.util.EnumSet;
4-
import java.util.List;
5-
import java.util.Map;
6-
import java.util.Set;
7-
import java.util.concurrent.ConcurrentHashMap;
8-
import java.util.concurrent.ExecutorService;
9-
import java.util.concurrent.Executors;
10-
3+
import ca.uhn.fhir.cr.common.CodeCacheResourceChangeListener;
4+
import ca.uhn.fhir.cr.common.CqlThreadFactory;
5+
import ca.uhn.fhir.cr.common.ElmCacheResourceChangeListener;
6+
import ca.uhn.fhir.jpa.api.dao.DaoRegistry;
7+
import ca.uhn.fhir.jpa.cache.IResourceChangeListenerRegistry;
8+
import ca.uhn.fhir.jpa.cache.ResourceChangeListenerRegistryInterceptor;
9+
import ca.uhn.fhir.jpa.searchparam.SearchParameterMap;
10+
import ca.uhn.fhir.rest.server.RestfulServer;
11+
import ca.uhn.fhir.rest.server.provider.ResourceProviderFactory;
1112
import org.cqframework.cql.cql2elm.CqlCompilerOptions;
1213
import org.cqframework.cql.cql2elm.model.CompiledLibrary;
1314
import org.cqframework.cql.cql2elm.model.Model;
@@ -28,15 +29,13 @@
2829
import org.springframework.context.annotation.Primary;
2930
import org.springframework.security.concurrent.DelegatingSecurityContextExecutorService;
3031

31-
import ca.uhn.fhir.cr.common.CodeCacheResourceChangeListener;
32-
import ca.uhn.fhir.cr.common.CqlThreadFactory;
33-
import ca.uhn.fhir.cr.common.ElmCacheResourceChangeListener;
34-
import ca.uhn.fhir.jpa.api.dao.DaoRegistry;
35-
import ca.uhn.fhir.jpa.cache.IResourceChangeListenerRegistry;
36-
import ca.uhn.fhir.jpa.cache.ResourceChangeListenerRegistryInterceptor;
37-
import ca.uhn.fhir.jpa.searchparam.SearchParameterMap;
38-
import ca.uhn.fhir.rest.server.RestfulServer;
39-
import ca.uhn.fhir.rest.server.provider.ResourceProviderFactory;
32+
import java.util.EnumSet;
33+
import java.util.List;
34+
import java.util.Map;
35+
import java.util.Set;
36+
import java.util.concurrent.ConcurrentHashMap;
37+
import java.util.concurrent.ExecutorService;
38+
import java.util.concurrent.Executors;
4039

4140
@Configuration
4241
@Conditional({CrConfigCondition.class})
@@ -157,8 +156,12 @@ public ExecutorService cqlExecutor() {
157156
@Bean
158157
CareGapsProperties careGapsProperties(CrProperties theCrProperties) {
159158
var careGapsProperties = new CareGapsProperties();
160-
careGapsProperties.setCareGapsReporter(theCrProperties.getCareGaps().getReporter());
161-
careGapsProperties.setCareGapsCompositionSectionAuthor(theCrProperties.getCareGaps().getSection_author());
159+
// This check for the resource type really should be happening down in CR where the setting is actually used but
160+
// that will have to wait for a future CR release
161+
careGapsProperties.setCareGapsReporter(
162+
theCrProperties.getCareGaps().getReporter().replace("Organization/", ""));
163+
careGapsProperties.setCareGapsCompositionSectionAuthor(
164+
theCrProperties.getCareGaps().getSection_author().replace("Organization/", ""));
162165
return careGapsProperties;
163166
}
164167

@@ -224,5 +227,5 @@ public CodeCacheResourceChangeListener codeCacheResourceChangeListener(
224227
@Bean
225228
public ResourceChangeListenerRegistryInterceptor resourceChangeListenerRegistryInterceptor() {
226229
return new ResourceChangeListenerRegistryInterceptor();
227-
}
230+
}
228231
}

‎src/main/java/ca/uhn/fhir/jpa/starter/cr/CrProperties.java

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,5 @@
11
package ca.uhn.fhir.jpa.starter.cr;
22

3-
import org.cqframework.cql.cql2elm.CqlCompilerException;
4-
import org.cqframework.cql.cql2elm.CqlTranslator;
5-
import org.cqframework.cql.cql2elm.LibraryBuilder;
6-
73
public class CrProperties {
84
private Boolean enabled;
95

‎src/main/java/ca/uhn/fhir/jpa/starter/cr/StarterCrDstu3Config.java

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,9 @@
22

33
import ca.uhn.fhir.cr.config.dstu3.ApplyOperationConfig;
44
import ca.uhn.fhir.cr.config.dstu3.CrDstu3Config;
5-
import ca.uhn.fhir.cr.config.dstu3.ExtractOperationConfig;
5+
import ca.uhn.fhir.cr.config.dstu3.DataRequirementsOperationConfig;
6+
import ca.uhn.fhir.cr.config.dstu3.EvaluateOperationConfig;
67
import ca.uhn.fhir.cr.config.dstu3.PackageOperationConfig;
7-
import ca.uhn.fhir.cr.config.dstu3.PopulateOperationConfig;
8-
import ca.uhn.fhir.cr.config.dstu3.QuestionnaireOperationConfig;
98
import ca.uhn.fhir.jpa.starter.annotations.OnDSTU3Condition;
109
import org.springframework.context.annotation.*;
1110

@@ -15,11 +14,8 @@
1514
CrCommonConfig.class,
1615
CrDstu3Config.class,
1716
ApplyOperationConfig.class,
18-
ExtractOperationConfig.class,
19-
PackageOperationConfig.class,
20-
PopulateOperationConfig.class,
21-
QuestionnaireOperationConfig.class
17+
DataRequirementsOperationConfig.class,
18+
EvaluateOperationConfig.class,
19+
PackageOperationConfig.class
2220
})
23-
public class StarterCrDstu3Config {
24-
25-
}
21+
public class StarterCrDstu3Config {}

‎src/main/java/ca/uhn/fhir/jpa/starter/cr/StarterCrR4Config.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22

33
import ca.uhn.fhir.cr.config.r4.ApplyOperationConfig;
44
import ca.uhn.fhir.cr.config.r4.CrR4Config;
5+
import ca.uhn.fhir.cr.config.r4.DataRequirementsOperationConfig;
6+
import ca.uhn.fhir.cr.config.r4.EvaluateOperationConfig;
57
import ca.uhn.fhir.cr.config.r4.ExtractOperationConfig;
68
import ca.uhn.fhir.cr.config.r4.PackageOperationConfig;
79
import ca.uhn.fhir.cr.config.r4.PopulateOperationConfig;
@@ -17,11 +19,11 @@
1719
CrCommonConfig.class,
1820
CrR4Config.class,
1921
ApplyOperationConfig.class,
22+
DataRequirementsOperationConfig.class,
23+
EvaluateOperationConfig.class,
2024
ExtractOperationConfig.class,
2125
PackageOperationConfig.class,
2226
PopulateOperationConfig.class,
2327
QuestionnaireOperationConfig.class
2428
})
25-
public class StarterCrR4Config {
26-
27-
}
29+
public class StarterCrR4Config {}

‎src/main/resources/application.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,7 @@ hapi:
121121
valueset_membership_mode: USE_EXPANSION # AUTO, USE_VALIDATE_CODE_OPERATION, USE_EXPANSION
122122
code_lookup_mode: USE_VALIDATE_CODE_OPERATION # AUTO, USE_VALIDATE_CODE_OPERATION, USE_CODESYSTEM_URL
123123
data:
124-
search_parameter_mode: FILTER_IN_MEMORY # AUTO, USE_SEARCH_PARAMETERS, FILTER_IN_MEMORY
124+
search_parameter_mode: USE_SEARCH_PARAMETERS # AUTO, USE_SEARCH_PARAMETERS, FILTER_IN_MEMORY
125125
terminology_parameter_mode: FILTER_IN_MEMORY # AUTO, USE_VALUE_SET_URL, USE_INLINE_CODES, FILTER_IN_MEMORY
126126
profile_mode: DECLARED # ENFORCED, DECLARED, OPTIONAL, TRUST, OFF
127127

‎src/main/resources/cds.application.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -177,7 +177,7 @@ hapi:
177177
# allowed_bundle_types: COLLECTION,DOCUMENT,MESSAGE,TRANSACTION,TRANSACTIONRESPONSE,BATCH,BATCHRESPONSE,HISTORY,SEARCHSET
178178
# allow_cascading_deletes: true
179179
# allow_contains_searches: true
180-
# allow_external_references: true
180+
allow_external_references: true
181181
# allow_multiple_delete: true
182182
# allow_override_default_search_params: true
183183
# auto_create_placeholder_reference_targets: false

‎src/test/java/ca/uhn/fhir/jpa/starter/ElasticsearchLastNR4IT.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
import java.util.List;
1717

1818
import co.elastic.clients.elasticsearch.ElasticsearchClient;
19+
import co.elastic.clients.elasticsearch.indices.IndexSettings;
1920
import co.elastic.clients.json.JsonData;
2021
import jakarta.annotation.PreDestroy;
2122
import org.elasticsearch.client.RequestOptions;
@@ -91,7 +92,7 @@ public static void beforeClass() throws IOException {
9192
elasticsearchHighLevelRestClient.indices().putTemplate(t->{
9293
t.name("hapi_fhir_template");
9394
t.indexPatterns("*");
94-
t.settings("index.max_result_window", JsonData.of(50000));
95+
t.settings(new IndexSettings.Builder().maxResultWindow(50000).build());
9596
return t;
9697
});
9798

‎src/test/java/ca/uhn/fhir/jpa/starter/ExampleServerR4IT.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,7 @@
6969
"hapi.fhir.cr.enabled=true",
7070
"hapi.fhir.cr.caregaps.section_author=Organization/alphora-author",
7171
"hapi.fhir.cr.caregaps.reporter=Organization/alphora",
72+
"hapi.fhir.cr.cql.data.search_parameter_mode=USE_SEARCH_PARAMETERS",
7273
"hapi.fhir.implementationguides.dk-core.name=hl7.fhir.dk.core",
7374
"hapi.fhir.implementationguides.dk-core.version=1.1.0",
7475
"hapi.fhir.auto_create_placeholder_reference_targets=true",

0 commit comments

Comments
 (0)
Please sign in to comment.