From 73cf097d338f72409995d271b2d6eac418a17df0 Mon Sep 17 00:00:00 2001 From: Sneha Date: Fri, 19 Jun 2026 14:04:19 +0530 Subject: [PATCH 1/2] fix: 2346 handling duplicate entry of clinical observation --- .../BenClinicalObservationsRepo.java | 2 +- .../transaction/CommonDoctorServiceImpl.java | 14 ++++++++++---- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/iemr/tm/repo/quickConsultation/BenClinicalObservationsRepo.java b/src/main/java/com/iemr/tm/repo/quickConsultation/BenClinicalObservationsRepo.java index 9eacd437..36eca87f 100644 --- a/src/main/java/com/iemr/tm/repo/quickConsultation/BenClinicalObservationsRepo.java +++ b/src/main/java/com/iemr/tm/repo/quickConsultation/BenClinicalObservationsRepo.java @@ -47,7 +47,7 @@ public interface BenClinicalObservationsRepo extends CrudRepository getFindingsData(@Param("benRegID") Long benRegID, @Param("visitCode") Long visitCode); - @Query("SELECT processed from BenClinicalObservations where beneficiaryRegID=:benRegID AND visitCode = :visitCode") + @Query("SELECT processed from BenClinicalObservations where beneficiaryRegID=:benRegID AND visitCode = :visitCode ORDER BY clinicalObservationID DESC LIMIT 1") public String getBenClinicalObservationStatus(@Param("benRegID") Long benRegID, @Param("visitCode") Long visitCode); @Transactional diff --git a/src/main/java/com/iemr/tm/service/common/transaction/CommonDoctorServiceImpl.java b/src/main/java/com/iemr/tm/service/common/transaction/CommonDoctorServiceImpl.java index 32661569..f5d67cf9 100644 --- a/src/main/java/com/iemr/tm/service/common/transaction/CommonDoctorServiceImpl.java +++ b/src/main/java/com/iemr/tm/service/common/transaction/CommonDoctorServiceImpl.java @@ -195,10 +195,16 @@ public Integer saveDocFindings(WrapperAncFindings wrapperAncFindings) { int clinicalObservationFlag = 0; int chiefComFlag = 0; - // save clinical observation - BenClinicalObservations benClinicalObservationsRS = benClinicalObservationsRepo - .save(getBenClinicalObservations(wrapperAncFindings)); - if (benClinicalObservationsRS != null) { + // save clinical observation — guard against duplicate insert for same visit + String existingObsStatus = benClinicalObservationsRepo.getBenClinicalObservationStatus( + wrapperAncFindings.getBeneficiaryRegID(), wrapperAncFindings.getVisitCode()); + if (existingObsStatus == null) { + BenClinicalObservations benClinicalObservationsRS = benClinicalObservationsRepo + .save(getBenClinicalObservations(wrapperAncFindings)); + if (benClinicalObservationsRS != null) { + clinicalObservationFlag = 1; + } + } else { clinicalObservationFlag = 1; } From 3916bc0363d1c08d18890e6c5c5638b1fc498a94 Mon Sep 17 00:00:00 2001 From: Sneha Date: Fri, 19 Jun 2026 14:12:00 +0530 Subject: [PATCH 2/2] fix: 2346 ignoring softdeleted data --- .../tm/repo/quickConsultation/BenClinicalObservationsRepo.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/iemr/tm/repo/quickConsultation/BenClinicalObservationsRepo.java b/src/main/java/com/iemr/tm/repo/quickConsultation/BenClinicalObservationsRepo.java index 36eca87f..3a77e8ab 100644 --- a/src/main/java/com/iemr/tm/repo/quickConsultation/BenClinicalObservationsRepo.java +++ b/src/main/java/com/iemr/tm/repo/quickConsultation/BenClinicalObservationsRepo.java @@ -47,7 +47,7 @@ public interface BenClinicalObservationsRepo extends CrudRepository getFindingsData(@Param("benRegID") Long benRegID, @Param("visitCode") Long visitCode); - @Query("SELECT processed from BenClinicalObservations where beneficiaryRegID=:benRegID AND visitCode = :visitCode ORDER BY clinicalObservationID DESC LIMIT 1") + @Query("SELECT processed from BenClinicalObservations where beneficiaryRegID=:benRegID AND visitCode = :visitCode AND deleted = false ORDER BY clinicalObservationID DESC LIMIT 1") public String getBenClinicalObservationStatus(@Param("benRegID") Long benRegID, @Param("visitCode") Long visitCode); @Transactional