Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,8 @@
import static de.symeda.sormas.api.utils.FieldConstraints.CHARACTER_LIMIT_BIG;

import java.util.Date;
import java.util.HashSet;
import java.util.Set;

import javax.validation.Valid;
import javax.validation.constraints.Max;
Expand Down Expand Up @@ -82,7 +84,7 @@ public class ContactDto extends SormasToSormasShareableDto implements IsContact
public static final String CONTACT_IDENTIFICATION_SOURCE = "contactIdentificationSource";
public static final String CONTACT_IDENTIFICATION_SOURCE_DETAILS = "contactIdentificationSourceDetails";
public static final String CONTACT_OFFICER = "contactOfficer";
public static final String CONTACT_PROXIMITY = "contactProximity";
public static final String CONTACT_PROXIMITIES = "contactProximities";
public static final String CONTACT_PROXIMITY_DETAILS = "contactProximityDetails";
public static final String CONTACT_STATUS = "contactStatus";
public static final String DESCRIPTION = "description";
Expand Down Expand Up @@ -208,7 +210,7 @@ public class ContactDto extends SormasToSormasShareableDto implements IsContact
@SensitiveData
@Size(max = FieldConstraints.CHARACTER_LIMIT_DEFAULT, message = Validations.textTooLong)
private String tracingAppDetails;
private ContactProximity contactProximity;
private Set<ContactProximity> contactProximities;
@HideForCountriesExcept
@SensitiveData
@Size(max = FieldConstraints.CHARACTER_LIMIT_DEFAULT, message = Validations.textTooLong)
Expand All @@ -219,15 +221,19 @@ public class ContactDto extends SormasToSormasShareableDto implements IsContact
private ContactCategory contactCategory;
private ContactClassification contactClassification;
private ContactStatus contactStatus;
@Diseases(value = {Disease.INVASIVE_MENINGOCOCCAL_INFECTION}, hide = true)
@Diseases(value = {
Disease.INVASIVE_MENINGOCOCCAL_INFECTION }, hide = true)
private FollowUpStatus followUpStatus;
@SensitiveData
@Size(max = CHARACTER_LIMIT_BIG, message = Validations.textTooLong)
@Diseases(value = {Disease.INVASIVE_MENINGOCOCCAL_INFECTION}, hide = true)
@Diseases(value = {
Disease.INVASIVE_MENINGOCOCCAL_INFECTION }, hide = true)
private String followUpComment;
@Diseases(value = {Disease.INVASIVE_MENINGOCOCCAL_INFECTION}, hide = true)
@Diseases(value = {
Disease.INVASIVE_MENINGOCOCCAL_INFECTION }, hide = true)
private Date followUpUntil;
@Diseases(value = {Disease.INVASIVE_MENINGOCOCCAL_INFECTION}, hide = true)
@Diseases(value = {
Disease.INVASIVE_MENINGOCOCCAL_INFECTION }, hide = true)
private boolean overwriteFollowUpUntil;
@SensitiveData
@Size(max = CHARACTER_LIMIT_BIG, message = Validations.textTooLong)
Expand Down Expand Up @@ -370,11 +376,15 @@ public class ContactDto extends SormasToSormasShareableDto implements IsContact
@Outbreaks
private VaccinationStatus vaccinationStatus;

@Diseases(value = {Disease.MEASLES})
@HideForCountriesExcept(countries = {COUNTRY_CODE_LUXEMBOURG})
@Diseases(value = {
Disease.MEASLES })
@HideForCountriesExcept(countries = {
COUNTRY_CODE_LUXEMBOURG })
private Date vaccinationDoseOneDate;
@Diseases(value = {Disease.MEASLES})
@HideForCountriesExcept(countries = {COUNTRY_CODE_LUXEMBOURG})
@Diseases(value = {
Disease.MEASLES })
@HideForCountriesExcept(countries = {
COUNTRY_CODE_LUXEMBOURG })
private Date vaccinationDoseTwoDate;

