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

Commit 94e1c98

Browse files
lgallgal
authored andcommitted
SORMAS-Foundation#2960 added Swiss fields on contacts
1 parent d554756 commit 94e1c98

17 files changed

Lines changed: 281 additions & 84 deletions

File tree

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

Lines changed: 43 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,11 @@
1717
*******************************************************************************/
1818
package de.symeda.sormas.api.contact;
1919

20+
import static de.symeda.sormas.api.CountryHelper.COUNTRY_CODE_GERMANY;
21+
import static de.symeda.sormas.api.CountryHelper.COUNTRY_CODE_SWITZERLAND;
22+
23+
import java.util.Date;
24+
2025
import de.symeda.sormas.api.Disease;
2126
import de.symeda.sormas.api.PseudonymizableDto;
2227
import de.symeda.sormas.api.caze.CaseDataDto;
@@ -35,8 +40,6 @@
3540
import de.symeda.sormas.api.utils.SensitiveData;
3641
import de.symeda.sormas.api.utils.YesNoUnknown;
3742

38-
import java.util.Date;
39-
4043
public class ContactDto extends PseudonymizableDto {
4144

4245
private static final long serialVersionUID = -7764607075875188799L;
@@ -102,6 +105,8 @@ public class ContactDto extends PseudonymizableDto {
102105
public static final String ADDITIONAL_DETAILS = "additionalDetails";
103106
public static final String EPI_DATA = "epiData";
104107
public static final String HEALTH_CONDITIONS = "healthConditions";
108+
public static final String END_OF_QUARANTINE_REASON = "endOfQuarantineReason";
109+
public static final String END_OF_QUARANTINE_REASON_DETAILS = "endOfQuarantineReasonDetails";
105110

106111
private CaseReferenceDto caze;
107112
private String caseIdExternalSystem;
@@ -180,20 +185,20 @@ public class ContactDto extends PseudonymizableDto {
180185
@SensitiveData
181186
private String quarantineHelpNeeded;
182187
@HideForCountriesExcept(countries = {
183-
"de",
184-
"ch" })
188+
COUNTRY_CODE_GERMANY,
189+
COUNTRY_CODE_SWITZERLAND })
185190
private boolean quarantineOrderedVerbally;
186191
@HideForCountriesExcept(countries = {
187-
"de",
188-
"ch" })
192+
COUNTRY_CODE_GERMANY,
193+
COUNTRY_CODE_SWITZERLAND })
189194
private boolean quarantineOrderedOfficialDocument;
190195
@HideForCountriesExcept(countries = {
191-
"de",
192-
"ch" })
196+
COUNTRY_CODE_GERMANY,
197+
COUNTRY_CODE_SWITZERLAND })
193198
private Date quarantineOrderedVerballyDate;
194199
@HideForCountriesExcept(countries = {
195-
"de",
196-
"ch" })
200+
COUNTRY_CODE_GERMANY,
201+
COUNTRY_CODE_SWITZERLAND })
197202
private Date quarantineOrderedOfficialDocumentDate;
198203
@HideForCountriesExcept
199204
private YesNoUnknown quarantineHomePossible;
@@ -208,18 +213,26 @@ public class ContactDto extends PseudonymizableDto {
208213
private boolean quarantineExtended;
209214
private boolean quarantineReduced;
210215
@HideForCountriesExcept(countries = {
211-
"de",
212-
"ch" })
216+
COUNTRY_CODE_GERMANY,
217+
COUNTRY_CODE_SWITZERLAND })
213218
private boolean quarantineOfficialOrderSent;
214219
@HideForCountriesExcept(countries = {
215-
"de",
216-
"ch" })
220+
COUNTRY_CODE_GERMANY,
221+
COUNTRY_CODE_SWITZERLAND })
217222
private Date quarantineOfficialOrderSentDate;
218223
@SensitiveData
219224
private String additionalDetails;
220225
private EpiDataDto epiData;
221226
private HealthConditionsDto healthConditions;
222227

