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

Commit 592b19b

Browse files
author
FredrikSchäferVitagroup
committed
Merge branch 'development' into feature-3418-SurvNet-Adaptations-Create-new-field-“staff-of-armed-forces”-to-case-person-and-contact-person
# Conflicts: # sormas-backend/src/main/resources/sql/sormas_schema.sql
2 parents 3054f6e + 66e8323 commit 592b19b

36 files changed

Lines changed: 731 additions & 258 deletions

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

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,8 @@ public class ContactDto extends PseudonymizableDto {
5555
public static final String CAZE = "caze";
5656
public static final String REPORT_DATE_TIME = "reportDateTime";
5757
public static final String REPORTING_USER = "reportingUser";
58+
public static final String MULTI_DAY_CONTACT = "multiDayContact";
59+
public static final String FIRST_CONTACT_DATE = "firstContactDate";
5860
public static final String LAST_CONTACT_DATE = "lastContactDate";
5961
public static final String CONTACT_IDENTIFICATION_SOURCE = "contactIdentificationSource";
6062
public static final String CONTACT_IDENTIFICATION_SOURCE_DETAILS = "contactIdentificationSourceDetails";
@@ -138,6 +140,9 @@ public class ContactDto extends PseudonymizableDto {
138140
private DistrictReferenceDto district;
139141
private CommunityReferenceDto community;
140142
@Required
143+
private boolean multiDayContact;
144+
private Date firstContactDate;
145+
@Required
141146
private Date lastContactDate;
142147
@HideForCountriesExcept
143148
private ContactIdentificationSource contactIdentificationSource;
@@ -320,6 +325,22 @@ public void setReportingUser(UserReferenceDto reportingUser) {
320325
this.reportingUser = reportingUser;
321326
}
322327

328+
public boolean isMultiDayContact() {
329+
return multiDayContact;
330+
}
331+
332+
public void setMultiDayContact(boolean multiDayContact) {
333+
this.multiDayContact = multiDayContact;
334+
}
335+
336+
public Date getFirstContactDate() {
337+
return firstContactDate;
338+
}
339+
340+
public void setFirstContactDate(Date firstContactDate) {
341+
this.firstContactDate = firstContactDate;
342+
}
343+
323344
public Date getLastContactDate() {
324345
return lastContactDate;
325346
}

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -451,6 +451,7 @@ public interface Captions {
451451
String Contact_endOfQuarantineReasonDetails = "Contact.endOfQuarantineReasonDetails";
452452
String Contact_epiData = "Contact.epiData";
453453
String Contact_externalID = "Contact.externalID";
454+
String Contact_firstContactDate = "Contact.firstContactDate";
454455
String Contact_firstName = "Contact.firstName";
455456
String Contact_followUpComment = "Contact.followUpComment";
456457
String Contact_followUpStatus = "Contact.followUpStatus";
@@ -462,6 +463,7 @@ public interface Captions {
462463
String Contact_lastName = "Contact.lastName";
463464
String Contact_latestEventId = "Contact.latestEventId";
464465
String Contact_latestEventTitle = "Contact.latestEventTitle";
466+
String Contact_multiDayContact = "Contact.multiDayContact";
465467
String Contact_numberOfVisits = "Contact.numberOfVisits";
466468
String Contact_overwriteFollowUpUntil = "Contact.overwriteFollowUpUntil";
467469
String Contact_person = "Contact.person";

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ public interface Validations {
2323
String campaignFormDependingOnValuesMissing = "campaignFormDependingOnValuesMissing";
2424
String campaignFormElementDuplicateId = "campaignFormElementDuplicateId";
2525
String campaignFormElementIdRequired = "campaignFormElementIdRequired";
26+
String campaignFormElementNotExisting = "campaignFormElementNotExisting";
2627
String campaignFormElementTypeRequired = "campaignFormElementTypeRequired";
2728
String campaignFormInvalidIdInListElements = "campaignFormInvalidIdInListElements";
2829
String campaignFormTranslationCaptionRequired = "campaignFormTranslationCaptionRequired";

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

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -387,4 +387,8 @@ public static String valueToString(Object value) {
387387
return value.toString();
388388
}
389389
}
390+
391+
public static String sanitizeFileName(String fileName) {
392+
return fileName.replaceAll("[^a-zA-Z0-9._-]", "");
393+
}
390394
}

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -564,6 +564,7 @@ Contact.disease=Disease of source case
564564
Contact.district=Responsible district
565565
Contact.epiData=Epidemiological data
566566
Contact.externalID=External ID
567+
Contact.firstContactDate=Date of first contact
567568
Contact.firstName=First name of contact person
568569
Contact.followUpComment=Follow-up status comment
569570
Contact.followUpStatus=Follow-up status
@@ -573,6 +574,7 @@ Contact.lastContactDate=Date of last contact
573574
Contact.lastName=Last name of contact person
574575
Contact.latestEventId=Latest event ID
575576
Contact.latestEventTitle=Latest event title
577+
Contact.multiDayContact=Multi-day contact
576578
Contact.numberOfVisits=Number of visits
577579
Contact.person=Contact person
578580
Contact.quarantine=Quarantine

sormas-api/src/main/resources/captions_de-DE.properties

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -564,6 +564,7 @@ Contact.disease=Krankheit des Indexfalls
564564
Contact.district=Zuständige/r Landkreis/Kreisfreie Stadt
565565
Contact.epiData=Epidemiologische Daten
566566
Contact.externalID=Externe ID
567+
Contact.firstContactDate=Datum des ersten Kontaktes
567568
Contact.firstName=Vorname der Kontaktperson
568569
Contact.followUpComment=Nachverfolgungs-Status-Kommentar
569570
Contact.followUpStatus=Nachverfolgungs-Status

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,7 @@ contactFollowUpUntilDate = The follow-up until date must at least be on the day
100100
emptyOverwrittenFollowUpUntilDate = The follow-up until date cannot be overwritten with an empty value.
101101
textTooLong = The text you entered is too long. Maximum allowed length is %d
102102
contactWithoutInfrastructureData = A contact needs either a source case or a responsible region and district.
103+
campaignFormElementNotExisting = Column %s does not exist in form meta definition.
103104
campaignFormUnsupportedType = The type %s of element %s is not supported in campaign forms.
104105
campaignFormUnsupportedStyle = The style %s of element %s is not supported in campaign forms.
105106
campaignFormDependingOnNotFound = The campaign form does not contain a field with the ID %s that was specified in the dependingOn attribute of element %s.

sormas-app/app/src/main/java/de/symeda/sormas/app/backend/common/DatabaseHelper.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1773,6 +1773,11 @@ public void onUpgrade(SQLiteDatabase db, ConnectionSource connectionSource, int
17731773
+ "SELECT exposureDetailsKnown, contactWithSourceCaseKnown, wildbirds, changeDate, creationDate, id, lastOpenedDate, localChangeDate, modified, snapshot, uuid, pseudonymized "
17741774
+ "FROM tmp_epidata;");
17751775
getDao(EpiData.class).executeRaw("DROP TABLE tmp_epidata;");
1776+
case 247:
1777+
currentVersion = 247;
1778+
1779+
getDao(Contact.class).executeRaw("ALTER TABLE contacts ADD column multidaycontact boolean default false;");
1780+
getDao(Contact.class).executeRaw("ALTER TABLE contacts ADD column firstcontactdate timestamp;");
17761781

17771782
// ATTENTION: break should only be done after last version
17781783
break;

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

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,8 @@ public class Contact extends PseudonymizableAdo {
6767
public static final String DISEASE = "disease";
6868
public static final String REPORT_DATE_TIME = "reportDateTime";
6969
public static final String REPORTING_USER = "reportingUser";
70+
public static final String MULTI_DAY_CONTACT = "multiDayContact";
71+
public static final String FIRST_CONTACT_DATE = "firstContactDate";
7072
public static final String LAST_CONTACT_DATE = "lastContactDate";
7173
public static final String CONTACT_IDENTIFICATION_SOURCE = "contactIdentificationSource";
7274
public static final String CONTACT_IDENTIFICATION_SOURCE_DETAILS = "contactIdentificationSourceDetails";
@@ -112,7 +114,11 @@ public class Contact extends PseudonymizableAdo {
112114
private Disease disease;
113115
@Column(length = COLUMN_LENGTH_DEFAULT)
114116
private String diseaseDetails;
115-
@DatabaseField(dataType = DataType.DATE_LONG, canBeNull = true)
117+
@DatabaseField
118+
private boolean multiDayContact;
119+
@DatabaseField(dataType = DataType.DATE_LONG)
120+
private Date firstContactDate;
121+
@DatabaseField(dataType = DataType.DATE_LONG)
116122
private Date lastContactDate;
117123
@Enumerated(EnumType.STRING)
118124
private ContactIdentificationSource contactIdentificationSource;
@@ -253,6 +259,22 @@ public void setReportingUser(User reportingUser) {
253259
this.reportingUser = reportingUser;
254260
}
255261

262+
public boolean isMultiDayContact() {
263+
return multiDayContact;
264+
}
265+
266+
public void setMultiDayContact(boolean multiDayContact) {
267+
this.multiDayContact = multiDayContact;
268+
}
269+
270+
public Date getFirstContactDate() {
271+
return firstContactDate;
272+
}
273+
274+
public void setFirstContactDate(Date firstContactDate) {
275+
this.firstContactDate = firstContactDate;
276+
}
277+
256278
public Date getLastContactDate() {
257279
return lastContactDate;
258280
}

sormas-app/app/src/main/java/de/symeda/sormas/app/backend/contact/ContactDtoHelper.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,7 @@ public void fillInnerFromDto(Contact target, ContactDto source) {
8787
target.setReportDateTime(source.getReportDateTime());
8888
target.setContactOfficer(DatabaseHelper.getUserDao().getByReferenceDto(source.getContactOfficer()));
8989

90+
target.setMultiDayContact(source.isMultiDayContact());
9091
target.setLastContactDate(source.getLastContactDate());
9192
target.setContactIdentificationSource(source.getContactIdentificationSource());
9293
target.setContactIdentificationSourceDetails(source.getContactIdentificationSourceDetails());

0 commit comments

Comments
 (0)