diff --git a/src/main/java/com/emr/controller/MedicalHandleController.java b/src/main/java/com/emr/controller/MedicalHandleController.java index c9f369a..ea30fe1 100644 --- a/src/main/java/com/emr/controller/MedicalHandleController.java +++ b/src/main/java/com/emr/controller/MedicalHandleController.java @@ -1,9 +1,8 @@ package com.emr.controller; -import com.emr.entity.Archive_Master; -import com.emr.entity.Archive_Master_Vo; -import com.emr.entity.OffsetLimitPage; +import com.emr.entity.*; import com.emr.service.Archive_MasterService; +import com.emr.service.Archive_Master_FollowingService; import com.emr.util.ExportExcelUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; @@ -22,6 +21,8 @@ import java.util.List; public class MedicalHandleController { @Autowired private Archive_MasterService archiveMasterService; + @Autowired + private Archive_Master_FollowingService archive_master_followingService; @RequestMapping(value = "/medicalHandles") public String faults(Model model) { @@ -31,7 +32,6 @@ public class MedicalHandleController { @ResponseBody @RequestMapping(value = "/medicalHandlesList") public OffsetLimitPage medicalHandlesList(HttpServletRequest request, HttpServletResponse response, Archive_Master_Vo archiveMasterVo, Integer offset, Integer limit) { - OffsetLimitPage result = archiveMasterService.selectHandleDetail(archiveMasterVo, offset, limit); return result; } @@ -52,4 +52,12 @@ public class MedicalHandleController { //导出excel的操作 exportExcelUtil.expordExcel(tableThNames, fieldCns, list, fileName, response); } + + @ResponseBody + @RequestMapping(value = "/getTimeLine") + public List getTimeLine(HttpServletRequest request,String masterId){ + Power_User user = (Power_User) request.getSession().getAttribute("CURRENT_USER"); + Integer roleId = user.getRoleId(); + return archive_master_followingService.selectByMasterId(roleId,masterId); + } } diff --git a/src/main/java/com/emr/controller/PowerUserController.java b/src/main/java/com/emr/controller/PowerUserController.java index ae15504..ae6c49b 100644 --- a/src/main/java/com/emr/controller/PowerUserController.java +++ b/src/main/java/com/emr/controller/PowerUserController.java @@ -3,7 +3,9 @@ package com.emr.controller; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.emr.entity.Power_User; +import com.emr.service.PowerUserService; import com.emr.util.HttpClientUtils; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; @@ -16,40 +18,21 @@ import java.util.List; @Controller public class PowerUserController { - @Value("${powerGetUserList}") - private String powerGetUserList; + + @Autowired + private PowerUserService powerUserService; @RequestMapping("getPowerUserList") @ResponseBody - public Object test(HttpServletRequest request,String type){ + public Object getPowerUserList(HttpServletRequest request,String type){ Power_User user = (Power_User) request.getSession().getAttribute("CURRENT_USER"); String handleName = user.getUserPosition();//姓名 request.setAttribute("handleName",handleName); - JSONObject jsonObject = HttpClientUtils.httpGet(powerGetUserList); - List users = new ArrayList<>(); - String code = jsonObject.getString("code"); - if (code.equals("100")){ - JSONObject data = jsonObject.getJSONObject("extend"); -// return data.toString() - JSONArray userList = data.getJSONArray("userList"); - if (type.equals("1")){ -// return userList.toJSONString(); - return userList; - }else{ - for (int i = 0; i < userList.size(); i++) { - JSONObject temp = userList.getJSONObject(i); - String roleId = temp.getString("roleId"); - if (roleId.equals("22")||roleId.equals("20")){ - users.add(temp); - } - } - return users; - } - - - }else{ + JSONArray powerUserList = powerUserService.getPowerUserList(type); + if(powerUserList == null){ return "ERROR"; + }else{ + return powerUserList; } - } } diff --git a/src/main/java/com/emr/controller/lastVerifyController.java b/src/main/java/com/emr/controller/lastVerifyController.java index b3b9dbb..d147ebe 100644 --- a/src/main/java/com/emr/controller/lastVerifyController.java +++ b/src/main/java/com/emr/controller/lastVerifyController.java @@ -71,7 +71,7 @@ public class lastVerifyController { String tableThNames = "病历清单id,住院号,住院次数,名字,性别,身份证,出院科室,出院日期,主管医生,状态,医生是否提交,医生,医生提交日期,护士是否提交,护士,护士提交日期,电子病历医生提交,电子病历护士提交,是否死亡"; String fieldCns = "id,inpNo,visitId,name,sex,idNo,deptName,dischargeDateTime,doctorInCharge,archivestate,cmtDoctor,doctorName,cmtDoctorDate,cmtNurse,nurseName,cmtDurseDate,emrDoctorCmt,emrNureCmt,deathFlag"; //构造excel的数据 - List list = archiveMasterService.selectByLast(archiveMasterVo); + List list = archiveMasterService.selectByLast(archiveMasterVo); //文件名 String fileName = "病案室终审" + new SimpleDateFormat("yyyyMMddHHmmss").format(new Date()) + ".xls"; diff --git a/src/main/java/com/emr/controller/storageController.java b/src/main/java/com/emr/controller/storageController.java new file mode 100644 index 0000000..bb95245 --- /dev/null +++ b/src/main/java/com/emr/controller/storageController.java @@ -0,0 +1,176 @@ +/** + * Copyright (C), 2015-2019 + * Author: HJL + * Date: 2019/7/19 14:39 + * Description:病案召回 + */ +package com.emr.controller; + +import com.emr.annotation.OptionalLog; +import com.emr.entity.*; +import com.emr.service.*; +import com.emr.util.ExportExcelUtil; +import org.apache.shiro.SecurityUtils; +import org.apache.shiro.session.Session; +import org.apache.shiro.subject.Subject; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.PropertySource; +import org.springframework.stereotype.Controller; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.ui.Model; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.UnsupportedEncodingException; +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.List; + +@PropertySource(value = "classpath:config/jdbc.properties", encoding = "UTF-8") +@Controller +@RequestMapping("/storage") +public class storageController { + @Autowired + private Emr_Fault_DetailService emrFaultDetailService; + + @Autowired + private Emr_DictionaryService emrDictionaryService; + + @Autowired + private Archive_MasterService archiveMasterService; + @Autowired + private Archive_Master_FollowingService archiveMasterFollowingService; + + @RequestMapping(value = "/MedicalRecordStorage") + public String faults(Model model) { + return "medicalRecordStorageDir/MedicalRecordStorage"; + } + + @ResponseBody + @RequestMapping(value = "/StorageList") + public OffsetLimitPage recallList(HttpServletRequest request, HttpServletResponse response, Emr_Fault_Vo emrFaultVo, Integer offset, Integer limit) { + OffsetLimitPage result = emrFaultDetailService.selectStorageByCol(emrFaultVo, offset, limit); + + return result; + } + @ResponseBody + @RequestMapping(value = "/exportExcel") + public void exportExcel(HttpServletResponse response, Emr_Fault_Vo emrFaultVo) throws Exception { + String tableThNames = "ID,病历清单id,住院号,住院次数,名字,性别,身份证,入院科室,入院日期,出院科室,出院日期,状态,归档状态"; + String fieldCns = "id,archiveDetailId,inpNo,visitId,name,sex,idNo,deptAdmissionTo,admissionDateTime,deptName,dischargeDateTime,state,archivestate"; + //构造excel的数据 + List list = emrFaultDetailService.selectByCol(emrFaultVo); + + Emr_Dictionary dic = new Emr_Dictionary(); + dic.setEffective(1); + dic.setTypecode("dept_code"); + //科室列表 + List dicList = emrDictionaryService.dicByTypeCode(dic); + for (int i = 0; i < list.size(); i++) { + //替换科室 + for (int k = 0; k < dicList.size(); k++) { + String deptName = list.get(i).getDeptName(); + if (deptName.equals(dicList.get(k).getCode())) { + //出院科室 + deptName = deptName.replace(deptName, dicList.get(k).getName()); + list.get(i).setDeptName(deptName); + //入院科室dept_admission_to + deptName = list.get(i).getDeptAdmissionTo(); + deptName = deptName.replace(deptName, dicList.get(k).getName()); + list.get(i).setDeptAdmissionTo(deptName); + } + } + } + + //文件名 + String fileName = "召回信息数据" + new SimpleDateFormat("yyyyMMddHHmmss").format(new Date()) + ".xls"; + //ExportExcelUtil + ExportExcelUtil exportExcelUtil = new ExportExcelUtil(); + response.setContentType("application/ms-excel;charset=gbk"); + //导出excel的操作 + exportExcelUtil.expordExcel(tableThNames, fieldCns, list, fileName, response); + } + + /** + *病案封存 + * 将已封存数据转换成未封存 + * 新增操作时日志记录 + */ + @Transactional + @OptionalLog(methods = "病案封存") + @ResponseBody + @RequestMapping(value = "/updateState") + public int updateState(HttpServletRequest request, HttpServletResponse response, Emr_Fault_Detail emrFaultDetail) throws UnsupportedEncodingException { + response.setCharacterEncoding("utf-8"); + request.setCharacterEncoding("utf-8"); + Subject currentUser = SecurityUtils.getSubject(); + Session session = currentUser.getSession(); + String username = (String) session.getAttribute("userSession");//获取前面登录的用户名 + Power_User user = (Power_User) request.getSession().getAttribute("CURRENT_USER"); + String handleName = user.getUserPosition();//姓名 + emrFaultDetail.setUpdater(username); + SimpleDateFormat format1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + String nowTime = format1.format(new Date()); + emrFaultDetail.setUpdateTime(nowTime); + + Archive_Master archiveMaster = new Archive_Master(); + Archive_Master_Following archiveMasterFollowing = new Archive_Master_Following(); + archiveMaster.setId(emrFaultDetail.getArchiveDetailId()); + archiveMaster.setArchivestate(emrFaultDetail.getArchiveState()); + archiveMaster.setCmtNurse(1); + archiveMaster.setCmtDoctor(1); + int bol = archiveMasterService.updateByClo(archiveMaster); + if (bol == 1) { + if(archiveMaster.getArchivestate().equals("已封存")){ + archiveMasterFollowing.setMasterId(emrFaultDetail.getArchiveDetailId()); + archiveMasterFollowing.setFollowingContent("病案封存"); + archiveMasterFollowing.setFollowingType("11"); + archiveMasterFollowing.setHandleTime(nowTime); + // archiveMasterFollowing.setHandleId(); + archiveMasterFollowing.setHandleName(handleName); + archiveMasterFollowing.setRemark(emrFaultDetail.getRecallReason()); + bol = archiveMasterFollowingService.insertSelective(archiveMasterFollowing); + }else if (archiveMaster.getArchivestate().equals("已归档")){ + archiveMasterFollowing.setMasterId(emrFaultDetail.getArchiveDetailId()); + archiveMasterFollowing.setFollowingContent("病案取消封存"); + archiveMasterFollowing.setFollowingType("12"); + archiveMasterFollowing.setHandleTime(nowTime); + // archiveMasterFollowing.setHandleId(); + archiveMasterFollowing.setHandleName(handleName); + archiveMasterFollowing.setRemark(emrFaultDetail.getRecallReason()); + bol = archiveMasterFollowingService.insertSelective(archiveMasterFollowing); + } + + + } + return bol; + } + + + /* + * 封存日志 + * */ + @RequestMapping(value = "/MedicalRecordStorageLog") + public String faultsLog(Model model) { + return "medicalRecordStorageDir/MedicalRecordStorageLog"; + } + + /* + * 封存日志 + * */ + @ResponseBody + @RequestMapping(value = "/storageLogList") + public OffsetLimitPage storageLogList(HttpServletRequest request, HttpServletResponse response, Archive_Master_Vo archiveMasterVo, Integer offset, Integer limit) { + OffsetLimitPage result = archiveMasterService.selectByFollowinglog(archiveMasterVo, offset, limit); + return result; + } + + + + +} + + diff --git a/src/main/java/com/emr/dao/Archive_MasterMapper.java b/src/main/java/com/emr/dao/Archive_MasterMapper.java index 0e9a86e..2fb0b9d 100644 --- a/src/main/java/com/emr/dao/Archive_MasterMapper.java +++ b/src/main/java/com/emr/dao/Archive_MasterMapper.java @@ -18,7 +18,7 @@ public interface Archive_MasterMapper { List selectByColumn(Archive_Master_Vo record); - List selectByLast(Archive_Master_Vo record); + List selectByLast(Archive_Master_Vo record); List selectByUnfile(Archive_Master_Vo record); List selectByUnfile2(Archive_Master_Vo record); @@ -41,9 +41,12 @@ public interface Archive_MasterMapper { List getDoctorInCharge(Archive_Master record); - //power查询用户姓名 - String getFName(String userName); - //查询病案室操作记录 List selectHandleDetail(Archive_Master_Vo record); + + //查询超期天数列表 + List selectOverdue(Archive_Master_Vo record); + + //封存日志 + List selectByFollowinglog(Archive_Master_Vo record); } \ No newline at end of file diff --git a/src/main/java/com/emr/dao/Archive_Master_FollowingMapper.java b/src/main/java/com/emr/dao/Archive_Master_FollowingMapper.java index 3787441..5c7f537 100644 --- a/src/main/java/com/emr/dao/Archive_Master_FollowingMapper.java +++ b/src/main/java/com/emr/dao/Archive_Master_FollowingMapper.java @@ -2,6 +2,9 @@ package com.emr.dao; import com.emr.entity.Archive_Master_Following; +import java.util.HashMap; +import java.util.List; + public interface Archive_Master_FollowingMapper { int deleteByPrimaryKey(String id); @@ -14,4 +17,6 @@ public interface Archive_Master_FollowingMapper { int updateByPrimaryKeySelective(Archive_Master_Following record); int updateByPrimaryKey(Archive_Master_Following record); + + List selectByMasterId(HashMap param); } \ No newline at end of file diff --git a/src/main/java/com/emr/dao/Emr_Fault_DetailMapper.java b/src/main/java/com/emr/dao/Emr_Fault_DetailMapper.java index 110a01e..5fbada3 100644 --- a/src/main/java/com/emr/dao/Emr_Fault_DetailMapper.java +++ b/src/main/java/com/emr/dao/Emr_Fault_DetailMapper.java @@ -34,4 +34,6 @@ public interface Emr_Fault_DetailMapper { Emr_Fault_Detail selectByDept(Emr_Fault_Detail emrFaultDetail); List selectByArchiveId(Emr_Fault_Detail emrFaultDetail); + + List selectStorageByCol(Emr_Fault_Vo emrFaultVo); } \ 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 c4ddad0..4e0f7f2 100644 --- a/src/main/java/com/emr/entity/Archive_Master_Vo.java +++ b/src/main/java/com/emr/entity/Archive_Master_Vo.java @@ -110,6 +110,47 @@ public class Archive_Master_Vo { private String transferDept; + //2021-02-02新增 + private String overdue;//超期天数 + + private String createTime;//初审时间 + + private String createTimeStart; + + private String createTimeEnd; + + public String getCreateTimeStart() { + return createTimeStart; + } + + public void setCreateTimeStart(String createTimeStart) { + this.createTimeStart = createTimeStart; + } + + public String getCreateTimeEnd() { + return createTimeEnd; + } + + public void setCreateTimeEnd(String createTimeEnd) { + this.createTimeEnd = createTimeEnd; + } + + public String getCreateTime() { + return createTime; + } + + public void setCreateTime(String createTime) { + this.createTime = createTime; + } + + public String getOverdue() { + return overdue; + } + + public void setOverdue(String overdue) { + this.overdue = overdue; + } + public String getCmtDoctorDate() { return cmtDoctorDate; } diff --git a/src/main/java/com/emr/service/Archive_MasterService.java b/src/main/java/com/emr/service/Archive_MasterService.java index 2d9570a..bfe6b90 100644 --- a/src/main/java/com/emr/service/Archive_MasterService.java +++ b/src/main/java/com/emr/service/Archive_MasterService.java @@ -39,7 +39,7 @@ public interface Archive_MasterService { * @param archiveMasterVo * @return */ - List selectByLast(Archive_Master_Vo archiveMasterVo); + List selectByLast(Archive_Master_Vo archiveMasterVo); /** * 根据条件查找'归档中','复审退回'病案列表 @@ -164,9 +164,6 @@ public interface Archive_MasterService { */ OffsetLimitPage bbSel2(Archive_Master_Vo archiveMasterVo, Integer offset, Integer limit); - //power查询用户姓名 - String getFullName(String userName); - /** * 根据条件查找案室操作记录 * @@ -182,6 +179,25 @@ public interface Archive_MasterService { * @return */ OffsetLimitPage selectHandleDetail(Archive_Master_Vo archiveMasterVo, Integer offset, Integer limit); + + /** + * 根据条件查找超期天数列表 + * + * @param archiveMasterVo + * @return + */ + List selectOverdue(Archive_Master_Vo archiveMasterVo); + + /** + * 根据条件查找超期天数列表 + * + * @param archiveMasterVo + * @return + */ + OffsetLimitPage selectOverdue(Archive_Master_Vo archiveMasterVo, Integer offset, Integer limit); + + //封存日志 + OffsetLimitPage selectByFollowinglog(Archive_Master_Vo record, Integer offset, Integer limit); } diff --git a/src/main/java/com/emr/service/Archive_Master_FollowingService.java b/src/main/java/com/emr/service/Archive_Master_FollowingService.java index b16a698..7b52166 100644 --- a/src/main/java/com/emr/service/Archive_Master_FollowingService.java +++ b/src/main/java/com/emr/service/Archive_Master_FollowingService.java @@ -2,6 +2,10 @@ package com.emr.service; import com.emr.entity.Archive_Master_Following; +import java.util.List; + public interface Archive_Master_FollowingService { int insertSelective(Archive_Master_Following record); + + List selectByMasterId(Integer roleId,String masterId); } diff --git a/src/main/java/com/emr/service/Emr_Fault_DetailService.java b/src/main/java/com/emr/service/Emr_Fault_DetailService.java index 85f66d8..14ba531 100644 --- a/src/main/java/com/emr/service/Emr_Fault_DetailService.java +++ b/src/main/java/com/emr/service/Emr_Fault_DetailService.java @@ -95,6 +95,8 @@ public interface Emr_Fault_DetailService { List selectByArchiveId(Emr_Fault_Detail emrFaultDetail); + + OffsetLimitPage selectStorageByCol(Emr_Fault_Vo emrFaultVo, Integer offset, Integer limit); } diff --git a/src/main/java/com/emr/service/PowerUserService.java b/src/main/java/com/emr/service/PowerUserService.java new file mode 100644 index 0000000..f58b1aa --- /dev/null +++ b/src/main/java/com/emr/service/PowerUserService.java @@ -0,0 +1,11 @@ +package com.emr.service; + +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; + +import java.util.List; + +public interface PowerUserService { + + JSONArray getPowerUserList(String type); +} 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 2a77997..01e4cb8 100644 --- a/src/main/java/com/emr/service/ipml/Archive_MasterServiceImpl.java +++ b/src/main/java/com/emr/service/ipml/Archive_MasterServiceImpl.java @@ -6,6 +6,8 @@ */ package com.emr.service.ipml; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; import com.emr.dao.Archive_DetailMapper; import com.emr.dao.Archive_MasterMapper; import com.emr.entity.Archive_Master; @@ -14,13 +16,17 @@ import com.emr.entity.Emr_Dictionary; import com.emr.entity.OffsetLimitPage; import com.emr.service.Archive_MasterService; import com.emr.service.Emr_DictionaryService; +import com.emr.service.PowerUserService; import com.github.pagehelper.Page; import com.github.pagehelper.PageHelper; +import com.google.common.base.Function; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import com.google.common.collect.Maps; import java.util.ArrayList; import java.util.List; +import java.util.Map; @Service public class Archive_MasterServiceImpl implements Archive_MasterService { @@ -31,6 +37,9 @@ public class Archive_MasterServiceImpl implements Archive_MasterService { @Autowired private Emr_DictionaryService emrDictionaryService; + @Autowired + private PowerUserService powerUserService; + @Override public Archive_Master selectById(String id) { return archiveMasterMapper.selectById(id); @@ -39,9 +48,41 @@ public class Archive_MasterServiceImpl implements Archive_MasterService { @Override public OffsetLimitPage selectByCol(Archive_Master_Vo archiveMasterVo, Integer offset, Integer limit) { PageHelper.offsetPage(offset, limit); - //archiveMasterVo.setDeptAdmissionTo("20050102,20070102"); List list= archiveMasterMapper.selectByCol(archiveMasterVo); - return new OffsetLimitPage((Page) list); + List resultList = new Page<>(); + JSONArray powerUsers = powerUserService.getPowerUserList("1"); + List powerUserList = JSONArray.parseArray(powerUsers.toJSONString(), JSONObject.class); + if (powerUserList != null){ + Map mappedMovies = Maps.uniqueIndex(powerUserList, new Function() { + @Override + public String apply(JSONObject temp) { + return temp.getString("userName"); + }}); + + for (Archive_Master archive_master : list) { + String doctorName =""; + String nurseName =""; + JSONObject userInfo = mappedMovies.get(archive_master.getDoctorName()); + if (userInfo==null){ + doctorName=archive_master.getDoctorName(); + }else { + doctorName = userInfo.getString("name"); + } + + userInfo = mappedMovies.get(archive_master.getNurseName()); + if (userInfo==null){ + nurseName=archive_master.getNurseName(); + }else { + nurseName = userInfo.getString("name"); + } + + archive_master.setDoctorName(doctorName); + archive_master.setNurseName(nurseName); + resultList.add(archive_master); + } + + } + return new OffsetLimitPage((Page) resultList); } @Override @@ -75,7 +116,7 @@ public class Archive_MasterServiceImpl implements Archive_MasterService { } @Override - public List selectByLast(Archive_Master_Vo archiveMasterVo) { + public List selectByLast(Archive_Master_Vo archiveMasterVo) { return archiveMasterMapper.selectByLast(archiveMasterVo); } @@ -83,32 +124,169 @@ public class Archive_MasterServiceImpl implements Archive_MasterService { public OffsetLimitPage selectByColumn(Archive_Master_Vo archiveMasterVo, Integer offset, Integer limit) { PageHelper.offsetPage(offset, limit); List list = archiveMasterMapper.selectByColumn(archiveMasterVo); - - return new OffsetLimitPage((Page) list); + List resultList = new Page<>(); + JSONArray powerUsers = powerUserService.getPowerUserList("1"); + List powerUserList = JSONArray.parseArray(powerUsers.toJSONString(), JSONObject.class); + if (powerUserList != null){ + Map mappedMovies = Maps.uniqueIndex(powerUserList, new Function() { + @Override + public String apply(JSONObject temp) { + return temp.getString("userName"); + }}); + + for (Archive_Master archive_master : list) { + String doctorName =""; + String nurseName =""; + JSONObject userInfo = mappedMovies.get(archive_master.getDoctorName()); + if (userInfo==null){ + doctorName=archive_master.getDoctorName(); + }else { + doctorName = userInfo.getString("name"); + } + + userInfo = mappedMovies.get(archive_master.getNurseName()); + if (userInfo==null){ + nurseName=archive_master.getNurseName(); + }else { + nurseName = userInfo.getString("name"); + } + + archive_master.setDoctorName(doctorName); + archive_master.setNurseName(nurseName); + resultList.add(archive_master); + } + + } + return new OffsetLimitPage((Page) resultList); } @Override public OffsetLimitPage selectByUnfile(Archive_Master_Vo archiveMasterVo, Integer offset, Integer limit) { PageHelper.offsetPage(offset, limit); List list = archiveMasterMapper.selectByUnfile(archiveMasterVo); - - return new OffsetLimitPage((Page) list); + List resultList = new Page<>(); + JSONArray powerUsers = powerUserService.getPowerUserList("1"); + List powerUserList = JSONArray.parseArray(powerUsers.toJSONString(), JSONObject.class); + if (powerUserList != null){ + Map mappedMovies = Maps.uniqueIndex(powerUserList, new Function() { + @Override + public String apply(JSONObject temp) { + return temp.getString("userName"); + }}); + + for (Archive_Master archive_master : list) { + String doctorName =""; + String nurseName =""; + JSONObject userInfo = mappedMovies.get(archive_master.getDoctorName()); + if (userInfo==null){ + doctorName=archive_master.getDoctorName(); + }else { + doctorName = userInfo.getString("name"); + } + + userInfo = mappedMovies.get(archive_master.getNurseName()); + if (userInfo==null){ + nurseName=archive_master.getNurseName(); + }else { + nurseName = userInfo.getString("name"); + } + + archive_master.setDoctorName(doctorName); + archive_master.setNurseName(nurseName); + resultList.add(archive_master); + } + + } + return new OffsetLimitPage((Page) resultList); } @Override public OffsetLimitPage selectByLast(Archive_Master_Vo archiveMasterVo, Integer offset, Integer limit) { PageHelper.offsetPage(offset, limit); - List list = archiveMasterMapper.selectByLast(archiveMasterVo); - - return new OffsetLimitPage((Page) list); + List list = archiveMasterMapper.selectByLast(archiveMasterVo); + List resultList = new Page<>(); + JSONArray powerUsers = powerUserService.getPowerUserList("1"); + List powerUserList = JSONArray.parseArray(powerUsers.toJSONString(), JSONObject.class); + if (powerUserList != null){ + Map mappedMovies = Maps.uniqueIndex(powerUserList, new Function() { + @Override + public String apply(JSONObject temp) { + return temp.getString("userName"); + }}); + + for (Archive_Master_Vo archive_master : list) { + String doctorName =""; + String nurseName =""; + String firstInstance =""; + JSONObject userInfo = mappedMovies.get(archive_master.getDoctorName()); + if (userInfo==null){ + doctorName=archive_master.getDoctorName(); + }else { + doctorName = userInfo.getString("name"); + } + + userInfo = mappedMovies.get(archive_master.getNurseName()); + if (userInfo==null){ + nurseName=archive_master.getNurseName(); + }else { + nurseName = userInfo.getString("name"); + } + + userInfo = mappedMovies.get(archive_master.getFirstInstance()); + if (userInfo==null){ + firstInstance=archive_master.getFirstInstance(); + }else { + firstInstance = userInfo.getString("name"); + } + + archive_master.setDoctorName(doctorName); + archive_master.setNurseName(nurseName); + archive_master.setFirstInstance(firstInstance); + resultList.add(archive_master); + } + + } + return new OffsetLimitPage((Page) resultList); } @Override public OffsetLimitPage selectByCmtCol(Archive_Master_Vo archiveMasterVo, Integer offset, Integer limit) { PageHelper.offsetPage(offset, limit); List list = archiveMasterMapper.selectByCmtCol(archiveMasterVo); - - return new OffsetLimitPage((Page) list); + List resultList = new Page<>(); + JSONArray powerUsers = powerUserService.getPowerUserList("1"); + List powerUserList = JSONArray.parseArray(powerUsers.toJSONString(), JSONObject.class); + if (powerUserList != null){ + Map mappedMovies = Maps.uniqueIndex(powerUserList, new Function() { + @Override + public String apply(JSONObject temp) { + return temp.getString("userName"); + }}); + + for (Archive_Master archive_master : list) { + String doctorName =""; + String nurseName =""; + JSONObject userInfo = mappedMovies.get(archive_master.getDoctorName()); + if (userInfo==null){ + doctorName=archive_master.getDoctorName(); + }else { + doctorName = userInfo.getString("name"); + } + + userInfo = mappedMovies.get(archive_master.getNurseName()); + if (userInfo==null){ + nurseName=archive_master.getNurseName(); + }else { + nurseName = userInfo.getString("name"); + } + + archive_master.setDoctorName(doctorName); + archive_master.setNurseName(nurseName); + resultList.add(archive_master); + } + + } + return new OffsetLimitPage((Page) resultList); } @Override @@ -150,11 +328,6 @@ public class Archive_MasterServiceImpl implements Archive_MasterService { return new OffsetLimitPage((Page) list); } - @Override - public String getFullName(String userName) { - return archiveMasterMapper.getFName(userName); - } - @Override public List selectHandleDetail(Archive_Master_Vo archiveMasterVo) { List list = archiveMasterMapper.selectHandleDetail(archiveMasterVo); @@ -167,6 +340,60 @@ public class Archive_MasterServiceImpl implements Archive_MasterService { List list = archiveMasterMapper.selectHandleDetail(archiveMasterVo); return new OffsetLimitPage((Page) list); } + + @Override + public List selectOverdue(Archive_Master_Vo archiveMasterVo) { + List list = archiveMasterMapper.selectOverdue(archiveMasterVo); + return list; + } + + @Override + public OffsetLimitPage selectOverdue(Archive_Master_Vo archiveMasterVo, Integer offset, Integer limit) { + PageHelper.offsetPage(offset, limit); + List list = archiveMasterMapper.selectOverdue(archiveMasterVo); + List resultList = new Page<>(); + JSONArray powerUsers = powerUserService.getPowerUserList("1"); + List powerUserList = JSONArray.parseArray(powerUsers.toJSONString(), JSONObject.class); + if (powerUserList != null){ + Map mappedMovies = Maps.uniqueIndex(powerUserList, new Function() { + @Override + public String apply(JSONObject temp) { + return temp.getString("userName"); + }}); + + for (Archive_Master_Vo archive_master : list) { + String doctorInChargeName =""; + String firstInstance =""; + JSONObject userInfo = mappedMovies.get(archive_master.getDoctorInCharge()); + if (userInfo==null){ + doctorInChargeName=archive_master.getDoctorInCharge(); + }else { + doctorInChargeName = userInfo.getString("name"); + } + + userInfo = mappedMovies.get(archive_master.getFirstInstance()); + if (userInfo==null){ + firstInstance=archive_master.getFirstInstance(); + }else { + firstInstance = userInfo.getString("name"); + } + + archive_master.setDoctorInCharge(doctorInChargeName); + archive_master.setFirstInstance(firstInstance); + resultList.add(archive_master); + } + + } + return new OffsetLimitPage((Page) resultList); + } + + @Override + public OffsetLimitPage selectByFollowinglog(Archive_Master_Vo record, Integer offset, Integer limit) { + PageHelper.offsetPage(offset, limit); + List list = archiveMasterMapper.selectByFollowinglog(record); + + return new OffsetLimitPage((Page) list); + } } diff --git a/src/main/java/com/emr/service/ipml/Archive_Master_FollowingServiceImpl.java b/src/main/java/com/emr/service/ipml/Archive_Master_FollowingServiceImpl.java index 395c82b..2afe017 100644 --- a/src/main/java/com/emr/service/ipml/Archive_Master_FollowingServiceImpl.java +++ b/src/main/java/com/emr/service/ipml/Archive_Master_FollowingServiceImpl.java @@ -6,6 +6,9 @@ import com.emr.service.Archive_Master_FollowingService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.HashMap; +import java.util.List; + @Service public class Archive_Master_FollowingServiceImpl implements Archive_Master_FollowingService { @Autowired @@ -14,4 +17,17 @@ public class Archive_Master_FollowingServiceImpl implements Archive_Master_Follo public int insertSelective(Archive_Master_Following record) { return archive_master_followingMapper.insertSelective(record); } + + @Override + public List selectByMasterId(Integer roleId,String masterId) { + String roleIds = "16,19,23,24,25,26,29";//小于等于科主任权限的roleId + HashMap param = new HashMap<>(); + param.put("masterId", masterId); + if (roleIds.indexOf(roleId)>-1){ + param.put("type", 1); + }else{ + param.put("type", 0); + } + return archive_master_followingMapper.selectByMasterId(param); + } } diff --git a/src/main/java/com/emr/service/ipml/Emr_Fault_DetailServiceImpl.java b/src/main/java/com/emr/service/ipml/Emr_Fault_DetailServiceImpl.java index 2ea2383..04c51be 100644 --- a/src/main/java/com/emr/service/ipml/Emr_Fault_DetailServiceImpl.java +++ b/src/main/java/com/emr/service/ipml/Emr_Fault_DetailServiceImpl.java @@ -145,6 +145,55 @@ public class Emr_Fault_DetailServiceImpl implements Emr_Fault_DetailService { public List selectByArchiveId(Emr_Fault_Detail emrFaultDetail) { return emrFaultDetailMapper.selectByArchiveId(emrFaultDetail); } + + @Override + public OffsetLimitPage selectStorageByCol(Emr_Fault_Vo emrFaultVo, Integer offset, Integer limit) { + //return emrFaultDetailMapper.selectByCol(emrFaultDetail); + PageHelper.offsetPage(offset, limit); + List list = emrFaultDetailMapper.selectStorageByCol(emrFaultVo); + Emr_Dictionary dic = new Emr_Dictionary(); + dic.setEffective(1); + dic.setTypecode("dept_code"); + //科室列表 + List dicList = emrDictionaryService.dicByTypeCode(dic); + //获取缺陷类别列表 + Emr_Fault_Type obj = new Emr_Fault_Type(); + obj.setEffective(1); + List typeLis = emrFaultTypeService.selectByCol(obj); + for (int i = 0; i < list.size(); i++) { + + //替换科室 + for (int k = 0; k < dicList.size(); k++) { + String deptName = list.get(i).getDeptName(); + //入院科室dept_admission_to + String dept2 = list.get(i).getDeptAdmissionTo(); + + if ((deptName != null && deptName.equals(dicList.get(k).getCode())) || (dept2 != null && dept2.equals(dicList.get(k).getCode()))) { + //出院科室 + deptName = deptName.replace(deptName, dicList.get(k).getName()); + list.get(i).setDeptName(deptName); + + dept2 = dept2.replace(dept2, dicList.get(k).getName()); + list.get(i).setDeptAdmissionTo(dept2); + } + } + + String assortId = list.get(i).getAssortId(); + if(assortId!="" && assortId!=null) { + String[] assorArr = assortId.split(","); + //替换类别 + for (int j = 0; j < typeLis.size(); j++) { + String id = String.valueOf(typeLis.get(j).getId()); + if (Arrays.asList(assorArr).contains(id)) { + assortId = assortId.replace(id, typeLis.get(j).getTypeName()); + list.get(i).setAssortId(assortId); + } + } + } + } + + return new OffsetLimitPage((Page) list); + } } diff --git a/src/main/java/com/emr/service/ipml/PowerUserServiceImpl.java b/src/main/java/com/emr/service/ipml/PowerUserServiceImpl.java new file mode 100644 index 0000000..058b15e --- /dev/null +++ b/src/main/java/com/emr/service/ipml/PowerUserServiceImpl.java @@ -0,0 +1,44 @@ +package com.emr.service.ipml; + +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.emr.util.HttpClientUtils; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Service; +import com.emr.service.PowerUserService; + +import java.util.ArrayList; +import java.util.List; + +@Service +public class PowerUserServiceImpl implements PowerUserService { + + @Value("${powerGetUserList}") + private String powerGetUserList; + + + @Override + public JSONArray getPowerUserList(String type) { + JSONObject jsonObject = HttpClientUtils.httpGet(powerGetUserList); + JSONArray users = new JSONArray(); + String code = jsonObject.getString("code"); + if (code.equals("100")) { + JSONObject data = jsonObject.getJSONObject("extend"); +// return data.toString() + JSONArray userList = data.getJSONArray("userList"); + if (type.equals("1")) { + return userList; + } else { + for (int i = 0; i < userList.size(); i++) { + JSONObject temp = userList.getJSONObject(i); + String roleId = temp.getString("roleId"); + if (roleId.equals("22") || roleId.equals("20")) { + users.add(temp); + } + } + return users; + } + } + return null; + } +} diff --git a/src/main/resources/mapper/Archive_DetailMapper.xml b/src/main/resources/mapper/Archive_DetailMapper.xml index 330253f..6abb1da 100644 --- a/src/main/resources/mapper/Archive_DetailMapper.xml +++ b/src/main/resources/mapper/Archive_DetailMapper.xml @@ -94,7 +94,7 @@ and t.flag = #{flag,jdbcType=NVARCHAR} - ORDER BY z.assort_sort,t.page_number,t.Title,t.UpLoadDateTime + ORDER BY z.assort_sort,t.Title,t.page_number,t.UpLoadDateTime - + select DISTINCT m.id,m.patient_id,m.inp_no,m.visit_id,m.name,m.sex,f.name dept_name,CONVERT(varchar(10),m.discharge_date_time, 120) discharge_date_time,m.ArchiveState,CONVERT(varchar(10),m.admission_date_time, 120) admission_date_time,d.name dept_admission_to ,m.check_doctor,m.checked_datetime,m.checked_doctor,m.LockInfo,m.DOCTOR_IN_CHARGE,m.ID_NO,m.DISCHARGE_DISPOSITION,m.dept_code_lend,m.isscaned, - m.cmt_doctor,m.cmt_nurse,m.doctor_name,m.nurse_name,m.cmt_doctor_date,m.cmt_nurse_date,m.emr_doctor_cmt,m.emr_nure_cmt,m.death_flag,m.first_instance,m.is_scanning,bed_number + m.cmt_doctor,m.cmt_nurse,m.doctor_name,m.nurse_name,m.cmt_doctor_date,m.cmt_nurse_date,m.emr_doctor_cmt,m.emr_nure_cmt,m.death_flag,m.first_instance,m.is_scanning,bed_number,amf.following_type from archive_master m LEFT JOIN (select code,name from emr_dictionary where parent_id=(select id from emr_dictionary where typeCode='dept_code' )) d @@ -321,6 +323,8 @@ LEFT JOIN (select code,name from emr_dictionary where parent_id=(select id from emr_dictionary where typeCode='dept_code' )) f on m.dept_name=f.code + left join Archive_Master_Following amf + on m.id=amf.master_id and amf.following_type=9 where 1=1 and ArchiveState in('初审') and m.id = #{id,jdbcType=NVARCHAR} @@ -996,9 +1000,6 @@ bed_number=#{bedNumber,jdbcType=NVARCHAR} where id = #{id,jdbcType=NVARCHAR} - + + + \ No newline at end of file diff --git a/src/main/resources/mapper/Archive_Master_FollowingMapper.xml b/src/main/resources/mapper/Archive_Master_FollowingMapper.xml index 2d2ff6e..8b980df 100644 --- a/src/main/resources/mapper/Archive_Master_FollowingMapper.xml +++ b/src/main/resources/mapper/Archive_Master_FollowingMapper.xml @@ -126,4 +126,14 @@ remark = #{remark,jdbcType=NVARCHAR} where id = #{id,jdbcType=VARCHAR} + \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/jspf/comm.jspf b/src/main/webapp/WEB-INF/jspf/comm.jspf index 17b65f3..ae6887c 100644 --- a/src/main/webapp/WEB-INF/jspf/comm.jspf +++ b/src/main/webapp/WEB-INF/jspf/comm.jspf @@ -12,6 +12,7 @@ + @@ -21,6 +22,7 @@ + <%----%> \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/views/commitDir/commitList.jsp b/src/main/webapp/WEB-INF/views/commitDir/commitList.jsp index 597e688..3fb462a 100644 --- a/src/main/webapp/WEB-INF/views/commitDir/commitList.jsp +++ b/src/main/webapp/WEB-INF/views/commitDir/commitList.jsp @@ -184,6 +184,11 @@ !important; } + #timeLineModal .modal-content { + margin-left: 50%; + margin-top: 35%; + width: 100%; + } @@ -502,6 +507,10 @@ 初审管理: +
+ 跟踪管理: + +
<%--
--%> @@ -580,6 +589,29 @@
+<%--时间轴弹窗--%> + +
<%--
--%> @@ -417,6 +427,29 @@
+<%--时间轴弹窗--%> + + @@ -391,6 +396,10 @@ 初审管理: +
+ 跟踪管理: + +
<%--
--%> @@ -853,6 +862,29 @@
+<%--时间轴弹窗--%> + + <%--确认框--%>
<%--
--%> @@ -480,6 +488,29 @@
+<%--时间轴弹窗--%> + + <%--退回弹窗--%>