From f187fadd4fba6a13be447966aac757241be00f72 Mon Sep 17 00:00:00 2001 From: aj sharma Date: Thu, 6 Jul 2023 14:40:48 +0545 Subject: [PATCH 1/3] feat-web: Connected malaria epi data to backend. create table for MalariaEpiData. MalariaEpiData is saved in database; --- .../symeda/sormas/api/epidata/EpiDataDto.java | 9 + .../sormas/api/epidata/MalariaEpiDataDto.java | 6 +- .../sormas/backend/epidata/EpiData.java | 15 +- .../backend/epidata/EpiDataFacadeEjb.java | 7 +- .../backend/epidata/MalariaEpiData.java | 293 ++++++++++++++++++ .../epidata/MalariaEpiDataFacadeEjb.java | 108 +++++++ .../main/resources/META-INF/persistence.xml | 1 + .../backend/caze/CaseFacadeEjbTest.java | 17 + .../test/resources/META-INF/persistence.xml | 8 +- .../symeda/sormas/ui/caze/CaseController.java | 6 + .../symeda/sormas/ui/epidata/EpiDataForm.java | 18 ++ 11 files changed, 477 insertions(+), 11 deletions(-) create mode 100644 sormas-backend/src/main/java/de/symeda/sormas/backend/epidata/MalariaEpiData.java create mode 100644 sormas-backend/src/main/java/de/symeda/sormas/backend/epidata/MalariaEpiDataFacadeEjb.java diff --git a/sormas-api/src/main/java/de/symeda/sormas/api/epidata/EpiDataDto.java b/sormas-api/src/main/java/de/symeda/sormas/api/epidata/EpiDataDto.java index 8eff812ce14..6f202b82ce3 100644 --- a/sormas-api/src/main/java/de/symeda/sormas/api/epidata/EpiDataDto.java +++ b/sormas-api/src/main/java/de/symeda/sormas/api/epidata/EpiDataDto.java @@ -72,6 +72,7 @@ public class EpiDataDto extends PseudonymizableDto { @Valid private List activitiesAsCase = new ArrayList<>(); + private MalariaEpiDataDto malariaEpiData; public YesNoUnknown getExposureDetailsKnown() { return exposureDetailsKnown; @@ -165,4 +166,12 @@ public EpiDataDto clone() throws CloneNotSupportedException { return clone; } + + public MalariaEpiDataDto getMalariaEpiData() { + return malariaEpiData; + } + + public void setMalariaEpiData(MalariaEpiDataDto malariaEpiData) { + this.malariaEpiData = malariaEpiData; + } } diff --git a/sormas-api/src/main/java/de/symeda/sormas/api/epidata/MalariaEpiDataDto.java b/sormas-api/src/main/java/de/symeda/sormas/api/epidata/MalariaEpiDataDto.java index 60dbe332720..1b9eb5a2823 100644 --- a/sormas-api/src/main/java/de/symeda/sormas/api/epidata/MalariaEpiDataDto.java +++ b/sormas-api/src/main/java/de/symeda/sormas/api/epidata/MalariaEpiDataDto.java @@ -85,7 +85,7 @@ public class MalariaEpiDataDto extends PseudonymizableDto { @PersonalData private Boolean hasPreviousMalaria; private RegionReferenceDto pastRegion; - private RegionReferenceDto pastDate; + private Date pastDate; @PersonalData private DistrictReferenceDto pastDistrict; @PersonalData @@ -115,11 +115,11 @@ public void setActiveCaseDetection(ActiveCaseDetection activeCaseDetection) { this.activeCaseDetection = activeCaseDetection; } - public RegionReferenceDto getPastDate() { + public Date getPastDate() { return pastDate; } - public void setPastDate(RegionReferenceDto pastDate) { + public void setPastDate(Date pastDate) { this.pastDate = pastDate; } diff --git a/sormas-backend/src/main/java/de/symeda/sormas/backend/epidata/EpiData.java b/sormas-backend/src/main/java/de/symeda/sormas/backend/epidata/EpiData.java index a99e32a9a27..c072ab20e2e 100644 --- a/sormas-backend/src/main/java/de/symeda/sormas/backend/epidata/EpiData.java +++ b/sormas-backend/src/main/java/de/symeda/sormas/backend/epidata/EpiData.java @@ -21,11 +21,7 @@ import java.util.Date; import java.util.List; -import javax.persistence.CascadeType; -import javax.persistence.Entity; -import javax.persistence.EnumType; -import javax.persistence.Enumerated; -import javax.persistence.OneToMany; +import javax.persistence.*; import de.symeda.auditlog.api.Audited; import de.symeda.sormas.api.utils.YesNoUnknown; @@ -57,6 +53,7 @@ public class EpiData extends AbstractDomainObject { private List activitiesAsCase = new ArrayList<>(); @NotExposedToApi private Date changeDateOfEmbeddedLists; + private MalariaEpiData malariaEpiData; @Enumerated(EnumType.STRING) public YesNoUnknown getExposureDetailsKnown() { @@ -140,4 +137,12 @@ public YesNoUnknown getContactWithSourceCaseKnown() { public void setContactWithSourceCaseKnown(YesNoUnknown contactWithSourceCaseKnown) { this.contactWithSourceCaseKnown = contactWithSourceCaseKnown; } + @OneToOne(cascade = CascadeType.ALL, orphanRemoval = true) + public MalariaEpiData getMalariaEpiData() { + return malariaEpiData; + } + + public void setMalariaEpiData(MalariaEpiData malariaEpiData) { + this.malariaEpiData = malariaEpiData; + } } diff --git a/sormas-backend/src/main/java/de/symeda/sormas/backend/epidata/EpiDataFacadeEjb.java b/sormas-backend/src/main/java/de/symeda/sormas/backend/epidata/EpiDataFacadeEjb.java index fb0f47384f2..1c198387455 100644 --- a/sormas-backend/src/main/java/de/symeda/sormas/backend/epidata/EpiDataFacadeEjb.java +++ b/sormas-backend/src/main/java/de/symeda/sormas/backend/epidata/EpiDataFacadeEjb.java @@ -17,6 +17,7 @@ *******************************************************************************/ package de.symeda.sormas.backend.epidata; +import static de.symeda.sormas.backend.epidata.MalariaEpiDataFacadeEjb.*; import static java.util.Objects.isNull; import java.util.ArrayList; @@ -58,6 +59,8 @@ public class EpiDataFacadeEjb implements EpiDataFacade { private ContactService contactService; @EJB private UserService userService; + @EJB + private MalariaEpiDataFacadeEjbLocal malariaEpiDataFacadeEjbLocal; public EpiData fillOrBuildEntity(EpiDataDto source, EpiData target, boolean checkChangeDate) { if (source == null) { @@ -100,7 +103,7 @@ public EpiData fillOrBuildEntity(EpiDataDto source, EpiData target, boolean chec } target.getActivitiesAsCase().clear(); target.getActivitiesAsCase().addAll(activitiesAsCase); - + target.setMalariaEpiData(malariaEpiDataFacadeEjbLocal.fillOrBuildEntity(source.getMalariaEpiData(), target.getMalariaEpiData(), checkChangeDate)); return target; } @@ -241,7 +244,7 @@ public static EpiDataDto toDto(EpiData epiData) { activityAsCaseDtos.add(activityAsCaseDto); } target.setActivitiesAsCase(activityAsCaseDtos); - + target.setMalariaEpiData(MalariaEpiDataFacadeEjb.toDto(source.getMalariaEpiData())); return target; } diff --git a/sormas-backend/src/main/java/de/symeda/sormas/backend/epidata/MalariaEpiData.java b/sormas-backend/src/main/java/de/symeda/sormas/backend/epidata/MalariaEpiData.java new file mode 100644 index 00000000000..28afdcd5786 --- /dev/null +++ b/sormas-backend/src/main/java/de/symeda/sormas/backend/epidata/MalariaEpiData.java @@ -0,0 +1,293 @@ +package de.symeda.sormas.backend.epidata; + +import de.symeda.auditlog.api.Audited; +import de.symeda.sormas.api.epidata.ActiveCaseDetection; +import de.symeda.sormas.api.epidata.CaseDetectionMethod; +import de.symeda.sormas.api.epidata.PreventiveMeasures; +import de.symeda.sormas.api.symptoms.PlasmodiumSpecies; +import de.symeda.sormas.api.utils.YesNoUnknown; +import de.symeda.sormas.backend.common.AbstractDomainObject; +import de.symeda.sormas.backend.infrastructure.community.Community; +import de.symeda.sormas.backend.infrastructure.district.District; +import de.symeda.sormas.backend.infrastructure.facility.Facility; +import de.symeda.sormas.backend.infrastructure.region.Region; + +import javax.persistence.Entity; +import javax.persistence.EnumType; +import javax.persistence.Enumerated; +import javax.persistence.OneToOne; +import java.util.Date; + +@Entity +@Audited +public class MalariaEpiData extends AbstractDomainObject { + private CaseDetectionMethod caseDetectionMethod; + private ActiveCaseDetection activeCaseDetection; + private Integer lengthOfResidenceYY; + private Integer lengthOfResidenceMM; + private Region residentRegion; + private District residentDistrict; + private Community residentCommunity; + private Integer residentWardNo; + private String travelAddressWithInCounty; + private Date travelDateWithInCounty; + private String travelAddressOutsideCounty; + private Date travelDateOutsideCounty; + private PreventiveMeasures typeOfPreventingMeasures; + private String drugName; + private String doseName; + private Date doseStartDate; + private Date doseEndDate; + private String contactWithMalariaCasesDetail; + private Boolean bloodTransfusion; + private Boolean historyOfConfirmed; + private Boolean hasPreviousMalaria; + private Region pastRegion; + private Date pastDate; + private District pastDistrict; + private Community pastCommunity; + private Integer pastWardNo; + private Facility facility; + private PlasmodiumSpecies plasmodiumSpecies; + private YesNoUnknown hasTreatedNMTP; + + @Enumerated(EnumType.STRING) + public CaseDetectionMethod getCaseDetectionMethod() { + return caseDetectionMethod; + } + public void setCaseDetectionMethod(CaseDetectionMethod caseDetectionMethod) { + this.caseDetectionMethod = caseDetectionMethod; + } + + @Enumerated(EnumType.STRING) + public ActiveCaseDetection getActiveCaseDetection() { + return activeCaseDetection; + } + + public void setActiveCaseDetection(ActiveCaseDetection activeCaseDetection) { + this.activeCaseDetection = activeCaseDetection; + } + + public Integer getLengthOfResidenceYY() { + return lengthOfResidenceYY; + } + + public void setLengthOfResidenceYY(Integer lengthOfResidenceYY) { + this.lengthOfResidenceYY = lengthOfResidenceYY; + } + + public Integer getLengthOfResidenceMM() { + return lengthOfResidenceMM; + } + + public void setLengthOfResidenceMM(Integer lengthOfResidenceMM) { + this.lengthOfResidenceMM = lengthOfResidenceMM; + } + + @OneToOne + public Region getResidentRegion() { + return residentRegion; + } + + public void setResidentRegion(Region residentRegion) { + this.residentRegion = residentRegion; + } + @OneToOne + + public District getResidentDistrict() { + return residentDistrict; + } + + public void setResidentDistrict(District residentDistrict) { + this.residentDistrict = residentDistrict; + } + @OneToOne + + public Community getResidentCommunity() { + return residentCommunity; + } + + public void setResidentCommunity(Community residentCommunity) { + this.residentCommunity = residentCommunity; + } + + public Integer getResidentWardNo() { + return residentWardNo; + } + + public void setResidentWardNo(Integer residentWardNo) { + this.residentWardNo = residentWardNo; + } + + public String getTravelAddressWithInCounty() { + return travelAddressWithInCounty; + } + + public void setTravelAddressWithInCounty(String travelAddressWithInCounty) { + this.travelAddressWithInCounty = travelAddressWithInCounty; + } + + public Date getTravelDateWithInCounty() { + return travelDateWithInCounty; + } + + public void setTravelDateWithInCounty(Date travelDateWithInCounty) { + this.travelDateWithInCounty = travelDateWithInCounty; + } + + public String getTravelAddressOutsideCounty() { + return travelAddressOutsideCounty; + } + + public void setTravelAddressOutsideCounty(String travelAddressOutsideCounty) { + this.travelAddressOutsideCounty = travelAddressOutsideCounty; + } + + public Date getTravelDateOutsideCounty() { + return travelDateOutsideCounty; + } + + public void setTravelDateOutsideCounty(Date travelDateOutsideCounty) { + this.travelDateOutsideCounty = travelDateOutsideCounty; + } + + public PreventiveMeasures getTypeOfPreventingMeasures() { + return typeOfPreventingMeasures; + } + + public void setTypeOfPreventingMeasures(PreventiveMeasures typeOfPreventingMeasures) { + this.typeOfPreventingMeasures = typeOfPreventingMeasures; + } + + public String getDrugName() { + return drugName; + } + + public void setDrugName(String drugName) { + this.drugName = drugName; + } + + public String getDoseName() { + return doseName; + } + + public void setDoseName(String doseName) { + this.doseName = doseName; + } + + public Date getDoseStartDate() { + return doseStartDate; + } + + public void setDoseStartDate(Date doseStartDate) { + this.doseStartDate = doseStartDate; + } + + public Date getDoseEndDate() { + return doseEndDate; + } + + public void setDoseEndDate(Date doseEndDate) { + this.doseEndDate = doseEndDate; + } + + public String getContactWithMalariaCasesDetail() { + return contactWithMalariaCasesDetail; + } + + public void setContactWithMalariaCasesDetail(String contactWithMalariaCasesDetail) { + this.contactWithMalariaCasesDetail = contactWithMalariaCasesDetail; + } + + public Boolean getBloodTransfusion() { + return bloodTransfusion; + } + + public void setBloodTransfusion(Boolean bloodTransfusion) { + this.bloodTransfusion = bloodTransfusion; + } + + public Boolean getHistoryOfConfirmed() { + return historyOfConfirmed; + } + + public void setHistoryOfConfirmed(Boolean historyOfConfirmed) { + this.historyOfConfirmed = historyOfConfirmed; + } + + public Boolean getHasPreviousMalaria() { + return hasPreviousMalaria; + } + + public void setHasPreviousMalaria(Boolean hasPreviousMalaria) { + this.hasPreviousMalaria = hasPreviousMalaria; + } + + @OneToOne + public Region getPastRegion() { + return pastRegion; + } + + public void setPastRegion(Region pastRegion) { + this.pastRegion = pastRegion; + } + + public Date getPastDate() { + return pastDate; + } + + public void setPastDate(Date pastDate) { + this.pastDate = pastDate; + } + + @OneToOne + public District getPastDistrict() { + return pastDistrict; + } + + public void setPastDistrict(District pastDistrict) { + this.pastDistrict = pastDistrict; + } + + @OneToOne + public Community getPastCommunity() { + return pastCommunity; + } + + public void setPastCommunity(Community pastCommunity) { + this.pastCommunity = pastCommunity; + } + + public Integer getPastWardNo() { + return pastWardNo; + } + + public void setPastWardNo(Integer pastWardNo) { + this.pastWardNo = pastWardNo; + } + + @OneToOne + public Facility getFacility() { + return facility; + } + + public void setFacility(Facility facility) { + this.facility = facility; + } + + public PlasmodiumSpecies getPlasmodiumSpecies() { + return plasmodiumSpecies; + } + + public void setPlasmodiumSpecies(PlasmodiumSpecies plasmodiumSpecies) { + this.plasmodiumSpecies = plasmodiumSpecies; + } + + public YesNoUnknown getHasTreatedNMTP() { + return hasTreatedNMTP; + } + + public void setHasTreatedNMTP(YesNoUnknown hasTreatedNMTP) { + this.hasTreatedNMTP = hasTreatedNMTP; + } +} diff --git a/sormas-backend/src/main/java/de/symeda/sormas/backend/epidata/MalariaEpiDataFacadeEjb.java b/sormas-backend/src/main/java/de/symeda/sormas/backend/epidata/MalariaEpiDataFacadeEjb.java new file mode 100644 index 00000000000..b4615fd9eac --- /dev/null +++ b/sormas-backend/src/main/java/de/symeda/sormas/backend/epidata/MalariaEpiDataFacadeEjb.java @@ -0,0 +1,108 @@ +package de.symeda.sormas.backend.epidata; + +import de.symeda.sormas.api.epidata.MalariaEpiDataDto; +import de.symeda.sormas.backend.infrastructure.community.CommunityFacadeEjb; +import de.symeda.sormas.backend.infrastructure.community.CommunityService; +import de.symeda.sormas.backend.infrastructure.district.DistrictFacadeEjb; +import de.symeda.sormas.backend.infrastructure.district.DistrictService; +import de.symeda.sormas.backend.infrastructure.facility.FacilityFacadeEjb; +import de.symeda.sormas.backend.infrastructure.facility.FacilityService; +import de.symeda.sormas.backend.infrastructure.region.RegionFacadeEjb; +import de.symeda.sormas.backend.infrastructure.region.RegionService; +import de.symeda.sormas.backend.util.DtoHelper; + +import javax.ejb.EJB; +import javax.ejb.LocalBean; +import javax.ejb.Stateless; + +@Stateless(name = "MalariaEpiDataFacade") +public class MalariaEpiDataFacadeEjb { + + @EJB + RegionService regionService; + @EJB + DistrictService districtService; + @EJB + CommunityService communityService; + @EJB + FacilityService facilityService; + + + public MalariaEpiData fillOrBuildEntity(MalariaEpiDataDto source, MalariaEpiData target, boolean checkChangeDate) { + if (source == null) { + return null; + } + + target = DtoHelper.fillOrBuildEntity(source, target, MalariaEpiData::new, checkChangeDate); + target.setCaseDetectionMethod(source.getCaseDetectionMethod()); + target.setActiveCaseDetection(source.getActiveCaseDetection()); + target.setLengthOfResidenceYY(source.getLengthOfResidenceYY()); + target.setLengthOfResidenceMM(source.getLengthOfResidenceMM()); + target.setResidentRegion(regionService.getByReferenceDto(source.getResidentRegion())); + target.setResidentDistrict(districtService.getByReferenceDto(source.getResidentDistrict())); + target.setResidentCommunity(communityService.getByReferenceDto(source.getResidentCommunity())); + target.setResidentWardNo(source.getResidentWardNo()); + target.setTravelAddressWithInCounty(source.getTravelAddressWithInCounty()); + target.setTravelDateWithInCounty(source.getTravelDateWithInCounty()); + target.setTravelAddressOutsideCounty(source.getTravelAddressOutsideCounty()); + target.setTravelDateOutsideCounty(source.getTravelDateOutsideCounty()); + target.setTypeOfPreventingMeasures(source.getTypeOfPreventingMeasures()); + target.setDrugName(source.getDrugName()); + target.setDoseName(source.getDoseName()); + target.setDoseStartDate(source.getDoseStartDate()); + target.setDoseEndDate(source.getDoseEndDate()); + target.setContactWithMalariaCasesDetail(source.getContactWithMalariaCasesDetail()); + target.setBloodTransfusion(source.getBloodTransfusion()); + target.setHistoryOfConfirmed(source.getHistoryOfConfirmed()); + target.setHasPreviousMalaria(source.getHasPreviousMalaria()); + target.setPastRegion(regionService.getByReferenceDto(source.getPastRegion())); + target.setPastDistrict(districtService.getByReferenceDto(source.getPastDistrict())); + target.setPastCommunity(communityService.getByReferenceDto(source.getPastCommunity())); + target.setPastWardNo(source.getPastWardNo()); + target.setFacility(facilityService.getByReferenceDto(source.getFacility())); + target.setPlasmodiumSpecies(source.getPlasmodiumSpecies()); + target.setHasTreatedNMTP(source.getHasTreatedNMTP()); + return target; + } + + public static MalariaEpiDataDto toDto(MalariaEpiData source) { + if (source == null) { + return null; + } + MalariaEpiDataDto target = new MalariaEpiDataDto(); + DtoHelper.fillDto(target, source); + target.setCaseDetectionMethod(source.getCaseDetectionMethod()); + target.setActiveCaseDetection(source.getActiveCaseDetection()); + target.setLengthOfResidenceYY(source.getLengthOfResidenceYY()); + target.setLengthOfResidenceMM(source.getLengthOfResidenceMM()); + target.setResidentRegion(RegionFacadeEjb.toReferenceDto(source.getResidentRegion())); + target.setResidentDistrict(DistrictFacadeEjb.toReferenceDto(source.getResidentDistrict())); + target.setResidentCommunity(CommunityFacadeEjb.toReferenceDto(source.getResidentCommunity())); + target.setResidentWardNo(source.getResidentWardNo()); + target.setTravelAddressWithInCounty(source.getTravelAddressWithInCounty()); + target.setTravelDateWithInCounty(source.getTravelDateWithInCounty()); + target.setTravelAddressOutsideCounty(source.getTravelAddressOutsideCounty()); + target.setTravelDateOutsideCounty(source.getTravelDateOutsideCounty()); + target.setTypeOfPreventingMeasures(source.getTypeOfPreventingMeasures()); + target.setDrugName(source.getDrugName()); + target.setDoseName(source.getDoseName()); + target.setDoseStartDate(source.getDoseStartDate()); + target.setDoseEndDate(source.getDoseEndDate()); + target.setContactWithMalariaCasesDetail(source.getContactWithMalariaCasesDetail()); + target.setBloodTransfusion(source.getBloodTransfusion()); + target.setHistoryOfConfirmed(source.getHistoryOfConfirmed()); + target.setHasPreviousMalaria(source.getHasPreviousMalaria()); + target.setPastRegion(RegionFacadeEjb.toReferenceDto(source.getPastRegion())); + target.setPastDistrict(DistrictFacadeEjb.toReferenceDto(source.getPastDistrict())); + target.setPastCommunity(CommunityFacadeEjb.toReferenceDto(source.getPastCommunity())); + target.setPastWardNo(source.getPastWardNo()); + target.setFacility(FacilityFacadeEjb.toReferenceDto(source.getFacility())); + target.setPlasmodiumSpecies(source.getPlasmodiumSpecies()); + target.setHasTreatedNMTP(source.getHasTreatedNMTP()); + return target; + } + + @LocalBean + @Stateless + public static class MalariaEpiDataFacadeEjbLocal extends MalariaEpiDataFacadeEjb{} +} diff --git a/sormas-backend/src/main/resources/META-INF/persistence.xml b/sormas-backend/src/main/resources/META-INF/persistence.xml index 773b187d47c..5288b433ff5 100644 --- a/sormas-backend/src/main/resources/META-INF/persistence.xml +++ b/sormas-backend/src/main/resources/META-INF/persistence.xml @@ -15,6 +15,7 @@ de.symeda.sormas.backend.common.CoreAdo de.symeda.sormas.backend.contact.Contact de.symeda.sormas.backend.epidata.EpiData + de.symeda.sormas.backend.epidata.MalariaEpiData de.symeda.sormas.backend.event.Event de.symeda.sormas.backend.event.EventParticipant de.symeda.sormas.backend.event.EventGroup diff --git a/sormas-backend/src/test/java/de/symeda/sormas/backend/caze/CaseFacadeEjbTest.java b/sormas-backend/src/test/java/de/symeda/sormas/backend/caze/CaseFacadeEjbTest.java index b67122463eb..dea51b041a8 100644 --- a/sormas-backend/src/test/java/de/symeda/sormas/backend/caze/CaseFacadeEjbTest.java +++ b/sormas-backend/src/test/java/de/symeda/sormas/backend/caze/CaseFacadeEjbTest.java @@ -51,6 +51,7 @@ import javax.validation.Validator; import javax.validation.ValidatorFactory; +import de.symeda.sormas.api.epidata.MalariaEpiDataDto; import org.apache.commons.lang3.time.DateUtils; import org.hamcrest.MatcherAssert; import org.hibernate.internal.SessionImpl; @@ -3151,6 +3152,22 @@ public void testDuplicatesWithPathogenTest() { assertEquals(anthraxCase.getUuid(), duplicatedCases.get(0).getUuid()); } + @Test + public void saveMalariaEpiDataTest() { + RDCF rdcf = creator.createRDCF(); + PersonReferenceDto personDto = creator.createPerson().toReference(); + CaseDataDto savedCaze1 = createCaseOfFacilityType(rdcf, personDto, FacilityType.HOSPITAL); + MalariaEpiDataDto malariaEpiDataDto = new MalariaEpiDataDto(); + savedCaze1.getEpiData().setMalariaEpiData(malariaEpiDataDto); + getCaseFacade().save(savedCaze1); + savedCaze1 = getCaseFacade().getCaseDataByUuid(savedCaze1.getUuid()); + assertNotNull(savedCaze1.getEpiData().getMalariaEpiData()); + savedCaze1.getEpiData().setMalariaEpiData(null); + savedCaze1 = getCaseFacade().save(savedCaze1); + savedCaze1 = getCaseFacade().getCaseDataByUuid(savedCaze1.getUuid()); + assertNull(savedCaze1.getEpiData().getMalariaEpiData()); + } + private static final String AB = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz "; private static final SecureRandom rnd = new SecureRandom(); diff --git a/sormas-backend/src/test/resources/META-INF/persistence.xml b/sormas-backend/src/test/resources/META-INF/persistence.xml index 45dc41d7d9a..db925bbc08b 100644 --- a/sormas-backend/src/test/resources/META-INF/persistence.xml +++ b/sormas-backend/src/test/resources/META-INF/persistence.xml @@ -6,7 +6,7 @@ org.hibernate.jpa.HibernatePersistenceProvider - + de.symeda.sormas.backend.action.Action de.symeda.sormas.backend.caze.Case de.symeda.sormas.backend.common.AbstractDomainObject @@ -14,6 +14,7 @@ de.symeda.sormas.backend.common.CoreAdo de.symeda.sormas.backend.contact.Contact de.symeda.sormas.backend.epidata.EpiData + de.symeda.sormas.backend.epidata.MalariaEpiData de.symeda.sormas.backend.event.Event de.symeda.sormas.backend.event.EventParticipant de.symeda.sormas.backend.event.EventGroup @@ -30,6 +31,11 @@ de.symeda.sormas.backend.report.WeeklyReport de.symeda.sormas.backend.report.WeeklyReportEntry de.symeda.sormas.backend.sample.Sample + de.symeda.sormas.backend.sample.ncd.RftSample + de.symeda.sormas.backend.sample.ncd.LftSample + de.symeda.sormas.backend.sample.ncd.LipidProfileSample + de.symeda.sormas.backend.sample.ncd.CompleteBloodCountSample + de.symeda.sormas.backend.sample.ncd.UrineRoutineExaminationSample de.symeda.sormas.backend.sample.PathogenTest de.symeda.sormas.backend.symptoms.Symptoms de.symeda.sormas.backend.task.Task diff --git a/sormas-ui/src/main/java/de/symeda/sormas/ui/caze/CaseController.java b/sormas-ui/src/main/java/de/symeda/sormas/ui/caze/CaseController.java index ece6a8d7247..8a9311dc185 100644 --- a/sormas-ui/src/main/java/de/symeda/sormas/ui/caze/CaseController.java +++ b/sormas-ui/src/main/java/de/symeda/sormas/ui/caze/CaseController.java @@ -1419,6 +1419,12 @@ public CommitDiscardWrapperComponent getEpiDataComponent( editView.addCommitListener(() -> { CaseDataDto cazeDto = FacadeProvider.getCaseFacade().getCaseDataByUuid(caseUuid); + if(epiDataForm.getMalariaEpiDataForm() != null) { + epiDataForm.getMalariaEpiDataForm().commit(); + epiDataForm.getValue().setMalariaEpiData(epiDataForm.getMalariaEpiDataForm().getValue()); + } else { + epiDataForm.getValue().setMalariaEpiData(null); + } cazeDto.setEpiData(epiDataForm.getValue()); saveCase(cazeDto); }); diff --git a/sormas-ui/src/main/java/de/symeda/sormas/ui/epidata/EpiDataForm.java b/sormas-ui/src/main/java/de/symeda/sormas/ui/epidata/EpiDataForm.java index 802afb092a8..85449539c8c 100644 --- a/sormas-ui/src/main/java/de/symeda/sormas/ui/epidata/EpiDataForm.java +++ b/sormas-ui/src/main/java/de/symeda/sormas/ui/epidata/EpiDataForm.java @@ -26,6 +26,8 @@ import java.util.function.Consumer; import java.util.function.Supplier; +import com.vaadin.v7.data.util.converter.Converter; +import de.symeda.sormas.api.epidata.MalariaEpiDataDto; import org.apache.commons.collections.CollectionUtils; import com.vaadin.shared.ui.ContentMode; @@ -160,6 +162,10 @@ protected void addFields() { } + public MalariaEpiDataForm getMalariaEpiDataForm() { + return malariaEpiDataForm; + } + private void addActivityAsCaseFields() { getContent().addComponent( @@ -221,4 +227,16 @@ public void setGetSourceContactsCallback(Supplier> cal protected String createHtmlLayout() { return parentClass == CaseDataDto.class ? MAIN_HTML_LAYOUT + SOURCE_CONTACTS_HTML_LAYOUT : MAIN_HTML_LAYOUT; } + + @Override + public void setValue(EpiDataDto newFieldValue) throws ReadOnlyException, Converter.ConversionException { + super.setValue(newFieldValue); + if (malariaEpiDataForm != null) { + if (newFieldValue.getMalariaEpiData() != null) { + malariaEpiDataForm.setValue(newFieldValue.getMalariaEpiData()); + } else { + malariaEpiDataForm.setValue(new MalariaEpiDataDto()); + } + } + } } From 22cefbc4e0d61de7f8214a03f56354ce709bdfe7 Mon Sep 17 00:00:00 2001 From: aj sharma Date: Mon, 10 Jul 2023 12:31:55 +0545 Subject: [PATCH 2/3] feat-web: Hide EpiDataForm field for malaria. Hide field like Exposure, Activity as case, Contacts with source Case for disease malaria. --- .../symeda/sormas/api/epidata/EpiDataDto.java | 7 + .../symeda/sormas/ui/epidata/EpiDataForm.java | 369 +++++++++--------- 2 files changed, 192 insertions(+), 184 deletions(-) diff --git a/sormas-api/src/main/java/de/symeda/sormas/api/epidata/EpiDataDto.java b/sormas-api/src/main/java/de/symeda/sormas/api/epidata/EpiDataDto.java index 6f202b82ce3..003cd1bb170 100644 --- a/sormas-api/src/main/java/de/symeda/sormas/api/epidata/EpiDataDto.java +++ b/sormas-api/src/main/java/de/symeda/sormas/api/epidata/EpiDataDto.java @@ -52,10 +52,15 @@ public class EpiDataDto extends PseudonymizableDto { public static final String HIGH_TRANSMISSION_RISK_AREA = "highTransmissionRiskArea"; public static final String LARGE_OUTBREAKS_AREA = "largeOutbreaksArea"; + @Diseases(value = {Disease.MALARIA}, hide = true) private YesNoUnknown exposureDetailsKnown; + @Diseases(value = {Disease.MALARIA}, hide = true) private YesNoUnknown activityAsCaseDetailsKnown; + @Diseases(value = {Disease.MALARIA}, hide = true) private YesNoUnknown contactWithSourceCaseKnown; + @Diseases(value = {Disease.MALARIA}, hide = true) private YesNoUnknown highTransmissionRiskArea; + @Diseases(value = {Disease.MALARIA}, hide = true) private YesNoUnknown largeOutbreaksArea; @Diseases({ Disease.AFP, @@ -68,9 +73,11 @@ public class EpiDataDto extends PseudonymizableDto { private YesNoUnknown areaInfectedAnimals; @Valid + @Diseases(value = {Disease.MALARIA}, hide = true) private List exposures = new ArrayList<>(); @Valid + @Diseases(value = {Disease.MALARIA}, hide = true) private List activitiesAsCase = new ArrayList<>(); private MalariaEpiDataDto malariaEpiData; diff --git a/sormas-ui/src/main/java/de/symeda/sormas/ui/epidata/EpiDataForm.java b/sormas-ui/src/main/java/de/symeda/sormas/ui/epidata/EpiDataForm.java index 85449539c8c..c7298eb06b4 100644 --- a/sormas-ui/src/main/java/de/symeda/sormas/ui/epidata/EpiDataForm.java +++ b/sormas-ui/src/main/java/de/symeda/sormas/ui/epidata/EpiDataForm.java @@ -55,188 +55,189 @@ public class EpiDataForm extends AbstractEditForm { - private static final long serialVersionUID = 1L; - - private static final String LOC_EXPOSURE_INVESTIGATION_HEADING = "locExposureInvestigationHeading"; - private static final String LOC_ACTIVITY_AS_CASE_INVESTIGATION_HEADING = "locActivityAsCaseInvestigationHeading"; - private static final String LOC_SOURCE_CASE_CONTACTS_HEADING = "locSourceCaseContactsHeading"; - private static final String LOC_EPI_DATA_FIELDS_HINT = "locEpiDataFieldsHint"; - private static final String MALARIA_EPI_FROM = "malariaEpiFrom"; - - //@formatter:off - private static final String MAIN_HTML_LAYOUT = - fluidRowLocs(MALARIA_EPI_FROM)+ - loc(LOC_EXPOSURE_INVESTIGATION_HEADING) + - loc(EpiDataDto.EXPOSURE_DETAILS_KNOWN) + - loc(EpiDataDto.EXPOSURES) + - loc(LOC_ACTIVITY_AS_CASE_INVESTIGATION_HEADING) + - loc(EpiDataDto.ACTIVITY_AS_CASE_DETAILS_KNOWN)+ - loc(EpiDataDto.ACTIVITIES_AS_CASE) + - locCss(VSPACE_TOP_3, LOC_EPI_DATA_FIELDS_HINT) + - loc(EpiDataDto.HIGH_TRANSMISSION_RISK_AREA) + - loc(EpiDataDto.LARGE_OUTBREAKS_AREA) + - loc(EpiDataDto.AREA_INFECTED_ANIMALS); - - private static final String SOURCE_CONTACTS_HTML_LAYOUT = - locCss(VSPACE_TOP_3, LOC_SOURCE_CASE_CONTACTS_HEADING) + - loc(EpiDataDto.CONTACT_WITH_SOURCE_CASE_KNOWN); - //@formatter:on - - private final Disease disease; - private final Class parentClass; - private final Consumer sourceContactsToggleCallback; - private final boolean isPseudonymized; - private MalariaEpiDataForm malariaEpiDataForm; - - public EpiDataForm( - Disease disease, - Class parentClass, - boolean isPseudonymized, - boolean inJurisdiction, - Consumer sourceContactsToggleCallback, - boolean isEditAllowed) { - super( - EpiDataDto.class, - EpiDataDto.I18N_PREFIX, - false, - FieldVisibilityCheckers.withDisease(disease).andWithCountry(FacadeProvider.getConfigFacade().getCountryLocale()), - UiFieldAccessCheckers.forDataAccessLevel(UserProvider.getCurrent().getPseudonymizableDataAccessLevel(inJurisdiction), isPseudonymized), - isEditAllowed); - this.disease = disease; - this.parentClass = parentClass; - this.sourceContactsToggleCallback = sourceContactsToggleCallback; - this.isPseudonymized = isPseudonymized; - addFields(); - } - - @Override - protected void addFields() { - if (disease == null) { - return; - } - - addHeadingsAndInfoTexts(); - - NullableOptionGroup ogExposureDetailsKnown = addField(EpiDataDto.EXPOSURE_DETAILS_KNOWN, NullableOptionGroup.class); - ExposuresField exposuresField = addField(EpiDataDto.EXPOSURES, ExposuresField.class); - exposuresField.setEpiDataParentClass(parentClass); - exposuresField.setWidthFull(); - exposuresField.setPseudonymized(isPseudonymized); - - if (parentClass == CaseDataDto.class) { - addActivityAsCaseFields(); - } - - addField(EpiDataDto.HIGH_TRANSMISSION_RISK_AREA, NullableOptionGroup.class); - addField(EpiDataDto.LARGE_OUTBREAKS_AREA, NullableOptionGroup.class); - addField(EpiDataDto.AREA_INFECTED_ANIMALS, NullableOptionGroup.class); - NullableOptionGroup ogContactWithSourceCaseKnown = addField(EpiDataDto.CONTACT_WITH_SOURCE_CASE_KNOWN, NullableOptionGroup.class); - - if (sourceContactsToggleCallback != null) { - ogContactWithSourceCaseKnown.addValueChangeListener(e -> { - YesNoUnknown sourceContactsKnown = (YesNoUnknown) FieldHelper.getNullableSourceFieldValue((Field) e.getProperty()); - sourceContactsToggleCallback.accept(YesNoUnknown.YES == sourceContactsKnown); - }); - } - - FieldHelper.setVisibleWhen( - getFieldGroup(), - EpiDataDto.EXPOSURES, - EpiDataDto.EXPOSURE_DETAILS_KNOWN, - Collections.singletonList(YesNoUnknown.YES), - true); - - initializeVisibilitiesAndAllowedVisibilities(); - initializeAccessAndAllowedAccesses(); - - exposuresField.addValueChangeListener(e -> { - ogExposureDetailsKnown.setEnabled(CollectionUtils.isEmpty(exposuresField.getValue())); - }); - - if (disease == Disease.MALARIA) { - malariaEpiDataForm = new MalariaEpiDataForm(); - malariaEpiDataForm.setWidth(90, Unit.PERCENTAGE); - getContent().addComponent(malariaEpiDataForm, MALARIA_EPI_FROM); - } - - - } - - public MalariaEpiDataForm getMalariaEpiDataForm() { - return malariaEpiDataForm; - } - - private void addActivityAsCaseFields() { - - getContent().addComponent( - new MultilineLabel( - h3(I18nProperties.getString(Strings.headingActivityAsCase)) - + divsCss(VSPACE_3, I18nProperties.getString(Strings.infoActivityAsCaseInvestigation)), - ContentMode.HTML), - LOC_ACTIVITY_AS_CASE_INVESTIGATION_HEADING); - - NullableOptionGroup ogActivityAsCaseDetailsKnown = addField(EpiDataDto.ACTIVITY_AS_CASE_DETAILS_KNOWN, NullableOptionGroup.class); - ActivityAsCaseField activityAsCaseField = addField(EpiDataDto.ACTIVITIES_AS_CASE, ActivityAsCaseField.class); - activityAsCaseField.setWidthFull(); - activityAsCaseField.setPseudonymized(isPseudonymized); - - FieldHelper.setVisibleWhen( - getFieldGroup(), - EpiDataDto.ACTIVITIES_AS_CASE, - EpiDataDto.ACTIVITY_AS_CASE_DETAILS_KNOWN, - Collections.singletonList(YesNoUnknown.YES), - true); - - activityAsCaseField.addValueChangeListener(e -> { - ogActivityAsCaseDetailsKnown.setEnabled(CollectionUtils.isEmpty(activityAsCaseField.getValue())); - }); - } - - private void addHeadingsAndInfoTexts() { - getContent().addComponent( - new MultilineLabel( - h3(I18nProperties.getString(Strings.headingExposureInvestigation)) - + divsCss( - VSPACE_3, - I18nProperties.getString( - parentClass == ContactDto.class ? Strings.infoExposureInvestigationContacts : Strings.infoExposureInvestigation)), - ContentMode.HTML), - LOC_EXPOSURE_INVESTIGATION_HEADING); - - getContent().addComponent( - new MultilineLabel(divsCss(VSPACE_3, I18nProperties.getString(Strings.infoEpiDataFieldsHint)), ContentMode.HTML), - LOC_EPI_DATA_FIELDS_HINT); - - getContent().addComponent( - new MultilineLabel( - h3(I18nProperties.getString(Strings.headingEpiDataSourceCaseContacts)) - + divsCss(VSPACE_3, I18nProperties.getString(Strings.infoEpiDataSourceCaseContacts)), - ContentMode.HTML), - LOC_SOURCE_CASE_CONTACTS_HEADING); - } - - public void disableContactWithSourceCaseKnownField() { - setEnabled(false, EpiDataDto.CONTACT_WITH_SOURCE_CASE_KNOWN); - } - - public void setGetSourceContactsCallback(Supplier> callback) { - ((ExposuresField) getField(EpiDataDto.EXPOSURES)).setGetSourceContactsCallback(callback); - } - - @Override - protected String createHtmlLayout() { - return parentClass == CaseDataDto.class ? MAIN_HTML_LAYOUT + SOURCE_CONTACTS_HTML_LAYOUT : MAIN_HTML_LAYOUT; - } - - @Override - public void setValue(EpiDataDto newFieldValue) throws ReadOnlyException, Converter.ConversionException { - super.setValue(newFieldValue); - if (malariaEpiDataForm != null) { - if (newFieldValue.getMalariaEpiData() != null) { - malariaEpiDataForm.setValue(newFieldValue.getMalariaEpiData()); - } else { - malariaEpiDataForm.setValue(new MalariaEpiDataDto()); - } - } - } + private static final long serialVersionUID = 1L; + + private static final String LOC_EXPOSURE_INVESTIGATION_HEADING = "locExposureInvestigationHeading"; + private static final String LOC_ACTIVITY_AS_CASE_INVESTIGATION_HEADING = "locActivityAsCaseInvestigationHeading"; + private static final String LOC_SOURCE_CASE_CONTACTS_HEADING = "locSourceCaseContactsHeading"; + private static final String LOC_EPI_DATA_FIELDS_HINT = "locEpiDataFieldsHint"; + private static final String MALARIA_EPI_FROM = "malariaEpiFrom"; + + //@formatter:off + private static final String MAIN_HTML_LAYOUT = + fluidRowLocs(MALARIA_EPI_FROM) + + loc(LOC_EXPOSURE_INVESTIGATION_HEADING) + + loc(EpiDataDto.EXPOSURE_DETAILS_KNOWN) + + loc(EpiDataDto.EXPOSURES) + + loc(LOC_ACTIVITY_AS_CASE_INVESTIGATION_HEADING) + + loc(EpiDataDto.ACTIVITY_AS_CASE_DETAILS_KNOWN) + + loc(EpiDataDto.ACTIVITIES_AS_CASE) + + locCss(VSPACE_TOP_3, LOC_EPI_DATA_FIELDS_HINT) + + loc(EpiDataDto.HIGH_TRANSMISSION_RISK_AREA) + + loc(EpiDataDto.LARGE_OUTBREAKS_AREA) + + loc(EpiDataDto.AREA_INFECTED_ANIMALS); + + private static final String SOURCE_CONTACTS_HTML_LAYOUT = + locCss(VSPACE_TOP_3, LOC_SOURCE_CASE_CONTACTS_HEADING) + + loc(EpiDataDto.CONTACT_WITH_SOURCE_CASE_KNOWN); + //@formatter:on + + private final Disease disease; + private final Class parentClass; + private final Consumer sourceContactsToggleCallback; + private final boolean isPseudonymized; + private MalariaEpiDataForm malariaEpiDataForm; + + public EpiDataForm( + Disease disease, + Class parentClass, + boolean isPseudonymized, + boolean inJurisdiction, + Consumer sourceContactsToggleCallback, + boolean isEditAllowed) { + super( + EpiDataDto.class, + EpiDataDto.I18N_PREFIX, + false, + FieldVisibilityCheckers.withDisease(disease).andWithCountry(FacadeProvider.getConfigFacade().getCountryLocale()), + UiFieldAccessCheckers.forDataAccessLevel(UserProvider.getCurrent().getPseudonymizableDataAccessLevel(inJurisdiction), isPseudonymized), + isEditAllowed); + this.disease = disease; + this.parentClass = parentClass; + this.sourceContactsToggleCallback = sourceContactsToggleCallback; + this.isPseudonymized = isPseudonymized; + addFields(); + } + + @Override + protected void addFields() { + if (disease == null) { + return; + } + if (disease != Disease.MALARIA) { + addHeadingsAndInfoTexts(); + } + NullableOptionGroup ogExposureDetailsKnown = addField(EpiDataDto.EXPOSURE_DETAILS_KNOWN, NullableOptionGroup.class); + ExposuresField exposuresField = addField(EpiDataDto.EXPOSURES, ExposuresField.class); + exposuresField.setEpiDataParentClass(parentClass); + exposuresField.setWidthFull(); + exposuresField.setPseudonymized(isPseudonymized); + + if (parentClass == CaseDataDto.class && disease != Disease.MALARIA) { + addActivityAsCaseFields(); + } + + addField(EpiDataDto.HIGH_TRANSMISSION_RISK_AREA, NullableOptionGroup.class); + addField(EpiDataDto.LARGE_OUTBREAKS_AREA, NullableOptionGroup.class); + addField(EpiDataDto.AREA_INFECTED_ANIMALS, NullableOptionGroup.class); + NullableOptionGroup ogContactWithSourceCaseKnown = addField(EpiDataDto.CONTACT_WITH_SOURCE_CASE_KNOWN, NullableOptionGroup.class); + + if (sourceContactsToggleCallback != null) { + ogContactWithSourceCaseKnown.addValueChangeListener(e -> { + YesNoUnknown sourceContactsKnown = (YesNoUnknown) FieldHelper.getNullableSourceFieldValue((Field) e.getProperty()); + sourceContactsToggleCallback.accept(YesNoUnknown.YES == sourceContactsKnown); + }); + } + + + initializeVisibilitiesAndAllowedVisibilities(); + initializeAccessAndAllowedAccesses(); + + exposuresField.addValueChangeListener(e -> { + ogExposureDetailsKnown.setEnabled(CollectionUtils.isEmpty(exposuresField.getValue())); + }); + + if (disease == Disease.MALARIA) { + malariaEpiDataForm = new MalariaEpiDataForm(); + malariaEpiDataForm.setWidth(90, Unit.PERCENTAGE); + getContent().addComponent(malariaEpiDataForm, MALARIA_EPI_FROM); + } else { + FieldHelper.setVisibleWhen( + getFieldGroup(), + EpiDataDto.EXPOSURES, + EpiDataDto.EXPOSURE_DETAILS_KNOWN, + Collections.singletonList(YesNoUnknown.YES), + true); + } + + + } + + public MalariaEpiDataForm getMalariaEpiDataForm() { + return malariaEpiDataForm; + } + + private void addActivityAsCaseFields() { + + getContent().addComponent( + new MultilineLabel( + h3(I18nProperties.getString(Strings.headingActivityAsCase)) + + divsCss(VSPACE_3, I18nProperties.getString(Strings.infoActivityAsCaseInvestigation)), + ContentMode.HTML), + LOC_ACTIVITY_AS_CASE_INVESTIGATION_HEADING); + + NullableOptionGroup ogActivityAsCaseDetailsKnown = addField(EpiDataDto.ACTIVITY_AS_CASE_DETAILS_KNOWN, NullableOptionGroup.class); + ActivityAsCaseField activityAsCaseField = addField(EpiDataDto.ACTIVITIES_AS_CASE, ActivityAsCaseField.class); + activityAsCaseField.setWidthFull(); + activityAsCaseField.setPseudonymized(isPseudonymized); + + FieldHelper.setVisibleWhen( + getFieldGroup(), + EpiDataDto.ACTIVITIES_AS_CASE, + EpiDataDto.ACTIVITY_AS_CASE_DETAILS_KNOWN, + Collections.singletonList(YesNoUnknown.YES), + true); + + activityAsCaseField.addValueChangeListener(e -> { + ogActivityAsCaseDetailsKnown.setEnabled(CollectionUtils.isEmpty(activityAsCaseField.getValue())); + }); + } + + private void addHeadingsAndInfoTexts() { + getContent().addComponent( + new MultilineLabel( + h3(I18nProperties.getString(Strings.headingExposureInvestigation)) + + divsCss( + VSPACE_3, + I18nProperties.getString( + parentClass == ContactDto.class ? Strings.infoExposureInvestigationContacts : Strings.infoExposureInvestigation)), + ContentMode.HTML), + LOC_EXPOSURE_INVESTIGATION_HEADING); + + getContent().addComponent( + new MultilineLabel(divsCss(VSPACE_3, I18nProperties.getString(Strings.infoEpiDataFieldsHint)), ContentMode.HTML), + LOC_EPI_DATA_FIELDS_HINT); + + getContent().addComponent( + new MultilineLabel( + h3(I18nProperties.getString(Strings.headingEpiDataSourceCaseContacts)) + + divsCss(VSPACE_3, I18nProperties.getString(Strings.infoEpiDataSourceCaseContacts)), + ContentMode.HTML), + LOC_SOURCE_CASE_CONTACTS_HEADING); + } + + public void disableContactWithSourceCaseKnownField() { + setEnabled(false, EpiDataDto.CONTACT_WITH_SOURCE_CASE_KNOWN); + } + + public void setGetSourceContactsCallback(Supplier> callback) { + ((ExposuresField) getField(EpiDataDto.EXPOSURES)).setGetSourceContactsCallback(callback); + } + + @Override + protected String createHtmlLayout() { + return parentClass == CaseDataDto.class ? MAIN_HTML_LAYOUT + SOURCE_CONTACTS_HTML_LAYOUT : MAIN_HTML_LAYOUT; + } + + @Override + public void setValue(EpiDataDto newFieldValue) throws ReadOnlyException, Converter.ConversionException { + super.setValue(newFieldValue); + if (malariaEpiDataForm != null) { + if (newFieldValue.getMalariaEpiData() != null) { + malariaEpiDataForm.setValue(newFieldValue.getMalariaEpiData()); + } else { + malariaEpiDataForm.setValue(new MalariaEpiDataDto()); + } + } + } } From ba541d57ac42de80d147bfc6038d698c14560610 Mon Sep 17 00:00:00 2001 From: aj sharma Date: Mon, 10 Jul 2023 14:12:42 +0545 Subject: [PATCH 3/3] refactor-api: Give name caption to enum of MalaraiEpiData field. Caption for CaseDetectionMethod, ActiveCaseDetection, PreventiveMeasures, PlasmodiumSpecies --- .../api/epidata/ActiveCaseDetection.java | 8 ++++++- .../api/epidata/CaseDetectionMethod.java | 8 ++++++- .../api/epidata/PreventiveMeasures.java | 8 ++++++- .../api/symptoms/PlasmodiumSpecies.java | 8 ++++++- sormas-api/src/main/resources/enum.properties | 15 ++++++++++++ .../src/main/resources/enum_ne-NP.properties | 23 +++++++++++++++++++ 6 files changed, 66 insertions(+), 4 deletions(-) diff --git a/sormas-api/src/main/java/de/symeda/sormas/api/epidata/ActiveCaseDetection.java b/sormas-api/src/main/java/de/symeda/sormas/api/epidata/ActiveCaseDetection.java index b110a0f9b6b..113de4ae7df 100644 --- a/sormas-api/src/main/java/de/symeda/sormas/api/epidata/ActiveCaseDetection.java +++ b/sormas-api/src/main/java/de/symeda/sormas/api/epidata/ActiveCaseDetection.java @@ -1,9 +1,15 @@ package de.symeda.sormas.api.epidata; +import de.symeda.sormas.api.i18n.I18nProperties; + public enum ActiveCaseDetection { HOUSE_TO_HOUSE_VISIT, MOBILE_MALARIA_CLINIC, CONTACT_SURVEY, FEVER_SURVEY, - POPULATION_BASE_SURVEY + POPULATION_BASE_SURVEY; + @Override + public String toString() { + return I18nProperties.getEnumCaption(this); + } } diff --git a/sormas-api/src/main/java/de/symeda/sormas/api/epidata/CaseDetectionMethod.java b/sormas-api/src/main/java/de/symeda/sormas/api/epidata/CaseDetectionMethod.java index 5c1124c016e..8941e891c30 100644 --- a/sormas-api/src/main/java/de/symeda/sormas/api/epidata/CaseDetectionMethod.java +++ b/sormas-api/src/main/java/de/symeda/sormas/api/epidata/CaseDetectionMethod.java @@ -1,6 +1,12 @@ package de.symeda.sormas.api.epidata; +import de.symeda.sormas.api.i18n.I18nProperties; + public enum CaseDetectionMethod { ACTIVE_CASE_DETECTION, - PASSIVE_CASE_DETECTION + PASSIVE_CASE_DETECTION; + @Override + public String toString() { + return I18nProperties.getEnumCaption(this); + } } diff --git a/sormas-api/src/main/java/de/symeda/sormas/api/epidata/PreventiveMeasures.java b/sormas-api/src/main/java/de/symeda/sormas/api/epidata/PreventiveMeasures.java index e64731ce6f1..2bdb0cf77ec 100644 --- a/sormas-api/src/main/java/de/symeda/sormas/api/epidata/PreventiveMeasures.java +++ b/sormas-api/src/main/java/de/symeda/sormas/api/epidata/PreventiveMeasures.java @@ -1,9 +1,15 @@ package de.symeda.sormas.api.epidata; +import de.symeda.sormas.api.i18n.I18nProperties; + public enum PreventiveMeasures { NOT_TAKEN, NORMAL_NET, LLIN, CHEMOPROPHYLAXIS, - OTHER + OTHER; + @Override + public String toString() { + return I18nProperties.getEnumCaption(this); + } } diff --git a/sormas-api/src/main/java/de/symeda/sormas/api/symptoms/PlasmodiumSpecies.java b/sormas-api/src/main/java/de/symeda/sormas/api/symptoms/PlasmodiumSpecies.java index 6a20026084e..fe644be6140 100644 --- a/sormas-api/src/main/java/de/symeda/sormas/api/symptoms/PlasmodiumSpecies.java +++ b/sormas-api/src/main/java/de/symeda/sormas/api/symptoms/PlasmodiumSpecies.java @@ -1,5 +1,7 @@ package de.symeda.sormas.api.symptoms; +import de.symeda.sormas.api.i18n.I18nProperties; + public enum PlasmodiumSpecies { VIVAX, FALCIPARUM, @@ -7,5 +9,9 @@ public enum PlasmodiumSpecies { MALARIEA, KNOWLESI, MIXED_INFECTION, - UN_KNOW + UNKNOWN; + @Override + public String toString() { + return I18nProperties.getEnumCaption(this); + } } diff --git a/sormas-api/src/main/resources/enum.properties b/sormas-api/src/main/resources/enum.properties index ba1775dfb17..7052c43d127 100644 --- a/sormas-api/src/main/resources/enum.properties +++ b/sormas-api/src/main/resources/enum.properties @@ -2156,3 +2156,18 @@ S2SOwnershipStatusFilter.ALL=All #ShareRequestViewType ShareRequestViewType.INCOMING=Incoming ShareRequestViewType.OUTGOING=Outgoing + +CaseDetectionMethod.ACTIVE_CASE_DETECTION=Active Case Detection +CaseDetectionMethod.PASSIVE_CASE_DETECTION=Passive Case Detection + +ActiveCaseDetection.HOUSE_TO_HOUSE_VISIT=House to house visit +ActiveCaseDetection.MOBILE_MALARIA_CLINIC=Mobile malaria clinic +ActiveCaseDetection.CONTACT_SURVEY=Contact Survey +ActiveCaseDetection.FEVER_SURVEY=Fever Survey +ActiveCaseDetection.POPULATION_BASE_SURVEY=Population base survey + +PreventiveMeasures.NOT_TAKEN=Not taken +PreventiveMeasures.NORMAL_NET=Normal net +PreventiveMeasures.LLIN=LLIN +PreventiveMeasures.CHEMOPROPHYLAXIS=Chemoprophylaxis +PreventiveMeasures.OTHER=Other diff --git a/sormas-api/src/main/resources/enum_ne-NP.properties b/sormas-api/src/main/resources/enum_ne-NP.properties index 2f8a27fa68e..2221c2acb56 100644 --- a/sormas-api/src/main/resources/enum_ne-NP.properties +++ b/sormas-api/src/main/resources/enum_ne-NP.properties @@ -2153,3 +2153,26 @@ S2SOwnershipStatusFilter.ALL=All #ShareRequestViewType ShareRequestViewType.INCOMING=Incoming ShareRequestViewType.OUTGOING=Outgoing + +CaseDetectionMethod.ACTIVE_CASE_DETECTION=Active Case Detection +CaseDetectionMethod.PASSIVE_CASE_DETECTION=Passive Case Detection + +ActiveCaseDetection.HOUSE_TO_HOUSE_VISIT=House to house visit +ActiveCaseDetection.MOBILE_MALARIA_CLINIC=Mobile malaria clinic +ActiveCaseDetection.CONTACT_SURVEY=Contact Survey +ActiveCaseDetection.FEVER_SURVEY=Fever Survey +ActiveCaseDetection.POPULATION_BASE_SURVEY=Population base survey + +PreventiveMeasures.NOT_TAKEN=Not taken +PreventiveMeasures.NORMAL_NET=Normal net +PreventiveMeasures.LLIN=LLIN +PreventiveMeasures.CHEMOPROPHYLAXIS=Chemoprophylaxis +PreventiveMeasures.OTHER=Other + +PlasmodiumSpecies.VIVAX=Vivax +PlasmodiumSpecies.FALCIPARUM=Falciparum +PlasmodiumSpecies.OVALE=Ovale +PlasmodiumSpecies.MALARIEA=Malaria +PlasmodiumSpecies.KNOWLESI=Knowlesi +PlasmodiumSpecies.MIXED_INFECTION=Mixed Infection +PlasmodiumSpecies.UNKNOWN=Unknown