Code is compiling again :)

This commit is contained in:
Tadgh 2020-11-09 21:49:38 -05:00
parent 625744b23d
commit d2e9201f11
2 changed files with 28 additions and 17 deletions

View File

@ -9,7 +9,6 @@ import ca.uhn.fhir.jpa.entity.EmpiLink;
import ca.uhn.fhir.rest.server.exceptions.InternalErrorException; import ca.uhn.fhir.rest.server.exceptions.InternalErrorException;
import org.hl7.fhir.r4.model.IdType; import org.hl7.fhir.r4.model.IdType;
import org.hl7.fhir.r4.model.Patient; import org.hl7.fhir.r4.model.Patient;
import org.hl7.fhir.r4.model.Person;
import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@ -48,22 +47,22 @@ public class EmpiLinkSvcTest extends BaseEmpiR4Test {
public void testCreateRemoveLink() { public void testCreateRemoveLink() {
assertLinkCount(0); assertLinkCount(0);
Patient sourcePatient = createSourceResourcePatient(); Patient sourcePatient = createSourceResourcePatient();
IdType personId = sourcePatient.getIdElement().toUnqualifiedVersionless(); IdType sourcePatientId = sourcePatient.getIdElement().toUnqualifiedVersionless();
assertEquals(0, sourcePatient.getLink().size()); assertEquals(0, sourcePatient.getLink().size());
Patient patient = createPatient(); Patient patient = createPatient();
{ {
myEmpiLinkSvc.updateLink(sourcePatient, patient, POSSIBLE_MATCH, EmpiLinkSourceEnum.AUTO, createContextForCreate("Patient")); myEmpiLinkSvc.updateLink(sourcePatient, patient, POSSIBLE_MATCH, EmpiLinkSourceEnum.AUTO, createContextForCreate("Patient"));
assertLinkCount(1); assertLinkCount(1);
Person newPerson = myPersonDao.read(personId); Patient newSourcePatient = myPatientDao.read(sourcePatientId);
assertEquals(1, newPerson.getLink().size()); assertEquals(1, newSourcePatient.getLink().size());
} }
{ {
myEmpiLinkSvc.updateLink(sourcePatient, patient, EmpiMatchOutcome.NO_MATCH, EmpiLinkSourceEnum.MANUAL, createContextForCreate("Patient")); myEmpiLinkSvc.updateLink(sourcePatient, patient, EmpiMatchOutcome.NO_MATCH, EmpiLinkSourceEnum.MANUAL, createContextForCreate("Patient"));
assertLinkCount(1); assertLinkCount(1);
Person newPerson = myPersonDao.read(personId); Patient newSourcePatient = myPatientDao.read(sourcePatientId);
assertEquals(0, newPerson.getLink().size()); assertEquals(0, newSourcePatient.getLink().size());
} }
} }
@ -73,7 +72,7 @@ public class EmpiLinkSvcTest extends BaseEmpiR4Test {
assertLinkCount(0); assertLinkCount(0);
Patient sourcePatient1 = createSourceResourcePatient(); Patient sourcePatient1 = createSourceResourcePatient();
Patient sourcePatient2 = createSourceResourcePatient(); Patient sourcePatient2 = createSourceResourcePatient();
// TODO NOT VALID // TODO GGG MDM NOT VALID
myEmpiLinkSvc.updateLink(sourcePatient1, sourcePatient2, EmpiMatchOutcome.POSSIBLE_DUPLICATE, EmpiLinkSourceEnum.AUTO, createContextForCreate("Patient")); myEmpiLinkSvc.updateLink(sourcePatient1, sourcePatient2, EmpiMatchOutcome.POSSIBLE_DUPLICATE, EmpiLinkSourceEnum.AUTO, createContextForCreate("Patient"));
assertLinkCount(1); assertLinkCount(1);
} }

View File

