Skip to content
This repository was archived by the owner on May 5, 2021. It is now read-only.

Commit 04bc849

Browse files
lgallgal
authored andcommitted
SORMAS-Foundation#2975 export person address as home address
1 parent c799ebd commit 04bc849

5 files changed

Lines changed: 31 additions & 23 deletions

File tree

sormas-api/src/main/java/de/symeda/sormas/api/bagexport/BAGExportCaseDto.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,7 @@ public class BAGExportCaseDto implements Serializable {
105105

106106
//@formatter:off
107107
public BAGExportCaseDto(Integer caseIdIsm, Long caseId, Long personId, String lastName, String firstName,
108+
String homeAddressStreet, String homeAddressHouseNumber, String homeAddressCity, String homeAddressPostalCode,
108109
String phoneNumber, String mobileNumber, String emailAddress, Sex sex,
109110
Integer birthdateDD, Integer birthdateMM, Integer birthdateYYYY,
110111
OccupationType occupationType, Boolean symptomatic,
@@ -123,6 +124,10 @@ public BAGExportCaseDto(Integer caseIdIsm, Long caseId, Long personId, String la
123124
this.personId = personId;
124125
this.lastName = lastName;
125126
this.firstName = firstName;
127+
this.homeAddressStreet = homeAddressStreet;
128+
this.homeAddressHouseNumber = homeAddressHouseNumber;
129+
this.homeAddressCity = homeAddressCity;
130+
this.homeAddressPostalCode = homeAddressPostalCode;
126131
this.phoneNumber = phoneNumber;
127132
this.mobileNumber = mobileNumber;
128133
this.emailAddress = emailAddress;

sormas-api/src/main/java/de/symeda/sormas/api/bagexport/BAGExportContactDto.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,7 @@ public class BAGExportContactDto implements Serializable {
8787

8888
//@formatter:off
8989
public BAGExportContactDto(Long contactId, Long personId, String lastName, String firstName,
90+
String homeAddressStreet, String homeAddressHouseNumber, String homeAddressCity, String homeAddressPostalCode,
9091
String phoneNumber, String mobileNumber, String emailAddress, Sex sex,
9192
Integer birthdateDD, Integer birthdateMM, Integer birthdateYYYY,
9293
OccupationType occupationType,
@@ -101,6 +102,10 @@ public BAGExportContactDto(Long contactId, Long personId, String lastName, Strin
101102
this.personId = personId;
102103
this.lastName = lastName;
103104
this.firstName = firstName;
105+
this.homeAddressStreet = homeAddressStreet;
106+
this.homeAddressHouseNumber = homeAddressHouseNumber;
107+
this.homeAddressCity = homeAddressCity;
108+
this.homeAddressPostalCode = homeAddressPostalCode;
104109
this.phoneNumber = phoneNumber;
105110
this.mobileNumber = mobileNumber;
106111
this.emailAddress = emailAddress;

sormas-backend/src/main/java/de/symeda/sormas/backend/bagexport/BAGExportFacadeEjb.java

Lines changed: 10 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,7 @@ public List<BAGExportCaseDto> getCaseExportList(int first, int max) {
7070
CaseJoins<Case> caseJoins = new CaseJoins<>(caseRoot);
7171

7272
Join<Case, Person> person = caseJoins.getPerson();
73+
Join<Person, Location> homeAddress = caseJoins.getPersonAddress();
7374

7475
Expression<String> mobileNumber = cb.literal(TODO_VALUE);
7576

@@ -79,6 +80,10 @@ public List<BAGExportCaseDto> getCaseExportList(int first, int max) {
7980
person.get(Person.ID),
8081
person.get(Person.LAST_NAME),
8182
person.get(Person.FIRST_NAME),
83+
homeAddress.get(Location.STREET),
84+
homeAddress.get(Location.HOUSE_NUMBER),
85+
homeAddress.get(Location.CITY),
86+
homeAddress.get(Location.POSTAL_CODE),
8287
person.get(Person.PHONE),
8388
mobileNumber,
8489
person.get(Person.EMAIL_ADDRESS),
@@ -145,13 +150,6 @@ public List<BAGExportCaseDto> getCaseExportList(int first, int max) {
145150
exportList.forEach(caze -> {
146151
List<Location> addresses = personAddresses.getOrDefault(caze.getPersonId(), Collections.emptyList());
147152

148-
addresses.stream().filter(a -> PersonAddressType.HOME.equals(a.getAddressType())).findFirst().ifPresent(homeAddress -> {
149-
caze.setHomeAddressStreet(homeAddress.getStreet());
150-
caze.setHomeAddressHouseNumber(homeAddress.getHouseNumber());
151-
caze.setHomeAddressCity(homeAddress.getCity());
152-
caze.setHomeAddressPostalCode(homeAddress.getPostalCode());
153-
});
154-
155153
addresses.stream().filter(a -> PersonAddressType.PLACE_OF_WORK.equals(a.getAddressType())).findFirst().ifPresent(workAddress -> {
156154
caze.setWorkPlaceStreet(workAddress.getStreet());
157155
caze.setWorkPlaceStreetNumber(workAddress.getHouseNumber());
@@ -209,6 +207,7 @@ public List<BAGExportContactDto> getContactExportList(int first, int max) {
209207
ContactJoins contactJoins = new ContactJoins(contactRoot);
210208

211209
Join<Contact, Person> person = contactJoins.getPerson();
210+
Join<Person, Location> homeAddress = contactJoins.getPersonAddress();
212211

213212
Expression<String> mobileNumber = cb.literal(TODO_VALUE);
214213

@@ -217,6 +216,10 @@ public List<BAGExportContactDto> getContactExportList(int first, int max) {
217216
person.get(Person.ID),
218217
person.get(Person.LAST_NAME),
219218
person.get(Person.FIRST_NAME),
219+
homeAddress.get(Location.STREET),
220+
homeAddress.get(Location.HOUSE_NUMBER),
221+
homeAddress.get(Location.CITY),
222+
homeAddress.get(Location.POSTAL_CODE),
220223
person.get(Person.PHONE),
221224
mobileNumber,
222225
person.get(Person.EMAIL_ADDRESS),
@@ -278,13 +281,6 @@ public List<BAGExportContactDto> getContactExportList(int first, int max) {
278281
exportList.forEach(contact -> {
279282
List<Location> addresses = personAddresses.getOrDefault(contact.getPersonId(), Collections.emptyList());
280283

281-
addresses.stream().filter(a -> PersonAddressType.HOME.equals(a.getAddressType())).findFirst().ifPresent(homeAddress -> {
282-
contact.setHomeAddressStreet(homeAddress.getStreet());
283-
contact.setHomeAddressHouseNumber(homeAddress.getHouseNumber());
284-
contact.setHomeAddressCity(homeAddress.getCity());
285-
contact.setHomeAddressPostalCode(homeAddress.getPostalCode());
286-
});
287-
288284
addresses.stream().filter(a -> PersonAddressType.PLACE_OF_WORK.equals(a.getAddressType())).findFirst().ifPresent(workAddress -> {
289285
contact.setWorkPlaceStreet(workAddress.getStreet());
290286
contact.setWorkPlaceStreetNumber(workAddress.getHouseNumber());

sormas-backend/src/main/java/de/symeda/sormas/backend/contact/ContactJoins.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,7 @@ public class ContactJoins extends AbstractDomainObjectJoins<Contact, Contact> {
6262
private Join<Contact, Visit> visits;
6363
private Join<Visit, Symptoms> visitSymptoms;
6464
private Join<Contact, HealthConditions> healthConditions;
65+
private Join<Person, Location> personAddress;
6566

6667
public ContactJoins(Root<Contact> contact) {
6768
super(contact);
@@ -252,4 +253,12 @@ public Join<Contact, HealthConditions> getHealthConditions() {
252253
public void setHealthConditions(Join<Contact, HealthConditions> healthConditions) {
253254
this.healthConditions = healthConditions;
254255
}
256+
257+
public Join<Person, Location> getPersonAddress() {
258+
return getOrCreate(personAddress, Person.ADDRESS, JoinType.LEFT, getPerson(), this::setPersonAddress);
259+
}
260+
261+
private void setPersonAddress(Join<Person, Location> personAddress) {
262+
this.personAddress = personAddress;
263+
}
255264
}

sormas-backend/src/test/java/de/symeda/sormas/backend/bagexport/BAGExportFacadeEjbTest.java

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -66,8 +66,7 @@ public void testCaseExport() {
6666
final UserDto user = creator.createUser(rdcf, UserRole.SURVEILLANCE_SUPERVISOR);
6767

6868
PersonDto personDto = creator.createPerson("James", "Smith", p -> {
69-
LocationDto homeAddress = LocationDto.build();
70-
homeAddress.setAddressType(PersonAddressType.HOME);
69+
LocationDto homeAddress = p.getAddress();
7170
homeAddress.setStreet("Home street");
7271
homeAddress.setHouseNumber("11A");
7372
homeAddress.setCity("Home city");
@@ -77,8 +76,6 @@ public void testCaseExport() {
7776
p.setEmailAddress("[email protected]");
7877
p.setSex(Sex.MALE);
7978

80-
p.getAddresses().add(homeAddress);
81-
8279
p.setBirthdateYYYY(1978);
8380
p.setBirthdateMM(10);
8481
p.setBirthdateDD(22);
@@ -253,7 +250,7 @@ public void testContactExport() {
253250
final UserDto user = creator.createUser(rdcf, UserRole.SURVEILLANCE_SUPERVISOR);
254251

255252
PersonDto personDto = creator.createPerson("James", "Smith", p -> {
256-
LocationDto homeAddress = LocationDto.build();
253+
LocationDto homeAddress = p.getAddress();
257254
homeAddress.setAddressType(PersonAddressType.HOME);
258255
homeAddress.setStreet("Home street");
259256
homeAddress.setHouseNumber("11A");
@@ -264,8 +261,6 @@ public void testContactExport() {
264261
p.setEmailAddress("[email protected]");
265262
p.setSex(Sex.MALE);
266263

267-
p.getAddresses().add(homeAddress);
268-
269264
p.setBirthdateYYYY(1978);
270265
p.setBirthdateMM(10);
271266
p.setBirthdateDD(22);
@@ -300,8 +295,6 @@ public void testContactExport() {
300295
p.getAddresses().add(isolationAddress);
301296
});
302297

303-
Date symptomDate = new Date();
304-
Date contactTracingDate = DateHelper.subtractDays(new Date(), 10);
305298
Date quarantineFromDate = DateHelper.subtractDays(new Date(), 11);
306299
Date quarantineToDate = DateHelper.subtractDays(new Date(), 1);
307300
Date followupDate = DateHelper.addDays(new Date(), 10);

0 commit comments

Comments
 (0)