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);