private Date previousQuarantineTo;
Expand All @@ -385,23 +395,30 @@ public class ContactDto extends SormasToSormasShareableDto implements IsContact
private DeletionReason deletionReason;
@Size(max = FieldConstraints.CHARACTER_LIMIT_TEXT, message = Validations.textTooLong)
private String otherDeletionReason;
@HideForCountriesExcept(countries = {COUNTRY_CODE_LUXEMBOURG})
@HideForCountriesExcept(countries = {
COUNTRY_CODE_LUXEMBOURG })
@SensitiveData
@Diseases(Disease.INVASIVE_MENINGOCOCCAL_INFECTION)
private Boolean prophylaxisPrescribed;
@HideForCountriesExcept(countries = {COUNTRY_CODE_LUXEMBOURG})
@HideForCountriesExcept(countries = {
COUNTRY_CODE_LUXEMBOURG })
@SensitiveData
@Diseases(Disease.INVASIVE_MENINGOCOCCAL_INFECTION)
private Drug prescribedDrug;
@HideForCountriesExcept(countries = {COUNTRY_CODE_LUXEMBOURG})
@HideForCountriesExcept(countries = {
COUNTRY_CODE_LUXEMBOURG })
@SensitiveData
@Diseases(Disease.INVASIVE_MENINGOCOCCAL_INFECTION)
private String prescribedDrugText;
@Diseases(value = {Disease.MEASLES})
@HideForCountriesExcept(countries = {COUNTRY_CODE_LUXEMBOURG})
@Diseases(value = {
Disease.MEASLES })
@HideForCountriesExcept(countries = {
COUNTRY_CODE_LUXEMBOURG })
private boolean vaccinationProposed;
@Diseases(value = {Disease.MEASLES})
@HideForCountriesExcept(countries = {COUNTRY_CODE_LUXEMBOURG})
@Diseases(value = {
Disease.MEASLES })
@HideForCountriesExcept(countries = {
COUNTRY_CODE_LUXEMBOURG })
private boolean immuneGlobulinProposed;

