Skip to content

Commit 4852720

Browse files
Merge pull request #13624 from SORMAS-Foundation/feature-13602-giardiasis-case-based-surveillance
Integrated Giardiasis and Cryptosporidiosis diseases into sormas
2 parents 1772743 + 7a5c64c commit 4852720

47 files changed

Lines changed: 2100 additions & 356 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

sormas-api/src/main/java/de/symeda/sormas/api/Disease.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,8 @@ public enum Disease
8888
FHA(true, false, false, true, false, 0, true, false, false),
8989
INVASIVE_PNEUMOCOCCAL_INFECTION(true, true, true, false, false, 0, false, false, false),
9090
INVASIVE_MENINGOCOCCAL_INFECTION(true, true, true, false, true, 7, false, false, false),
91+
GIARDIASIS(true, true, true, false, true, 14, false, false, false),
92+
CRYPTOSPORIDIOSIS(true, true, true, false, true, 14, false, false, false),
9193
OTHER(true, true, true, false, true, 21, false, false, false),
9294
UNDEFINED(true, true, true, false, true, 0, false, false, false);
9395

sormas-api/src/main/java/de/symeda/sormas/api/caze/CaseDataDto.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -364,7 +364,9 @@ public class CaseDataDto extends SormasToSormasShareableDto implements IsCase {
364364
@SensitiveData
365365
@Diseases(value = {
366366
Disease.INVASIVE_MENINGOCOCCAL_INFECTION,
367-
Disease.INVASIVE_PNEUMOCOCCAL_INFECTION}, hide = true)
367+
Disease.INVASIVE_PNEUMOCOCCAL_INFECTION,
368+
Disease.GIARDIASIS,
369+
Disease.CRYPTOSPORIDIOSIS }, hide = true)
368370
private HealthConditionsDto healthConditions;
369371
private YesNoUnknown pregnant;
370372
@Diseases({
@@ -1840,8 +1842,6 @@ public void setOtherDiagnosticCriteria(String otherDiagnosticCriteria) {
18401842
this.otherDiagnosticCriteria = otherDiagnosticCriteria;
18411843
}
18421844

1843-
1844-
18451845
@JsonIgnore
18461846
public String i18nPrefix() {
18471847
return I18N_PREFIX;

sormas-api/src/main/java/de/symeda/sormas/api/epidata/EpiDataDto.java

Lines changed: 73 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -21,17 +21,21 @@
2121
import java.util.List;
2222

2323
import javax.validation.Valid;
24+
import javax.validation.constraints.Size;
2425

2526
import de.symeda.sormas.api.CountryHelper;
2627
import de.symeda.sormas.api.Disease;
2728
import de.symeda.sormas.api.ImportIgnore;
2829
import de.symeda.sormas.api.activityascase.ActivityAsCaseDto;
2930
import de.symeda.sormas.api.exposure.ExposureDto;
31+
import de.symeda.sormas.api.exposure.InfectionSource;
32+
import de.symeda.sormas.api.exposure.ModeOfTransmission;
3033
import de.symeda.sormas.api.feature.FeatureType;
31-
import de.symeda.sormas.api.location.LocationDto;
34+
import de.symeda.sormas.api.i18n.Validations;
3235
import de.symeda.sormas.api.utils.DataHelper;
3336
import de.symeda.sormas.api.utils.DependingOnFeatureType;
3437
import de.symeda.sormas.api.utils.Diseases;
38+
import de.symeda.sormas.api.utils.FieldConstraints;
3539
import de.symeda.sormas.api.utils.HideForCountriesExcept;
3640
import de.symeda.sormas.api.utils.YesNoUnknown;
3741
import de.symeda.sormas.api.utils.pseudonymization.PseudonymizableDto;
@@ -57,29 +61,37 @@ public class EpiDataDto extends PseudonymizableDto {
5761
public static final String CLUSTER_TYPE = "clusterType";
5862
public static final String CLUSTER_TYPE_TEXT = "clusterTypeText";
5963
public static final String CLUSTER_RELATED = "clusterRelated";
64+
public static final String MODE_OF_TRANSMISSION = "modeOfTransmission";
65+
public static final String MODE_OF_TRANSMISSION_TYPE = "modeOfTransmissionType";
66+
public static final String INFECTION_SOURCE = "infectionSource";
67+
public static final String INFECTION_SOURCE_TEXT = "infectionSourceText";
6068

6169
private YesNoUnknown exposureDetailsKnown;
6270
private YesNoUnknown activityAsCaseDetailsKnown;
6371
private YesNoUnknown contactWithSourceCaseKnown;
6472
private YesNoUnknown highTransmissionRiskArea;
6573
private YesNoUnknown largeOutbreaksArea;
6674
@Diseases({
67-
Disease.MEASLES})
68-
@HideForCountriesExcept(countries = {CountryHelper.COUNTRY_CODE_LUXEMBOURG})
75+
Disease.MEASLES,
76+
Disease.GIARDIASIS })
6977
private CaseImportedStatus caseImportedStatus;
78+
79+
@HideForCountriesExcept(countries = {
80+
CountryHelper.COUNTRY_CODE_LUXEMBOURG })
7081
@Diseases({
71-
Disease.MEASLES})
72-
@HideForCountriesExcept(countries = {CountryHelper.COUNTRY_CODE_LUXEMBOURG})
82+
Disease.MEASLES })
7383
private ClusterType clusterType;
7484

