Skip to content

Commit 84ebedd

Browse files
Measles changes for LUX
1 parent 42bfb6e commit 84ebedd

42 files changed

Lines changed: 980 additions & 85 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/caze/VaccinationStatus.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,22 @@
1717
*******************************************************************************/
1818
package de.symeda.sormas.api.caze;
1919

20+
import de.symeda.sormas.api.CountryHelper;
21+
import de.symeda.sormas.api.Disease;
2022
import de.symeda.sormas.api.i18n.I18nProperties;
23+
import de.symeda.sormas.api.utils.Diseases;
24+
import de.symeda.sormas.api.utils.HideForCountriesExcept;
2125

2226
public enum VaccinationStatus {
2327

2428
VACCINATED,
2529
UNVACCINATED,
30+
@Diseases(value = {Disease.MEASLES})
31+
VACCINATED_ONE_DOSE,
32+
@Diseases(value = {Disease.MEASLES})
33+
VACCINATED_TWO_DOSE,
34+
@Diseases(value = {Disease.MEASLES})
35+
RECOVERED,
2636
UNKNOWN;
2737

2838
@Override

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

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -154,6 +154,11 @@ public class ContactDto extends SormasToSormasShareableDto implements IsContact
154154
public static final String PROPHYLAXIS_PRESCRIBED = "prophylaxisPrescribed";
155155
public static final String PRESCRIBED_DRUG = "prescribedDrug";
156156
public static final String PRESCRIBED_DRUG_TEXT = "prescribedDrugText";
157+
public static final String VACCINATION_PROPOSED = "vaccinationProposed";
158+
public static final String IMMUNE_GLOBULIN_PROPOSED = "immuneGlobulinProposed";
159+
160+
public static final String VACCINATION_DOSE_ONE_DATE = "vaccinationDoseOneDate";
161+
public static final String VACCINATION_DOSE_TWO_DATE = "vaccinationDoseTwoDate";
157162

158163
@EmbeddedPersonalData
159164
private CaseReferenceDto caze;
@@ -365,6 +370,13 @@ public class ContactDto extends SormasToSormasShareableDto implements IsContact
365370
@Outbreaks
366371
private VaccinationStatus vaccinationStatus;
367372

373+
@Diseases(value = {Disease.MEASLES})
374+
@HideForCountriesExcept(countries = {COUNTRY_CODE_LUXEMBOURG})
375+
private Date vaccinationDoseOneDate;
376+
@Diseases(value = {Disease.MEASLES})
377+
@HideForCountriesExcept(countries = {COUNTRY_CODE_LUXEMBOURG})
378+
private Date vaccinationDoseTwoDate;
379+
368380
private Date previousQuarantineTo;
369381
@SensitiveData
370382
@Size(max = CHARACTER_LIMIT_BIG, message = Validations.textTooLong)
@@ -385,6 +397,12 @@ public class ContactDto extends SormasToSormasShareableDto implements IsContact
385397
@SensitiveData
386398
@Diseases(Disease.INVASIVE_MENINGOCOCCAL_INFECTION)
387399
private String prescribedDrugText;
400+
@Diseases(value = {Disease.MEASLES})
401+
@HideForCountriesExcept(countries = {COUNTRY_CODE_LUXEMBOURG})
402+
private boolean vaccinationProposed;
403+
@Diseases(value = {Disease.MEASLES})
404+
@HideForCountriesExcept(countries = {COUNTRY_CODE_LUXEMBOURG})
405+
private boolean immuneGlobulinProposed;
388406

389407
public static ContactDto build() {
390408
final ContactDto contact = new ContactDto();
@@ -1109,4 +1127,35 @@ public void setPrescribedDrugText(String prescribedDrugText) {
11091127
this.prescribedDrugText = prescribedDrugText;
11101128
}
11111129

1130+
public Date getVaccinationDoseOneDate() {
1131+
return vaccinationDoseOneDate;
1132+
}
1133+
1134+
public void setVaccinationDoseOneDate(Date vaccinationDoseOneDate) {
1135+
this.vaccinationDoseOneDate = vaccinationDoseOneDate;
1136+
}
1137+
1138+
public Date getVaccinationDoseTwoDate() {
1139+
return vaccinationDoseTwoDate;
1140+
}
1141+
1142+
public void setVaccinationDoseTwoDate(Date vaccinationDoseTwoDate) {
1143+
this.vaccinationDoseTwoDate = vaccinationDoseTwoDate;
1144+
}
1145+
1146+
public boolean isVaccinationProposed() {
1147+
return vaccinationProposed;
1148+
}
1149+
1150+
public void setVaccinationProposed(boolean vaccinationProposed) {
1151+
this.vaccinationProposed = vaccinationProposed;
1152+
}
1153+
1154+
public boolean isImmuneGlobulinProposed() {
1155+
return immuneGlobulinProposed;
1156+
}
1157+
1158+
public void setImmuneGlobulinProposed(boolean immuneGlobulinProposed) {
1159+
this.immuneGlobulinProposed = immuneGlobulinProposed;
1160+
}
11121161
}

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,7 @@ public static ContactProximity[] getValues(Disease disease, String serverLocale)
8989
if(disease != null && serverLocale != null && StringUtils.endsWithIgnoreCase(serverLocale,CountryHelper.COUNTRY_CODE_LUXEMBOURG)){
9090
switch (disease) {
9191
case INVASIVE_MENINGOCOCCAL_INFECTION:
92+
case MEASLES:
9293
return new ContactProximity[] {
9394
PHYSICAL_CONTACT,
9495
CLOSE_CONTACT,
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
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.epidata;
16+
17+
import de.symeda.sormas.api.i18n.I18nProperties;
18+
19+
public enum CaseImportedStatus {
20+
IMPORTED_CASE,
21+
IMPORT_RELATED_CASE,
22+
UNKNOWN_IMPORTATION_STATUS,
23+
NOT_IMPORTED_CASE;
24+
25+
@Override
26+
public String toString() {
27+
return I18nProperties.getEnumCaption(this);
28+
}
29+
}
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
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.epidata;
16+
17+
import de.symeda.sormas.api.i18n.I18nProperties;
18+
19+
public enum ClusterType {
20+
KINDERGARTEN_OR_CHILDCARE,
21+
FAMILY,
22+
MILITARY,
23+
NOSOCOMIAL,
24+
SCHOOL,
25+
SPORTS_TEAM,
26+
UNIVERSITY,
27+
OTHER;
28+
29+
@Override
30+
public String toString() {
31+
return I18nProperties.getEnumCaption(this);
32+
}
33+
34+
}

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

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222

2323
import javax.validation.Valid;
2424

25+
import de.symeda.sormas.api.CountryHelper;
2526
import de.symeda.sormas.api.Disease;
2627
import de.symeda.sormas.api.ImportIgnore;
2728
import de.symeda.sormas.api.activityascase.ActivityAsCaseDto;
@@ -31,6 +32,7 @@
3132
import de.symeda.sormas.api.utils.DataHelper;
3233
import de.symeda.sormas.api.utils.DependingOnFeatureType;
3334
import de.symeda.sormas.api.utils.Diseases;
35+
import de.symeda.sormas.api.utils.HideForCountriesExcept;
3436
import de.symeda.sormas.api.utils.YesNoUnknown;
3537
import de.symeda.sormas.api.utils.pseudonymization.PseudonymizableDto;
3638

@@ -51,12 +53,29 @@ public class EpiDataDto extends PseudonymizableDto {
5153
public static final String AREA_INFECTED_ANIMALS = "areaInfectedAnimals";
5254
public static final String HIGH_TRANSMISSION_RISK_AREA = "highTransmissionRiskArea";
5355
public static final String LARGE_OUTBREAKS_AREA = "largeOutbreaksArea";
56+
public static final String CASE_IMPORTED_STATUS = "caseImportedStatus";
57+
public static final String CLUSTER_TYPE = "clusterType";
58+
public static final String CLUSTER_TYPE_TEXT = "clusterTypeText";
5459

5560
private YesNoUnknown exposureDetailsKnown;
5661
private YesNoUnknown activityAsCaseDetailsKnown;
5762
private YesNoUnknown contactWithSourceCaseKnown;
5863
private YesNoUnknown highTransmissionRiskArea;
5964
private YesNoUnknown largeOutbreaksArea;
65+
@Diseases({
66+
Disease.MEASLES})
67+
@HideForCountriesExcept(countries = {CountryHelper.COUNTRY_CODE_LUXEMBOURG})
68+
private CaseImportedStatus caseImportedStatus;
69+
@Diseases({
70+
Disease.MEASLES})
71+
@HideForCountriesExcept(countries = {CountryHelper.COUNTRY_CODE_LUXEMBOURG})
72+
private ClusterType clusterType;
73+
74+
@HideForCountriesExcept(countries = {CountryHelper.COUNTRY_CODE_LUXEMBOURG})
75+
@Diseases({
76+
Disease.MEASLES})
77+
private String clusterTypeText;
78+
6079
@Diseases({
6180
Disease.AFP,
6281
Disease.GUINEA_WORM,
@@ -146,6 +165,30 @@ public static EpiDataDto build() {
146165
return epiData;
147166
}
148167

168+
public CaseImportedStatus getCaseImportedStatus() {
169+
return caseImportedStatus;
170+
}
171+
172+
public void setCaseImportedStatus(CaseImportedStatus caseImportedStatus) {
173+
this.caseImportedStatus = caseImportedStatus;
174+
}
175+
176+
public ClusterType getClusterType() {
177+
return clusterType;
178+
}
179+
180+
public void setClusterType(ClusterType clusterType) {
181+
this.clusterType = clusterType;
182+
}
183+
184+
public String getClusterTypeText() {
185+
return clusterTypeText;
186+
}
187+
188+
public void setClusterTypeText(String clusterTypeText) {
189+
this.clusterTypeText = clusterTypeText;
190+
}
191+
149192
@Override
150193
public EpiDataDto clone() throws CloneNotSupportedException {
151194
EpiDataDto clone = (EpiDataDto) super.clone();

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

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
import de.symeda.sormas.api.feature.FeatureType;
1212
import de.symeda.sormas.api.i18n.Validations;
1313
import de.symeda.sormas.api.infrastructure.country.CountryReferenceDto;
14+
import de.symeda.sormas.api.sample.GenoTypeResult;
1415
import de.symeda.sormas.api.sample.PCRTestSpecification;
1516
import de.symeda.sormas.api.sample.PathogenTestResultType;
1617
import de.symeda.sormas.api.sample.PathogenTestType;
@@ -130,6 +131,8 @@ public class TestReportDto extends EntityDto {
130131
private String prescriberCity;
131132
@HideForCountriesExcept(countries = CountryHelper.COUNTRY_CODE_LUXEMBOURG)
132133
private CountryReferenceDto prescriberCountry;
134+
@HideForCountriesExcept(countries = CountryHelper.COUNTRY_CODE_LUXEMBOURG)
135+
private GenoTypeResult genoTypeResult;
133136

134137
public SampleReportReferenceDto getSampleReport() {
135138
return sampleReport;
@@ -408,4 +411,12 @@ public CountryReferenceDto getPrescriberCountry() {
408411
public void setPrescriberCountry(CountryReferenceDto prescriberCountry) {
409412
this.prescriberCountry = prescriberCountry;
410413
}
414+
415+
public GenoTypeResult getGenoTypeResult() {
416+
return genoTypeResult;
417+
}
418+
419+
public void setGenoTypeResult(GenoTypeResult genoTypeResult) {
420+
this.genoTypeResult = genoTypeResult;
421+
}
411422
}

sormas-api/src/main/java/de/symeda/sormas/api/externalmessage/processing/ExternalMessageMapper.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -334,7 +334,12 @@ public List<String[]> mapToPathogenTest(TestReportDto sourceTestReport, Pathogen
334334
pathogenTest::setPrescriberCountry,
335335
pathogenTest.getPrescriberCountry(),
336336
sourceTestReport.getPrescriberCountry(),
337-
PathogenTestDto.PRESCRIBER_COUNTRY))));
337+
PathogenTestDto.PRESCRIBER_COUNTRY),
338+
Mapping.of(
339+
pathogenTest::setGenoTypeResult,
340+
pathogenTest.getGenoTypeResult(),
341+
sourceTestReport.getGenoTypeResult(),
342+
PathogenTestDto.GENOTYPE_RESULT))));
338343
}
339344

340345
changedFields.addAll(

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

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1556,6 +1556,9 @@ public interface Captions {
15561556
String EpiData_activitiesAsCase = "EpiData.activitiesAsCase";
15571557
String EpiData_activityAsCaseDetailsKnown = "EpiData.activityAsCaseDetailsKnown";
15581558
String EpiData_areaInfectedAnimals = "EpiData.areaInfectedAnimals";
1559+
String EpiData_caseImportedStatus = "EpiData.caseImportedStatus";
1560+
String EpiData_clusterType = "EpiData.clusterType";
1561+
String EpiData_clusterTypeText = "EpiData.clusterTypeText";
15591562
String EpiData_contactWithSourceCaseKnown = "EpiData.contactWithSourceCaseKnown";
15601563
String EpiData_exposureDetailsKnown = "EpiData.exposureDetailsKnown";
15611564
String EpiData_exposures = "EpiData.exposures";
@@ -1988,6 +1991,7 @@ public interface Captions {
19881991
String HealthConditions_tuberculosis = "HealthConditions.tuberculosis";
19891992
String HealthConditions_tuberculosisInfectionYear = "HealthConditions.tuberculosisInfectionYear";
19901993
String humanSampleViewType = "humanSampleViewType";
1994+
String immuneGlobulinProposed = "immuneGlobulinProposed";
19911995
String Immunization = "Immunization";
19921996
String Immunization_additionalDetails = "Immunization.additionalDetails";
19931997
String Immunization_ageAndBirthDate = "Immunization.ageAndBirthDate";
@@ -2194,9 +2198,8 @@ public interface Captions {
21942198
String Notification_notificationTypeExternal = "Notification.notificationTypeExternal";
21952199
String Notification_notificationTypePhone = "Notification.notificationTypePhone";
21962200
String Notification_registrationNumber = "Notification.registrationNumber";
2197-
String Notification_reportingAgent = "Notification.reportingAgent";
2201+
String Notification_reportingAgent = "Notification.reportingAgent";
21982202
String Notification_viewNotification = "Notification.viewNotification";
2199-
String Notification_reportingAgent = "Notification.reportingAgent";
22002203
String notificationType = "notificationType";
22012204
String notificationType_caption = "notificationType.caption";
22022205
String notificationType_description = "notificationType.description";
@@ -2229,6 +2232,8 @@ public interface Captions {
22292232
String PathogenTest_externalId = "PathogenTest.externalId";
22302233
String PathogenTest_externalOrderId = "PathogenTest.externalOrderId";
22312234
String PathogenTest_fourFoldIncreaseAntibodyTiter = "PathogenTest.fourFoldIncreaseAntibodyTiter";
2235+
String PathogenTest_genoTypeResult = "PathogenTest.genoTypeResult";
2236+
String PathogenTest_genoTypeResultText = "PathogenTest.genoTypeResultText";
22322237
String PathogenTest_isoniazidResistant = "PathogenTest.isoniazidResistant";
22332238
String PathogenTest_lab = "PathogenTest.lab";
22342239
String PathogenTest_labDetails = "PathogenTest.labDetails";
@@ -2811,6 +2816,7 @@ public interface Captions {
28112816
String Symptoms = "Symptoms";
28122817
String Symptoms_abdominalPain = "Symptoms.abdominalPain";
28132818
String Symptoms_abnormalLungXrayFindings = "Symptoms.abnormalLungXrayFindings";
2819+
String Symptoms_acuteEncephalitis = "Symptoms.acuteEncephalitis";
28142820
String Symptoms_acuteRespiratoryDistressSyndrome = "Symptoms.acuteRespiratoryDistressSyndrome";
28152821
String Symptoms_aerophobia = "Symptoms.aerophobia";
28162822
String Symptoms_agitation = "Symptoms.agitation";
@@ -2998,6 +3004,8 @@ public interface Captions {
29983004
String Symptoms_sidePain = "Symptoms.sidePain";
29993005
String Symptoms_skinBruising = "Symptoms.skinBruising";
30003006
String Symptoms_skinRash = "Symptoms.skinRash";
3007+
String Symptoms_skinRash_lu_MEASLES = "Symptoms.skinRash.lu-MEASLES";
3008+
String Symptoms_skinRashOnsetDate = "Symptoms.skinRashOnsetDate";
30013009
String Symptoms_skinUlcers = "Symptoms.skinUlcers";
30023010
String Symptoms_soreThroat = "Symptoms.soreThroat";
30033011
String Symptoms_splenomegaly = "Symptoms.splenomegaly";
@@ -3289,9 +3297,12 @@ public interface Captions {
32893297
String Vaccination_vaccineName = "Vaccination.vaccineName";
32903298
String Vaccination_vaccineType = "Vaccination.vaccineType";
32913299
String Vaccination_vaccineUniiCode = "Vaccination.vaccineUniiCode";
3300+
String vaccinationDoseOneDate = "vaccinationDoseOneDate";
3301+
String vaccinationDoseTwoDate = "vaccinationDoseTwoDate";
32923302
String vaccinationNewVaccination = "vaccinationNewVaccination";
32933303
String vaccinationNoVaccinationsForPerson = "vaccinationNoVaccinationsForPerson";
32943304
String vaccinationNoVaccinationsForPersonAndDisease = "vaccinationNoVaccinationsForPersonAndDisease";
3305+
String vaccinationProposed = "vaccinationProposed";
32953306
String versionIsMissing = "versionIsMissing";
32963307
String view = "view";
32973308
String View_actions = "View.actions";

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -498,6 +498,7 @@ public interface Strings {
498498
String headingClinicalMeasurements = "headingClinicalMeasurements";
499499
String headingClinicalPresentation = "headingClinicalPresentation";
500500
String headingClinicalVisitsDeleted = "headingClinicalVisitsDeleted";
501+
String headingClusterType = "headingClusterType";
501502
String headingComparisonCase = "headingComparisonCase";
502503
String headingCompleteness = "headingCompleteness";
503504
String headingComplications = "headingComplications";
@@ -637,6 +638,7 @@ public interface Strings {
637638
String headingEnvironmentSamplesNotDeleted = "headingEnvironmentSamplesNotDeleted";
638639
String headingEnvironmentSamplesNotRestored = "headingEnvironmentSamplesNotRestored";
639640
String headingEnvironmentSamplesRestored = "headingEnvironmentSamplesRestored";
641+
String headingEpiCaseImport = "headingEpiCaseImport";
640642
String headingEpiCurve = "headingEpiCurve";
641643
String headingEpiDataSourceCaseContacts = "headingEpiDataSourceCaseContacts";
642644
String headingErrorReportNotAvailable = "headingErrorReportNotAvailable";

0 commit comments

Comments
 (0)