diff --git a/src/main/java/com/emr/controller/DeathRecordsController.java b/src/main/java/com/emr/controller/DeathRecordsController.java new file mode 100644 index 00000000..ad305a20 --- /dev/null +++ b/src/main/java/com/emr/controller/DeathRecordsController.java @@ -0,0 +1,50 @@ +package com.emr.controller; + +import com.emr.entity.Archive_Master_Vo; +import com.emr.entity.OffsetLimitPage; +import com.emr.service.Archive_MasterService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +/** + * @ClassName DeathRecords + * @Description 死亡病历页面接口 + * @Author linjj + * @Date 2025/1/8 15:32 + * @Version 1.0 + */ +@Controller +@RequestMapping("/death") +public class DeathRecordsController { + + + @Autowired + private Archive_MasterService archiveMasterService; + + + /** + * @description: 前端映射接口 + * @author linjj + * @date: 2025/1/8 15:33 + */ + @RequestMapping(value = "/deathRecords") + public String faults(Model model) { + return "deathRecordsDir/deathRecords"; + } + /** + * @description: 死亡病历查询接口 + * @params: + * @return: + * @author linjj + * @date: 2025/1/8 15:38 + */ + @ResponseBody + @RequestMapping(value = "/deathRecordList") + public OffsetLimitPage deathRecordList(Archive_Master_Vo archiveMasterVo, Integer offset, Integer limit) { + OffsetLimitPage result = archiveMasterService.deathRecordList(archiveMasterVo, offset, limit); + return result; + } +} diff --git a/src/main/java/com/emr/controller/signListController.java b/src/main/java/com/emr/controller/signListController.java index 0b079615..81169acd 100644 --- a/src/main/java/com/emr/controller/signListController.java +++ b/src/main/java/com/emr/controller/signListController.java @@ -11,13 +11,11 @@ import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.emr.entity.*; import com.emr.service.*; -import com.emr.util.HttpClientTool; -import com.emr.util.IDHelper; -import com.emr.util.ThreadExcelUtils; -import com.emr.util.XMLUtil; +import com.emr.util.*; import com.emr.vo.CollectionVo; import com.emr.webservice.MedicalRecordShowBackContent.MR_FILE_CALLBACK_RECORD; import com.emr.webservice.MedicalRecordShowBackContent.MR_FILE_INDEX_CALLBACK; +import lombok.extern.slf4j.Slf4j; import org.apache.axis.client.Call; import org.apache.axis.client.Service; import org.apache.axis.encoding.XMLType; @@ -44,9 +42,10 @@ import javax.xml.namespace.QName; import javax.xml.rpc.ParameterMode; import javax.xml.rpc.ServiceException; import java.io.*; -import java.math.BigDecimal; +import java.net.InetAddress; import java.net.URL; import java.net.URLConnection; +import java.net.UnknownHostException; import java.rmi.RemoteException; import java.text.SimpleDateFormat; import java.util.*; @@ -60,7 +59,7 @@ public class signListController { private String EMRQualityControl; @Value("${EMRQualityControlParamName}") private String EMRQualityControlParamName; - + private static Logger logger = new Logger(); @Autowired private Sign_ListService signListService; @@ -875,20 +874,55 @@ public class signListController { @ResponseBody @RequestMapping(value = "/collection") public JSONObject collection(HttpServletRequest request, HttpServletResponse response, String flagNum, String id) throws Exception { -// String taskId = afCollectTaskService.getTaskId(flagNum, id); -// String url="http://127.0.0.1:9296/api/noviewtask/UrgentMakeUp"; -// String s = sendGet(url, taskId); + // 从session获取用户名 + Power_User user = (Power_User) request.getSession().getAttribute("CURRENT_USER"); + String username = user.getUserName();//获取前面登录的用户名 + //获取ip来源 + String ipAddress = getAddressIp(request); + logger.log("按需采集用户名:"+username+"接口来源ip:"+ipAddress); CollectionVo collectionVo = new CollectionVo(); List patientIds=new ArrayList<>(); patientIds.add(id); collectionVo.setPatientIds(patientIds); collectionVo.setSysCodes(flagNum); + collectionVo.setCaller("guidang"); + logger.log("本次参数为:"+collectionVo.toString()); String url="http://10.6.1.127:9295/api/NoViewCollect/generateTaskByPatientIdAndSysCodes"; JSONObject jsonParam= (JSONObject) JSONObject.toJSON(collectionVo); JSONObject jsonObject = httpPost(url, jsonParam); - //查询新任务表id return jsonObject; } + private String getAddressIp( HttpServletRequest request){ + // 获取访问真实IP + String ipAddress = request.getHeader("x-forwarded-for"); + if(ipAddress == null || ipAddress.length() == 0 || "unknown".equalsIgnoreCase(ipAddress)) { + ipAddress = request.getHeader("Proxy-Client-IP"); + } + if(ipAddress == null || ipAddress.length() == 0 || "unknown".equalsIgnoreCase(ipAddress)) { + ipAddress = request.getHeader("WL-Proxy-Client-IP"); + } + if(ipAddress == null || ipAddress.length() == 0 || "unknown".equalsIgnoreCase(ipAddress)) { + ipAddress = request.getRemoteAddr(); + if(ipAddress.equals("127.0.0.1") || ipAddress.equals("0:0:0:0:0:0:0:1")){ + //根据网卡取本机配置的IP + InetAddress inet=null; + try { + inet = InetAddress.getLocalHost(); + } catch (UnknownHostException e) { + e.printStackTrace(); + } + ipAddress= inet.getHostAddress(); + } + } + //对于通过多个代理的情况,第一个IP为客户端真实IP,多个IP按照','分割 + if(ipAddress!=null && ipAddress.length()>15){ //"***.***.***.***".length() = 15 + if(ipAddress.indexOf(",")>0){ + ipAddress = ipAddress.substring(0,ipAddress.indexOf(",")); + } + } + return ipAddress; + } + public static JSONObject httpPost(String url, JSONObject jsonParam) { // post请求返回结果 diff --git a/src/main/java/com/emr/dao/Archive_MasterMapper.java b/src/main/java/com/emr/dao/Archive_MasterMapper.java index 25cc48dc..03994c2e 100644 --- a/src/main/java/com/emr/dao/Archive_MasterMapper.java +++ b/src/main/java/com/emr/dao/Archive_MasterMapper.java @@ -277,4 +277,12 @@ public interface Archive_MasterMapper { * @date: 2023/6/29 17:17 */ List getNurseDefectNum(@Param(value = "ids")String ids); + /** + * @description: 查询死亡病历 + * @params: archiveMasterVo + * @return: Archive_Master_Vo + * @author linjj + * @date: 2025/1/8 15:41 + */ + List getDeathRecordList(Archive_Master_Vo archiveMasterVo); } \ No newline at end of file diff --git a/src/main/java/com/emr/service/Archive_MasterService.java b/src/main/java/com/emr/service/Archive_MasterService.java index d10bb83d..74f38801 100644 --- a/src/main/java/com/emr/service/Archive_MasterService.java +++ b/src/main/java/com/emr/service/Archive_MasterService.java @@ -386,6 +386,17 @@ public interface Archive_MasterService { * @return */ Integer selectCountNum(Archive_Master_Vo archiveMasterVo); + + /** + * @description: 查询死亡病历接口 + * @params: record + * @params: offset + * @params: limit + * @author linjj + * @date: 2025/1/8 15:40 + */ + OffsetLimitPage deathRecordList(Archive_Master_Vo record, Integer offset, Integer limit); + } 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 14aa6ff0..39af86ef 100644 --- a/src/main/java/com/emr/service/ipml/Archive_MasterServiceImpl.java +++ b/src/main/java/com/emr/service/ipml/Archive_MasterServiceImpl.java @@ -1836,6 +1836,34 @@ public class Archive_MasterServiceImpl implements Archive_MasterService { public Integer selectCountNum(Archive_Master_Vo archiveMasterVo) { return archiveMasterMapper.selectCountNum(archiveMasterVo); } + + @Override + public OffsetLimitPage deathRecordList(Archive_Master_Vo record, Integer offset, Integer limit) { + PageHelper.offsetPage(offset, limit); + List list = archiveMasterMapper.getDeathRecordList(record); + if(list!=null && list.size()>0) { + //获取科室列表 + Emr_Dictionary dic = new Emr_Dictionary(); + dic.setEffective(1); + dic.setTypecode("dept_code"); + List dicList = emrDictionaryService.dicByTypeCode(dic); + //转换科室 + Map codeMap = ListUtil.toMap(dicList, Emr_Dictionary::getCode); + Setters.instance().list(list).cycleSetProperties(p -> { + String deptCode = p.getDeptName(); + String deptAdmissionCode = p.getDeptAdmissionTo(); + if(StringUtils.isNotBlank(deptCode) && codeMap.containsKey(deptCode)){ + String deptName = codeMap.get(deptCode).getName(); + p.setDeptName(deptName); + } + if(StringUtils.isNotBlank(deptAdmissionCode) && codeMap.containsKey(deptAdmissionCode)){ + String deptAdmissionTo = codeMap.get(deptAdmissionCode).getName(); + p.setDeptAdmissionTo(deptAdmissionTo); + } + }); + } + return new OffsetLimitPage((Page) list); + } } diff --git a/src/main/java/com/emr/util/Logger.java b/src/main/java/com/emr/util/Logger.java index abf83316..e0a59fb8 100644 --- a/src/main/java/com/emr/util/Logger.java +++ b/src/main/java/com/emr/util/Logger.java @@ -10,6 +10,7 @@ import java.util.Date; public class Logger { public void log(String info) { SimpleDateFormat dateFormat = new SimpleDateFormat ("yyyy-MM-dd"); + SimpleDateFormat dateFormat1 = new SimpleDateFormat ("yyyy-MM-dd HH:mm:ss"); String format = dateFormat.format (new Date()); File file = new File ("D:\\emr_medical_record\\logs\\"+format); if(!file.isDirectory ()){ @@ -18,6 +19,8 @@ public class Logger { OutputStream out = null; try { out = getOutputStream(file.getAbsolutePath ()+"\\log.log"); + // 写入日期和日志信息 + out.write(dateFormat1.format(new Date()).getBytes("utf-8")); // 添加 out.write(info.getBytes("utf-8")); out.write("\r\n".getBytes()); out.close(); diff --git a/src/main/java/com/emr/vo/CollectionVo.java b/src/main/java/com/emr/vo/CollectionVo.java index f0383404..e882dc47 100644 --- a/src/main/java/com/emr/vo/CollectionVo.java +++ b/src/main/java/com/emr/vo/CollectionVo.java @@ -17,4 +17,14 @@ public class CollectionVo { private List patientIds; private String sysCodes; + private String caller; + + @Override + public String toString() { + return "CollectionVo{" + + "patientIds=" + patientIds + + ", sysCodes='" + sysCodes + '\'' + + ", caller='" + caller + '\'' + + '}'; + } } diff --git a/src/main/resources/mapper/Archive_MasterMapper.xml b/src/main/resources/mapper/Archive_MasterMapper.xml index d12b87b9..3f5288b5 100644 --- a/src/main/resources/mapper/Archive_MasterMapper.xml +++ b/src/main/resources/mapper/Archive_MasterMapper.xml @@ -2514,4 +2514,52 @@ AND RowNum = 1 + \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/views/deathRecordsDir/deathRecords.jsp b/src/main/webapp/WEB-INF/views/deathRecordsDir/deathRecords.jsp new file mode 100644 index 00000000..cf582c2d --- /dev/null +++ b/src/main/webapp/WEB-INF/views/deathRecordsDir/deathRecords.jsp @@ -0,0 +1,1318 @@ + +<%@ page contentType="text/html;charset=UTF-8" language="java" import="java.util.*" %> +<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> + +<% + ResourceBundle res = ResourceBundle.getBundle("config.jdbc"); +%> + + + 死亡病历页面 + + + + + + + <%@include file="../../jspf/comm.jspf" %> + <%@include file="../../jspf/ztreeCommom.jsp" %> + + + + + + + + + + +
+
+ +
+
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ +
+ + - + +
+
+
+ + +
+ + +
+
+ +
+
+
+
+ +
+ +
+
+
+ + + + + + + +<%--时间轴弹窗--%> + + + + + \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/views/lastVerifyDir/lastVerifyList.jsp b/src/main/webapp/WEB-INF/views/lastVerifyDir/lastVerifyList.jsp index 006e28a4..525e0182 100644 --- a/src/main/webapp/WEB-INF/views/lastVerifyDir/lastVerifyList.jsp +++ b/src/main/webapp/WEB-INF/views/lastVerifyDir/lastVerifyList.jsp @@ -3983,7 +3983,6 @@ $("#isScaned2").val(row.isscaned); $("#isSign2").val(row.isSign); $("#verifyText").val(""); - } else { toastr.warning("病案室已经审核!"); //刷新