85+
@HideForCountriesExcept(countries = {
86+
CountryHelper.COUNTRY_CODE_LUXEMBOURG })
7587
@Diseases({
76-
Disease.MEASLES})
77-
@HideForCountriesExcept(countries = {CountryHelper.COUNTRY_CODE_LUXEMBOURG})
88+
Disease.MEASLES })
7889
private boolean clusterRelated;
7990

80-
@HideForCountriesExcept(countries = {CountryHelper.COUNTRY_CODE_LUXEMBOURG})
91+
@HideForCountriesExcept(countries = {
92+
CountryHelper.COUNTRY_CODE_LUXEMBOURG })
8193
@Diseases({
82-
Disease.MEASLES})
94+
Disease.MEASLES })
8395
private String clusterTypeText;
8496

8597
@Diseases({
@@ -92,6 +104,26 @@ public class EpiDataDto extends PseudonymizableDto {
92104
Disease.OTHER })
93105
private YesNoUnknown areaInfectedAnimals;
94106

107+
@Diseases({
108+
Disease.GIARDIASIS,
109+
Disease.CRYPTOSPORIDIOSIS })
110+
private ModeOfTransmission modeOfTransmission;
111+
112+
@Diseases({
113+
Disease.GIARDIASIS,
114+
Disease.CRYPTOSPORIDIOSIS })
115+
@Size(max = FieldConstraints.CHARACTER_LIMIT_DEFAULT, message = Validations.textTooLong)
116+
private String modeOfTransmissionType;
117+
118+
@Diseases({
119+
Disease.GIARDIASIS,
120+
Disease.CRYPTOSPORIDIOSIS })
121+
private InfectionSource infectionSource;
122+
@Diseases({
123+
Disease.GIARDIASIS,
124+
Disease.CRYPTOSPORIDIOSIS })
125+
private String infectionSourceText;
126+
95127
@Valid
96128
private List<ExposureDto> exposures = new ArrayList<>();
97129

@@ -203,6 +235,38 @@ public void setClusterRelated(boolean clusterRelated) {
203235
this.clusterRelated = clusterRelated;
204236
}
205237

238+
public InfectionSource getInfectionSource() {
239+
return infectionSource;
240+
}
241+
242+
public void setInfectionSource(InfectionSource infectionSource) {
243+
this.infectionSource = infectionSource;
244+
}
245+
246+
public String getInfectionSourceText() {
247+
return infectionSourceText;
248+
}
249+
250+
public void setInfectionSourceText(String infectionSourceText) {
251+
this.infectionSourceText = infectionSourceText;
252+
}
253+
254+
public ModeOfTransmission getModeOfTransmission() {
255+
return modeOfTransmission;
256+
}
257+
258+
public void setModeOfTransmission(ModeOfTransmission modeOfTransmission) {
259+
this.modeOfTransmission = modeOfTransmission;
260+
}
261+
262+
public String getModeOfTransmissionType() {
263+
return modeOfTransmissionType;
264+
}
265+
266+
public void setModeOfTransmissionType(String modeOfTransmissionType) {
267+
this.modeOfTransmissionType = modeOfTransmissionType;
268+
}
269+
206270
@Override
207271
public EpiDataDto clone() throws CloneNotSupportedException {
208272
EpiDataDto clone = (EpiDataDto) super.clone();
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
/*
2+
* SORMAS® - Surveillance Outbreak Response Management & Analysis System
3+
* Copyright © 2016-2026 SORMAS Foundation gGmbH
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+
package de.symeda.sormas.api.exposure;
16+
17+
import de.symeda.sormas.api.i18n.I18nProperties;
18+
19+
public enum AnimalLocation {
20+
21+
ZOO,
22+
FARM,
23+
PARK,
24+
FOREST,
25+
OTHER;
26+
27+
@Override
28+
public String toString() {
29+
return I18nProperties.getEnumCaption(this);
30+
}
31+
32+
}

0 commit comments

Comments
 (0)