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

Commit a6ee61a

Browse files
Add institutional partner option to events source type SORMAS-Foundation#3207 (SORMAS-Foundation#3619)
* Add institutional partner option to events source type SORMAS-Foundation#3207 * Increment DatabaseHelper's database version SORMAS-Foundation#3207 * Add srcInstitutionalPartnerType to the event read fragment of the app SORMAS-Foundation#3207 * Add srcInstitutionalPartnerTypeDetails to Events SORMAS-Foundation#3207 * Fix institutionalPartnerType/Details binding in event_read_layout.xml SORMAS-Foundation#3207 * Merge srcInstitutionalPartner Type/Details for event exports SORMAS-Foundation#3207 * Move buildSrcInstitutionalPartnerTypeString to a dedicated EventHelper class SORMAS-Foundation#3207 * Fix missing import in sormas-app's Event.java SORMAS-Foundation#3207
1 parent 489cf93 commit a6ee61a

18 files changed

Lines changed: 265 additions & 13 deletions

File tree

sormas-api/src/main/java/de/symeda/sormas/api/event/EventDto.java

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,8 @@ public class EventDto extends PseudonymizableDto {
5353
public static final String EVENT_LOCATION = "eventLocation";
5454
public static final String TYPE_OF_PLACE = "typeOfPlace";
5555
public static final String SRC_TYPE = "srcType";
56+
public static final String SRC_INSTITUTIONAL_PARTNER_TYPE = "srcInstitutionalPartnerType";
57+
public static final String SRC_INSTITUTIONAL_PARTNER_TYPE_DETAILS = "srcInstitutionalPartnerTypeDetails";
5658
public static final String SRC_FIRST_NAME = "srcFirstName";
5759
public static final String SRC_LAST_NAME = "srcLastName";
5860
public static final String SRC_TEL_NO = "srcTelNo";
@@ -86,6 +88,8 @@ public class EventDto extends PseudonymizableDto {
8688
private LocationDto eventLocation;
8789
private TypeOfPlace typeOfPlace;
8890
private EventSourceType srcType;
91+
private InstitutionalPartnerType srcInstitutionalPartnerType;
92+
private String srcInstitutionalPartnerTypeDetails;
8993
private String srcFirstName;
9094
private String srcLastName;
9195
private String srcTelNo;
@@ -234,6 +238,22 @@ public void setSrcType(EventSourceType srcType) {
234238
this.srcType = srcType;
235239
}
236240

241+
public InstitutionalPartnerType getSrcInstitutionalPartnerType() {
242+
return srcInstitutionalPartnerType;
243+
}
244+
245+
public void setSrcInstitutionalPartnerType(InstitutionalPartnerType srcInstitutionalPartnerType) {
246+
this.srcInstitutionalPartnerType = srcInstitutionalPartnerType;
247+
}
248+
249+
public String getSrcInstitutionalPartnerTypeDetails() {
250+
return srcInstitutionalPartnerTypeDetails;
251+
}
252+
253+
public void setSrcInstitutionalPartnerTypeDetails(String srcInstitutionalPartnerTypeDetails) {
254+
this.srcInstitutionalPartnerTypeDetails = srcInstitutionalPartnerTypeDetails;
255+
}
256+
237257
public String getSrcFirstName() {
238258
return srcFirstName;
239259
}

sormas-api/src/main/java/de/symeda/sormas/api/event/EventExportDto.java

Lines changed: 18 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@ public class EventExportDto implements Serializable {
4646
private String houseNumber;
4747
private String additionalInformation;
4848
private EventSourceType srcType;
49+
private String srcInstitutionalPartnerType;
4950
private String srcFirstName;
5051
private String srcLastName;
5152
private String srcTelNo;
@@ -81,6 +82,8 @@ public EventExportDto(
8182
String houseNumber,
8283
String additionalInformation,
8384
EventSourceType srcType,
85+
InstitutionalPartnerType srcInstitutionalPartnerType,
86+
String srcInstitutionalPartnerTypeDetails,
8487
String srcFirstName,
8588
String srcLastName,
8689
String srcTelNo,
@@ -111,6 +114,8 @@ public EventExportDto(
111114
this.houseNumber = houseNumber;
112115
this.additionalInformation = additionalInformation;
113116
this.srcType = srcType;
117+
this.srcInstitutionalPartnerType =
118+
EventHelper.buildInstitutionalPartnerTypeString(srcInstitutionalPartnerType, srcInstitutionalPartnerTypeDetails);
114119
this.srcFirstName = srcFirstName;
115120
this.srcLastName = srcLastName;
116121
this.srcTelNo = srcTelNo;
@@ -278,6 +283,11 @@ public EventSourceType getSrcType() {
278283
}
279284

280285
@Order(19)
286+
public String getSrcInstitutionalPartnerType() {
287+
return srcInstitutionalPartnerType;
288+
}
289+
290+
@Order(20)
281291
public String getSrcFirstName() {
282292
return srcFirstName;
283293
}
@@ -286,7 +296,7 @@ public void setSrcFirstName(String srcFirstName) {
286296
this.srcFirstName = srcFirstName;
287297
}
288298

289-
@Order(20)
299+
@Order(21)
290300
public String getSrcLastName() {
291301
return srcLastName;
292302
}
@@ -295,7 +305,7 @@ public void setSrcLastName(String srcLastName) {
295305
this.srcLastName = srcLastName;
296306
}
297307

298-
@Order(21)
308+
@Order(22)
299309
public String getSrcTelNo() {
300310
return srcTelNo;
301311
}
@@ -304,27 +314,27 @@ public void setSrcTelNo(String srcTelNo) {
304314
this.srcTelNo = srcTelNo;
305315
}
306316

307-
@Order(22)
317+
@Order(23)
308318
public String getSrcEmail() {
309319
return srcEmail;
310320
}
311321

312-
@Order(23)
322+
@Order(24)
313323
public String getSrcMediaWebsite() {
314324
return srcMediaWebsite;
315325
}
316326

317-
@Order(24)
327+
@Order(25)
318328
public String getSrcMediaName() {
319329
return srcMediaName;
320330
}
321331

322-
@Order(25)
332+
@Order(26)
323333
public String getSrcMediaDetails() {
324334
return srcMediaDetails;
325335
}
326336

327-
@Order(26)
337+
@Order(27)
328338
public Date getReportDateTime() {
329339
return reportDateTime;
330340
}
@@ -333,7 +343,7 @@ public void setReportDateTime(Date reportDateTime) {
333343
this.reportDateTime = reportDateTime;
334344
}
335345

336-
@Order(27)
346+
@Order(28)
337347
public long getParticipantsCount() {
338348
return participantsCount;
339349
}
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
/*******************************************************************************
2+
* SORMAS® - Surveillance Outbreak Response Management & Analysis System
3+
* Copyright © 2016-2018 Helmholtz-Zentrum für Infektionsforschung GmbH (HZI)
4+
*
5+
* This program is free software: you can redistribute it and/or modify
6+
* it under the terms of the GNU General Public License as published by
7+
* the Free Software Foundation, either version 3 of the License, or
8+
* (at your option) any later version.
9+
*
10+
* This program is distributed in the hope that it will be useful,
11+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
12+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13+
* GNU General Public License for more details.
14+
*
15+
* You should have received a copy of the GNU General Public License
16+
* along with this program. If not, see <https://www.gnu.org/licenses/>.
17+
*******************************************************************************/
18+
package de.symeda.sormas.api.event;
19+
20+
import de.symeda.sormas.api.utils.DataHelper;
21+
22+
public final class EventHelper {
23+
24+
private EventHelper() {
25+
// Hide Utility Class Constructor
26+
}
27+
28+
public static String buildInstitutionalPartnerTypeString(
29+
InstitutionalPartnerType institutionalPartnerType,
30+
String institutionalPartnerTypeDetails) {
31+
32+
if (institutionalPartnerType == InstitutionalPartnerType.OTHER) {
33+
return DataHelper.toStringNullable(institutionalPartnerTypeDetails);
34+
}
35+
36+
return DataHelper.toStringNullable(institutionalPartnerType);
37+
}
38+
}

sormas-api/src/main/java/de/symeda/sormas/api/event/EventSourceType.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,8 @@ public enum EventSourceType {
2222
NOT_APPLICABLE,
2323
MEDIA_NEWS,
2424
HOTLINE_PERSON,
25-
MATHEMATICAL_MODEL;
25+
MATHEMATICAL_MODEL,
26+
INSTITUTIONAL_PARTNER;
2627

2728
public String toString() {
2829
return I18nProperties.getEnumCaption(this);
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
/*
2+
* SORMAS® - Surveillance Outbreak Response Management & Analysis System
3+
* Copyright © 2016-2020 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.event;
17+
18+
import de.symeda.sormas.api.i18n.I18nProperties;
19+
20+
public enum InstitutionalPartnerType {
21+
22+
HEALTH_INSURANCE,
23+
TERRITORIAL_COMMUNITIES,
24+
NATIONAL_EDUCATION,
25+
HEALTH_ESTABLISHMENTS,
26+
MEDICO_SOCIAL_ESTABLISHMENTS,
27+
OTHER;
28+
29+
public String toString() {
30+
return I18nProperties.getEnumCaption(this);
31+
}
32+
}

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
@@ -783,6 +783,8 @@ public interface Captions {
783783
String Event_reportingUser = "Event.reportingUser";
784784
String Event_srcEmail = "Event.srcEmail";
785785
String Event_srcFirstName = "Event.srcFirstName";
786+
String Event_srcInstitutionalPartnerType = "Event.srcInstitutionalPartnerType";
787+
String Event_srcInstitutionalPartnerTypeDetails = "Event.srcInstitutionalPartnerTypeDetails";
786788
String Event_srcLastName = "Event.srcLastName";
787789
String Event_srcMediaDetails = "Event.srcMediaDetails";
788790
String Event_srcMediaName = "Event.srcMediaName";

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -882,6 +882,8 @@ Event.reportDateTime=Date of report
882882
Event.reportingUser=Reporting user
883883
Event.srcType=Source type
884884
Event.srcEmail=Email
885+
Event.srcInstitutionalPartnerType=Source institutional partner
886+
Event.srcInstitutionalPartnerTypeDetails=Source institutional partner details
885887
Event.srcFirstName=Source first name
886888
Event.srcLastName=Source last name
887889
Event.srcTelNo=Source telephone no

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

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -452,6 +452,14 @@ EventSourceType.NOT_APPLICABLE = Not applicable
452452
EventSourceType.MEDIA_NEWS = Media/News
453453
EventSourceType.HOTLINE_PERSON = Hotline/Person
454454
EventSourceType.MATHEMATICAL_MODEL = Mathematical model
455+
EventSourceType.INSTITUTIONAL_PARTNER = Institutional partner
456+
457+
InstitutionalPartnerType.HEALTH_INSURANCE = Health insurance
458+
InstitutionalPartnerType.TERRITORIAL_COMMUNITIES = Territorial communities
459+
InstitutionalPartnerType.NATIONAL_EDUCATION = National education
460+
InstitutionalPartnerType.HEALTH_ESTABLISHMENTS = Health establishments
461+
InstitutionalPartnerType.MEDICO_SOCIAL_ESTABLISHMENTS = Medico-social establishments
462+
InstitutionalPartnerType.OTHER = Other
455463

456464
ExposureType.WORK=Work
457465
ExposureType.TRAVEL=Travel

sormas-app/app/src/main/java/de/symeda/sormas/app/backend/common/DatabaseHelper.java

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,6 @@
3838
import android.database.sqlite.SQLiteDatabase;
3939
import android.text.TextUtils;
4040
import android.util.Log;
41-
4241
import de.symeda.sormas.api.caze.Vaccination;
4342
import de.symeda.sormas.api.epidata.AnimalCondition;
4443
import de.symeda.sormas.api.exposure.AnimalContactType;
@@ -152,7 +151,7 @@ public class DatabaseHelper extends OrmLiteSqliteOpenHelper {
152151
public static final String DATABASE_NAME = "sormas.db";
153152
// any time you make changes to your database objects, you may have to increase the database version
154153

155-
public static final int DATABASE_VERSION = 252;
154+
public static final int DATABASE_VERSION = 253;
156155

157156
private static DatabaseHelper instance = null;
158157

@@ -1784,7 +1783,6 @@ public void onUpgrade(SQLiteDatabase db, ConnectionSource connectionSource, int
17841783

17851784
case 249:
17861785
currentVersion = 249;
1787-
17881786
getDao(Case.class).executeRaw("ALTER TABLE cases ADD COLUMN nosocomialOutbreak boolean DEFAULT false");
17891787
getDao(Case.class).executeRaw("ALTER TABLE cases ADD COLUMN infectionSetting varchar(255)");
17901788

@@ -1804,6 +1802,11 @@ public void onUpgrade(SQLiteDatabase db, ConnectionSource connectionSource, int
18041802
getDao(Contact.class).executeRaw("ALTER TABLE contacts ADD COLUMN prohibitionToWorkFrom timestamp;");
18051803
getDao(Contact.class).executeRaw("ALTER TABLE contacts ADD COLUMN prohibitionToWorkUntil timestamp;");
18061804

1805+
case 252:
1806+
currentVersion = 252;
1807+
getDao(Event.class).executeRaw("ALTER TABLE events ADD COLUMN srcInstitutionalPartnerType varchar(255)");
1808+
getDao(Event.class).executeRaw("ALTER TABLE events ADD COLUMN srcInstitutionalPartnerTypeDetails varchar(512)");
1809+
18071810
// ATTENTION: break should only be done after last version
18081811
break;
18091812
default:

sormas-app/app/src/main/java/de/symeda/sormas/app/backend/event/Event.java

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@
3434
import de.symeda.sormas.api.event.EventReferenceDto;
3535
import de.symeda.sormas.api.event.EventSourceType;
3636
import de.symeda.sormas.api.event.EventStatus;
37+
import de.symeda.sormas.api.event.InstitutionalPartnerType;
3738
import de.symeda.sormas.api.event.TypeOfPlace;
3839
import de.symeda.sormas.api.utils.YesNoUnknown;
3940
import de.symeda.sormas.app.backend.common.PseudonymizableAdo;
@@ -61,6 +62,8 @@ public class Event extends PseudonymizableAdo {
6162
public static final String REPORTING_USER = "reportingUser";
6263
public static final String EVENT_LOCATION = "eventLocation";
6364
public static final String TYPE_OF_PLACE = "typeOfPlace";
65+
public static final String SRC_INSTITUTIONAL_PARTNER_TYPE = "srcInstitutionalPartnerType";
66+
public static final String SRC_INSTITUTIONAL_PARTNER_TYPE_DETAILS = "srcInstitutionalPartnerTypeDetails";
6467
public static final String SRC_FIRST_NAME = "srcFirstName";
6568
public static final String SRC_LAST_NAME = "srcLastName";
6669
public static final String SRC_TEL_NO = "srcTelNo";
@@ -119,6 +122,12 @@ public class Event extends PseudonymizableAdo {
119122
@Enumerated(EnumType.STRING)
120123
private EventSourceType srcType;
121124

125+
@Enumerated(EnumType.STRING)
126+
private InstitutionalPartnerType srcInstitutionalPartnerType;
127+
128+
@Column(length = COLUMN_LENGTH_DEFAULT)
129+
private String srcInstitutionalPartnerTypeDetails;
130+
122131
@Column(length = COLUMN_LENGTH_DEFAULT)
123132
private String srcFirstName;
124133

@@ -279,6 +288,22 @@ public void setSrcType(EventSourceType srcType) {
279288
this.srcType = srcType;
280289
}
281290

291+
public InstitutionalPartnerType getSrcInstitutionalPartnerType() {
292+
return srcInstitutionalPartnerType;
293+
}
294+
295+
public void setSrcInstitutionalPartnerType(InstitutionalPartnerType srcInstitutionalPartnerType) {
296+
this.srcInstitutionalPartnerType = srcInstitutionalPartnerType;
297+
}
298+
299+
public String getSrcInstitutionalPartnerTypeDetails() {
300+
return srcInstitutionalPartnerTypeDetails;
301+
}
302+
303+
public void setSrcInstitutionalPartnerTypeDetails(String srcInstitutionalPartnerTypeDetails) {
304+
this.srcInstitutionalPartnerTypeDetails = srcInstitutionalPartnerTypeDetails;
305+
}
306+
282307
public String getSrcFirstName() {
283308
return srcFirstName;
284309
}

0 commit comments

Comments
 (0)