From c9067ad8a0bd451420a1b5187f1f9791d68f9cd7 Mon Sep 17 00:00:00 2001 From: chetansaroya Date: Thu, 15 Oct 2026 17:45:43 +0530 Subject: [PATCH 1/2] feat: stop-639 add side_effects to tb_confirmed_cases and include in save and get DTOs --- src/main/java/com/iemr/flw/domain/iemr/TBConfirmedCase.java | 3 +++ src/main/java/com/iemr/flw/domain/iemr/TBConfirmedCaseDTO.java | 1 + .../com/iemr/flw/service/impl/TBConfirmedCaseServiceImpl.java | 2 ++ 3 files changed, 6 insertions(+) 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 c2c51a6fb..00ee0dd44 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 7a5211779..57ca7afd4 100644 --- a/src/main/java/com/iemr/flw/domain/iemr/TBConfirmedCaseDTO.java +++ b/src/main/java/com/iemr/flw/domain/iemr/TBConfirmedCaseDTO.java @@ -30,5 +30,6 @@ public class TBConfirmedCaseDTO { private String reasonForDeath ; private String reasonForNotCompleting; private Boolean counselled; + private String 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 836d853ac..ccd7290f4 100644 --- a/src/main/java/com/iemr/flw/service/impl/TBConfirmedCaseServiceImpl.java +++ b/src/main/java/com/iemr/flw/service/impl/TBConfirmedCaseServiceImpl.java @@ -102,6 +102,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(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,6 +252,7 @@ private TBConfirmedCaseDTO toDTO(TBConfirmedCase entity) { dto.setReasonForNotCompleting(entity.getReasonForNotCompleting()); dto.setUpdateDate(entity.getLastModDate()); dto.setUpdatedBy(entity.getModifiedBy()); + dto.setSideEffects(entity.getSideEffects()); return dto; } From 0f208b0ee459ad0076b0e78f9bd88273b82be593 Mon Sep 17 00:00:00 2001 From: chetansaroya Date: Thu, 15 Oct 2026 18:56:25 +0530 Subject: [PATCH 2/2] feat: stop-639 accepts list of side effects and returned the same --- .../flw/domain/iemr/TBConfirmedCaseDTO.java | 3 ++- .../impl/TBConfirmedCaseServiceImpl.java | 21 +++++++++++++++++-- 2 files changed, 21 insertions(+), 3 deletions(-) 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 57ca7afd4..5e2e5ceb5 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,6 +31,6 @@ public class TBConfirmedCaseDTO { private String reasonForDeath ; private String reasonForNotCompleting; private Boolean counselled; - private String sideEffects; + 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 ccd7290f4..d5018cf09 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,7 +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(dto.getSideEffects()); + 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); @@ -252,8 +254,23 @@ private TBConfirmedCaseDTO toDTO(TBConfirmedCase entity) { dto.setReasonForNotCompleting(entity.getReasonForNotCompleting()); dto.setUpdateDate(entity.getLastModDate()); dto.setUpdatedBy(entity.getModifiedBy()); - dto.setSideEffects(entity.getSideEffects()); + 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()); + } }