@ -9,17 +9,16 @@ import ca.uhn.fhir.empi.util.EIDHelper;
import ca.uhn.fhir.empi.util.PersonHelper; import ca.uhn.fhir.empi.util.PersonHelper;
import ca.uhn.fhir.jpa.dao.data.IEmpiLinkDao; import ca.uhn.fhir.jpa.dao.data.IEmpiLinkDao;
import ca.uhn.fhir.jpa.empi.BaseEmpiR4Test; import ca.uhn.fhir.jpa.empi.BaseEmpiR4Test;
import ca.uhn.fhir.jpa.empi.dao.EmpiLinkDaoSvc;
import ca.uhn.fhir.jpa.entity.EmpiLink; import ca.uhn.fhir.jpa.entity.EmpiLink;
import ca.uhn.fhir.jpa.searchparam.SearchParameterMap; import ca.uhn.fhir.jpa.searchparam.SearchParameterMap;
import ca.uhn.fhir.rest.api.server.IBundleProvider; import ca.uhn.fhir.rest.api.server.IBundleProvider;
import ca.uhn.fhir.rest.param.TokenParam;
import org.hl7.fhir.instance.model.api.IAnyResource; import org.hl7.fhir.instance.model.api.IAnyResource;
import org.hl7.fhir.instance.model.api.IBaseResource; import org.hl7.fhir.instance.model.api.IBaseResource;
import org.hl7.fhir.r4.model.Enumerations; import org.hl7.fhir.r4.model.Enumerations;
import org.hl7.fhir.r4.model.HumanName; import org.hl7.fhir.r4.model.HumanName;
import org.hl7.fhir.r4.model.Identifier; import org.hl7.fhir.r4.model.Identifier;
import org.hl7.fhir.r4.model.Patient; import org.hl7.fhir.r4.model.Patient;
import org.hl7.fhir.r4.model.Person;
import org.hl7.fhir.r4.model.Practitioner; import org.hl7.fhir.r4.model.Practitioner;
import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
@ -37,8 +36,14 @@ import static ca.uhn.fhir.empi.api.EmpiMatchResultEnum.NO_MATCH;
import static ca.uhn.fhir.empi.api.EmpiMatchResultEnum.POSSIBLE_DUPLICATE; import static ca.uhn.fhir.empi.api.EmpiMatchResultEnum.POSSIBLE_DUPLICATE;
import static ca.uhn.fhir.empi.api.EmpiMatchResultEnum.POSSIBLE_MATCH; import static ca.uhn.fhir.empi.api.EmpiMatchResultEnum.POSSIBLE_MATCH;
import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.*; import static org.hamcrest.Matchers.blankOrNullString;
import static org.junit.jupiter.api.Assertions.*; import static org.hamcrest.Matchers.equalTo;
import static org.hamcrest.Matchers.hasSize;
import static org.hamcrest.Matchers.in;
import static org.hamcrest.Matchers.is;
import static org.hamcrest.Matchers.not;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.slf4j.LoggerFactory.getLogger; import static org.slf4j.LoggerFactory.getLogger;
public class EmpiMatchLinkSvcTest extends BaseEmpiR4Test { public class EmpiMatchLinkSvcTest extends BaseEmpiR4Test {
@ -377,7 +382,7 @@ public class EmpiMatchLinkSvcTest extends BaseEmpiR4Test {
} }
@Test @Test
public void testWhenAllMatchResultsArePOSSIBLE_MATCHThattheyAreLinkedAndNoSourceREsourceIsCreated() { public void testWhenAllMatchResultsArePOSSIBLE_MATCHThattheyAreLinkedAndNoSourceResourceIsCreated() {
/** /**
* CASE 4: Only POSSIBLE_MATCH outcomes -> In this case, empi-link records are created with POSSIBLE_MATCH * CASE 4: Only POSSIBLE_MATCH outcomes -> In this case, empi-link records are created with POSSIBLE_MATCH
* outcome and await manual assignment to either NO_MATCH or MATCHED. Person link is added. * outcome and await manual assignment to either NO_MATCH or MATCHED. Person link is added.
@ -415,17 +420,24 @@ public class EmpiMatchLinkSvcTest extends BaseEmpiR4Test {
assertThat(patient3, is(possibleMatchWith(patient2))); assertThat(patient3, is(possibleMatchWith(patient2)));
assertThat(patient3, is(possibleMatchWith(patient))); assertThat(patient3, is(possibleMatchWith(patient)));
IBundleProvider bundle = myPersonDao.search(new SearchParameterMap()); IBundleProvider bundle = myPatientDao.search(buildGoldenRecordSearchParameterMap());
assertEquals(1, bundle.size()); assertEquals(1, bundle.size());
Person person = (Person) bundle.getResources(0, 1).get(0); Patient sourcePatient = (Patient) bundle.getResources(0, 1).get(0);
assertEquals(Person.IdentityAssuranceLevel.LEVEL2, person.getLink().get(0).getAssurance()); //assertEquals(Person.IdentityAssuranceLevel.LEVEL2, sourcePatient.getLink().get(0).getAssurance());
assertEquals(Person.IdentityAssuranceLevel.LEVEL1, person.getLink().get(1).getAssurance()); //assertEquals(Person.IdentityAssuranceLevel.LEVEL1, sourcePatient.getLink().get(1).getAssurance());
assertEquals(Person.IdentityAssuranceLevel.LEVEL1, person.getLink().get(2).getAssurance()); //assertEquals(Person.IdentityAssuranceLevel.LEVEL1, sourcePatient.getLink().get(2).getAssurance());
//TODO GGG MDM: Convert these asserts to checking the MPI_LINK table
assertLinksMatchResult(MATCH, POSSIBLE_MATCH, POSSIBLE_MATCH); assertLinksMatchResult(MATCH, POSSIBLE_MATCH, POSSIBLE_MATCH);
assertLinksCreatedNewResource(true, false, false); assertLinksCreatedNewResource(true, false, false);
assertLinksMatchedByEid(false, false, false); assertLinksMatchedByEid(false, false, false);
} }
private SearchParameterMap buildGoldenRecordSearchParameterMap() {
SearchParameterMap searchParameterMap = new SearchParameterMap();
searchParameterMap.setLoadSynchronous(true);
searchParameterMap.add("_tag", new TokenParam(EmpiConstants.SYSTEM_EMPI_MANAGED, EmpiConstants.CODE_HAPI_EMPI_MANAGED));
return searchParameterMap;
}
@Test @Test
public void testWhenAnIncomingResourceHasMatchesAndPossibleMatchesThatItLinksToMatch() { public void testWhenAnIncomingResourceHasMatchesAndPossibleMatchesThatItLinksToMatch() {