修改第三方病案浏览过滤已归档,并记录浏览记录

master
zengwh 3 years ago
parent dc5f050e8e
commit ea2d5b5c61

@ -6,6 +6,7 @@ import com.emr.entity.*;
import com.emr.service.Archive_DetailService;
import com.emr.service.Archive_MasterService;
import com.emr.service.Zd_AssortService;
import com.emr.service.ipml.TBasicBrowseHistoryService;
import com.emr.util.ExceptionPrintUtil;
import com.emr.util.Msg;
import org.apache.commons.lang3.StringUtils;
@ -13,6 +14,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.util.CollectionUtils;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
@ -47,13 +49,15 @@ public class FontController {
private Emr_DictionaryMapper dictionaryMapper;
@Autowired
private Zd_AssortService assortService;
@Autowired
private TBasicBrowseHistoryService tBasicBrowseHistoryService;
/***************************提供第三方按多个分段id和记账号查询病历pdf***********************************/
/**
* idpdf
* */
@RequestMapping("showRecordByPatientId")
public String showRecordByPatientId( HttpServletResponse response, String assortIds, String patientId, String visitId, Model model){
public String showRecordByPatientId( HttpServletResponse response, String assortIds, String patientId, String visitId,Integer isArchive,String userName,Model model){
response.setCharacterEncoding("utf-8");
//System.out.println(System.getProperty("file.encoding"));//当前文件的编码方式
if(StringUtils.isBlank(assortIds)){
@ -65,6 +69,13 @@ public class FontController {
if(StringUtils.isBlank(visitId)){
return retrunErrorPage(model,"住院次数不能为空!");
}
if(null != isArchive && isArchive == 1){
//判断是否归档
List<Archive_Master> archiveMasters = archiveMasterService.selectByObject(patientId, visitId);
if(CollectionUtils.isEmpty(archiveMasters) || !"已归档".equals(archiveMasters.get(0).getArchivestate())){
return retrunErrorPage(model, "病案不存在或未归档");
}
}
List<Archive_Master> list = new ArrayList<>();
//判断工号是否存在
try {
@ -91,6 +102,8 @@ public class FontController {
model.addAttribute("patientId",list.get(0).getId());
model.addAttribute("accountNumber",list.get(0).getPatientId());
model.addAttribute("assortIds",assortIds);
model.addAttribute("visitId",visitId);
model.addAttribute("userName",userName);
return "font/showRecordIframe";
}
@ -202,7 +215,7 @@ public class FontController {
*/
@ResponseBody
@RequestMapping(value = "/getRecordTypeTree")
public String getRecordTypeTree(HttpServletResponse response,String patientId,String assortIds){
public String getRecordTypeTree(HttpServletResponse response,HttpServletRequest request,String patientId,String visitId,String assortIds,String userName){
response.setCharacterEncoding("utf-8");
// System.out.println(System.getProperty("file.encoding"));//当前文件的编码方式
List<AssortTypeTree> treeList = new ArrayList<>();
@ -230,6 +243,7 @@ public class FontController {
}
if(null != list && !list.isEmpty()){
Set<String> assortList = new LinkedHashSet<>();
Set<String> assortIdList = new LinkedHashSet<>();
//抽取首次病程记录
String strTemp = "首次病程";
String assortId = "11";
@ -241,6 +255,7 @@ public class FontController {
//分类去重
for(Archive_Detail detail : list){
assortList.add(detail.getSubassort());
assortIdList.add(detail.getAssortid());
//获取title
String title = detail.getTitle();
if(StringUtils.isNotBlank(title) && detail.getTitle().contains(strTemp)){
@ -330,6 +345,13 @@ public class FontController {
tree1.setChecked("true");
treeList.add(tree1);
}
TBasicBrowseHistory tBasicBrowseHistory = new TBasicBrowseHistory();
tBasicBrowseHistory.setPatientId(patientId);
tBasicBrowseHistory.setVisitId(visitId);
tBasicBrowseHistory.setClassify(StringUtils.join(assortIdList, ","));
tBasicBrowseHistory.setClassifyName(StringUtils.join(assortList,","));
tBasicBrowseHistory.setCreater(userName);
tBasicBrowseHistoryService.insert(request,tBasicBrowseHistory);
}
}
return JSON.toJSONString(treeList);

@ -0,0 +1,17 @@
package com.emr.dao;
import com.emr.entity.TBasicBrowseHistory;
public interface TBasicBrowseHistoryMapper {
int deleteByPrimaryKey(Long id);
int insert(TBasicBrowseHistory record);
int insertSelective(TBasicBrowseHistory record);
TBasicBrowseHistory selectByPrimaryKey(Long id);
int updateByPrimaryKeySelective(TBasicBrowseHistory record);
int updateByPrimaryKey(TBasicBrowseHistory record);
}

@ -0,0 +1,117 @@
package com.emr.entity;
import java.io.Serializable;
import java.util.Date;
public class TBasicBrowseHistory implements Serializable {
private Long id;
private String patientId;
private String visitId;
private String classify;
private String classifyName;
private String ip;
private String creater;
private String createrName;
private Date createTime;
private static final long serialVersionUID = 1L;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getPatientId() {
return patientId;
}
public void setPatientId(String patientId) {
this.patientId = patientId == null ? null : patientId.trim();
}
public String getVisitId() {
return visitId;
}
public void setVisitId(String visitId) {
this.visitId = visitId == null ? null : visitId.trim();
}
public String getClassify() {
return classify;
}
public void setClassify(String classify) {
this.classify = classify == null ? null : classify.trim();
}
public String getClassifyName() {
return classifyName;
}
public void setClassifyName(String classifyName) {
this.classifyName = classifyName == null ? null : classifyName.trim();
}
public String getIp() {
return ip;
}
public void setIp(String ip) {
this.ip = ip == null ? null : ip.trim();
}
public String getCreater() {
return creater;
}
public void setCreater(String creater) {
this.creater = creater == null ? null : creater.trim();
}
public String getCreaterName() {
return createrName;
}
public void setCreaterName(String createrName) {
this.createrName = createrName == null ? null : createrName.trim();
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
@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(", patientId=").append(patientId);
sb.append(", visitId=").append(visitId);
sb.append(", classify=").append(classify);
sb.append(", classifyName=").append(classifyName);
sb.append(", ip=").append(ip);
sb.append(", creater=").append(creater);
sb.append(", createrName=").append(createrName);
sb.append(", createTime=").append(createTime);
sb.append("]");
return sb.toString();
}
}

@ -0,0 +1,79 @@
package com.emr.service.ipml;
import com.emr.dao.TBasicBrowseHistoryMapper;
import com.emr.entity.Power_User;
import com.emr.entity.TBasicBrowseHistory;
import com.emr.util.IDHelper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.servlet.http.HttpServletRequest;
import java.net.InetAddress;
import java.net.UnknownHostException;
import java.util.Date;
/**
* @ProjectName:
* @Description:
* @Param
* @Return
* @Author:
* @CreateDate: 2022/2/10 22:30
* @UpdateUser:
* @UpdateDate: 2022/2/10 22:30
* @UpdateRemark:
* @Version: 1.0
*/
@Service
@Transactional
public class TBasicBrowseHistoryService {
@Autowired
private TBasicBrowseHistoryMapper tBasicBrowseHistoryMapper;
public void insert(HttpServletRequest request,TBasicBrowseHistory tBasicBrowseHistory){
try {
long id = IDHelper.NewID();
tBasicBrowseHistory.setId(id);
tBasicBrowseHistory.setCreateTime(new Date());
tBasicBrowseHistory.setIp(getIpAddr(request));
tBasicBrowseHistoryMapper.insert(tBasicBrowseHistory);
} catch (Exception e) {
e.printStackTrace();
}
}
public static String getIpAddr(HttpServletRequest request) {
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();
String localIp = "127.0.0.1";
String localIpv6 = "0:0:0:0:0:0:0:1";
if (ipAddress.equals(localIp) || ipAddress.equals(localIpv6)) {
// 根据网卡取本机配置的IP
InetAddress inet = null;
try {
inet = InetAddress.getLocalHost();
ipAddress = inet.getHostAddress();
} catch (UnknownHostException e) {
e.printStackTrace();
}
}
}
// 对于通过多个代理的情况第一个IP为客户端真实IP,多个IP按照','分割
String ipSeparate = ",";
int ipLength = 15;
if (ipAddress != null && ipAddress.length() > ipLength) {
if (ipAddress.indexOf(ipSeparate) > 0) {
ipAddress = ipAddress.substring(0, ipAddress.indexOf(ipSeparate));
}
}
return ipAddress;
}
}

@ -0,0 +1,141 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.emr.dao.TBasicBrowseHistoryMapper" >
<resultMap id="BaseResultMap" type="com.emr.entity.TBasicBrowseHistory" >
<id column="id" property="id" jdbcType="BIGINT" />
<result column="patient_id" property="patientId" jdbcType="NVARCHAR" />
<result column="visit_id" property="visitId" jdbcType="VARCHAR" />
<result column="classify" property="classify" jdbcType="NVARCHAR" />
<result column="classify_name" property="classifyName" jdbcType="NVARCHAR" />
<result column="ip" property="ip" jdbcType="NVARCHAR" />
<result column="creater" property="creater" jdbcType="NVARCHAR" />
<result column="creater_name" property="createrName" jdbcType="NVARCHAR" />
<result column="create_time" property="createTime" jdbcType="TIMESTAMP" />
</resultMap>
<sql id="Base_Column_List" >
id, patient_id, visit_id, classify, classify_name, ip, creater, creater_name, create_time
</sql>
<select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.Long" >
select
<include refid="Base_Column_List" />
from t_basic_browse_history
where id = #{id,jdbcType=BIGINT}
</select>
<delete id="deleteByPrimaryKey" parameterType="java.lang.Long" >
delete from t_basic_browse_history
where id = #{id,jdbcType=BIGINT}
</delete>
<insert id="insert" parameterType="com.emr.entity.TBasicBrowseHistory" >
insert into t_basic_browse_history (id, patient_id, visit_id,
classify, classify_name, ip,
creater, creater_name, create_time
)
values (#{id,jdbcType=BIGINT}, #{patientId,jdbcType=NVARCHAR}, #{visitId,jdbcType=VARCHAR},
#{classify,jdbcType=NVARCHAR}, #{classifyName,jdbcType=NVARCHAR}, #{ip,jdbcType=NVARCHAR},
#{creater,jdbcType=NVARCHAR}, #{createrName,jdbcType=NVARCHAR}, #{createTime,jdbcType=TIMESTAMP}
)
</insert>
<insert id="insertSelective" parameterType="com.emr.entity.TBasicBrowseHistory" >
insert into t_basic_browse_history
<trim prefix="(" suffix=")" suffixOverrides="," >
<if test="id != null" >
id,
</if>
<if test="patientId != null" >
patient_id,
</if>
<if test="visitId != null" >
visit_id,
</if>
<if test="classify != null" >
classify,
</if>
<if test="classifyName != null" >
classify_name,
</if>
<if test="ip != null" >
ip,
</if>
<if test="creater != null" >
creater,
</if>
<if test="createrName != null" >
creater_name,
</if>
<if test="createTime != null" >
create_time,
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides="," >
<if test="id != null" >
#{id,jdbcType=BIGINT},
</if>
<if test="patientId != null" >
#{patientId,jdbcType=NVARCHAR},
</if>
<if test="visitId != null" >
#{visitId,jdbcType=VARCHAR},
</if>
<if test="classify != null" >
#{classify,jdbcType=NVARCHAR},
</if>
<if test="classifyName != null" >
#{classifyName,jdbcType=NVARCHAR},
</if>
<if test="ip != null" >
#{ip,jdbcType=NVARCHAR},
</if>
<if test="creater != null" >
#{creater,jdbcType=NVARCHAR},
</if>
<if test="createrName != null" >
#{createrName,jdbcType=NVARCHAR},
</if>
<if test="createTime != null" >
#{createTime,jdbcType=TIMESTAMP},
</if>
</trim>
</insert>
<update id="updateByPrimaryKeySelective" parameterType="com.emr.entity.TBasicBrowseHistory" >
update t_basic_browse_history
<set >
<if test="patientId != null" >
patient_id = #{patientId,jdbcType=NVARCHAR},
</if>
<if test="visitId != null" >
visit_id = #{visitId,jdbcType=VARCHAR},
</if>
<if test="classify != null" >
classify = #{classify,jdbcType=NVARCHAR},
</if>
<if test="classifyName != null" >
classify_name = #{classifyName,jdbcType=NVARCHAR},
</if>
<if test="ip != null" >
ip = #{ip,jdbcType=NVARCHAR},
</if>
<if test="creater != null" >
creater = #{creater,jdbcType=NVARCHAR},
</if>
<if test="createrName != null" >
creater_name = #{createrName,jdbcType=NVARCHAR},
</if>
<if test="createTime != null" >
create_time = #{createTime,jdbcType=TIMESTAMP},
</if>
</set>
where id = #{id,jdbcType=BIGINT}
</update>
<update id="updateByPrimaryKey" parameterType="com.emr.entity.TBasicBrowseHistory" >
update t_basic_browse_history
set patient_id = #{patientId,jdbcType=NVARCHAR},
visit_id = #{visitId,jdbcType=VARCHAR},
classify = #{classify,jdbcType=NVARCHAR},
classify_name = #{classifyName,jdbcType=NVARCHAR},
ip = #{ip,jdbcType=NVARCHAR},
creater = #{creater,jdbcType=NVARCHAR},
creater_name = #{createrName,jdbcType=NVARCHAR},
create_time = #{createTime,jdbcType=TIMESTAMP}
where id = #{id,jdbcType=BIGINT}
</update>
</mapper>

@ -194,6 +194,7 @@
<input type="hidden" id="accountNumber" value="${accountNumber}">
<input type="hidden" id="assortIds" value="${assortIds}">
<input type="hidden" id="visitId" value="${visitId}">
<input type="hidden" id="userName" value="${userName}">
<!--业务识别码1:护理按需采集预览-->
<input type="hidden" id="typeFlag" value="1">
<div id="loading" class="loading">正在采集,请稍等</div>
@ -462,7 +463,7 @@
var params = '';
//获取业务识别编码
url = path+"/font/getRecordTypeTree";
params = {patientId:$("#patientId").val(),assortIds:$("#assortIds").val()};
params = {patientId:$("#patientId").val(),assortIds:$("#assortIds").val(),visitId:$("#visitId").val(),userName:$("#userName").val()};
$.ajax({
type: "post",
url: url,

Loading…
Cancel
Save