diff --git a/src/main/java/com/emr/controller/FontController.java b/src/main/java/com/emr/controller/FontController.java index c4dbb30e..b831370e 100644 --- a/src/main/java/com/emr/controller/FontController.java +++ b/src/main/java/com/emr/controller/FontController.java @@ -423,7 +423,8 @@ public class FontController { public void sendMessageWith(HttpServletRequest request, String title, String content,String typeFlag) { try { Power_User user = (Power_User) request.getSession().getAttribute("CURRENT_USER"); - OverdueRemindVO overdueRemindVO= new OverdueRemindVO(); + String deptId = user.getRemark(); + OverdueRemindVO overdueRemindVO= new OverdueRemindVO(); DateFormat format = new SimpleDateFormat("yyyy-MM-dd"); String date2="2021-01-01"; Date date1=null; @@ -435,27 +436,38 @@ public class FontController { overdueRemindVO.setDate1(date1); //查询主治医生id String s = user.getUserName(); - System.out.println("s:::" + s); Integer userId = user.getUserId(); overdueRemindVO.setDoctorInCharge(s); //判断这个医生今天是否已读超期消息提醒 int i = overdueRemindService.selectOverdueStatcByDoctorId(overdueRemindVO); - System.out.println("i:::" + i); if (i ==0) { //查询该主治医生有多少超期的病案未归档 + if (deptId.equals("病案室")){ + StringBuffer sb = new StringBuffer(); + String deptId1 = user.getDeptIdQuality(); + String deptIdQuality = deptId.replaceAll("\\b", "'"); + List overdueRemindVOS = overdueRemindService.selectoverdueNumAndQualityControl(deptIdQuality); + for (int b=0;overdueRemindVOS.size()>0;b++){ + String overdueNum = overdueRemindVOS.get(b).getOverdueNum(); + String name = overdueRemindVOS.get(b).getName(); + sb.append(overdueNum+"有"+name+"份"); + } + String string = sb.toString(); + // System.out.println("overdueNum++++"+overdueNum); + content = "尊敬的质控老师!您质控的科室'" + string + "'应归档的病案未归档"; + Map map = new HashMap<>(); + map.put("title", "未归档的病案通知"); + map.put("content", content); + map.put("sysFlag", "emr_medical_record"); + map.put("userId", userId + ""); + map.put("typeFlag", typeFlag); + HttpClientUtils.doGet(POWER_URLHEAD + "/font/sendMessage", map); + //保存到提醒日志 + overdueRemindVO.setDOCTOR_IN_CHARGE(s); + overdueRemindService.insertRemind(overdueRemindVO); + }else { String overdueNum = overdueRemindService.selectoverdueNumAndDoctorId(overdueRemindVO); -// System.out.println("overdueNum:::" + overdueNum); -// //调用接口 -// // 创建uri content = "尊敬的医生!您有'" + overdueNum + "'条超期的病案未归档"; -// String url = powerUrlHead + "/font/sendMessage?" -// + "userId=" + userId -// + "&sysFlag=emr_medical_record" -// + "&title=" + title -// + "&content=" + content.replace(" ", ""); -// // 执行请求 -// System.out.println("content:::" + content); -// System.out.println("url:::" + url); Map map = new HashMap<>(); map.put("title", "超期的病案通知"); map.put("content", content); @@ -465,8 +477,8 @@ public class FontController { HttpClientUtils.doGet(POWER_URLHEAD + "/font/sendMessage", map); //保存到提醒日志 overdueRemindVO.setDOCTOR_IN_CHARGE(s); - System.out.println("s:::" + s); overdueRemindService.insertRemind(overdueRemindVO); + } } } catch (Exception e) { e.printStackTrace(); diff --git a/src/main/java/com/emr/controller/medicalOverdueController.java b/src/main/java/com/emr/controller/medicalOverdueController.java index fcf69ab4..dbd4d970 100644 --- a/src/main/java/com/emr/controller/medicalOverdueController.java +++ b/src/main/java/com/emr/controller/medicalOverdueController.java @@ -67,6 +67,15 @@ public class medicalOverdueController { DateFormat format = new SimpleDateFormat("yyyy-MM-dd"); Date date1=null; Date date2=null; + String overdueDaysTwo = archiveMasterVo.getOverdueDaysTwo(); + if (overdueDaysTwo.equals("")){ + archiveMasterVo.setOverdueDaysTwo("4"); + }else { + int inum = Integer.parseInt(overdueDaysTwo); + int inum2=inum+1; + String s=String.valueOf(inum2); + archiveMasterVo.setOverdueDaysTwo(s); + } response.setContentType("application/vnd.ms-excel;charset=UTF-8"); String[] header = {"住院号","住院次数","姓名","入院科室","出院科室","出院日期","初审日期","初审人","主管医生","是否死亡","间隔天数","超期天数"}; String[] fileNames = {"inpNo","visitId","name","deptAdmissionTo","deptName","dischargeDateTime","handleTime","handleName","doctorInCharge","deathFlag","diffDay","overTime"}; @@ -169,13 +178,241 @@ public class medicalOverdueController { @RequestMapping(value = "/exportExcel2") public void exportExcel2(HttpServletResponse response, Archive_Master_Vo archiveMasterVo) throws Exception { response.setContentType("application/vnd.ms-excel;charset=UTF-8"); - String[] header = {"住院号","住院次数","姓名","入院科室","出院科室","出院日期","退回日期","退回人","主管医生","是否死亡","间隔天数","超期天数"}; - String[] fileNames = {"inpNo","visitId","name","deptAdmissionTo","deptName","dischargeDateTime","handleTime","handleName","doctorInCharge","deathFlag","diffDay","overdue"}; + String overdueDaysTwo = archiveMasterVo.getOverdueDaysTwo(); + if (overdueDaysTwo.equals("")){ + archiveMasterVo.setOverdueDaysTwo("4"); + }else { + int inum = Integer.parseInt(overdueDaysTwo); + int inum2=inum+1; + String s=String.valueOf(inum2); + archiveMasterVo.setOverdueDaysTwo(s); + } + DateFormat format = new SimpleDateFormat("yyyy-MM-dd"); + Date date1=null; + Date date2=null; + String[] header = {"住院号","住院次数","姓名","入院科室","出院科室","出院日期","退回日期","再次提交时间","退回人","主管医生","是否死亡","间隔天数","超期天数"}; + String[] fileNames = {"inpNo","visitId","name","deptAdmissionTo","deptName","dischargeDateTime","handleTime","againTime","handleName","doctorInCharge","deathFlag","diffDay","overTime"}; //文件名 String fileName = "住院返修病历列表" + new SimpleDateFormat("yyyyMMddHHmmss").format(new Date()) + ".xls"; //构造excel的数据overdueDays - List list = archiveMasterService.selectOverdue2(archiveMasterVo); + List list = archiveMasterService.selectOverdueXls2(archiveMasterVo); + for (int a = 0; a < list.size(); a++) { + String overTime1 = list.get(a).getOverTime1(); + String handleTime = list.get(a).getAgainTime(); + try { + date1 = format.parse(overTime1); + date2 = format.parse(handleTime); + } catch (ParseException e) { + e.printStackTrace(); + } + Calendar ca1 = Calendar.getInstance(); + Calendar ca2 = Calendar.getInstance(); + ca1.setTime(date1); + ca2.setTime(date2); + long distanceMin = (ca2.getTimeInMillis() - ca1.getTimeInMillis()) / (1000 * 60 * 60 * 24); + int Min = (int) distanceMin; + if (Min > 0) { + list.get(a).setOverTime(Min); + } else { + list.get(a).setOverTime(0); + } + } + List medicalRecordHomepageCacheList = null; + + if(archiveMasterVo.getOverdueDays()!=null && archiveMasterVo.getOverdueDays()!="") { + if (list != null && list.size() > 0) { + for (int i = 0; i < list.size(); i++) { + if (list.get(i).getOverdue() != null && !list.get(i).getOverdue().equals("")) { + int score = Integer.parseInt(list.get(i).getOverdue()) - Integer.parseInt(archiveMasterVo.getOverdueDays()); + list.get(i).setScore("" + score); + } + if (list.get(i).getDeathFlag() != null && !list.get(i).getDeathFlag().equals("")){ + if (list.get(i).getDeathFlag().equals("0")){ + list.get(i).setDeathFlag("否"); + }else { + list.get(i).setDeathFlag("是"); + } + } + + //2021-09-17 + String doctorInChargeInHomePage = ""; + String directorDoctorInHomePage = ""; + + //根据masterId查出该条首页缓存表中content内容 + MedicalRecordHomepageCacheExample medicalRecordHomepageCacheExample = new MedicalRecordHomepageCacheExample(); + MedicalRecordHomepageCacheExample.Criteria criteria = medicalRecordHomepageCacheExample.createCriteria(); + if (!StringUtils.isEmpty(list.get(i).getId())){ + criteria.andMasterIdEqualTo(list.get(i).getId()); + } + medicalRecordHomepageCacheList = medicalRecordHomepageCacheMapper.selectByExample(medicalRecordHomepageCacheExample); + + if (medicalRecordHomepageCacheList.size()>0){ + //查出content + String content = medicalRecordHomepageCacheList.get(0).getContent(); + //根据content内容获取首页中主治医生name、主任(副主任)医生name + doctorInChargeInHomePage = JSONObject.parseObject(content).getJSONObject("commonTable").getString("yZY054"); + directorDoctorInHomePage = JSONObject.parseObject(content).getJSONObject("commonTable1").getString("yZY052"); + } + //重新赋值主管医生、主任(副主任)医生 + if (doctorInChargeInHomePage != null && !doctorInChargeInHomePage.equals("")){ + list.get(i).setDoctorInCharge(doctorInChargeInHomePage); + }else { + list.get(i).setDoctorInCharge("首页尚未填写主治医生!"); + } + + if (directorDoctorInHomePage != null && !directorDoctorInHomePage.equals("")){ + list.get(i).setFirstInstance(directorDoctorInHomePage); + }else { + list.get(i).setFirstInstance("首页尚未填写主任(副主任)医生!"); + } + //2021-09-17 + } + } + } + ThreadExcelUtils utils = new ThreadExcelUtils(fileName, "", header, fileNames); + String result=utils.exportExcelToFilePath(response,utils.listConvert(list)); + } + + @ResponseBody + @RequestMapping(value = "/medicalOverdueList3") + public OffsetLimitPage medicalOverdueList3(HttpServletRequest request, HttpServletResponse response, Archive_Master_Vo archiveMasterVo, Integer offset, Integer limit) { + OffsetLimitPage result =archiveMasterService.selectOverdue3(archiveMasterVo, offset, limit); + return result; + } + + + @ResponseBody + @RequestMapping(value = "/medicalOverdueList4") + public OffsetLimitPage medicalOverdueList4(HttpServletRequest request, HttpServletResponse response, Archive_Master_Vo archiveMasterVo, Integer offset, Integer limit) { + OffsetLimitPage result =archiveMasterService.selectOverdue4(archiveMasterVo, offset, limit); + return result; + } + + @ResponseBody + @RequestMapping(value = "/exportExcelFirst") + public void exportExcelFirst(HttpServletResponse response, Archive_Master_Vo archiveMasterVo) throws Exception { + response.setContentType("application/vnd.ms-excel;charset=UTF-8"); + String overdueDaysTwo = archiveMasterVo.getOverdueDaysTwo(); + if (overdueDaysTwo.equals("")){ + archiveMasterVo.setOverdueDaysTwo("4"); + }else { + int inum = Integer.parseInt(overdueDaysTwo); + int inum2=inum+1; + String s=String.valueOf(inum2); + archiveMasterVo.setOverdueDaysTwo(s); + } + String[] header = {"住院号","住院次数","姓名","入院科室","出院科室","出院日期","退回人","主管医生","是否死亡","间隔天数","超期天数"}; + String[] fileNames = {"inpNo","visitId","name","deptAdmissionTo","deptName","dischargeDateTime","handleName","doctorInCharge","deathFlag","diffDay","overTime"}; + //文件名 + String fileName = "初次未提交病历" + new SimpleDateFormat("yyyyMMddHHmmss").format(new Date()) + ".xls"; + //构造excel的数据overdueDays + List list = archiveMasterService.selectOverdueFirst(archiveMasterVo); + for (int a = 0; a < list.size(); a++) { + String overTime1 = list.get(a).getOverTime1(); + int i = Integer.parseInt(overTime1); + if (i>0){ + list.get(a).setOverTime(i); + }else { + list.get(a).setOverTime(0); + } + String deathFlag = list.get(a).getDeathFlag(); + int c = Integer.parseInt(deathFlag); + if (c==1){ + list.get(a).setDeathFlag("是"); + }else{ + list.get(a).setDeathFlag("否"); + } + } + List medicalRecordHomepageCacheList = null; + + if(archiveMasterVo.getOverdueDays()!=null && archiveMasterVo.getOverdueDays()!="") { + if (list != null && list.size() > 0) { + for (int i = 0; i < list.size(); i++) { + if (list.get(i).getOverdue() != null && !list.get(i).getOverdue().equals("")) { + int score = Integer.parseInt(list.get(i).getOverdue()) - Integer.parseInt(archiveMasterVo.getOverdueDays()); + list.get(i).setScore("" + score); + } + if (list.get(i).getDeathFlag() != null && !list.get(i).getDeathFlag().equals("")){ + if (list.get(i).getDeathFlag().equals("0")){ + list.get(i).setDeathFlag("否"); + }else { + list.get(i).setDeathFlag("是"); + } + } + + //2021-09-17 + String doctorInChargeInHomePage = ""; + String directorDoctorInHomePage = ""; + //根据masterId查出该条首页缓存表中content内容 + MedicalRecordHomepageCacheExample medicalRecordHomepageCacheExample = new MedicalRecordHomepageCacheExample(); + MedicalRecordHomepageCacheExample.Criteria criteria = medicalRecordHomepageCacheExample.createCriteria(); + if (!StringUtils.isEmpty(list.get(i).getId())){ + criteria.andMasterIdEqualTo(list.get(i).getId()); + } + medicalRecordHomepageCacheList = medicalRecordHomepageCacheMapper.selectByExample(medicalRecordHomepageCacheExample); + + if (medicalRecordHomepageCacheList.size()>0){ + //查出content + String content = medicalRecordHomepageCacheList.get(0).getContent(); + //根据content内容获取首页中主治医生name、主任(副主任)医生name + doctorInChargeInHomePage = JSONObject.parseObject(content).getJSONObject("commonTable").getString("yZY054"); + directorDoctorInHomePage = JSONObject.parseObject(content).getJSONObject("commonTable1").getString("yZY052"); + } + //重新赋值主管医生、主任(副主任)医生 + if (doctorInChargeInHomePage != null && !doctorInChargeInHomePage.equals("")){ + list.get(i).setDoctorInCharge(doctorInChargeInHomePage); + }else { + list.get(i).setDoctorInCharge("首页尚未填写主治医生!"); + } + + if (directorDoctorInHomePage != null && !directorDoctorInHomePage.equals("")){ + list.get(i).setFirstInstance(directorDoctorInHomePage); + }else { + list.get(i).setFirstInstance("首页尚未填写主任(副主任)医生!"); + } + //2021-09-17 + } + } + } + ThreadExcelUtils utils = new ThreadExcelUtils(fileName, "", header, fileNames); + String result=utils.exportExcelToFilePath(response,utils.listConvert(list)); + } + @ResponseBody + @RequestMapping(value = "/exportExcelFirst1") + public void exportExcelFirst1(HttpServletResponse response, Archive_Master_Vo archiveMasterVo) throws Exception { + response.setContentType("application/vnd.ms-excel;charset=UTF-8"); + String overdueDaysTwo = archiveMasterVo.getOverdueDaysTwo(); + if (overdueDaysTwo.equals("")){ + archiveMasterVo.setOverdueDaysTwo("4"); + }else { + int inum = Integer.parseInt(overdueDaysTwo); + int inum2=inum+1; + String s=String.valueOf(inum2); + archiveMasterVo.setOverdueDaysTwo(s); + } + String[] header = {"住院号","住院次数","姓名","入院科室","出院科室","出院日期","最后退回时间","主管医生","是否死亡","间隔天数","超期天数"}; + String[] fileNames = {"inpNo","visitId","name","deptAdmissionTo","deptName","dischargeDateTime","handleTimeMax1","doctorInCharge","deathFlag","diffDay","overTime"}; + //文件名 + String fileName = "返修未提交病历" + new SimpleDateFormat("yyyyMMddHHmmss").format(new Date()) + ".xls"; + //构造excel的数据overdueDays + List list = archiveMasterService.selectOverdueFirst1(archiveMasterVo); + for (int a = 0; a < list.size(); a++) { + String overTime1 = list.get(a).getOverTime1(); + int i = Integer.parseInt(overTime1); + if (i>0){ + list.get(a).setOverTime(i); + }else { + list.get(a).setOverTime(0); + } + String deathFlag = list.get(a).getDeathFlag(); + int c = Integer.parseInt(deathFlag); + if (c==1){ + list.get(a).setDeathFlag("是"); + }else{ + list.get(a).setDeathFlag("否"); + } + } List medicalRecordHomepageCacheList = null; if(archiveMasterVo.getOverdueDays()!=null && archiveMasterVo.getOverdueDays()!="") { diff --git a/src/main/java/com/emr/dao/Archive_MasterMapper.java b/src/main/java/com/emr/dao/Archive_MasterMapper.java index 107ea887..e185bb64 100644 --- a/src/main/java/com/emr/dao/Archive_MasterMapper.java +++ b/src/main/java/com/emr/dao/Archive_MasterMapper.java @@ -156,6 +156,20 @@ public interface Archive_MasterMapper { */ List selectOverdue2(Archive_Master_Vo record); + /** + * 查询初次未提交-超期天数列表 + * @param archiveMasterVo + * @return + */ + List selectOverdue3(Archive_Master_Vo archiveMasterVo); + + /** + * 查询返修未提交-超期天数列表 + * @param archiveMasterVo + * @return + */ + List selectOverdue4(Archive_Master_Vo archiveMasterVo); + Archive_Master_Vo againTime(String masterId); // Archive_Master_Vo againOverdueTime(String masterId); diff --git a/src/main/java/com/emr/dao/OverdueRemindMapper.java b/src/main/java/com/emr/dao/OverdueRemindMapper.java index 2c6bb894..54c54e80 100644 --- a/src/main/java/com/emr/dao/OverdueRemindMapper.java +++ b/src/main/java/com/emr/dao/OverdueRemindMapper.java @@ -1,6 +1,9 @@ package com.emr.dao; import com.emr.vo.OverdueRemindVO; +import org.apache.ibatis.annotations.Param; + +import java.util.List; public interface OverdueRemindMapper { @@ -8,6 +11,8 @@ public interface OverdueRemindMapper { String selectDoctorId(OverdueRemindVO overdueRemindVO); //查询主管医医生有多少条超期记录 String selectoverdueNumAndDoctorId(OverdueRemindVO overdueRemindVO); + //查询主管医医生有多少条超期记录 + List selectoverdueNumAndQualityControl(@Param("deptIdQuality")String deptIdQuality); // 保存操作日志 int insertRemind(OverdueRemindVO overdueRemindVO); //判断超期提醒状态 diff --git a/src/main/java/com/emr/entity/Archive_Master_Vo.java b/src/main/java/com/emr/entity/Archive_Master_Vo.java index c0529a21..11062634 100644 --- a/src/main/java/com/emr/entity/Archive_Master_Vo.java +++ b/src/main/java/com/emr/entity/Archive_Master_Vo.java @@ -29,11 +29,15 @@ public class Archive_Master_Vo { private String sex; + private String num; + + + private String deptName; private String dischargeDateTime; - + private String handleTimeMax1; private Date dischargeDateTime1; diff --git a/src/main/java/com/emr/entity/Power_User.java b/src/main/java/com/emr/entity/Power_User.java index b12c6425..8b35f740 100644 --- a/src/main/java/com/emr/entity/Power_User.java +++ b/src/main/java/com/emr/entity/Power_User.java @@ -9,10 +9,30 @@ package com.emr.entity; import java.util.Set; public class Power_User { + public String getDeptIdQuality() { + return deptIdQuality; + } + + public void setDeptIdQuality(String deptIdQuality) { + this.deptIdQuality = deptIdQuality; + } + + public String getDeptId() { + return deptId; + } + + public void setDeptId(String deptId) { + this.deptId = deptId; + } + /** * 用户id */ private Integer userId; + + private String deptIdQuality; + + private String deptId; /** * 用户名 */ diff --git a/src/main/java/com/emr/service/Archive_MasterService.java b/src/main/java/com/emr/service/Archive_MasterService.java index 9feba923..719e9df2 100644 --- a/src/main/java/com/emr/service/Archive_MasterService.java +++ b/src/main/java/com/emr/service/Archive_MasterService.java @@ -211,7 +211,7 @@ public interface Archive_MasterService { * @param archiveMasterVo * @return */ - List selectOverdue2(Archive_Master_Vo archiveMasterVo); + List selectOverdueXls2(Archive_Master_Vo archiveMasterVo); /** * 根据条件查找超期天数列表(住院返修病历) @@ -222,6 +222,37 @@ public interface Archive_MasterService { OffsetLimitPage selectOverdue2(Archive_Master_Vo archiveMasterVo, Integer offset, Integer limit); + /** + * 根据条件查找超期天数列表(初次未提交) + * + * @param archiveMasterVo + * @return + */ + List selectOverdueFirst(Archive_Master_Vo archiveMasterVo); + + /** + * 根据条件查找超期天数列表(初次未提交) + * + * @param archiveMasterVo + * @return + */ + List selectOverdueFirst1(Archive_Master_Vo archiveMasterVo); + /** + * 根据条件查找超期天数列表(初次未提交) + * + * @param archiveMasterVo + * @return + */ + OffsetLimitPage selectOverdue3(Archive_Master_Vo archiveMasterVo, Integer offset, Integer limit); + + /** + * 根据条件查找超期天数列表(返修未提交) + * + * @param archiveMasterVo + * @return + */ + OffsetLimitPage selectOverdue4(Archive_Master_Vo archiveMasterVo, Integer offset, Integer limit); + /** * 封存日志 * @param record diff --git a/src/main/java/com/emr/service/OverdueRemindService.java b/src/main/java/com/emr/service/OverdueRemindService.java index 38b3d65a..48008a29 100644 --- a/src/main/java/com/emr/service/OverdueRemindService.java +++ b/src/main/java/com/emr/service/OverdueRemindService.java @@ -1,6 +1,9 @@ package com.emr.service; import com.emr.vo.OverdueRemindVO; +import org.apache.ibatis.annotations.Param; + +import java.util.List; public interface OverdueRemindService { @@ -8,6 +11,8 @@ public interface OverdueRemindService { String selectDoctorId(OverdueRemindVO overdueRemindVO); //查询主管医医生有多少条超期记录 String selectoverdueNumAndDoctorId(OverdueRemindVO overdueRemindVO); + //查询主管医医生有多少条超期记录 + List selectoverdueNumAndQualityControl(@Param("deptIdQuality")String deptIdQuality); // 保存操作日志 int insertRemind(OverdueRemindVO overdueRemindVO); //判断超期提醒状态 diff --git a/src/main/java/com/emr/service/PowerUserService.java b/src/main/java/com/emr/service/PowerUserService.java index ffd06747..bf097f17 100644 --- a/src/main/java/com/emr/service/PowerUserService.java +++ b/src/main/java/com/emr/service/PowerUserService.java @@ -10,5 +10,5 @@ public interface PowerUserService { JSONArray getPowerUserList(String type); - List getHandleName(String patientIds); + } diff --git a/src/main/java/com/emr/service/ipml/Archive_MasterServiceImpl.java b/src/main/java/com/emr/service/ipml/Archive_MasterServiceImpl.java index 6421699d..89b15bf8 100644 --- a/src/main/java/com/emr/service/ipml/Archive_MasterServiceImpl.java +++ b/src/main/java/com/emr/service/ipml/Archive_MasterServiceImpl.java @@ -636,7 +636,7 @@ public class Archive_MasterServiceImpl implements Archive_MasterService { } @Override - public List selectOverdue2(Archive_Master_Vo archiveMasterVo) { + public List selectOverdueXls2(Archive_Master_Vo archiveMasterVo) { List list = archiveMasterMapper.selectOverdue2(archiveMasterVo); if(list!=null && list.size()>0) { //查询用户集合 @@ -669,6 +669,75 @@ public class Archive_MasterServiceImpl implements Archive_MasterService { return list; } + @Override + public List selectOverdueFirst(Archive_Master_Vo archiveMasterVo) { + List list = archiveMasterMapper.selectOverdue3(archiveMasterVo); + if(list!=null && list.size()>0) { + //查询用户集合 + JSONArray powerUsers = powerUserService.getPowerUserList("1"); + List powerUserList = null; + if (!CollectionUtils.isEmpty(powerUsers)) { + //转换对象 + powerUserList = JSONArray.parseArray(powerUsers.toJSONString(), Power_User_Dto.class); + } + //遍历赋值 + for (Archive_Master_Vo archiveMaster : list) { + if (null != powerUserList) { + //获取主管医生 + String doctorInCharge = archiveMaster.getDoctorInCharge(); + //获取 初审人 + String firstInstance = archiveMaster.getFirstInstance(); + //遍历匹配工号赋值姓名 + for (Power_User_Dto powerUserDto : powerUserList) { + String name = powerUserDto.getName(); + if (StringUtils.isNotBlank(doctorInCharge) && powerUserDto.getUserName().equals(doctorInCharge)) { + archiveMaster.setDoctorInCharge(name); + } + if (StringUtils.isNotBlank(firstInstance) && powerUserDto.getUserName().equals(firstInstance)) { + archiveMaster.setFirstInstance(name); + } + } + } + } + } + return list; + } + + @Override + public List selectOverdueFirst1(Archive_Master_Vo archiveMasterVo) { + List list = archiveMasterMapper.selectOverdue4(archiveMasterVo); + if(list!=null && list.size()>0) { + //查询用户集合 + JSONArray powerUsers = powerUserService.getPowerUserList("1"); + List powerUserList = null; + if (!CollectionUtils.isEmpty(powerUsers)) { + //转换对象 + powerUserList = JSONArray.parseArray(powerUsers.toJSONString(), Power_User_Dto.class); + } + //遍历赋值 + for (Archive_Master_Vo archiveMaster : list) { + if (null != powerUserList) { + //获取主管医生 + String doctorInCharge = archiveMaster.getDoctorInCharge(); + //获取 初审人 + String firstInstance = archiveMaster.getFirstInstance(); + //遍历匹配工号赋值姓名 + for (Power_User_Dto powerUserDto : powerUserList) { + String name = powerUserDto.getName(); + if (StringUtils.isNotBlank(doctorInCharge) && powerUserDto.getUserName().equals(doctorInCharge)) { + archiveMaster.setDoctorInCharge(name); + } + if (StringUtils.isNotBlank(firstInstance) && powerUserDto.getUserName().equals(firstInstance)) { + archiveMaster.setFirstInstance(name); + } + } + } + } + } + return list; + } + + @Override public OffsetLimitPage selectOverdue2(Archive_Master_Vo archiveMasterVo, Integer offset, Integer limit) { DateFormat format = new SimpleDateFormat("yyyy-MM-dd"); @@ -695,8 +764,6 @@ public class Archive_MasterServiceImpl implements Archive_MasterService { } //遍历赋值 for (Archive_Master_Vo archiveMaster : list) { - -// Archive_Master_Vo archive_master_vo = archiveMasterMapper.againTime(masterId); String overTime1 = archiveMaster.getOverTime1(); String handleTime = archiveMaster.getAgainTime(); try { @@ -737,6 +804,114 @@ public class Archive_MasterServiceImpl implements Archive_MasterService { return new OffsetLimitPage((Page) list); } + + @Override + public OffsetLimitPage selectOverdue3(Archive_Master_Vo archiveMasterVo, Integer offset, Integer limit) { + PageHelper.offsetPage(offset, limit); + String overdueDaysTwo = archiveMasterVo.getOverdueDaysTwo(); + if (overdueDaysTwo.equals("")){ + archiveMasterVo.setOverdueDaysTwo("4"); + }else { + int inum = Integer.parseInt(overdueDaysTwo); + int inum2=inum+1; + String s=String.valueOf(inum2); + archiveMasterVo.setOverdueDaysTwo(s); + } + List list = archiveMasterMapper.selectOverdue3(archiveMasterVo); + if(list!=null && list.size()>0) { + //查询用户集合 + JSONArray powerUsers = powerUserService.getPowerUserList("1"); + List powerUserList = null; + if (!CollectionUtils.isEmpty(powerUsers)) { + //转换对象 + powerUserList = JSONArray.parseArray(powerUsers.toJSONString(), Power_User_Dto.class); + } + //遍历赋值 + for (Archive_Master_Vo archiveMaster : list) { + String overTime1 = archiveMaster.getOverTime1(); + int i = Integer.parseInt(overTime1); + if (i>0){ + archiveMaster.setOverTime(i); + }else { + archiveMaster.setOverTime(0); + } + + if (null != powerUserList) { + //获取主管医生 + String doctorInCharge = archiveMaster.getDoctorInCharge(); + //获取 初审人 + String firstInstance = archiveMaster.getFirstInstance(); + //遍历匹配工号赋值姓名 + for (Power_User_Dto powerUserDto : powerUserList) { + String name = powerUserDto.getName(); + if (StringUtils.isNotBlank(doctorInCharge) && powerUserDto.getUserName().equals(doctorInCharge)) { + archiveMaster.setDoctorInCharge(name); + break; + } + if (StringUtils.isNotBlank(firstInstance) && powerUserDto.getUserName().equals(firstInstance)) { + archiveMaster.setFirstInstance(name); + break; + } + } + } + } + } + return new OffsetLimitPage((Page) list); + } + @Override + public OffsetLimitPage selectOverdue4(Archive_Master_Vo archiveMasterVo, Integer offset, Integer limit) { + PageHelper.offsetPage(offset, limit); + String overdueDaysTwo = archiveMasterVo.getOverdueDaysTwo(); + if (overdueDaysTwo.equals("")){ + archiveMasterVo.setOverdueDaysTwo("4"); + }else { + int inum = Integer.parseInt(overdueDaysTwo); + int inum2=inum+1; + String s=String.valueOf(inum2); + archiveMasterVo.setOverdueDaysTwo(s); + } + List list = archiveMasterMapper.selectOverdue4(archiveMasterVo); + if(list!=null && list.size()>0) { + //查询用户集合 + JSONArray powerUsers = powerUserService.getPowerUserList("1"); + List powerUserList = null; + if (!CollectionUtils.isEmpty(powerUsers)) { + //转换对象 + powerUserList = JSONArray.parseArray(powerUsers.toJSONString(), Power_User_Dto.class); + } + //遍历赋值 + for (Archive_Master_Vo archiveMaster : list) { + String overTime1 = archiveMaster.getOverTime1(); + int i = Integer.parseInt(overTime1); + if (i>0){ + archiveMaster.setOverTime(i); + }else { + archiveMaster.setOverTime(0); + } + + if (null != powerUserList) { + //获取主管医生 + String doctorInCharge = archiveMaster.getDoctorInCharge(); + //获取 初审人 + String firstInstance = archiveMaster.getFirstInstance(); + //遍历匹配工号赋值姓名 + for (Power_User_Dto powerUserDto : powerUserList) { + String name = powerUserDto.getName(); + if (StringUtils.isNotBlank(doctorInCharge) && powerUserDto.getUserName().equals(doctorInCharge)) { + archiveMaster.setDoctorInCharge(name); + break; + } + if (StringUtils.isNotBlank(firstInstance) && powerUserDto.getUserName().equals(firstInstance)) { + archiveMaster.setFirstInstance(name); + break; + } + } + } + } + } + return new OffsetLimitPage((Page) list); + } + @Override public OffsetLimitPage selectByFollowinglog(Archive_Master_Vo record, Integer offset, Integer limit) { PageHelper.offsetPage(offset, limit); diff --git a/src/main/java/com/emr/service/ipml/OverdueRemindServiceImpl.java b/src/main/java/com/emr/service/ipml/OverdueRemindServiceImpl.java index 9cc62126..47a1f20c 100644 --- a/src/main/java/com/emr/service/ipml/OverdueRemindServiceImpl.java +++ b/src/main/java/com/emr/service/ipml/OverdueRemindServiceImpl.java @@ -4,9 +4,12 @@ import com.emr.dao.Archive_MasterMapper; import com.emr.dao.OverdueRemindMapper; import com.emr.service.OverdueRemindService; import com.emr.vo.OverdueRemindVO; +import org.apache.ibatis.annotations.Param; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.List; + @Service public class OverdueRemindServiceImpl implements OverdueRemindService { @@ -22,6 +25,11 @@ public class OverdueRemindServiceImpl implements OverdueRemindService { return overdueRemindMapper.selectoverdueNumAndDoctorId(overdueRemindVO); } + @Override + public List selectoverdueNumAndQualityControl(@Param("deptIdQuality")String deptIdQuality) { + return overdueRemindMapper.selectoverdueNumAndQualityControl(deptIdQuality); + } + @Override public int insertRemind(OverdueRemindVO overdueRemindVO) { return overdueRemindMapper.insertRemind(overdueRemindVO); diff --git a/src/main/java/com/emr/vo/OverdueRemindVO.java b/src/main/java/com/emr/vo/OverdueRemindVO.java index 45e6decd..e29f1304 100644 --- a/src/main/java/com/emr/vo/OverdueRemindVO.java +++ b/src/main/java/com/emr/vo/OverdueRemindVO.java @@ -6,6 +6,7 @@ import java.util.Date; @Data public class OverdueRemindVO { + private String name; /** 用户Id */ private Integer userId; /** power_user表的工号Id */ @@ -29,6 +30,6 @@ public class OverdueRemindVO { /**提醒时间*/ private Date reminderTime; private String DOCTOR_IN_CHARGE; - + private String deptIdQuality; private Date date1; } diff --git a/src/main/resources/mapper/Archive_MasterMapper.xml b/src/main/resources/mapper/Archive_MasterMapper.xml index cff32a83..1e72f8bb 100644 --- a/src/main/resources/mapper/Archive_MasterMapper.xml +++ b/src/main/resources/mapper/Archive_MasterMapper.xml @@ -112,6 +112,8 @@ + + id, patient_id, inp_no, visit_id, name, sex, dept_name, discharge_date_time, ArchiveState, @@ -1628,13 +1630,13 @@ on m.dept_admission_to=e.code 1=1 and m.master_id!='' and m.master_id is not null and f2.handle_time is not null - - - - - - - + + + + + + + and m.id = #{id,jdbcType=NVARCHAR} @@ -1685,6 +1687,158 @@ ORDER BY m.master_id,m.discharge_date_time,f1.handle_time asc + + + + + + - select COUNT(*)as overdueNum from Archive_Master a - where a.DOCTOR_IN_CHARGE=#{doctorInCharge} and a.DOCTOR_IN_CHARGE is not null and a.DOCTOR_IN_CHARGE!='' - and a.discharge_date_time>'2021-01-01 ' - and a.ArchiveState='归档中' - and 3 <= - ( - SELECT - count(1) - FROM - emr_holiday_set - WHERE - flag = 1 - AND date >= CONVERT ( - VARCHAR (100), + SELECT COUNT + ( * ) AS overdueNum +FROM + Archive_Master a + LEFT JOIN ( + SELECT + id, + master_id, + CONVERT ( VARCHAR, handle_time, 120 ) handle_time, + handle_id, + handle_name, + following_type + FROM + ( + SELECT + ROW_NUMBER ( ) OVER ( partition BY master_id ORDER BY handle_time ASC ) RowNum, + Archive_Master_Following.* + FROM + Archive_Master_Following + WHERE + 1 = 1 + AND following_type = '5' + ) AS t1 + WHERE + 1 = 1 + AND RowNum = 1 + ) f ON f.master_id= a.ID +WHERE + a.DOCTOR_IN_CHARGE =#{doctorInCharge} + AND a.DOCTOR_IN_CHARGE IS NOT NULL + AND a.DOCTOR_IN_CHARGE!= '' + AND a.discharge_date_time between a.discharge_date_time and '2021-01-01' + AND a.ArchiveState= '归档中' + AND DATEDIFF(day, (SELECT max(b.date) + FROM (select top 4 date from emr_holiday_set where date >= CONVERT ( + VARCHAR (10), a.discharge_date_time, - 23 - ) - AND date <= CONVERT( - VARCHAR (100), - getDate(), - 23 - ) - ) - 4 - + 120 + ) and flag= 1 order by date asc) as b),CONVERT ( + VARCHAR (10), + f.handle_time, + 120 + ))>=3 + + + INSERT INTO reminder_journal @@ -57,8 +79,58 @@ CONVERT(varchar(8),GETDATE(),112) <= REMINDER_TIME and REMINDER_TIME <= dateadd(day,1,CONVERT(varchar(8),GETDATE(),112)) + + - + update reminder_journal set REMINDER_STATUS='2' where DOCTOR_IN_CHARGE=#{doctorInCharge} and diff --git a/src/main/webapp/WEB-INF/views/index.jsp b/src/main/webapp/WEB-INF/views/index.jsp index 8fba3d69..7bb0c882 100644 --- a/src/main/webapp/WEB-INF/views/index.jsp +++ b/src/main/webapp/WEB-INF/views/index.jsp @@ -188,7 +188,7 @@ <%--ALT--%> - 嘉时归档 + 病案无纸化归档系统