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

Commit c3d5cb5

Browse files
Merge branch 'development' into feature-2562-Person_address_refinement
2 parents 44cdb6b + 7ff2404 commit c3d5cb5

284 files changed

Lines changed: 16802 additions & 8724 deletions

File tree

Some content is hidden

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

SERVER_CUSTOMIZATION.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ The following properties are currently configurable:
2727
* **Name similarity threshold** *(namesimilaritythreshold)*: This is used when comparing cases or contacts to find duplicates in the system, either in retrospection or during creation or import. The higher the value, the more restrictive the algorithm, i.e. less potential duplicates will be found. It is suggested to play around with this setting to see which value works for your country and language.
2828
* **Dev mode** *(devmode)*: Enabling developer mode will give you access to a tab in the Configuration menu that allows admins to create dummy cases and contacts to quickly fill the database. This is only meant to be used on development or demo systems and should be left disabled for production servers.
2929
* **Infrastructure sync threshold** *(infrastructuresyncthreshold)*: Synchronizing infrastructure data to mobile apps (e.g. regions or health facilities) is done in chunks to avoid connection timeouts. If you expect your users to have very bad internet connection, lowering this threshold could make it easier for them to synchronize this data.
30-
* **Archiving thresholds** *(daysAfterCaseGetsArchived and daysAfterEventGetsArchived)*: The number of days without any changes after which cases/events are automatically archived (i.e. they will no longer be displayed in the normal directories, but still count towards statistics or counts on the dashboard and can still be viewed by users with the respective user right).
30+
* **Archiving thresholds** *(daysAfterCaseGetsArchived and daysAfterEventGetsArchived)*: The number of days without any changes after which cases/events are automatically archived (i.e. they will no longer be displayed in the normal directories, but still count towards statistics or counts on the dashboard and can still be viewed by users with the respective user right). If set to 0, automatic archiving is disabled.
3131
* **Rscript executable** *(rscript.executable)*: The location of the Rscript executable. If you've installed Rscript on your server and specify the path here (the default should work for Linux systems as long as you've used the default install path), network diagrams for transmission chains will be shown in the web app.
3232
* **Symptom journal interface**: Properties used to connect to an external symptom journal service. *interface.symptomjournal.url* is the URL to the website that SORMAS should connect to; *interface.symptomjournal.authurl* is the URL used to authenticate SORMAS at the external service; *interface.symptomjournal.clientid* and *interface.symptomjournal.secret* are the credentials used for the authentication process.
3333
* **Custom branding**: Properties used to apply a custom branding to SORMAS that overrides its name and default logo. Using these properties also alters the sidebar and adds another customizable area to it. If you want to use this feature, set *custombranding* to true. *custombranding.name* is the name that you want to use, *custombranding.logo.path* is the path to the logo that should be used.

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

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

20+
import javax.naming.InitialContext;
21+
import javax.naming.NamingException;
22+
2023
import de.symeda.sormas.api.action.ActionFacade;
2124
import de.symeda.sormas.api.campaign.CampaignFacade;
2225
import de.symeda.sormas.api.campaign.data.CampaignFormDataFacade;
26+
import de.symeda.sormas.api.campaign.diagram.CampaignDiagramDefinitionFacade;
2327
import de.symeda.sormas.api.campaign.form.CampaignFormMetaFacade;
2428
import de.symeda.sormas.api.caze.CaseFacade;
2529
import de.symeda.sormas.api.caze.CaseStatisticsFacade;
30+
import de.symeda.sormas.api.caze.caseimport.CaseImportFacade;
2631
import de.symeda.sormas.api.caze.classification.CaseClassificationFacade;
2732
import de.symeda.sormas.api.caze.maternalhistory.MaternalHistoryFacade;
2833
import de.symeda.sormas.api.clinicalcourse.ClinicalCourseFacade;
@@ -64,9 +69,6 @@
6469
import de.symeda.sormas.api.visit.VisitFacade;
6570
import de.symeda.sormas.api.visualization.VisualizationFacade;
6671

