Skip to content

Commit 3d1a2e3

Browse files
Merge pull request #13988 from SORMAS-Foundation/feature-13965-shigellosis-lab-messages
Shigellosis lab message processing + minor defects.
2 parents a7b8ac4 + bb53c0c commit 3d1a2e3

29 files changed

Lines changed: 498 additions & 134 deletions

File tree

sormas-api/src/main/java/de/symeda/sormas/api/clinicalcourse/HealthConditionsDto.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ public class HealthConditionsDto extends PseudonymizableDto {
6060
public static final String VACCINATED_AGAINST_MOSQUITO_BORNE_VIRUSES = "vaccinatedAgainstMosquitoBorneViruses";
6161
public static final String MALARIA = "malaria";
6262
public static final String MALARIA_INFECTED_YEAR = "malariaInfectedYear";
63-
public static final String UNDER_MEDICATION = "underMedication";
63+
public static final String ON_MEDICATION = "onMedication";
6464
public static final String MEDICATION_DETAILS = "medicationDetails";
6565
public static final String CHRONIC_DISEASE = "chronicDisease";
6666
public static final String CHRONIC_DISEASE_DETAILS = "chronicDiseaseDetails";
@@ -201,7 +201,7 @@ public class HealthConditionsDto extends PseudonymizableDto {
201201
private Integer malariaInfectedYear;
202202
@Diseases(value = {
203203
Disease.SHIGELLOSIS })
204-
private YesNoUnknown underMedication;
204+
private YesNoUnknown onMedication;
205205
@Diseases(value = {
206206
Disease.SHIGELLOSIS })
207207
private String medicationDetails;
@@ -506,12 +506,12 @@ public void setMalariaInfectedYear(Integer malariaInfectedYear) {
506506
this.malariaInfectedYear = malariaInfectedYear;
507507
}
508508

509-
public YesNoUnknown getUnderMedication() {
510-
return underMedication;
509+
public YesNoUnknown getOnMedication() {
510+
return onMedication;
511511
}
512512

513-
public void setUnderMedication(YesNoUnknown underMedication) {
514-
this.underMedication = underMedication;
513+
public void setOnMedication(YesNoUnknown onMedication) {
514+
this.onMedication = onMedication;
515515
}
516516

517517
public String getMedicationDetails() {

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

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -142,6 +142,7 @@ public class ExposureDto extends PseudonymizableDto {
142142
public static final String TRAVEL_PURPOSE = "travelPurpose";
143143
public static final String TRAVEL_PURPOSE_DETAILS = "travelPurposeDetails";
144144
public static final String SHOPPING_FOR_FOOD_DETAILS = "shoppingForFoodDetails";
145+
public static final String SEXUAL_CONTACT = "sexualContact";
145146

146147
@SensitiveData
147148
private UserReferenceDto reportingUser;
@@ -466,6 +467,11 @@ public class ExposureDto extends PseudonymizableDto {
466467
@Size(max = FieldConstraints.CHARACTER_LIMIT_DEFAULT, message = Validations.textTooLong)
467468
private String shoppingForFoodDetails;
468469

470+
@Diseases({
471+
Disease.SHIGELLOSIS })
472+
@SensitiveData
473+
private SexualContact sexualContact;
474+
469475
public static ExposureDto build(ExposureType exposureType) {
470476

471477
ExposureDto exposure = new ExposureDto();
@@ -1169,6 +1175,14 @@ public void setShoppingForFoodDetails(String shoppingForFoodDetails) {
11691175
this.shoppingForFoodDetails = shoppingForFoodDetails;
11701176
}
11711177

1178+
public SexualContact getSexualContact() {
1179+
return sexualContact;
1180+
}
1181+
1182+
public void setSexualContact(SexualContact sexualContact) {
1183+
this.sexualContact = sexualContact;
1184+
}
1185+
11721186
@Override
11731187
public ExposureDto clone() throws CloneNotSupportedException {
11741188
ExposureDto clone = (ExposureDto) super.clone();

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

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,9 @@ public enum ExposureSubSetting {
5151

5252
EATING_AT_HOME(ExposureCategory.FOOD_BORNE, null),
5353
EATING_OUTSIDE(ExposureCategory.FOOD_BORNE, null),
54+
@Diseases({
55+
Disease.SHIGELLOSIS })
56+
HOUSEHOLD_CONTACT(ExposureCategory.DIRECT_CONTACT, ExposureSetting.PERSON_TO_PERSON),
5457
@Diseases({
5558
Disease.SALMONELLOSIS })
5659
SHOPPING_FOR_FOOD(ExposureCategory.FOOD_BORNE, null),
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
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+
/**
20+
* Enum for sexual contact types.
21+
*/
22+
public enum SexualContact {
23+
24+
MALE,
25+
FEMALE,
26+
BOTH,
27+
NOT_ANSWERED,
28+
UNKNOWN,
29+
OTHER;
30+
31+
@Override
32+
public String toString() {
33+
return I18nProperties.getEnumCaption(this);
34+
}
35+
}

sormas-api/src/main/java/de/symeda/sormas/api/externalmessage/labmessage/TestReportDto.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
import de.symeda.sormas.api.sample.PCRTestSpecification;
1616
import de.symeda.sormas.api.sample.PathogenSpecie;
1717
import de.symeda.sormas.api.sample.PathogenStrainCallStatus;
18+
import de.symeda.sormas.api.sample.PathogenTestCategory;
1819
import de.symeda.sormas.api.sample.PathogenTestResultType;
1920
import de.symeda.sormas.api.sample.PathogenTestType;
2021
import de.symeda.sormas.api.sample.RsvSubtype;
@@ -217,6 +218,8 @@ public class TestReportDto extends EntityDto {
217218
@Size(max = FieldConstraints.CHARACTER_LIMIT_SMALL, message = Validations.textTooLong)
218219
private String serotypeText;
219220

221+
private PathogenTestCategory pathogenTestCategory;
222+
220223
public SampleReportReferenceDto getSampleReport() {
221224
return sampleReport;
222225
}
@@ -912,4 +915,11 @@ public void setSerotypeText(String serotypeText) {
912915
this.serotypeText = serotypeText;
913916
}
914917

918+
public PathogenTestCategory getPathogenTestCategory() {
919+
return pathogenTestCategory;
920+
}
921+
922+
public void setPathogenTestCategory(PathogenTestCategory pathogenTestCategory) {
923+
this.pathogenTestCategory = pathogenTestCategory;
924+
}
915925
}

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1968,6 +1968,7 @@ public interface Captions {
19681968
String Exposure_rawFoodContactText = "Exposure.rawFoodContactText";
19691969
String Exposure_riskArea = "Exposure.riskArea";
19701970
String Exposure_seatNumber = "Exposure.seatNumber";
1971+
String Exposure_sexualContact = "Exposure.sexualContact";
19711972
String Exposure_sexualExposureText = "Exposure.sexualExposureText";
19721973
String Exposure_shoppingForFoodDetails = "Exposure.shoppingForFoodDetails";
19731974
String Exposure_shortDistance = "Exposure.shortDistance";
@@ -2139,13 +2140,13 @@ public interface Captions {
21392140
String HealthConditions_malignancyChemotherapy = "HealthConditions.malignancyChemotherapy";
21402141
String HealthConditions_medicationDetails = "HealthConditions.medicationDetails";
21412142
String HealthConditions_obesity = "HealthConditions.obesity";
2143+
String HealthConditions_onMedication = "HealthConditions.onMedication";
21422144
String HealthConditions_otherConditions = "HealthConditions.otherConditions";
21432145
String HealthConditions_previousTuberculosisTreatment = "HealthConditions.previousTuberculosisTreatment";
21442146
String HealthConditions_recurrentBronchiolitis = "HealthConditions.recurrentBronchiolitis";
21452147
String HealthConditions_sickleCellDisease = "HealthConditions.sickleCellDisease";
21462148
String HealthConditions_tuberculosis = "HealthConditions.tuberculosis";
21472149
String HealthConditions_tuberculosisInfectionYear = "HealthConditions.tuberculosisInfectionYear";
2148-
String HealthConditions_underMedication = "HealthConditions.underMedication";
21492150
String HealthConditions_vaccinatedAgainstMosquitoBorneViruses = "HealthConditions.vaccinatedAgainstMosquitoBorneViruses";
21502151
String humanSampleViewType = "humanSampleViewType";
21512152
String Immunization = "Immunization";

sormas-api/src/main/java/de/symeda/sormas/api/sample/PathogenSpecie.java

Lines changed: 23 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -172,27 +172,37 @@ public enum PathogenSpecie {
172172
@Diseases(value = {
173173
Disease.SHIGELLOSIS })
174174
@ApplicableToPathogenTests(value = {
175-
PathogenTestType.SEROGROUPING })
175+
PathogenTestType.SEROGROUPING,
176+
PathogenTestType.SEROTYPING,
177+
PathogenTestType.BACTERIAL_CULTURE })
176178
BOYDII,
177179
@Diseases(value = {
178180
Disease.SHIGELLOSIS })
179181
@ApplicableToPathogenTests(value = {
180-
PathogenTestType.SEROGROUPING })
182+
PathogenTestType.SEROGROUPING,
183+
PathogenTestType.SEROTYPING,
184+
PathogenTestType.BACTERIAL_CULTURE })
181185
DYSENTERIAE,
182186
@Diseases(value = {
183187
Disease.SHIGELLOSIS })
184188
@ApplicableToPathogenTests(value = {
185-
PathogenTestType.SEROGROUPING })
189+
PathogenTestType.SEROGROUPING,
190+
PathogenTestType.SEROTYPING,
191+
PathogenTestType.BACTERIAL_CULTURE })
186192
FLEXNERI,
187193
@Diseases(value = {
188194
Disease.SHIGELLOSIS })
189195
@ApplicableToPathogenTests(value = {
190-
PathogenTestType.SEROGROUPING })
196+
PathogenTestType.SEROGROUPING,
197+
PathogenTestType.SEROTYPING,
198+
PathogenTestType.BACTERIAL_CULTURE })
191199
SONNEI,
192200
@Diseases(value = {
193201
Disease.SHIGELLOSIS })
194202
@ApplicableToPathogenTests(value = {
195-
PathogenTestType.SEROGROUPING })
203+
PathogenTestType.SEROGROUPING,
204+
PathogenTestType.SEROTYPING,
205+
PathogenTestType.BACTERIAL_CULTURE })
196206
SHIGELLA_SPP,
197207
@Diseases({
198208
Disease.MALARIA,
@@ -206,7 +216,10 @@ public enum PathogenSpecie {
206216
PathogenTestType.Q_PCR,
207217
PathogenTestType.LAMP,
208218
PathogenTestType.OTHER_MOLECULAR_ASSAY,
209-
PathogenTestType.OTHER_SEROLOGICAL_TEST })
219+
PathogenTestType.OTHER_SEROLOGICAL_TEST,
220+
PathogenTestType.BACTERIAL_CULTURE,
221+
PathogenTestType.SEROGROUPING,
222+
PathogenTestType.SEROTYPING })
210223
OTHER,
211224
@Diseases({
212225
Disease.TUBERCULOSIS,
@@ -223,7 +236,10 @@ public enum PathogenSpecie {
223236
PathogenTestType.Q_PCR,
224237
PathogenTestType.LAMP,
225238
PathogenTestType.OTHER_MOLECULAR_ASSAY,
226-
PathogenTestType.OTHER_SEROLOGICAL_TEST })
239+
PathogenTestType.OTHER_SEROLOGICAL_TEST,
240+
PathogenTestType.BACTERIAL_CULTURE,
241+
PathogenTestType.SEROGROUPING,
242+
PathogenTestType.SEROTYPING })
227243
UNKNOWN,
228244
@Diseases({
229245
Disease.TUBERCULOSIS,

0 commit comments

Comments
 (0)