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

Commit e1c26c3

Browse files
Merge pull request SORMAS-Foundation#3048 from hzi-braunschweig/2960_contacts-MED-for-Switzerland
2916 split general signs of disease symptom 2960 contacts med for switzerland
2 parents 9160bca + 594bf51 commit e1c26c3

25 files changed

Lines changed: 393 additions & 128 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: 4 additions & 1 deletion
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";
@@ -1391,13 +1393,13 @@ public interface Captions {
13911393
String Symptoms_fastHeartRate = "Symptoms.fastHeartRate";
13921394
String Symptoms_fatigue = "Symptoms.fatigue";
13931395
String Symptoms_fatigueWeakness = "Symptoms.fatigueWeakness";
1396+
String Symptoms_feelingIll = "Symptoms.feelingIll";
13941397
String Symptoms_fever = "Symptoms.fever";
13951398
String Symptoms_feverishFeeling = "Symptoms.feverishFeeling";
13961399
String Symptoms_firstSymptom = "Symptoms.firstSymptom";
13971400
String Symptoms_fluidInLungCavity = "Symptoms.fluidInLungCavity";
13981401
String Symptoms_fluidInLungCavityAuscultation = "Symptoms.fluidInLungCavityAuscultation";
13991402
String Symptoms_fluidInLungCavityXray = "Symptoms.fluidInLungCavityXray";
1400-
String Symptoms_generalSignsOfDisease = "Symptoms.generalSignsOfDisease";
14011403
String Symptoms_glasgowComaScale = "Symptoms.glasgowComaScale";
14021404
String Symptoms_gumsBleeding = "Symptoms.gumsBleeding";
14031405
String Symptoms_headache = "Symptoms.headache";
@@ -1490,6 +1492,7 @@ public interface Captions {
14901492
String Symptoms_runnyNose = "Symptoms.runnyNose";
14911493
String Symptoms_seizures = "Symptoms.seizures";
14921494
String Symptoms_sepsis = "Symptoms.sepsis";
1495+
String Symptoms_shivering = "Symptoms.shivering";
14931496
String Symptoms_shock = "Symptoms.shock";
14941497
String Symptoms_sidePain = "Symptoms.sidePain";
14951498
String Symptoms_skinBruising = "Symptoms.skinBruising";

sormas-api/src/main/java/de/symeda/sormas/api/symptoms/SymptomsDto.java

Lines changed: 45 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -17,21 +17,8 @@
1717
*******************************************************************************/
1818
package de.symeda.sormas.api.symptoms;
1919

20-
import de.symeda.sormas.api.ImportIgnore;
21-
import de.symeda.sormas.api.PseudonymizableDto;
22-
import de.symeda.sormas.api.utils.Complication;
23-
import de.symeda.sormas.api.utils.DataHelper;
24-
import de.symeda.sormas.api.utils.DependantOn;
25-
import de.symeda.sormas.api.utils.Diseases;
26-
import de.symeda.sormas.api.utils.HideForCountries;
27-
import de.symeda.sormas.api.utils.HideForCountriesExcept;
28-
import de.symeda.sormas.api.utils.Order;
29-
import de.symeda.sormas.api.utils.Outbreaks;
30-
import de.symeda.sormas.api.utils.SensitiveData;
31-
import de.symeda.sormas.api.utils.YesNoUnknown;
32-
33-
import java.util.Date;
34-
20+
import static de.symeda.sormas.api.CountryHelper.COUNTRY_CODE_GERMANY;
21+
import static de.symeda.sormas.api.CountryHelper.COUNTRY_CODE_SWITZERLAND;
3522
import static de.symeda.sormas.api.Disease.AFP;
3623
import static de.symeda.sormas.api.Disease.ANTHRAX;
3724
import static de.symeda.sormas.api.Disease.CHOLERA;
@@ -53,6 +40,21 @@
5340
import static de.symeda.sormas.api.Disease.UNSPECIFIED_VHF;
5441
import static de.symeda.sormas.api.Disease.YELLOW_FEVER;
5542

43+
import java.util.Date;
44+
45+
import de.symeda.sormas.api.ImportIgnore;
46+
import de.symeda.sormas.api.PseudonymizableDto;
47+
import de.symeda.sormas.api.utils.Complication;
48+
import de.symeda.sormas.api.utils.DataHelper;
49+
import de.symeda.sormas.api.utils.DependantOn;
50+
import de.symeda.sormas.api.utils.Diseases;
51+
import de.symeda.sormas.api.utils.HideForCountries;
52+
import de.symeda.sormas.api.utils.HideForCountriesExcept;
53+
import de.symeda.sormas.api.utils.Order;
54+
import de.symeda.sormas.api.utils.Outbreaks;
55+
import de.symeda.sormas.api.utils.SensitiveData;
56+
import de.symeda.sormas.api.utils.YesNoUnknown;
57+
5658
public class SymptomsDto extends PseudonymizableDto {
5759

5860
private static final long serialVersionUID = 4146526547904182448L;
@@ -212,7 +214,8 @@ public class SymptomsDto extends PseudonymizableDto {
212214
public static final String VOMITING = "vomiting";
213215
public static final String WHEEZING = "wheezing";
214216
public static final String RESPIRATORY_DISEASE_VENTILATION = "respiratoryDiseaseVentilation";
215-
public static final String GENERAL_SIGNS_OF_DISEASE = "generalSignsOfDisease";
217+
public static final String FEELING_ILL = "feelingIll";
218+
public static final String SHIVERING = "shivering";
216219
public static final String FAST_HEART_RATE = "fastHeartRate";
217220
public static final String OXYGEN_SATURATION_LOWER_94 = "oxygenSaturationLower94";
218221

@@ -1833,9 +1836,9 @@ public static SymptomsDto build() {
18331836
UNDEFINED,
18341837
OTHER })
18351838
@HideForCountriesExcept(countries = {
1836-
"de",
1837-
"ch" })
1838-
private SymptomState generalSignsOfDisease;
1839+
COUNTRY_CODE_GERMANY,
1840+
COUNTRY_CODE_SWITZERLAND })
1841+
private SymptomState feelingIll;
18391842

18401843
@Diseases({
18411844
CORONAVIRUS,
@@ -2138,6 +2141,15 @@ public static SymptomsDto build() {
21382141
@HideForCountriesExcept(countries = "ch")
21392142
private SymptomState urinaryRetention;
21402143

2144+
@Diseases({
2145+
CORONAVIRUS,
2146+
UNDEFINED,
2147+
OTHER })
2148+
@HideForCountriesExcept(countries = {
2149+
COUNTRY_CODE_GERMANY,
2150+
COUNTRY_CODE_SWITZERLAND })
2151+
private SymptomState shivering;
2152+
21412153
@Order(0)
21422154
public Float getTemperature() {
21432155
return temperature;
@@ -2850,16 +2862,21 @@ public SymptomState getRespiratoryDiseaseVentilation() {
28502862
}
28512863

28522864
@Order(301)
2853-
public SymptomState getGeneralSignsOfDisease() {
2854-
return generalSignsOfDisease;
2865+
public SymptomState getFeelingIll() {
2866+
return feelingIll;
28552867
}
28562868

28572869
@Order(302)
2870+
public SymptomState getShivering() {
2871+
return shivering;
2872+
}
2873+
2874+
@Order(304)
28582875
public SymptomState getFastHeartRate() {
28592876
return fastHeartRate;
28602877
}
28612878

2862-
@Order(303)
2879+
@Order(305)
28632880
public SymptomState getOxygenSaturationLower94() {
28642881
return oxygenSaturationLower94;
28652882
}
@@ -3656,8 +3673,12 @@ public void setRespiratoryDiseaseVentilation(SymptomState respiratoryDiseaseVent
36563673
this.respiratoryDiseaseVentilation = respiratoryDiseaseVentilation;
36573674
}
36583675

3659-
public void setGeneralSignsOfDisease(SymptomState generalSignsOfDisease) {
3660-
this.generalSignsOfDisease = generalSignsOfDisease;
3676+
public void setFeelingIll(SymptomState feelingIll) {
3677+
this.feelingIll = feelingIll;
3678+
}
3679+
3680+
public void setShivering(SymptomState shivering) {
3681+
this.shivering = shivering;
36613682
}
36623683

36633684
public void setFastHeartRate(SymptomState fastHeartRate) {

sormas-api/src/main/java/de/symeda/sormas/api/symptoms/SymptomsHelper.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -478,7 +478,8 @@ public static String buildSymptomsHumanString(SymptomsDto symptomsDto, boolean i
478478
appendYesSymptom(string, symptomsDto.getInabilityToWalk(), SymptomsDto.INABILITY_TO_WALK);
479479
appendYesSymptom(string, symptomsDto.getInDrawingOfChestWall(), SymptomsDto.IN_DRAWING_OF_CHEST_WALL);
480480
appendYesSymptom(string, symptomsDto.getRespiratoryDiseaseVentilation(), SymptomsDto.RESPIRATORY_DISEASE_VENTILATION);
481-
appendYesSymptom(string, symptomsDto.getGeneralSignsOfDisease(), SymptomsDto.GENERAL_SIGNS_OF_DISEASE);
481+
appendYesSymptom(string, symptomsDto.getFeelingIll(), SymptomsDto.FEELING_ILL);
482+
appendYesSymptom(string, symptomsDto.getShivering(), SymptomsDto.SHIVERING);
482483
appendYesSymptom(string, symptomsDto.getFastHeartRate(), SymptomsDto.FAST_HEART_RATE);
483484
appendYesSymptom(string, symptomsDto.getOxygenSaturationLower94(), SymptomsDto.OXYGEN_SATURATION_LOWER_94);
484485

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

Lines changed: 4 additions & 1 deletion
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
@@ -1644,7 +1646,8 @@ Symptoms.conjunctivalInjection=Conjunctivitis
16441646
Symptoms.acuteRespiratoryDistressSyndrome=Acute respiratory distress syndrome
16451647
Symptoms.pneumoniaClinicalOrRadiologic=Pneumonia (clinical or radiologic)
16461648
Symptoms.respiratoryDiseaseVentilation=Respiratory disease requiring ventilation
1647-
Symptoms.generalSignsOfDisease=General signs of disease
1649+
Symptoms.feelingIll=Feeling ill
1650+
Symptoms.shivering=Shivering
16481651
Symptoms.fastHeartRate=Fast heart rate (Tachycardia)
16491652
Symptoms.oxygenSaturationLower94=Oxygen saturation < 94 %
16501653
Symptoms.feverishFeeling=Feverish feeling

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
@@ -1092,4 +1092,8 @@ QuarantineReason.OTHER_REASON=Other reason
10921092
EndOfIsolationReason.RECOVERED=Recovered
10931093
EndOfIsolationReason.DIED=Died
10941094
EndOfIsolationReason.LOST_TO_FOLLOW_UP=Lost to Follow-up
1095-
EndOfIsolationReason.OTHER=Other
1095+
EndOfIsolationReason.OTHER=Other
1096+
EndOfQuarantineReason.ASYMPTOMATIC=Asymptomatic after 10 days
1097+
EndOfQuarantineReason.ISOLATED_AS_CASE=Isolated as Case
1098+
EndOfQuarantineReason.LOST_TO_FOLLOWUP=Lost to follow-up
1099+
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: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,7 @@ public class DatabaseHelper extends OrmLiteSqliteOpenHelper {
135135
public static final String DATABASE_NAME = "sormas.db";
136136
// any time you make changes to your database objects, you may have to increase the database version
137137

138-
public static final int DATABASE_VERSION = 232;
138+
public static final int DATABASE_VERSION = 234;
139139

140140
private static DatabaseHelper instance = null;
141141

@@ -1617,10 +1617,10 @@ public void onUpgrade(SQLiteDatabase db, ConnectionSource connectionSource, int
16171617
getDao(Case.class).executeRaw("ALTER TABLE cases ADD COLUMN quarantineReasonBeforeIsolationDetails varchar(512);");
16181618
getDao(Case.class).executeRaw("ALTER TABLE cases ADD COLUMN endOfIsolationReason varchar(255);");
16191619
getDao(Case.class).executeRaw("ALTER TABLE cases ADD COLUMN endOfIsolationReasonDetails varchar(512);");
1620-
1620+
16211621
case 231:
16221622
currentVersion = 231;
1623-
1623+
16241624
getDao(Location.class).executeRaw("ALTER TABLE location ADD COLUMN facilityType varchar(255);");
16251625
getDao(Location.class).executeRaw("ALTER TABLE location ADD COLUMN facility_id bigint REFERENCES facility(id);");
16261626
getDao(Location.class).executeRaw("ALTER TABLE location ADD COLUMN facilityDetails varchar(512);");
@@ -1673,6 +1673,15 @@ public void onUpgrade(SQLiteDatabase db, ConnectionSource connectionSource, int
16731673
db.execSQL("INSERT INTO person (" + personQueryColumns + ") SELECT " + personQueryColumns + " FROM person_old;");
16741674
db.execSQL("DROP TABLE person_old;");
16751675

1676+
case 232:
1677+
currentVersion = 232;
1678+
getDao(Symptoms.class).executeRaw("ALTER TABLE symptoms ADD COLUMN shivering varchar(255);");
1679+
1680+
case 233:
1681+
currentVersion = 233;
1682+
getDao(Contact.class).executeRaw("ALTER TABLE contacts ADD COLUMN endOfQuarantineReason varchar(255);");
1683+
getDao(Contact.class).executeRaw("ALTER TABLE contacts ADD COLUMN endOfQuarantineReasonDetails varchar(512);");
1684+
16761685
// ATTENTION: break should only be done after last version
16771686
break;
16781687
default:

0 commit comments

Comments
 (0)