From 4094cb9bdcd69c894b499beafec87c51d2cf25b4 Mon Sep 17 00:00:00 2001 From: vanitha1822 Date: Tue, 14 Jul 2026 16:13:06 +0530 Subject: [PATCH 1/2] fix: add clinical staff details --- .../tm/data/nurse/BeneficiaryVisitDetail.java | 48 +++++++++++++++++++ .../com/iemr/tm/repo/login/UserLoginRepo.java | 3 ++ .../tm/repo/nurse/BenVisitDetailRepo.java | 12 +++++ .../transaction/CommonDoctorServiceImpl.java | 33 +++++++++++++ .../transaction/CommonNurseServiceImpl.java | 20 ++++++++ .../LabTechnicianServiceImpl.java | 22 +++++++++ 6 files changed, 138 insertions(+) diff --git a/src/main/java/com/iemr/tm/data/nurse/BeneficiaryVisitDetail.java b/src/main/java/com/iemr/tm/data/nurse/BeneficiaryVisitDetail.java index b5e983d1..7255bad7 100644 --- a/src/main/java/com/iemr/tm/data/nurse/BeneficiaryVisitDetail.java +++ b/src/main/java/com/iemr/tm/data/nurse/BeneficiaryVisitDetail.java @@ -135,6 +135,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; @@ -444,6 +460,38 @@ public void setVisitFlowStatusFlag(String visitFlowStatusFlag) { this.visitFlowStatusFlag = visitFlowStatusFlag; } + public Long getNurseID() { + return nurseID; + } + + public void setNurseID(Long nurseID) { + this.nurseID = nurseID; + } + + public Long getDoctorID() { + return doctorID; + } + + public void setDoctorID(Long doctorID) { + this.doctorID = doctorID; + } + + public Long getPharmacistID() { + return pharmacistID; + } + + public void setPharmacistID(Long pharmacistID) { + this.pharmacistID = pharmacistID; + } + + public Long getLabTechnicianID() { + return labTechnicianID; + } + + public void setLabTechnicianID(Long labTechnicianID) { + this.labTechnicianID = labTechnicianID; + } + public ProviderServiceMapping getProviderServiceMapping() { return providerServiceMapping; } diff --git a/src/main/java/com/iemr/tm/repo/login/UserLoginRepo.java b/src/main/java/com/iemr/tm/repo/login/UserLoginRepo.java index f0b2f746..5ae3b4d1 100644 --- a/src/main/java/com/iemr/tm/repo/login/UserLoginRepo.java +++ b/src/main/java/com/iemr/tm/repo/login/UserLoginRepo.java @@ -15,6 +15,9 @@ public interface UserLoginRepo extends CrudRepository { @Query(" SELECT u FROM Users u WHERE u.userID = :userID AND u.Deleted = false ") public Users getUserByUserID(@Param("userID") Long userID); + @Query(" SELECT u FROM Users u WHERE u.userName = :UserName AND u.Deleted = false ") + public Users getUserByUsername(@Param("UserName") String username); + @Query(nativeQuery = true,value = "select rolename from m_role where roleid in (select roleid from m_userservicerolemapping where userid=:userID)") List getRoleNamebyUserId(@Param("userID") Long userID); diff --git a/src/main/java/com/iemr/tm/repo/nurse/BenVisitDetailRepo.java b/src/main/java/com/iemr/tm/repo/nurse/BenVisitDetailRepo.java index 33ca2c8b..df7f3908 100644 --- a/src/main/java/com/iemr/tm/repo/nurse/BenVisitDetailRepo.java +++ b/src/main/java/com/iemr/tm/repo/nurse/BenVisitDetailRepo.java @@ -110,4 +110,16 @@ public int updateFileID(@Param("fileIDs") String fileIDs, @Param("regID") Long r @Query(nativeQuery = true, value = " SELECT v.visitCode FROM t_benvisitdetail v WHERE v.beneficiaryRegID=:benRegId AND v.providerServiceMapID=:psmId ORDER BY BenVisitID DESC LIMIT 1 ") public Long getVisitCode(@Param("benRegId") Long benRegId, @Param("psmId") Integer psmId); + // 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); + } diff --git a/src/main/java/com/iemr/tm/service/common/transaction/CommonDoctorServiceImpl.java b/src/main/java/com/iemr/tm/service/common/transaction/CommonDoctorServiceImpl.java index 32661569..85b1a802 100644 --- a/src/main/java/com/iemr/tm/service/common/transaction/CommonDoctorServiceImpl.java +++ b/src/main/java/com/iemr/tm/service/common/transaction/CommonDoctorServiceImpl.java @@ -119,6 +119,33 @@ public class CommonDoctorServiceImpl { @Autowired private PNCDiagnosisRepo pNCDiagnosisRepo; @Autowired + private com.iemr.tm.repo.nurse.BenVisitDetailRepo benVisitDetailRepo; + @Autowired + private com.iemr.tm.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 so an unknown + * staff member never blocks the flow. + */ + private Long resolveUserId(String username) { + if (username == null || username.trim().isEmpty()) + return null; + com.iemr.tm.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, taken from createdBy. + */ + private void storeDoctorIDOnVisit(CommonUtilityClass commonUtilityClass) { + if (commonUtilityClass == null || commonUtilityClass.getVisitCode() == null) + return; + Long doctorID = resolveUserId(commonUtilityClass.getCreatedBy()); + if (doctorID != null) + benVisitDetailRepo.updateDoctorID(doctorID, commonUtilityClass.getVisitCode()); + } + @Autowired private PrescriptionDetailRepo prescriptionDetailRepo; @Autowired private NCDCareDiagnosisRepo NCDCareDiagnosisRepo; @@ -717,6 +744,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() == 4) { ArrayList foetalMonitorData = foetalMonitorRepo @@ -862,6 +892,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); + // Foetal monitor related update in visitcode and lab flag if (commonUtilityClass != null && commonUtilityClass.getVisitCategoryID() != null && commonUtilityClass.getVisitCategoryID() == 4) { diff --git a/src/main/java/com/iemr/tm/service/common/transaction/CommonNurseServiceImpl.java b/src/main/java/com/iemr/tm/service/common/transaction/CommonNurseServiceImpl.java index e2f47509..8f8cce5d 100644 --- a/src/main/java/com/iemr/tm/service/common/transaction/CommonNurseServiceImpl.java +++ b/src/main/java/com/iemr/tm/service/common/transaction/CommonNurseServiceImpl.java @@ -148,6 +148,22 @@ public class CommonNurseServiceImpl implements CommonNurseService { private Integer TMReferredWL; private BenVisitDetailRepo benVisitDetailRepo; + + @org.springframework.beans.factory.annotation.Autowired + private com.iemr.tm.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 so an unknown + * staff member never blocks the save. + */ + private Long resolveUserId(String username) { + if (username == null || username.trim().isEmpty()) + return null; + com.iemr.tm.data.login.Users user = userLoginRepo.getUserByUsername(username.trim()); + return user != null ? user.getUserID() : null; + } + private BenChiefComplaintRepo benChiefComplaintRepo; private BenMedHistoryRepo benMedHistoryRepo; private BencomrbidityCondRepo bencomrbidityCondRepo; @@ -413,6 +429,10 @@ public Long saveBeneficiaryVisitDetails(BeneficiaryVisitDetail beneficiaryVisitD } beneficiaryVisitDetail.setReportFilePath(sb.toString()); + // 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/tm/service/labtechnician/LabTechnicianServiceImpl.java b/src/main/java/com/iemr/tm/service/labtechnician/LabTechnicianServiceImpl.java index 20a73b51..7b2e1265 100644 --- a/src/main/java/com/iemr/tm/service/labtechnician/LabTechnicianServiceImpl.java +++ b/src/main/java/com/iemr/tm/service/labtechnician/LabTechnicianServiceImpl.java @@ -52,6 +52,22 @@ public class LabTechnicianServiceImpl implements LabTechnicianService { private ECGAbnormalFindingMasterRepo ecgAbnormalFindingMasterRepo; private CommonBenStatusFlowServiceImpl commonBenStatusFlowServiceImpl; + @org.springframework.beans.factory.annotation.Autowired + private com.iemr.tm.repo.nurse.BenVisitDetailRepo benVisitDetailRepo; + @org.springframework.beans.factory.annotation.Autowired + private com.iemr.tm.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.tm.data.login.Users user = userLoginRepo.getUserByUsername(username.trim()); + return user != null ? user.getUserID() : null; + } + @Autowired public void setCommonBenStatusFlowServiceImpl(CommonBenStatusFlowServiceImpl commonBenStatusFlowServiceImpl) { this.commonBenStatusFlowServiceImpl = commonBenStatusFlowServiceImpl; @@ -360,6 +376,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 a9cb5a5149d8842ab1347d2a322e44a9438bcee5 Mon Sep 17 00:00:00 2001 From: vanitha1822 Date: Tue, 14 Jul 2026 16:16:29 +0530 Subject: [PATCH 2/2] fix: pom version --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 42c2f42d..661f9567 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ com.iemr.tm tm-api - 3.6.2 + 3.9.0 war TM-API