67-
import javax.naming.InitialContext;
68-
import javax.naming.NamingException;
69-
7072
public class FacadeProvider {
7173

7274
private static final String JNDI_PREFIX = "java:global/sormas-ear/sormas-backend/";
@@ -99,6 +101,10 @@ public static CaseStatisticsFacade getCaseStatisticsFacade() {
99101
return get().lookupEjbRemote(CaseStatisticsFacade.class);
100102
}
101103

104+
public static CaseImportFacade getCaseImportFacade() {
105+
return get().lookupEjbRemote(CaseImportFacade.class);
106+
}
107+
102108
public static ContactFacade getContactFacade() {
103109
return get().lookupEjbRemote(ContactFacade.class);
104110
}
@@ -267,6 +273,10 @@ public static CampaignFacade getCampaignFacade() {
267273
return get().lookupEjbRemote(CampaignFacade.class);
268274
}
269275

276+
public static CampaignDiagramDefinitionFacade getCampaignDiagramDefinitionFacade() {
277+
return get().lookupEjbRemote(CampaignDiagramDefinitionFacade.class);
278+
}
279+
270280
public static CampaignFormMetaFacade getCampaignFormMetaFacade() {
271281
return get().lookupEjbRemote(CampaignFormMetaFacade.class);
272282
}

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

Lines changed: 20 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -15,16 +15,18 @@
1515

1616
package de.symeda.sormas.api.campaign.data;
1717

18+
import java.io.Serializable;
19+
1820
import de.symeda.sormas.api.i18n.I18nProperties;
1921
import de.symeda.sormas.api.i18n.Strings;
2022

21-
import java.io.Serializable;
22-
import java.util.Objects;
23-
2423
public class CampaignFormDataEntry implements Serializable {
2524

2625
private static final long serialVersionUID = -3096020120349257398L;
2726

27+
public static final String ID = "id";
28+
public static final String VALUE = "value";
29+
2830
private String id;
2931
private Object value;
3032

@@ -53,20 +55,21 @@ public void setValue(Object value) {
5355
this.value = value;
5456
}
5557

56-
@Override
57-
public boolean equals(Object o) {
58-
if (this == o)
59-
return true;
60-
if (o == null || getClass() != o.getClass())
61-
return false;
62-
CampaignFormDataEntry that = (CampaignFormDataEntry) o;
63-
return Objects.equals(id, that.id);
64-
}
65-
66-
@Override
67-
public int hashCode() {
68-
return Objects.hash(id);
69-
}
58+
// does not make sense. Leads to hibernate not persisting any changes in value
59+
// @Override
60+
// public boolean equals(Object o) {
61+
// if (this == o)
62+
// return true;
63+
// if (o == null || getClass() != o.getClass())
64+
// return false;
65+
// CampaignFormDataEntry that = (CampaignFormDataEntry) o;
66+
// return Objects.equals(id, that.id);
67+
// }
68+
//
69+
// @Override
70+
// public int hashCode() {
71+
// return Objects.hash(id);
72+
// }
7073

7174
@Override
7275
public String toString() {
@@ -80,5 +83,4 @@ public String toString() {
8083

8184
return value.toString();
8285
}
83-
8486
}

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

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,10 +20,14 @@
2020

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

23-
import de.symeda.sormas.api.utils.SortProperty;
23+
import java.util.List;
2424

2525
import javax.ejb.Remote;
26-
import java.util.List;
26+
27+
import de.symeda.sormas.api.campaign.diagram.CampaignDiagramCriteria;
28+
import de.symeda.sormas.api.campaign.diagram.CampaignDiagramDataDto;
29+
import de.symeda.sormas.api.campaign.diagram.CampaignDiagramSeries;
30+
import de.symeda.sormas.api.utils.SortProperty;
2731

2832
@Remote
2933
public interface CampaignFormDataFacade {
@@ -45,4 +49,6 @@ public interface CampaignFormDataFacade {
4549
List<CampaignFormDataIndexDto> getIndexList(CampaignFormDataCriteria criteria, Integer first, Integer max, List<SortProperty> sortProperties);
4650

4751
long count(CampaignFormDataCriteria criteria);
52+
53+
List<CampaignDiagramDataDto> getDiagramData(List<CampaignDiagramSeries> diagramSeriesList, CampaignDiagramCriteria campaignDiagramCriteria);
4854
}

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

Lines changed: 5 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -36,8 +36,7 @@ public class CampaignFormDataIndexDto implements Serializable, Cloneable {
3636
private String uuid;
3737
private String campaign;
3838
private String form;
39-
private String formValues;
40-
private List<CampaignFormDataEntry> formValuesList;
39+
private List<CampaignFormDataEntry> formValues;
4140
private String region;
4241
private String district;
4342
private String community;
@@ -47,15 +46,15 @@ public CampaignFormDataIndexDto(
4746
String uuid,
4847
String campaign,
4948
String form,
50-
String formValues,
49+
Object formValues,
5150
String region,
5251
String district,
5352
String community,
5453
Date formDate) {
5554
this.uuid = uuid;
5655
this.campaign = campaign;
5756
this.form = form;
58-
this.formValues = formValues;
57+
this.formValues = (List<CampaignFormDataEntry>) formValues;
5958
this.region = region;
6059
this.district = district;
6160
this.community = community;
@@ -86,11 +85,11 @@ public void setForm(String form) {
8685
this.form = form;
8786
}
8887

89-
public String getFormValues() {
88+
public List<CampaignFormDataEntry> getFormValues() {
9089
return formValues;
9190
}
9291

93-
public void setFormValues(String formValues) {
92+
public void setFormValues(List<CampaignFormDataEntry> formValues) {
9493
this.formValues = formValues;
9594
}
9695

@@ -125,13 +124,4 @@ public Date getFormDate() {
125124
public void setFormDate(Date formDate) {
126125
this.formDate = formDate;
127126
}
128-
129-
public List<CampaignFormDataEntry> getFormValuesList() {
130-
return formValuesList;
131-
}
132-
133-
public void setFormValuesList(List<CampaignFormDataEntry> formValuesList) {
134-
this.formValuesList = formValuesList;
135-
}
136-
137127
}
Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
package de.symeda.sormas.api.campaign.diagram;
2+
3+
import java.io.Serializable;
4+
5+
import de.symeda.sormas.api.BaseCriteria;
6+
import de.symeda.sormas.api.campaign.CampaignReferenceDto;
7+
import de.symeda.sormas.api.region.AreaReferenceDto;
8+
import de.symeda.sormas.api.region.DistrictReferenceDto;
9+
import de.symeda.sormas.api.region.RegionReferenceDto;
10+
11+
public class CampaignDiagramCriteria extends BaseCriteria implements Serializable {
12+
13+
private CampaignReferenceDto campaign;
14+
private AreaReferenceDto area;
15+
private RegionReferenceDto region;
16+
private DistrictReferenceDto district;
17+
18+
public CampaignDiagramCriteria(CampaignReferenceDto campaign, AreaReferenceDto area, RegionReferenceDto region, DistrictReferenceDto district) {
19+
this.campaign = campaign;
20+
this.area = area;
21+
this.region = region;
22+
this.district = district;
23+
}
24+
25+
public CampaignReferenceDto getCampaign() {
26+
return campaign;
27+
}
28+
29+
public void setCampaign(CampaignReferenceDto campaign) {
30+
this.campaign = campaign;
31+
}
32+
33+
public AreaReferenceDto getArea() {
34+
return area;
35+
}
36+
37+
public void setArea(AreaReferenceDto area) {
38+
this.area = area;
39+
}
40+
41+
public RegionReferenceDto getRegion() {
42+
return region;
43+
}
44+
45+
public void setRegion(RegionReferenceDto region) {
46+
this.region = region;
47+
}
48+
49+
public DistrictReferenceDto getDistrict() {
50+
return district;
51+
}
52+
53+
public void setDistrict(DistrictReferenceDto district) {
54+
this.district = district;
55+
}
56+
}
Lines changed: 82 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,82 @@
1+
package de.symeda.sormas.api.campaign.diagram;
2+
3+
import java.io.Serializable;
4+
5+
public class CampaignDiagramDataDto implements Serializable {
6+
7+
private static final long serialVersionUID = -8813972727008846360L;
8+
9+
private String formMetaUuid;
10+
private String formId;
11+
private String fieldId;
12+
private String fieldCaption;
13+
private Object valueSum;
14+
private Object groupingKey;
15+
private String groupingCaption;
16+
17+
public CampaignDiagramDataDto(String formMetaUuid, String formId, String fieldId, Object valueSum, Object groupingKey, String groupingCaption) {
18+
this.formMetaUuid = formMetaUuid;
19+
this.formId = formId;
20+
this.fieldId = fieldId;
21+
this.valueSum = valueSum;
22+
this.groupingKey = groupingKey;
23+
this.groupingCaption = groupingCaption;
24+
25+
}
26+
27+
public String getFormMetaUuid() {
28+
return formMetaUuid;
29+
}
30+
31+
public void setFormMetaUuid(String formMetaUuid) {
32+
this.formMetaUuid = formMetaUuid;
33+
}
34+
35+
public String getFormId() {
36+
return formId;
37+
}
38+
39+
public void setFormId(String formId) {
40+
this.formId = formId;
41+
}
42+
43+
public String getFieldId() {
44+
return fieldId;
45+
}
46+
47+
public void setFieldId(String fieldId) {
48+
this.fieldId = fieldId;
49+
}
50+
51+
public String getFieldCaption() {
52+
return fieldCaption;
53+
}
54+
55+
public void setFieldCaption(String fieldCaption) {
56+
this.fieldCaption = fieldCaption;
57+
}
58+
59+
public Object getValueSum() {
60+
return valueSum;
61+
}
62+
63+
public void setValueSum(Object valueSum) {
64+
this.valueSum = valueSum;
65+
}
66+
67+
public Object getGroupingKey() {
68+
return groupingKey;
69+
}
70+
71+
public void setGroupingKey(Object groupingKey) {
72+
this.groupingKey = groupingKey;
73+
}
74+
75+
public String getGroupingCaption() {
76+
return groupingCaption;
77+
}
78+
79+
public void setGroupingCaption(String groupingCaption) {
80+
this.groupingCaption = groupingCaption;
81+
}
82+
}

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

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
public class CampaignDiagramDefinitionDto extends EntityDto {
88

99
private String diagramId;
10+
private String diagramCaption;
1011
private DiagramType diagramType;
1112
private List<CampaignDiagramSeries> campaignDiagramSeriesList;
1213

@@ -18,6 +19,14 @@ public void setDiagramId(String diagramId) {
1819
this.diagramId = diagramId;
1920
}
2021

22+
public String getDiagramCaption() {
23+
return diagramCaption;
24+
}
25+
26+
public void setDiagramCaption(String diagramCaption) {
27+
this.diagramCaption = diagramCaption;
28+
}
29+
2130
public DiagramType getDiagramType() {
2231
return diagramType;
2332
}

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,5 +9,7 @@ public interface CampaignDiagramDefinitionFacade {
99

1010
CampaignDiagramDefinitionDto save(CampaignDiagramDefinitionDto campaignDiagramDefinitionDto);
1111

12+
List<CampaignDiagramDefinitionDto> getAll();
13+
1214
List<CampaignDiagramDefinitionDto> getByUuids(List<String> uuids);
1315
}

0 commit comments

Comments
 (0)