From 86ec2bd8af2370326496ed0dda27f667609db70f Mon Sep 17 00:00:00 2001 From: zengwh <81383286@qq.com> Date: Mon, 26 Oct 2020 17:31:12 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E7=A7=91=E5=AE=A4=E7=97=85?= =?UTF-8?q?=E6=A1=88=E8=B6=85=E6=9C=9F=E5=88=97=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/emr/controller/RecordController.java | 91 +++++-- .../com/emr/controller/WebServiceLoad.java | 4 +- .../controller/beHospitaledController.java | 26 +- .../com/emr/dao/ArchiveRemindInfoMapper.java | 22 ++ src/main/java/com/emr/dao/RecordMapper.java | 5 +- .../com/emr/entity/ArchiveRemindInfo.java | 62 +++++ .../com/emr/entity/Archive_Master_Vo.java | 29 +-- .../emr/service/Archive_MasterService.java | 6 + .../ipml/Archive_MasterServiceImpl.java | 46 +++- .../com/emr/service/ipml/RecordService.java | 47 +++- src/main/resources/config/config.properties | 15 +- .../mapper/ArchiveRemindInfoMapper.xml | 90 +++++++ src/main/resources/mapper/RecordMapper.xml | 66 +++-- .../WEB-INF/views/record/deptOverTimeInfo.jsp | 25 +- .../webapp/static/js/beHospList/beHospList.js | 21 +- .../static/js/record/deptOverTimeInfo.js | 246 ++++++++---------- 16 files changed, 573 insertions(+), 228 deletions(-) create mode 100644 src/main/java/com/emr/dao/ArchiveRemindInfoMapper.java create mode 100644 src/main/java/com/emr/entity/ArchiveRemindInfo.java create mode 100644 src/main/resources/mapper/ArchiveRemindInfoMapper.xml diff --git a/src/main/java/com/emr/controller/RecordController.java b/src/main/java/com/emr/controller/RecordController.java index 6287a4f..3244435 100644 --- a/src/main/java/com/emr/controller/RecordController.java +++ b/src/main/java/com/emr/controller/RecordController.java @@ -1,5 +1,6 @@ package com.emr.controller; +import com.emr.entity.Archive_Master_Vo; import com.emr.entity.OffsetLimitPage; import com.emr.service.ipml.RecordService; import com.emr.util.ExceptionPrintUtil; @@ -50,6 +51,16 @@ public class RecordController { return new OffsetLimitPage((Page) submitRecords); } + /** + * 统计总病历数,已提交数,已归档数,已采集完整数 + */ + @RequestMapping("selectCount") + @ResponseBody + public Msg selectCount(RecordSearch recordSearch) throws Exception{ + SubmitRecordStatistics recordStatistics = recordService.selectCount(recordSearch); + return Msg.success().add("record",recordStatistics); + } + /** * 病案提交导出 * @param response @@ -86,7 +97,7 @@ public class RecordController { } /** - * 科室病案超期 + * 科室病案超期頁面 * @return */ @RequestMapping("deptOverTimeInfo") @@ -95,26 +106,7 @@ public class RecordController { } /** - * 病案签收页面 - * @return - */ - @RequestMapping("signedRecord") - public String signedRecord(){ - return "record/signedRecord"; - } - - /** - * 统计总病历数,已提交数,已归档数,已采集完整数 - */ - @RequestMapping("selectCount") - @ResponseBody - public Msg selectCount(RecordSearch recordSearch) throws Exception{ - SubmitRecordStatistics recordStatistics = recordService.selectCount(recordSearch); - return Msg.success().add("record",recordStatistics); - } - - /** - * 统计总超期病历数,其中各个角色的提交率 + * 科室病案超期頁面中,其中各个角色的提交率 */ @RequestMapping("selectOvertimeCount") @ResponseBody @@ -123,21 +115,64 @@ public class RecordController { return Msg.success().add("record",recordStatistics); } - /* *//** - * 科室病案超时分页查询 + /** + * 按科室待审核角色病案超时分页查询 * @return - *//* - @RequestMapping("getRecordGroupDept") + */ + @RequestMapping("getRecordGroupDeptAndRole") @ResponseBody - public OffsetLimitPage getRecordGroupDept(Integer offset, + public OffsetLimitPage getRecordGroupDeptAndRole(Integer offset, Integer limit, RecordSearch recordSearch){ if(offset != null && limit != null) { PageHelper.offsetPage(offset, limit); } - List submitRecords = recordService.selectCountGroupDept(recordSearch); + List submitRecords = new Page<>(); + try { + submitRecords = recordService.selectRecordGroupDeptAndRole(recordSearch); + }catch (Exception e){ + e.printStackTrace(); + ExceptionPrintUtil.printException(e); + } + return new OffsetLimitPage((Page) submitRecords); - }*/ + } + + /** + * 科室病案超期导出 + * @param response + */ + @ResponseBody + @RequestMapping(value = "/exportExcelDeptOverTime") + public void exportExcelDeptOverTime(HttpServletResponse response, + RecordSearch recordSearch){ + String tableThNames = "科室名称,超期份數,医生未提交,医生质控员未提交,科主任未提交,护士未提交,"+ + "护士质控员未提交,护士长未提交,病案室未提交"; + String fieldCns = "deptNameCn,count,unDoctorSubmitCount,unDoctorCheckCount,unDirectorCheckCount," + + "unNurseSubmitCount,unNurseCheckCount,unHeadNurseCount,headNurseCount"; + //构造excel的数据 + try { + List list = recordService.selectCountGroupDept(recordSearch); + //文件名 + String fileName = "科室病案超期" + new SimpleDateFormat("yyyyMMddHHmmss").format(new Date()) + ".xls"; + //ExportExcelUtil + ExportExcelUtil exportExcelUtil = new ExportExcelUtil(); + //导出excel的操作 + exportExcelUtil.expordExcel(tableThNames,fieldCns,list,fileName,response); + }catch (Exception e){ + ExceptionPrintUtil.printException(e); + e.printStackTrace(); + } + } + + /** + * 病案签收页面 + * @return + */ + @RequestMapping("signedRecord") + public String signedRecord(){ + return "record/signedRecord"; + } /** * 病案签收统计分页查询 diff --git a/src/main/java/com/emr/controller/WebServiceLoad.java b/src/main/java/com/emr/controller/WebServiceLoad.java index 6c33d35..f28d77f 100644 --- a/src/main/java/com/emr/controller/WebServiceLoad.java +++ b/src/main/java/com/emr/controller/WebServiceLoad.java @@ -23,7 +23,7 @@ import javax.annotation.PostConstruct; public class WebServiceLoad { @PostConstruct public void contextInitialized() { - new Thread(() -> { + /*new Thread(() -> { String token = "ORsaVDUBE1RFRFRETE5BR05ERVQ3JyBURkRGRA=="; String POWER_IP = PropertiesUtils.getProperty("POWER_IP"); String POWER_PORT = PropertiesUtils.getProperty("POWER_PORT"); @@ -42,6 +42,6 @@ public class WebServiceLoad { client.destroy(); } } - }).start(); + }).start();*/ } } diff --git a/src/main/java/com/emr/controller/beHospitaledController.java b/src/main/java/com/emr/controller/beHospitaledController.java index 6e42f1c..ca67cbe 100644 --- a/src/main/java/com/emr/controller/beHospitaledController.java +++ b/src/main/java/com/emr/controller/beHospitaledController.java @@ -7,10 +7,8 @@ package com.emr.controller; import com.emr.dao.ArchiveFlowRoleMapper; -import com.emr.entity.ArchiveFlowRole; -import com.emr.entity.Archive_Master; -import com.emr.entity.Archive_Master_Vo; -import com.emr.entity.OffsetLimitPage; +import com.emr.dao.ArchiveRemindInfoMapper; +import com.emr.entity.*; import com.emr.service.Archive_MasterService; import com.emr.service.ipml.ArchiveFlowInfoService; import com.emr.util.ExceptionPrintUtil; @@ -21,6 +19,7 @@ import com.emr.vo.ArchiveFlowInfoVo; import org.apache.commons.lang3.StringUtils; import org.apache.cxf.endpoint.Client; import org.apache.shiro.SecurityUtils; +import org.apache.shiro.util.CollectionUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; @@ -47,6 +46,8 @@ public class beHospitaledController { private ArchiveFlowRoleMapper flowRoleMapper; @Autowired private ArchiveFlowInfoService flowInfoService; + @Autowired + private ArchiveRemindInfoMapper remindInfoMapper; @RequestMapping(value = "/beHosps") public String inHospitals(){ return "beHospitaledDir/beHospList"; @@ -266,6 +267,23 @@ public class beHospitaledController { List list = archiveMasterService.loadOverTimeDoctorInCharge(); return Msg.success().add("list",list); } + + /** + * 通知 + * @param deptName + * @return + */ + @RequestMapping("remind") + @ResponseBody + public Msg remind(String deptName,HttpServletRequest request){ + //查询是否今天是否通知过 + List list = remindInfoMapper.selectAllByDeptName(deptName); + if(!CollectionUtils.isEmpty(list)){ + return Msg.fail("该科室今天已通知过!"); + } + archiveMasterService.remind(deptName,request); + return Msg.success(); + } } diff --git a/src/main/java/com/emr/dao/ArchiveRemindInfoMapper.java b/src/main/java/com/emr/dao/ArchiveRemindInfoMapper.java new file mode 100644 index 0000000..e71a42c --- /dev/null +++ b/src/main/java/com/emr/dao/ArchiveRemindInfoMapper.java @@ -0,0 +1,22 @@ +package com.emr.dao; + +import com.emr.entity.ArchiveRemindInfo; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +public interface ArchiveRemindInfoMapper { + int deleteByPrimaryKey(Integer id); + + int insert(ArchiveRemindInfo record); + + int insertSelective(ArchiveRemindInfo record); + + ArchiveRemindInfo selectByPrimaryKey(Integer id); + + int updateByPrimaryKeySelective(ArchiveRemindInfo record); + + int updateByPrimaryKey(ArchiveRemindInfo record); + + List selectAllByDeptName(@Param("deptName")String deptName); +} \ No newline at end of file diff --git a/src/main/java/com/emr/dao/RecordMapper.java b/src/main/java/com/emr/dao/RecordMapper.java index aed9296..dcac056 100644 --- a/src/main/java/com/emr/dao/RecordMapper.java +++ b/src/main/java/com/emr/dao/RecordMapper.java @@ -1,5 +1,6 @@ package com.emr.dao; +import com.emr.entity.Archive_Master_Vo; import com.emr.vo.RecordSearch; import com.emr.vo.SubmitRecord; import com.emr.vo.SubmitRecordStatistics; @@ -12,9 +13,11 @@ public interface RecordMapper { //根据审核角色id和分组科室查询该科室完成份数 List selectCountByRoleAndDeptName(RecordSearch recordSearch); //根据科室分组查询护士长审核份数 - List selectCountWithHeadNurse(RecordSearch recordSearch); + //List selectCountWithHeadNurse(RecordSearch recordSearch); //统计总病历数,已提交数,已归档数,已采集完整数 SubmitRecordStatistics selectCount(RecordSearch recordSearch); //按日期分组查询出院人数,归档情况,提交情况,资料完整情况 List selectCountWithDate(RecordSearch recordSearch); + + List selectRecordGroupDeptAndRole(RecordSearch recordSearch); } diff --git a/src/main/java/com/emr/entity/ArchiveRemindInfo.java b/src/main/java/com/emr/entity/ArchiveRemindInfo.java new file mode 100644 index 0000000..35960c6 --- /dev/null +++ b/src/main/java/com/emr/entity/ArchiveRemindInfo.java @@ -0,0 +1,62 @@ +package com.emr.entity; + +import java.io.Serializable; +import java.util.Date; + +public class ArchiveRemindInfo implements Serializable { + private Integer id; + + private String deptName; + + private Date createTime; + + private String createUser; + + private static final long serialVersionUID = 1L; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName == null ? null : deptName.trim(); + } + + public Date getCreateTime() { + return createTime; + } + + public void setCreateTime(Date createTime) { + this.createTime = createTime; + } + + public String getCreateUser() { + return createUser; + } + + public void setCreateUser(String createUser) { + this.createUser = createUser == null ? null : createUser.trim(); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append(getClass().getSimpleName()); + sb.append(" ["); + sb.append("Hash = ").append(hashCode()); + sb.append(", id=").append(id); + sb.append(", deptName=").append(deptName); + sb.append(", createTime=").append(createTime); + sb.append(", createUser=").append(createUser); + sb.append("]"); + return sb.toString(); + } +} \ No newline at end of file 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 7e9e20a..4c4005a 100644 --- a/src/main/java/com/emr/entity/Archive_Master_Vo.java +++ b/src/main/java/com/emr/entity/Archive_Master_Vo.java @@ -48,30 +48,11 @@ public class Archive_Master_Vo extends Archive_Master{ private String unSuccessAssortNames;//不完整分类字符串 - private String archivestate; - @Override - public String toString() { - return "Archive_Master_Vo{" + - "startDateTo='" + startDateTo + '\'' + - ", endDateTo='" + endDateTo + '\'' + - ", startDate='" + startDate + '\'' + - ", endDate='" + endDate + '\'' + - ", deptList=" + deptList + - ", days=" + days + - ", checkName='" + checkName + '\'' + - ", checkedName='" + checkedName + '\'' + - ", btns='" + btns + '\'' + - ", status='" + status + '\'' + - ", remark='" + remark + '\'' + - ", roleCode=" + roleCode + - ", role=" + role + - ", roles='" + roles + '\'' + - ", infoId=" + infoId + - ", isSuccess='" + isSuccess + '\'' + - ", unSuccessAssortNames='" + unSuccessAssortNames + '\'' + - ", archivestate='" + archivestate + '\'' + - '}'; - } + private Integer overTimeCounts;//超期份数 + + private Integer overtimeDays;//超期天数 + + private String doctorInChargeCode;//主管医生工号 } diff --git a/src/main/java/com/emr/service/Archive_MasterService.java b/src/main/java/com/emr/service/Archive_MasterService.java index c686002..b3e5d5e 100644 --- a/src/main/java/com/emr/service/Archive_MasterService.java +++ b/src/main/java/com/emr/service/Archive_MasterService.java @@ -12,6 +12,7 @@ import com.emr.entity.Emr_Fault_Detail_Vo; import com.emr.entity.OffsetLimitPage; import com.emr.util.Msg; +import javax.servlet.http.HttpServletRequest; import java.util.List; public interface Archive_MasterService { @@ -38,6 +39,9 @@ public interface Archive_MasterService { List selectByColumn(Archive_Master_Vo archiveMasterVo); + //验证字符串是否是数字 + boolean isNumeric(String str); + /** * 根据条件查找病案未归档列表分页 * @@ -117,6 +121,8 @@ public interface Archive_MasterService { List loadDoctorInCharge(String deptName); List loadOverTimeDoctorInCharge(); + + void remind(String deptName, HttpServletRequest request); } 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 58c59d6..5aaac09 100644 --- a/src/main/java/com/emr/service/ipml/Archive_MasterServiceImpl.java +++ b/src/main/java/com/emr/service/ipml/Archive_MasterServiceImpl.java @@ -55,6 +55,8 @@ public class Archive_MasterServiceImpl implements Archive_MasterService { private Zd_AssortMapper assortMapper; @Autowired private Emr_DictionaryMapper dictionaryMapper; + @Autowired + private ArchiveRemindInfoMapper remindInfoMapper; /** * 在院列表 * */ @@ -404,7 +406,8 @@ public class Archive_MasterServiceImpl implements Archive_MasterService { } //验证字符串是否是数字 - public static boolean isNumeric(String str){ + @Override + public boolean isNumeric(String str){ for (int i = 0; i < str.length(); i++){ if (!Character.isDigit(str.charAt(i))){ return false; @@ -1082,6 +1085,47 @@ public class Archive_MasterServiceImpl implements Archive_MasterService { } return null; } + + /** + * 通知 + * @param deptName + */ + @Override + public void remind(String deptName,HttpServletRequest request) { + //通知第三方平台 + remindOtherSystem(deptName); + //通知该平台 + remindThisSystem(deptName); + //插入科室通知记录表 + insertRemindInfoData(deptName,request); + } + + /** + * 插入科室通知记录表 + * @param deptName + */ + private void insertRemindInfoData(String deptName,HttpServletRequest request) { + ArchiveRemindInfo remindInfo = new ArchiveRemindInfo(); + remindInfo.setDeptName(deptName); + remindInfo.setCreateTime(new Date()); + Power_User user = (Power_User)request.getSession().getAttribute("CURRENT_USER"); + remindInfo.setCreateUser(user.getUserName()); + remindInfoMapper.insert(remindInfo); + } + + /** + * 通知该平台 + * @param deptName + */ + private void remindThisSystem(String deptName) { + } + + /** + * 通知第三方平台 + * @param deptName + */ + private void remindOtherSystem(String deptName) { + } } diff --git a/src/main/java/com/emr/service/ipml/RecordService.java b/src/main/java/com/emr/service/ipml/RecordService.java index 5924789..b4301b8 100644 --- a/src/main/java/com/emr/service/ipml/RecordService.java +++ b/src/main/java/com/emr/service/ipml/RecordService.java @@ -2,10 +2,11 @@ package com.emr.service.ipml; import com.emr.dao.Emr_DictionaryMapper; import com.emr.dao.RecordMapper; +import com.emr.entity.Archive_Master_Vo; import com.emr.entity.Emr_Dictionary; -import com.emr.vo.RecordSearch; -import com.emr.vo.SubmitRecord; -import com.emr.vo.SubmitRecordStatistics; +import com.emr.service.Archive_MasterService; +import com.emr.util.Msg; +import com.emr.vo.*; import org.apache.commons.lang3.StringUtils; import org.apache.shiro.util.CollectionUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -19,6 +20,10 @@ public class RecordService { private RecordMapper recordMapper; @Autowired private Emr_DictionaryMapper dictionaryMapper; + @Autowired + private StatisticsService statisticsService; + @Autowired + private Archive_MasterService archiveMasterService; /** * 病案提交统计 * @return @@ -278,4 +283,40 @@ public class RecordService { return recordStatistics; } + + /** + * 按科室待审核角色病案超时分页查询 + * @param recordSearch + * @return + */ + public List selectRecordGroupDeptAndRole(RecordSearch recordSearch) throws Exception{ + List list = recordMapper.selectRecordGroupDeptAndRole(recordSearch); + if(!CollectionUtils.isEmpty(list)){ + List userList = statisticsService.getUserList(); + for (Archive_Master_Vo obj : list) { + //转换工号 + if(!CollectionUtils.isEmpty(userList)) { + for (User user : userList) { + if (StringUtils.isNotBlank(obj.getDoctorInCharge()) && obj.getDoctorInCharge().equals(user.getName())) { + obj.setDoctorInChargeCode(user.getUserName()); + break; + } + } + } + //转换状态 + String archivestate = obj.getArchivestate(); + if (StringUtils.isNotBlank(archivestate)) { + Msg role = archiveMasterService.getRole(); + //转换中文状态 + boolean numeric = archiveMasterService.isNumeric(archivestate); + if (numeric) { + Integer status = Integer.valueOf(archivestate); + archivestate = EnumVerify.DocState.GetStepName(status, role.getCode()); + obj.setStatus(archivestate); + } + } + } + } + return list; + } } diff --git a/src/main/resources/config/config.properties b/src/main/resources/config/config.properties index fc44bd4..b2bfb82 100644 --- a/src/main/resources/config/config.properties +++ b/src/main/resources/config/config.properties @@ -1,9 +1,9 @@ #power\u6743\u9650\u7CFB\u7EDFIP\u548C\u7AEF\u53E3 -#POWER_IP = localhost -#POWER_PORT = 8080 +POWER_IP = localhost +POWER_PORT = 8080 -POWER_IP = 200.100.104.40 -POWER_PORT = 8081 +#POWER_IP = 200.100.104.40 +#POWER_PORT = 8081 #power\u6743\u9650\u7CFB\u7EDF\u7684\u670D\u52A1\u5668\u5730\u5740\u5934 POWER_URLHEAD = http://${POWER_IP}:${POWER_PORT}/power @@ -40,7 +40,7 @@ recallReason=\u533B\u9662\u9700\u8981\u8FD9\u4EFD\u6587\u6863 pdfWater = \u4F5B\u5C71\u5E02\u9AD8\u660E\u4EBA\u6C11\u533B\u9662 #\u672C\u5730\u56FE\u7247\u5730\u5740 -pictureUrl=C:\\JiaShiPic\\ +pictureUrl=D:\\JiaShiPic\\ #\u6620\u5C04\u672C\u5730\u56FE\u7247\u5730\u5740\u6839\u76EE\u5F55 picSrc=upload\\ @@ -49,4 +49,7 @@ picSrc=upload\\ allAddortIds = 00000000 #\u62A4\u58EB\u652F\u7EBF\u5BA1\u6838\u67E5\u770B\u7684\u5206\u7C7Bid -nurseAssortIds = 'C70E8C427A3648B79BE80798C08F4D12','85DAE73A87D047D28C222E878C78C670' \ No newline at end of file +nurseAssortIds = 'C70E8C427A3648B79BE80798C08F4D12','85DAE73A87D047D28C222E878C78C670' + +#\u7528\u4E8E\u8D85\u671F\u901A\u77E5\uFF0C\u53EA\u901A\u77E5\u8BE5\u65E5\u671F\u4EE5\u540E\u7684\u51FA\u9662\u8D85\u671F\u7684\u8BB0\u5F55 +overDateSet = 2020-10-29 diff --git a/src/main/resources/mapper/ArchiveRemindInfoMapper.xml b/src/main/resources/mapper/ArchiveRemindInfoMapper.xml new file mode 100644 index 0000000..6fec32d --- /dev/null +++ b/src/main/resources/mapper/ArchiveRemindInfoMapper.xml @@ -0,0 +1,90 @@ + + + + + + + + + + + id, dept_name, create_time, create_user + + + + delete from archive_remind_info + where id = #{id,jdbcType=INTEGER} + + + insert into archive_remind_info (dept_name, create_time, + create_user) + values (#{deptName,jdbcType=NVARCHAR}, #{createTime,jdbcType=TIMESTAMP}, + #{createUser,jdbcType=NVARCHAR}) + + + insert into archive_remind_info + + + id, + + + dept_name, + + + create_time, + + + create_user, + + + + + #{id,jdbcType=INTEGER}, + + + #{deptName,jdbcType=NVARCHAR}, + + + #{createTime,jdbcType=TIMESTAMP}, + + + #{createUser,jdbcType=NVARCHAR}, + + + + + update archive_remind_info + + + dept_name = #{deptName,jdbcType=NVARCHAR}, + + + create_time = #{createTime,jdbcType=TIMESTAMP}, + + + create_user = #{createUser,jdbcType=NVARCHAR}, + + + where id = #{id,jdbcType=INTEGER} + + + update archive_remind_info + set dept_name = #{deptName,jdbcType=NVARCHAR}, + create_time = #{createTime,jdbcType=TIMESTAMP}, + create_user = #{createUser,jdbcType=NVARCHAR} + where id = #{id,jdbcType=INTEGER} + + + \ No newline at end of file diff --git a/src/main/resources/mapper/RecordMapper.xml b/src/main/resources/mapper/RecordMapper.xml index 57963a4..262b8ba 100644 --- a/src/main/resources/mapper/RecordMapper.xml +++ b/src/main/resources/mapper/RecordMapper.xml @@ -3,6 +3,7 @@ + @@ -17,14 +18,14 @@ - and discharge_date_time between CONVERT(VARCHAR(10),#{startDate,jdbcType=NCHAR},120) and + and archive_master.discharge_date_time between CONVERT(VARCHAR(10),#{startDate,jdbcType=NCHAR},120) and #{endDate,jdbcType=NCHAR}+ ' 23:59:59' - and discharge_date_time >= CONVERT(VARCHAR(10),#{startDate,jdbcType=NCHAR},120) + and archive_master.discharge_date_time >= CONVERT(VARCHAR(10),#{startDate,jdbcType=NCHAR},120) - and discharge_date_time <= #{endDate,jdbcType=NCHAR}+ ' 23:59:59' + and archive_master.discharge_date_time <= #{endDate,jdbcType=NCHAR}+ ' 23:59:59' @@ -37,15 +38,15 @@ - and discharge_date_time between CONVERT(VARCHAR(10),#{startDate,jdbcType=NCHAR},120) and + and archive_master.discharge_date_time between CONVERT(VARCHAR(10),#{startDate,jdbcType=NCHAR},120) and #{endDate,jdbcType=NCHAR}+ ' 23:59:59' - and CONVERT(VARCHAR(7),discharge_date_time,120) between #{startDate,jdbcType=NCHAR} and + and CONVERT(VARCHAR(7),archive_master.discharge_date_time,120) between #{startDate,jdbcType=NCHAR} and #{endDate,jdbcType=NCHAR} - and CONVERT(VARCHAR(4),discharge_date_time,120) between #{startDate,jdbcType=NCHAR} and + and CONVERT(VARCHAR(4),archive_master.discharge_date_time,120) between #{startDate,jdbcType=NCHAR} and #{endDate,jdbcType=NCHAR} @@ -53,26 +54,26 @@ - and discharge_date_time >= CONVERT(VARCHAR(10),#{startDate,jdbcType=NCHAR},120) + and archive_master.discharge_date_time >= CONVERT(VARCHAR(10),#{startDate,jdbcType=NCHAR},120) - and CONVERT(VARCHAR(7),discharge_date_time,120) >= #{startDate,jdbcType=NCHAR} + and CONVERT(VARCHAR(7),archive_master.discharge_date_time,120) >= #{startDate,jdbcType=NCHAR} - and CONVERT(VARCHAR(4),discharge_date_time,120) >= #{startDate,jdbcType=NCHAR} + and CONVERT(VARCHAR(4),archive_master.discharge_date_time,120) >= #{startDate,jdbcType=NCHAR} - and discharge_date_time <= #{endDate,jdbcType=NCHAR}+ ' 23:59:59' + and archive_master.discharge_date_time <= #{endDate,jdbcType=NCHAR}+ ' 23:59:59' - and CONVERT(VARCHAR(7),discharge_date_time,120) <= #{endDate,jdbcType=NCHAR} + and CONVERT(VARCHAR(7),archive_master.discharge_date_time,120) <= #{endDate,jdbcType=NCHAR} - and CONVERT(VARCHAR(4),discharge_date_time,120) <= #{endDate,jdbcType=NCHAR} + and CONVERT(VARCHAR(4),archive_master.discharge_date_time,120) <= #{endDate,jdbcType=NCHAR} @@ -104,10 +105,10 @@ and datediff( DAY, - discharge_date_time, + archive_master.discharge_date_time, CASE - WHEN ArchiveState = 128 THEN - checked_datetime + WHEN archive_master.ArchiveState = 128 THEN + archive_master.checked_datetime ELSE getDate () END @@ -119,12 +120,12 @@ WHERE date BETWEEN CONVERT ( VARCHAR (10), - discharge_date_time, + archive_master.discharge_date_time, 120 ) AND CASE - WHEN ArchiveState = 128 THEN - checked_datetime + WHEN archive_master.ArchiveState = 128 THEN + archive_master.checked_datetime ELSE getDate () END @@ -132,7 +133,7 @@ ) - ( SELECT CASE - WHEN DISCHARGE_DISPOSITION = 5 THEN + WHEN archive_master.DISCHARGE_DISPOSITION = 5 THEN dead_days ELSE days @@ -482,4 +483,31 @@ + + \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/views/record/deptOverTimeInfo.jsp b/src/main/webapp/WEB-INF/views/record/deptOverTimeInfo.jsp index df65bbe..65f9d7e 100644 --- a/src/main/webapp/WEB-INF/views/record/deptOverTimeInfo.jsp +++ b/src/main/webapp/WEB-INF/views/record/deptOverTimeInfo.jsp @@ -36,13 +36,8 @@ -<%-- - - - - - ---%> + +
@@ -131,6 +126,22 @@
+<%--查看流程弹窗--%> + diff --git a/src/main/webapp/static/js/beHospList/beHospList.js b/src/main/webapp/static/js/beHospList/beHospList.js index cfc0a0d..df655e4 100644 --- a/src/main/webapp/static/js/beHospList/beHospList.js +++ b/src/main/webapp/static/js/beHospList/beHospList.js @@ -155,8 +155,11 @@ function initTable() { var url = window.location.href; var index = url.substring(url.lastIndexOf('?') + 1).replace("num=", ""); var html = ""; + if (index != null && index.indexOf("remind") !== -1) { + html += ''; + } if (index != null && index.indexOf("select") !== -1) { - html = html + ''; + html += ''; } if (row.btns != '' && row.btns != null) { html += row.btns; @@ -248,6 +251,22 @@ function initTable() { var visitId = row.visitId; var dischargeDateTime = row.dischargeDateTime; $("#showFlowInfoIframe").prop("src",path+"/beHosp/toShowFlowInfo?id="+masterId+"&name="+name+"&inpNo="+inpNo+"&visitId="+visitId+"&dischargeDateTime="+dischargeDateTime+"&role="+$("#checker").val()); + }, + //提醒 + 'click .remind': function (e, value, row) { + $.ajax({ + type:'get', + url:path+'/beHosp/remind', + data:{deptName:row.deptName}, + dataType:'json', + success:function(data){ + if(data.code == 100){ + toastr.success("通知成功!"); + }else{ + toastr.error(data.msg); + } + } + }) } }, cellStyle: function () { diff --git a/src/main/webapp/static/js/record/deptOverTimeInfo.js b/src/main/webapp/static/js/record/deptOverTimeInfo.js index 7d6118b..ba3133b 100644 --- a/src/main/webapp/static/js/record/deptOverTimeInfo.js +++ b/src/main/webapp/static/js/record/deptOverTimeInfo.js @@ -7,9 +7,31 @@ $(function(){ loadOverTimeDoctorInCharge(); //加载科室 getDeptStatistics(); + //赋值审核角色 + getChecker(); //加载病案统计 selectOvertimeCount(); }) +//未终审页面、在院浏览、出院浏览查看病历时按审核角色查询分类,主要查询checker=2护士的只查看护理记录单和体温表 +function getChecker(){ + $.get(path+'/beHosp/getChecker',function(data){ + if(data.code == 100){ + var checker = data.extend.checker; + $("#checker").val(checker); + //根据操作角色显示退回角色 + if(checker == 1){ + $("#returnDoctor").show(); + }else if(checker == 2){ + $("#returnNurse").show(); + }else{ + $("#returnDoctor").show(); + $("#returnNurse").show(); + } + }else{ + toastr.error(data.msg); + } + },'json'); +} //加载科室内主管医生列表 function loadOverTimeDoctorInCharge(){ $.ajax({ @@ -186,7 +208,7 @@ function initTable() { { title: '医生未提交', field: 'unDoctorSubmitCount', - align: 'center', + align: 'center' }, { title: '医生质控员未提交', @@ -320,7 +342,7 @@ function getDataMap(roleId,title,count,row){ map['deptNameCn'] = row.deptNameCn; map['unCount'] = count; map['role'] = title; - map['roleId'] = roleId; + map['infoId'] = roleId; return map; }else{ return []; @@ -354,15 +376,15 @@ function initTable1(table1Data) { }, { title: '出院科室', - field: 'deptNameCn', + field: 'deptNameCn' }, { title: '审核角色', - field: 'role', + field: 'role' }, { title: '未提交份数', - field: 'unCount', + field: 'unCount' } ], onLoadSuccess: function (result) { //加载成功时执行 @@ -375,14 +397,14 @@ function initTable1(table1Data) { '
\n' + ' '; $detail.html(html); - initTable2(); + initTable2(row); } }); } //第三层,按科室审核角色分组查 -function initTable2() { +function initTable2(rows) { $("#table2").bootstrapTable({ // 对应table标签的id - url: path + "/record/getRecordGroupDept", // 获取表格数据的url + url: path + "/record/getRecordGroupDeptAndRole", // 获取表格数据的url sidePagination: 'server', // 设置为服务器端分页 客户端:client cache: false, // 设置为 false 禁用 AJAX 数据缓存, 默认为true striped: true, //表格显示条纹,默认为false @@ -395,12 +417,12 @@ function initTable2() { singleSelect: false,//设置True 将禁止多选 clickToSelect: true,//设置true 将在点击行时,自动选择rediobox 和 checkbox paginationDetailHAlign: 'left',//指定 分页详细信息 在水平方向的位置。'left' 或 'right'。 - height:514, + height:553, searchTimeOut: 500,// 默认500 设置搜索超时时间。 showHeader: true,//是否显示列头。 //查询条件 queryParams: function (params) { - return queryParams(params,this,''); + return queryParamsInitTable2(params,this,rows); }, columns: [ { @@ -411,43 +433,50 @@ function initTable2() { }, { title: '主管医生', - field: 'allRecordCount', + field: 'doctorInCharge' }, { title: '医生工号', - field: 'allFileCount', + field: 'doctorInChargeCode' }, { title: '超期份数', - field: 'allPageCount', + field: 'overTimeCounts' }, { title: '出院科室', - field: 'deptNameCn', + field: '', + formatter: function (value, row, index) { + return rows.deptNameCn; + } + }, { title: '患者姓名', - field: 'autoCollectionFileCount', + field: 'name' }, { title: '住院号', - field: 'autoCollectionPageCount', + field: 'inpNo' }, { title: '住院次数', - field: 'manualScanFileCount', + field: 'visitId' }, { title: '出院日期', - field: 'manualScanPageCount', + field: 'dischargeDateTime', + formatter: function (value, row, index) { + return operDisDate(value); + } }, { title: '超期天数', - field: 'manualScanPageCount', + field: 'overtimeDays' }, { title: '状态', - field: 'manualScanPageCount', + field: 'status' }, { title:'操作', @@ -455,6 +484,22 @@ function initTable2() { valign: 'middle', formatter: function (value, row, index) { return ''; + }, + events:{ + //查看流程 + 'click .showFlowInfo': function (e, value, row) { + $('#showFlowInfo').modal({ + backdrop: 'static',//backdrop 为 static 时,点击模态对话框的外部区域不会将其关闭。 + keyboard: false,//keyboard 为 false 时,按下 Esc 键不会关闭 Modal。 + show: true//弹出对话框 + }); + var masterId = row.id; + var name = encodeURI(row.name); + var inpNo = row.inpNo; + var visitId = row.visitId; + var dischargeDateTime = row.dischargeDateTime; + $("#showFlowInfoIframe").prop("src",path+"/beHosp/toShowFlowInfo?id="+masterId+"&name="+name+"&inpNo="+inpNo+"&visitId="+visitId+"&dischargeDateTime="+dischargeDateTime+"&role="+$("#checker").val()); + } } } ], @@ -462,116 +507,8 @@ function initTable2() { $(".page-list").show(); //reloadTableHeight("table1"); }, - /* //展开详情事件 - onExpandRow: function (index, row, $detail) {//點擊datagrid 展開按鈕事件 - var deptName = row.deptName; - var tableId = 'table_'+deptName; - var html = '
\n' + - '
\n' + - '
'; - $detail.html(html); - initTable2(deptName,tableId); - }*/ }); } -//第三层,根据科室查询病患详情 -/*function initTable2(deptName,tableId) { - $("#"+tableId).bootstrapTable({ // 对应table标签的id - url: path+"/statistics/getRecordStatisticsByDeptName", // 获取表格数据的url - cache: false, // 设置为 false 禁用 AJAX 数据缓存, 默认为true - striped: true, //表格显示条纹,默认为false - sidePagination: 'server', // 设置为服务器端分页 客户端:client - pagination: true, // 在表格底部显示分页组件,默认false - paginationShowPageGo: true, - pageList: [10, 20, 50, 100], // 如果设置了分页,设置可供选择的页面数据条数。设置为All 则显示所有记录。 - toolbar: '#toolbar',//指定工具栏 - searchOnEnterKey: true, //设置为 true时,按回车触发搜索方法,否则自动触发搜索方法 - //detailView:true,//是否可展开 - undefinedText: '--', //当数据为 undefined 时显示的字符 - singleSelect: false,//设置True 将禁止多选 - clickToSelect: true,//设置true 将在点击行时,自动选择rediobox 和 checkbox - paginationDetailHAlign: 'left',//指定 分页详细信息 在水平方向的位置。'left' 或 'right'。 - height:475, - searchTimeOut: 500,// 默认500 设置搜索超时时间。 - showHeader: true,//是否显示列头。 - //是否显示导出按钮 - queryParams: function (params) { - return queryParams(params,this,deptName); - }, - columns: [ - { - title: '序号', - align: 'center', - formatter: function (value, row, index) { - return index + 1; - } - }, - { - title: '住院号', - field: 'inpNo', - align: 'left' - }, - { - title: '姓名', - field: 'name', - align: 'left' - }, - { - title: '住院次数', - field: 'visitId', - align: 'center' - }, - { - title: '出院科室', - field: 'deptNameCn', - align: 'left' - }, - { - title: '出院日期', - field: 'dischargeDateTime', - align: 'center', - formatter: function (value) { - return operDisDate(value); - } - }, - { - title: '总文件数', - field: 'allFileCount', - align: 'center' - }, - { - title: '总页数', - field: 'allPageCount', - align: 'center' - }, - { - title: '自动采集总文件数', - field: 'autoCollectionFileCount', - align: 'center' - }, - { - title: '自动采集总页数', - field: 'autoCollectionPageCount', - align: 'center' - }, - { - title: '扫描上传总文件数', - field: 'manualScanFileCount', - align: 'center' - }, - { - title: '扫描上传总页数', - field: 'manualScanPageCount', - align: 'center' - } - - ], - onLoadSuccess: function (result) { //加载成功时执行 - $(".page-list").show(); - //reloadTableHeight("table2"); - } - }); -}*/ //各表格查询条件 function queryParams(params,_this,deptName){ var currPageSize = _this.pageSize; @@ -600,7 +537,53 @@ function queryParams(params,_this,deptName){ deptName:deptName, flag:2, doctorInCharge:getSelecteds("doctorInCharge"), - infoId:$("#infoId").val(), + infoId:$("#infoId").val() + }; + return temp; +} + +/** + * 明细表格查询条件 + * @param params + * @param queryParamsInitTable2 + * @returns {{deptName, flag: number, infoId: (*|jQuery|*|*|*|*), offset: *, endDate: (*|jQuery|*|*|*|*), limit: (*|number), startDate: (*|jQuery|*|*|*|*), doctorInCharge}} + */ +function queryParamsInitTable2(params,_this,row){ + var currPageSize = _this.pageSize; + if (currPageSize == 2) { + currPageSize = 10; + } + var limit = null; + var offset = params.offset; + //判断是否导出全部all + if ($("#sel_exportoption").val() == "all") { + offset = 0; + limit = _this.totalRows; + _this.pageSize = limit; + } else { + limit = currPageSize; + _this.pageSize = currPageSize; + } + var infoId = row.infoId; + var deptName = row.deptCode; + var operRole = 0; + if(infoId < 5){ + operRole = 1; + }else if(infoId == 5 || infoId == 6){ + operRole = 2; + }else{ + operRole = 4; + } + var temp = { + offset:offset, + limit:limit, + startDate: $("#startTime1").val(), + endDate: $("#endTime1").val(), + flag:2, + deptName:deptName, + doctorInCharge:getSelecteds("doctorInCharge"), + infoId:infoId, + operRole:operRole }; return temp; } @@ -636,12 +619,11 @@ $(document).keyup(function(event){ }); //导出excel功能 $("#excelBtn").click(function () { - var deptName = $("#deptName").val(); var startDate = $("#startTime1").val(); var endDate = $("#endTime1").val(); - var url = path+"/record/exportExcelSubmit"; + var url = path+"/record/exportExcelDeptOverTime"; post(url,{ - "deptName":deptName, + "deptName":getDeptName(), "startDate":startDate, "endDate":endDate, "flag":2,