diff --git a/src/main/java/com/iemr/flw/domain/iemr/AHDForm.java b/src/main/java/com/iemr/flw/domain/iemr/AHDForm.java index f5565b3d..808ba782 100644 --- a/src/main/java/com/iemr/flw/domain/iemr/AHDForm.java +++ b/src/main/java/com/iemr/flw/domain/iemr/AHDForm.java @@ -26,13 +26,11 @@ public class AHDForm { @Column(name = "ahd_date") private String ahdDate; - @Lob @Column(name = "image1") - private byte[] image1; + private String image1; - @Lob @Column(name = "image2") - private byte[] image2; + private String image2; @Column(name = "user_id") private Long userId; diff --git a/src/main/java/com/iemr/flw/domain/iemr/DewormingForm.java b/src/main/java/com/iemr/flw/domain/iemr/DewormingForm.java index 3df5156b..1638e52e 100644 --- a/src/main/java/com/iemr/flw/domain/iemr/DewormingForm.java +++ b/src/main/java/com/iemr/flw/domain/iemr/DewormingForm.java @@ -29,13 +29,11 @@ public class DewormingForm { @Column(name = "age_group") private Integer ageGroup; - @Lob @Column(name = "image1") - private byte[] image1; + private String image1; - @Lob @Column(name = "image2") - private byte[] image2; + private String image2; @Column(name = "user_id") private Long userId; diff --git a/src/main/java/com/iemr/flw/domain/iemr/PHCReviewForm.java b/src/main/java/com/iemr/flw/domain/iemr/PHCReviewForm.java index 9670f08f..42665c94 100644 --- a/src/main/java/com/iemr/flw/domain/iemr/PHCReviewForm.java +++ b/src/main/java/com/iemr/flw/domain/iemr/PHCReviewForm.java @@ -26,13 +26,11 @@ public class PHCReviewForm { @Column(name = "no_of_beneficiaries_attended") private Integer noOfBeneficiariesAttended; - @Lob @Column(name = "image1") - private byte[] image1; + private String image1; - @Lob @Column(name = "image2") - private byte[] image2; + private String image2; @Column(name = "user_id") private Long userId; diff --git a/src/main/java/com/iemr/flw/domain/iemr/VHNDForm.java b/src/main/java/com/iemr/flw/domain/iemr/VHNDForm.java index c940e8ea..2de5f606 100644 --- a/src/main/java/com/iemr/flw/domain/iemr/VHNDForm.java +++ b/src/main/java/com/iemr/flw/domain/iemr/VHNDForm.java @@ -28,13 +28,11 @@ public class VHNDForm { @Column(name = "no_of_beneficiaries_attended") private Integer noOfBeneficiariesAttended; - @Lob @Column(name = "image1") - private byte[] image1; + private String image1; - @Lob @Column(name = "image2") - private byte[] image2; + private String image2; @Column(name = "form_type") private String formType; diff --git a/src/main/java/com/iemr/flw/domain/iemr/VhncForm.java b/src/main/java/com/iemr/flw/domain/iemr/VhncForm.java index 25bec935..2e636070 100644 --- a/src/main/java/com/iemr/flw/domain/iemr/VhncForm.java +++ b/src/main/java/com/iemr/flw/domain/iemr/VhncForm.java @@ -26,13 +26,11 @@ public class VhncForm { @Column(name = "no_of_beneficiaries_attended") private Integer noOfBeneficiariesAttended; - @Lob @Column(name = "image1") - private byte[] image1; + private String image1; - @Lob @Column(name = "image2") - private byte[] image2; + private String image2; @Column(name = "user_id") private Long userId; diff --git a/src/main/java/com/iemr/flw/dto/iemr/AhDMeetingFormDTO.java b/src/main/java/com/iemr/flw/dto/iemr/AhDMeetingFormDTO.java index fdb6b9bb..0ecc31be 100644 --- a/src/main/java/com/iemr/flw/dto/iemr/AhDMeetingFormDTO.java +++ b/src/main/java/com/iemr/flw/dto/iemr/AhDMeetingFormDTO.java @@ -8,6 +8,6 @@ public class AhDMeetingFormDTO { private String mobilizedForAHD; private String ahdPlace; private String ahdDate; - private byte[] image1; - private byte[] image2; + private String image1; + private String image2; } \ No newline at end of file diff --git a/src/main/java/com/iemr/flw/dto/iemr/DewormingFormDTO.java b/src/main/java/com/iemr/flw/dto/iemr/DewormingFormDTO.java index f7d6fa2b..3c3feb61 100644 --- a/src/main/java/com/iemr/flw/dto/iemr/DewormingFormDTO.java +++ b/src/main/java/com/iemr/flw/dto/iemr/DewormingFormDTO.java @@ -12,6 +12,6 @@ public class DewormingFormDTO { private String dewormingDate; private String dewormingLocation; private Integer ageGroup; - private byte[] image1; - private byte[] image2; + private String image1; + private String image2; } \ No newline at end of file diff --git a/src/main/java/com/iemr/flw/dto/iemr/PhcReviewMeetingFormDTO.java b/src/main/java/com/iemr/flw/dto/iemr/PhcReviewMeetingFormDTO.java index 4a88d0bd..b08386c6 100644 --- a/src/main/java/com/iemr/flw/dto/iemr/PhcReviewMeetingFormDTO.java +++ b/src/main/java/com/iemr/flw/dto/iemr/PhcReviewMeetingFormDTO.java @@ -13,8 +13,8 @@ public class PhcReviewMeetingFormDTO { private String mitaninHistory; private String mitaninActivityCheckList; private Integer placeId; - private byte[] image1; - private byte[] image2; + private String image1; + private String image2; diff --git a/src/main/java/com/iemr/flw/dto/iemr/VHNDFormDTO.java b/src/main/java/com/iemr/flw/dto/iemr/VHNDFormDTO.java index 3ab43785..aa99186a 100644 --- a/src/main/java/com/iemr/flw/dto/iemr/VHNDFormDTO.java +++ b/src/main/java/com/iemr/flw/dto/iemr/VHNDFormDTO.java @@ -35,8 +35,8 @@ public class VHNDFormDTO { private String vhndDate; private String place; private Integer noOfBeneficiariesAttended; - private byte[] image1; - private byte[] image2; + private String image1; + private String image2; private Integer vhndPlaceId; private String pregnantWomenAnc; private String lactatingMothersPnc; diff --git a/src/main/java/com/iemr/flw/dto/iemr/VhncFormDTO.java b/src/main/java/com/iemr/flw/dto/iemr/VhncFormDTO.java index 45f15968..a2515b42 100644 --- a/src/main/java/com/iemr/flw/dto/iemr/VhncFormDTO.java +++ b/src/main/java/com/iemr/flw/dto/iemr/VhncFormDTO.java @@ -32,8 +32,8 @@ public class VhncFormDTO { private String vhncDate; private String place; private Integer noOfBeneficiariesAttended; - private byte[] image1; - private byte[] image2; + private String image1; + private String image2; private String villageName; private Integer anm; private Integer aww; diff --git a/src/main/java/com/iemr/flw/repo/iemr/BenReferDetailsRepo.java b/src/main/java/com/iemr/flw/repo/iemr/BenReferDetailsRepo.java index a475476a..ca674976 100644 --- a/src/main/java/com/iemr/flw/repo/iemr/BenReferDetailsRepo.java +++ b/src/main/java/com/iemr/flw/repo/iemr/BenReferDetailsRepo.java @@ -30,6 +30,7 @@ import org.springframework.data.repository.query.Param; import org.springframework.stereotype.Repository; +import java.sql.Timestamp; import java.util.List; import java.util.Optional; @@ -53,6 +54,21 @@ public interface BenReferDetailsRepo extends JpaRepository= :startDate + AND revisitDate < :endDate + ORDER BY revisitDate ASC + LIMIT 1 OFFSET 9 + """, nativeQuery = true) + Timestamp findTenthReferralDate( + @Param("userName") String userName, + @Param("startDate") Timestamp startDate, + @Param("endDate") Timestamp endDate + ); + @Query(value = """ SELECT COUNT(*) FROM db_iemr.t_benreferdetails diff --git a/src/main/java/com/iemr/flw/service/impl/ChildCareServiceImpl.java b/src/main/java/com/iemr/flw/service/impl/ChildCareServiceImpl.java index adf47563..a7ff3e3a 100644 --- a/src/main/java/com/iemr/flw/service/impl/ChildCareServiceImpl.java +++ b/src/main/java/com/iemr/flw/service/impl/ChildCareServiceImpl.java @@ -959,7 +959,7 @@ private void checkAndAddHbyncIncentives(List hbycList) { } if(hbyc.getIfa_given() && eligibleHbycVisits.contains(hbyc.getVisit_day())){ if(hbyncLactatingIronPacketActivityCH!=null){ - createIncentiveRecordforHbyncVisit(hbyc, hbyc.getBeneficiaryId(), hbyncLactatingIronPacketActivityCH, hbyc.getCreated_by()); + createIncentiveRecordforHbyncVisit(hbyc, 0L, hbyncLactatingIronPacketActivityCH, hbyc.getCreated_by()); } @@ -1296,16 +1296,16 @@ private void checkAndAddIncentives(List vaccinationList) { private void createIncentiveRecord(ChildVaccination vaccination, Long benId, Integer userId, IncentiveActivity immunizationActivity) { IncentiveActivityRecord record = recordRepo - .findRecordByActivityIdCreatedDateBenId(immunizationActivity.getId(), vaccination.getCreatedDate(), benId,userId); + .findRecordByActivityIdCreatedDateBenId(immunizationActivity.getId(), vaccination.getReceivedDate(), benId,userId); if (record == null) { record = new IncentiveActivityRecord(); record.setActivityId(immunizationActivity.getId()); - record.setCreatedDate(vaccination.getCreatedDate()); + record.setCreatedDate(vaccination.getReceivedDate()); record.setCreatedBy(vaccination.getCreatedBy()); - record.setStartDate(vaccination.getCreatedDate()); - record.setEndDate(vaccination.getCreatedDate()); - record.setUpdatedDate(vaccination.getCreatedDate()); + record.setStartDate(vaccination.getReceivedDate()); + record.setEndDate(vaccination.getReceivedDate()); + record.setUpdatedDate(vaccination.getReceivedDate()); record.setUpdatedBy(vaccination.getCreatedBy()); record.setBenId(benId); record.setAshaId(userId); diff --git a/src/main/java/com/iemr/flw/service/impl/CoupleServiceImpl.java b/src/main/java/com/iemr/flw/service/impl/CoupleServiceImpl.java index e12a1c87..6054b1b9 100644 --- a/src/main/java/com/iemr/flw/service/impl/CoupleServiceImpl.java +++ b/src/main/java/com/iemr/flw/service/impl/CoupleServiceImpl.java @@ -378,15 +378,15 @@ private void createIncentiveRecord(EligibleCoupleRegister eligibleCoupleDTO, Inc Integer userId = userRepo.getUserIdByName(eligibleCoupleDTO.getCreatedBy()); IncentiveActivityRecord record = recordRepo - .findRecordByActivityIdCreatedDateBenId(activity.getId(), eligibleCoupleDTO.getCreatedDate(), eligibleCoupleDTO.getBenId(),userId); + .findRecordByActivityIdCreatedDateBenId(activity.getId(), eligibleCoupleDTO.getRegistrationDate(), eligibleCoupleDTO.getBenId(),userId); if (record == null) { record = new IncentiveActivityRecord(); record.setActivityId(activity.getId()); - record.setCreatedDate(eligibleCoupleDTO.getCreatedDate()); + record.setCreatedDate(eligibleCoupleDTO.getRegistrationDate()); record.setCreatedBy(eligibleCoupleDTO.getCreatedBy()); - record.setStartDate(eligibleCoupleDTO.getCreatedDate()); - record.setEndDate(eligibleCoupleDTO.getCreatedDate()); - record.setUpdatedDate(eligibleCoupleDTO.getCreatedDate()); + record.setStartDate(eligibleCoupleDTO.getRegistrationDate()); + record.setEndDate(eligibleCoupleDTO.getRegistrationDate()); + record.setUpdatedDate(eligibleCoupleDTO.getRegistrationDate()); record.setUpdatedBy(eligibleCoupleDTO.getCreatedBy()); record.setBenId(eligibleCoupleDTO.getBenId()); record.setAshaId(userId); diff --git a/src/main/java/com/iemr/flw/service/impl/IncentiveServiceImpl.java b/src/main/java/com/iemr/flw/service/impl/IncentiveServiceImpl.java index 0108957c..016deaab 100644 --- a/src/main/java/com/iemr/flw/service/impl/IncentiveServiceImpl.java +++ b/src/main/java/com/iemr/flw/service/impl/IncentiveServiceImpl.java @@ -1046,36 +1046,43 @@ private void incentiveOfNcdReferal(Integer ashaId, Integer stateId, GetBenReques // 2. Optimize HWC_REFERRAL_10_CASES: check if monthly incentive already exists FIRST, // and use index-friendly date range query instead of MONTH()/YEAR() functions. if (hwcReferralEnumeration != null) { + LocalDate now = LocalDate.now(); Timestamp startOfMonth = Timestamp.valueOf(now.withDayOfMonth(1).atStartOfDay()); Timestamp endOfMonth = Timestamp.valueOf(now.withDayOfMonth(now.lengthOfMonth()).atTime(23, 59, 59)); + LocalDate requestDate = (request != null && request.getFromDate() != null) + ? request.getFromDate().toInstant().atZone(ZoneId.systemDefault()).toLocalDate() + : now; + LocalDate reqMonthFirst = requestDate.withDayOfMonth(1); + Timestamp reqStart = Timestamp.valueOf(reqMonthFirst.atStartOfDay()); + Timestamp reqEnd = Timestamp.valueOf(reqMonthFirst.plusMonths(1).atStartOfDay()); + IncentiveActivityRecord existingHwcRecord = recordRepo.findRecordByActivityIdCreatedDateBenId( hwcReferralEnumeration.getId(), 0L, ashaId, - startOfMonth, - endOfMonth + reqStart, + reqEnd ); + logger.info("HWC Incentive Request Start Date: {}", reqStart); + logger.info("HWC Incentive Request End Date: {}", reqEnd); + if (existingHwcRecord == null) { - LocalDate requestDate = (request != null && request.getFromDate() != null) - ? request.getFromDate().toInstant().atZone(ZoneId.systemDefault()).toLocalDate() - : now; - LocalDate reqMonthFirst = requestDate.withDayOfMonth(1); - Timestamp reqStart = Timestamp.valueOf(reqMonthFirst.atStartOfDay()); - Timestamp reqEnd = Timestamp.valueOf(reqMonthFirst.plusMonths(1).atStartOfDay()); + Long referralCount = benReferDetailsRepo.countMonthlyReferralsByDateRange( userName, reqStart, reqEnd ); + Timestamp timestamp = benReferDetailsRepo.findTenthReferralDate(userName,reqStart,reqEnd); + logger.info("referralCount: {}", referralCount); if (referralCount != null && referralCount >= 10) { - Timestamp timestamp = Timestamp.valueOf(LocalDateTime.now()); IncentiveActivityRecord record = new IncentiveActivityRecord(); record.setActivityId(hwcReferralEnumeration.getId()); record.setCreatedDate(timestamp); diff --git a/src/main/java/com/iemr/flw/service/impl/MaternalHealthServiceImpl.java b/src/main/java/com/iemr/flw/service/impl/MaternalHealthServiceImpl.java index 62534f07..62f0a002 100644 --- a/src/main/java/com/iemr/flw/service/impl/MaternalHealthServiceImpl.java +++ b/src/main/java/com/iemr/flw/service/impl/MaternalHealthServiceImpl.java @@ -355,7 +355,7 @@ private void checkAndAddHighRisk(List pmsmaList) { private void addIncentiveForHighRisk(IncentiveActivity incentiveActivity, PMSMA pmsma) { IncentiveActivityRecord record = recordRepo - .findRecordByActivityIdCreatedDateBenId(incentiveActivity.getId(), pmsma.getCreatedDate(), pmsma.getBenId(),userRepo.getUserIdByName(pmsma.getCreatedBy())); + .findRecordByActivityIdCreatedDateBenId(incentiveActivity.getId(), pmsma.getVisitDate(), pmsma.getBenId(),userRepo.getUserIdByName(pmsma.getCreatedBy())); // get bene details if (record == null) { @@ -968,7 +968,7 @@ private void checkAndAddIncentives(List ancList, Integer userId) { if (identifiedHrpActivityCH != null && ancVisit.getIsHrpConfirmed() != null - && ancVisit.getIsHrpConfirmed()) { + && ancVisit.getIsHrpConfirmed() && ancVisit.getPlaceOfAnc().equals("PMSMA Visit") ) { recordAncRelatedIncentive(identifiedHrpActivityCH, ancVisit); } });