public static ContactDto build() {
Expand Down Expand Up @@ -543,12 +560,15 @@ public void setTracingAppDetails(String tracingAppDetails) {
this.tracingAppDetails = tracingAppDetails;
}

public ContactProximity getContactProximity() {
return contactProximity;
public Set<ContactProximity> getContactProximities() {
if (contactProximities == null) {
contactProximities = new HashSet<>();
}
return contactProximities;
}

public void setContactProximity(ContactProximity contactProximity) {
this.contactProximity = contactProximity;
public void setContactProximities(Set<ContactProximity> contactProximities) {
this.contactProximities = contactProximities;
}

public String getDescription() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -120,7 +120,7 @@ public class ContactExportDto extends AbstractUuidDto implements IsContact {
private TracingApp tracingApp;
@SensitiveData
private String tracingAppDetails;
private ContactProximity contactProximity;
private Set<ContactProximity> contactProximities;
private ContactStatus contactStatus;
private Float completeness;
private FollowUpStatus followUpStatus;
Expand Down Expand Up @@ -247,13 +247,17 @@ public class ContactExportDto extends AbstractUuidDto implements IsContact {
private Boolean isInJurisdiction;

//@formatter:off
/**
* Constructor for JPA queries where contactProximities cannot be directly selected (ElementCollection limitation).
* ContactProximities should be populated separately after query execution.
*/
public ContactExportDto(long id, long personId, String uuid, String sourceCaseUuid, CaseClassification caseClassification, Disease disease, String diseaseDetails,
ContactClassification contactClassification, Boolean multiDayContact, Date firstContactDate, Date lastContactDate, Date creationDate,
String personUuid, String firstName, String lastName, String nationalHealthId,
Salutation salutation, String otherSalutation, Sex sex,
Integer birthdateDD, Integer birthdateMM, Integer birthdateYYYY,
Integer approximateAge, ApproximateAgeType approximateAgeType, Date reportDate, ContactIdentificationSource contactIdentificationSource,
String contactIdentificationSourceDetails, TracingApp tracingApp, String tracingAppDetails, ContactProximity contactProximity,
String contactIdentificationSourceDetails, TracingApp tracingApp, String tracingAppDetails, Long contactIdPlaceholder,
ContactStatus contactStatus, Float completeness, FollowUpStatus followUpStatus, Date followUpUntil,
QuarantineType quarantine, String quarantineTypeDetails, Date quarantineFrom, Date quarantineTo, String quarantineHelpNeeded,
boolean quarantineOrderedVerbally, boolean quarantineOrderedOfficialDocument, Date quarantineOrderedVerballyDate, Date quarantineOrderedOfficialDocumentDate,
Expand Down Expand Up @@ -301,7 +305,7 @@ public ContactExportDto(long id, long personId, String uuid, String sourceCaseUu
this.contactIdentificationSourceDetails = contactIdentificationSourceDetails;
this.tracingApp = tracingApp;
this.tracingAppDetails = tracingAppDetails;
this.contactProximity = contactProximity;
// contactProximities intentionally not set here - populated separately after query
this.contactStatus = contactStatus;
this.completeness = completeness;
this.followUpStatus = followUpStatus;
Expand Down Expand Up @@ -603,10 +607,10 @@ public String getTracingAppDetails() {
}

@Order(28)
@ExportProperty(ContactDto.CONTACT_PROXIMITY)
@ExportProperty(ContactDto.CONTACT_PROXIMITIES)
@ExportGroup(ExportGroupType.CORE)
public ContactProximity getContactProximity() {
return contactProximity;
public Set<ContactProximity> getContactProximities() {
return contactProximities;
}

@Order(29)
Expand Down Expand Up @@ -1368,8 +1372,8 @@ public void setTracingAppDetails(String tracingAppDetails) {
this.tracingAppDetails = tracingAppDetails;
}

public void setContactProximity(ContactProximity contactProximity) {
this.contactProximity = contactProximity;
public void setContactProximities(Set<ContactProximity> contactProximities) {
this.contactProximities = contactProximities;
}

public void setContactStatus(ContactStatus contactStatus) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ public ContactIndexDetailedDto(String uuid, String personUuid, String nationalHe
String cazeUuid,
Disease disease, String diseaseDetails, String caseFirstName, String caseLastName, String regionName,
String districtName, Date lastContactDate, ContactCategory contactCategory,
ContactProximity contactProximity, ContactClassification contactClassification, ContactStatus contactStatus, Float completeness,
Long id, ContactClassification contactClassification, ContactStatus contactStatus, Float completeness,
FollowUpStatus followUpStatus, Date followUpUntil, SymptomJournalStatus symptomJournalStatus, VaccinationStatus vaccinationStatus, String contactOfficerUuid, String reportingUserUuid, Date reportDateTime,
CaseClassification caseClassification,
String caseRegionName,
Expand All @@ -81,7 +81,7 @@ public ContactIndexDetailedDto(String uuid, String personUuid, String nationalHe

//@formatter:off
super(uuid, personUuid, nationalHealthId, personFirstName, personLastName, cazeUuid, disease, diseaseDetails, caseFirstName, caseLastName,
regionName, districtName, lastContactDate, contactCategory, contactProximity, contactClassification, contactStatus,
regionName, districtName, lastContactDate, contactCategory, id, contactClassification, contactStatus,
completeness, followUpStatus, followUpUntil, symptomJournalStatus, vaccinationStatus, contactOfficerUuid, reportingUserUuid, reportDateTime, caseClassification,
caseRegionName, caseDistrictName, changeDate, externalID, externalToken, internalToken, caseReferenceNumber, deletionReason, otherDeleteReason,isInJurisdiction, isCaseInJurisdiction , visitCount,
prophylaxisPrescribed, prescribedDrug, prescribedDrugText);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,6 @@
*******************************************************************************/
package de.symeda.sormas.api.contact;

import java.io.Serializable;
import java.util.Date;

import de.symeda.sormas.api.Disease;
import de.symeda.sormas.api.caze.CaseClassification;
import de.symeda.sormas.api.caze.CaseReferenceDto;
Expand All @@ -31,6 +28,10 @@
import de.symeda.sormas.api.utils.pseudonymization.PseudonymizableIndexDto;
import de.symeda.sormas.api.uuid.HasUuid;

import java.io.Serializable;
import java.util.Date;
import java.util.Set;

public class ContactIndexDto extends PseudonymizableIndexDto implements IsContact, HasUuid, Serializable, Cloneable {

private static final long serialVersionUID = 7511900591141885152L;
Expand All @@ -46,7 +47,7 @@ public class ContactIndexDto extends PseudonymizableIndexDto implements IsContac
public static final String CAZE = "caze";
public static final String DISEASE = "disease";
public static final String LAST_CONTACT_DATE = "lastContactDate";
public static final String CONTACT_PROXIMITY = "contactProximity";
public static final String CONTACT_PROXIMITIES = "contactProximities";
public static final String CONTACT_CLASSIFICATION = "contactClassification";
public static final String CONTACT_STATUS = "contactStatus";
public static final String FOLLOW_UP_STATUS = "followUpStatus";
Expand Down Expand Up @@ -78,7 +79,7 @@ public class ContactIndexDto extends PseudonymizableIndexDto implements IsContac
private Disease disease;
private String diseaseDetails;
private Date lastContactDate;
private ContactProximity contactProximity;
private Set<ContactProximity> contactProximities;
private ContactClassification contactClassification;
private ContactStatus contactStatus;
private Float completeness;
Expand Down Expand Up @@ -109,12 +110,17 @@ public class ContactIndexDto extends PseudonymizableIndexDto implements IsContac
private String prescribedDrugText;

private ContactJurisdictionFlagsDto contactJurisdictionFlagsDto;
private Long id;

//@formatter:off
/**
* Constructor for JPA queries where contactProximities cannot be directly selected (ElementCollection limitation).
* ContactProximities should be populated separately after query execution using the id field.
*/
public ContactIndexDto(String uuid, String personUuid, String nationalHealthId, String personFirstName, String personLastName, String cazeUuid,
Disease disease, String diseaseDetails, String caseFirstName, String caseLastName, String regionName,
String districtName, Date lastContactDate, ContactCategory contactCategory,
ContactProximity contactProximity, ContactClassification contactClassification, ContactStatus contactStatus, Float completeness,
Long id, ContactClassification contactClassification, ContactStatus contactStatus, Float completeness,
FollowUpStatus followUpStatus, Date followUpUntil, SymptomJournalStatus symptomJournalStatus, VaccinationStatus vaccinationStatus, String contactOfficerUuid,
String reportingUserUuid, Date reportDateTime,
CaseClassification caseClassification, String caseRegionName, String caseDistrictName,
Expand All @@ -138,7 +144,7 @@ public ContactIndexDto(String uuid, String personUuid, String nationalHealthId,
this.diseaseDetails = diseaseDetails;
this.lastContactDate = lastContactDate;
this.contactCategory = contactCategory;
this.contactProximity = contactProximity;
this.id = id;
this.contactClassification = contactClassification;
this.contactStatus = contactStatus;
this.completeness = completeness;
Expand Down Expand Up @@ -232,12 +238,12 @@ public void setLastContactDate(Date lastContactDate) {
this.lastContactDate = lastContactDate;
}

public ContactProximity getContactProximity() {
return contactProximity;
public Set<ContactProximity> getContactProximities() {
return contactProximities;
}

public void setContactProximity(ContactProximity contactProximity) {
this.contactProximity = contactProximity;
public void setContactProximities(Set<ContactProximity> contactProximities) {
this.contactProximities = contactProximities;
}

public ContactClassification getContactClassification() {
Expand Down Expand Up @@ -464,6 +470,14 @@ public void setPrescribedDrugText(String prescribedDrugText) {
this.prescribedDrugText = prescribedDrugText;
}

public Long getId() {
return id;
}

public void setId(Long id) {
this.id = id;
}

@Override
public Object clone() throws CloneNotSupportedException {
return super.clone();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import java.io.Serializable;
import java.util.Date;
import java.util.Set;

import de.symeda.sormas.api.caze.CaseReferenceDto;
import de.symeda.sormas.api.utils.EmbeddedPersonalData;
Expand All @@ -20,7 +21,7 @@ public class SimilarContactDto extends PseudonymizableIndexDto implements IsCont
public static final String CASE_ID_EXTERNAL_SYSTEM = "caseIdExternalSystem";
public static final String CAZE = "caze";
public static final String LAST_CONTACT_DATE = "lastContactDate";
public static final String CONTACT_PROXIMITY = "contactProximity";
public static final String CONTACT_PROXIMITIES = "contactProximities";
public static final String CONTACT_CLASSIFICATION = "contactClassification";
public static final String CONTACT_STATUS = "contactStatus";
public static final String FOLLOW_UP_STATUS = "followUpStatus";
Expand All @@ -33,16 +34,17 @@ public class SimilarContactDto extends PseudonymizableIndexDto implements IsCont
private CaseReferenceDto caze;
private String caseIdExternalSystem;
private Date lastContactDate;
private ContactProximity contactProximity;
private Set<ContactProximity> contactProximities;
private ContactClassification contactClassification;
private ContactStatus contactStatus;
private FollowUpStatus followUpStatus;
private ContactJurisdictionFlagsDto contactJurisdictionFlagsDto;
private Long id;

//@formatter:off
public SimilarContactDto(String firstName, String lastName, String uuid,
String cazeUuid, String caseFirstName, String caseLastName, String caseIdExternalSystem,
Date lastContactDate, ContactProximity contactProximity, ContactClassification contactClassification,
Date lastContactDate, Long id, ContactClassification contactClassification,
ContactStatus contactStatus, FollowUpStatus followUpStatus, boolean isInJurisdiction, boolean isCaseInJurisdiction) {
//@formatter:on
super(uuid);
Expand All @@ -54,7 +56,7 @@ public SimilarContactDto(String firstName, String lastName, String uuid,
}
this.caseIdExternalSystem = caseIdExternalSystem;
this.lastContactDate = lastContactDate;
this.contactProximity = contactProximity;
this.id = id;
this.contactClassification = contactClassification;
this.contactStatus = contactStatus;
this.followUpStatus = followUpStatus;
Expand Down Expand Up @@ -85,12 +87,12 @@ public void setLastContactDate(Date lastContactDate) {
this.lastContactDate = lastContactDate;
}

public ContactProximity getContactProximity() {
return contactProximity;
public Set<ContactProximity> getContactProximities() {
return contactProximities;
}

public void setContactProximity(ContactProximity contactProximity) {
this.contactProximity = contactProximity;
public void setContactProximities(Set<ContactProximity> contactProximities) {
this.contactProximities = contactProximities;
}

public String getFirstName() {
Expand Down Expand Up @@ -144,4 +146,12 @@ public Boolean getCaseInJurisdiction() {
public ContactReferenceDto toReference() {
return new ContactReferenceDto(getUuid(), getFirstName(), getLastName(), getCaze());
}

public Long getId() {
return id;
}

public void setId(Long id) {
this.id = id;
}
}
Loading
Loading