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

Commit b2df230

Browse files
authored
Merge pull request SORMAS-Foundation#3509 from hzi-braunschweig/2644-populationDataInCampaignDiagrams
2644 - Enable the usage of population data in campaign diagrams
2 parents 72e913a + 513d629 commit b2df230

12 files changed

Lines changed: 704 additions & 71 deletions

File tree

sormas-api/src/main/java/de/symeda/sormas/api/campaign/data/CampaignFormDataFacade.java

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,16 +20,16 @@
2020

2121
package de.symeda.sormas.api.campaign.data;
2222

23+
import java.util.Date;
24+
import java.util.List;
25+
26+
import javax.ejb.Remote;
27+
2328
import de.symeda.sormas.api.campaign.diagram.CampaignDiagramCriteria;
2429
import de.symeda.sormas.api.campaign.diagram.CampaignDiagramDataDto;
2530
import de.symeda.sormas.api.campaign.diagram.CampaignDiagramSeries;
2631
import de.symeda.sormas.api.utils.SortProperty;
2732

28-
import javax.ejb.Remote;
29-
30-
import java.util.Date;
31-
import java.util.List;
32-
3333
@Remote
3434
public interface CampaignFormDataFacade {
3535

@@ -53,6 +53,11 @@ public interface CampaignFormDataFacade {
5353

5454
List<CampaignDiagramDataDto> getDiagramData(List<CampaignDiagramSeries> diagramSeries, CampaignDiagramCriteria campaignDiagramCriteria);
5555

56+
List<CampaignDiagramDataDto> getDiagramDataByAgeGroup(
57+
CampaignDiagramSeries diagramSeriesTotal,
58+
CampaignDiagramSeries diagramSeries,
59+
CampaignDiagramCriteria campaignDiagramCriteria);
60+
5661
List<String> getAllActiveUuids();
5762

5863
List<CampaignFormDataDto> getAllActiveAfter(Date date);

sormas-api/src/main/java/de/symeda/sormas/api/campaign/diagram/CampaignDiagramDataDto.java

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,53 @@ public class CampaignDiagramDataDto implements Serializable {
1414
private Object groupingKey;
1515
private String groupingCaption;
1616
private String stack;
17+
private boolean hasAgeGroupData;
18+
19+
public CampaignDiagramDataDto(String fieldCaption, Number valueSum, Object groupingKey, String groupingCaption, String fieldId, String formId) {
20+
this.fieldCaption = fieldCaption;
21+
this.valueSum = valueSum;
22+
this.groupingKey = groupingKey;
23+
this.groupingCaption = groupingCaption;
24+
this.fieldId = fieldId;
25+
this.formId = formId;
26+
}
27+
28+
public CampaignDiagramDataDto(
29+
String fieldCaption,
30+
Number valueSum,
31+
Object groupingKey,
32+
String groupingCaption,
33+
String fieldId,
34+
String formId,
35+
boolean hasAgeGroupData,
36+
String stack) {
37+
this.fieldCaption = fieldCaption;
38+
this.valueSum = valueSum;
39+
this.groupingKey = groupingKey;
40+
this.groupingCaption = groupingCaption;
41+
this.fieldId = fieldId;
42+
this.formId = formId;
43+
this.hasAgeGroupData = hasAgeGroupData;
44+
this.stack = stack;
45+
}
46+
47+
public CampaignDiagramDataDto(
48+
String fieldCaption,
49+
Number valueSum,
50+
Object groupingKey,
51+
String groupingCaption,
52+
String fieldId,
53+
String formId,
54+
boolean hasAgeGroupData) {
55+
this.fieldCaption = fieldCaption;
56+
this.valueSum = valueSum;
57+
this.groupingKey = groupingKey;
58+
this.groupingCaption = groupingCaption;
59+
this.fieldId = fieldId;
60+
this.formId = formId;
61+
this.hasAgeGroupData = hasAgeGroupData;
62+
63+
}
1764

1865
public CampaignDiagramDataDto(
1966
String formMetaUuid,
@@ -97,4 +144,12 @@ public String getStack() {
97144
public void setStack(String stack) {
98145
this.stack = stack;
99146
}
147+
148+
public boolean getHasAgeGroupData() {
149+
return hasAgeGroupData;
150+
}
151+
152+
public void setHasAgeGroupData(boolean hasAgeGroupData) {
153+
this.hasAgeGroupData = hasAgeGroupData;
154+
}
100155
}

sormas-api/src/main/java/de/symeda/sormas/api/campaign/diagram/CampaignDiagramSeries.java

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@
33
import java.io.Serializable;
44
import java.util.Objects;
55

6+
import de.symeda.sormas.api.AgeGroup;
7+
68
public class CampaignDiagramSeries implements Serializable {
79

810
private static final long serialVersionUID = 1420672609912364060L;
@@ -11,6 +13,7 @@ public class CampaignDiagramSeries implements Serializable {
1113
private String formId;
1214
private String referenceValue;
1315
private String stack;
16+
private AgeGroup populationGroup;
1417

1518
public CampaignDiagramSeries() {
1619
}
@@ -64,11 +67,20 @@ public boolean equals(Object o) {
6467
return Objects.equals(fieldId, that.fieldId)
6568
&& Objects.equals(formId, that.formId)
6669
&& Objects.equals(referenceValue, that.referenceValue)
67-
&& Objects.equals(stack, that.stack);
70+
&& Objects.equals(stack, that.stack)
71+
&& Objects.equals(populationGroup, that.populationGroup);
72+
}
73+
74+
public AgeGroup getPopulationGroup() {
75+
return populationGroup;
76+
}
77+
78+
public void setPopulationGroup(AgeGroup populationGroup) {
79+
this.populationGroup = populationGroup;
6880
}
6981

7082
@Override
7183
public int hashCode() {
72-
return Objects.hash(fieldId, formId, referenceValue, stack);
84+
return Objects.hash(fieldId, formId, referenceValue, stack, populationGroup);
7385
}
7486
}

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

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -174,10 +174,13 @@ public interface Strings {
174174
String errorEntityOutdated = "errorEntityOutdated";
175175
String errorFieldValidationFailed = "errorFieldValidationFailed";
176176
String errorFileNotFound = "errorFileNotFound";
177+
String errorFormIdPopulationAgeGroup = "errorFormIdPopulationAgeGroup";
177178
String errorIllegalFilename = "errorIllegalFilename";
178179
String errorIntegerFieldValidationFailed = "errorIntegerFieldValidationFailed";
179180
String errorInvalidValue = "errorInvalidValue";
180181
String errorNoAccessToWeb = "errorNoAccessToWeb";
182+
String errorNoPopulationDataFound = "errorNoPopulationDataFound";
183+
String errorNoPopulationDataLocations = "errorNoPopulationDataLocations";
181184
String errorNotRequiredRights = "errorNotRequiredRights";
182185
String errorOccurred = "errorOccurred";
183186
String errorProblemOccurred = "errorProblemOccurred";
@@ -784,6 +787,10 @@ public interface Strings {
784787
String on = "on";
785788
String or = "or";
786789
String pleaseSpecify = "pleaseSpecify";
790+
String populationDataByArea = "populationDataByArea";
791+
String populationDataByCommunity = "populationDataByCommunity";
792+
String populationDataByDistrict = "populationDataByDistrict";
793+
String populationDataByRegion = "populationDataByRegion";
787794
String previousPeriod = "previousPeriod";
788795
String promptActionDateFrom = "promptActionDateFrom";
789796
String promptActionDateTo = "promptActionDateTo";

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

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -251,7 +251,9 @@ errorReadingDocument = Error reading document '%s'
251251
errorProcessingTemplate = Error processing template '%s'
252252
errorSormasToSormasNotEditable = Readonly data can not be shared.
253253
errorCampaignDiagramTotalsCalculationError = At least part of the percentage values for the diagram '%s' could not be calculated. Please check the diagram definitions for errors.
254-
254+
errorNoPopulationDataLocations=No population data was found for the following locations : %s
255+
errorNoPopulationDataFound=There is no population data available. Switching to absolute data view
256+
errorFormIdPopulationAgeGroup=Both "Form Id" and "Population Age Group" options are set
255257
# headings
256258
headingAccessDenied = Access denied
257259
headingAdditionalTests = Additional tests
@@ -575,6 +577,10 @@ infoCreateNewSampleDiscardsChanges = Creating a new sample will discard all unsa
575577
infoCreateNewSampleDiscardsChangesEventParticipant = Creating a new sample will discard all unsaved changes made to this event participant
576578
infoUsageOfEditableCampaignGrids = You can edit the campaign data and dashboard definitions by clicking inside one of the cells in the grid, and you can reorder the dashboard elements by dragging and dropping the grid rows
577579
infoSaveOfTask = Saving this task will discard any unsaved changes made to the case.
580+
populationDataByArea = Population data by Area
581+
populationDataByRegion = Population data by Region
582+
populationDataByCommunity = No population data available for communities
583+
populationDataByDistrict = Population data by District
578584
infoExposureInvestigation = <i>Please document ALL relevant direct exposures (e.g. attended gatherings, travels, animal contacts, etc.) during the incubation period:</i>
579585
infoEpiDataFieldsHint = <i>Please indicate if any of the following is relevant for the patient during the incubation period:</i>
580586
infoEpiDataSourceCaseContacts = <i>Please indicate ALL contacts with potential source cases during the incubation period:</i>

0 commit comments

Comments
 (0)