Skip to content

Commit 372af4b

Browse files
author
jenkins
committed
[GITFLOW]merging 'release-1.95.0' into 'master'
2 parents df4501b + 870ed75 commit 372af4b

File tree

469 files changed

+16133
-3312
lines changed

Some content is hidden

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

469 files changed

+16133
-3312
lines changed

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.94.0</version>
5+
<version>1.95.0</version>
66
<relativePath>../sormas-base</relativePath>
77
</parent>
88
<modelVersion>4.0.0</modelVersion>

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

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,7 @@
9797
import de.symeda.sormas.api.sormastosormas.share.incoming.SormasToSormasShareRequestFacade;
9898
import de.symeda.sormas.api.sormastosormas.share.outgoing.ShareRequestInfoFacade;
9999
import de.symeda.sormas.api.sormastosormas.share.outgoing.SormasToSormasShareInfoFacade;
100+
import de.symeda.sormas.api.specialcaseaccess.SpecialCaseAccessFacade;
100101
import de.symeda.sormas.api.symptoms.SymptomsFacade;
101102
import de.symeda.sormas.api.systemevents.SystemEventFacade;
102103
import de.symeda.sormas.api.systemevents.sync.SyncFacade;
@@ -524,6 +525,10 @@ public static ManualMessageLogFacade getManualMessageLogFacade() {
524525
return get().lookupEjbRemote(ManualMessageLogFacade.class);
525526
}
526527

