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

Commit 9010260

Browse files
4137 covid vaccine (SORMAS-Foundation#4270)
* SORMAS-Foundation#4137 enabled and extended covid vaccination info on cases (BE + WEB) * SORMAS-Foundation#4137 extend vaccination info in the android app * SORMAS-Foundation#4137 - Added lazy loading for sample properties Necessary because too many columns were loaded when trying to fetch all pathogen tests for cases: Caused by: org.postgresql.util.PSQLException: FEHLER: target lists can have at most 1664 entries * SORMAS-Foundation#4137 fixed labels and added the new field to detailed export * SORMAS-Foundation#4137 fixed vaccine name/manufacturer logic * SORMAS-Foundation#4137 WIP new vaccination info entity added to contacts end event participants * SORMAS-Foundation#4137 generate vaccination info for existing contacts and event participants + handle missing vaccination info coming from mobile app * SORMAS-Foundation#4137 disabled vaccination onf for contacts and event participant in the mobile app * SORMAS-Foundation#4137 added vaccination info history table + fixed tests * SORMAS-Foundation#4137 fix DateHelper test Co-authored-by: lgal <Valamim1> Co-authored-by: Maté Strysewske <[email protected]>
1 parent 8dc3f0b commit 9010260

File tree

47 files changed

+2237
-50
lines changed

Some content is hidden

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

47 files changed

+2237
-50
lines changed

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

+2
Original file line numberDiff line numberDiff line change
@@ -294,9 +294,11 @@ public CaseExportDto(long id, long personId, long personAddressId, long epiDataI
294294
String phone, String phoneOwner, String emailAddress, EducationType educationType, String educationDetails,
295295
OccupationType occupationType, String occupationDetails, ArmedForcesRelationType ArmedForcesRelationType, YesNoUnknown contactWithSourceCaseKnown,
296296
//Date onsetDate,
297+
// vaccination info
297298
Vaccination vaccination, String vaccinationDoses, VaccinationInfoSource vaccinationInfoSource, Date firstVaccinationDate, Date lastVaccinationDate,
298299
Vaccine vaccineName, String otherVaccineName, VaccineManufacturer vaccineManufacturer, String otherVaccineManufacturer,
299300
String vaccineInn, String vaccineBatchNumber, String vaccineUniiCode, String vaccineAtcCode,
301+
300302
YesNoUnknown postpartum, Trimester trimester,
301303
long eventCount, String externalID, String externalToken,
302304
String birthName, String birthCountryIsoCode, String birthCountryName, String citizenshipIsoCode, String citizenshipCountryName,

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

+14
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@
4444
import de.symeda.sormas.api.utils.pseudonymization.Pseudonymizer;
4545
import de.symeda.sormas.api.utils.pseudonymization.valuepseudonymizers.LatitudePseudonymizer;
4646
import de.symeda.sormas.api.utils.pseudonymization.valuepseudonymizers.LongitudePseudonymizer;
47+
import de.symeda.sormas.api.vaccinationinfo.VaccinationInfoDto;
4748

4849
public class ContactDto extends PseudonymizableDto {
4950

@@ -123,6 +124,8 @@ public class ContactDto extends PseudonymizableDto {
123124

124125
public static final String REPORTING_DISTRICT = "reportingDistrict";
125126

127+
public static final String VACCINATION_INFO = "vaccinationInfo";
128+
126129
private CaseReferenceDto caze;
127130
private String caseIdExternalSystem;
128131
@SensitiveData
@@ -273,6 +276,8 @@ public class ContactDto extends PseudonymizableDto {
273276
@HideForCountriesExcept
274277
private DistrictReferenceDto reportingDistrict;
275278

279+
private VaccinationInfoDto vaccinationInfo;
280+
276281
public static ContactDto build() {
277282
final ContactDto contact = new ContactDto();
278283
contact.setUuid(DataHelper.createUuid());
@@ -282,6 +287,7 @@ public static ContactDto build() {
282287
contact.setContactStatus(ContactStatus.ACTIVE);
283288
contact.setEpiData(EpiDataDto.build());
284289
contact.setHealthConditions(HealthConditionsDto.build());
290+
contact.setVaccinationInfo(VaccinationInfoDto.build());
285291

286292
return contact;
287293
}
@@ -888,4 +894,12 @@ public YesNoUnknown getReturningTraveler() {
888894
public void setReturningTraveler(YesNoUnknown returningTraveler) {
889895
this.returningTraveler = returningTraveler;
890896
}
897+
898+
public VaccinationInfoDto getVaccinationInfo() {
899+
return vaccinationInfo;
900+
}
901+
902+
public void setVaccinationInfo(VaccinationInfoDto vaccinationInfo) {
903+
this.vaccinationInfo = vaccinationInfo;
904+
}
891905
}

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

+141-10
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,10 @@
2626
import de.symeda.sormas.api.caze.CaseClassification;
2727
import de.symeda.sormas.api.caze.CaseDataDto;
2828
import de.symeda.sormas.api.caze.CaseJurisdictionDto;
29+
import de.symeda.sormas.api.caze.Vaccination;
30+
import de.symeda.sormas.api.caze.VaccinationInfoSource;
31+
import de.symeda.sormas.api.caze.Vaccine;
32+
import de.symeda.sormas.api.caze.VaccineManufacturer;
2933
import de.symeda.sormas.api.epidata.EpiDataDto;
3034
import de.symeda.sormas.api.facility.FacilityHelper;
3135
import de.symeda.sormas.api.i18n.I18nProperties;
@@ -50,6 +54,7 @@
5054
import de.symeda.sormas.api.utils.YesNoUnknown;
5155
import de.symeda.sormas.api.utils.pseudonymization.Pseudonymizer;
5256
import de.symeda.sormas.api.utils.pseudonymization.valuepseudonymizers.PostalCodePseudonymizer;
57+
import de.symeda.sormas.api.vaccinationinfo.VaccinationInfoDto;
5358

5459
public class ContactExportDto implements Serializable {
5560

@@ -166,7 +171,19 @@ public class ContactExportDto implements Serializable {
166171
private Date quarantineOfficialOrderSentDate;
167172
private YesNoUnknown returningTraveler;
168173

169-
private ContactJurisdictionDto jurisdiction;
174+
private Vaccination vaccination;
175+
private String vaccinationDoses;
176+
private VaccinationInfoSource vaccinationInfoSource;
177+
private Date firstVaccinationDate;
178+
private Date lastVaccinationDate;
179+
private Vaccine vaccineName;
180+
private String otherVaccineName;
181+
private VaccineManufacturer vaccineManufacturer;
182+
private String otherVaccineManufacturer;
183+
private String vaccineInn;
184+
private String vaccineBatchNumber;
185+
private String vaccineUniiCode;
186+
private String vaccineAtcCode;
170187

171188
private Long eventCount;
172189
private String latestEventId;
@@ -182,6 +199,8 @@ public class ContactExportDto implements Serializable {
182199

183200
private String reportingDistrict;
184201

202+
private ContactJurisdictionDto jurisdiction;
203+
185204
//@formatter:off
186205
public ContactExportDto(long id, long personId, String uuid, String sourceCaseUuid, CaseClassification caseClassification, Disease disease, String diseaseDetails,
187206
ContactClassification contactClassification, Boolean multiDayContact, Date firstContactDate, Date lastContactDate,
@@ -199,7 +218,13 @@ public ContactExportDto(long id, long personId, String uuid, String sourceCaseUu
199218
String facility, String facilityUuid, String facilityDetails,
200219
String phone, String phoneOwner, String emailAddress, OccupationType occupationType, String occupationDetails, ArmedForcesRelationType armedForcesRelationType,
201220
String region, String district, String community,
202-
long epiDataId, YesNoUnknown contactWithSourceCaseKnown, YesNoUnknown returningTraveler, String externalID, String externalToken,
221+
long epiDataId, YesNoUnknown contactWithSourceCaseKnown, YesNoUnknown returningTraveler,
222+
// vaccination info
223+
Vaccination vaccination, String vaccinationDoses, VaccinationInfoSource vaccinationInfoSource, Date firstVaccinationDate, Date lastVaccinationDate,
224+
Vaccine vaccineName, String otherVaccineName, VaccineManufacturer vaccineManufacturer, String otherVaccineManufacturer,
225+
String vaccineInn, String vaccineBatchNumber, String vaccineUniiCode, String vaccineAtcCode,
226+
227+
String externalID, String externalToken,
203228
String birthName, String birthCountryIsoCode, String birthCountryName, String citizenshipIsoCode, String citizenshipCountryName,
204229
String reportingDistrict,
205230
String reportingUserUuid, String regionUuid, String districtUuid, String communityUuid,
@@ -267,6 +292,21 @@ public ContactExportDto(long id, long personId, String uuid, String sourceCaseUu
267292
this.epiDataId = epiDataId;
268293
this.contactWithSourceCaseKnown = contactWithSourceCaseKnown;
269294
this.returningTraveler = returningTraveler;
295+
296+
this.vaccination = vaccination;
297+
this.vaccinationDoses = vaccinationDoses;
298+
this.vaccinationInfoSource = vaccinationInfoSource;
299+
this.firstVaccinationDate = firstVaccinationDate;
300+
this.lastVaccinationDate = lastVaccinationDate;
301+
this.vaccineName = vaccineName;
302+
this.otherVaccineName = otherVaccineName;
303+
this.vaccineManufacturer = vaccineManufacturer;
304+
this.otherVaccineManufacturer = otherVaccineManufacturer;
305+
this.vaccineInn = vaccineInn;
306+
this.vaccineBatchNumber = vaccineBatchNumber;
307+
this.vaccineUniiCode = vaccineUniiCode;
308+
this.vaccineAtcCode = vaccineAtcCode;
309+
270310
this.externalID = externalID;
271311
this.externalToken = externalToken;
272312
this.birthName = birthName;
@@ -793,7 +833,98 @@ public void setReturningTraveler(YesNoUnknown returningTraveler) {
793833
this.returningTraveler = returningTraveler;
794834
}
795835

796-
@Order(71)
836+
@Order(80)
837+
@ExportProperty(VaccinationInfoDto.VACCINATION)
838+
@ExportGroup(ExportGroupType.VACCINATION)
839+
public Vaccination getVaccination() {
840+
return vaccination;
841+
}
842+
843+
@Order(81)
844+
@ExportProperty(VaccinationInfoDto.VACCINATION_DOSES)
845+
@ExportGroup(ExportGroupType.VACCINATION)
846+
public String getVaccinationDoses() {
847+
return vaccinationDoses;
848+
}
849+
850+
@Order(82)
851+
@ExportProperty(VaccinationInfoDto.VACCINATION_INFO_SOURCE)
852+
@ExportGroup(ExportGroupType.VACCINATION)
853+
public VaccinationInfoSource getVaccinationInfoSource() {
854+
return vaccinationInfoSource;
855+
}
856+
857+
@Order(83)
858+
@ExportProperty(VaccinationInfoDto.FIRST_VACCINATION_DATE)
859+
@ExportGroup(ExportGroupType.VACCINATION)
860+
public Date getFirstVaccinationDate() {
861+
return firstVaccinationDate;
862+
}
863+
864+
@Order(84)
865+
@ExportProperty(VaccinationInfoDto.LAST_VACCINATION_DATE)
866+
@ExportGroup(ExportGroupType.VACCINATION)
867+
public Date getLastVaccinationDate() {
868+
return lastVaccinationDate;
869+
}
870+
871+
@Order(85)
872+
@ExportProperty(VaccinationInfoDto.VACCINE_NAME)
873+
@ExportGroup(ExportGroupType.VACCINATION)
874+
public Vaccine getVaccineName() {
875+
return vaccineName;
876+
}
877+
878+
@Order(86)
879+
@ExportProperty(VaccinationInfoDto.OTHER_VACCINE_NAME)
880+
@ExportGroup(ExportGroupType.VACCINATION)
881+
public String getOtherVaccineName() {
882+
return otherVaccineName;
883+
}
884+
885+
@Order(87)
886+
@ExportProperty(VaccinationInfoDto.VACCINE_MANUFACTURER)
887+
@ExportGroup(ExportGroupType.VACCINATION)
888+
public VaccineManufacturer getVaccineManufacturer() {
889+
return vaccineManufacturer;
890+
}
891+
892+
@Order(88)
893+
@ExportProperty(VaccinationInfoDto.OTHER_VACCINE_MANUFACTURER)
894+
@ExportGroup(ExportGroupType.VACCINATION)
895+
public String getOtherVaccineManufacturer() {
896+
return otherVaccineManufacturer;
897+
}
898+
899+
@Order(89)
900+
@ExportProperty(VaccinationInfoDto.VACCINE_INN)
901+
@ExportGroup(ExportGroupType.VACCINATION)
902+
public String getVaccineInn() {
903+
return vaccineInn;
904+
}
905+
906+
@Order(90)
907+
@ExportProperty(VaccinationInfoDto.VACCINE_BATCH_NUMBER)
908+
@ExportGroup(ExportGroupType.VACCINATION)
909+
public String getVaccineBatchNumber() {
910+
return vaccineBatchNumber;
911+
}
912+
913+
@Order(91)
914+
@ExportProperty(VaccinationInfoDto.VACCINE_UNII_CODE)
915+
@ExportGroup(ExportGroupType.VACCINATION)
916+
public String getVaccineUniiCode() {
917+
return vaccineUniiCode;
918+
}
919+
920+
@Order(92)
921+
@ExportProperty(VaccinationInfoDto.VACCINE_ATC_CODE)
922+
@ExportGroup(ExportGroupType.VACCINATION)
923+
public String getVaccineAtcCode() {
924+
return vaccineAtcCode;
925+
}
926+
927+
@Order(100)
797928
@ExportProperty(LATEST_EVENT_ID)
798929
@ExportGroup(ExportGroupType.EVENT)
799930
public String getLatestEventId() {
@@ -804,7 +935,7 @@ public void setLatestEventId(String latestEventId) {
804935
this.latestEventId = latestEventId;
805936
}
806937

807-
@Order(72)
938+
@Order(101)
808939
@ExportProperty(LATEST_EVENT_TITLE)
809940
@ExportGroup(ExportGroupType.EVENT)
810941
public String getLatestEventTitle() {
@@ -815,46 +946,46 @@ public void setLatestEventTitle(String latestEventTitle) {
815946
this.latestEventTitle = latestEventTitle;
816947
}
817948

818-
@Order(73)
949+
@Order(102)
819950
@ExportProperty(EVENT_COUNT)
820951
@ExportGroup(ExportGroupType.EVENT)
821952
public Long getEventCount() {
822953
return eventCount;
823954
}
824955

825-
@Order(80)
956+
@Order(103)
826957
@ExportProperty(PersonDto.BIRTH_NAME)
827958
@ExportGroup(ExportGroupType.SENSITIVE)
828959
@HideForCountriesExcept
829960
public String getBirthName() {
830961
return birthName;
831962
}
832963

833-
@Order(81)
964+
@Order(104)
834965
@ExportProperty(PersonDto.BIRTH_COUNTRY)
835966
@ExportGroup(ExportGroupType.SENSITIVE)
836967
@HideForCountriesExcept
837968
public String getBirthCountry() {
838969
return birthCountry;
839970
}
840971

841-
@Order(82)
972+
@Order(105)
842973
@ExportProperty(PersonDto.CITIZENSHIP)
843974
@ExportGroup(ExportGroupType.SENSITIVE)
844975
@HideForCountriesExcept
845976
public String getCitizenship() {
846977
return citizenship;
847978
}
848979

849-
@Order(83)
980+
@Order(106)
850981
@ExportProperty(ContactDto.REPORTING_DISTRICT)
851982
@ExportGroup(ExportGroupType.ADDITIONAL)
852983
@HideForCountriesExcept
853984
public String getReportingDistrict() {
854985
return reportingDistrict;
855986
}
856987

857-
@Order(84)
988+
@Order(107)
858989
@ExportProperty(ContactDto.EXTERNAL_TOKEN)
859990
@ExportGroup(ExportGroupType.CORE)
860991
public String getExternalToken() {

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

+12
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
import de.symeda.sormas.api.utils.Required;
2828
import de.symeda.sormas.api.utils.SensitiveData;
2929
import de.symeda.sormas.api.utils.pseudonymization.PseudonymizableDto;
30+
import de.symeda.sormas.api.vaccinationinfo.VaccinationInfoDto;
3031

3132
public class EventParticipantDto extends PseudonymizableDto {
3233

@@ -41,6 +42,7 @@ public class EventParticipantDto extends PseudonymizableDto {
4142
public static final String REPORTING_USER = "reportingUser";
4243
public static final String REGION = "region";
4344
public static final String DISTRICT = "district";
45+
public static final String VACCINATION_INFO = "vaccinationInfo";
4446

4547
private UserReferenceDto reportingUser;
4648
@Required
@@ -54,6 +56,8 @@ public class EventParticipantDto extends PseudonymizableDto {
5456
private RegionReferenceDto region;
5557
private DistrictReferenceDto district;
5658

59+
private VaccinationInfoDto vaccinationInfo;
60+
5761
public static EventParticipantDto build(EventReferenceDto event, UserReferenceDto reportingUser) {
5862
EventParticipantDto eventParticipant = new EventParticipantDto();
5963
eventParticipant.setUuid(DataHelper.createUuid());
@@ -146,4 +150,12 @@ public DistrictReferenceDto getDistrict() {
146150
public void setDistrict(DistrictReferenceDto district) {
147151
this.district = district;
148152
}
153+
154+
public VaccinationInfoDto getVaccinationInfo() {
155+
return vaccinationInfo;
156+
}
157+
158+
public void setVaccinationInfo(VaccinationInfoDto vaccinationInfo) {
159+
this.vaccinationInfo = vaccinationInfo;
160+
}
149161
}

0 commit comments

Comments
 (0)