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

Commit f0faa3f

Browse files
3410 survnet reporting district field (SORMAS-Foundation#3918)
SORMAS-Foundation#3410 add Reporting district field
1 parent 6dae2d9 commit f0faa3f

30 files changed

Lines changed: 233 additions & 26 deletions

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

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -172,6 +172,8 @@ public class CaseDataDto extends PseudonymizableDto {
172172
public static final String PROHIBITION_TO_WORK_FROM = "prohibitionToWorkFrom";
173173
public static final String PROHIBITION_TO_WORK_UNTIL = "prohibitionToWorkUntil";
174174

175+
public static final String REPORTING_DISTRICT = "reportingDistrict";
176+
175177
// Fields are declared in the order they should appear in the import template
176178

177179
@Outbreaks
@@ -421,6 +423,7 @@ public class CaseDataDto extends PseudonymizableDto {
421423
COUNTRY_CODE_GERMANY,
422424
COUNTRY_CODE_SWITZERLAND })
423425
private Date quarantineOfficialOrderSentDate;
426+
@HideForCountriesExcept
424427
private ReportingType reportingType;
425428
private YesNoUnknown postpartum;
426429
private Trimester trimester;
@@ -462,6 +465,9 @@ public class CaseDataDto extends PseudonymizableDto {
462465
@HideForCountriesExcept
463466
private Date prohibitionToWorkUntil;
464467

468+
@HideForCountriesExcept
469+
private DistrictReferenceDto reportingDistrict;
470+
465471
public static CaseDataDto build(PersonReferenceDto person, Disease disease) {
466472
return build(person, disease, null);
467473
}
@@ -1360,6 +1366,14 @@ public void setProhibitionToWorkUntil(Date prohibitionToWorkUntil) {
13601366
this.prohibitionToWorkUntil = prohibitionToWorkUntil;
13611367
}
13621368

1369+
public DistrictReferenceDto getReportingDistrict() {
1370+
return reportingDistrict;
1371+
}
1372+
1373+
public void setReportingDistrict(DistrictReferenceDto reportingDistrict) {
1374+
this.reportingDistrict = reportingDistrict;
1375+
}
1376+
13631377
public boolean isOwnershipHandedOver() {
13641378
return ownershipHandedOver;
13651379
}

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

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -256,6 +256,8 @@ public class CaseExportDto implements Serializable {
256256
private String birthCountry;
257257
private String citizenship;
258258

259+
private String reportingDistrict;
260+
259261
//@formatter:off
260262
public CaseExportDto(long id, long personId, long personAddressId, long epiDataId, long symptomsId,
261263
long hospitalizationId, long districtId, long healthConditionsId, String uuid, String epidNumber,
@@ -283,7 +285,8 @@ public CaseExportDto(long id, long personId, long personAddressId, long epiDataI
283285
Vaccination vaccination, String vaccinationDoses, Date vaccinationDate,
284286
VaccinationInfoSource vaccinationInfoSource, YesNoUnknown postpartum, Trimester trimester,
285287
long eventCount, String externalID,
286-
String birthName, String birthCountryIsoCode, String birthCountryName, String citizenshipIsoCode, String citizenshipCountryName) {
288+
String birthName, String birthCountryIsoCode, String birthCountryName, String citizenshipIsoCode, String citizenshipCountryName,
289+
String reportingDistrict) {
287290
//@formatter:on
288291

289292
this.id = id;
@@ -366,6 +369,7 @@ public CaseExportDto(long id, long personId, long personAddressId, long epiDataI
366369
this.birthName = birthName;
367370
this.birthCountry = I18nProperties.getCountryName(birthCountryIsoCode, birthCountryName);
368371
this.citizenship = I18nProperties.getCountryName(citizenshipIsoCode, citizenshipCountryName);
372+
this.reportingDistrict = reportingDistrict;
369373

370374
jurisdiction = new CaseJurisdictionDto(reportingUserUuid, regionUuid, districtUuid, communityUuid, healthFacilityUuid, pointOfEntryUuid);
371375
}
@@ -1448,6 +1452,17 @@ public String getCitizenship() {
14481452
return citizenship;
14491453
}
14501454

1455+
@Order(153)
1456+
@ExportTarget(caseExportTypes = {
1457+
CaseExportType.CASE_SURVEILLANCE,
1458+
CaseExportType.CASE_MANAGEMENT })
1459+
@ExportProperty(CaseDataDto.REPORTING_DISTRICT)
1460+
@ExportGroup(ExportGroupType.ADDITIONAL)
1461+
@HideForCountriesExcept
1462+
public String getReportingDistrict() {
1463+
return reportingDistrict;
1464+
}
1465+
14511466
public void setCountry(String country) {
14521467
this.country = country;
14531468
}

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

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -120,6 +120,8 @@ public class ContactDto extends PseudonymizableDto {
120120
public static final String PROHIBITION_TO_WORK_FROM = "prohibitionToWorkFrom";
121121
public static final String PROHIBITION_TO_WORK_UNTIL = "prohibitionToWorkUntil";
122122

123+
public static final String REPORTING_DISTRICT = "reportingDistrict";
124+
123125
private CaseReferenceDto caze;
124126
private String caseIdExternalSystem;
125127
@SensitiveData
@@ -263,6 +265,9 @@ public class ContactDto extends PseudonymizableDto {
263265
@HideForCountriesExcept
264266
private Date prohibitionToWorkUntil;
265267

268+
@HideForCountriesExcept
269+
private DistrictReferenceDto reportingDistrict;
270+
266271
public static ContactDto build() {
267272
final ContactDto contact = new ContactDto();
268273
contact.setUuid(DataHelper.createUuid());
@@ -857,6 +862,14 @@ public void setProhibitionToWorkUntil(Date prohibitionToWorkUntil) {
857862
this.prohibitionToWorkUntil = prohibitionToWorkUntil;
858863
}
859864

865+
public DistrictReferenceDto getReportingDistrict() {
866+
return reportingDistrict;
867+
}
868+
869+
public void setReportingDistrict(DistrictReferenceDto reportingDistrict) {
870+
this.reportingDistrict = reportingDistrict;
871+
}
872+
860873
public YesNoUnknown getReturningTraveler() {
861874
return returningTraveler;
862875
}

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

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -154,6 +154,8 @@ public class ContactExportDto implements Serializable {
154154
private String birthCountry;
155155
private String citizenship;
156156

157+
private String reportingDistrict;
158+
157159
//@formatter:off
158160
public ContactExportDto(long id, long personId, String uuid, String sourceCaseUuid, CaseClassification caseClassification, Disease disease, String diseaseDetails,
159161
ContactClassification contactClassification, Date lastContactDate, String firstName, String lastName,
@@ -172,6 +174,7 @@ public ContactExportDto(long id, long personId, String uuid, String sourceCaseUu
172174
String region, String district, String community,
173175
long epiDataId, YesNoUnknown contactWithSourceCaseKnown, YesNoUnknown returningTraveler, String externalID,
174176
String birthName, String birthCountryIsoCode, String birthCountryName, String citizenshipIsoCode, String citizenshipCountryName,
177+
String reportingDistrict,
175178
String reportingUserUuid, String regionUuid, String districtUuid, String communityUuid,
176179
String caseReportingUserUuid, String caseRegionUuid, String caseDistrictUuid, String caseCommunityUuid, String caseHealthFacilityUuid, String casePointOfEntryUuid
177180
) {
@@ -239,6 +242,7 @@ public ContactExportDto(long id, long personId, String uuid, String sourceCaseUu
239242
this.birthName = birthName;
240243
this.birthCountry = I18nProperties.getCountryName(birthCountryIsoCode, birthCountryName);
241244
this.citizenship = I18nProperties.getCountryName(citizenshipIsoCode, citizenshipCountryName);
245+
this.reportingDistrict = reportingDistrict;
242246

243247
CaseJurisdictionDto caseJurisdiction = caseReportingUserUuid != null
244248
? null
@@ -662,6 +666,12 @@ public String getCitizenship() {
662666
return citizenship;
663667
}
664668

669+
@Order(83)
670+
@HideForCountriesExcept
671+
public String getReportingDistrict() {
672+
return reportingDistrict;
673+
}
674+
665675
public void setEventCount(Long eventCount) {
666676
this.eventCount = eventCount;
667677
}

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
@@ -281,6 +281,7 @@ public interface Captions {
281281
String CaseData_region = "CaseData.region";
282282
String CaseData_regionLevelDate = "CaseData.regionLevelDate";
283283
String CaseData_reportDate = "CaseData.reportDate";
284+
String CaseData_reportingDistrict = "CaseData.reportingDistrict";
284285
String CaseData_reportingType = "CaseData.reportingType";
285286
String CaseData_reportingUser = "CaseData.reportingUser";
286287
String CaseData_reportLat = "CaseData.reportLat";
@@ -507,6 +508,7 @@ public interface Captions {
507508
String Contact_relationDescription = "Contact.relationDescription";
508509
String Contact_relationToCase = "Contact.relationToCase";
509510
String Contact_reportDateTime = "Contact.reportDateTime";
511+
String Contact_reportingDistrict = "Contact.reportingDistrict";
510512
String Contact_reportingUser = "Contact.reportingUser";
511513
String Contact_reportLat = "Contact.reportLat";
512514
String Contact_reportLatLonAccuracy = "Contact.reportLatLonAccuracy";

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -404,7 +404,7 @@ CaseData.infectionSetting=Infection setting
404404
CaseData.prohibitionToWork=Prohibition to work
405405
CaseData.prohibitionToWorkFrom=Prohibition to work from
406406
CaseData.prohibitionToWorkUntil=Prohibition to work until
407-
407+
CaseData.reportingDistrict=Reporting district
408408
# CaseExport
409409
CaseExport.address=Address
410410
CaseExport.addressRegion=Address Region
@@ -639,6 +639,7 @@ Contact.endOfQuarantineReasonDetails=Other reason
639639
Contact.prohibitionToWork=Prohibition to work
640640
Contact.prohibitionToWorkFrom=Prohibition to work from
641641
Contact.prohibitionToWorkUntil=Prohibition to work until
642+
Contact.reportingDistrict=Reporting district
642643

643644
# ContactExport
644645
ContactExport.address=Address

sormas-api/src/main/resources/captions_de-DE.properties

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -404,6 +404,7 @@ CaseData.infectionSetting=Infektionsumfeld
404404
CaseData.prohibitionToWork=Tätigkeitsverbot
405405
CaseData.prohibitionToWorkFrom=Beginn des Tätigkeitsverbots
406406
CaseData.prohibitionToWorkUntil=Ende des Tätigkeitsverbots
407+
CaseData.reportingDistrict=Meldelandkreis
407408

408409
# CaseExport
409410
CaseExport.address=Adresse
@@ -639,6 +640,7 @@ Contact.endOfQuarantineReasonDetails=Anderer Grund
639640
Contact.prohibitionToWork=Tätigkeitsverbot
640641
Contact.prohibitionToWorkFrom=Beginn des Tätigkeitsverbots
641642
Contact.prohibitionToWorkUntil=Ende des Tätigkeitsverbots
643+
Contact.reportingDistrict=Meldelandkreis
642644

643645
# ContactExport
644646
ContactExport.address=Adresse

sormas-app/app/src/main/java/de/symeda/sormas/app/backend/caze/Case.java

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,6 @@
5050
import de.symeda.sormas.api.contact.QuarantineType;
5151
import de.symeda.sormas.api.facility.FacilityType;
5252
import de.symeda.sormas.api.utils.DataHelper;
53-
import de.symeda.sormas.api.utils.HideForCountriesExcept;
5453
import de.symeda.sormas.api.utils.YesNoUnknown;
5554
import de.symeda.sormas.app.backend.caze.maternalhistory.MaternalHistory;
5655
import de.symeda.sormas.app.backend.caze.porthealthinfo.PortHealthInfo;
@@ -346,6 +345,8 @@ public class Case extends PseudonymizableAdo {
346345
@DatabaseField
347346
private Date prohibitionToWorkUntil;
348347

348+
@DatabaseField(foreign = true, foreignAutoRefresh = true)
349+
private District reportingDistrict;
349350

350351
@DatabaseField(foreign = true, foreignAutoRefresh = true)
351352
private SormasToSormasOriginInfo sormasToSormasOriginInfo;
@@ -1156,6 +1157,14 @@ public void setProhibitionToWorkUntil(Date prohibitionToWorkUntil) {
11561157
this.prohibitionToWorkUntil = prohibitionToWorkUntil;
11571158
}
11581159

1160+
public District getReportingDistrict() {
1161+
return reportingDistrict;
1162+
}
1163+
1164+
public void setReportingDistrict(District reportingDistrict) {
1165+
this.reportingDistrict = reportingDistrict;
1166+
}
1167+
11591168
public SormasToSormasOriginInfo getSormasToSormasOriginInfo() {
11601169
return sormasToSormasOriginInfo;
11611170
}

sormas-app/app/src/main/java/de/symeda/sormas/app/backend/caze/CaseDtoHelper.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -203,6 +203,8 @@ public void fillInnerFromDto(Case target, CaseDataDto source) {
203203
target.setProhibitionToWorkFrom(source.getProhibitionToWorkFrom());
204204
target.setProhibitionToWorkUntil(source.getProhibitionToWorkUntil());
205205

206+
target.setReportingDistrict(DatabaseHelper.getDistrictDao().getByReferenceDto(source.getReportingDistrict()));
207+
206208
target.setSormasToSormasOriginInfo(
207209
sormasToSormasOriginInfoDtoHelper.fillOrCreateFromDto(target.getSormasToSormasOriginInfo(), source.getSormasToSormasOriginInfo()));
208210
target.setOwnershipHandedOver(source.isOwnershipHandedOver());
@@ -412,6 +414,13 @@ public void fillInnerFromAdo(CaseDataDto target, Case source) {
412414
target.setProhibitionToWorkFrom(source.getProhibitionToWorkFrom());
413415
target.setProhibitionToWorkUntil(source.getProhibitionToWorkUntil());
414416

417+
if (source.getReportingDistrict() != null) {
418+
District district = DatabaseHelper.getDistrictDao().queryForId(source.getReportingDistrict().getId());
419+
target.setReportingDistrict(DistrictDtoHelper.toReferenceDto(district));
420+
} else {
421+
target.setReportingDistrict(null);
422+
}
423+
415424
if (source.getSormasToSormasOriginInfo() != null) {
416425
target.setSormasToSormasOriginInfo(sormasToSormasOriginInfoDtoHelper.adoToDto(source.getSormasToSormasOriginInfo()));
417426
}

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

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -151,7 +151,7 @@ public class DatabaseHelper extends OrmLiteSqliteOpenHelper {
151151
public static final String DATABASE_NAME = "sormas.db";
152152
// any time you make changes to your database objects, you may have to increase the database version
153153

154-
public static final int DATABASE_VERSION = 257;
154+
public static final int DATABASE_VERSION = 258;
155155

156156
private static DatabaseHelper instance = null;
157157

@@ -1828,6 +1828,13 @@ public void onUpgrade(SQLiteDatabase db, ConnectionSource connectionSource, int
18281828
getDao(Event.class).executeRaw("ALTER TABLE events ADD COLUMN meansOfTransport varchar(255);");
18291829
getDao(Event.class).executeRaw("ALTER TABLE events ADD COLUMN meansOfTransportDetails text;");
18301830

1831+
break;
1832+
1833+
case 257:
1834+
currentVersion = 257;
1835+
getDao(Case.class).executeRaw("ALTER TABLE cases ADD COLUMN reportingDistrict_id REFERENCES district (id);");
1836+
getDao(Contact.class).executeRaw("ALTER TABLE contacts ADD COLUMN reportingDistrict_id REFERENCES district (id);");
1837+
18311838
// ATTENTION: break should only be done after last version
18321839
break;
18331840

0 commit comments

Comments
 (0)