主业务添加代码

This commit is contained in:
tangw 2025-08-18 19:12:19 +08:00
parent 7aa126dbe5
commit 47c6f998af
4 changed files with 68 additions and 50 deletions

View File

@ -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);
}

View File

@ -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<XmInfo> getXmInfoList(String yq) {return xmInfoMapper.getXmInfoList(yq);}

View File

@ -44,6 +44,13 @@
and ybh = #{ybh,jdbcType=VARCHAR}
and xmdh = #{xmdh,jdbcType=VARCHAR}
</delete>
<delete id="delNullLabResult" >
delete from lab_result
where jyrq = #{jyrq}
and yq = #{yq,jdbcType=CHAR}
and ybh = #{ybh,jdbcType=VARCHAR}
and (rtrim(csjg) ='' or csjg is null)
</delete>
<insert id="insertLabResult" parameterType="com.czlis.common.core.domain.entity.lis.LabResult">
insert into lab_result (jyrq, yq, ybh,
xmdh, wyh, csjg, od,

View File

@ -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<LabResult> 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<String, Object> 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<XmAlarmdetail> 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<XmAlarmdetail> getXmAlarmdetail=commonUtil.getXmAlarmdetail(yq,xmdh);
if(getXmAlarmdetail==null)return 0;
for(XmAlarmdetail xmAlarmdetail :getXmAlarmdetail){
String samplecondition=xmAlarmdetail.getSamplecondition();
lb_fcb=false;