主程序

This commit is contained in:
tangw 2025-10-15 16:27:32 +08:00
parent 628a610ff3
commit 2075e738e6
12 changed files with 310 additions and 15 deletions

View File

@ -0,0 +1,36 @@
package com.czlis.common.core.domain.entity.lis;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.Date;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class ComPat {
private String brdh;
private String mzh;
private String zyh;
private String sfzh;
private String brxm;
private String xb;
private String brly;
private String fb;
private Date sr;
private String ksdh;
private String bq;
private String ch;
private String aboxx;
private String rhxx;
private Date ryrq;
private String jzdz;
private String xxdh;
private String jbdh;
private String bsbr;
private String xxzt;
private String sjys;
private String zd;
private String yljg;
}

View File

@ -18,7 +18,7 @@ public class LabInputcol {
private String mrz;
private String kj;
private Integer xh;
private String zdlb;
private String dict;
}

View File

@ -20,4 +20,5 @@ public interface ComDictMapper {
//根据名称查编号
String getComDictIdByName(@Param("zdlb") String zdlb,@Param("zdmc") String zdmc);
List<ComDict> getComDictListByZdlb(String zdlb);
List<ComDict> getComDictListin(@Param("list") List<String> list);
}

View File

@ -0,0 +1,12 @@
package com.czlis.interfaceCommon.mapper;
import com.czlis.common.core.domain.entity.lis.ComPat;
import org.apache.ibatis.annotations.Param;
import java.util.List;
public interface ComPatMapper {
List<ComPat> getComPat(@Param("brdh") String brdh,@Param("yljg") String yljg);
int deleteComPat(@Param("brdh") String brdh, @Param("yljg") String yljg);
int insertComPat(ComPat comPat);
}

View File

