diff --git a/lis-common/src/main/java/com/czlis/common/core/domain/entity/lis/ComPat.java b/lis-common/src/main/java/com/czlis/common/core/domain/entity/lis/ComPat.java new file mode 100644 index 0000000..c816249 --- /dev/null +++ b/lis-common/src/main/java/com/czlis/common/core/domain/entity/lis/ComPat.java @@ -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; +} diff --git a/lis-common/src/main/java/com/czlis/common/core/domain/entity/lis/LabInputcol.java b/lis-common/src/main/java/com/czlis/common/core/domain/entity/lis/LabInputcol.java index c32f910..4a92315 100644 --- a/lis-common/src/main/java/com/czlis/common/core/domain/entity/lis/LabInputcol.java +++ b/lis-common/src/main/java/com/czlis/common/core/domain/entity/lis/LabInputcol.java @@ -18,7 +18,7 @@ public class LabInputcol { private String mrz; private String kj; private Integer xh; - - + private String zdlb; + private String dict; } diff --git a/lis-interfaceCommon/src/main/java/com/czlis/interfaceCommon/mapper/ComDictMapper.java b/lis-interfaceCommon/src/main/java/com/czlis/interfaceCommon/mapper/ComDictMapper.java index 770f713..29debd8 100644 --- a/lis-interfaceCommon/src/main/java/com/czlis/interfaceCommon/mapper/ComDictMapper.java +++ b/lis-interfaceCommon/src/main/java/com/czlis/interfaceCommon/mapper/ComDictMapper.java @@ -20,4 +20,5 @@ public interface ComDictMapper { //根据名称查编号 String getComDictIdByName(@Param("zdlb") String zdlb,@Param("zdmc") String zdmc); List getComDictListByZdlb(String zdlb); + List getComDictListin(@Param("list") List list); } diff --git a/lis-interfaceCommon/src/main/java/com/czlis/interfaceCommon/mapper/ComPatMapper.java b/lis-interfaceCommon/src/main/java/com/czlis/interfaceCommon/mapper/ComPatMapper.java new file mode 100644 index 0000000..95e841d --- /dev/null +++ b/lis-interfaceCommon/src/main/java/com/czlis/interfaceCommon/mapper/ComPatMapper.java @@ -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 getComPat(@Param("brdh") String brdh,@Param("yljg") String yljg); + int deleteComPat(@Param("brdh") String brdh, @Param("yljg") String yljg); + int insertComPat(ComPat comPat); +} diff --git a/lis-interfaceCommon/src/main/java/com/czlis/interfaceCommon/utils/CommonUtil.java b/lis-interfaceCommon/src/main/java/com/czlis/interfaceCommon/utils/CommonUtil.java index 98f7789..dc0d81e 100644 --- a/lis-interfaceCommon/src/main/java/com/czlis/interfaceCommon/utils/CommonUtil.java +++ b/lis-interfaceCommon/src/main/java/com/czlis/interfaceCommon/utils/CommonUtil.java @@ -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 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); diff --git a/lis-interfaceCommon/src/main/java/com/czlis/interfaceCommon/utils/LisWorkUtils.java b/lis-interfaceCommon/src/main/java/com/czlis/interfaceCommon/utils/LisWorkUtils.java index 9f18e28..87ac0d1 100644 --- a/lis-interfaceCommon/src/main/java/com/czlis/interfaceCommon/utils/LisWorkUtils.java +++ b/lis-interfaceCommon/src/main/java/com/czlis/interfaceCommon/utils/LisWorkUtils.java @@ -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 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 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 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); diff --git a/lis-interfaceCommon/src/main/resources/mapper/ComDictMapper.xml b/lis-interfaceCommon/src/main/resources/mapper/ComDictMapper.xml index 188ab74..77c3eb9 100644 --- a/lis-interfaceCommon/src/main/resources/mapper/ComDictMapper.xml +++ b/lis-interfaceCommon/src/main/resources/mapper/ComDictMapper.xml @@ -14,6 +14,13 @@ + + select * from com_pat where brdh = #{brdh} AND yljg = #{yljg} + + + delete from com_pat where brdh = #{brdh} and yljg = #{yljg} + + + 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} + ) + + diff --git a/lis-interfaceCommon/src/main/resources/mapper/LabInputcolMapper.xml b/lis-interfaceCommon/src/main/resources/mapper/LabInputcolMapper.xml index 4640850..c66361e 100644 --- a/lis-interfaceCommon/src/main/resources/mapper/LabInputcolMapper.xml +++ b/lis-interfaceCommon/src/main/resources/mapper/LabInputcolMapper.xml @@ -3,7 +3,7 @@ "http://mybatis.org/dtd/mybatis-3-mapper.dtd" > diff --git a/lis-system/src/main/java/com/czlis/system/config/ApplicationConfig.java b/lis-system/src/main/java/com/czlis/system/config/ApplicationConfig.java index 41a7c2e..a42f391 100644 --- a/lis-system/src/main/java/com/czlis/system/config/ApplicationConfig.java +++ b/lis-system/src/main/java/com/czlis/system/config/ApplicationConfig.java @@ -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 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); } diff --git a/liswork/src/main/java/com/czlis/liswork/service/impl/LisWorkOperServiceImpl.java b/liswork/src/main/java/com/czlis/liswork/service/impl/LisWorkOperServiceImpl.java index 0cc5f95..0f3b2da 100644 --- a/liswork/src/main/java/com/czlis/liswork/service/impl/LisWorkOperServiceImpl.java +++ b/liswork/src/main/java/com/czlis/liswork/service/impl/LisWorkOperServiceImpl.java @@ -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 diff --git a/liswork/src/main/java/com/czlis/liswork/service/impl/LisWorkServiceImpl.java b/liswork/src/main/java/com/czlis/liswork/service/impl/LisWorkServiceImpl.java index cb54d26..d145126 100644 --- a/liswork/src/main/java/com/czlis/liswork/service/impl/LisWorkServiceImpl.java +++ b/liswork/src/main/java/com/czlis/liswork/service/impl/LisWorkServiceImpl.java @@ -99,7 +99,75 @@ public class LisWorkServiceImpl implements LisWorkService { } @Override public Result getInstrdConfig(String yq) { - List instrdConfig = lisWorkMapper.getInstrdConfig(yq); + List comOptlist = lisWorkMapper.getInstrdConfig(yq); + List 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 instrdConfig=new HashMap(); + instrdConfig.put("comOptlist",comOptlist); + instrdConfig.put("labInputcolList",labInputcolList); return new Result("0","获取仪器参数成功!",instrdConfig); }