Add test in provider with different empi json rules
This commit is contained in:
parent
31d0ed3ac1
commit
7fd690f830
|
@ -56,7 +56,6 @@ public class EmpiCandidateSearchCriteriaBuilderSvc {
|
|||
criteria.add(buildResourceMatchQuery(searchParam, valuesFromResourceForSearchParam));
|
||||
}
|
||||
});
|
||||
|
||||
if (criteria.isEmpty()) {
|
||||
//TODO GGG/KHS, re-evaluate whether we should early drop here.
|
||||
return Optional.empty();
|
||||
|
|
|
@ -81,7 +81,7 @@ public class EmpiCandidateSearchSvc {
|
|||
|
||||
//If there are zero EmpiResourceSearchParamJson, we end up only making a single search, otherwise we
|
||||
//must perform one search per EmpiResourceSearchParamJson.
|
||||
if (candidateSearchParams == null || candidateSearchParams.isEmpty()) {
|
||||
if (candidateSearchParams.isEmpty()) {
|
||||
searchForIdsAndAddToMap(theResourceType, theResource, matchedPidsToResources, filterCriteria, null);
|
||||
} else {
|
||||
for (EmpiResourceSearchParamJson resourceSearchParam : candidateSearchParams) {
|
||||
|
|
|
@ -50,6 +50,7 @@ import org.springframework.test.context.ContextConfiguration;
|
|||
import org.springframework.test.context.junit.jupiter.SpringExtension;
|
||||
|
||||
import javax.annotation.Nonnull;
|
||||
import java.io.IOException;
|
||||
import java.util.Collections;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
@ -105,7 +106,7 @@ abstract public class BaseEmpiR4Test extends BaseJpaR4Test {
|
|||
|
||||
@Override
|
||||
@AfterEach
|
||||
public void after() {
|
||||
public void after() throws IOException {
|
||||
myEmpiLinkDao.deleteAll();
|
||||
assertEquals(0, myEmpiLinkDao.count());
|
||||
super.after();
|
||||
|
|
|
@ -4,11 +4,20 @@ import ca.uhn.fhir.empi.api.IEmpiLinkQuerySvc;
|
|||
import ca.uhn.fhir.empi.api.IEmpiLinkUpdaterSvc;
|
||||
import ca.uhn.fhir.empi.api.IEmpiMatchFinderSvc;
|
||||
import ca.uhn.fhir.empi.api.IEmpiPersonMergerSvc;
|
||||
import ca.uhn.fhir.empi.api.IEmpiSettings;
|
||||
import ca.uhn.fhir.empi.provider.EmpiProviderR4;
|
||||
import ca.uhn.fhir.empi.rules.config.EmpiSettings;
|
||||
import ca.uhn.fhir.jpa.empi.BaseEmpiR4Test;
|
||||
import ca.uhn.fhir.validation.IResourceLoader;
|
||||
import com.google.common.base.Charsets;
|
||||
import org.apache.commons.io.IOUtils;
|
||||
import org.junit.jupiter.api.AfterEach;
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.core.io.DefaultResourceLoader;
|
||||
import org.springframework.core.io.Resource;
|
||||
|
||||
import java.io.IOException;
|
||||
|
||||
public abstract class BaseProviderR4Test extends BaseEmpiR4Test {
|
||||
EmpiProviderR4 myEmpiProviderR4;
|
||||
|
@ -22,9 +31,27 @@ public abstract class BaseProviderR4Test extends BaseEmpiR4Test {
|
|||
private IEmpiLinkQuerySvc myEmpiLinkQuerySvc;
|
||||
@Autowired
|
||||
private IResourceLoader myResourceLoader;
|
||||
@Autowired
|
||||
private IEmpiSettings myEmpiSettings;
|
||||
|
||||
private String defaultScript;
|
||||
|
||||
protected void setEmpiRuleJson(String theString) throws IOException {
|
||||
DefaultResourceLoader resourceLoader = new DefaultResourceLoader();
|
||||
Resource resource = resourceLoader.getResource(theString);
|
||||
String json = IOUtils.toString(resource.getInputStream(), Charsets.UTF_8);
|
||||
((EmpiSettings)myEmpiSettings).getScriptText();
|
||||
((EmpiSettings)myEmpiSettings).setScriptText(json);
|
||||
}
|
||||
|
||||
@BeforeEach
|
||||
public void before() {
|
||||
myEmpiProviderR4 = new EmpiProviderR4(myFhirContext, myEmpiMatchFinderSvc, myPersonMergerSvc, myEmpiLinkUpdaterSvc, myEmpiLinkQuerySvc, myResourceLoader);
|
||||
defaultScript = ((EmpiSettings)myEmpiSettings).getScriptText();
|
||||
}
|
||||
@AfterEach
|
||||
public void after() throws IOException {
|
||||
super.after();
|
||||
((EmpiSettings)myEmpiSettings).setScriptText(defaultScript);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -18,7 +18,20 @@ public class EmpiProviderMatchR4Test extends BaseProviderR4Test {
|
|||
}
|
||||
|
||||
@Test
|
||||
public void testMatch() {
|
||||
public void testMatch() throws Exception {
|
||||
Patient jane = buildJanePatient();
|
||||
jane.setActive(true);
|
||||
Patient createdJane = createPatient(jane);
|
||||
Patient newJane = buildJanePatient();
|
||||
|
||||
Bundle result = myEmpiProviderR4.match(newJane);
|
||||
assertEquals(1, result.getEntry().size());
|
||||
assertEquals(createdJane.getId(), result.getEntryFirstRep().getResource().getId());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testMatchWithEmptySearchParamCandidates() throws Exception {
|
||||
setEmpiRuleJson("empi/empty-candidate-search-params.json");
|
||||
Patient jane = buildJanePatient();
|
||||
jane.setActive(true);
|
||||
Patient createdJane = createPatient(jane);
|
||||
|
|
|
@ -14,6 +14,8 @@ import org.junit.jupiter.api.AfterEach;
|
|||
import org.junit.jupiter.api.Test;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
|
||||
import java.io.IOException;
|
||||
|
||||
import static org.hamcrest.CoreMatchers.equalTo;
|
||||
import static org.hamcrest.CoreMatchers.is;
|
||||
import static org.hamcrest.MatcherAssert.assertThat;
|
||||
|
@ -29,7 +31,7 @@ public class EmpiLinkSvcTest extends BaseEmpiR4Test {
|
|||
|
||||
@Override
|
||||
@AfterEach
|
||||
public void after() {
|
||||
public void after() throws IOException {
|
||||
myExpungeEverythingService.expungeEverythingByType(EmpiLink.class);
|
||||
super.after();
|
||||
}
|
||||
|
|
|
@ -25,6 +25,7 @@ import org.junit.jupiter.api.BeforeEach;
|
|||
import org.junit.jupiter.api.Test;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.UUID;
|
||||
|
@ -82,7 +83,7 @@ public class EmpiPersonMergerSvcTest extends BaseEmpiR4Test {
|
|||
|
||||
@Override
|
||||
@AfterEach
|
||||
public void after() {
|
||||
public void after() throws IOException {
|
||||
myInterceptorService.unregisterInterceptor(myEmpiStorageInterceptor);
|
||||
super.after();
|
||||
}
|
||||
|
|
|
@ -0,0 +1,34 @@
|
|||
{
|
||||
"version": "1",
|
||||
"candidateSearchParams": [],
|
||||
"candidateFilterSearchParams": [
|
||||
{
|
||||
"resourceType": "*",
|
||||
"searchParam": "active",
|
||||
"fixedValue": "true"
|
||||
}
|
||||
],
|
||||
"matchFields": [
|
||||
{
|
||||
"name": "cosine-given-name",
|
||||
"resourceType": "*",
|
||||
"resourcePath": "name.given",
|
||||
"metric": "COSINE",
|
||||
"matchThreshold": 0.8,
|
||||
"exact": true
|
||||
},
|
||||
{
|
||||
"name": "jaro-last-name",
|
||||
"resourceType": "*",
|
||||
"resourcePath": "name.family",
|
||||
"metric": "JARO_WINKLER",
|
||||
"matchThreshold": 0.8,
|
||||
"exact": true
|
||||
}
|
||||
],
|
||||
"matchResultMap": {
|
||||
"cosine-given-name" : "POSSIBLE_MATCH",
|
||||
"cosine-given-name,jaro-last-name" : "MATCH"
|
||||
},
|
||||
"eidSystem": "http://company.io/fhir/NamingSystem/custom-eid-system"
|
||||
}
|
|
@ -40,6 +40,7 @@ import org.springframework.transaction.TransactionStatus;
|
|||
import org.springframework.transaction.support.TransactionCallbackWithoutResult;
|
||||
import org.springframework.transaction.support.TransactionTemplate;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.concurrent.Callable;
|
||||
|
||||
@TestPropertySource(properties = {
|
||||
|
@ -71,7 +72,7 @@ public abstract class BaseJpaTest {
|
|||
MemoryCacheService myMemoryCacheService;
|
||||
|
||||
@AfterEach
|
||||
public void after() {
|
||||
public void after() throws IOException {
|
||||
ourLog.info("\n --- @After ---");
|
||||
myExpungeEverythingService.expungeEverything(null);
|
||||
myMemoryCacheService.invalidateAllCaches();
|
||||
|
|
Loading…
Reference in New Issue