From eb188ff8653c98255fa56a91da03b17e094c3222 Mon Sep 17 00:00:00 2001 From: vanitha1822 Date: Tue, 14 Jul 2026 14:18:28 +0530 Subject: [PATCH 1/3] fix: add clinical staff details --- .../data/nurse/BeneficiaryVisitDetail.java | 16 ++++++++ .../hwc/repo/nurse/BenVisitDetailRepo.java | 12 ++++++ .../transaction/CommonDoctorServiceImpl.java | 37 +++++++++++++++++++ .../transaction/CommonNurseServiceImpl.java | 23 ++++++++++++ .../LabTechnicianServiceImpl.java | 22 +++++++++++ 5 files changed, 110 insertions(+) diff --git a/src/main/java/com/iemr/hwc/data/nurse/BeneficiaryVisitDetail.java b/src/main/java/com/iemr/hwc/data/nurse/BeneficiaryVisitDetail.java index 99456d5b..4d93a445 100644 --- a/src/main/java/com/iemr/hwc/data/nurse/BeneficiaryVisitDetail.java +++ b/src/main/java/com/iemr/hwc/data/nurse/BeneficiaryVisitDetail.java @@ -141,6 +141,22 @@ public class BeneficiaryVisitDetail { @Column(name = "VisitFlowStatusFlag", insertable = false) private @SQLInjectionSafe String visitFlowStatusFlag; + @Expose + @Column(name = "NurseID") + private Long nurseID; + + @Expose + @Column(name = "DoctorID") + private Long doctorID; + + @Expose + @Column(name = "PharmacistID") + private Long pharmacistID; + + @Expose + @Column(name = "LabTechnicianID") + private Long labTechnicianID; + @Expose @Column(name = "VanSerialNo") private Long vanSerialNo; diff --git a/src/main/java/com/iemr/hwc/repo/nurse/BenVisitDetailRepo.java b/src/main/java/com/iemr/hwc/repo/nurse/BenVisitDetailRepo.java index f2de984b..dac4309e 100644 --- a/src/main/java/com/iemr/hwc/repo/nurse/BenVisitDetailRepo.java +++ b/src/main/java/com/iemr/hwc/repo/nurse/BenVisitDetailRepo.java @@ -97,6 +97,18 @@ public List getBeneficiaryVisitDetails(@Param("benRegID") Long benReg @Query("UPDATE BeneficiaryVisitDetail set subVisitCategory = :subVisitCategory where visitCode = :visitCode ") public Integer updateSubVisitCategory(@Param("subVisitCategory") String subVisitCategory, @Param("visitCode") Long visitCode); + // store responsible doctor's user ID against the visit + @Transactional + @Modifying + @Query("UPDATE BeneficiaryVisitDetail set doctorID = :doctorID where visitCode = :visitCode ") + public Integer updateDoctorID(@Param("doctorID") Long doctorID, @Param("visitCode") Long visitCode); + + // store responsible lab technician's user ID against the visit + @Transactional + @Modifying + @Query("UPDATE BeneficiaryVisitDetail set labTechnicianID = :labTechnicianID where visitCode = :visitCode ") + public Integer updateLabTechnicianID(@Param("labTechnicianID") Long labTechnicianID, @Param("visitCode") Long visitCode); + // get file uuid from file id @Query(nativeQuery = true, value = " SELECT FileUID from t_kmfilemanager where KmFileManagerID = :fileID ") diff --git a/src/main/java/com/iemr/hwc/service/common/transaction/CommonDoctorServiceImpl.java b/src/main/java/com/iemr/hwc/service/common/transaction/CommonDoctorServiceImpl.java index b61ccfb2..15fdafa9 100644 --- a/src/main/java/com/iemr/hwc/service/common/transaction/CommonDoctorServiceImpl.java +++ b/src/main/java/com/iemr/hwc/service/common/transaction/CommonDoctorServiceImpl.java @@ -118,6 +118,37 @@ public class CommonDoctorServiceImpl { @Autowired private PNCDiagnosisRepo pNCDiagnosisRepo; @Autowired + private com.iemr.hwc.repo.nurse.BenVisitDetailRepo benVisitDetailRepo; + @Autowired + private com.iemr.hwc.repo.login.UserLoginRepo userLoginRepo; + + /** + * Resolve the numeric user ID of the responsible staff member from the username + * captured in createdBy/modifiedBy. Returns null if it cannot be resolved so an + * unknown staff member never blocks the flow. + */ + private Long resolveUserId(String username) { + if (username == null || username.trim().isEmpty()) + return null; + com.iemr.hwc.data.login.Users user = userLoginRepo.getUserByUsername(username.trim()); + return user != null ? user.getUserID() : null; + } + + /** + * Store the responsible doctor's user ID on the visit record. The doctor's + * identity is taken from createdBy, falling back to modifiedBy. + */ + private void storeDoctorIDOnVisit(CommonUtilityClass commonUtilityClass) { + if (commonUtilityClass == null || commonUtilityClass.getVisitCode() == null) + return; + String username = commonUtilityClass.getCreatedBy(); + if (username == null || username.trim().isEmpty()) + username = commonUtilityClass.getModifiedBy(); + Long doctorID = resolveUserId(username); + if (doctorID != null) + benVisitDetailRepo.updateDoctorID(doctorID, commonUtilityClass.getVisitCode()); + } + @Autowired private PrescriptionDetailRepo prescriptionDetailRepo; @Autowired private NCDCareDiagnosisRepo NCDCareDiagnosisRepo; @@ -755,6 +786,9 @@ public int updateBenFlowtableAfterDocDataSave(CommonUtilityClass commonUtilityCl Long tmpBenVisitID = commonUtilityClass.getBenVisitID(); Long tmpbeneficiaryRegID = commonUtilityClass.getBeneficiaryRegID(); + // Store the responsible doctor's user ID against the visit + storeDoctorIDOnVisit(commonUtilityClass); + if (commonUtilityClass != null && commonUtilityClass.getVisitCategoryID() != null && commonUtilityClass.getVisitCategoryID() == 9) { ArrayList foetalMonitorData = foetalMonitorRepo @@ -895,6 +929,9 @@ public int updateBenFlowtableAfterDocDataUpdate(CommonUtilityClass commonUtility Long tmpBenVisitID = commonUtilityClass.getBenVisitID(); Long tmpbeneficiaryRegID = commonUtilityClass.getBeneficiaryRegID(); + // Store the responsible doctor's user ID against the visit + storeDoctorIDOnVisit(commonUtilityClass); + if (commonUtilityClass != null && commonUtilityClass.getVisitCategoryID() != null && commonUtilityClass.getVisitCategoryID() == 9) { ArrayList foetalMonitorData = foetalMonitorRepo diff --git a/src/main/java/com/iemr/hwc/service/common/transaction/CommonNurseServiceImpl.java b/src/main/java/com/iemr/hwc/service/common/transaction/CommonNurseServiceImpl.java index db8d2147..77fa9d9d 100644 --- a/src/main/java/com/iemr/hwc/service/common/transaction/CommonNurseServiceImpl.java +++ b/src/main/java/com/iemr/hwc/service/common/transaction/CommonNurseServiceImpl.java @@ -159,6 +159,21 @@ public class CommonNurseServiceImpl implements CommonNurseService { private BenVisitDetailRepo benVisitDetailRepo; + @Autowired + private com.iemr.hwc.repo.login.UserLoginRepo userLoginRepo; + + /** + * Resolve the numeric user ID of the responsible staff member from the username + * captured in createdBy/modifiedBy. Returns null if the username is blank or + * cannot be resolved, so an unknown staff member never blocks the save. + */ + private Long resolveUserId(String username) { + if (username == null || username.trim().isEmpty()) + return null; + com.iemr.hwc.data.login.Users user = userLoginRepo.getUserByUsername(username.trim()); + return user != null ? user.getUserID() : null; + } + private BenChiefComplaintRepo benChiefComplaintRepo; private BenMedHistoryRepo benMedHistoryRepo; private BencomrbidityCondRepo bencomrbidityCondRepo; @@ -449,6 +464,10 @@ public Long saveBeneficiaryVisitDetails(BeneficiaryVisitDetail beneficiaryVisitD } + // Store the responsible nurse's user ID (resolved from the createdBy username) + if (beneficiaryVisitDetail.getNurseID() == null) + beneficiaryVisitDetail.setNurseID(resolveUserId(beneficiaryVisitDetail.getCreatedBy())); + response = benVisitDetailRepo.save(beneficiaryVisitDetail); if (response != null) { @@ -507,6 +526,10 @@ public Long saveBeneficiaryVisitDetails(BeneficiaryVisitDetail beneficiaryVisitD } Integer facilityIdObj = beneficiaryVisitDetail.getFacilityID(); + // Store the responsible nurse's user ID (resolved from the createdBy username) + if (beneficiaryVisitDetail.getNurseID() == null) + beneficiaryVisitDetail.setNurseID(resolveUserId(beneficiaryVisitDetail.getCreatedBy())); + response = benVisitDetailRepo.save(beneficiaryVisitDetail); if (response != null) { diff --git a/src/main/java/com/iemr/hwc/service/labtechnician/LabTechnicianServiceImpl.java b/src/main/java/com/iemr/hwc/service/labtechnician/LabTechnicianServiceImpl.java index 51240c0a..8689f7df 100644 --- a/src/main/java/com/iemr/hwc/service/labtechnician/LabTechnicianServiceImpl.java +++ b/src/main/java/com/iemr/hwc/service/labtechnician/LabTechnicianServiceImpl.java @@ -50,6 +50,22 @@ public class LabTechnicianServiceImpl implements LabTechnicianService { private CommonBenStatusFlowServiceImpl commonBenStatusFlowServiceImpl; private ProcedureCompMappedMasterRepo procedureCompMappedMasterRepo; + @org.springframework.beans.factory.annotation.Autowired + private com.iemr.hwc.repo.nurse.BenVisitDetailRepo benVisitDetailRepo; + @org.springframework.beans.factory.annotation.Autowired + private com.iemr.hwc.repo.login.UserLoginRepo userLoginRepo; + + /** + * Resolve the numeric user ID of the responsible staff member from the username + * captured in createdBy. Returns null if it cannot be resolved. + */ + private Long resolveUserId(String username) { + if (username == null || username.trim().isEmpty()) + return null; + com.iemr.hwc.data.login.Users user = userLoginRepo.getUserByUsername(username.trim()); + return user != null ? user.getUserID() : null; + } + @Autowired public void setCommonBenStatusFlowServiceImpl(CommonBenStatusFlowServiceImpl commonBenStatusFlowServiceImpl) { @@ -359,6 +375,12 @@ public Integer saveLabTestResult(JsonObject requestOBJ) throws Exception { labResultSaveFlag = saveLabTestResult(wrapperLabResults); if (labResultSaveFlag == 1) { + // Store the responsible lab technician's user ID against the visit + if (wrapperLabResults.getVisitCode() != null) { + Long labTechnicianID = resolveUserId(wrapperLabResults.getCreatedBy()); + if (labTechnicianID != null) + benVisitDetailRepo.updateLabTechnicianID(labTechnicianID, wrapperLabResults.getVisitCode()); + } int i = updateBenFlowStatusFlagAfterLabResultEntry(wrapperLabResults.getLabCompleted(), wrapperLabResults.getBenFlowID(), wrapperLabResults.getBeneficiaryRegID(), wrapperLabResults.getVisitID(), wrapperLabResults.getNurseFlag(), From 13669fefe0c9b63cffc486bf23a49dc011904d85 Mon Sep 17 00:00:00 2001 From: vanitha1822 Date: Thu, 23 Jul 2026 13:37:51 +0530 Subject: [PATCH 2/3] fix: restore faciltiy id --- .../hwc/service/common/transaction/CommonNurseServiceImpl.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/java/com/iemr/hwc/service/common/transaction/CommonNurseServiceImpl.java b/src/main/java/com/iemr/hwc/service/common/transaction/CommonNurseServiceImpl.java index 77fa9d9d..a37f0043 100644 --- a/src/main/java/com/iemr/hwc/service/common/transaction/CommonNurseServiceImpl.java +++ b/src/main/java/com/iemr/hwc/service/common/transaction/CommonNurseServiceImpl.java @@ -536,6 +536,7 @@ public Long saveBeneficiaryVisitDetails(BeneficiaryVisitDetail beneficiaryVisitD Long benVisitId = response.getBenVisitID(); Integer vanId = response.getVanID(); Integer sessionIdObj = sessionId; + Integer facilityIdObj = beneficiaryVisitDetail.getFacilityID(); Long visitCode = generateVisitCode(benVisitId, vanId, sessionIdObj, facilityIdObj); CDSS cdss = new CDSS(); cdss.setVisitCode(visitCode); From b16e3357a13654dcb3526606baa64cdae9f68755 Mon Sep 17 00:00:00 2001 From: vanitha1822 Date: Thu, 6 Aug 2026 14:31:41 +0530 Subject: [PATCH 3/3] fix: update pom version --- pom.xml | 2 +- .../hwc/service/common/transaction/CommonNurseServiceImpl.java | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index a137249b..9ab02eb8 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ com.iemr.hwc hwc-api - 3.8.1 + 3.10.0 war HWC-API diff --git a/src/main/java/com/iemr/hwc/service/common/transaction/CommonNurseServiceImpl.java b/src/main/java/com/iemr/hwc/service/common/transaction/CommonNurseServiceImpl.java index a37f0043..77fa9d9d 100644 --- a/src/main/java/com/iemr/hwc/service/common/transaction/CommonNurseServiceImpl.java +++ b/src/main/java/com/iemr/hwc/service/common/transaction/CommonNurseServiceImpl.java @@ -536,7 +536,6 @@ public Long saveBeneficiaryVisitDetails(BeneficiaryVisitDetail beneficiaryVisitD Long benVisitId = response.getBenVisitID(); Integer vanId = response.getVanID(); Integer sessionIdObj = sessionId; - Integer facilityIdObj = beneficiaryVisitDetail.getFacilityID(); Long visitCode = generateVisitCode(benVisitId, vanId, sessionIdObj, facilityIdObj); CDSS cdss = new CDSS(); cdss.setVisitCode(visitCode);