diff --git a/sormas-ui/src/main/java/de/symeda/sormas/ui/exposure/ExposureForm.java b/sormas-ui/src/main/java/de/symeda/sormas/ui/exposure/ExposureForm.java index 032da81001c..37b69d77146 100644 --- a/sormas-ui/src/main/java/de/symeda/sormas/ui/exposure/ExposureForm.java +++ b/sormas-ui/src/main/java/de/symeda/sormas/ui/exposure/ExposureForm.java @@ -31,6 +31,7 @@ import java.util.List; import java.util.Map; import java.util.Set; +import java.util.stream.Stream; import com.vaadin.icons.VaadinIcons; import com.vaadin.shared.ui.ContentMode; @@ -500,7 +501,12 @@ private void updateSettingFieldItems(ExposureCategory category) { FieldHelper.updateItems(settingField, settings); // Clear the field and its dependent details field - settingField.setValue(null); + // if the disease is Malaria or Dengue and the category is VECTOR_BORNE, preselect MOSQUITO_BORNE as setting (since it's the only valid option in this case) + ExposureSetting defaultSetting = + Stream.of(Disease.MALARIA, Disease.DENGUE).anyMatch(d -> d == disease) && category == ExposureCategory.VECTOR_BORNE + ? ExposureSetting.MOSQUITO_BORNE + : null; + settingField.setValue(defaultSetting); settingDetailsField.setValue(null); settingDetailsField.setVisible(false); diff --git a/sormas-ui/src/main/java/de/symeda/sormas/ui/exposure/ExposuresField.java b/sormas-ui/src/main/java/de/symeda/sormas/ui/exposure/ExposuresField.java index 7562f13347e..36258700f7a 100644 --- a/sormas-ui/src/main/java/de/symeda/sormas/ui/exposure/ExposuresField.java +++ b/sormas-ui/src/main/java/de/symeda/sormas/ui/exposure/ExposuresField.java @@ -74,6 +74,7 @@ public class ExposuresField extends AbstractTableField { private static final String COLUMN_DATE = Captions.date; private static final String COLUMN_ADDRESS = Captions.address; private static final String COLUMN_DESCRIPTION = ExposureDto.DESCRIPTION; + private static final String COLUMN_PROPHYLAXIS_ADHERENCE = ExposureDto.PROPHYLAXIS_ADHERENCE; private final FieldVisibilityCheckers fieldVisibilityCheckers; private Supplier> getSourceContactsCallback; @@ -106,6 +107,7 @@ protected void updateColumns() { ACTION_COLUMN_ID, COLUMN_EXPOSURE_CATEGORY, COLUMN_EXPOSURE_SETTING, + COLUMN_PROPHYLAXIS_ADHERENCE, COLUMN_DATE, COLUMN_ADDRESS, COLUMN_DESCRIPTION); @@ -165,7 +167,6 @@ private void addGeneratedColumns(Table table) { if (exposure.getSubSettings() != null && !exposure.getSubSettings().isEmpty()) { return exposure.getSubSettings().stream().map(Object::toString).collect(Collectors.joining(", ")); } - return ""; default: return exposure.getExposureSetting() != null ? exposure.getExposureSetting().toString() : ""; @@ -191,6 +192,10 @@ private void addGeneratedColumns(Table table) { return descriptionLabel; }); + table.addGeneratedColumn(COLUMN_PROPHYLAXIS_ADHERENCE, (Table.ColumnGenerator) (source, itemId, columnId) -> { + ExposureDto exposure = (ExposureDto) itemId; + return exposure.getProphylaxisAdherence() != null ? exposure.getProphylaxisAdherence().toString() : ""; + }); } @Override