528+
public static SpecialCaseAccessFacade getSpecialCaseAccessFacade() {
529+
return get().lookupEjbRemote(SpecialCaseAccessFacade.class);
530+
}
531+
527532
@SuppressWarnings("unchecked")
528533
public <P> P lookupEjbRemote(Class<P> clazz) {
529534
try {

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

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,7 @@
7373
import de.symeda.sormas.api.utils.DependingOnUserRight;
7474
import de.symeda.sormas.api.utils.Diseases;
7575
import de.symeda.sormas.api.utils.EmbeddedPersonalData;
76+
import de.symeda.sormas.api.utils.EmbeddedSensitiveData;
7677
import de.symeda.sormas.api.utils.FieldConstraints;
7778
import de.symeda.sormas.api.utils.HideForCountries;
7879
import de.symeda.sormas.api.utils.HideForCountriesExcept;
@@ -85,7 +86,7 @@
8586
import de.symeda.sormas.api.utils.pseudonymization.valuepseudonymizers.LongitudePseudonymizer;
8687

8788
@DependingOnFeatureType(featureType = FeatureType.CASE_SURVEILANCE)
88-
public class CaseDataDto extends SormasToSormasShareableDto {
89+
public class CaseDataDto extends SormasToSormasShareableDto implements IsCase {
8990

9091
private static final long serialVersionUID = 5007131477733638086L;
9192
private static final long MILLISECONDS_30_DAYS = 30L * 24L * 60L * 60L * 1000L;
@@ -342,6 +343,8 @@ public class CaseDataDto extends SormasToSormasShareableDto {
342343
private String healthFacilityDetails;
343344

344345
@Valid
346+
@EmbeddedPersonalData
347+
@EmbeddedSensitiveData
345348
private HealthConditionsDto healthConditions;
346349

347350
private YesNoUnknown pregnant;
@@ -408,6 +411,8 @@ public class CaseDataDto extends SormasToSormasShareableDto {
408411
@Valid
409412
private HospitalizationDto hospitalization;
410413
@Valid
414+
@EmbeddedPersonalData
415+
@EmbeddedSensitiveData
411416
private SymptomsDto symptoms;
412417
@Valid
413418
private EpiDataDto epiData;
@@ -416,6 +421,8 @@ public class CaseDataDto extends SormasToSormasShareableDto {
416421
@Valid
417422
private ClinicalCourseDto clinicalCourse;
418423
@Valid
424+
@EmbeddedPersonalData
425+
@EmbeddedSensitiveData
419426
private MaternalHistoryDto maternalHistory;
420427
@Size(max = 32, message = Validations.textTooLong)
421428
private String creationVersion;

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

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@
5858
import de.symeda.sormas.api.user.UserRoleReferenceDto;
5959
import de.symeda.sormas.api.utils.DataHelper;
6060
import de.symeda.sormas.api.utils.DependingOnUserRight;
61+
import de.symeda.sormas.api.utils.EmbeddedSensitiveData;
6162
import de.symeda.sormas.api.utils.HideForCountries;
6263
import de.symeda.sormas.api.utils.HideForCountriesExcept;
6364
import de.symeda.sormas.api.utils.LocationHelper;
@@ -80,7 +81,7 @@
8081
* recommended to remove properties that are removed from this file from existing export configurations.
8182
*/
8283
@ExportEntity(CaseDataDto.class)
83-
public class CaseExportDto extends AbstractUuidDto {
84+
public class CaseExportDto extends AbstractUuidDto implements IsCase {
8485

8586
private static final long serialVersionUID = 8581579464816945555L;
8687

@@ -140,6 +141,7 @@ public class CaseExportDto extends AbstractUuidDto {
140141
private YesNoUnknown pregnant;
141142
private String approximateAge;
142143
private String ageGroup;
144+
@EmbeddedSensitiveData
143145
private BirthDateDto birthdate;
144146
private Date reportDate;
145147
private String region;
@@ -191,6 +193,7 @@ public class CaseExportDto extends AbstractUuidDto {
191193
private String initialDetectionPlace;
192194
private PresentCondition presentCondition;
193195
private Date deathDate;
196+
@EmbeddedSensitiveData
194197
private BurialInfoDto burialInfo;
195198
private String addressRegion;
196199
private String addressDistrict;
@@ -241,6 +244,7 @@ public class CaseExportDto extends AbstractUuidDto {
241244
private boolean traveled;
242245
private boolean burialAttended;
243246
private YesNoUnknown contactWithSourceCaseKnown;
247+
@EmbeddedSensitiveData
244248
private SymptomsDto symptoms;
245249
// private Date onsetDate;
246250
// private String symptoms;
@@ -261,8 +265,11 @@ public class CaseExportDto extends AbstractUuidDto {
261265
private int numberOfPrescriptions;
262266
private int numberOfTreatments;
263267
private int numberOfClinicalVisits;
268+
@EmbeddedSensitiveData
264269
private EmbeddedSampleExportDto sample1 = new EmbeddedSampleExportDto(null);
270+
@EmbeddedSensitiveData
265271
private EmbeddedSampleExportDto sample2 = new EmbeddedSampleExportDto(null);
272+
@EmbeddedSensitiveData
266273
private EmbeddedSampleExportDto sample3 = new EmbeddedSampleExportDto(null);
267274
private List<EmbeddedSampleExportDto> otherSamples = new ArrayList<>();
268275

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -231,4 +231,6 @@ List<ProcessedEntity> saveBulkEditWithFacilities(
231231
boolean hasOtherValidVaccination(CaseDataDto caze, String vaccinationUuid);
232232

233233
Pair<RegionReferenceDto, DistrictReferenceDto> getRegionAndDistrictRefsOf(CaseReferenceDto caze);
234+
235+
boolean hasCurrentUserSpecialAccess(CaseReferenceDto caze);
234236
}

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
import de.symeda.sormas.api.followup.FollowUpDto;
2424
import de.symeda.sormas.api.person.SymptomJournalStatus;
2525

26-
public class CaseFollowUpDto extends FollowUpDto {
26+
public class CaseFollowUpDto extends FollowUpDto implements IsCase {
2727

2828
private static final long serialVersionUID = -7782443664670559221L;
2929

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

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,12 +32,13 @@
3232
import de.symeda.sormas.api.person.Sex;
3333
import de.symeda.sormas.api.person.SymptomJournalStatus;
3434
import de.symeda.sormas.api.share.ExternalShareStatus;
35+
import de.symeda.sormas.api.utils.EmbeddedPersonalData;
3536
import de.symeda.sormas.api.utils.PersonalData;
3637
import de.symeda.sormas.api.utils.SensitiveData;
3738
import de.symeda.sormas.api.utils.pseudonymization.PseudonymizableIndexDto;
3839
import de.symeda.sormas.api.uuid.HasUuid;
3940

40-
public class CaseIndexDto extends PseudonymizableIndexDto implements MergeableIndexDto, Serializable, Cloneable, HasUuid {
41+
public class CaseIndexDto extends PseudonymizableIndexDto implements MergeableIndexDto, Serializable, Cloneable, HasUuid, IsCase {
4142

4243
private static final long serialVersionUID = -7764607075875188799L;
4344

@@ -110,6 +111,7 @@ public class CaseIndexDto extends PseudonymizableIndexDto implements MergeableIn
110111
private String surveillanceOfficerUuid;
111112
private CaseOutcome outcome;
112113
private Sex sex;
114+
@EmbeddedPersonalData
113115
private AgeAndBirthDateDto ageAndBirthDate;
114116
private Float completeness;
115117
private Date quarantineTo;

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
import de.symeda.sormas.api.Disease;
77
import de.symeda.sormas.api.utils.pseudonymization.PseudonymizableIndexDto;
88

9-
public class CaseListEntryDto extends PseudonymizableIndexDto implements Serializable, Cloneable {
9+
public class CaseListEntryDto extends PseudonymizableIndexDto implements Serializable, Cloneable, IsCase {
1010

1111
private static final long serialVersionUID = -8812926682263746469L;
1212
private Date reportDate;

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

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525
import de.symeda.sormas.api.utils.PersonalData;
2626

2727
@DependingOnFeatureType(featureType = FeatureType.CASE_SURVEILANCE)
28-
public class CaseReferenceDto extends ReferenceDto {
28+
public class CaseReferenceDto extends ReferenceDto implements IsCase {
2929

3030
private static final long serialVersionUID = 5007131477733638086L;
3131

@@ -82,4 +82,8 @@ public static String buildCaption(String uuid, String firstName, String lastName
8282

8383
return shortUuid;
8484
}
85+
86+
public String getName() {
87+
return PersonDto.buildCaption(firstName, lastName);
88+
}
8589
}

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

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,12 @@
55

66
import de.symeda.sormas.api.Disease;
77
import de.symeda.sormas.api.person.Sex;
8+
import de.symeda.sormas.api.utils.EmbeddedPersonalData;
89
import de.symeda.sormas.api.utils.PersonalData;
910
import de.symeda.sormas.api.utils.SensitiveData;
1011
import de.symeda.sormas.api.utils.pseudonymization.PseudonymizableIndexDto;
11-
import org.apache.commons.lang3.StringUtils;
1212

13-
public class CaseSelectionDto extends PseudonymizableIndexDto implements Serializable, Cloneable {
13+
public class CaseSelectionDto extends PseudonymizableIndexDto implements Serializable, Cloneable, IsCase {
1414

1515
public static final String I18N_PREFIX = "CaseData";
1616

@@ -36,6 +36,7 @@ public class CaseSelectionDto extends PseudonymizableIndexDto implements Seriali
3636
@PersonalData
3737
@SensitiveData
3838
private String personLastName;
39+
@EmbeddedPersonalData
3940
private AgeAndBirthDateDto ageAndBirthDate;
4041
private String responsibleDistrictName;
4142
@PersonalData
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
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.caze;
17+
18+
import de.symeda.sormas.api.uuid.HasUuid;
19+
20+
public interface IsCase extends HasUuid {
21+
}

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

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,14 +19,16 @@
1919
import de.symeda.sormas.api.Disease;
2020
import de.symeda.sormas.api.person.PersonReferenceDto;
2121
import de.symeda.sormas.api.utils.DataHelper;
22+
import de.symeda.sormas.api.utils.EmbeddedPersonalData;
23+
import de.symeda.sormas.api.utils.EmbeddedSensitiveData;
2224
import de.symeda.sormas.api.utils.PersonalData;
2325
import de.symeda.sormas.api.utils.SensitiveData;
2426
import de.symeda.sormas.api.utils.pseudonymization.Pseudonymizer;
2527
import de.symeda.sormas.api.utils.pseudonymization.valuepseudonymizers.LatitudePseudonymizer;
2628
import de.symeda.sormas.api.utils.pseudonymization.valuepseudonymizers.LongitudePseudonymizer;
2729
import de.symeda.sormas.api.uuid.AbstractUuidDto;
2830

29-
public class MapCaseDto extends AbstractUuidDto {
31+
public class MapCaseDto extends AbstractUuidDto implements IsCase {
3032

3133
private static final long serialVersionUID = -3021332968056368431L;
3234

@@ -35,6 +37,8 @@ public class MapCaseDto extends AbstractUuidDto {
3537
private Date reportDate;
3638
private CaseClassification caseClassification;
3739
private Disease disease;
40+
@EmbeddedPersonalData
41+
@EmbeddedSensitiveData
3842
private PersonReferenceDto person;
3943
@PersonalData
4044
@SensitiveData

sormas-api/src/main/java/de/symeda/sormas/api/caze/surveillancereport/SurveillanceReportDto.java

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -59,16 +59,6 @@ public class SurveillanceReportDto extends SormasToSormasShareableDto {
5959

6060
private String externalId;
6161

62-
public static SurveillanceReportDto build(CaseReferenceDto caze, UserReferenceDto reportingUser) {
63-
SurveillanceReportDto surveillanceReport = new SurveillanceReportDto();
64-
65-
surveillanceReport.setUuid(DataHelper.createUuid());
66-
surveillanceReport.setCaze(caze);
67-
surveillanceReport.setReportingUser(reportingUser);
68-
69-
return surveillanceReport;
70-
}
71-
7262
@NotNull(message = Validations.validReportDateTime)
7363
private Date reportDate;
7464

@@ -92,6 +82,16 @@ public static SurveillanceReportDto build(CaseReferenceDto caze, UserReferenceDt
9282

9383
private CaseReferenceDto caze;
9484

85+
public static SurveillanceReportDto build(CaseReferenceDto caze, UserReferenceDto reportingUser) {
86+
SurveillanceReportDto surveillanceReport = new SurveillanceReportDto();
87+
88+
surveillanceReport.setUuid(DataHelper.createUuid());
89+
surveillanceReport.setCaze(caze);
90+
surveillanceReport.setReportingUser(reportingUser);
91+
92+
return surveillanceReport;
93+
}
94+
9595
public ReportingType getReportingType() {
9696
return reportingType;
9797
}

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
import de.symeda.sormas.api.symptoms.SymptomsDto;
1212
import de.symeda.sormas.api.utils.DataHelper;
1313
import de.symeda.sormas.api.utils.DependingOnFeatureType;
14+
import de.symeda.sormas.api.utils.EmbeddedSensitiveData;
1415
import de.symeda.sormas.api.utils.FieldConstraints;
1516
import de.symeda.sormas.api.utils.SensitiveData;
1617
import de.symeda.sormas.api.utils.pseudonymization.PseudonymizableDto;
@@ -33,6 +34,7 @@ public class ClinicalVisitDto extends PseudonymizableDto {
3334

3435
private ClinicalCourseReferenceDto clinicalCourse;
3536
@Valid
37+
@EmbeddedSensitiveData
3638
private SymptomsDto symptoms;
3739
private Disease disease;
3840
private Date visitDateTime;

sormas-api/src/main/java/de/symeda/sormas/api/common/progress/ProcessedEntity.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import java.io.Serializable;
44

55
import de.symeda.sormas.api.audit.AuditedClass;
6+
import de.symeda.sormas.api.uuid.HasUuid;
67

78
@AuditedClass
89
public class ProcessedEntity implements Serializable {
@@ -11,6 +12,14 @@ public class ProcessedEntity implements Serializable {
1112

1213
ProcessedEntityStatus processedEntityStatus;
1314

15+
public static ProcessedEntity successful(HasUuid entity) {
16+
return new ProcessedEntity(entity.getUuid(), ProcessedEntityStatus.SUCCESS);
17+
}
18+
19+
public static ProcessedEntity failedInternally(HasUuid entity) {
20+
return new ProcessedEntity(entity.getUuid(), ProcessedEntityStatus.INTERNAL_FAILURE);
21+
}
22+
1423
public ProcessedEntity(String entityUuid, ProcessedEntityStatus processedEntityStatus) {
1524
this.entityUuid = entityUuid;
1625
this.processedEntityStatus = processedEntityStatus;

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

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@
6161
import de.symeda.sormas.api.utils.pseudonymization.valuepseudonymizers.LongitudePseudonymizer;
6262

6363
@DependingOnFeatureType(featureType = FeatureType.CONTACT_TRACING)
64-
public class ContactDto extends SormasToSormasShareableDto {
64+
public class ContactDto extends SormasToSormasShareableDto implements IsContact {
6565

6666
private static final long serialVersionUID = -7764607075875188799L;
6767

@@ -149,6 +149,7 @@ public class ContactDto extends SormasToSormasShareableDto {
149149
public static final String DELETION_REASON = "deletionReason";
150150
public static final String OTHER_DELETION_REASON = "otherDeletionReason";
151151

152+
@EmbeddedPersonalData
152153
private CaseReferenceDto caze;
153154
@Size(max = FieldConstraints.CHARACTER_LIMIT_DEFAULT, message = Validations.textTooLong)
154155
private String caseIdExternalSystem;
@@ -254,6 +255,7 @@ public class ContactDto extends SormasToSormasShareableDto {
254255
@SensitiveData
255256
private UserReferenceDto contactOfficer;
256257

258+
@EmbeddedPersonalData
257259
private CaseReferenceDto resultingCase; // read-only now, but editable long-term
258260
@SensitiveData
259261
private UserReferenceDto resultingCaseUser;
@@ -611,12 +613,7 @@ public void setReportLatLonAccuracy(Float reportLatLonAccuracy) {
611613
}
612614

613615
public ContactReferenceDto toReference() {
614-
return new ContactReferenceDto(
615-
getUuid(),
616-
getPerson().getFirstName(),
617-
getPerson().getLastName(),
618-
getCaze() != null ? getCaze().getFirstName() : null,
619-
getCaze() != null ? getCaze().getLastName() : null);
616+
return new ContactReferenceDto(getUuid(), getPerson().getFirstName(), getPerson().getLastName(), getCaze());
620617
}
621618

622619
public UserReferenceDto getResultingCaseUser() {

0 commit comments

Comments
 (0)