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

Commit a52efdc

Browse files
SORMAS-Foundation#2996: Display "External ID" field for switzerland
1 parent ae1d9a8 commit a52efdc

14 files changed

Lines changed: 90 additions & 39 deletions

File tree

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

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -55,12 +55,10 @@
5555
import de.symeda.sormas.api.utils.Required;
5656
import de.symeda.sormas.api.utils.SensitiveData;
5757
import de.symeda.sormas.api.utils.YesNoUnknown;
58-
5958
import de.symeda.sormas.api.utils.pseudonymization.PseudonymizableDto;
6059
import de.symeda.sormas.api.utils.pseudonymization.Pseudonymizer;
6160
import de.symeda.sormas.api.utils.pseudonymization.valuepseudonymizers.LatitudePseudonymizer;
6261
import de.symeda.sormas.api.utils.pseudonymization.valuepseudonymizers.LongitudePseudonymizer;
63-
import java.util.Date;
6462

6563
public class CaseDataDto extends PseudonymizableDto {
6664

@@ -362,7 +360,9 @@ public class CaseDataDto extends PseudonymizableDto {
362360
private String pointOfEntryDetails;
363361
@SensitiveData
364362
private String additionalDetails;
365-
@HideForCountriesExcept
363+
@HideForCountriesExcept(countries = {
364+
COUNTRY_CODE_GERMANY,
365+
COUNTRY_CODE_SWITZERLAND })
366366
private String externalID;
367367
private boolean sharedToCountry;
368368
private QuarantineType quarantine;

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

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -236,6 +236,7 @@ public class CaseExportDto implements Serializable {
236236
private String latestEventId;
237237
private String latestEventTitle;
238238
private EventStatus latestEventStatus;
239+
private String externalID;
239240

240241
//@formatter:off
241242
public CaseExportDto(long id, long personId, long personAddressId, long epiDataId, long symptomsId,
@@ -263,7 +264,7 @@ public CaseExportDto(long id, long personId, long personAddressId, long epiDataI
263264
//Date onsetDate,
264265
Vaccination vaccination, String vaccinationDoses, Date vaccinationDate,
265266
VaccinationInfoSource vaccinationInfoSource, YesNoUnknown postpartum, Trimester trimester,
266-
long eventCount) {
267+
long eventCount, String externalID) {
267268
//@formatter:on
268269

269270
this.id = id;
@@ -340,6 +341,7 @@ public CaseExportDto(long id, long personId, long personAddressId, long epiDataI
340341
this.followUpStatus = followUpStatus;
341342
this.followUpUntil = followUpUntil;
342343
this.eventCount = eventCount;
344+
this.externalID = externalID;
343345

344346
jurisdiction = new CaseJurisdictionDto(reportingUserUuid, regionUuid, districtUuid, communityUuid, healthFacilityUuid, pointOfEntryUuid);
345347
}
@@ -417,6 +419,16 @@ public String getEpidNumber() {
417419
}
418420

419421
@Order(4)
422+
@ExportTarget(caseExportTypes = {
423+
CaseExportType.CASE_SURVEILLANCE,
424+
CaseExportType.CASE_MANAGEMENT })
425+
@ExportProperty(CaseDataDto.EXTERNAL_ID)
426+
@ExportGroup(ExportGroupType.CORE)
427+
public String getExternalID() {
428+
return externalID;
429+
}
430+
431+
@Order(5)
420432
@ExportTarget(caseExportTypes = {
421433
CaseExportType.CASE_SURVEILLANCE,
422434
CaseExportType.CASE_MANAGEMENT })
@@ -1620,4 +1632,8 @@ public void setLatestEventTitle(String latestEventTitle) {
16201632
public void setLatestEventStatus(EventStatus latestEventStatus) {
16211633
this.latestEventStatus = latestEventStatus;
16221634
}
1635+
1636+
public void setExternalID(String externalID) {
1637+
this.externalID = externalID;
1638+
}
16231639
}

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

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,7 @@ public class ContactDto extends PseudonymizableDto {
111111
public static final String HEALTH_CONDITIONS = "healthConditions";
112112
public static final String END_OF_QUARANTINE_REASON = "endOfQuarantineReason";
113113
public static final String END_OF_QUARANTINE_REASON_DETAILS = "endOfQuarantineReasonDetails";
114-
public static final String RETURNING_TRAVELER = "returningTraveler";
114+
public static final String RETURNING_TRAVELER = "returningTraveler";
115115

116116
private CaseReferenceDto caze;
117117
private String caseIdExternalSystem;
@@ -164,6 +164,9 @@ public class ContactDto extends PseudonymizableDto {
164164
private ContactRelation relationToCase;
165165
@SensitiveData
166166
private String relationDescription;
167+
@HideForCountriesExcept(countries = {
168+
COUNTRY_CODE_GERMANY,
169+
COUNTRY_CODE_SWITZERLAND })
167170
private String externalID;
168171

169172
private boolean highPriority;
@@ -754,7 +757,7 @@ public HealthConditionsDto getHealthConditions() {
754757
public void setHealthConditions(HealthConditionsDto healthConditions) {
755758
this.healthConditions = healthConditions;
756759
}
757-
760+
758761
public SormasToSormasOriginInfoDto getSormasToSormasOriginInfo() {
759762
return sormasToSormasOriginInfo;
760763
}
@@ -787,11 +790,11 @@ public void setEndOfQuarantineReasonDetails(String endOfQuarantineReasonDetails)
787790
this.endOfQuarantineReasonDetails = endOfQuarantineReasonDetails;
788791
}
789792

790-
public YesNoUnknown getReturningTraveler() {
793+
public YesNoUnknown getReturningTraveler() {
791794
return returningTraveler;
792795
}
793796

794797
public void setReturningTraveler(YesNoUnknown returningTraveler) {
795798
this.returningTraveler = returningTraveler;
796-
}
799+
}
797800
}

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

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -139,6 +139,7 @@ public class ContactExportDto implements Serializable {
139139
private final Long eventCount;
140140
private String latestEventId;
141141
private String latestEventTitle;
142+
private String externalID;
142143

143144
//@formatter:off
144145
public ContactExportDto(long id, long personId, String uuid, String sourceCaseUuid, CaseClassification caseClassification, Disease disease, String diseaseDetails,
@@ -156,7 +157,7 @@ public ContactExportDto(long id, long personId, String uuid, String sourceCaseUu
156157
String phone, String phoneOwner, OccupationType occupationType, String occupationDetails,
157158
String region, String district, String community,
158159
long epiDataId, YesNoUnknown traveled, YesNoUnknown burialAttended, YesNoUnknown directContactConfirmedCase, YesNoUnknown directContactProbableCase,
159-
YesNoUnknown contactWithRodent, YesNoUnknown returningTraveler, long eventCount,
160+
YesNoUnknown contactWithRodent, YesNoUnknown returningTraveler, long eventCount, String externalID,
160161
String reportingUserUuid, String regionUuid, String districtUuid, String communityUuid,
161162
String caseReportingUserUuid, String caseRegionUui, String caseDistrictUud, String caseCommunityUuid, String caseHealthFacilityUuid, String casePointOfEntryUuid
162163
) {
@@ -222,6 +223,7 @@ public ContactExportDto(long id, long personId, String uuid, String sourceCaseUu
222223
this.contactWithRodent = contactWithRodent;
223224
this.returningTraveler = returningTraveler;
224225
this.eventCount = eventCount;
226+
this.externalID = externalID;
225227

226228
CaseJurisdictionDto caseJurisdiction = caseReportingUserUuid != null
227229
? null
@@ -261,26 +263,31 @@ public String getUuid() {
261263
}
262264

263265
@Order(1)
266+
public String getExternalID() {
267+
return externalID;
268+
}
269+
270+
@Order(2)
264271
public String getSourceCaseUuid() {
265272
return sourceCaseUuid;
266273
}
267274

268-
@Order(2)
275+
@Order(3)
269276
public CaseClassification getCaseClassification() {
270277
return caseClassification;
271278
}
272279

273-
@Order(3)
280+
@Order(4)
274281
public String getDisease() {
275282
return disease;
276283
}
277284

278-
@Order(4)
285+
@Order(5)
279286
public ContactClassification getContactClassification() {
280287
return contactClassification;
281288
}
282289

283-
@Order(5)
290+
@Order(6)
284291
public Date getLastContactDate() {
285292
return lastContactDate;
286293
}
@@ -325,7 +332,7 @@ public String getDistrict() {
325332
return district;
326333
}
327334

328-
@Order(17)
335+
@Order(18)
329336
public String getCommunity() {
330337
return community;
331338
}

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ public ContactIndexDetailedDto(String uuid, String personFirstName, String perso
5757
Date followUpUntil, SymptomJournalStatus symptomJournalStatus, String contactOfficerUuid, String reportingUserUuid, Date reportDateTime,
5858
CaseClassification caseClassification,
5959
String caseReportingUserUid, String caseRegionUuid, String caseDistrictUud, String caseCommunityUuid,
60-
String caseHealthFacilityUuid, String casePointOfEntryUuid, Date changeDate,
60+
String caseHealthFacilityUuid, String casePointOfEntryUuid, Date changeDate, String externalID,
6161
Sex sex, Integer approximateAge, ApproximateAgeType approximateAgeType,
6262
String districtName, String city, String street, String houseNumber, String postalCode, String phone,
6363
String reportingUserFirstName, String reportingUserLastName, int visitCount, long eventCount
@@ -68,7 +68,7 @@ public ContactIndexDetailedDto(String uuid, String personFirstName, String perso
6868
super(uuid, personFirstName, personLastName, cazeUuid, disease, diseaseDetails, caseFirstName, caseLastName, regionUuid, districtUuid, communityUuid,
6969
lastContactDate, contactCategory, contactProximity, contactClassification, contactStatus, followUpStatus, followUpUntil, symptomJournalStatus,
7070
contactOfficerUuid, reportingUserUuid, reportDateTime, caseClassification,
71-
caseReportingUserUid, caseRegionUuid, caseDistrictUud, caseCommunityUuid, caseHealthFacilityUuid, casePointOfEntryUuid, changeDate, visitCount);
71+
caseReportingUserUid, caseRegionUuid, caseDistrictUud, caseCommunityUuid, caseHealthFacilityUuid, casePointOfEntryUuid, changeDate, externalID, visitCount);
7272
//@formatter:on
7373

7474
this.sex = sex;

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

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@ public class ContactIndexDto extends PseudonymizableIndexDto implements Serializ
5050
public static final String CONTACT_OFFICER_UUID = "contactOfficerUuid";
5151
public static final String CONTACT_CATEGORY = "contactCategory";
5252
public static final String CASE_CLASSIFICATION = "caseClassification";
53+
public static final String EXTERNAL_ID = "externalID";
5354

5455
private String uuid;
5556
@PersonalData
@@ -71,6 +72,7 @@ public class ContactIndexDto extends PseudonymizableIndexDto implements Serializ
7172
private ContactCategory contactCategory;
7273
private CaseClassification caseClassification;
7374
private int visitCount;
75+
private String externalID;
7476

7577
private ContactJurisdictionDto jurisdiction;
7678
private CaseJurisdictionDto caseJurisdiction;
@@ -84,6 +86,7 @@ public ContactIndexDto(String uuid, String personFirstName, String personLastNam
8486
CaseClassification caseClassification,
8587
String caseReportingUserUid, String caseRegionUuid, String caseDistrictUud, String caseCommunityUuid, String caseHealthFacilityUuid, String casePointOfEntryUuid,
8688
Date changeDate, // XXX: unused, only here for TypedQuery mapping
89+
String externalID,
8790
int visitCount) {
8891
//@formatter:on
8992

@@ -116,6 +119,7 @@ public ContactIndexDto(String uuid, String personFirstName, String personLastNam
116119
this.reportDateTime = reportDateTime;
117120
this.caseClassification = caseClassification;
118121
this.visitCount = visitCount;
122+
this.externalID = externalID;
119123

120124
this.jurisdiction = new ContactJurisdictionDto(reportingUserUuid, regionUuid, districtUuid, communityUuid, caseJurisdiction);
121125
}
@@ -268,6 +272,14 @@ public void setVisitCount(int visitCount) {
268272
this.visitCount = visitCount;
269273
}
270274

275+
public String getExternalID() {
276+
return externalID;
277+
}
278+
279+
public void setExternalID(String externalID) {
280+
this.externalID = externalID;
281+
}
282+
271283
public ContactReferenceDto toReference() {
272284
return new ContactReferenceDto(uuid);
273285
}
313 Bytes
Binary file not shown.
21 Bytes
Binary file not shown.

sormas-backend/src/main/java/de/symeda/sormas/backend/caze/CaseFacadeEjb.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -574,7 +574,8 @@ public List<CaseExportDto> getExportList(
574574
joins.getEpiData().get(EpiData.RODENTS), caseRoot.get(Case.VACCINATION), caseRoot.get(Case.VACCINATION_DOSES),
575575
caseRoot.get(Case.VACCINATION_DATE), caseRoot.get(Case.VACCINATION_INFO_SOURCE),
576576
caseRoot.get(Case.POSTPARTUM), caseRoot.get(Case.TRIMESTER),
577-
eventCountSq
577+
eventCountSq,
578+
caseRoot.get(Case.EXTERNAL_ID)
578579
);
579580
//@formatter:on
580581

sormas-backend/src/main/java/de/symeda/sormas/backend/contact/ContactFacadeEjb.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -495,7 +495,8 @@ public List<ContactExportDto> getExportList(ContactCriteria contactCriteria, int
495495
joins.getEpiData().get(EpiData.DIRECT_CONTACT_PROBABLE_CASE),
496496
joins.getEpiData().get(EpiData.RODENTS),
497497
contact.get(Contact.RETURNING_TRAVELER),
498-
eventCountSq),
498+
eventCountSq,
499+
contact.get(Contact.EXTERNAL_ID)),
499500
listCriteriaBuilder.getJurisdictionSelections(joins)).collect(Collectors.toList()));
500501

501502
cq.distinct(true);

0 commit comments

Comments
 (0)