Skip to content

Commit 98bcf2a

Browse files
committed
Merge development into master
2 parents 543411e + 3b4ecd7 commit 98bcf2a

File tree

336 files changed

+24080
-1612
lines changed

Some content is hidden

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

336 files changed

+24080
-1612
lines changed

README.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,9 @@
1919

2020
## FAQ (Frequently Asked Questions)
2121

22+
### Where can I find the documentation?
23+
We provide an extensive documentation of SORMAS for users, system administrators, Developers and DevOps in our <a href="https://wiki.sorm.as" target="_blank">Wiki</a>.
24+
2225
### How Does it Work?
2326
You can give SORMAS a try on our demo server at <https://demo.sormas.org>!
2427

sormas-api/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
<parent>
33
<groupId>de.symeda.sormas</groupId>
44
<artifactId>sormas-base</artifactId>
5-
<version>1.101.0</version>
5+
<version>1.102.0-SNAPSHOT</version>
66
<relativePath>../sormas-base</relativePath>
77
</parent>
88
<modelVersion>4.0.0</modelVersion>
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-2024 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;
17+
18+
import de.symeda.sormas.api.i18n.I18nProperties;
19+
20+
public enum ActiveRelevanceStatus {
21+
22+
ALL,
23+
ACTIVE,
24+
INACTIVE;
25+
26+
@Override
27+
public String toString() {
28+
return I18nProperties.getEnumCaption(this);
29+
}
30+
}

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

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -40,16 +40,6 @@ public interface ConfigFacade {
4040

4141
String getSormasStatsUrl();
4242

43-
String getEmailSenderAddress();
44-
45-
String getEmailSenderName();
46-
47-
String getSmsSenderName();
48-
49-
String getSmsAuthKey();
50-
51-
String getSmsAuthSecret();
52-
5343
String getDocumentFilesPath();
5444

5545
String getTempFilesPath();

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

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ public enum Disease
3333
EVD(true, true, true, false, true, 21, true, false, false),
3434
GUINEA_WORM(true, true, true, false, false, 0, true, false, false),
3535
LASSA(true, true, true, false, true, 21, true, false, false),
36-
MEASLES(true, true, true, false, false, 21, true, true, false),
36+
MEASLES(true, true, true, false, true, 21, true, true, false),
3737
MONKEYPOX(true, true, true, false, true, 21, true, false, false),
3838
NEW_INFLUENZA(true, true, true, false, true, 17, true, false, false),
3939
PLAGUE(true, true, true, false, true, 7, true, false, false),
@@ -57,7 +57,8 @@ public enum Disease
5757
DIARRHEA_BLOOD(true, false, false, true, false, 0, true, false, false),
5858
SNAKE_BITE(true, false, false, true, false, 0, true, false, false),
5959
RUBELLA(true, false, false, true, false, 0, true, false, false),
60-
TUBERCULOSIS(true, false, false, true, false, 0, true, false, false),
60+
TUBERCULOSIS(true, true, true, true, false, 0, true, false, false),
61+
LATENT_TUBERCULOSIS(true, true, true, true, false, 0, true, false, false),
6162
LEPROSY(true, false, false, true, false, 0, true, false, false),
6263
LYMPHATIC_FILARIASIS(true, false, false, true, false, 0, true, false, false),
6364
BURULI_ULCER(true, false, false, true, false, 0, true, false, false),
@@ -85,6 +86,8 @@ public enum Disease
8586
POST_IMMUNIZATION_ADVERSE_EVENTS_MILD(true, false, false, true, false, 0, true, false, false),
8687
POST_IMMUNIZATION_ADVERSE_EVENTS_SEVERE(true, false, false, true, false, 0, true, false, false),
8788
FHA(true, false, false, true, false, 0, true, false, false),
89+
INVASIVE_PNEUMOCOCCAL_INFECTION(true, true, true, false, false, 0, false, false, false),
90+
INVASIVE_MENINGOCOCCAL_INFECTION(true, true, true, false, true, 7, false, false, false),
8891
OTHER(true, true, true, false, true, 21, false, false, false),
8992
UNDEFINED(true, true, true, false, true, 0, false, false, false);
9093

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

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,4 +70,13 @@ public static String toString(Disease disease, String diseaseDetails, DiseaseVar
7070
public static String variantInBrackets(DiseaseVariant diseaseVariant) {
7171
return diseaseVariant == null ? StringUtils.EMPTY : String.format("(%s)", diseaseVariant.getCaption());
7272
}
73+
74+
/**
75+
* Checks if the case is an invasive bacterial disease (meningococcal or pneumococcal)
76+
* @return boolean
77+
*/
78+
public static boolean checkDiseaseIsInvasiveBacterialDiseases(Disease disease){
79+
return disease != null && (disease == Disease.INVASIVE_MENINGOCOCCAL_INFECTION ||
80+
disease == Disease.INVASIVE_PNEUMOCOCCAL_INFECTION);
81+
}
7382
}

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

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,7 @@
8585
import de.symeda.sormas.api.manualmessagelog.ManualMessageLogFacade;
8686
import de.symeda.sormas.api.outbreak.OutbreakFacade;
8787
import de.symeda.sormas.api.person.PersonFacade;
88+
import de.symeda.sormas.api.person.notifier.NotifierFacade;
8889
import de.symeda.sormas.api.report.AggregateReportFacade;
8990
import de.symeda.sormas.api.report.WeeklyReportFacade;
9091
import de.symeda.sormas.api.sample.AdditionalTestFacade;
@@ -106,6 +107,8 @@
106107
import de.symeda.sormas.api.survey.SurveyFacade;
107108
import de.symeda.sormas.api.survey.SurveyTokenFacade;
108109
import de.symeda.sormas.api.symptoms.SymptomsFacade;
110+
import de.symeda.sormas.api.systemconfiguration.SystemConfigurationCategoryFacade;
111+
import de.symeda.sormas.api.systemconfiguration.SystemConfigurationValueFacade;
109112
import de.symeda.sormas.api.systemevents.SystemEventFacade;
110113
import de.symeda.sormas.api.systemevents.sync.SyncFacade;
111114
import de.symeda.sormas.api.task.TaskFacade;
@@ -564,6 +567,18 @@ public static SurveyTokenFacade getSurveyTokenFacade() {
564567
return get().lookupEjbRemote(SurveyTokenFacade.class);
565568
}
566569

570+
public static SystemConfigurationValueFacade getSystemConfigurationValueFacade() {
571+
return get().lookupEjbRemote(SystemConfigurationValueFacade.class);
572+
}
573+
574+
public static SystemConfigurationCategoryFacade getSystemConfigurationCategoryFacade() {
575+
return get().lookupEjbRemote(SystemConfigurationCategoryFacade.class);
576+
}
577+
578+
public static NotifierFacade getNotifierFacade() {
579+
return get().lookupEjbRemote(NotifierFacade.class);
580+
}
581+
567582
@SuppressWarnings("unchecked")
568583
public <P> P lookupEjbRemote(Class<P> clazz) {
569584
try {

sormas-api/src/main/java/de/symeda/sormas/api/adverseeventsfollowingimmunization/AefiCriteria.java

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,10 @@ public class AefiCriteria extends BaseCriteria implements Serializable {
7171
private Date toDate;
7272
private EntityRelevanceStatus relevanceStatus;
7373

74+
private Boolean gisMapCriteria = false;
75+
private Boolean showSeriousAefiForMap = false;
76+
private Boolean showNonSeriousAefiForMap = false;
77+
7478
public Disease getDisease() {
7579
return disease;
7680
}
@@ -226,4 +230,31 @@ public AefiCriteria aefiType(AefiType aefiType) {
226230
this.aefiType = aefiType;
227231
return this;
228232
}
233+
234+
public AefiCriteria gisMapCriteria(Boolean gisMapCriteria) {
235+
this.gisMapCriteria = gisMapCriteria;
236+
return this;
237+
}
238+
239+
public AefiCriteria showSeriousAefiForMap(Boolean showSeriousAefi) {
240+
this.showSeriousAefiForMap = showSeriousAefi;
241+
return this;
242+
}
243+
244+
public AefiCriteria showNonSeriousAefiForMap(Boolean showNonSeriousAefi) {
245+
this.showNonSeriousAefiForMap = showNonSeriousAefi;
246+
return this;
247+
}
248+
249+
public Boolean isGisMapCriteria() {
250+
return gisMapCriteria;
251+
}
252+
253+
public Boolean isShowSeriousAefiForMap() {
254+
return showSeriousAefiForMap;
255+
}
256+
257+
public Boolean isShowNonSeriousAefiForMap() {
258+
return showNonSeriousAefiForMap;
259+
}
229260
}

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

Lines changed: 69 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717

1818
import static de.symeda.sormas.api.CountryHelper.COUNTRY_CODE_FRANCE;
1919
import static de.symeda.sormas.api.CountryHelper.COUNTRY_CODE_GERMANY;
20+
import static de.symeda.sormas.api.CountryHelper.COUNTRY_CODE_LUXEMBOURG;
2021
import static de.symeda.sormas.api.CountryHelper.COUNTRY_CODE_SWITZERLAND;
2122
import static de.symeda.sormas.api.utils.FieldConstraints.CHARACTER_LIMIT_BIG;
2223

@@ -60,6 +61,7 @@
6061
import de.symeda.sormas.api.infrastructure.region.RegionReferenceDto;
6162
import de.symeda.sormas.api.person.PersonDto;
6263
import de.symeda.sormas.api.person.PersonReferenceDto;
64+
import de.symeda.sormas.api.person.notifier.NotifierReferenceDto;
6365
import de.symeda.sormas.api.sormastosormas.S2SIgnoreProperty;
6466
import de.symeda.sormas.api.sormastosormas.SormasToSormasConfig;
6567
import de.symeda.sormas.api.sormastosormas.SormasToSormasShareableDto;
@@ -227,6 +229,12 @@ public class CaseDataDto extends SormasToSormasShareableDto implements IsCase {
227229
public static final String EXTERNAL_DATA = "externalData";
228230
public static final String DELETION_REASON = "deletionReason";
229231
public static final String OTHER_DELETION_REASON = "otherDeletionReason";
232+
public static final String POST_MORTEM = "postMortem";
233+
public static final String DEPARTMENT = "department";
234+
235+
public static final String NOTIFIER = "notifier";
236+
public static final String RADIOGRAPHY_COMPATIBILITY = "radiographyCompatibility";
237+
public static final String OTHER_DIAGNOSTIC_CRITERIA = "otherDiagnosticCriteria";
230238

231239
// Fields are declared in the order they should appear in the import template
232240

@@ -269,18 +277,21 @@ public class CaseDataDto extends SormasToSormasShareableDto implements IsCase {
269277
@HideForCountries(countries = {
270278
COUNTRY_CODE_FRANCE,
271279
COUNTRY_CODE_GERMANY,
272-
COUNTRY_CODE_SWITZERLAND })
280+
COUNTRY_CODE_SWITZERLAND,
281+
COUNTRY_CODE_LUXEMBOURG })
273282
private Date regionLevelDate;
274283
@HideForCountries(countries = {
275284
COUNTRY_CODE_FRANCE,
276285
COUNTRY_CODE_GERMANY,
277-
COUNTRY_CODE_SWITZERLAND })
286+
COUNTRY_CODE_SWITZERLAND,
287+
COUNTRY_CODE_LUXEMBOURG })
278288
private Date nationalLevelDate;
279289
@Outbreaks
280290
@HideForCountries(countries = {
281291
COUNTRY_CODE_FRANCE,
282292
COUNTRY_CODE_GERMANY,
283-
COUNTRY_CODE_SWITZERLAND })
293+
COUNTRY_CODE_SWITZERLAND,
294+
COUNTRY_CODE_LUXEMBOURG })
284295
private Date districtLevelDate;
285296
@Outbreaks
286297
@Diseases(value = Disease.RESPIRATORY_SYNCYTIAL_VIRUS, hide = true)
@@ -351,8 +362,10 @@ public class CaseDataDto extends SormasToSormasShareableDto implements IsCase {
351362
@EmbeddedPersonalData
352363
@EmbeddedSensitiveData
353364
@SensitiveData
365+
@Diseases(value = {
366+
Disease.INVASIVE_MENINGOCOCCAL_INFECTION,
367+
Disease.INVASIVE_PNEUMOCOCCAL_INFECTION}, hide = true)
354368
private HealthConditionsDto healthConditions;
355-
356369
private YesNoUnknown pregnant;
357370
@Diseases({
358371
Disease.AFP,
@@ -620,6 +633,16 @@ public class CaseDataDto extends SormasToSormasShareableDto implements IsCase {
620633
@SensitiveData
621634
@Size(max = FieldConstraints.CHARACTER_LIMIT_TEXT, message = Validations.textTooLong)
622635
private String otherDeletionReason;
636+
@HideForCountriesExcept(countries = COUNTRY_CODE_LUXEMBOURG)
637+
@Diseases(value = {
638+
Disease.TUBERCULOSIS })
639+
private boolean postMortem;
640+
@HideForCountriesExcept(countries = COUNTRY_CODE_LUXEMBOURG)
641+
private String department;
642+
643+
private NotifierReferenceDto notifier;
644+
private RadiographyCompatibility radiographyCompatibility;
645+
private String otherDiagnosticCriteria;
623646

624647
public static CaseDataDto build(PersonReferenceDto person, Disease disease) {
625648
return build(person, disease, HealthConditionsDto.build());
@@ -1777,6 +1800,48 @@ public void setHealthConditions(HealthConditionsDto healthConditions) {
17771800
this.healthConditions = healthConditions;
17781801
}
17791802

1803+
public NotifierReferenceDto getNotifier() {
1804+
return notifier;
1805+
}
1806+
1807+
public void setNotifier(NotifierReferenceDto notifier) {
1808+
this.notifier = notifier;
1809+
}
1810+
1811+
public boolean isPostMortem() {
1812+
return postMortem;
1813+
}
1814+
1815+
public void setPostMortem(boolean postMortem) {
1816+
this.postMortem = postMortem;
1817+
}
1818+
1819+
public String getDepartment() {
1820+
return department;
1821+
}
1822+
1823+
public void setDepartment(String department) {
1824+
this.department = department;
1825+
}
1826+
1827+
public RadiographyCompatibility getRadiographyCompatibility() {
1828+
return radiographyCompatibility;
1829+
}
1830+
1831+
public void setRadiographyCompatibility(RadiographyCompatibility radiographyCompatibility) {
1832+
this.radiographyCompatibility = radiographyCompatibility;
1833+
}
1834+
1835+
public String getOtherDiagnosticCriteria() {
1836+
return otherDiagnosticCriteria;
1837+
}
1838+
1839+
public void setOtherDiagnosticCriteria(String otherDiagnosticCriteria) {
1840+
this.otherDiagnosticCriteria = otherDiagnosticCriteria;
1841+
}
1842+
1843+
1844+
17801845
@JsonIgnore
17811846
public String i18nPrefix() {
17821847
return I18N_PREFIX;

0 commit comments

Comments
 (0)