Skip to content

Commit 6f24690

Browse files
committed
Adds Salmonellosis fields support to the Symptoms & Exposure flow
1 parent 769720b commit 6f24690

14 files changed

Lines changed: 372 additions & 34 deletions

File tree

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
/*
2+
* SORMAS® - Surveillance Outbreak Response Management & Analysis System
3+
* Copyright © 2016-2026 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+
*/
9+
10+
package de.symeda.sormas.api.exposure;
11+
12+
import de.symeda.sormas.api.i18n.I18nProperties;
13+
14+
public enum EatingOutVenue {
15+
16+
CANTEENS,
17+
FOOD_SERVED_ON_BOARD,
18+
GAS_STATIONS,
19+
STREET_VENDORS,
20+
FOOD_COURTS,
21+
CAFES_OR_TEA_ROOMS,
22+
SANDWICH_SHOPS_BAKERIES_DELICATESSENS,
23+
CAFETERIAS_OR_BARS,
24+
KEBAB_FALAFEL_SNACK_SHOPS,
25+
BURGER_RESTAURANTS,
26+
FAST_FOOD_SNACK_BARS,
27+
PIZZERIAS,
28+
ASIAN_RESTAURANTS,
29+
HOTELS,
30+
TAKEAWAY_FOOD,
31+
BUFFET_STYLE_RESTAURANTS,
32+
FOOD_AT_EVENTS,
33+
OTHER;
34+
35+
@Override
36+
public String toString() {
37+
return I18nProperties.getEnumCaption(this);
38+
}
39+
}

sormas-api/src/main/java/de/symeda/sormas/api/exposure/ExposureDto.java

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
import javax.validation.Valid;
2323
import javax.validation.constraints.Size;
2424

