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..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") + @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 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; }