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

Commit 0c57598

Browse files
Merge branch 'development' into feature-2671-2672-2673-SurvnetGateway
2 parents bf4e24c + 4ce51e0 commit 0c57598

239 files changed

Lines changed: 4004 additions & 476 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.

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
You can give SORMAS a try on our play server at https://sormas.helmholtz-hzi.de!
1818

1919
#### How Can I Get Involved?
20-
Have a look at our [*Contributing Readme*](CONTRIBUTING.md) and contact us at [email protected] or join our [developer chat on Gitter](https://gitter.im/SORMAS-Project) to learn how you can help to drive the development of SORMAS forward and to get development support from our core developers. SORMAS is a community-driven project, and we'd love to have you on board!
20+
Read through our [*Contributing Readme*](CONTRIBUTING.md) and contact us at [email protected] or join our [developer chat on Gitter](https://gitter.im/SORMAS-Project) to learn how you can help to drive the development of SORMAS forward and to get development support from our core developers. SORMAS is a community-driven project, and we'd love to have you on board! If you want to contribute to the code, please strictly adhere to the [*Development Environment*](DEVELOPMENT_ENVIRONMENT.md) guide to ensure that everything is set up correctly. Please also make sure that you've read the [*Development Contributing Guidelines*](CONTRIBUTING.md#development-contributing-guidelines) before you start to develop.
2121

2222
#### How Can I Report a Bug or Request a Feature?
2323
Please [create a new issue](https://github.com/hzi-braunschweig/SORMAS-Project/issues/new/choose) and read the [*Submitting an Issue*](CONTRIBUTING.md#submitting-an-issue) guide for more detailed instructions. We appreciate your help!

SERVER_CUSTOMIZATION.md

Lines changed: 23 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -58,16 +58,28 @@ SORMAS supports a wide range of diseases, and not all of those might be relevant
5858

5959
Right now, changing these variables unfortunately is not possible from within the user interface, but requires **direct database access**. If you have this access, you can edit the entries in the *diseaseconfiguration* table according to your needs.
6060

61-
**IMPORTANT:** Whenever you edit an entry in this table, you also need to manually set the *changedate* to the current date and time. This is required in order for the mobile app to synchronize the changes and use the edited disease configuration.
61+
**VERY IMPORTANT:** Whenever you edit an entry in this table, you also need to manually set the *changedate* to the current date and time. This is required in order for the mobile app to synchronize the changes and use the edited disease configuration.
6262

6363
## Feature Configuration
64-
Some of the features in SORMAS can be enabled or disabled for the system.
65-
Examples for this are aggregated reporting, event surveillance, national case sharing and more.
66-
67-
Right now, changing these variables unfortunately is not possible from within the user interface, but requires **direct database access**. If you have this access, you can edit the entries in the *featureconfiguration* table.
68-
69-
* There will be an entry in the database table for each feature that is available in SORMAS
70-
* Set the "enabled" value of the feature to true or false to enable or disable it
71-
* The region, district, disease and enddate columns are currently only appicable for the line listing feature. The line listing feature is the only feature that can currently be configured using the UI.
72-
73-
**IMPORTANT:** Whenever you edit an entry in this table, you also need to manually set the *changedate* to the current date and time. This is required in order for the mobile app to synchronize the changes and use the edited disease configuration.
64+
Some of the features in SORMAS can be enabled or disabled to further customize the system. Right now, changing these variables unfortunately is not possible from within the user interface, but requires **direct database access**. If you have this access, you can edit the entries in the *featureconfiguration* table. There is one entry for every configurable feature in this table, and you can set the value of the *enabled* column to *true* to enable it and *false* to disable it. The *region*, *district*, *disease* and *enddate* columns are currently only applicable for the line listing feature and define the scope in which line listing is used. Line listing is configurable from within the UI and does not need to be manually edited in the database.
65+
66+
**VERY IMPORTANT:** Whenever you edit an entry in this table, you also need to manually set the *changedate* to the current date and time. This is required in order for the mobile app to synchronize the changes and use the edited feature configuration.
67+
68+
The following features are currently configurable:
69+
70+
* **Case Surveillance** *(CASE_SURVEILANCE)*: The core module of SORMAS which allows the creation and management of suspect or confirmed disease cases.
71+
* **Contact Tracing** *(CONTACT_TRACING)*: Management and follow-up of contacts of disease cases.
72+
* **Sample Management** *(SAMPLES_LAB)*: Management of samples for cases, contacts or event participants and the documentation of pathogen tests performed on these samples.
73+
* **Event Surveillance** *(EVENT_SURVEILLANCE)*: Creating and managing events and event participants to identify potential outbreaks or disease hotspots.
74+
* **Aggregate Reporting** *(AGGREGATE_REPORTING)*: Allows collecting case numbers for a number of additional diseases for which case-based surveillance is not used. Commonly referred to as mSers in African countries.
75+
* **Weekly Reporting** *(WEEKLY_REPORTING)*: Allows mobile users to confirm the number of cases they have collected on a weekly basis and web users to see an overview of whether or not mobile users have submitted their reports and how many cases they have reported.
76+
* **Clinical Management** *(CLINICAL_MANAGEMENT)*: Enables the clinical management module of cases that allow collecting prescriptions and treatments as well as doctor's visits in a clinical context.
77+
* **National Case Sharing** *(NATIONAL_CASE_SHARING)*: Allows users with the respective rights to make cases available to the whole country, i.e. other users will see these cases even if they don't belong to their jurisdiction.
78+
* **Task Generation (Case Surveillance)** *(TASK_GENERATION_CASE_SURVEILLANCE)*: Enables or disables the automatic generation of tasks associated with case surveillance, especially the *Case Investigation* tasks that are usually generated when creating a new case.
79+
* **Task Generation (Contact Tracing)** *(TASK_GENERATION_CONTACT_TRACING)*: Enables or disables the automatic generation of tasks associated with contact tracing, especially the *Contact Investigation* tasks that are usually generated when creating a new contact and the *Contact Follow-Up* tasks that are created once a day for every contact that is under follow-up.
80+
* **Task Generation (Event Surveillance)** *(TASK_GENERATION_EVENT_SURVEILLANCE)*: Enables or disables the automatic generation of tasks associated with event surveillance.
81+
* **Task Generation (General)** *(TASK_GENERATION_GENERAL)*: Enables or disables the automatic generation of tasks that aren't directly associated with one of the three other task types described above, e.g. the *Weekly Report Generation* task that asks mobile users to submit their weekly reports.
82+
* **Campaigns** *(CAMPAIGNS)*: The campaigns module allows collecting flexible data which can be customized using the JSON format. Currently this is heavily geared towards vaccination campaigns in Afghanistan, but will be usable in a more generic way in the future for other countries as well.
83+
* **Area Infrastructure** *(INFRASTRUCTURE_TYPE_AREA)*: Enables an additional infrastructure level above region that is called area by default. Currently only used in the campaigns module.
84+
* **Case Follow-Up** *(CASE_FOLLOWUP)*: Enables the contact follow-up module for cases as well to allow a more detailed daily documentation of symptoms.
85+
* **Line Listing** *(LINE_LISTING)*: Whether or not using line listing for case entry is enabled in the specified jurisdiction for the specified disease. Configurable from the UI, no database interaction needed.

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

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
package de.symeda.sormas.api;
22

3-
import org.apache.commons.text.StringEscapeUtils;
4-
53
public class ResourceBundle {
64

75
private java.util.ResourceBundle resourceBundle;

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -143,4 +143,6 @@ public UserReferenceDto getCreatingUser() {
143143
public void setCreatingUser(UserReferenceDto creatingUser) {
144144
this.creatingUser = creatingUser;
145145
}
146+
147+
146148
}

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
@@ -151,6 +151,7 @@ public interface Captions {
151151
String campaignDashboardChartWidth = "campaignDashboardChartWidth";
152152
String campaignDashboardOrder = "campaignDashboardOrder";
153153
String campaignDashboardTabName = "campaignDashboardTabName";
154+
String CampaignFormData_area = "CampaignFormData.area";
154155
String CampaignFormData_campaign = "CampaignFormData.campaign";
155156
String CampaignFormData_campaignFormMeta = "CampaignFormData.campaignFormMeta";
156157
String CampaignFormData_formDate = "CampaignFormData.formDate";
@@ -1608,6 +1609,7 @@ public interface Captions {
16081609
String User_active = "User.active";
16091610
String User_address = "User.address";
16101611
String User_associatedOfficer = "User.associatedOfficer";
1612+
String User_hasConsentedToGdpr = "User.hasConsentedToGdpr";
16111613
String User_healthFacility = "User.healthFacility";
16121614
String User_laboratory = "User.laboratory";
16131615
String User_limitedDisease = "User.limitedDisease";

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,4 +28,5 @@ public interface Descriptions {
2828
String descCaseFilterRelatedToEvent = "descCaseFilterRelatedToEvent";
2929
String descContactOnlyWithExtendedQuarantine = "descContactOnlyWithExtendedQuarantine";
3030
String descContactOnlyWithReducedQuarantine = "descContactOnlyWithReducedQuarantine";
31+
String descGdpr = "descGdpr";
3132
}

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -594,6 +594,8 @@ public interface Strings {
594594
String messageFollowUpCanceled = "messageFollowUpCanceled";
595595
String messageFollowUpStatusChanged = "messageFollowUpStatusChanged";
596596
String messageFormHasErrorsPathogenTest = "messageFormHasErrorsPathogenTest";
597+
String messageGdpr = "messageGdpr";
598+
String messageGdprCheck = "messageGdprCheck";
597599
String messageImportCanceled = "messageImportCanceled";
598600
String messageImportCanceledErrors = "messageImportCanceledErrors";
599601
String messageImportError = "messageImportError";

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -94,9 +94,11 @@ public interface Validations {
9494
String validCommunity = "validCommunity";
9595
String validDisease = "validDisease";
9696
String validDistrict = "validDistrict";
97+
String validEmailAddress = "validEmailAddress";
9798
String validFacility = "validFacility";
9899
String validFacilityType = "validFacilityType";
99100
String validPerson = "validPerson";
101+
String validPhoneNumber = "validPhoneNumber";
100102
String validPointOfEntry = "validPointOfEntry";
101103
String validRegion = "validRegion";
102104
String validReportDateTime = "validReportDateTime";

sormas-api/src/main/java/de/symeda/sormas/api/region/AreaFacade.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,5 +27,4 @@ public interface AreaFacade {
2727
void deArchive(String areaUuid);
2828

2929
List<AreaReferenceDto> getByName(String name, boolean includeArchivedAreas);
30-
3130
}

sormas-api/src/main/java/de/symeda/sormas/api/user/UserDto.java

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@
1717
*******************************************************************************/
1818
package de.symeda.sormas.api.user;
1919

20-
import java.awt.geom.Area;
2120
import java.util.Set;
2221

2322
import de.symeda.sormas.api.Disease;
@@ -59,6 +58,7 @@ public class UserDto extends EntityDto {
5958
public static final String POINT_OF_ENTRY = "pointOfEntry";
6059
public static final String LIMITED_DISEASE = "limitedDisease";
6160
public static final String LANGUAGE = "language";
61+
public static final String HAS_CONSENTED_TO_GDPR = "hasConsentedToGdpr";
6262

6363
private boolean active = true;
6464

@@ -90,6 +90,8 @@ public class UserDto extends EntityDto {
9090

9191
private Language language;
9292

93+
private boolean hasConsentedToGdpr;
94+
9395
public static UserDto build() {
9496
UserDto user = new UserDto();
9597
user.setUuid(DataHelper.createUuid());
@@ -253,4 +255,12 @@ public Language getLanguage() {
253255
public void setLanguage(Language language) {
254256
this.language = language;
255257
}
258+
259+
public boolean isHasConsentedToGdpr() {
260+
return hasConsentedToGdpr;
261+
}
262+
263+
public void setHasConsentedToGdpr(boolean hasConsentedToGdpr) {
264+
this.hasConsentedToGdpr = hasConsentedToGdpr;
265+
}
256266
}

0 commit comments

Comments
 (0)