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

Commit 8723c22

Browse files
SORMAS-Foundation#2603: New field "Returning traveler" in contact (SORMAS-Foundation#3064)
1 parent 840f136 commit 8723c22

13 files changed

Lines changed: 70 additions & 10 deletions

File tree

sormas-api/src/main/java/de/symeda/sormas/api/contact/ContactCriteria.java

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@
3333
import de.symeda.sormas.api.user.UserRole;
3434
import de.symeda.sormas.api.utils.DateFilterOption;
3535
import de.symeda.sormas.api.utils.IgnoreForUrl;
36+
import de.symeda.sormas.api.utils.YesNoUnknown;
3637

3738
public class ContactCriteria extends BaseCriteria implements Serializable {
3839

@@ -54,6 +55,7 @@ public class ContactCriteria extends BaseCriteria implements Serializable {
5455
public static final String BIRTHDATE_YYYY = "birthdateYYYY";
5556
public static final String BIRTHDATE_MM = "birthdateMM";
5657
public static final String BIRTHDATE_DD = "birthdateDD";
58+
public static final String RETURNING_TRAVELER = "returningTraveler";
5759

5860
private static final long serialVersionUID = 5114202107622217837L;
5961

@@ -99,6 +101,7 @@ public class ContactCriteria extends BaseCriteria implements Serializable {
99101
private Integer birthdateYYYY;
100102
private Integer birthdateMM;
101103
private Integer birthdateDD;
104+
private YesNoUnknown returningTraveler;
102105

103106
public UserRole getReportingUserRole() {
104107
return reportingUserRole;
@@ -453,4 +456,12 @@ public Integer getBirthdateDD() {
453456
public void setBirthdateDD(Integer birthdateDD) {
454457
this.birthdateDD = birthdateDD;
455458
}
459+
460+
public YesNoUnknown getReturningTraveler() {
461+
return returningTraveler;
462+
}
463+
464+
public void setReturningTraveler(YesNoUnknown returningTraveler) {
465+
this.returningTraveler = returningTraveler;
466+
}
456467
}

sormas-api/src/main/java/de/symeda/sormas/api/contact/ContactDto.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,7 @@ public class ContactDto extends PseudonymizableDto {
107107
public static final String HEALTH_CONDITIONS = "healthConditions";
108108
public static final String END_OF_QUARANTINE_REASON = "endOfQuarantineReason";
109109
public static final String END_OF_QUARANTINE_REASON_DETAILS = "endOfQuarantineReasonDetails";
110+
public static final String RETURNING_TRAVELER = "returningTraveler";
110111

111112
private CaseReferenceDto caze;
112113
private String caseIdExternalSystem;
@@ -224,6 +225,7 @@ public class ContactDto extends PseudonymizableDto {
224225
private String additionalDetails;
225226
private EpiDataDto epiData;
226227
private HealthConditionsDto healthConditions;
228+
private YesNoUnknown returningTraveler;
227229

228230
@HideForCountriesExcept(countries = {
229231
COUNTRY_CODE_SWITZERLAND })
@@ -760,4 +762,12 @@ public String getEndOfQuarantineReasonDetails() {
760762
public void setEndOfQuarantineReasonDetails(String endOfQuarantineReasonDetails) {
761763
this.endOfQuarantineReasonDetails = endOfQuarantineReasonDetails;
762764
}
765+
766+
public YesNoUnknown getReturningTraveler() {
767+
return returningTraveler;
768+
}
769+
770+
public void setReturningTraveler(YesNoUnknown returningTraveler) {
771+
this.returningTraveler = returningTraveler;
772+
}
763773
}

sormas-api/src/main/java/de/symeda/sormas/api/contact/ContactExportDto.java

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -129,24 +129,27 @@ public class ContactExportDto implements Serializable {
129129
private boolean quarantineReduced;
130130
private boolean quarantineOfficialOrderSent;
131131
private Date quarantineOfficialOrderSentDate;
132+
private YesNoUnknown returningTraveler;
132133

133134
private ContactJurisdictionDto jurisdiction;
134135

135136
//@formatter:off
136137
public ContactExportDto(long id, long personId, String uuid, String sourceCaseUuid, CaseClassification caseClassification, Disease disease, String diseaseDetails,
137138
ContactClassification contactClassification, Date lastContactDate, String firstName, String lastName, Sex sex,
138139
Integer birthdateDD, Integer birthdateMM, Integer birthdateYYYY,
139-
Integer approximateAge, ApproximateAgeType approximateAgeType, Date reportDate, ContactIdentificationSource contactIdentificationSource, String contactIdentificationSourceDetails, TracingApp tracingApp, String tracingAppDetails, ContactProximity contactProximity,
140+
Integer approximateAge, ApproximateAgeType approximateAgeType, Date reportDate, ContactIdentificationSource contactIdentificationSource,
141+
String contactIdentificationSourceDetails, TracingApp tracingApp, String tracingAppDetails, ContactProximity contactProximity,
140142
ContactStatus contactStatus, FollowUpStatus followUpStatus, Date followUpUntil,
141143
QuarantineType quarantine, String quarantineTypeDetails, Date quarantineFrom, Date quarantineTo, String quarantineHelpNeeded,
142-
boolean quarantineOrderedVerbally, boolean quarantineOrderedOfficialDocument, Date quarantineOrderedVerballyDate, Date quarantineOrderedOfficialDocumentDate, boolean quarantineExtended, boolean quarantineReduced,
143-
boolean quarantineOfficialOrderSent, Date quarantineOfficialOrderSentDate,
144+
boolean quarantineOrderedVerbally, boolean quarantineOrderedOfficialDocument, Date quarantineOrderedVerballyDate, Date quarantineOrderedOfficialDocumentDate,
145+
boolean quarantineExtended, boolean quarantineReduced, boolean quarantineOfficialOrderSent, Date quarantineOfficialOrderSentDate,
144146
PresentCondition presentCondition, Date deathDate,
145147
String addressRegion, String addressDistrict, String city, String street, String houseNumber, String additionalInformation, String postalCode,
146148
String facility, String facilityUuid, String facilityDetails,
147149
String phone, String phoneOwner, OccupationType occupationType, String occupationDetails,
148150
String region, String district, String community,
149-
long epiDataId, YesNoUnknown traveled, YesNoUnknown burialAttended, YesNoUnknown directContactConfirmedCase, YesNoUnknown directContactProbableCase, YesNoUnknown contactWithRodent,
151+
long epiDataId, YesNoUnknown traveled, YesNoUnknown burialAttended, YesNoUnknown directContactConfirmedCase, YesNoUnknown directContactProbableCase,
152+
YesNoUnknown contactWithRodent, YesNoUnknown returningTraveler,
150153
String reportingUserUuid, String regionUuid, String districtUuid, String communityUuid,
151154
String caseReportingUserUuid, String caseRegionUui, String caseDistrictUud, String caseCommunityUuid, String caseHealthFacilityUuid, String casePointOfEntryUuid
152155
) {
@@ -209,6 +212,7 @@ public ContactExportDto(long id, long personId, String uuid, String sourceCaseUu
209212
this.directContactConfirmedCase = directContactConfirmedCase;
210213
this.directContactProbableCase = directContactProbableCase;
211214
this.contactWithRodent = contactWithRodent;
215+
this.returningTraveler = returningTraveler;
212216

213217
CaseJurisdictionDto caseJurisdiction = caseReportingUserUuid != null
214218
? null
@@ -574,6 +578,15 @@ public void setContactWithRodent(YesNoUnknown contactWithRodent) {
574578
this.contactWithRodent = contactWithRodent;
575579
}
576580

581+
@Order(62)
582+
public YesNoUnknown getReturningTraveler() {
583+
return returningTraveler;
584+
}
585+
586+
public void setReturningTraveler(YesNoUnknown returningTraveler) {
587+
this.returningTraveler = returningTraveler;
588+
}
589+
577590
public void setId(long id) {
578591
this.id = id;
579592
}

sormas-api/src/main/java/de/symeda/sormas/api/i18n/Captions.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -467,6 +467,7 @@ public interface Captions {
467467
String Contact_reportLon = "Contact.reportLon";
468468
String Contact_resultingCase = "Contact.resultingCase";
469469
String Contact_resultingCaseUser = "Contact.resultingCaseUser";
470+
String Contact_returningTraveler = "Contact.returningTraveler";
470471
String Contact_tracingApp = "Contact.tracingApp";
471472
String Contact_tracingAppDetails = "Contact.tracingAppDetails";
472473
String Contact_uuid = "Contact.uuid";

sormas-api/src/main/java/de/symeda/sormas/api/utils/InfoProvider.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ public static synchronized InfoProvider get() {
4949
* @return
5050
*/
5151
public String getMinimumRequiredVersion() {
52-
return "1.49.0";
52+
return "1.50.0";
5353
}
5454

5555
/**

sormas-api/src/main/resources/captions.properties

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -553,6 +553,7 @@ Contact.reportLon=Report GPS longitude
553553
Contact.reportLatLonAccuracy=Report GPS accuracy in m
554554
Contact.resultingCase=Resulting case
555555
Contact.resultingCaseUser=Resulting case assigned by
556+
Contact.returningTraveler=Returning Traveler
556557
Contact.uuid=Contact ID
557558
Contact.visits=Follow-up visits
558559
Contact.highPriority=High priority contact

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

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -136,6 +136,7 @@ public class Contact extends CoreAdo {
136136
public static final String ADDITIONAL_DETAILS = "additionalDetails";
137137
public static final String EPI_DATA = "epiData";
138138
public static final String HEALTH_CONDITIONS = "healthConditions";
139+
public static final String RETURNING_TRAVELER = "returningTraveler";
139140

140141
private Date reportDateTime;
141142
private User reportingUser;
@@ -209,6 +210,7 @@ public class Contact extends CoreAdo {
209210
private Set<Sample> samples;
210211
private Set<Visit> visits = new HashSet<>();
211212
private HealthConditions healthConditions;
213+
private YesNoUnknown returningTraveler;
212214

213215
private EndOfQuarantineReason endOfQuarantineReason;
214216
private String endOfQuarantineReasonDetails;
@@ -822,4 +824,13 @@ public String getEndOfQuarantineReasonDetails() {
822824
public void setEndOfQuarantineReasonDetails(String endOfQuarantineReasonDetails) {
823825
this.endOfQuarantineReasonDetails = endOfQuarantineReasonDetails;
824826
}
827+
828+
@Enumerated(EnumType.STRING)
829+
public YesNoUnknown getReturningTraveler() {
830+
return returningTraveler;
831+
}
832+
833+
public void setReturningTraveler(YesNoUnknown returningTraveler) {
834+
this.returningTraveler = returningTraveler;
835+
}
825836
}

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

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -153,9 +153,6 @@
153153
import de.symeda.sormas.backend.visit.Visit;
154154
import de.symeda.sormas.backend.visit.VisitService;
155155

156-
import static de.symeda.sormas.backend.visit.VisitLogic.getVisitResult;
157-
import static java.time.temporal.ChronoUnit.DAYS;
158-
159156
@Stateless(name = "ContactFacade")
160157
public class ContactFacadeEjb implements ContactFacade {
161158

@@ -458,7 +455,8 @@ public List<ContactExportDto> getExportList(ContactCriteria contactCriteria, int
458455
joins.getEpiData().get(EpiData.BURIAL_ATTENDED),
459456
joins.getEpiData().get(EpiData.DIRECT_CONTACT_CONFIRMED_CASE),
460457
joins.getEpiData().get(EpiData.DIRECT_CONTACT_PROBABLE_CASE),
461-
joins.getEpiData().get(EpiData.RODENTS)),
458+
joins.getEpiData().get(EpiData.RODENTS),
459+
contact.get(Contact.RETURNING_TRAVELER)),
462460
listCriteriaBuilder.getJurisdictionSelections(joins)).collect(Collectors.toList()));
463461

464462
cq.distinct(true);
@@ -1009,6 +1007,7 @@ public Contact fromDto(@NotNull ContactDto source) {
10091007

10101008
target.setEpiData(epiDataFacade.fromDto(source.getEpiData()));
10111009
target.setHealthConditions(clinicalCourseFacade.fromHealthConditionsDto(source.getHealthConditions()));
1010+
target.setReturningTraveler(source.getReturningTraveler());
10121011

10131012
target.setEndOfQuarantineReason(source.getEndOfQuarantineReason());
10141013
target.setEndOfQuarantineReasonDetails(source.getEndOfQuarantineReasonDetails());
@@ -1245,6 +1244,7 @@ public static ContactDto toDto(Contact source) {
12451244

12461245
target.setEpiData(EpiDataFacadeEjb.toDto(source.getEpiData()));
12471246
target.setHealthConditions(ClinicalCourseFacadeEjb.toHealthConditionsDto(source.getHealthConditions()));
1247+
target.setReturningTraveler(source.getReturningTraveler());
12481248

12491249
target.setEndOfQuarantineReason(source.getEndOfQuarantineReason());
12501250
target.setEndOfQuarantineReasonDetails(source.getEndOfQuarantineReasonDetails());

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

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1093,6 +1093,9 @@ public Predicate buildCriteriaFilter(ContactCriteria contactCriteria, CriteriaBu
10931093
Join<Contact, Person> person = from.join(Contact.PERSON, JoinType.LEFT);
10941094
filter = and(cb, filter, cb.equal(person.get(Person.BIRTHDATE_DD), contactCriteria.getBirthdateDD()));
10951095
}
1096+
if (contactCriteria.getReturningTraveler() != null) {
1097+
filter = and(cb, filter, cb.equal(from.get(Contact.RETURNING_TRAVELER), contactCriteria.getReturningTraveler()));
1098+
}
10961099

10971100
return filter;
10981101
}

sormas-backend/src/main/resources/sql/sormas_schema.sql

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5414,4 +5414,9 @@ ALTER TABLE campaigndiagramdefinition_history ADD COLUMN percentagedefault boole
54145414

54155415
INSERT INTO schema_version (version_number, comment) VALUES (262, 'Add possibility to set percentage visualization as default for campaign diagram definitions #2528');
54165416

5417+
-- 2020-10-02 Add new field returningTraveler to contact
5418+
ALTER TABLE contact ADD COLUMN returningtraveler varchar(255);
5419+
ALTER TABLE contact_history ADD COLUMN returningtraveler varchar(255);
5420+
5421+
INSERT INTO schema_version (version_number, comment) VALUES (263, 'Add new field returningTraveler to contact #2603');
54175422
-- *** Insert new sql commands BEFORE this line ***

0 commit comments

Comments
 (0)