228+
@HideForCountriesExcept(countries = {
229+
COUNTRY_CODE_SWITZERLAND })
230+
private EndOfQuarantineReason endOfQuarantineReason;
231+
@HideForCountriesExcept(countries = {
232+
COUNTRY_CODE_SWITZERLAND })
233+
@SensitiveData
234+
private String endOfQuarantineReasonDetails;
235+
223236
public static ContactDto build() {
224237
return build(null, null, null);
225238
}
@@ -731,4 +744,20 @@ public HealthConditionsDto getHealthConditions() {
731744
public void setHealthConditions(HealthConditionsDto healthConditions) {
732745
this.healthConditions = healthConditions;
733746
}
747+
748+
public EndOfQuarantineReason getEndOfQuarantineReason() {
749+
return endOfQuarantineReason;
750+
}
751+
752+
public void setEndOfQuarantineReason(EndOfQuarantineReason endOfQuarantineReason) {
753+
this.endOfQuarantineReason = endOfQuarantineReason;
754+
}
755+
756+
public String getEndOfQuarantineReasonDetails() {
757+
return endOfQuarantineReasonDetails;
758+
}
759+
760+
public void setEndOfQuarantineReasonDetails(String endOfQuarantineReasonDetails) {
761+
this.endOfQuarantineReasonDetails = endOfQuarantineReasonDetails;
762+
}
734763
}
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
/*
2+
* SORMAS® - Surveillance Outbreak Response Management & Analysis System
3+
* Copyright © 2016-2020 Helmholtz-Zentrum für Infektionsforschung GmbH (HZI)
4+
* This program is free software: you can redistribute it and/or modify
5+
* it under the terms of the GNU General Public License as published by
6+
* the Free Software Foundation, either version 3 of the License, or
7+
* (at your option) any later version.
8+
* This program is distributed in the hope that it will be useful,
9+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
10+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11+
* GNU General Public License for more details.
12+
* You should have received a copy of the GNU General Public License
13+
* along with this program. If not, see <https://www.gnu.org/licenses/>.
14+
*/
15+
16+
package de.symeda.sormas.api.contact;
17+
18+
import de.symeda.sormas.api.i18n.I18nProperties;
19+
20+
public enum EndOfQuarantineReason {
21+
22+
ASYMPTOMATIC,
23+
ISOLATED_AS_CASE,
24+
LOST_TO_FOLLOWUP,
25+
OTHER;
26+
27+
public String toString() {
28+
return I18nProperties.getEnumCaption(this);
29+
}
30+
}

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
@@ -423,6 +423,8 @@ public interface Captions {
423423
String Contact_diseaseDetails = "Contact.diseaseDetails";
424424
String Contact_district = "Contact.district";
425425
String Contact_districtUuid = "Contact.districtUuid";
426+
String Contact_endOfQuarantineReason = "Contact.endOfQuarantineReason";
427+
String Contact_endOfQuarantineReasonDetails = "Contact.endOfQuarantineReasonDetails";
426428
String Contact_epiData = "Contact.epiData";
427429
String Contact_externalID = "Contact.externalID";
428430
String Contact_firstName = "Contact.firstName";

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -580,6 +580,8 @@ Contact.quarantineExtended=Quarantine period extended?
580580
Contact.quarantineReduced=Quarantine period reduced?
581581
Contact.quarantineOfficialOrderSent=Official quarantine order sent?
582582
Contact.quarantineOfficialOrderSentDate=Date official quarantine order was sent
583+
Contact.endOfQuarantineReason=Reason for end of quarantine
584+
Contact.endOfQuarantineReasonDetails=Other reason
583585

584586
# ContactExport
585587
ContactExport.address=Address

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -592,6 +592,8 @@ ContactExport.lastName=Nachname der Kontaktperson
592592
ContactExport.sourceCaseUuid=Indexfall-ID
593593
ContactExport.traveled=Gereist - außerhalb des Bezirks
594594
ContactExport.travelHistory=Reiseverlauf
595+
Contact.endOfQuarantineReason=Grund des Ende der Quarantäne
596+
Contact.endOfQuarantineReasonDetails=Anderer Grund
595597

596598
# Dashboard
597599
dashboardAlive=Lebendig

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

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1091,4 +1091,8 @@ QuarantineReason.OTHER_REASON=Other reason
10911091
EndOfIsolationReason.RECOVERED=Recovered
10921092
EndOfIsolationReason.DIED=Died
10931093
EndOfIsolationReason.LOST_TO_FOLLOW_UP=Lost to Follow-up
1094-
EndOfIsolationReason.OTHER=Other
1094+
EndOfIsolationReason.OTHER=Other
1095+
EndOfQuarantineReason.ASYMPTOMATIC=Asymptomatic after 10 days
1096+
EndOfQuarantineReason.ISOLATED_AS_CASE=Isolated as Case
1097+
EndOfQuarantineReason.LOST_TO_FOLLOWUP=Lost to follow-up
1098+
EndOfQuarantineReason.OTHER=Other

sormas-api/src/main/resources/enum_de-CH.properties

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1090,4 +1090,8 @@ QuarantineReason.OTHER_REASON=Anderer Grund
10901090
EndOfIsolationReason.RECOVERED=Genesung
10911091
EndOfIsolationReason.DIED=Tod
10921092
EndOfIsolationReason.LOST_TO_FOLLOW_UP=Lost to Follow-up
1093-
EndOfIsolationReason.OTHER=Anderer
1093+
EndOfIsolationReason.OTHER=Anderer
1094+
EndOfQuarantineReason.ASYMPTOMATIC=Asymptomatisch nach 10 Tagen
1095+
EndOfQuarantineReason.ISOLATED_AS_CASE=Isoliert als Fall
1096+
EndOfQuarantineReason.LOST_TO_FOLLOWUP=Lost to follow-up
1097+
EndOfQuarantineReason.OTHER=Anderer

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

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -128,7 +128,7 @@ public class DatabaseHelper extends OrmLiteSqliteOpenHelper {
128128
public static final String DATABASE_NAME = "sormas.db";
129129
// any time you make changes to your database objects, you may have to increase the database version
130130

131-
public static final int DATABASE_VERSION = 232;
131+
public static final int DATABASE_VERSION = 233;
132132

133133
private static DatabaseHelper instance = null;
134134

@@ -1615,6 +1615,11 @@ public void onUpgrade(SQLiteDatabase db, ConnectionSource connectionSource, int
16151615
currentVersion = 231;
16161616
getDao(Symptoms.class).executeRaw("ALTER TABLE symptoms ADD COLUMN shivering varchar(255);");
16171617

1618+
case 232:
1619+
currentVersion = 232;
1620+
getDao(Contact.class).executeRaw("ALTER TABLE contacts ADD COLUMN endOfQuarantineReason varchar(255);");
1621+
getDao(Contact.class).executeRaw("ALTER TABLE contacts ADD COLUMN endOfQuarantineReasonDetails varchar(512);");
1622+
16181623
// ATTENTION: break should only be done after last version
16191624
break;
16201625
default:

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

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@
3636
import de.symeda.sormas.api.contact.ContactProximity;
3737
import de.symeda.sormas.api.contact.ContactRelation;
3838
import de.symeda.sormas.api.contact.ContactStatus;
39+
import de.symeda.sormas.api.contact.EndOfQuarantineReason;
3940
import de.symeda.sormas.api.contact.FollowUpStatus;
4041
import de.symeda.sormas.api.contact.OrderMeans;
4142
import de.symeda.sormas.api.contact.QuarantineType;
@@ -214,6 +215,12 @@ public class Contact extends PseudonymizableAdo {
214215
@DatabaseField(foreign = true, foreignAutoRefresh = true)
215216
private HealthConditions healthConditions;
216217

218+
@Enumerated(EnumType.STRING)
219+
private EndOfQuarantineReason endOfQuarantineReason;
220+
@Column(length = COLUMN_LENGTH_DEFAULT)
221+
private String endOfQuarantineReasonDetails;
222+
223+
217224
public Person getPerson() {
218225
return person;
219226
}
@@ -709,4 +716,20 @@ public HealthConditions getHealthConditions() {
709716
public void setHealthConditions(HealthConditions healthConditions) {
710717
this.healthConditions = healthConditions;
711718
}
719+
720+
public EndOfQuarantineReason getEndOfQuarantineReason() {
721+
return endOfQuarantineReason;
722+
}
723+
724+
public void setEndOfQuarantineReason(EndOfQuarantineReason endOfQuarantineReason) {
725+
this.endOfQuarantineReason = endOfQuarantineReason;
726+
}
727+
728+
public String getEndOfQuarantineReasonDetails() {
729+
return endOfQuarantineReasonDetails;
730+
}
731+
732+
public void setEndOfQuarantineReasonDetails(String endOfQuarantineReasonDetails) {
733+
this.endOfQuarantineReasonDetails = endOfQuarantineReasonDetails;
734+
}
712735
}

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

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -144,6 +144,9 @@ public void fillInnerFromDto(Contact target, ContactDto source) {
144144

145145
target.setHealthConditions(healthConditionsDtoHelper.fillOrCreateFromDto(target.getHealthConditions(), source.getHealthConditions()));
146146

147+
target.setEndOfQuarantineReason(source.getEndOfQuarantineReason());
148+
target.setEndOfQuarantineReasonDetails(source.getEndOfQuarantineReasonDetails());
149+
147150
target.setPseudonymized(source.isPseudonymized());
148151
}
149152

@@ -265,6 +268,9 @@ public void fillInnerFromAdo(ContactDto target, Contact source) {
265268
target.setHealthConditions(null);
266269
}
267270

271+
target.setEndOfQuarantineReason(source.getEndOfQuarantineReason());
272+
target.setEndOfQuarantineReasonDetails(source.getEndOfQuarantineReasonDetails());
273+
268274
target.setPseudonymized(source.isPseudonymized());
269275
}
270276

0 commit comments

Comments
 (0)