diff --git a/src/main/java/com/iemr/flw/domain/iemr/TBConfirmedCase.java b/src/main/java/com/iemr/flw/domain/iemr/TBConfirmedCase.java index c2c51a6f..00ee0dd4 100644 --- a/src/main/java/com/iemr/flw/domain/iemr/TBConfirmedCase.java +++ b/src/main/java/com/iemr/flw/domain/iemr/TBConfirmedCase.java @@ -102,4 +102,7 @@ public class TBConfirmedCase { @Column(name = "visitCode") private Long visitCode; + + @Column(name = "side_effects") + private String sideEffects; } diff --git a/src/main/java/com/iemr/flw/domain/iemr/TBConfirmedCaseDTO.java b/src/main/java/com/iemr/flw/domain/iemr/TBConfirmedCaseDTO.java index 7a521177..5e2e5ceb 100644 --- a/src/main/java/com/iemr/flw/domain/iemr/TBConfirmedCaseDTO.java +++ b/src/main/java/com/iemr/flw/domain/iemr/TBConfirmedCaseDTO.java @@ -5,6 +5,7 @@ import java.sql.Timestamp; import java.time.LocalDate; +import java.util.List; @Data public class TBConfirmedCaseDTO { @@ -30,5 +31,6 @@ public class TBConfirmedCaseDTO { private String reasonForDeath ; private String reasonForNotCompleting; private Boolean counselled; + private List sideEffects; } diff --git a/src/main/java/com/iemr/flw/service/impl/TBConfirmedCaseServiceImpl.java b/src/main/java/com/iemr/flw/service/impl/TBConfirmedCaseServiceImpl.java index 836d853a..d5018cf0 100644 --- a/src/main/java/com/iemr/flw/service/impl/TBConfirmedCaseServiceImpl.java +++ b/src/main/java/com/iemr/flw/service/impl/TBConfirmedCaseServiceImpl.java @@ -25,6 +25,8 @@ import java.sql.Timestamp; import java.time.LocalDate; +import java.util.ArrayList; +import java.util.Arrays; import java.util.Collections; import java.util.HashSet; import java.util.List; @@ -102,6 +104,7 @@ public String save(List request, String authorisation) throw entity.setPlaceOfDeath(dto.getPlaceOfDeath()); entity.setReasonForDeath(dto.getReasonForDeath()); entity.setReasonForNotCompleting(dto.getReasonForNotCompleting()); + if (dto.getSideEffects() != null) entity.setSideEffects(joinSideEffects(dto.getSideEffects())); // Stop TB / Nikshay reporting — same gap as tb_suspected: benRegID is computed // above for the visit lookup but was never persisted onto the entity. entity.setBenRegID(beneficiaryRegID); @@ -251,7 +254,23 @@ private TBConfirmedCaseDTO toDTO(TBConfirmedCase entity) { dto.setReasonForNotCompleting(entity.getReasonForNotCompleting()); dto.setUpdateDate(entity.getLastModDate()); dto.setUpdatedBy(entity.getModifiedBy()); + dto.setSideEffects(splitSideEffects(entity.getSideEffects())); return dto; } + + private String joinSideEffects(List sideEffects) { + return sideEffects.stream() + .filter(s -> s != null && !s.isBlank()) + .map(String::trim) + .collect(Collectors.joining(",")); + } + + private List splitSideEffects(String sideEffects) { + if (sideEffects == null) return new ArrayList<>(); + return Arrays.stream(sideEffects.split(",")) + .map(String::trim) + .filter(s -> !s.isEmpty()) + .collect(Collectors.toList()); + } }