Skip to content
This repository was archived by the owner on May 5, 2021. It is now read-only.

Commit c807d43

Browse files
Merge pull request SORMAS-Foundation#3346 from hzi-braunschweig/2137-Only_display_cases_and_contacts_from_the_users_jurisdiction_by_default
2137 only display cases and contacts from the users jurisdiction by default
2 parents 2ae0c6b + 5458bea commit c807d43

19 files changed

Lines changed: 134 additions & 30 deletions

File tree

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

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,7 @@ public class CaseCriteria extends BaseCriteria implements Cloneable {
6565
public static final String FOLLOW_UP_UNTIL_TO = "followUpUntilTo";
6666
public static final String FACILITY_TYPE_GROUP = "facilityTypeGroup";
6767
public static final String FACILITY_TYPE = "facilityType";
68+
public static final String INCLUDE_CASES_FROM_OTHER_JURISDICTIONS = "includeCasesFromOtherJurisdictions";
6869

6970
private UserRole reportingUserRole;
7071
private Disease disease;
@@ -111,6 +112,7 @@ public class CaseCriteria extends BaseCriteria implements Cloneable {
111112
private Date reportDateTo;
112113
private FacilityTypeGroup facilityTypeGroup;
113114
private FacilityType facilityType;
115+
private Boolean includeCasesFromOtherJurisdictions = Boolean.FALSE;
114116

115117
@Override
116118
public CaseCriteria clone() {
@@ -560,4 +562,12 @@ public FacilityType getFacilityType() {
560562
public void setFacilityType(FacilityType type) {
561563
this.facilityType = type;
562564
}
565+
566+
public Boolean getIncludeCasesFromOtherJurisdictions() {
567+
return includeCasesFromOtherJurisdictions;
568+
}
569+
570+
public void setIncludeCasesFromOtherJurisdictions(Boolean includeCasesFromOtherJurisdictions) {
571+
this.includeCasesFromOtherJurisdictions = includeCasesFromOtherJurisdictions;
572+
}
563573
}

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

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,7 @@ public class ContactCriteria extends BaseCriteria implements Serializable {
5959
public static final String BIRTHDATE_DD = "birthdateDD";
6060
public static final String RETURNING_TRAVELER = "returningTraveler";
6161
public static final String EVENT_LIKE = "eventLike";
62+
public static final String INCLUDE_CONTACTS_FROM_OTHER_JURISDICTIONS = "includeContactsFromOtherJurisdictions";
6263
public static final String ONLY_CONTACTS_SHARING_EVENT_WITH_SOURCE_CASE = "onlyContactsSharingEventWithSourceCase";
6364

6465
private static final long serialVersionUID = 5114202107622217837L;
@@ -109,6 +110,7 @@ public class ContactCriteria extends BaseCriteria implements Serializable {
109110
private YesNoUnknown returningTraveler;
110111
private String eventLike;
111112
private String eventUuid;
113+
private Boolean includeContactsFromOtherJurisdictions = Boolean.FALSE;
112114
private Boolean onlyContactsSharingEventWithSourceCase;
113115

114116
public UserRole getReportingUserRole() {
@@ -521,4 +523,12 @@ public ContactCriteria onlyContactsSharingEventWithSourceCase(Boolean onlyContac
521523
this.onlyContactsSharingEventWithSourceCase = onlyContactsSharingEventWithSourceCase;
522524
return this;
523525
}
526+
527+
public Boolean getIncludeContactsFromOtherJurisdictions() {
528+
return includeContactsFromOtherJurisdictions;
529+
}
530+
531+
public void setIncludeContactsFromOtherJurisdictions(Boolean includeContactsFromOtherJurisdictions) {
532+
this.includeContactsFromOtherJurisdictions = includeContactsFromOtherJurisdictions;
533+
}
524534
}

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -336,6 +336,7 @@ public interface Captions {
336336
String caseFacilityDetailsShort = "caseFacilityDetailsShort";
337337
String caseFilterCasesWithCaseManagementData = "caseFilterCasesWithCaseManagementData";
338338
String caseFilterExcludeSharedCases = "caseFilterExcludeSharedCases";
339+
String caseFilterInludeCasesFromOtherJurisdictions = "caseFilterInludeCasesFromOtherJurisdictions";
339340
String caseFilterPortHealthWithoutFacility = "caseFilterPortHealthWithoutFacility";
340341
String caseFilterRelatedToEvent = "caseFilterRelatedToEvent";
341342
String caseFilterWithDifferentRegion = "caseFilterWithDifferentRegion";
@@ -526,6 +527,7 @@ public interface Captions {
526527
String ContactExport_travelHistory = "ContactExport.travelHistory";
527528
String contactFollowUpDay = "contactFollowUpDay";
528529
String contactFollowUpVisitsOverview = "contactFollowUpVisitsOverview";
530+
String contactInludeContactsFromOtherJurisdictions = "contactInludeContactsFromOtherJurisdictions";
529531
String contactLostToFollowUp = "contactLostToFollowUp";
530532
String contactMinusDays = "contactMinusDays";
531533
String contactNewContact = "contactNewContact";

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,9 @@ public interface Descriptions {
2626
String descCaseFilterWithExtendedQuarantine = "descCaseFilterWithExtendedQuarantine";
2727
String descCaseFilterWithReducedQuarantine = "descCaseFilterWithReducedQuarantine";
2828
String descCaseFilterRelatedToEvent = "descCaseFilterRelatedToEvent";
29+
String descCaseFilterIncludeCasesFromOtherJurisdictions = "descCaseFilterIncludeCasesFromOtherJurisdictions";
2930
String descContactOnlyWithExtendedQuarantine = "descContactOnlyWithExtendedQuarantine";
3031
String descContactOnlyWithReducedQuarantine = "descContactOnlyWithReducedQuarantine";
32+
String descContactIncludeContactsFromOtherJurisdictions = "descContactIncludeContactsFromOtherJurisdictions";
3133
String descGdpr = "descGdpr";
3234
}

sormas-api/src/main/resources/captions.properties

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -239,6 +239,7 @@ caseFilterExcludeSharedCases=Exclude cases shared from other jurisdictions
239239
caseFilterWithoutResponsibleOfficer=Only cases without responsible officer
240240
caseFilterWithExtendedQuarantine=Only cases with extended quarantine
241241
caseFilterWithReducedQuarantine=Only cases with reduced quarantine
242+
caseFilterInludeCasesFromOtherJurisdictions=Include cases from other jurisdictions
242243
caseFilterRelatedToEvent=Only cases with events
243244
caseFacilityDetailsShort=Facility name
244245
caseLineListing=Line listing
@@ -519,6 +520,7 @@ contactChooseSourceCase=Choose Source Case
519520
contactOnlyQuarantineHelpNeeded=Help needed in quarantine
520521
contactOnlyWithExtendedQuarantine=Only contacts with extended quarantine
521522
contactOnlyWithReducedQuarantine=Only contacts with reduced quarantine
523+
contactInludeContactsFromOtherJurisdictions=Include contacts from other jurisdictions
522524
contactOnlyWithSharedEventWithSourceCase=Only contacts with source case linked to the specified event
523525
contactFollowUpDay=Day
524526
contactQuarantineNotOrdered=No quarantine ordered

sormas-api/src/main/resources/descriptions.properties

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,9 @@ descCaseFilterWithExtendedQuarantine = Only list cases whose quarantine period h
6565
descContactOnlyWithExtendedQuarantine = Only list contacts whose quarantine period has been extended
6666
descCaseFilterWithReducedQuarantine = Only list cases whose quarantine period has been reduced
6767
descCaseFilterRelatedToEvent = Only list cases related to events
68+
descCaseFilterIncludeCasesFromOtherJurisdictions = Include the cases created by you for other jurisdictions
6869
descContactOnlyWithReducedQuarantine = Only list contacts whose quarantine period has been reduced
70+
descContactIncludeContactsFromOtherJurisdictions = Include the contacts created by you for other jurisdictions
6971
descGdpr = Reminder: All comments entered must comply with GDPR rules as described during connection.
7072

7173
# EpiData
1.01 KB
Binary file not shown.
108 Bytes
Binary file not shown.

sormas-backend/src/main/java/de/symeda/sormas/backend/caze/CaseFacadeEjb.java

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -61,8 +61,6 @@
6161
import javax.persistence.criteria.Subquery;
6262
import javax.validation.constraints.NotNull;
6363

64-
import de.symeda.sormas.api.VisitOrigin;
65-
import de.symeda.sormas.api.visit.VisitResultDto;
6664
import org.apache.commons.lang3.StringUtils;
6765
import org.slf4j.Logger;
6866
import org.slf4j.LoggerFactory;
@@ -71,6 +69,7 @@
7169
import de.symeda.sormas.api.Disease;
7270
import de.symeda.sormas.api.DiseaseHelper;
7371
import de.symeda.sormas.api.Language;
72+
import de.symeda.sormas.api.VisitOrigin;
7473
import de.symeda.sormas.api.caze.AgeAndBirthDateDto;
7574
import de.symeda.sormas.api.caze.BirthDateDto;
7675
import de.symeda.sormas.api.caze.BurialInfoDto;
@@ -158,7 +157,7 @@
158157
import de.symeda.sormas.api.utils.ValidationRuntimeException;
159158
import de.symeda.sormas.api.utils.YesNoUnknown;
160159
import de.symeda.sormas.api.visit.VisitDto;
161-
import de.symeda.sormas.api.visit.VisitResult;
160+
import de.symeda.sormas.api.visit.VisitResultDto;
162161
import de.symeda.sormas.api.visit.VisitStatus;
163162
import de.symeda.sormas.backend.caze.classification.CaseClassificationFacadeEjb.CaseClassificationFacadeEjbLocal;
164163
import de.symeda.sormas.backend.caze.maternalhistory.MaternalHistoryFacadeEjb;
@@ -403,7 +402,12 @@ public long count(CaseCriteria caseCriteria) {
403402
CriteriaQuery<Long> cq = cb.createQuery(Long.class);
404403
Root<Case> root = cq.from(Case.class);
405404
CaseJoins<Case> joins = new CaseJoins<>(root);
406-
Predicate filter = caseService.createUserFilter(cb, cq, root);
405+
406+
CaseUserFilterCriteria caseUserFilterCriteria = new CaseUserFilterCriteria();
407+
if (caseCriteria != null) {
408+
caseUserFilterCriteria.setIncludeCasesFromOtherJurisdictions(caseCriteria.getIncludeCasesFromOtherJurisdictions());
409+
}
410+
Predicate filter = caseService.createUserFilter(cb, cq, root, caseUserFilterCriteria);
407411

408412
if (caseCriteria != null) {
409413
Predicate criteriaFilter = caseService.createCriteriaFilter(caseCriteria, cb, cq, root, joins);

sormas-backend/src/main/java/de/symeda/sormas/backend/caze/CaseListCriteriaBuilder.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,11 @@ private <T> CriteriaQuery<T> buildIndexCriteria(
120120
cq.orderBy(cb.desc(caze.get(Case.CHANGE_DATE)));
121121
}
122122

123-
Predicate filter = caseService.createUserFilter(cb, cq, caze);
123+
CaseUserFilterCriteria caseUserFilterCriteria = new CaseUserFilterCriteria();
124+
if (caseCriteria != null) {
125+
caseUserFilterCriteria.setIncludeCasesFromOtherJurisdictions(caseCriteria.getIncludeCasesFromOtherJurisdictions());
126+
}
127+
Predicate filter = caseService.createUserFilter(cb, cq, caze, caseUserFilterCriteria);
124128

125129
if (caseCriteria != null) {
126130
Predicate criteriaFilter = caseService.createCriteriaFilter(caseCriteria, cb, cq, caze, joins);

0 commit comments

Comments
 (0)