diff --git a/src/main/java/com/iemr/flw/controller/ChildCareController.java b/src/main/java/com/iemr/flw/controller/ChildCareController.java index 36da3ba7..eda8d7c9 100644 --- a/src/main/java/com/iemr/flw/controller/ChildCareController.java +++ b/src/main/java/com/iemr/flw/controller/ChildCareController.java @@ -254,7 +254,7 @@ public ResponseEntity saveSevereAcuteMalnutrition(@RequestBody List s } catch (Exception e) { logger.error("Error saving SAM details:", e); - response.put("statusCode", HttpStatus.INTERNAL_SERVER_ERROR.value()); + response.put("statusCode",5000); response.put("errorMessage", e.getMessage()); return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(response); } @@ -272,14 +272,14 @@ public ResponseEntity getAllSevereAcuteMalnutrition(@RequestBody GetBenReques response.put("data", responseObject); return ResponseEntity.ok(response); } else { - response.put("statusCode", HttpStatus.INTERNAL_SERVER_ERROR.value()); + response.put("statusCode",5000); response.put("message", "No SAM records found"); return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(response); } } catch (Exception e) { logger.error("Error fetching SAM records:", e); - response.put("statusCode", HttpStatus.INTERNAL_SERVER_ERROR.value()); + response.put("statusCode", 5000); response.put("errorMessage", e.getMessage()); return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(response); } @@ -305,14 +305,14 @@ public ResponseEntity saveOrsDistribution(@RequestBody List getAllOrDistribution(@RequestBody GetBenRequestHandler response.put("data", responseObject); return ResponseEntity.ok(response); } else { - response.put("statusCode", HttpStatus.INTERNAL_SERVER_ERROR.value()); + response.put("statusCode", 5000); response.put("message", "No ORS records found"); return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(response); } } catch (Exception e) { logger.error("Error fetching ORS records:", e); - response.put("statusCode", HttpStatus.INTERNAL_SERVER_ERROR.value()); + response.put("statusCode", 5000); response.put("errorMessage", e.getMessage()); return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(response); } @@ -364,14 +364,14 @@ public ResponseEntity saveIfDistribution(@RequestBody List getIfaDistribution(@RequestBody GetBenRequestHandler re response.put("data", responseObject); return ResponseEntity.ok(response); } else { - response.put("statusCode", HttpStatus.OK.value()); + response.put("statusCode", 5000); response.put("message", "No IFA records found"); - return ResponseEntity.status(HttpStatus.OK).body(response); + return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(response); } } catch (Exception e) { logger.error("Error fetching IFA records:", e); - response.put("statusCode", HttpStatus.INTERNAL_SERVER_ERROR.value()); + response.put("statusCode", 5000); response.put("errorMessage", e.getMessage()); return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(response); } diff --git a/src/main/java/com/iemr/flw/controller/IncentiveController.java b/src/main/java/com/iemr/flw/controller/IncentiveController.java index c76d26ae..403792b9 100644 --- a/src/main/java/com/iemr/flw/controller/IncentiveController.java +++ b/src/main/java/com/iemr/flw/controller/IncentiveController.java @@ -81,14 +81,14 @@ public String saveIncentiveMasterData(@RequestBody IncentiveRequestDTO incentive @Operation(summary = "get high risk assessment data of all beneficiaries registered with given user id") @RequestMapping(value = {"/fetchUserData"}, method = {RequestMethod.POST}) public String getAllIncentivesByUserId(@RequestBody GetBenRequestHandler requestDTO, - @RequestHeader(value = "Authorization") String Authorization) { + @RequestHeader(value = "JwtToken") String token) { OutputResponse response = new OutputResponse(); try { if (requestDTO != null) { logger.info("request object with timestamp : " + new Timestamp(System.currentTimeMillis()) + " " + requestDTO); - String s = incentiveService.getAllIncentivesByUserId(requestDTO); + String s = incentiveService.getAllIncentivesByUserId(requestDTO,token); logger.info("User Incentive:" + s); if (s != null) response.setResponse(s); diff --git a/src/main/java/com/iemr/flw/dto/iemr/EyeCheckupListDTO.java b/src/main/java/com/iemr/flw/dto/iemr/EyeCheckupListDTO.java index 3480aa0b..12cba394 100644 --- a/src/main/java/com/iemr/flw/dto/iemr/EyeCheckupListDTO.java +++ b/src/main/java/com/iemr/flw/dto/iemr/EyeCheckupListDTO.java @@ -3,13 +3,16 @@ import com.google.gson.annotations.SerializedName; import lombok.Data; +import java.util.List; +import java.util.stream.Collectors; + @Data public class EyeCheckupListDTO { @SerializedName("visit_date") private String visit_date; @SerializedName("symptoms_observed") - private String symptoms_observed; + private Object symptoms_observed; @SerializedName("eye_affected") private String eye_affected; @@ -26,4 +29,16 @@ public class EyeCheckupListDTO { @SerializedName("discharge_summary_upload") private String discharge_summary_upload; + public String getSymptomsAsString() { + if (symptoms_observed == null) return null; + + if (symptoms_observed instanceof List) { + return ((List) symptoms_observed) + .stream() + .map(Object::toString) + .collect(Collectors.joining(", ")); + } + return symptoms_observed.toString(); + } + } diff --git a/src/main/java/com/iemr/flw/repo/iemr/HbncVisitRepo.java b/src/main/java/com/iemr/flw/repo/iemr/HbncVisitRepo.java index 655c0547..0514da95 100644 --- a/src/main/java/com/iemr/flw/repo/iemr/HbncVisitRepo.java +++ b/src/main/java/com/iemr/flw/repo/iemr/HbncVisitRepo.java @@ -1,6 +1,8 @@ package com.iemr.flw.repo.iemr; import com.iemr.flw.domain.iemr.HbncVisit; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.Pageable; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.Query; import org.springframework.data.repository.query.Param; @@ -22,4 +24,6 @@ HbncVisit findByBeneficiaryIdAndVisit_day(@Param("beneficiaryId") Long beneficia List findByAshaId(Integer ashaId); + PagefindByAshaId (Integer ashaId, Pageable pageable); + } diff --git a/src/main/java/com/iemr/flw/service/IncentiveService.java b/src/main/java/com/iemr/flw/service/IncentiveService.java index d6bb5550..97c5be73 100644 --- a/src/main/java/com/iemr/flw/service/IncentiveService.java +++ b/src/main/java/com/iemr/flw/service/IncentiveService.java @@ -13,7 +13,7 @@ public interface IncentiveService { String getIncentiveMaster(IncentiveRequestDTO incentiveRequestDTO); - String getAllIncentivesByUserId(GetBenRequestHandler requestDTO); + String getAllIncentivesByUserId(GetBenRequestHandler requestDTO,String token); String updateIncentive(PendingActivityDTO pendingActivityDTO); } diff --git a/src/main/java/com/iemr/flw/service/impl/BeneficiaryServiceImpl.java b/src/main/java/com/iemr/flw/service/impl/BeneficiaryServiceImpl.java index 9d60729d..54707e45 100644 --- a/src/main/java/com/iemr/flw/service/impl/BeneficiaryServiceImpl.java +++ b/src/main/java/com/iemr/flw/service/impl/BeneficiaryServiceImpl.java @@ -6,6 +6,7 @@ import java.time.LocalDate; import java.time.Period; import java.time.format.DateTimeFormatter; +import java.time.format.DateTimeParseException; import java.util.ArrayList; import java.util.Calendar; import java.util.HashMap; @@ -521,7 +522,7 @@ public void fetchHealthIdByBenRegID(Long benRegID, String authorization, Map eyeCheckupRequestDTOS,String token) { + public String saveEyeCheckupVsit(List eyeCheckupRequestDTOS, String token) { try { for (EyeCheckupRequestDTO dto : eyeCheckupRequestDTOS) { @@ -531,30 +532,38 @@ public String saveEyeCheckupVsit(List eyeCheckupRequestDTO visit.setHouseholdId(dto.getHouseHoldId()); visit.setUserId(jwtUtil.extractUserId(token)); visit.setCreatedBy(dto.getUserName()); - StringBuilder sb = new StringBuilder(); - - // fields mapping EyeCheckupListDTO f = dto.getFields(); - sb.append(f.getDischarge_summary_upload()); - String longText = sb.toString(); + + visit.setSymptomsObserved(f.getSymptomsAsString()); + + String upload = f.getDischarge_summary_upload(); + visit.setDischargeSummaryUpload( + (upload != null && !upload.equalsIgnoreCase("null")) ? upload : null + ); + visit.setVisitDate(LocalDate.parse(f.getVisit_date(), FORMATTER)); - visit.setSymptomsObserved(f.getSymptoms_observed()); + + visit.setDateOfSurgery(f.getDate_of_surgery()); + + visit.setEyeAffected(f.getEye_affected()); visit.setReferredTo(f.getReferred_to()); - visit.setDischargeSummaryUpload(longText); visit.setFollowUpStatus(f.getFollow_up_status()); - visit.setDateOfSurgery(f.getDate_of_surgery()); - // save/update eyeCheckUpVisitRepo.save(visit); } + return "Eye checkup data saved successfully."; - } catch (Exception e) { + + } catch (DateTimeParseException e) { e.printStackTrace(); + throw new RuntimeException("Invalid date format. Expected dd-MM-yyyy. " + e.getMessage()); + } catch (Exception e) { + e.printStackTrace(); + throw new RuntimeException("Failed to save eye checkup data: " + e.getMessage()); } - return null ; } @Override 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 43a9eb1f..458a47d7 100644 --- a/src/main/java/com/iemr/flw/service/impl/ChildCareServiceImpl.java +++ b/src/main/java/com/iemr/flw/service/impl/ChildCareServiceImpl.java @@ -16,6 +16,9 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.PageRequest; +import org.springframework.data.domain.Pageable; import org.springframework.stereotype.Service; import org.springframework.web.multipart.MultipartFile; @@ -211,46 +214,60 @@ public List getHbycRecords(GetBenRequestHandler dto) { public List getHBNCDetails(GetBenRequestHandler dto) { List result = new ArrayList<>(); try { - List hbncVisits = hbncVisitRepo.findByAshaId(dto.getAshaId()); - for (HbncVisit visit : hbncVisits) { - HbncVisitResponseDTO responseDTO = new HbncVisitResponseDTO(); - responseDTO.setId(visit.getId()); - responseDTO.setBeneficiaryId(visit.getBeneficiaryId()); // Update with actual value - responseDTO.setHouseHoldId(visit.getHouseHoldId()); // Update with actual value - responseDTO.setVisitDate(visit.getVisit_date().split(" ")[0]); // Format visit.getVisitDate() + int page = 0; + int pageSize = 10; + while (true){ + Pageable pageable = PageRequest.of(page,pageSize); + Page hbncVisits = hbncVisitRepo.findByAshaId(dto.getAshaId(),pageable); + if (hbncVisits!=null){ + List hbncList = hbncVisits.getContent(); + if (hbncVisits == null || !hbncVisits.hasContent()) break; + + for (HbncVisit visit : hbncList) { + HbncVisitResponseDTO responseDTO = new HbncVisitResponseDTO(); + responseDTO.setId(visit.getId()); + responseDTO.setBeneficiaryId(visit.getBeneficiaryId()); // Update with actual value + responseDTO.setHouseHoldId(visit.getHouseHoldId()); // Update with actual value + responseDTO.setVisitDate(visit.getVisit_date().split(" ")[0]); // Format visit.getVisitDate() + + // Convert all fields to Map + Map fields = new HashMap<>(); + addIfValid(fields, "visit_day", visit.getVisit_day()); + addIfValid(fields, "due_date", visit.getDue_date()); + addIfValid(fields, "is_baby_alive", convert(visit.getIs_baby_alive())); + addIfValid(fields, "date_of_death", visit.getDate_of_death()); + addIfValid(fields, "reason_for_death", visit.getReasonForDeath()); + addIfValid(fields, "place_of_death", visit.getPlace_of_death()); + addIfValid(fields, "other_place_of_death", visit.getOther_place_of_death()); + addIfValid(fields, "baby_weight", visit.getBaby_weight()); + addIfValid(fields, "urine_passed", convert(visit.getUrine_passed())); + addIfValid(fields, "stool_passed", convert(visit.getStool_passed())); + addIfValid(fields, "diarrhoea", convert(visit.getDiarrhoea())); + addIfValid(fields, "vomiting", convert(visit.getVomiting())); + addIfValid(fields, "convulsions", convert(visit.getConvulsions())); + addIfValid(fields, "activity", visit.getActivity()); + addIfValid(fields, "sucking", visit.getSucking()); + addIfValid(fields, "breathing", visit.getBreathing()); + addIfValid(fields, "chest_indrawing", visit.getChest_indrawing()); + addIfValid(fields, "temperature", visit.getTemperature()); + addIfValid(fields, "jaundice", convert(visit.getJaundice())); + addIfValid(fields, "umbilical_stump", visit.getUmbilical_stump()); + addIfValid(fields, "discharged_from_sncu", convert(visit.getDischarged_from_sncu())); + addIfValid(fields, "discharge_summary_upload", visit.getDischarge_summary_upload()); + + + responseDTO.setFields(fields); + result.add(responseDTO); - // Convert all fields to Map - Map fields = new HashMap<>(); - addIfValid(fields, "visit_day", visit.getVisit_day()); - addIfValid(fields, "due_date", visit.getDue_date()); - addIfValid(fields, "is_baby_alive", convert(visit.getIs_baby_alive())); - addIfValid(fields, "date_of_death", visit.getDate_of_death()); - addIfValid(fields, "reason_for_death", visit.getReasonForDeath()); - addIfValid(fields, "place_of_death", visit.getPlace_of_death()); - addIfValid(fields, "other_place_of_death", visit.getOther_place_of_death()); - addIfValid(fields, "baby_weight", visit.getBaby_weight()); - addIfValid(fields, "urine_passed", convert(visit.getUrine_passed())); - addIfValid(fields, "stool_passed", convert(visit.getStool_passed())); - addIfValid(fields, "diarrhoea", convert(visit.getDiarrhoea())); - addIfValid(fields, "vomiting", convert(visit.getVomiting())); - addIfValid(fields, "convulsions", convert(visit.getConvulsions())); - addIfValid(fields, "activity", visit.getActivity()); - addIfValid(fields, "sucking", visit.getSucking()); - addIfValid(fields, "breathing", visit.getBreathing()); - addIfValid(fields, "chest_indrawing", visit.getChest_indrawing()); - addIfValid(fields, "temperature", visit.getTemperature()); - addIfValid(fields, "jaundice", convert(visit.getJaundice())); - addIfValid(fields, "umbilical_stump", visit.getUmbilical_stump()); - addIfValid(fields, "discharged_from_sncu", convert(visit.getDischarged_from_sncu())); - addIfValid(fields, "discharge_summary_upload", visit.getDischarge_summary_upload()); - - // Add more fields as required - - responseDTO.setFields(fields); - result.add(responseDTO); + } + if (!hbncVisits.hasNext()) break ; + page++; + + } } + } catch (Exception e) { logger.error("Error in getHBNCDetails: ", e); } @@ -610,8 +627,14 @@ public List getOrdDistrubtion(GetBenRequestHandler r orsDistributionResponseDTO.setId(orsDistribution.getId()); orsDistributionResponseDTO.setBeneficiaryId(orsDistribution.getBeneficiaryId()); orsDistributionResponseDTO.setHouseHoldId(orsDistribution.getHouseholdId()); - orsDistributionResponseListDTO.setNum_ors_packets(orsDistribution.getNumOrsPackets().toString()); - orsDistributionResponseListDTO.setNum_under5_children(orsDistribution.getChildCount().toString()); + if(orsDistribution.getNumOrsPackets()!=null){ + orsDistributionResponseListDTO.setNum_ors_packets(orsDistribution.getNumOrsPackets().toString()); + + } + if(orsDistribution.getChildCount()!=null){ + orsDistributionResponseListDTO.setNum_under5_children(orsDistribution.getChildCount().toString()); + + } orsDistributionResponseDTO.setFields(orsDistributionResponseListDTO); orsDistributionResponseDTO.setVisitDate(parseDate(orsDistribution.getVisitDate().toString()).toString()); orsDistributionResponseDTOSList.add(orsDistributionResponseDTO); 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 09523a4b..5e31724f 100644 --- a/src/main/java/com/iemr/flw/service/impl/IncentiveServiceImpl.java +++ b/src/main/java/com/iemr/flw/service/impl/IncentiveServiceImpl.java @@ -168,22 +168,26 @@ public String getIncentiveMaster(IncentiveRequestDTO incentiveRequestDTO) { } @Override - public String getAllIncentivesByUserId(GetBenRequestHandler request) { + public String getAllIncentivesByUserId(GetBenRequestHandler request,String token) { + Integer stateId =0; try { - if (request.getVillageID() != StateCode.CG.getStateCode()) { - checkMonthlyAshaIncentive(request.getAshaId()); + if(token!=null){ + UserServiceRoleDTO userRole = userRepo.getUserRole(jwtUtil.extractUserId(token)).get(0); + if(userRole!=null) { + stateId = userRole.getStateId(); + } + if (stateId != StateCode.CG.getStateCode()) { + checkMonthlyAshaIncentive(request.getAshaId()); + } + incentiveOfNcdReferal(request.getAshaId(), stateId); + } + } catch (Exception e) { logger.error("Error in checkMonthlyAshaIncentive: ", e); } - try { - - incentiveOfNcdReferal(request.getAshaId(), request.getVillageID()); - } catch (Exception e) { - logger.error("Error in incentiveOfNcdReferal: ", e); - } Integer villageID = request.getVillageID(); boolean isCG = villageID != null && villageID.intValue() == StateCode.CG.getStateCode(); diff --git a/src/main/java/com/iemr/flw/utils/http/HTTPRequestInterceptor.java b/src/main/java/com/iemr/flw/utils/http/HTTPRequestInterceptor.java index 884d9905..5c5aaf23 100644 --- a/src/main/java/com/iemr/flw/utils/http/HTTPRequestInterceptor.java +++ b/src/main/java/com/iemr/flw/utils/http/HTTPRequestInterceptor.java @@ -93,7 +93,7 @@ public boolean preHandle(HttpServletRequest request, HttpServletResponse respons if (remoteAddress == null || remoteAddress.trim().length() == 0) { remoteAddress = request.getRemoteAddr(); } -// validator.checkKeyExists(authorization, remoteAddress); + validator.checkKeyExists(authorization, remoteAddress); break; } } catch (Exception e) {