use of de.symeda.sormas.backend.TestDataCreator.RDCF in project SORMAS-Project by hzi-braunschweig.
the class CaseFacadeEjbTest method testGetMostRecentPreviousCase.
@Test
public void testGetMostRecentPreviousCase() {
RDCF rdcf = creator.createRDCF();
UserDto user = creator.createUser(rdcf, UserRole.NATIONAL_USER);
PersonDto person1 = creator.createPerson();
PersonDto person2 = creator.createPerson();
Date now = new Date();
CaseDataDto newCase = creator.createCase(user.toReference(), person1.toReference(), rdcf, c -> c.setDisease(Disease.EVD));
CaseDataDto previousCase1 = creator.createCase(user.toReference(), person1.toReference(), rdcf, c -> {
c.setDisease(Disease.EVD);
c.setReportDate(DateHelper.subtractDays(now, 1));
c.getSymptoms().setOnsetDate(DateHelper.subtractDays(now, 7));
});
creator.createCase(user.toReference(), person1.toReference(), rdcf, c -> {
c.setDisease(Disease.EVD);
c.setReportDate(DateHelper.subtractDays(now, 3));
c.getSymptoms().setOnsetDate(DateHelper.subtractDays(now, 9));
});
creator.createCase(user.toReference(), person1.toReference(), rdcf, c -> c.setDisease(Disease.EVD));
creator.createCase(user.toReference(), person1.toReference(), rdcf, c -> {
c.setDisease(Disease.CHOLERA);
c.getSymptoms().setOnsetDate(DateHelper.subtractDays(now, 2));
});
creator.createCase(user.toReference(), person2.toReference(), rdcf, c -> {
c.setDisease(Disease.EVD);
c.getSymptoms().setOnsetDate(DateHelper.subtractDays(now, 2));
});
assertThat(getCaseFacade().getMostRecentPreviousCase(person1.toReference(), Disease.EVD, newCase.getReportDate()).getUuid(), is(previousCase1.getUuid()));
}
use of de.symeda.sormas.backend.TestDataCreator.RDCF in project SORMAS-Project by hzi-braunschweig.
the class CaseFacadeEjbTest method testGetIndexListByFreeText.
@Test
public void testGetIndexListByFreeText() {
String districtName = "District";
RDCF rdcf = creator.createRDCF("Region", districtName, "Community", "Facility");
useSurveillanceOfficerLogin(rdcf);
UserDto user = creator.createUser(rdcf.region.getUuid(), rdcf.district.getUuid(), rdcf.facility.getUuid(), "Surv", "Sup", UserRole.SURVEILLANCE_SUPERVISOR);
PersonDto person1 = creator.createPerson("FirstName1", "LastName1", p -> {
p.getAddress().setPostalCode("10115");
p.getAddress().setCity("Berlin");
p.setPhone("+4930-90-1820");
});
creator.createCase(user.toReference(), person1.toReference(), Disease.EVD, CaseClassification.PROBABLE, InvestigationStatus.PENDING, new Date(), rdcf);
PersonDto person2 = creator.createPerson("FirstName2", "LastName2", p -> {
p.getAddress().setPostalCode("20095");
p.getAddress().setCity("Hamburg");
p.setPhone("+49-30-901822");
});
creator.createCase(user.toReference(), person2.toReference(), Disease.EVD, CaseClassification.PROBABLE, InvestigationStatus.PENDING, new Date(), rdcf);
PersonDto person3 = creator.createPerson("FirstName3", "Last Name3", p -> {
p.getAddress().setPostalCode("80331");
p.getAddress().setCity("Munich");
p.setPhone("+49 31 9018 20");
});
creator.createCase(user.toReference(), person3.toReference(), Disease.EVD, CaseClassification.PROBABLE, InvestigationStatus.PENDING, new Date(), rdcf);
Assert.assertEquals(3, getCaseFacade().getIndexList(null, 0, 100, null).size());
Assert.assertEquals(1, getCaseFacade().getIndexList(new CaseCriteria().personLike("Munich"), 0, 100, null).size());
Assert.assertEquals(1, getCaseFacade().getIndexList(new CaseCriteria().personLike("Last Name3"), 0, 100, null).size());
Assert.assertEquals(1, getCaseFacade().getIndexList(new CaseCriteria().personLike("20095"), 0, 100, null).size());
Assert.assertEquals(2, getCaseFacade().getIndexList(new CaseCriteria().personLike("+49-31-901-820"), 0, 100, null).size());
Assert.assertEquals(1, getCaseFacade().getIndexList(new CaseCriteria().personLike("4930901822"), 0, 100, null).size());
}
use of de.symeda.sormas.backend.TestDataCreator.RDCF in project SORMAS-Project by hzi-braunschweig.
the class CaseFacadeEjbTest method testGetDuplicatesWithReportDateThreshold.
@Test
public void testGetDuplicatesWithReportDateThreshold() {
RDCF rdcf = creator.createRDCF();
Date now = new Date();
// case and person matching for asserts
PersonDto person = creator.createPerson("Fname", "Lname", (p) -> {
p.setBirthdateDD(12);
p.setBirthdateMM(3);
p.setBirthdateYYYY(1968);
});
final UserReferenceDto user = creator.createUser(rdcf, UserRole.SURVEILLANCE_OFFICER).toReference();
CaseDataDto caze = creator.createCase(user, rdcf, (c) -> {
c.setPerson(person.toReference());
c.setDisease(Disease.CORONAVIRUS);
c.setDistrict(rdcf.district);
c.setReportDate(new Date());
});
PersonDto person2 = creator.createPerson("Fname", "Lname", (p) -> {
p.setBirthdateMM(3);
p.setBirthdateYYYY(1968);
});
creator.createCase(user, rdcf, (c) -> {
c.setPerson(person2.toReference());
c.setDisease(Disease.CORONAVIRUS);
c.setReportDate(new DateTime(now).minusDays(1).toDate());
});
CasePersonDto casePerson = new CasePersonDto();
PersonDto duplicatePerson = PersonDto.build();
CaseDataDto duplicateCaze = CaseDataDto.build(duplicatePerson.toReference(), Disease.CORONAVIRUS);
duplicateCaze.setResponsibleDistrict(rdcf.district);
duplicateCaze.setReportDate(new Date());
casePerson.setCaze(duplicateCaze);
casePerson.setPerson(duplicatePerson);
List<CasePersonDto> duplicates;
duplicateCaze.setExternalToken(null);
duplicatePerson.setFirstName("Fname");
duplicatePerson.setLastName("Lname");
duplicates = getCaseFacade().getDuplicates(casePerson, 1);
MatcherAssert.assertThat(duplicates, hasSize(2));
}
use of de.symeda.sormas.backend.TestDataCreator.RDCF in project SORMAS-Project by hzi-braunschweig.
the class CaseFacadeEjbTest method testGetIndexList.
@Test
public void testGetIndexList() {
String districtName = "District";
RDCF rdcf = creator.createRDCF("Region", districtName, "Community", "Facility");
useSurveillanceOfficerLogin(rdcf);
UserDto user = creator.createUser(rdcf.region.getUuid(), rdcf.district.getUuid(), rdcf.facility.getUuid(), "Surv", "Sup", UserRole.SURVEILLANCE_SUPERVISOR);
String lastName = "Person";
PersonDto cazePerson = creator.createPerson("Case", lastName);
creator.createCase(user.toReference(), cazePerson.toReference(), Disease.EVD, CaseClassification.PROBABLE, InvestigationStatus.PENDING, new Date(), rdcf);
creator.createCase(user.toReference(), cazePerson.toReference(), Disease.EVD, CaseClassification.PROBABLE, InvestigationStatus.PENDING, new Date(), rdcf, c -> c.setHealthFacilityDetails("abc"));
creator.createCase(user.toReference(), cazePerson.toReference(), Disease.EVD, CaseClassification.PROBABLE, InvestigationStatus.PENDING, new Date(), rdcf, c -> c.setHealthFacilityDetails("xyz"));
List<CaseIndexDto> results = getCaseFacade().getIndexList(null, 0, 100, Arrays.asList(new SortProperty(CaseIndexDto.DISEASE), new SortProperty(CaseIndexDto.PERSON_FIRST_NAME), new SortProperty(CaseIndexDto.RESPONSIBLE_DISTRICT_NAME), new SortProperty(CaseIndexDto.HEALTH_FACILITY_NAME, false), new SortProperty(CaseIndexDto.SURVEILLANCE_OFFICER_UUID)));
// List should have one entry
assertEquals(3, results.size());
assertEquals(districtName, results.get(0).getResponsibleDistrictName());
assertEquals(lastName, results.get(0).getPersonLastName());
assertEquals("Facility - xyz", results.get(0).getHealthFacilityName());
assertEquals("Facility - abc", results.get(1).getHealthFacilityName());
assertEquals("Facility", results.get(2).getHealthFacilityName());
}
use of de.symeda.sormas.backend.TestDataCreator.RDCF in project SORMAS-Project by hzi-braunschweig.
the class CaseFacadeEjbTest method testGetIndexListByEventFreeText.
@Test
public void testGetIndexListByEventFreeText() {
String districtName = "District";
RDCF rdcf = creator.createRDCF("Region", districtName, "Community", "Facility");
useSurveillanceOfficerLogin(rdcf);
UserDto user = creator.createUser(rdcf.region.getUuid(), rdcf.district.getUuid(), rdcf.facility.getUuid(), "Surv", "Sup", UserRole.SURVEILLANCE_SUPERVISOR);
PersonDto person1 = creator.createPerson();
PersonDto person2 = creator.createPerson();
EventDto event1 = creator.createEvent(EventStatus.SIGNAL, EventInvestigationStatus.PENDING, "Signal foo", "A long description for this event", user.toReference(), eventDto -> {
});
EventParticipantDto event1Participant1 = creator.createEventParticipant(event1.toReference(), person1, user.toReference());
EventParticipantDto event1Participant2 = creator.createEventParticipant(event1.toReference(), person2, user.toReference());
CaseDataDto case1 = creator.createCase(user.toReference(), person1.toReference(), Disease.EVD, CaseClassification.PROBABLE, InvestigationStatus.PENDING, new Date(), rdcf);
CaseDataDto case2 = creator.createCase(user.toReference(), person2.toReference(), Disease.EVD, CaseClassification.PROBABLE, InvestigationStatus.PENDING, new Date(), rdcf);
event1Participant1.setResultingCase(case1.toReference());
getEventParticipantFacade().saveEventParticipant(event1Participant1);
Assert.assertEquals(2, getCaseFacade().getIndexList(null, 0, 100, null).size());
Assert.assertEquals(1, getCaseFacade().getIndexList(new CaseCriteria().eventLike("signal"), 0, 100, null).size());
Assert.assertEquals(1, getCaseFacade().getIndexList(new CaseCriteria().eventLike(event1.getUuid()), 0, 100, null).size());
Assert.assertEquals(1, getCaseFacade().getIndexList(new CaseCriteria().eventLike("signal description"), 0, 100, null).size());
}
Aggregations