From a7fab10970b85e94683b7389074ef671697f491a Mon Sep 17 00:00:00 2001 From: Amoghavarsh <93114621+5Amogh@users.noreply.github.com> Date: Tue, 12 Aug 2025 11:13:18 +0530 Subject: [PATCH 1/3] feat: AMM-1267 ECD Quality Supervisor- Question Configuration (#104) * Update version in pom.xml to 3.4.0 * Update pom.xml * feat: amm-1267 tasks-amm-1741 backend tasks --- pom.xml | 2 +- .../iemr/ecd/dao/QualityAuditQuestionConfig.java | 14 +++++++++++++- ...get_Qualityaudit_SectionQuestionaireValues.java | 3 +++ ...alityAuditorSectionQuestionaireResponseDTO.java | 3 +-- .../ResponseCallAuditSectionQuestionMapDTO.java | 2 +- .../iemr/ecd/service/quality/QualityAuditImpl.java | 4 +++- .../QualityAuditQuestionConfigurationImpl.java | 13 +++++++++++-- 7 files changed, 33 insertions(+), 8 deletions(-) diff --git a/pom.xml b/pom.xml index b97d35f..fc65892 100644 --- a/pom.xml +++ b/pom.xml @@ -11,7 +11,7 @@ com.iemr.ecd ecd-api - 3.1.0 + 3.4.0 war ECD-API ECD project diff --git a/src/main/java/com/iemr/ecd/dao/QualityAuditQuestionConfig.java b/src/main/java/com/iemr/ecd/dao/QualityAuditQuestionConfig.java index e940ac5..2b97ae4 100644 --- a/src/main/java/com/iemr/ecd/dao/QualityAuditQuestionConfig.java +++ b/src/main/java/com/iemr/ecd/dao/QualityAuditQuestionConfig.java @@ -36,7 +36,7 @@ import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; - +import java.util.List; @Data @AllArgsConstructor @@ -89,4 +89,16 @@ public class QualityAuditQuestionConfig { @Column(name = "isFatalQuestion") private Boolean isFatalQues; + @Column(name = "Role") + private String role; + + @Transient + private List roles; + + public void flattenRoles() { + if (roles != null && !roles.isEmpty()) { + this.role = String.join(",", roles); + } + } + } diff --git a/src/main/java/com/iemr/ecd/dao/V_get_Qualityaudit_SectionQuestionaireValues.java b/src/main/java/com/iemr/ecd/dao/V_get_Qualityaudit_SectionQuestionaireValues.java index 6e0da3c..ac119c7 100644 --- a/src/main/java/com/iemr/ecd/dao/V_get_Qualityaudit_SectionQuestionaireValues.java +++ b/src/main/java/com/iemr/ecd/dao/V_get_Qualityaudit_SectionQuestionaireValues.java @@ -76,4 +76,7 @@ public class V_get_Qualityaudit_SectionQuestionaireValues { @Column(name = "isFatalQuestion") private Boolean isFatalQues; + @Column(name = "Role") + private String role; + } diff --git a/src/main/java/com/iemr/ecd/dto/QualityAuditorSectionQuestionaireResponseDTO.java b/src/main/java/com/iemr/ecd/dto/QualityAuditorSectionQuestionaireResponseDTO.java index 0b79a1d..0a8d027 100644 --- a/src/main/java/com/iemr/ecd/dto/QualityAuditorSectionQuestionaireResponseDTO.java +++ b/src/main/java/com/iemr/ecd/dto/QualityAuditorSectionQuestionaireResponseDTO.java @@ -54,6 +54,5 @@ public class QualityAuditorSectionQuestionaireResponseDTO { private List options; private List scores; - - + private List roles; } diff --git a/src/main/java/com/iemr/ecd/dto/ResponseCallAuditSectionQuestionMapDTO.java b/src/main/java/com/iemr/ecd/dto/ResponseCallAuditSectionQuestionMapDTO.java index e83373b..c5d542a 100644 --- a/src/main/java/com/iemr/ecd/dto/ResponseCallAuditSectionQuestionMapDTO.java +++ b/src/main/java/com/iemr/ecd/dto/ResponseCallAuditSectionQuestionMapDTO.java @@ -48,5 +48,5 @@ public class ResponseCallAuditSectionQuestionMapDTO { private Date createdDate; private String modifiedBy; private Date lastModDate; - + private List roles; } diff --git a/src/main/java/com/iemr/ecd/service/quality/QualityAuditImpl.java b/src/main/java/com/iemr/ecd/service/quality/QualityAuditImpl.java index 997ed92..11cd15f 100644 --- a/src/main/java/com/iemr/ecd/service/quality/QualityAuditImpl.java +++ b/src/main/java/com/iemr/ecd/service/quality/QualityAuditImpl.java @@ -366,7 +366,9 @@ public List getQuestionSectionForCallRat for (V_get_Qualityaudit_SectionQuestionaireValues obj : resultList) { if (qId == 0 || qId != obj.getQuestionId()) { responseDTO = new ResponseCallAuditSectionQuestionMapDTO(); - + if(obj.getRole() != null && !obj.getRole().isEmpty()) { + responseDTO.setRoles(Arrays.asList(obj.getRole().split(","))); + } responseDTO.setSectionId(obj.getSectionId()); if (obj.getSectionName() != null) responseDTO.setSectionName(obj.getSectionName()); diff --git a/src/main/java/com/iemr/ecd/service/quality/QualityAuditQuestionConfigurationImpl.java b/src/main/java/com/iemr/ecd/service/quality/QualityAuditQuestionConfigurationImpl.java index da93935..df0db2a 100644 --- a/src/main/java/com/iemr/ecd/service/quality/QualityAuditQuestionConfigurationImpl.java +++ b/src/main/java/com/iemr/ecd/service/quality/QualityAuditQuestionConfigurationImpl.java @@ -28,6 +28,7 @@ import java.util.List; import java.util.Map; import java.util.Set; +import java.util.Arrays; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -58,6 +59,10 @@ public String createQualityAuditQuestionnaireConfiguration( Set optionsSet = null; for (QualityAuditQuestionConfig question : qualityAuditQuestionConfig) { + if (question.getRoles() != null && !question.getRoles().isEmpty()) { + question.flattenRoles(); + } + if (question.getOptions() != null && question.getOptions().length > 0) { int j = 0; Integer[] scoreArr = question.getScores(); @@ -136,7 +141,9 @@ private List getQuesSecDtoList(Lis obj.setModifiedBy(strArr[12]); if (strArr[13] != null) obj.setLastModDate(Timestamp.valueOf(strArr[13])); - + if (strArr[14] != null && !strArr[14].isEmpty()) { + obj.setRoles(Arrays.asList(strArr[14].split(","))); + } List optionsList = qualityAuditQuestionnaireValuesRepo .findByQuestionIdAndPsmIdAndDeleted(obj.getQuestionId(), obj.getPsmId(), false); @@ -166,7 +173,9 @@ public String updateQualityAuditQuestionnaireConfiguration(QualityAuditQuestionC try { QualityAuditQuestionnaireValues questionnaireOptions; Set optionsSet = new HashSet<>(); - + if (qualityAuditQuestionnaire.getRoles() != null && !qualityAuditQuestionnaire.getRoles().isEmpty()) { + qualityAuditQuestionnaire.flattenRoles(); + } qualityAuditQuestionConfigRepo.save(qualityAuditQuestionnaire); List optionsValue = qualityAuditQuestionnaireValuesRepo From e9efda4f1536c29236a2afe2896139bf874f7bb7 Mon Sep 17 00:00:00 2001 From: Amoghavarsh <93114621+5Amogh@users.noreply.github.com> Date: Tue, 12 Aug 2025 16:36:51 +0530 Subject: [PATCH 2/3] Update pom.xml --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index fc65892..f114e73 100644 --- a/pom.xml +++ b/pom.xml @@ -11,7 +11,7 @@ com.iemr.ecd ecd-api - 3.4.0 + 3.5.0 war ECD-API ECD project From 8667b96d89d961132feaab418ef2e418f52af21a Mon Sep 17 00:00:00 2001 From: Vanitha Date: Wed, 29 Oct 2025 12:05:31 +0530 Subject: [PATCH 3/3] fix: add date range for compare to display the mother record count --- pom.xml | 14 ++++++++++++-- .../call_conf_allocation/OutboundCallsRepo.java | 2 +- .../call_conf_allocation/CallAllocationImpl.java | 7 ++++++- 3 files changed, 19 insertions(+), 4 deletions(-) diff --git a/pom.xml b/pom.xml index f114e73..cf7d57e 100644 --- a/pom.xml +++ b/pom.xml @@ -38,12 +38,22 @@ org.springframework.boot spring-boot-starter - + + + + org.slf4j + slf4j-api + ${slf4j.version} + + + org.slf4j + slf4j-simple + ${slf4j.version} diff --git a/src/main/java/com/iemr/ecd/repo/call_conf_allocation/OutboundCallsRepo.java b/src/main/java/com/iemr/ecd/repo/call_conf_allocation/OutboundCallsRepo.java index a96611b..fd402b9 100644 --- a/src/main/java/com/iemr/ecd/repo/call_conf_allocation/OutboundCallsRepo.java +++ b/src/main/java/com/iemr/ecd/repo/call_conf_allocation/OutboundCallsRepo.java @@ -123,7 +123,7 @@ int getChildUnAllocatedCountLR(@Param("allocationStatus") String allocationStatu // un-allocated, mother high risk, @Query(value = " SELECT count(1) FROM OutboundCalls AS t WHERE t.allocationStatus =:allocationStatus AND " - + " t.psmId=:psmId AND " + + " t.psmId=:psmId AND ((:fDate between t.callDateFrom AND t.callDateTo) OR (:tDate between t.callDateFrom AND t.callDateTo)) AND " + " t.callDateTo >= CURRENT_TIMESTAMP AND " + " t.childId IS NULL AND t.motherId IS NOT NULL AND t.isHighRisk = true " + " AND t.phoneNumberType=:phoneNoType AND t.deleted = false AND t.displayEcdCallType != 'introductory' AND (t.isFurtherCallRequired = true OR t.isFurtherCallRequired IS NULL )") diff --git a/src/main/java/com/iemr/ecd/service/call_conf_allocation/CallAllocationImpl.java b/src/main/java/com/iemr/ecd/service/call_conf_allocation/CallAllocationImpl.java index 3be17fa..16e0979 100644 --- a/src/main/java/com/iemr/ecd/service/call_conf_allocation/CallAllocationImpl.java +++ b/src/main/java/com/iemr/ecd/service/call_conf_allocation/CallAllocationImpl.java @@ -53,6 +53,9 @@ import com.iemr.ecd.utils.advice.exception_handler.InvalidRequestException; import com.iemr.ecd.utils.constants.Constants; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + import jakarta.transaction.Transactional; @Service @@ -66,6 +69,7 @@ public class CallAllocationImpl { private ChildRecordRepo childRecordRepo; @Autowired private CallConfigurationRepo callConfigurationRepo; + private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); @Transactional(rollbackOn = Exception.class) public String allocateCalls(RequestCallAllocationDTO callAllocationDto) { @@ -556,7 +560,6 @@ public ResponseEligibleCallRecordsDTO getEligibleRecordsInfo(int psmId, String p tempTDateStamp, phoneNoType); } else if (recordType != null && recordType.equalsIgnoreCase("Child")) { - totalIntroductoryRecord = childRecordRepo.getRecordCount(false, tempFDateStamp, tempTDateStamp, phoneNoType); @@ -564,6 +567,8 @@ public ResponseEligibleCallRecordsDTO getEligibleRecordsInfo(int psmId, String p tempTDateStamp, phoneNoType); totalHighRisk = outboundCallsRepo.getChildUnAllocatedCountHR("unallocated", psmId, tempFDateStamp, tempTDateStamp, phoneNoType); + logger.info("Params="+psmId+","+tempFDateStamp+","+tempTDateStamp+","+phoneNoType); + logger.info("High risk count: "+totalHighRisk); totalAllocated = outboundCallsRepo.getTotalAllocatedCountChild("allocated", psmId, tempFDateStamp, tempTDateStamp, phoneNoType);