25+
import de.symeda.sormas.api.CountryHelper;
2526
import de.symeda.sormas.api.Disease;
2627
import de.symeda.sormas.api.contact.ContactReferenceDto;
2728
import de.symeda.sormas.api.epidata.AnimalCondition;
@@ -139,6 +140,9 @@ public class ExposureDto extends PseudonymizableDto {
139140
public static final String PROPHYLAXIS_ADHERENCE_DETAILS = "prophylaxisAdherenceDetails";
140141
public static final String TRAVEL_PURPOSE = "travelPurpose";
141142
public static final String TRAVEL_PURPOSE_DETAILS = "travelPurposeDetails";
143+
public static final String EATING_OUT_VENUES = "eatingOutVenues";
144+
public static final String EATING_OUT_VENUE_OTHER = "eatingOutVenueOther";
145+
public static final String SHOPPING_FOR_FOOD_DETAILS = "shoppingForFoodDetails";
142146

143147
@SensitiveData
144148
private UserReferenceDto reportingUser;
@@ -455,6 +459,24 @@ public class ExposureDto extends PseudonymizableDto {
455459
@Size(max = FieldConstraints.CHARACTER_LIMIT_TEXT, message = Validations.textTooLong)
456460
private String travelPurposeDetails;
457461

462+
@Diseases({
463+
Disease.SALMONELLOSIS })
464+
@HideForCountriesExcept(countries = {
465+
CountryHelper.COUNTRY_CODE_LUXEMBOURG })
466+
private Set<EatingOutVenue> eatingOutVenues;
467+
@Diseases({
468+
Disease.SALMONELLOSIS })
469+
@HideForCountriesExcept(countries = {
470+
CountryHelper.COUNTRY_CODE_LUXEMBOURG })
471+
@Size(max = FieldConstraints.CHARACTER_LIMIT_DEFAULT, message = Validations.textTooLong)
472+
private String eatingOutVenueOther;
473+
@Diseases({
474+
Disease.SALMONELLOSIS })
475+
@HideForCountriesExcept(countries = {
476+
CountryHelper.COUNTRY_CODE_LUXEMBOURG })
477+
@Size(max = FieldConstraints.CHARACTER_LIMIT_DEFAULT, message = Validations.textTooLong)
478+
private String shoppingForFoodDetails;
479+
458480
public static ExposureDto build(ExposureType exposureType) {
459481

460482
ExposureDto exposure = new ExposureDto();
@@ -466,6 +488,7 @@ public static ExposureDto build(ExposureType exposureType) {
466488
exposure.setSubSettings(new HashSet<>());
467489
exposure.setContactFactors(new HashSet<>());
468490
exposure.setProtectiveMeasures(new HashSet<>());
491+
exposure.setEatingOutVenues(new HashSet<>());
469492

470493
return exposure;
471494
}
@@ -1150,6 +1173,30 @@ public void setProphylaxisAdherenceDetails(String prophylaxisAdherenceDetails) {
11501173
this.prophylaxisAdherenceDetails = prophylaxisAdherenceDetails;
11511174
}
11521175

1176+
public Set<EatingOutVenue> getEatingOutVenues() {
1177+
return eatingOutVenues;
1178+
}
1179+
1180+
public void setEatingOutVenues(Set<EatingOutVenue> eatingOutVenues) {
1181+
this.eatingOutVenues = eatingOutVenues;
1182+
}
1183+
1184+
public String getEatingOutVenueOther() {
1185+
return eatingOutVenueOther;
1186+
}
1187+
1188+
public void setEatingOutVenueOther(String eatingOutVenueOther) {
1189+
this.eatingOutVenueOther = eatingOutVenueOther;
1190+
}
1191+
1192+
public String getShoppingForFoodDetails() {
1193+
return shoppingForFoodDetails;
1194+
}
1195+
1196+
public void setShoppingForFoodDetails(String shoppingForFoodDetails) {
1197+
this.shoppingForFoodDetails = shoppingForFoodDetails;
1198+
}
1199+
11531200
@Override
11541201
public ExposureDto clone() throws CloneNotSupportedException {
11551202
ExposureDto clone = (ExposureDto) super.clone();

sormas-api/src/main/java/de/symeda/sormas/api/exposure/ExposureSubSetting.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@ public enum ExposureSubSetting {
4949

5050
EATING_AT_HOME(ExposureCategory.FOOD_BORNE, null),
5151
EATING_OUTSIDE(ExposureCategory.FOOD_BORNE, null),
52+
SHOPPING_FOR_FOOD(ExposureCategory.FOOD_BORNE, null),
5253

5354
UNKNOWN(null, null),
5455
OTHER(null, null);

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

Lines changed: 20 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -336,11 +336,9 @@ public interface Captions {
336336
String AefiInvestigation_aefiClassificationDetails = "AefiInvestigation.aefiClassificationDetails";
337337
String AefiInvestigation_aefiClassificationSubType = "AefiInvestigation.aefiClassificationSubType";
338338
String AefiInvestigation_allCasesInClusterReceivedVaccineFromSameVial = "AefiInvestigation.allCasesInClusterReceivedVaccineFromSameVial";
339-
String AefiInvestigation_allCasesInClusterReceivedVaccineFromSameVialDetails =
340-
"AefiInvestigation.allCasesInClusterReceivedVaccineFromSameVialDetails";
339+
String AefiInvestigation_allCasesInClusterReceivedVaccineFromSameVialDetails = "AefiInvestigation.allCasesInClusterReceivedVaccineFromSameVialDetails";
341340
String AefiInvestigation_anyOtherItemInRefrigerator = "AefiInvestigation.anyOtherItemInRefrigerator";
342-
String AefiInvestigation_anyStorageTemperatureDeviationOutsideTwoToEightDegrees =
343-
"AefiInvestigation.anyStorageTemperatureDeviationOutsideTwoToEightDegrees";
341+
String AefiInvestigation_anyStorageTemperatureDeviationOutsideTwoToEightDegrees = "AefiInvestigation.anyStorageTemperatureDeviationOutsideTwoToEightDegrees";
344342
String AefiInvestigation_autopsyDate = "AefiInvestigation.autopsyDate";
345343
String AefiInvestigation_autopsyDone = "AefiInvestigation.autopsyDone";
346344
String AefiInvestigation_autopsyPlannedDateTime = "AefiInvestigation.autopsyPlannedDateTime";
@@ -376,19 +374,16 @@ public interface Captions {
376374
String AefiInvestigation_errorPrescribingVaccine = "AefiInvestigation.errorPrescribingVaccine";
377375
String AefiInvestigation_errorPrescribingVaccineDetails = "AefiInvestigation.errorPrescribingVaccineDetails";
378376
String AefiInvestigation_eventIsAStressResponseRelatedToImmunization = "AefiInvestigation.eventIsAStressResponseRelatedToImmunization";
379-
String AefiInvestigation_eventIsAStressResponseRelatedToImmunizationDetails =
380-
"AefiInvestigation.eventIsAStressResponseRelatedToImmunizationDetails";
377+
String AefiInvestigation_eventIsAStressResponseRelatedToImmunizationDetails = "AefiInvestigation.eventIsAStressResponseRelatedToImmunizationDetails";
381378
String AefiInvestigation_externalId = "AefiInvestigation.externalId";
382379
String AefiInvestigation_familyHistoryOfDiseaseOrAllergy = "AefiInvestigation.familyHistoryOfDiseaseOrAllergy";
383380
String AefiInvestigation_familyHistoryOfDiseaseOrAllergyDetails = "AefiInvestigation.familyHistoryOfDiseaseOrAllergyDetails";
384381
String AefiInvestigation_firstCaregiversName = "AefiInvestigation.firstCaregiversName";
385382
String AefiInvestigation_formCompletionDate = "AefiInvestigation.formCompletionDate";
386383
String AefiInvestigation_historyOfAllergyToVaccineDrugOrFood = "AefiInvestigation.historyOfAllergyToVaccineDrugOrFood";
387384
String AefiInvestigation_historyOfAllergyToVaccineDrugOrFoodDetails = "AefiInvestigation.historyOfAllergyToVaccineDrugOrFoodDetails";
388-
String AefiInvestigation_historyOfHospitalizationInLastThirtyDaysWithCause =
389-
"AefiInvestigation.historyOfHospitalizationInLastThirtyDaysWithCause";
390-
String AefiInvestigation_historyOfHospitalizationInLastThirtyDaysWithCauseDetails =
391-
"AefiInvestigation.historyOfHospitalizationInLastThirtyDaysWithCauseDetails";
385+
String AefiInvestigation_historyOfHospitalizationInLastThirtyDaysWithCause = "AefiInvestigation.historyOfHospitalizationInLastThirtyDaysWithCause";
386+
String AefiInvestigation_historyOfHospitalizationInLastThirtyDaysWithCauseDetails = "AefiInvestigation.historyOfHospitalizationInLastThirtyDaysWithCauseDetails";
392387
String AefiInvestigation_hospitalizationDate = "AefiInvestigation.hospitalizationDate";
393388
String AefiInvestigation_injectionTechniqueAdditionalDetails = "AefiInvestigation.injectionTechniqueAdditionalDetails";
394389
String AefiInvestigation_investigationCaseId = "AefiInvestigation.investigationCaseId";
@@ -400,17 +395,13 @@ public interface Captions {
400395
String AefiInvestigation_keySymptomDateTime = "AefiInvestigation.keySymptomDateTime";
401396
String AefiInvestigation_lastTrainingReceivedByVaccinatorDate = "AefiInvestigation.lastTrainingReceivedByVaccinatorDate";
402397
String AefiInvestigation_nonTouchTechniqueFollowed = "AefiInvestigation.nonTouchTechniqueFollowed";
403-
String AefiInvestigation_numberImmunizedConcernedVaccineSameBatchNumberLocationDetails =
404-
"AefiInvestigation.numberImmunizedConcernedVaccineSameBatchNumberLocationDetails";
405-
String AefiInvestigation_numberImmunizedConcernedVaccineSameBatchNumberOtherLocations =
406-
"AefiInvestigation.numberImmunizedConcernedVaccineSameBatchNumberOtherLocations";
398+
String AefiInvestigation_numberImmunizedConcernedVaccineSameBatchNumberLocationDetails = "AefiInvestigation.numberImmunizedConcernedVaccineSameBatchNumberLocationDetails";
399+
String AefiInvestigation_numberImmunizedConcernedVaccineSameBatchNumberOtherLocations = "AefiInvestigation.numberImmunizedConcernedVaccineSameBatchNumberOtherLocations";
407400
String AefiInvestigation_numberImmunizedFromConcernedVaccineVial = "AefiInvestigation.numberImmunizedFromConcernedVaccineVial";
408401
String AefiInvestigation_numberImmunizedWithConcernedVaccineInSameSession = "AefiInvestigation.numberImmunizedWithConcernedVaccineInSameSession";
409-
String AefiInvestigation_numberOfAefiReportedFromVaccineDistributionCenterLastThirtyDays =
410-
"AefiInvestigation.numberOfAefiReportedFromVaccineDistributionCenterLastThirtyDays";
402+
String AefiInvestigation_numberOfAefiReportedFromVaccineDistributionCenterLastThirtyDays = "AefiInvestigation.numberOfAefiReportedFromVaccineDistributionCenterLastThirtyDays";
411403
String AefiInvestigation_numberOfCasesDetectedInCluster = "AefiInvestigation.numberOfCasesDetectedInCluster";
412-
String AefiInvestigation_numberOfSimilarEventsReportedSamePeriodAndLocality =
413-
"AefiInvestigation.numberOfSimilarEventsReportedSamePeriodAndLocality";
404+
String AefiInvestigation_numberOfSimilarEventsReportedSamePeriodAndLocality = "AefiInvestigation.numberOfSimilarEventsReportedSamePeriodAndLocality";
414405
String AefiInvestigation_numberOfThoseAffectedNotVaccinated = "AefiInvestigation.numberOfThoseAffectedNotVaccinated";
415406
String AefiInvestigation_numberOfThoseAffectedVaccinated = "AefiInvestigation.numberOfThoseAffectedVaccinated";
416407
String AefiInvestigation_numberOfThoseAffectedVaccinatedUnknown = "AefiInvestigation.numberOfThoseAffectedVaccinatedUnknown";
@@ -431,8 +422,7 @@ public interface Captions {
431422
String AefiInvestigation_placeOfVaccination = "AefiInvestigation.placeOfVaccination";
432423
String AefiInvestigation_placeOfVaccinationDetails = "AefiInvestigation.placeOfVaccinationDetails";
433424
String AefiInvestigation_preExistingIllnessThirtyDaysOrCongenitalDisorder = "AefiInvestigation.preExistingIllnessThirtyDaysOrCongenitalDisorder";
434-
String AefiInvestigation_preExistingIllnessThirtyDaysOrCongenitalDisorderDetails =
435-
"AefiInvestigation.preExistingIllnessThirtyDaysOrCongenitalDisorderDetails";
425+
String AefiInvestigation_preExistingIllnessThirtyDaysOrCongenitalDisorderDetails = "AefiInvestigation.preExistingIllnessThirtyDaysOrCongenitalDisorderDetails";
436426
String AefiInvestigation_provisionalOrFinalDiagnosis = "AefiInvestigation.provisionalOrFinalDiagnosis";
437427
String AefiInvestigation_reconstitutionAdditionalDetails = "AefiInvestigation.reconstitutionAdditionalDetails";
438428
String AefiInvestigation_reportDate = "AefiInvestigation.reportDate";
@@ -452,17 +442,14 @@ public interface Captions {
452442
String AefiInvestigation_responsibleRegion = "AefiInvestigation.responsibleRegion";
453443
String AefiInvestigation_sameReconstitutionSyringeForEachVaccination = "AefiInvestigation.sameReconstitutionSyringeForEachVaccination";
454444
String AefiInvestigation_sameReconstitutionSyringeForEachVaccineVial = "AefiInvestigation.sameReconstitutionSyringeForEachVaccineVial";
455-
String AefiInvestigation_sameReconstitutionSyringeUsedForMultipleVialsOfSameVaccine =
456-
"AefiInvestigation.sameReconstitutionSyringeUsedForMultipleVialsOfSameVaccine";
457-
String AefiInvestigation_sameReconstitutionSyringeUsedForReconstitutingDifferentVaccines =
458-
"AefiInvestigation.sameReconstitutionSyringeUsedForReconstitutingDifferentVaccines";
445+
String AefiInvestigation_sameReconstitutionSyringeUsedForMultipleVialsOfSameVaccine = "AefiInvestigation.sameReconstitutionSyringeUsedForMultipleVialsOfSameVaccine";
446+
String AefiInvestigation_sameReconstitutionSyringeUsedForReconstitutingDifferentVaccines = "AefiInvestigation.sameReconstitutionSyringeUsedForReconstitutingDifferentVaccines";
459447
String AefiInvestigation_seriousAefiInfoSource = "AefiInvestigation.seriousAefiInfoSource";
460448
String AefiInvestigation_seriousAefiInfoSourceDetails = "AefiInvestigation.seriousAefiInfoSourceDetails";
461449
String AefiInvestigation_seriousAefiVerbalAutopsyInfoSourceDetails = "AefiInvestigation.seriousAefiVerbalAutopsyInfoSourceDetails";
462450
String AefiInvestigation_signsAndSymptomsFromTimeOfVaccination = "AefiInvestigation.signsAndSymptomsFromTimeOfVaccination";
463451
String AefiInvestigation_similarEventsReportedSamePeriodAndLocality = "AefiInvestigation.similarEventsReportedSamePeriodAndLocality";
464-
String AefiInvestigation_similarEventsReportedSamePeriodAndLocalityDetails =
465-
"AefiInvestigation.similarEventsReportedSamePeriodAndLocalityDetails";
452+
String AefiInvestigation_similarEventsReportedSamePeriodAndLocalityDetails = "AefiInvestigation.similarEventsReportedSamePeriodAndLocalityDetails";
466453
String AefiInvestigation_statusOnDateOfInvestigation = "AefiInvestigation.statusOnDateOfInvestigation";
467454
String AefiInvestigation_storageTemperatureMonitoringAdditionalDetails = "AefiInvestigation.storageTemperatureMonitoringAdditionalDetails";
468455
String AefiInvestigation_syringesUsedAdditionalDetails = "AefiInvestigation.syringesUsedAdditionalDetails";
@@ -481,8 +468,7 @@ public interface Captions {
481468
String AefiInvestigation_vaccinationFacilityDetails = "AefiInvestigation.vaccinationFacilityDetails";
482469
String AefiInvestigation_vaccineAdministeredIncorrectly = "AefiInvestigation.vaccineAdministeredIncorrectly";
483470
String AefiInvestigation_vaccineAdministeredIncorrectlyDetails = "AefiInvestigation.vaccineAdministeredIncorrectlyDetails";
484-
String AefiInvestigation_vaccineCarrierReturnedFromSiteOnSameDateAsVaccination =
485-
"AefiInvestigation.vaccineCarrierReturnedFromSiteOnSameDateAsVaccination";
471+
String AefiInvestigation_vaccineCarrierReturnedFromSiteOnSameDateAsVaccination = "AefiInvestigation.vaccineCarrierReturnedFromSiteOnSameDateAsVaccination";
486472
String AefiInvestigation_vaccineCarrierSentToSiteOnSameDateAsVaccination = "AefiInvestigation.vaccineCarrierSentToSiteOnSameDateAsVaccination";
487473
String AefiInvestigation_vaccineCarrierType = "AefiInvestigation.vaccineCarrierType";
488474
String AefiInvestigation_vaccineCarrierTypeDetails = "AefiInvestigation.vaccineCarrierTypeDetails";
@@ -1914,6 +1900,8 @@ public interface Captions {
19141900
String Exposure_deceasedPersonName = "Exposure.deceasedPersonName";
19151901
String Exposure_deceasedPersonRelation = "Exposure.deceasedPersonRelation";
19161902
String Exposure_domesticSwimming = "Exposure.domesticSwimming";
1903+
String Exposure_eatingOutVenueOther = "Exposure.eatingOutVenueOther";
1904+
String Exposure_eatingOutVenues = "Exposure.eatingOutVenues";
19171905
String Exposure_eatingRawAnimalProducts = "Exposure.eatingRawAnimalProducts";
19181906
String Exposure_endDate = "Exposure.endDate";
19191907
String Exposure_exposureCategory = "Exposure.exposureCategory";
@@ -1959,6 +1947,7 @@ public interface Captions {
19591947
String Exposure_riskArea = "Exposure.riskArea";
19601948
String Exposure_seatNumber = "Exposure.seatNumber";
19611949
String Exposure_sexualExposureText = "Exposure.sexualExposureText";
1950+
String Exposure_shoppingForFoodDetails = "Exposure.shoppingForFoodDetails";
19621951
String Exposure_shortDistance = "Exposure.shortDistance";
19631952
String Exposure_startDate = "Exposure.startDate";
19641953
String Exposure_subSettings = "Exposure.subSettings";
@@ -3028,6 +3017,7 @@ public interface Captions {
30283017
String Symptoms_congenitalHeartDiseaseType = "Symptoms.congenitalHeartDiseaseType";
30293018
String Symptoms_conjunctivalInjection = "Symptoms.conjunctivalInjection";
30303019
String Symptoms_conjunctivitis = "Symptoms.conjunctivitis";
3020+
String Symptoms_constipation = "Symptoms.constipation";
30313021
String Symptoms_convulsion = "Symptoms.convulsion";
30323022
String Symptoms_cough = "Symptoms.cough";
30333023
String Symptoms_coughingBlood = "Symptoms.coughingBlood";
@@ -3051,11 +3041,13 @@ public interface Captions {
30513041
String Symptoms_dizzinessStandingUp = "Symptoms.dizzinessStandingUp";
30523042
String Symptoms_durationOfSymptoms = "Symptoms.durationOfSymptoms";
30533043
String Symptoms_dysphagia = "Symptoms.dysphagia";
3044+
String Symptoms_dysuria = "Symptoms.dysuria";
30543045
String Symptoms_eggyBurps = "Symptoms.eggyBurps";
30553046
String Symptoms_encephalitis = "Symptoms.encephalitis";
30563047
String Symptoms_erraticBehaviour = "Symptoms.erraticBehaviour";
30573048
String Symptoms_excessSalivation = "Symptoms.excessSalivation";
30583049
String Symptoms_excitation = "Symptoms.excitation";
3050+
String Symptoms_eyeIrritation = "Symptoms.eyeIrritation";
30593051
String Symptoms_eyePainLightSensitive = "Symptoms.eyePainLightSensitive";
30603052
String Symptoms_eyesBleeding = "Symptoms.eyesBleeding";
30613053
String Symptoms_fastHeartRate = "Symptoms.fastHeartRate";

0 commit comments

Comments
 (0)