diff --git a/lis-interfaceCommon/src/main/java/com/czlis/interfaceCommon/mapper/LabResultMapper.java b/lis-interfaceCommon/src/main/java/com/czlis/interfaceCommon/mapper/LabResultMapper.java index 17b59c5..f4cc0fd 100644 --- a/lis-interfaceCommon/src/main/java/com/czlis/interfaceCommon/mapper/LabResultMapper.java +++ b/lis-interfaceCommon/src/main/java/com/czlis/interfaceCommon/mapper/LabResultMapper.java @@ -12,4 +12,5 @@ public interface LabResultMapper { int insertLabResult(LabResult labResult); int delLabResult(LabResult labResult); int updateLabResult(LabResult labResult); + int delNullLabResult(@Param("jyrq") Date jyrq, @Param("yq") String yq, @Param("ybh") String ybh); } 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 89b909d..9d8ba57 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 @@ -72,6 +72,8 @@ public class CommonUtil { @Transactional(rollbackFor = Exception.class) public int delLabResult(LabResult labResult) {return labResultMapper.delLabResult(labResult);} @Transactional(rollbackFor = Exception.class) + public int delNullLabResult(Date jyrq, String yq, String ybh) {return labResultMapper.delNullLabResult(jyrq, yq, ybh);} + @Transactional(rollbackFor = Exception.class) public int updateLabResult(LabResult labResult) {return labResultMapper.updateLabResult(labResult);} //=====项目字典查询========= public List getXmInfoList(String yq) {return xmInfoMapper.getXmInfoList(yq);} diff --git a/lis-interfaceCommon/src/main/resources/mapper/LabResultMapper.xml b/lis-interfaceCommon/src/main/resources/mapper/LabResultMapper.xml index 7e84d8d..4339300 100644 --- a/lis-interfaceCommon/src/main/resources/mapper/LabResultMapper.xml +++ b/lis-interfaceCommon/src/main/resources/mapper/LabResultMapper.xml @@ -44,6 +44,13 @@ and ybh = #{ybh,jdbcType=VARCHAR} and xmdh = #{xmdh,jdbcType=VARCHAR} + + delete from lab_result + where jyrq = #{jyrq} + and yq = #{yq,jdbcType=CHAR} + and ybh = #{ybh,jdbcType=VARCHAR} + and (rtrim(csjg) ='' or csjg is null) + insert into lab_result (jyrq, yq, ybh, xmdh, wyh, csjg, od, 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 e50cdd1..7cff1cd 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 @@ -205,7 +205,7 @@ public class LisWorkOperServiceImpl implements LisWorkOperService { Result result=beforecheck2(jyrq, yq, ybh, hdys); if("0".equals(result.getCode()))return result; //3:数据完整性校验 - result= saveallresult(jyrq, yq, ybh, hdys); + result= saveallresult(jyrq, yq, ybh); if("0".equals(result.getCode()))return result; //4:CA请求业务的处理 //Result result=addCA(jyrq, yq, ybh, hdys); @@ -228,15 +228,6 @@ public class LisWorkOperServiceImpl implements LisWorkOperService { } String brxm=labPat.getBrxm(); if(brxm==null || "".equals(brxm) ) new Result("-1","姓名为空禁止审核!"); - return new Result("0","保存成功!"); - } - - /** - * 保存所有结果的修正值,涉及:空结果清除,计算项目添加,添加单位,添加申请项目编码,参考值重新计算更新,结果标志重新计算更新,危急值标志计算更新 - * @param jyrq - * @return - */ - public Result saveallresult(Date jyrq, String yq, String ybh, String hdys){ List labResultList =commonUtil.getLabResultList(jyrq, yq, ybh); if(labResultList==null)return new Result("-1","结果为空禁止审核!"); for (LabResult labResult : labResultList) { @@ -251,40 +242,28 @@ public class LisWorkOperServiceImpl implements LisWorkOperService { } } - String keepnodataitem=commonUtil.getComOptValue(yq,"keepnodataitem"); - if("1".equals(keepnodataitem)){}else{ - for (LabResult labResult : labResultList) { - String csjg=labResult.getCsjg(); - if (csjg==null || "".equals(csjg)) { - commonUtil.delLabResult(labResult); - } + return new Result("0","保存成功!"); + } - } + /** + * 保存所有结果的修正值,涉及:空结果清除,计算项目添加,添加单位,添加申请项目编码,参考值重新计算更新,结果标志重新计算更新,危急值标志计算更新 + * @param jyrq + * @return + */ + public Result saveallresult(Date jyrq, String yq, String ybh){ + //清除空白结果 + String keepnodataitem=commonUtil.getComOptValue(yq,"keepnodataitem"); + if(!"1".equals(keepnodataitem)){ + commonUtil.delNullLabResult(jyrq, yq, ybh); } + //查询病人信息 LabPat labPat=commonUtil.getLabPatOne(jyrq, yq, ybh); //计算项目更新 calcsample(labPat); - String yqdl=lisWorkOperMapper.selectYqdl(yq); - if(!"细菌仪".equals(yqdl)) { - Map map = new HashMap<>(); - map.put("jyrq", jyrq); - map.put("yq", yq); - map.put("ybh", ybh); - map.put("settype", "1"); - map.put("retcode", ""); - map.put("retmsg", ""); - lisWorkOperMapper.sp_setrefs(map); - String retCode = String.valueOf(map.get("retcode")); - String retMsg = String.valueOf(map.get("retmsg")); - log.info("调用存储过程{}返回值:{},{}", "sp_setrefs", retCode, retMsg); - if (retCode == null || "".equals(retCode) || "-1".equals(retCode)) return new Result("-1", "保存常规参考值失败!"); - int wjz=saverefs(labPat); - if(wjz==1){ - //危急值处理过程 - } - } - String sqh=labPat.getSqh(); - setItemSqxmdh(jyrq, yq, ybh,sqh); + //保存最新参考值结果标志 + saverefs(labPat); + //补写结果表申请单项目编号 + setItemSqxmdh(jyrq, yq, ybh,labPat.getSqh()); return new Result("0","保存成功!"); } @@ -407,16 +386,46 @@ public class LisWorkOperServiceImpl implements LisWorkOperService { //当结果为数值并且与周期诊断无关,计算存储过程保存成功后,只进行危急值判断 if(lb_nummode && lb_setbj && !"Y".equals(ygzd) && !"Y".equals(ygzq)){ int wjz=alarmcondition(labPat,labResult); - if(wjz==1)lb_wjz=true; + if(wjz!=-1){//危急值标识特殊判断存在时优先使用特殊结果 + String resultalarmflag=labResult.getAlarmFlag(); + if(("".equals(resultalarmflag) && lb_wjz)) { + String jgbz=labResult.getJgbz(); + if(jgbz==null ||!"L".equals(jgbz)) jgbz="H"; + labResult.setAlarmFlag(jgbz); + commonUtil.updateLabResult(labResult); + }else if(!"".equals(resultalarmflag) && !lb_wjz){ + labResult.setAlarmFlag(""); + commonUtil.updateLabResult(labResult); + } + } + String resultalarmflag1=labResult.getAlarmFlag(); + if(!"".equals(resultalarmflag1) && resultalarmflag1!=null)lb_wjz=true; }else { int wjz = setrefs( labPat, labResult); if (wjz == 1) lb_wjz = true; } } - - if(lb_wjz){ - //危急值处理过程 + //危急值标识去除原则 + String brxm=labPat.getBrxm(); + if(brxm.contains("质控")||brxm.contains("复查")||brxm.contains("QC")||brxm.contains("qc")||brxm.contains("软化水")||brxm.contains("锅炉水")){ + lb_wjz=false; + }; + String brly=labPat.getBrly(); + brly=commonUtil.getComDictNameById("PT",brly); + if(brly.contains("质控"))lb_wjz=false; + String ksdh=labPat.getKsdh(); + ksdh=commonUtil.getComDictNameById("DP",ksdh); + if(ksdh.contains("检验科"))lb_wjz=false; + //同步主表危急值标识 + String alarmflag=labPat.getAlarmflag(); + if(("1".equals(alarmflag) && !lb_wjz)){ + labPat.setAlarmflag("1"); + commonUtil.updateLabPat(labPat); + }else if(("".equals(alarmflag)||alarmflag==null) && lb_wjz){ + labPat.setAlarmflag(""); + commonUtil.updateLabPat(labPat); } + } return 0; } @@ -518,10 +527,10 @@ public class LisWorkOperServiceImpl implements LisWorkOperService { if("P".equals(jgbzold) && (csjg.indexOf("阳")>=0 || csjg.indexOf("+")>=0 || csjg.indexOf(":")>=0 ) && (lmtflag == null || lmtflag.trim().isEmpty())) lmtflag="P"; resultflag=lmtflag; if("J".equals(lmtflag))wjzflag = "H"; - int wjzf=alarmcondition(labPat,labResult); - if(wjzf==1) wjzflag="H"; - } + int wjzf=alarmcondition(labPat,labResult); + if(wjzf==1) wjzflag="H";//满足特定危机值条件 + if(wjzf==0) wjzflag="";//存在特定危机值条件,但不满足不提示 //小数保留位数计算 Integer xsws= xmInfo.getXsws(); if(xsws>=0) csjg=LisUtil.round(csjg,xsws); @@ -546,9 +555,11 @@ public class LisWorkOperServiceImpl implements LisWorkOperService { private int alarmcondition(LabPat labPat,LabResult labResult){ boolean lb_fcb=false,lb_hasval=false; String csjg=labResult.getCsjg(); - if (csjg == null || csjg.trim().isEmpty()) return 0; + if (csjg == null || csjg.trim().isEmpty()) return -1; String yq=labPat.getYq(); String xmdh=labResult.getXmdh(); + List getXmAlarmdetail=commonUtil.getXmAlarmdetail(yq,xmdh); + if(getXmAlarmdetail==null)return -1; String brxm=""; String brdh=""; String ksdh=labPat.getKsdh(); @@ -558,9 +569,6 @@ public class LisWorkOperServiceImpl implements LisWorkOperService { String ybzt1=commonUtil.getComDictIdByName("ST",ybzt); if (ybzt1 != null && !ybzt1.trim().isEmpty()) ybzt=ybzt1; String zd=labPat.getZd(); - - List getXmAlarmdetail=commonUtil.getXmAlarmdetail(yq,xmdh); - if(getXmAlarmdetail==null)return 0; for(XmAlarmdetail xmAlarmdetail :getXmAlarmdetail){ String samplecondition=xmAlarmdetail.getSamplecondition(); lb_fcb=false;