Skip to content

Commit

Permalink
Affected Issue(s): hapifhir#611 (hapifhir#617)
Browse files Browse the repository at this point in the history
* Affected Issue(s): hapifhir#611

What this commit has achieved:
1. MDM requires an implementation of `INicknameSvc`, it was instantiated
in `NicknameServiceConfig`
The error message regarding this was:
```
APPLICATION FAILED TO START

Description:

Parameter 2 of method matcherFactory in
ca.uhn.fhir.jpa.mdm.config.MdmCommonConfig required a bean of type
'ca.uhn.fhir.jpa.nickname.INicknameSvc' that could not be found.

Action:

Consider defining a bean of type 'ca.uhn.fhir.jpa.nickname.INicknameSvc'
in your configuration.
```
2. MDM requires the subscription of type message
The error message regarding this was:
```
2023-12-01 11:34:03
org.springframework.beans.factory.BeanCreationException: Error creating
bean with name 'mdmSubmitterInterceptorLoader': Invocation of init
method failed; nested exception is
ca.uhn.fhir.context.ConfigurationException: HAPI-2421: MDM requires
Message Subscriptions to be enabled in the Storage Settings
```

* Affected Issue(s): hapifhir#611

What this commit has achieved:
1. Added Integration Test for future-proof
  • Loading branch information
muhammad-levi authored Dec 4, 2023
1 parent 31f9f0b commit 41a537e
Show file tree
Hide file tree
Showing 3 changed files with 38 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -180,6 +180,13 @@ public JpaStorageSettings jpaStorageSettings(AppProperties appProperties) {
jpaStorageSettings.setBundleBatchPoolSize(appProperties.getBundle_batch_pool_size());
jpaStorageSettings.setBundleBatchPoolSize(appProperties.getBundle_batch_pool_max_size());

if (appProperties.getMdm_enabled()) {
// MDM requires the subscription of type message
ourLog.info("Enabling message subscriptions");
jpaStorageSettings.addSupportedSubscriptionType(
org.hl7.fhir.dstu2.model.Subscription.SubscriptionChannelType.MESSAGE);
}

storageSettings(appProperties, jpaStorageSettings);
return jpaStorageSettings;
}
Expand Down
3 changes: 2 additions & 1 deletion src/main/java/ca/uhn/fhir/jpa/starter/mdm/MdmConfig.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import ca.uhn.fhir.jpa.mdm.config.MdmConsumerConfig;
import ca.uhn.fhir.jpa.mdm.config.MdmSubmitterConfig;
import ca.uhn.fhir.jpa.searchparam.config.NicknameServiceConfig;
import ca.uhn.fhir.jpa.starter.AppProperties;
import ca.uhn.fhir.mdm.api.IMdmSettings;
import ca.uhn.fhir.mdm.rules.config.MdmRuleValidator;
Expand All @@ -20,7 +21,7 @@

@Configuration
@Conditional(MdmConfigCondition.class)
@Import({MdmConsumerConfig.class, MdmSubmitterConfig.class})
@Import({MdmConsumerConfig.class, MdmSubmitterConfig.class, NicknameServiceConfig.class})
public class MdmConfig {

@Bean
Expand Down
29 changes: 29 additions & 0 deletions src/test/java/ca/uhn/fhir/jpa/starter/MdmTest.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
package ca.uhn.fhir.jpa.starter;

import static org.assertj.core.api.Assertions.assertThat;

import org.hl7.fhir.dstu2.model.Subscription.SubscriptionChannelType;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;

import ca.uhn.fhir.jpa.api.config.JpaStorageSettings;
import ca.uhn.fhir.jpa.nickname.INicknameSvc;

@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT, classes = {Application.class}, properties = {
"hapi.fhir.fhir_version=r4",
"hapi.fhir.mdm_enabled=true"
})
class MdmTest {
@Autowired
INicknameSvc nicknameService;

@Autowired
JpaStorageSettings jpaStorageSettings;

@Test
void testApplicationStartedSuccessfully() {
assertThat(nicknameService).isNotNull();
assertThat(jpaStorageSettings.getSupportedSubscriptionTypes()).contains(SubscriptionChannelType.MESSAGE);
}
}

0 comments on commit 41a537e

Please sign in to comment.