@ -79,6 +79,8 @@ public class CommonUtil {
LabPatfeeMapper labPatfeeMapper;
@Autowired
LabGraphMapper labGraphMapper;
@Autowired
ComPatMapper comPatMapper;
//====检验主表操作方法集合===
public LabPat getLabPatOne(Date jyrq, String yq, String ybh) {
return labPatMapper.getLabPatOne(jyrq, yq, ybh);
@ -157,7 +159,17 @@ public class CommonUtil {
public int delLabPat(LabPat labPat) {
return labPatMapper.updateLabPat(labPat);
}
public List<ComPat> getComPat(String brdh,String yljg){
return comPatMapper.getComPat(brdh,yljg);
}
@Transactional(rollbackFor = Exception.class)
public int deleteComPat(String brdh,String yljg){
return comPatMapper.deleteComPat(brdh,yljg);
}
@Transactional(rollbackFor = Exception.class)
public int insertComPat(ComPat comPat) {
return comPatMapper.insertComPat(comPat);
}
@Transactional(rollbackFor = Exception.class)
public int updateLabPat(LabPat labPat) {
return labPatMapper.updateLabPat(labPat);

View File

@ -17,6 +17,7 @@ import com.czlis.interfaceCommon.mapper.LabInstrvsreqclassMapper;
import com.czlis.interfaceCommon.mapper.LabReqdetailMapper;
import com.czlis.interfaceCommon.mapper.LabReqmainMapper;
import com.czlis.interfaceCommon.mapper.LisWorkUtilsMapper;
import com.czlis.interfaceCommon.pojo.inter.DayMessage;
import com.czlis.interfaceCommon.pojo.inter.GetReqInterface;
import com.czlis.interfaceCommon.pojo.inter.SetReport;
import com.czlis.interfaceCommon.pojo.inter.SetReqStatus;
@ -1786,7 +1787,93 @@ public class LisWorkUtils {
else commonUtil.updateLabPat(labPat);
return new Result("0", "保存成功!", labPat);
}
public Result newPat(Date jyrq, String ybh, String yq, String brdh,String brly,String yljg,int problemId) {
if(brly==null)brly="";
if(yljg==null||"".equals(yljg))yljg=commonUtil.getLabInstr(yq).getYljg();
LabPat labPat = commonUtil.getLabPatOne(jyrq, yq, ybh);
boolean newpatinfo = true;
if (labPat != null) {
String jgbz = labPat.getJgbz();
if (LabPatConstants.CONFIRM.equals(jgbz)) {
return new Result("-1", "当前样本已审核禁止修改!");
}
newpatinfo = false;
String brdh0 = labPat.getBrdh();
String sqh0 = labPat.getSqh();
String brxm = labPat.getBrxm();
if (problemId < 1) {
if ((brdh0 != null && !"".equals(brdh0)) || (sqh0 != null && !"".equals(sqh0)) || (brxm != null && !"".equals(brxm))) {
return new Result("5", "当前样本已有病人信息是否替换!", 1);
}
}
}
String yhdh = SecurityUtils.getLoginUser().getUsername();
labPat = new LabPat();
labPat.setJyrq(jyrq);
labPat.setYq(yq);
labPat.setYbh(ybh);
labPat.setBrdh(brdh);
if(!"".equals(brdh)){
//4.获取病人信息
DayMessage dayMessage = new DayMessage();
dayMessage.setIp("");
dayMessage.setYljg("1");
dayMessage.setUserid(yhdh);
dayMessage.setMsgid(LisinterfaceNameConstants.DAYMESSAGE_GETPATIENT);
String val =brdh + "|"+brly+"|"+yljg; //这里有个医疗机构的,没有传,要考虑
dayMessage.setMsg(val);
Result result = lisInterfaceUtil.invokeLisInterface(LisinterfaceNameConstants.DAYMESSAGE, dayMessage);
String msg=result.getMsg();
String[] msgret = msg.split("\\|");
if(msgret.length>8) {
labPat.setBrxm(msgret[0]);
labPat.setBrxb(msgret[1]);
String brsr=msgret[2];
if(!"".equals(brsr)&&brsr!=null) {
Map<String, Object> ageFromBirthDay = AgeUtils.getAgeByBirthDate(brsr);
String age = ageFromBirthDay.get("nl").toString();
String unit = ageFromBirthDay.get("nldw").toString();
labPat.setNl(Integer.parseInt(age));
labPat.setNldw(unit);
}
labPat.setBrdh(msgret[3]);
labPat.setFb(msgret[4]);
labPat.setBrly(msgret[5]);
labPat.setCh(msgret[6]);
labPat.setKsdh(msgret[7]);
labPat.setZd(msgret[8]);
}else{
List<ComPat> comPatList= commonUtil.getComPat(brdh,yljg);
if(comPatList.size()>0) {
ComPat comPat=comPatList.get(0);
labPat.setBrxm(comPat.getBrxm());
labPat.setCh(comPat.getCh());
labPat.setBrxm(comPat.getXb());
labPat.setBrly(comPat.getBrly());
labPat.setFb(comPat.getFb());
labPat.setKsdh(comPat.getKsdh());
labPat.setZd(comPat.getZd());
labPat.setMzh(comPat.getMzh());
labPat.setSjys(comPat.getSjys());
Date sr=comPat.getSr();
if(sr!=null) {
Map<String, Object> ageFromBirthDay = AgeUtils.getAgeByBirthDate(sr);
String age = ageFromBirthDay.get("nl").toString();
String unit = ageFromBirthDay.get("nldw").toString();
labPat.setNl(Integer.parseInt(age));
labPat.setNldw(unit);
}
}
}
}
labPat = loaddefault(labPat);
//5.保存数据
if (newpatinfo) commonUtil.insertLabPat(labPat);
else commonUtil.updateLabPat(labPat);
return new Result("0", "保存成功!", labPat);
}
public Result newPatInfo(Date jyrq, String ybh, String sqh, String yq, int problemId) {
LabPat labPat = commonUtil.getLabPatOne(jyrq, yq, ybh);

View File

@ -14,6 +14,13 @@
</if>
</where>
</select>
<select id="getComDictListin" resultType="com.czlis.common.core.domain.entity.lis.ComDict">
<include refid="selectComDictVo"></include>
where zdlb in
<foreach collection="list" item="item" open="(" separator="," close=")">
#{item}
</foreach>
</select>
<select id="getComDictList" resultType="com.czlis.common.core.domain.entity.lis.ComDict">
<include refid="selectComDictVo"></include>
<where>

View File

@ -0,0 +1,27 @@
<?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.czlis.interfaceCommon.mapper.ComPatMapper">
<select id="getComPat">
select * from com_pat where brdh = #{brdh} AND yljg = #{yljg}
</select>
<delete id="deleteComPat">
delete from com_pat where brdh = #{brdh} and yljg = #{yljg}
</delete>
<insert id="insertComPat" parameterType="com.czlis.common.core.domain.entity.lis.ComPat">
insert into com_pat (brdh, mzh, zyh,
sfzh, brxm, xb, brly,
fb, sr, ksdh, bq,
ch, aboxx, rhxx, ryrq,
jzdz, xxdh, jbdh, bsbr,
xxzt, sjys, zd, yljg
)
values (#{brdh,jdbcType=VARCHAR}, #{mzh,jdbcType=VARCHAR}, #{zyh,jdbcType=VARCHAR},
#{sfzh,jdbcType=CHAR}, #{brxm,jdbcType=VARCHAR}, #{xb,jdbcType=CHAR}, #{brly,jdbcType=VARCHAR},
#{fb,jdbcType=VARCHAR}, #{sr,jdbcType=TIMESTAMP}, #{ksdh,jdbcType=VARCHAR}, #{bq,jdbcType=VARCHAR},
#{ch,jdbcType=VARCHAR}, #{aboxx,jdbcType=CHAR}, #{rhxx,jdbcType=CHAR}, #{ryrq,jdbcType=TIMESTAMP},
#{jzdz,jdbcType=VARCHAR}, #{xxdh,jdbcType=VARCHAR}, #{jbdh,jdbcType=VARCHAR}, #{bsbr,jdbcType=CHAR},
#{xxzt,jdbcType=CHAR}, #{sjys,jdbcType=VARCHAR}, #{zd,jdbcType=VARCHAR}, #{yljg,jdbcType=VARCHAR}
)
</insert>
</mapper>

View File

@ -3,7 +3,7 @@
"http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.czlis.interfaceCommon.mapper.LabInputcolMapper">
<select id="getLabInputcol" resultType="com.czlis.common.core.domain.entity.lis.LabInputcol">
SELECT * FROM lab_inputcol where yq = #{yq}
SELECT * FROM lab_inputcol where yq = #{yq} order by xh ASC
</select>
</mapper>

View File

@ -2,6 +2,7 @@ package com.czlis.system.config;
import com.czlis.common.asyncmanager.AsyncManager;
import com.czlis.common.config.RuoYiConfig;
import com.czlis.common.core.domain.entity.lis.ComDict;
import com.czlis.common.utils.ComDictUtils;
import com.czlis.interfaceCommon.mapper.ComDictMapper;
import com.czlis.quartz.service.impl.SysJobServiceImpl;
@ -19,6 +20,7 @@ import java.util.Arrays;
import java.util.List;
import java.util.TimeZone;
import java.util.TimerTask;
import java.util.stream.Collectors;
/**
* 程序注解配置
@ -63,7 +65,8 @@ public class ApplicationConfig {
try {
//清空所有com_dict缓存
ComDictUtils.clearDictCache();
list.stream().forEach(zdlb -> ComDictUtils.setDictCache(zdlb, comDictMapper.getComDictListByZdlb(zdlb)));
List<ComDict> comDictList=comDictMapper.getComDictListin(list);
list.stream().forEach(zdlb -> ComDictUtils.setDictCache(zdlb,comDictList.stream().filter(lis->zdlb.equals(lis.getZdlb())).collect(Collectors.toList())));
} catch (Exception e) {
log.error("获取lis代码字典失败,异步执行{}方法失败",this, e);
}

View File

@ -1,13 +1,11 @@
package com.czlis.liswork.service.impl;
import cn.hutool.poi.excel.cell.CellSetter;
import com.czlis.common.core.domain.entity.SysLoginParam;
import com.czlis.common.core.domain.entity.SysUser;
import com.czlis.common.core.domain.entity.lis.*;
import com.czlis.common.utils.DateUtils;
import com.czlis.common.utils.SecurityUtils;
import com.czlis.common.utils.ServletUtils;
import com.czlis.common.utils.StringUtils;
import com.czlis.common.utils.*;
import com.czlis.common.utils.ip.IpUtils;
import com.czlis.interfaceCommon.constants.ComLogConstants;
import com.czlis.interfaceCommon.constants.LisinterfaceNameConstants;
@ -27,6 +25,7 @@ import com.czlis.liswork.service.LisWorkOperService;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.time.DateFormatUtils;
import org.openxmlformats.schemas.drawingml.x2006.main.CTRegularTextRun;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -48,11 +47,49 @@ public class LisWorkOperServiceImpl implements LisWorkOperService {
}
@Override
public Result changePat(LabPat labPat) {
if("2".equals(labPat.getJgbz())) return new Result("-1", "结果已审核禁止修改!");
if("5".equals(labPat.getJgbz())) return new Result("-1", "结果已锁定禁止修改!");
if("1".equals(labPat.getJgbz())) return new Result("-1", "结果已初审禁止修改!");
commonUtil.updateLabPat(labPat);
saveallresult(labPat.getJyrq(),labPat.getYq(),labPat.getYbh());
int problemId = JsonParamUtils.getParameterToInt("problemId", 0);
Date jyrq=labPat.getJyrq();
String yq=labPat.getYq();
String ybh=labPat.getYbh();
//要防止别已经修改过了
LabPat labPat0 =commonUtil.getLabPatOne(jyrq,yq,ybh);
if(labPat0!=null) {
if ("2".equals(labPat0.getJgbz())) return new Result("-1", "结果已审核禁止修改!");
if ("5".equals(labPat0.getJgbz())) return new Result("-1", "结果已锁定禁止修改!");
if ("1".equals(labPat0.getJgbz())) return new Result("-1", "结果已初审禁止修改!");
String sqh=labPat0.getSqh();
if(sqh==null)sqh="";
String brdh=labPat0.getBrdh();
if(brdh==null)brdh="";
String sqh1=labPat.getSqh();
if(sqh1==null)sqh1="";
String brdh1=labPat.getBrdh();
if(brdh1==null)brdh1="";
//通过修改申请号触发病人信息载入
if(!"".equals(sqh1)&&sqh1.equals(sqh)){
return lisWorkUtils.newPatInfo(jyrq, ybh, sqh1, yq, problemId);
}
//通过修改住院号触发病人信息载入
if(!"".equals(brdh1)&&brdh1.equals(brdh)){
return lisWorkUtils.newPat(jyrq, ybh, yq, brdh1,labPat.getBrly(),labPat.getYljg(), problemId);
}
commonUtil.updateLabPat(labPat);
}else{
String sqh1=labPat.getSqh();
if(sqh1==null)sqh1="";
String brdh1=labPat.getBrdh();
if(brdh1==null)brdh1="";
// 通过修改申请号触发病人信息载入
if(!"".equals(sqh1)){
return lisWorkUtils.newPatInfo(jyrq, ybh, sqh1, yq, problemId);
}
//通过修改住院号触发病人信息载入
if(!"".equals(brdh1)){
return lisWorkUtils.newPat(jyrq, ybh, yq, brdh1,labPat.getBrly(),labPat.getYljg(), problemId);
}
commonUtil.insertLabPat(labPat);
}
saveallresult(jyrq,yq,ybh);
return new Result("0", "保存成功");
}
@ -67,6 +104,11 @@ public class LisWorkOperServiceImpl implements LisWorkOperService {
*/
@Override
public Result changePatColumn(Date jyrq,String yq, String ybh,String column,String value) {
int problemId = ServletUtils.getParameterToInt("problemId", 0);
if("brdh".equals(column)){
return lisWorkUtils.newPat(jyrq, ybh, yq, value,"","", problemId);
}
if("sqh".equals(column)){return lisWorkUtils.newPatInfo(jyrq, ybh, value, yq, problemId);}
return lisWorkUtils.changePatColumn(jyrq, yq, ybh, column, value);
}
@Override

View File

@ -99,7 +99,75 @@ public class LisWorkServiceImpl implements LisWorkService {
}
@Override
public Result getInstrdConfig(String yq) {
List<ComOpt> instrdConfig = lisWorkMapper.getInstrdConfig(yq);
List<ComOpt> comOptlist = lisWorkMapper.getInstrdConfig(yq);
List<LabInputcol> labInputcolList = commonUtil.getLabInputcol(yq);
for(LabInputcol labInputcol:labInputcolList){
String zdmc=labInputcol.getZdmc();
labInputcol.setZdlb("1");
labInputcol.setDict("");
switch(zdmc){
case "brly":
labInputcol.setDict("PT");
break;
case "brxb":
labInputcol.setDict("SX");
break;
case "nldw":
labInputcol.setDict("AU");
break;
case "nl":
labInputcol.setZdlb("2");
break;
case "fb":
labInputcol.setDict("FT");
break;
case "ksdh":
labInputcol.setDict("DP");
break;
case "yblx":
labInputcol.setDict("BT");
break;
case "sjys":
labInputcol.setDict("SRD");
break;
case "sqsj":
case "cyrq":
case "dysj":
labInputcol.setZdlb("3");
break;
case "yhdh":
case "hdys":
labInputcol.setDict("USR");
break;
case "zd":
labInputcol.setDict("DG");
break;
case "bz":
labInputcol.setDict("CM");
break;
case "jzbz":
labInputcol.setZdlb("4");
break;
case "yljg":
labInputcol.setDict("HOS");
break;
case "slzq":
labInputcol.setDict("SLZQ");
break;
case "ybzt":
labInputcol.setDict("ST");
break;
case "zjlx":
labInputcol.setDict("ZJLX");
break;
default:
labInputcol.setZdlb("1");
labInputcol.setDict("");
}
}
Map<String,Object> instrdConfig=new HashMap<String,Object>();
instrdConfig.put("comOptlist",comOptlist);
instrdConfig.put("labInputcolList",labInputcolList);
return new Result("0","获取仪器参数成功!",instrdConfig);
}