主业务添加代码

This commit is contained in:
tangw 2025-09-11 18:29:26 +08:00
parent a3f7c1bc27
commit eed868f2fe
6 changed files with 143 additions and 76 deletions

View File

@ -32,11 +32,11 @@ public class LabResult extends BaseEntity {
private String refs;
private String flag;
private String dw;
private String resultFlag;
private String alarmFlag;
private String redoFlag;
private String result_flag;
private String alarm_flag;
private String redo_flag;
private String sqxmdh;
private String redoText;
private String redo_text;
private String bz3;
private String textresult;
private String xmmc;

View File

@ -83,8 +83,8 @@
#{cutoff,jdbcType=VARCHAR}, #{jgbz,jdbcType=CHAR}, #{bz1,jdbcType=VARCHAR}, #{bz2,jdbcType=VARCHAR},
#{yhdh,jdbcType=VARCHAR}, #{instrid,jdbcType=INTEGER}, #{operdt,jdbcType=TIMESTAMP},
#{operna,jdbcType=VARCHAR}, #{refs,jdbcType=VARCHAR}, #{flag,jdbcType=VARCHAR},
#{dw,jdbcType=VARCHAR}, #{resultFlag,jdbcType=CHAR}, #{alarmFlag,jdbcType=CHAR},
#{redoFlag,jdbcType=CHAR}, #{sqxmdh,jdbcType=VARCHAR}, #{redoText,jdbcType=VARCHAR},
#{dw,jdbcType=VARCHAR}, #{result_flag,jdbcType=CHAR}, #{alarm_flag,jdbcType=CHAR},
#{redo_flag,jdbcType=CHAR}, #{sqxmdh,jdbcType=VARCHAR}, #{redo_text,jdbcType=VARCHAR},
#{bz3,jdbcType=VARCHAR}, #{textresult,jdbcType=LONGVARCHAR})
</insert>
<insert id="insertSelective" parameterType="com.czlis.common.core.domain.entity.lis.LabResult">
@ -144,19 +144,19 @@
<if test="dw != null">
dw,
</if>
<if test="resultFlag != null">
<if test="result_flag != null">
result_flag,
</if>
<if test="alarmFlag != null">
<if test="alarm_flag != null">
alarm_flag,
</if>
<if test="redoFlag != null">
<if test="redo_flag != null">
redo_flag,
</if>
<if test="sqxmdh != null">
sqxmdh,
</if>
<if test="redoText != null">
<if test="redo_text != null">
redo_text,
</if>
<if test="bz3 != null">
@ -221,20 +221,20 @@
<if test="dw != null">
#{dw,jdbcType=VARCHAR},
</if>
<if test="resultFlag != null">
#{resultFlag,jdbcType=CHAR},
<if test="result_flag != null">
#{result_flag,jdbcType=CHAR},
</if>
<if test="alarmFlag != null">
#{alarmFlag,jdbcType=CHAR},
<if test="alarm_flag != null">
#{alarm_flag,jdbcType=CHAR},
</if>
<if test="redoFlag != null">
#{redoFlag,jdbcType=CHAR},
<if test="redo_flag != null">
#{redo_flag,jdbcType=CHAR},
</if>
<if test="sqxmdh != null">
#{sqxmdh,jdbcType=VARCHAR},
</if>
<if test="redoText != null">
#{redoText,jdbcType=VARCHAR},
<if test="redo_text != null">
#{redo_text,jdbcType=VARCHAR},
</if>
<if test="bz3 != null">
#{bz3,jdbcType=VARCHAR},
@ -289,20 +289,20 @@
<if test="dw != null">
dw = #{dw,jdbcType=VARCHAR},
</if>
<if test="resultFlag != null">
result_flag = #{resultFlag,jdbcType=CHAR},
<if test="result_flag != null">
result_flag = #{result_flag,jdbcType=CHAR},
</if>
<if test="alarmFlag != null">
alarm_flag = #{alarmFlag,jdbcType=CHAR},
<if test="alarm_flag != null">
alarm_flag = #{alarm_flag,jdbcType=CHAR},
</if>
<if test="redoFlag != null">
redo_flag = #{redoFlag,jdbcType=CHAR},
<if test="redo_flag != null">
redo_flag = #{redo_flag,jdbcType=CHAR},
</if>
<if test="sqxmdh != null">
sqxmdh = #{sqxmdh,jdbcType=VARCHAR},
</if>
<if test="redoText != null">
redo_text = #{redoText,jdbcType=VARCHAR},
<if test="redo_text != null">
redo_text = #{redo_text,jdbcType=VARCHAR},
</if>
<if test="bz3 != null">
bz3 = #{bz3,jdbcType=VARCHAR},
@ -332,11 +332,11 @@
refs = #{refs,jdbcType=VARCHAR},
flag = #{flag,jdbcType=VARCHAR},
dw = #{dw,jdbcType=VARCHAR},
result_flag = #{resultFlag,jdbcType=CHAR},
alarm_flag = #{alarmFlag,jdbcType=CHAR},
redo_flag = #{redoFlag,jdbcType=CHAR},
result_flag = #{result_flag,jdbcType=CHAR},
alarm_flag = #{alarm_flag,jdbcType=CHAR},
redo_flag = #{redo_flag,jdbcType=CHAR},
sqxmdh = #{sqxmdh,jdbcType=VARCHAR},
redo_text = #{redoText,jdbcType=VARCHAR},
redo_text = #{redo_text,jdbcType=VARCHAR},
bz3 = #{bz3,jdbcType=VARCHAR},
textresult = #{textresult,jdbcType=LONGVARCHAR}
where jyrq = #{jyrq}
@ -360,11 +360,11 @@
refs = #{refs,jdbcType=VARCHAR},
flag = #{flag,jdbcType=VARCHAR},
dw = #{dw,jdbcType=VARCHAR},
result_flag = #{resultFlag,jdbcType=CHAR},
alarm_flag = #{alarmFlag,jdbcType=CHAR},
redo_flag = #{redoFlag,jdbcType=CHAR},
result_flag = #{result_flag,jdbcType=CHAR},
alarm_flag = #{alarm_flag,jdbcType=CHAR},
redo_flag = #{redo_flag,jdbcType=CHAR},
sqxmdh = #{sqxmdh,jdbcType=VARCHAR},
redo_text = #{redoText,jdbcType=VARCHAR},
redo_text = #{redo_text,jdbcType=VARCHAR},
bz3 = #{bz3,jdbcType=VARCHAR}
where jyrq = #{jyrq}
and yq = #{yq,jdbcType=CHAR}

View File

@ -24,7 +24,7 @@
</if>
</where>
</select>
<select id="getXmValJgbz" resultType="com.czlis.common.core.domain.entity.lis.XmVal">
<select id="getXmValJgbz" resultType="String">
select TOP 1 jgbz from xm_val
<where>
<if test="yq != null and yq != ''">

View File

@ -62,5 +62,9 @@ public class LisWorkOperController extends BaseController {
public Result unconfirmlog( Date jyrq, String yq, String ybh, String yhdh,String reason){
return lisWorkOperService.unconfirmlog(jyrq, yq, ybh, yhdh,reason);
}
@GetMapping("/reglimit")
public Result reglimit( Date jyrq, String yq, String ybh, String yhdh,String btzr,String phone,String tzfs){
return lisWorkOperService.reglimit(jyrq, yq, ybh, yhdh,btzr,phone,tzfs);
}
}

View File

@ -6,8 +6,10 @@ import com.czlis.common.core.domain.entity.lis.LabPat;
import java.util.Date;
public interface LisWorkOperService {
Result newPatInfo(Date jyrq,String ybh, String sqh, String yq, Long userId);
Result newPatInfo(Date jyrq, String ybh, String sqh, String yq, Long userId);
Result changePat(LabPat labPat);
/**
* 保存所有结果的修正值,涉及:空结果清除,计算项目添加,添加单位,添加申请项目编码,参考值重新计算更新,结果标志重新计算更新,危急值标志计算更新
*
@ -17,6 +19,7 @@ public interface LisWorkOperService {
* @return
*/
Result saveallresult(Date jyrq, String yq, String ybh);
/**
* 结果表补充申请单项目代码
*
@ -25,8 +28,10 @@ public interface LisWorkOperService {
* @param ybh
*/
void setItemSqxmdh(Date jyrq, String yq, String ybh);
/**
* 审核报告
*
* @param jyrq
* @param yq
* @param ybh
@ -37,6 +42,7 @@ public interface LisWorkOperService {
/**
* 解除审核
*
* @param jyrq
* @param yq
* @param ybh
@ -44,7 +50,9 @@ public interface LisWorkOperService {
* @return
*/
Result unconfirm(Date jyrq, String yq, String ybh, String hdys);
Result unconfirmlog(Date jyrq, String yq, String ybh, String hdys,String reason);
Result unconfirmlog(Date jyrq, String yq, String ybh, String hdys, String reason);
/**
* 计算项目参考值结果异常标志
*
@ -53,6 +61,7 @@ public interface LisWorkOperService {
* @param ybh
*/
Result saverefs(Date jyrq, String yq, String ybh);
/**
* 计算项目增加及重新计算
*
@ -61,6 +70,7 @@ public interface LisWorkOperService {
* @param ybh
*/
Result calcsample(Date jyrq, String yq, String ybh);
/**
* 获取常用取值结果标志
*
@ -70,4 +80,18 @@ public interface LisWorkOperService {
* @return
*/
String getitemlmtflag(String yq, String xmdh, String csjg);
/**
* 登记危急值
*
* @param jyrq
* @param yq
* @param ybh
* @param yhdh
* @param btzr
* @param phone
* @param tzfs
* @return
*/
Result reglimit(Date jyrq, String yq, String ybh, String yhdh, String btzr, String phone, String tzfs);
}

View File

@ -238,13 +238,16 @@ public class LisWorkOperServiceImpl implements LisWorkOperService {
labResultList = saveallresult(labPat, labResultList);
boolean wjz = getAlarmFlag(labResultList);
//同步主表危急值标识
String alarmflag = labPat.getAlarmflag();
String alarmflag = labPat.getAlarmflag().trim();
if (("1".equals(alarmflag) && !wjz)) {
labPat.setAlarmflag("1");
commonUtil.updateLabPat(labPat);
} else if (("".equals(alarmflag) || alarmflag == null) && wjz) {
labPat.setAlarmflag("");
commonUtil.updateLabPat(labPat);
} else if (("".equals(alarmflag) || alarmflag == null) && wjz) {
labPat.setAlarmflag("1");
commonUtil.updateLabPat(labPat);
}
if(wjz){
return new Result("4", getAlarmMsg(labResultList),4);
}
}
if (problemId < 4) problemId = 4;
@ -682,11 +685,11 @@ public class LisWorkOperServiceImpl implements LisWorkOperService {
//同步主表危急值标识
String alarmflag = labPat.getAlarmflag();
if (("1".equals(alarmflag) && !wjz)) {
labPat.setAlarmflag("1");
commonUtil.updateLabPat(labPat);
} else if (("".equals(alarmflag) || alarmflag == null) && wjz) {
labPat.setAlarmflag("");
commonUtil.updateLabPat(labPat);
} else if (("".equals(alarmflag.trim()) || alarmflag == null) && wjz) {
labPat.setAlarmflag("1");
commonUtil.updateLabPat(labPat);
}
return new Result("0", "保存成功!");
}
@ -766,7 +769,6 @@ public class LisWorkOperServiceImpl implements LisWorkOperService {
if (!jsxmold.equals(jsxm)) {
jsxmold = jsxm;
String jsgs = xmCalc.getJsgs();
String xmdh = xmCalc.getXmdh();
boolean setjgsg = true;
boolean lb_jsx = false;
Map<String, String> variables = new HashMap<>();
@ -813,7 +815,7 @@ public class LisWorkOperServiceImpl implements LisWorkOperService {
commonUtil.updateLabResult(labResult);
}
} else {
XmInfo xmInfo = commonUtil.getXmInfo(yq, xmdh);
XmInfo xmInfo = commonUtil.getXmInfo(yq, jsxm);
if (LisUtil.isNumber(result)) {
Integer xsws = xmInfo.getXsws();
if (xsws >= 0) result = LisUtil.round(result, xsws);
@ -829,7 +831,7 @@ public class LisWorkOperServiceImpl implements LisWorkOperService {
labResult.setYgzd(xmInfo.getYgzd());
labResult.setYgzq(xmInfo.getYgzq());
labResult.setXmmc(xmInfo.getXmmc());
labResultList.set(labResultList.size(), labResult);
labResultList.add(labResult);
}
}
@ -875,7 +877,7 @@ public class LisWorkOperServiceImpl implements LisWorkOperService {
String yq = labPat.getYq();
String ybh = labPat.getYbh();
String yqdl = commonUtil.getYqdl(yq);
boolean lb_setbj = true, lb_wjz = false, nowjz = false;
boolean lb_setbj = true, nowjz = false;
//危急值标识去除原则 nowjz = true 不能算做危急值
String brxm = labPat.getBrxm();
if (brxm != null) {
@ -918,29 +920,32 @@ public class LisWorkOperServiceImpl implements LisWorkOperService {
//当结果为数值并且与周期诊断无关,计算存储过程保存成功后,只进行危急值判断
if (lb_nummode && lb_setbj && !"Y".equals(ygzd) && !"Y".equals(ygzq)) {
if (nowjz) {
String resultalarmflag1 = labResult.getAlarmFlag();
String resultalarmflag1 = labResult.getAlarm_flag().trim();
if (!"".equals(resultalarmflag1) && resultalarmflag1 != null) {
labResult.setAlarmFlag("");
labResult.setAlarm_flag("");
commonUtil.updateLabResult(labResult);
}
} else {
String xmdh = labResult.getXmdh();
List<XmAlarmdetail> getXmAlarmdetail = xmAlarmdetailList.stream().filter(detail -> detail.getXmdh().equals(xmdh)).collect(Collectors.toList());
int wjz = alarmcondition(labPat, labResult, getXmAlarmdetail);
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);
if (wjz == 1) {//危急值标识特殊判断存在时优先使用特殊结果
String jgbz = labResult.getResult_flag();
if ("".equals(jgbz)||jgbz==null)jgbz="H";
if (!"L".equals(jgbz))jgbz="H";
String resultalarmflag = labResult.getAlarm_flag().trim();
if(!jgbz.equals(resultalarmflag)) {
labResult.setAlarm_flag(jgbz);
commonUtil.updateLabResult(labResult);
} else if (!"".equals(resultalarmflag) && !lb_wjz) {
labResult.setAlarmFlag("");
}
}else if (wjz == 0) {
String jgbz = "";
String resultalarmflag = labResult.getAlarm_flag().trim();
if(!jgbz.equals(resultalarmflag)) {
labResult.setAlarm_flag(jgbz);
commonUtil.updateLabResult(labResult);
}
}
String resultalarmflag1 = labResult.getAlarmFlag();
if (!"".equals(resultalarmflag1) && resultalarmflag1 != null) lb_wjz = true;
}
} else {
String xmdh = labResult.getXmdh();
@ -952,9 +957,9 @@ public class LisWorkOperServiceImpl implements LisWorkOperService {
labResult.setCsjg(csjg);
labResult.setDw(labResult0.getDw());
labResult.setRefs(labResult0.getRefs());
labResult.setResultFlag(labResult0.getResultFlag());
labResult.setResult_flag(labResult0.getResult_flag());
labResult.setJgbz(labResult0.getJgbz());
labResult.setAlarmFlag(labResult0.getAlarmFlag());
labResult.setAlarm_flag(labResult0.getAlarm_flag());
}
}
}
@ -978,10 +983,10 @@ public class LisWorkOperServiceImpl implements LisWorkOperService {
if (csjg == null || csjg.trim().isEmpty()) return labResult;
String csjgnew = LisUtil.getOverNumber(csjg.trim());
boolean lb_nummode = LisUtil.isNumber(csjgnew);
String dw = xmInfo.getDw();
String refs = xmInfo.getDyckz();
//当结果为数值时计算上下限
if (lb_nummode) {
String dw = xmInfo.getDw();
String refs = xmInfo.getDyckz();
Double ckxx = xmInfo.getCkxx();
Double cksx = xmInfo.getCksx();
Double llimit = xmInfo.getLlimit();
@ -1038,7 +1043,6 @@ public class LisWorkOperServiceImpl implements LisWorkOperService {
if (alterxx != null) llimit = alterxx;
if (altersx != null) hlimit = altersx;
}
if (lb_nummode) {
//数值型结果判断
Double csjgnum = Double.valueOf(csjgnew);
if (ckxx != null) if (csjgnum < ckxx) resultflag = "L";
@ -1069,15 +1073,21 @@ public class LisWorkOperServiceImpl implements LisWorkOperService {
//小数保留位数计算
Integer xsws = xmInfo.getXsws();
if (xsws >= 0) csjg = LisUtil.round(csjg, xsws);
labResult.setCsjg(csjg);
labResult.setDw(dw);
labResult.setRefs(refs);
labResult.setResultFlag(resultflag);
labResult.setJgbz(resultflag);
labResult.setAlarmFlag(wjzflag);
commonUtil.updateLabResult(labResult);
}
if(csjg==null)csjg="";
if(dw==null)dw="";
if(refs==null)refs="";
if(resultflag==null)resultflag="";
if(wjzflag==null)wjzflag="";
if(!csjg.equals(labResult.getCsjg())||!dw.equals(labResult.getDw())||!refs.equals(labResult.getRefs())||
!resultflag.equals(labResult.getResult_flag().trim())||!resultflag.equals(labResult.getJgbz().trim())||!wjzflag.equals(labResult.getAlarm_flag().trim())) {
labResult.setCsjg(csjg);
labResult.setDw(dw);
labResult.setRefs(refs);
labResult.setResult_flag(resultflag);
labResult.setJgbz(resultflag);
labResult.setAlarm_flag(wjzflag);
commonUtil.updateLabResult(labResult);
}
return labResult;
}
@ -1272,13 +1282,36 @@ public class LisWorkOperServiceImpl implements LisWorkOperService {
*/
private boolean getAlarmFlag(List<LabResult> labResultList) {
boolean wjz = false;
List<LabResult> labResultList0 = labResultList.stream().filter(xm -> !"".equals(xm.getAlarmFlag()) && xm.getAlarmFlag() != null).collect(Collectors.toList());
List<LabResult> labResultList0 = labResultList.stream().filter(xm -> !"".equals(xm.getAlarm_flag().trim()) && xm.getAlarm_flag() != null).collect(Collectors.toList());
if (labResultList0.size() > 0) {
wjz = true;
}
return wjz;
}
/**
* 获取危急值信息集合
* @param labResultList
* @return
*/
private String getAlarmMsg(List<LabResult> labResultList) {
String wjzmsg = "";
List<LabResult> labResultList0 = labResultList.stream().filter(xm -> !"".equals(xm.getAlarm_flag().trim()) && xm.getAlarm_flag() != null).collect(Collectors.toList());
if (labResultList0.size() > 0) {
for (LabResult labResult : labResultList0) {
String xmmc = labResult.getXmmc();
String cjsg = labResult.getCsjg();
if (!"".equals(cjsg) && cjsg != null) {
cjsg = ",结果:" + cjsg;
} else {
cjsg = "";
}
wjzmsg = wjzmsg + "项目:" + xmmc + cjsg + LisUtil.LINE_SEPARATOR;
}
}
return wjzmsg;
}
/**
* 解除审核原因登记
*
@ -1409,4 +1442,10 @@ public class LisWorkOperServiceImpl implements LisWorkOperService {
comLog.setRzdt(new Date());
commonUtil.insertComLog(comLog);
}
@Override
public Result reglimit( Date jyrq, String yq, String ybh, String yhdh,String btzr,String phone,String tzfs){
log.info("登记危急值{}",tzfs);
return new Result("0", "登记成功");
}
}