From eb46e1c060197987f70ef40274605b71cbe0c98f Mon Sep 17 00:00:00 2001 From: tangw Date: Tue, 2 Sep 2025 18:10:24 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E4=B8=BB=E4=B8=9A=E5=8A=A1=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/czlis/interfaceCommon/utils/CheckResultUtils.java | 2 -- .../com/czlis/liswork/service/impl/LisWorkOperServiceImpl.java | 2 ++ 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lis-interfaceCommon/src/main/java/com/czlis/interfaceCommon/utils/CheckResultUtils.java b/lis-interfaceCommon/src/main/java/com/czlis/interfaceCommon/utils/CheckResultUtils.java index f2325e9..3d0b4c1 100644 --- a/lis-interfaceCommon/src/main/java/com/czlis/interfaceCommon/utils/CheckResultUtils.java +++ b/lis-interfaceCommon/src/main/java/com/czlis/interfaceCommon/utils/CheckResultUtils.java @@ -152,8 +152,6 @@ public class CheckResultUtils { */ public Map chksamplenew(LabPat labPat, List labResultList,int xh){ String yq = labPat.getYq(); - Date jyrq = labPat.getJyrq(); - String ybh = labPat.getYbh(); String bz= labPat.getBz(); Map params = new HashMap<>(); params.put("code", "0"); 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 41b6977..198cb12 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 @@ -228,8 +228,10 @@ public class LisWorkOperServiceImpl implements LisWorkOperService { String alarmflag = labPat.getAlarmflag(); if (("1".equals(alarmflag) && wjz != 1)) { labPat.setAlarmflag("1"); + commonUtil.updateLabPat(labPat); } else if (("".equals(alarmflag) || alarmflag == null) && wjz == 1) { labPat.setAlarmflag(""); + commonUtil.updateLabPat(labPat); } //医学审核条件判断 if(problemId<4)problemId=4; From 59bb8a7b97ebf4dd9ba2cec459d2e5ac7f6c6de9 Mon Sep 17 00:00:00 2001 From: tangw Date: Tue, 2 Sep 2025 18:30:07 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E4=B8=BB=E4=B8=9A=E5=8A=A1=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../utils/CheckResultUtils.java | 233 +++++++++--------- .../service/impl/LisWorkOperServiceImpl.java | 62 ++--- 2 files changed, 153 insertions(+), 142 deletions(-) diff --git a/lis-interfaceCommon/src/main/java/com/czlis/interfaceCommon/utils/CheckResultUtils.java b/lis-interfaceCommon/src/main/java/com/czlis/interfaceCommon/utils/CheckResultUtils.java index 3d0b4c1..63c7855 100644 --- a/lis-interfaceCommon/src/main/java/com/czlis/interfaceCommon/utils/CheckResultUtils.java +++ b/lis-interfaceCommon/src/main/java/com/czlis/interfaceCommon/utils/CheckResultUtils.java @@ -21,6 +21,7 @@ public class CheckResultUtils { LabCheckrulesMapper labCheckrulesMapper; @Autowired CommonUtil commonUtil = new CommonUtil(); + public String chksample(LabPat labPat, List labResultList) { String errmsg = ""; String brdh = labPat.getBrdh(); @@ -88,9 +89,9 @@ public class CheckResultUtils { } } - List labChkList=checkResultMapper.getLabChkList(yq); - for(LabChk labChk:labChkList){ - String jsgs=labChk.getHdnr(); + List labChkList = checkResultMapper.getLabChkList(yq); + for (LabChk labChk : labChkList) { + String jsgs = labChk.getHdnr(); boolean setjgsg = true; Map variables = new HashMap<>(); String[] parameters = CalcUtils.getParameters(jsgs); @@ -114,82 +115,84 @@ public class CheckResultUtils { } } //项目不全,此公式跳过 - if(setjgsg) { + if (setjgsg) { boolean result = CalcUtils.getBooleanFromCalc(jsgs, variables); if (!result) { - errmsg=errmsg+LisUtil.LINE_SEPARATOR+"审核条件: "+ jsgs + " 未通过!"; + errmsg = errmsg + LisUtil.LINE_SEPARATOR + "审核条件: " + jsgs + " 未通过!"; } } } - if(!"".equals(errmsg))errmsg= errmsg +LisUtil.LINE_SEPARATOR+ "请咨询该仪器组长或专业检验师 !"; + if (!"".equals(errmsg)) errmsg = errmsg + LisUtil.LINE_SEPARATOR + "请咨询该仪器组长或专业检验师 !"; return errmsg; } /** * 自动审核时,询问默认失败,填备注默认每次都填 + * * @param labPat * @param labResultList * @return */ public Map autochksamplenew(LabPat labPat, List labResultList) { - Map params=chksamplenew(labPat, labResultList,0); - String code=(String)params.get("code"); - if ("3".equals(code))params.put("code","0"); - if ("5".equals(code))params.put("code","-1"); - if ("1".equals(code))params.put("code","-1"); + Map params = chksamplenew(labPat, labResultList, 0); + String code = (String) params.get("code"); + if ("3".equals(code)) params.put("code", "0"); + if ("5".equals(code)) params.put("code", "-1"); + if ("1".equals(code)) params.put("code", "-1"); return params; } /** * 高级审核,对于重复询问通过xh递归询问 + * * @param labPat * @param labResultList * @param xh * @return */ - public Map chksamplenew(LabPat labPat, List labResultList,int xh){ + public Map chksamplenew(LabPat labPat, List labResultList, int xh) { String yq = labPat.getYq(); - String bz= labPat.getBz(); + String bz = labPat.getBz(); Map params = new HashMap<>(); params.put("code", "0"); - params.put("msg",""); - params.put("bz",bz); - params.put("setbz",false); - params.put("xh",xh); - List labCheckruleslist=labCheckrulesMapper.getLabCheckrules(yq); - if(labCheckruleslist.size()==0)return params; - if(xh>=labCheckruleslist.size())return params; - for (int i = xh; i < labCheckruleslist.size(); i++){ - LabCheckrules labCheckrules=labCheckruleslist.get(i); - String checkrules=labCheckrules.getCheckrules(); - String checktype=labCheckrules.getChecktype(); - String logcontent=labCheckrules.getLogcontent(); - String ruledisplay=labCheckrules.getRuledisplay(); - String errmsg=checkcondition(labPat,labResultList,checkrules,ruledisplay); - if(!"".equals(errmsg)) { - if("0".equals(checktype)) { - errmsg="审核未通过,你是否要强行通过?"+ruledisplay+LisUtil.LINE_SEPARATOR+"审核未通过,你是否要强行通过?"+LisUtil.LINE_SEPARATOR+errmsg; + params.put("msg", ""); + params.put("bz", bz); + params.put("setbz", false); + params.put("xh", xh); + List labCheckruleslist = labCheckrulesMapper.getLabCheckrules(yq); + if (labCheckruleslist.size() == 0) return params; + if (xh >= labCheckruleslist.size()) return params; + for (int i = xh; i < labCheckruleslist.size(); i++) { + LabCheckrules labCheckrules = labCheckruleslist.get(i); + String checkrules = labCheckrules.getCheckrules(); + String checktype = labCheckrules.getChecktype(); + String logcontent = labCheckrules.getLogcontent(); + String ruledisplay = labCheckrules.getRuledisplay(); + String errmsg = checkcondition(labPat, labResultList, checkrules, ruledisplay); + if (!"".equals(errmsg)) { + if ("0".equals(checktype)) { + errmsg = "审核未通过,你是否要强行通过?" + ruledisplay + LisUtil.LINE_SEPARATOR + "审核未通过,你是否要强行通过?" + LisUtil.LINE_SEPARATOR + errmsg; params.put("code", "5"); - params.put("msg",errmsg); - int ruleid0=labCheckrules.getRuleid(); - params.put("xh",i); + params.put("msg", errmsg); + int ruleid0 = labCheckrules.getRuleid(); + params.put("xh", i); return params; - }else if("3".equals(checktype)) { - errmsg="审核未通过"+LisUtil.LINE_SEPARATOR+"设置的组合审核条件:"+errmsg+LisUtil.LINE_SEPARATOR+"审核未通过,不允许审核!"; + } else if ("3".equals(checktype)) { + errmsg = "审核未通过" + LisUtil.LINE_SEPARATOR + "设置的组合审核条件:" + errmsg + LisUtil.LINE_SEPARATOR + "审核未通过,不允许审核!"; params.put("code", "1"); - params.put("msg",errmsg); + params.put("msg", errmsg); return params; - }else if("4".equals(checktype)) { - bz=replacebz(labPat,labResultList,logcontent); + } else if ("4".equals(checktype)) { + bz = replacebz(labPat, labResultList, logcontent); labPat.setBz(bz); params.put("setbz", true); - errmsg="此次审核将产生一个备注信息"+LisUtil.LINE_SEPARATOR+bz; + errmsg = "此次审核将产生一个备注信息" + LisUtil.LINE_SEPARATOR + bz; params.put("code", "3"); - params.put("msg",errmsg); - params.put("bz",bz); + params.put("msg", errmsg); + params.put("bz", bz); } } } @@ -198,19 +201,20 @@ public class CheckResultUtils { /** * 计算公式注入参数执行,返回为真则证明筛选条件成立,需要禁止审核通过! + * * @param labPat * @param labResultList * @param checkrules * @param ruledisplay * @return */ - private String checkcondition(LabPat labPat, List labResultList,String checkrules,String ruledisplay){ - String errmsg=""; - boolean flag=false; - checkrules=checkrules.replace("\"","'"); - if(checkrules.contains("ANY_")){ + private String checkcondition(LabPat labPat, List labResultList, String checkrules, String ruledisplay) { + String errmsg = ""; + boolean flag = false; + checkrules = checkrules.replace("\"", "'"); + if (checkrules.contains("ANY_")) { Map variables = new HashMap<>(); - String[] parameters=CalcUtils.getParameters(checkrules); + String[] parameters = CalcUtils.getParameters(checkrules); for (int i = 0; i < parameters.length; i++) { String itemcode = parameters[i]; switch (itemcode) { @@ -225,21 +229,21 @@ public class CheckResultUtils { errmsg.replace("[AGE]", String.valueOf(age)); break; case "BRLY": - String brly=labPat.getBrly(); - String brlymc= commonUtil.getComDictNameById("PT",brly); - if(!"".equals(brlymc)||brlymc != null) brly=brlymc; + String brly = labPat.getBrly(); + String brlymc = commonUtil.getComDictNameById("PT", brly); + if (!"".equals(brlymc) || brlymc != null) brly = brlymc; errmsg.replace("[BRLY]", brly); break; case "KSDH": - String ksdh=labPat.getKsdh(); - String ksdhmc= commonUtil.getComDictNameById("DP",ksdh); - if(!"".equals(ksdhmc)||ksdhmc != null) ksdh=ksdhmc; + String ksdh = labPat.getKsdh(); + String ksdhmc = commonUtil.getComDictNameById("DP", ksdh); + if (!"".equals(ksdhmc) || ksdhmc != null) ksdh = ksdhmc; errmsg.replace("[KSDH]", ksdh); break; case "YBLX": - String yblx=labPat.getYblx(); - String yblxmc= commonUtil.getComDictNameById("BT",yblx); - if(!"".equals(yblxmc)||yblxmc != null) yblx=yblxmc; + String yblx = labPat.getYblx(); + String yblxmc = commonUtil.getComDictNameById("BT", yblx); + if (!"".equals(yblxmc) || yblxmc != null) yblx = yblxmc; errmsg.replace("[YBLX]", yblx); break; case "BZ": @@ -267,18 +271,18 @@ public class CheckResultUtils { errmsg.replace("[ANY_CRI]", "lab_result.xmdh"); break; default: - String csjg=Optional.ofNullable(labResultList).flatMap(list -> list.stream().filter(result -> result != null && itemcode.equals(result.getXmdh())).map(LabResult::getCsjg).findFirst()).orElse(null); - if(csjg==null)csjg=""; - errmsg.replace("["+itemcode+"]", csjg); + String csjg = Optional.ofNullable(labResultList).flatMap(list -> list.stream().filter(result -> result != null && itemcode.equals(result.getXmdh())).map(LabResult::getCsjg).findFirst()).orElse(null); + if (csjg == null) csjg = ""; + errmsg.replace("[" + itemcode + "]", csjg); } - List labResultList0=commonUtil.labResultMapper.getLabResultWithSql(labPat.getJyrq(),labPat.getYq(),labPat.getYbh(),errmsg); - if(labResultList0.size()>0)flag=true; + List labResultList0 = commonUtil.labResultMapper.getLabResultWithSql(labPat.getJyrq(), labPat.getYq(), labPat.getYbh(), errmsg); + if (labResultList0.size() > 0) flag = true; } - if(flag=true) errmsg = "审核条件: " + ruledisplay + " 未通过!" ; - }else{ + if (flag = true) errmsg = "审核条件: " + ruledisplay + " 未通过!"; + } else { Map variables = new HashMap<>(); - String[] parameters=CalcUtils.getParameters(checkrules); + String[] parameters = CalcUtils.getParameters(checkrules); for (int i = 0; i < parameters.length; i++) { String itemcode = parameters[i]; switch (itemcode) { @@ -293,21 +297,21 @@ public class CheckResultUtils { variables.put(itemcode, String.valueOf(age)); break; case "BRLY": - String brly=labPat.getBrly(); - String brlymc= commonUtil.getComDictNameById("PT",brly); - if(!"".equals(brlymc)||brlymc != null) brly=brlymc; + String brly = labPat.getBrly(); + String brlymc = commonUtil.getComDictNameById("PT", brly); + if (!"".equals(brlymc) || brlymc != null) brly = brlymc; variables.put(itemcode, brly); break; case "KSDH": - String ksdh=labPat.getKsdh(); - String ksdhmc= commonUtil.getComDictNameById("DP",ksdh); - if(!"".equals(ksdhmc)||ksdhmc != null) ksdh=ksdhmc; + String ksdh = labPat.getKsdh(); + String ksdhmc = commonUtil.getComDictNameById("DP", ksdh); + if (!"".equals(ksdhmc) || ksdhmc != null) ksdh = ksdhmc; variables.put(itemcode, ksdh); break; case "YBLX": - String yblx=labPat.getYblx(); - String yblxmc= commonUtil.getComDictNameById("BT",yblx); - if(!"".equals(yblxmc)||yblxmc != null) yblx=yblxmc; + String yblx = labPat.getYblx(); + String yblxmc = commonUtil.getComDictNameById("BT", yblx); + if (!"".equals(yblxmc) || yblxmc != null) yblx = yblxmc; variables.put(itemcode, yblx); break; case "BZ": @@ -317,28 +321,29 @@ public class CheckResultUtils { variables.put(itemcode, labPat.getZd()); break; default: - String csjg=Optional.ofNullable(labResultList).flatMap(list -> list.stream().filter(result -> result != null && itemcode.equals(result.getXmdh())).map(LabResult::getCsjg).findFirst()).orElse(null); - if(csjg==null)csjg=""; + String csjg = Optional.ofNullable(labResultList).flatMap(list -> list.stream().filter(result -> result != null && itemcode.equals(result.getXmdh())).map(LabResult::getCsjg).findFirst()).orElse(null); + if (csjg == null) csjg = ""; variables.put(itemcode, csjg); } } - flag=CalcUtils.getBooleanFromCalc(checkrules, variables); - if(flag=true) errmsg = "审核条件: " + ruledisplay + " 未通过!" ; + flag = CalcUtils.getBooleanFromCalc(checkrules, variables); + if (flag = true) errmsg = "审核条件: " + ruledisplay + " 未通过!"; } return errmsg; } /** * 备注信息公式转换备注内容 + * * @param labPat * @param labResultList * @param logcontent * @return */ - private String replacebz(LabPat labPat, List labResultList,String logcontent){ - String errmsg=logcontent; - String[] parameters=CalcUtils.getParameters(logcontent); + private String replacebz(LabPat labPat, List labResultList, String logcontent) { + String errmsg = logcontent; + String[] parameters = CalcUtils.getParameters(logcontent); for (int i = 0; i < parameters.length; i++) { String itemcode = parameters[i]; switch (itemcode) { @@ -346,28 +351,28 @@ public class CheckResultUtils { String sex = labPat.getBrxb().trim(); if ("1".equals(sex)) sex = "男"; if ("2".equals(sex)) sex = "女"; - errmsg.replace("[SEX]",sex); + errmsg.replace("[SEX]", sex); break; case "AGE": double age = AgeUtils.getDecimalAge(AgeUtils.getBirthDateByAge(labPat.getNl(), labPat.getNldw())); - errmsg.replace("[AGE]",String.valueOf(age)); + errmsg.replace("[AGE]", String.valueOf(age)); break; case "BRLY": - String brly=labPat.getBrly(); - String brlymc= commonUtil.getComDictNameById("PT",brly); - if(!"".equals(brlymc)||brlymc != null) brly=brlymc; + String brly = labPat.getBrly(); + String brlymc = commonUtil.getComDictNameById("PT", brly); + if (!"".equals(brlymc) || brlymc != null) brly = brlymc; errmsg.replace("[BRLY]", brly); break; case "KSDH": - String ksdh=labPat.getKsdh(); - String ksdhmc= commonUtil.getComDictNameById("DP",ksdh); - if(!"".equals(ksdhmc)||ksdhmc != null) ksdh=ksdhmc; + String ksdh = labPat.getKsdh(); + String ksdhmc = commonUtil.getComDictNameById("DP", ksdh); + if (!"".equals(ksdhmc) || ksdhmc != null) ksdh = ksdhmc; errmsg.replace("[KSDH]", ksdh); break; case "YBLX": - String yblx=labPat.getYblx(); - String yblxmc= commonUtil.getComDictNameById("BT",yblx); - if(!"".equals(yblxmc)||yblxmc != null) yblx=yblxmc; + String yblx = labPat.getYblx(); + String yblxmc = commonUtil.getComDictNameById("BT", yblx); + if (!"".equals(yblxmc) || yblxmc != null) yblx = yblxmc; errmsg.replace("[YBLX]", yblx); break; case "BZ": @@ -377,31 +382,31 @@ public class CheckResultUtils { errmsg.replace("[ZD]", labPat.getZd()); break; default: - String csjg=Optional.ofNullable(labResultList).flatMap(list -> list.stream().filter(result -> result != null && itemcode.equals(result.getXmdh())).map(LabResult::getCsjg).findFirst()).orElse(null); - if(csjg==null)csjg=""; - errmsg.replace("["+itemcode+"]", csjg); + String csjg = Optional.ofNullable(labResultList).flatMap(list -> list.stream().filter(result -> result != null && itemcode.equals(result.getXmdh())).map(LabResult::getCsjg).findFirst()).orElse(null); + if (csjg == null) csjg = ""; + errmsg.replace("[" + itemcode + "]", csjg); } } - String bz=labPat.getBz(); - if(errmsg!=null && !"".equals(errmsg)) - if(bz==null||"".equals(bz)) bz=errmsg; - else { - String bz0=String.valueOf(bz.charAt(bz.length() - 1)); - switch (bz0) { - case ",": - case ":": - case ";": - case ".": - case "。": - case ",": - case "、": - case ";": - case ":": - bz=bz+errmsg; - break; - default: - bz=bz+","+errmsg; - }} + String bz = labPat.getBz(); + if (errmsg == null || "".equals(errmsg)) return bz; + if (bz == null || "".equals(bz)) return errmsg; + if (bz.contains(errmsg)) return bz; + String bz0 = String.valueOf(bz.charAt(bz.length() - 1)); + switch (bz0) { + case ",": + case ":": + case ";": + case ".": + case "。": + case ",": + case "、": + case ";": + case ":": + bz = bz + errmsg; + break; + default: + bz = bz + "," + errmsg; + } return bz; } 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 198cb12..e8bf8e1 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 @@ -51,6 +51,7 @@ public class LisWorkOperServiceImpl implements LisWorkOperService { LabReqdetailMapper labReqdetailMapper; @Autowired CheckResultUtils checkResultUtils; + @Override public Result newPatInfo(Date jyrq, String ybh, String sqh, String yq, Long userId) { @@ -220,7 +221,7 @@ public class LisWorkOperServiceImpl implements LisWorkOperService { //2:数据合法性校验 LabPat labPat = commonUtil.getLabPatOne(jyrq, yq, ybh); labPat.setHdys(hdys); - Result result = beforeconfirm(labPat, problemId); + Result result = beforeconfirm(labPat, 2, problemId); if (!"0".equals(result.getCode())) return result; //3:数据完整保存 int wjz = saveallresult(labPat); @@ -234,14 +235,14 @@ public class LisWorkOperServiceImpl implements LisWorkOperService { commonUtil.updateLabPat(labPat); } //医学审核条件判断 - if(problemId<4)problemId=4; - result=chksample(labPat,problemId); + if (problemId < 4) problemId = 4; + result = chksample(labPat, problemId); if ("99".equals(result.getCode())) { labPat.setBz(result.getMsg()); result.setCode("0"); } if (!"0".equals(result.getCode())) return result; - if(problemId<99)problemId=99; + if (problemId < 99) problemId = 99; //4:CA请求业务的处理 //Result result=addCA(jyrq, yq, ybh, hdys); //if("0".equals(result.getCode()))return result; @@ -262,11 +263,11 @@ public class LisWorkOperServiceImpl implements LisWorkOperService { public Result beforeconfirm(Date jyrq, String yq, String ybh) { int problemId = ServletUtils.getParameterToInt("problemId", 0); LabPat labPat = commonUtil.getLabPatOne(jyrq, yq, ybh); - return beforeconfirm(labPat, problemId); + return beforeconfirm(labPat, 2, problemId); } //内部使用 - private Result beforeconfirm(LabPat labPat, Integer problemId) { + private Result beforeconfirm(LabPat labPat, Integer checktype, Integer problemId) { Date jyrq = labPat.getJyrq(); String yq = labPat.getYq(); String ybh = labPat.getYbh(); @@ -274,11 +275,13 @@ public class LisWorkOperServiceImpl implements LisWorkOperService { String jgbz = labPat.getJgbz(); if ("2".equals(jgbz)) return new Result("1", "报告已审核!"); if ("5".equals(jgbz)) return new Result("-1", "已锁定报告禁止审核!"); - if (!"1".equals(jgbz)) { + if (!"1".equals(jgbz) && checktype == 2) { String f_check1 = commonUtil.getComOptValue(yq, "f_check1"); if ("1".equals(f_check1)) return new Result("-1", "审核前必须先初审!"); } - if (checkWorkTime(labPat) == 1) return new Result("-1", "核对医生不允许与检验医生相同!"); + if (checktype == 2) { + if (checkWorkTime(labPat) == 1) return new Result("-1", "核对医生不允许与检验医生相同!"); + } String limit_brly = commonUtil.getHISOPT("limit_brly"); String brly = labPat.getBrly(); if ("1".equals(limit_brly) && (brly == null || "".equals(brly))) @@ -343,14 +346,14 @@ public class LisWorkOperServiceImpl implements LisWorkOperService { LabPat labPat0 = lisWorkOperMapper.checkdublereport(sqh, ybh); if (labPat0 != null) { String yqmc = commonUtil.getYqmc(yq); - String msg = "该申请单已经发过结果了,禁止审核!"+LisUtil.LINE_SEPARATOR+"日期:" + commonUtil.getDateString(jyrq) + ",仪器:" + yqmc + ",样本号:" + ybh; + String msg = "该申请单已经发过结果了,禁止审核!" + LisUtil.LINE_SEPARATOR + "日期:" + commonUtil.getDateString(jyrq) + ",仪器:" + yqmc + ",样本号:" + ybh; return new Result("-1", msg); } } else if ("1".equals(commonUtil.getHISOPT("sp_yqdublereport"))) { LabPat labPat0 = lisWorkOperMapper.checkyqdublereport(sqh, yq, ybh); if (labPat0 != null) { String yqmc = commonUtil.getYqmc(yq); - String msg = "该申请单已经发过结果了,禁止审核!"+LisUtil.LINE_SEPARATOR+"日期:" + commonUtil.getDateString(jyrq) + ",仪器:" + yqmc + ",样本号:" + ybh; + String msg = "该申请单已经发过结果了,禁止审核!" + LisUtil.LINE_SEPARATOR + "日期:" + commonUtil.getDateString(jyrq) + ",仪器:" + yqmc + ",样本号:" + ybh; return new Result("-1", msg); } } @@ -362,7 +365,8 @@ public class LisWorkOperServiceImpl implements LisWorkOperService { if (Userid == null || "".equals(Userid)) { Userid = SecurityUtils.getLoginUser().getUsername(); } - + //初审不需要调用接口 + if (checktype == 1) return new Result("0", "保存成功!"); //调用his报告接口,检查外部接口对审核前的定制需求 SetReport setReport = new SetReport(); setReport.setIp(IpUtils.getIpAddr()); @@ -408,47 +412,49 @@ public class LisWorkOperServiceImpl implements LisWorkOperService { /** * 医学审核条件判断 + * * @param labPat * @param problemId * @return */ - private Result chksample(LabPat labPat,Integer problemId) { - List labResultList = commonUtil.getLabResultList(labPat.getJyrq(),labPat.getYq(),labPat.getYbh()); + private Result chksample(LabPat labPat, Integer problemId) { + List labResultList = commonUtil.getLabResultList(labPat.getJyrq(), labPat.getYq(), labPat.getYbh()); //医学审核条件判断 - if(problemId<3) { + if (problemId < 3) { String checkvalue = checkResultUtils.chksample(labPat, labResultList); if (checkvalue != null && !"".equals(checkvalue)) { return new Result("5", checkvalue, 3); } } - Boolean setbz=false; - String bz=labPat.getBz(); + Boolean setbz = false; + String bz = labPat.getBz(); //医学审核条件判断(新规则),预留99个递归ID - if(problemId<99) { - int xh=0; - if(problemId>4)xh=problemId - 4; - Map chksamplenewvalue = checkResultUtils.chksamplenew(labPat, labResultList,xh); - String chkCode=(String)chksamplenewvalue.get("code"); - String chkMsg=(String)chksamplenewvalue.get("code"); - bz=(String)chksamplenewvalue.get("bz"); + if (problemId < 99) { + int xh = 0; + if (problemId > 4) xh = problemId - 4; + Map chksamplenewvalue = checkResultUtils.chksamplenew(labPat, labResultList, xh); + String chkCode = (String) chksamplenewvalue.get("code"); + String chkMsg = (String) chksamplenewvalue.get("code"); + bz = (String) chksamplenewvalue.get("bz"); labPat.setBz(bz); - xh=(Integer) chksamplenewvalue.get("xh"); - setbz=(Boolean) chksamplenewvalue.get("setbz"); - problemId=4+xh; + xh = (Integer) chksamplenewvalue.get("xh"); + setbz = (Boolean) chksamplenewvalue.get("setbz"); + problemId = 4 + xh; if ("5".equals(chkCode)) { - if (setbz){ + if (setbz) { commonUtil.updateLabPat(labPat); } return new Result("5", chkMsg, problemId); } if (!"0".equals(chkCode)) return new Result(chkCode, chkMsg, problemId); } - if (setbz){ + if (setbz) { commonUtil.updateLabPat(labPat); return new Result("99", bz); } return new Result("0", "保存成功!"); } + /** * 审核后步骤,在审核过程中,必须完成审核前校验通过,结果计算值填充,参考值结果标志危急值标志填写完成,最后使用此方法修改状态 * From 366e1ea1e17d9fedde89d12e74b8f238d5b2ef20 Mon Sep 17 00:00:00 2001 From: tangw Date: Wed, 3 Sep 2025 19:26:35 +0800 Subject: [PATCH 3/3] =?UTF-8?q?=E4=B8=BB=E4=B8=9A=E5=8A=A1=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../interfaceCommon/utils/CalcUtils.java | 29 +++- .../utils/CheckResultUtils.java | 151 +++++++++--------- .../liswork/mapper/LisWorkOperMapper.java | 1 + .../service/impl/LisWorkOperServiceImpl.java | 25 +-- .../resources/mapper/LisWorkOperMapper.xml | 5 +- 5 files changed, 122 insertions(+), 89 deletions(-) diff --git a/lis-interfaceCommon/src/main/java/com/czlis/interfaceCommon/utils/CalcUtils.java b/lis-interfaceCommon/src/main/java/com/czlis/interfaceCommon/utils/CalcUtils.java index ba9e3b5..4f4da43 100644 --- a/lis-interfaceCommon/src/main/java/com/czlis/interfaceCommon/utils/CalcUtils.java +++ b/lis-interfaceCommon/src/main/java/com/czlis/interfaceCommon/utils/CalcUtils.java @@ -20,6 +20,7 @@ public class CalcUtils { public static String getValueFromCalc(String CalcExpression, Map variableMap) { ExpressionParser parser = new SpelExpressionParser(); StandardEvaluationContext context = new StandardEvaluationContext(); + variableMap=replaceAllSpecialKeys(variableMap); for (Map.Entry entry : variableMap.entrySet()) { String str = entry.getValue(); if (isNumber(str)) { @@ -57,13 +58,29 @@ public class CalcUtils { throw new RuntimeException("表达式计算失败: " + expression, e); } } + public static boolean getBooleanFromCalc(String CalcExpression, Map variableMap) { String resultcondition = "if((" + CalcExpression + ") ,1,0)"; String result1 = getValueFromCalc(resultcondition, variableMap); if ("1".equals(result1)) return true; return false; } + /** + * 批量替换Map中所有包含"/"的键(将"/"改为"_") + * @param variableMap 原始变量Map + * @return 处理后的Map + */ + public static Map replaceAllSpecialKeys(Map variableMap) { + Map newMap = new HashMap<>(); + for (Map.Entry entry : variableMap.entrySet()) { + // 将键中所有"/"替换为"_" + String newKey = entry.getKey().replace("/", "_"); + newMap.put(newKey, entry.getValue()); + } + + return newMap; + } /** * 此方法把PB的计算公式转换为SpEL表达式 * @param CalcExpression @@ -74,7 +91,8 @@ public class CalcUtils { // 1. 替换逻辑运算符:and→&&,or→|| String processed = CalcExpression.replaceAll("\\band|AND\\b", "&&").replaceAll("\\bor|OR\\b", "||"); // 2. 替换变量格式:[a] → #a - processed = processed.replaceAll("\\[(\\w+)\\]", "#$1"); + processed = processed.replaceAll("\\[(\\w+)/(\\w+)\\]", "[$1_$2]"); + processed = processed.replaceAll("\\[([^]]+)\\]", "#$1"); // 3. 替换len()函数为length()方法:len(xxx) → xxx.length() processed = replaceLenFunction(processed); //4.like '%aa'或者 like 'aa%'或者 like '%aa%' @@ -318,10 +336,13 @@ public class CalcUtils { // 测试 public static void main(String[] args) { Map variables = new HashMap<>(); - variables.put("RESULT", "4.0"); // 示例值 + variables.put("SEX", "1"); + variables.put("CREA", "30.3"); + variables.put("AGE", "30"); + // 示例值 // variables.put("TP", "6.0"); - String testCalc = "if(([结果]>7.12) ,1,0)"; - testCalc=testCalc.replace("[结果]", "[RESULT]"); + String testCalc = "if([AGE]>18,(if([SEX]=1,(( [CREA] / 88.4)^(-1.234)) * ([AGE]^(-0.179))*175 ,(( [CREA] / 88.4)^(-1.234)) * ([AGE]^(-0.179))*175*0.79)),0)"; + // testCalc=testCalc.replace("[结果]", "[RESULT]"); //System.out.println(getCalc(testCalc)); System.out.println(getValueFromCalc(testCalc,variables)); diff --git a/lis-interfaceCommon/src/main/java/com/czlis/interfaceCommon/utils/CheckResultUtils.java b/lis-interfaceCommon/src/main/java/com/czlis/interfaceCommon/utils/CheckResultUtils.java index 63c7855..ef8f633 100644 --- a/lis-interfaceCommon/src/main/java/com/czlis/interfaceCommon/utils/CheckResultUtils.java +++ b/lis-interfaceCommon/src/main/java/com/czlis/interfaceCommon/utils/CheckResultUtils.java @@ -31,63 +31,66 @@ public class CheckResultUtils { String yq = labPat.getYq(); Date jyrq = labPat.getJyrq(); String ybh = labPat.getYbh(); - List xmInfoList = commonUtil.xmInfoMapper.getXmInfoList(yq); - for (LabResult labResult : labResultList) { - String xmdh = labResult.getXmdh(); - List collect = xmInfoList.stream().filter(xmInfo -> xmInfo.getXmdh().equals(xmdh)).collect(Collectors.toList()); - if (collect.size() > 0) { - XmInfo xmInfo = collect.get(0); - //字典规定的结果值范围约束 - Double xjx = xmInfo.getXjx(); - Double sjx = xmInfo.getSjx(); - if (xjx != null || sjx != null) { - String csjg = LisUtil.getOverNumber(labResult.getCsjg()); - if (LisUtil.isNumber(csjg)) { - Double csjgnum = Double.parseDouble(csjg); - if (xjx != null && csjgnum <= xjx) { - errmsg = errmsg + LisUtil.LINE_SEPARATOR + xmdh + " 结果超出审核条件"; - } else if (sjx != null && csjgnum >= sjx) { - errmsg = errmsg + LisUtil.LINE_SEPARATOR + xmdh + " 结果超出审核条件"; - } - } - } - //字典规定的多少天内结果间隔范围约束 - Integer jgjg = xmInfo.getJgjg(); - Double jgz = xmInfo.getJgz(); - String jgbz = xmInfo.getJgbz(); - if (jgjg != null && jgjg > 0 && jgz != null && jgz > 0) { - String csjg = LisUtil.getOverNumber(labResult.getCsjg()); - - if (LisUtil.isNumber(csjg)) { - Double csjgnum = Double.parseDouble(csjg); - Date ldt_startda = LisUtil.relativeDate(jyrq, -jgjg); - Double lde_up = null; - Double lde_low = null; - if ("2".equals(jgbz)) { - lde_up = csjgnum / (1 - jgz / 100); - lde_low = csjgnum / (1 + jgz / 100); - } else { - lde_up = csjgnum + jgz; - lde_low = csjgnum - jgz; - } - List chkval = checkResultMapper.getChkvaList(brdh, ldt_startda, jyrq, yq, xmdh); - List collect0 = chkval.stream().filter(LabResult0 -> LisUtil.isNumber(LabResult0.getCsjg())).collect(Collectors.toList()); - if (collect0.size() > 0) { - Double finalLde_up = lde_up; - Double finalLde_low = lde_low; - List collect1 = collect0.stream().filter(LabResult1 -> Double.parseDouble(LabResult1.getCsjg()) > finalLde_up && Double.parseDouble(LabResult1.getCsjg()) < finalLde_low).collect(Collectors.toList()); - if (collect0.size() > 0) { - errmsg = errmsg + LisUtil.LINE_SEPARATOR + xmdh + " 结果 (" + labResult.getCsjg() + ") 和 " + - DateFormatUtils.format(collect1.get(0).getJyrq(), "yyyy-MM-dd") + "日" + - collect1.get(0).getYbh() + " 号标本的结果 (" + collect1.get(0).getCsjg() + ") 相比超标"; + List xmInfoList0 = commonUtil.getXmInfoList(yq); + List xmInfoList = xmInfoList0.stream().filter(xmInfo -> xmInfo.getXjx()!=null||xmInfo.getSjx()!=null||xmInfo.getJgjg()!=null||xmInfo.getJgz()!=null||xmInfo.getJgbz()!=null).collect(Collectors.toList()); + if(xmInfoList.size()>0) { + for (LabResult labResult : labResultList) { + String xmdh = labResult.getXmdh(); + List collect = xmInfoList.stream().filter(xmInfo -> xmInfo.getXmdh().equals(xmdh)).collect(Collectors.toList()); + if (collect.size() > 0) { + XmInfo xmInfo = collect.get(0); + //字典规定的结果值范围约束 + Double xjx = xmInfo.getXjx(); + Double sjx = xmInfo.getSjx(); + if (xjx != null || sjx != null) { + String csjg = LisUtil.getOverNumber(labResult.getCsjg()); + if (LisUtil.isNumber(csjg)) { + Double csjgnum = Double.parseDouble(csjg); + if (xjx != null && csjgnum <= xjx) { + errmsg = errmsg + LisUtil.LINE_SEPARATOR + xmdh + " 结果超出审核条件"; + } else if (sjx != null && csjgnum >= sjx) { + errmsg = errmsg + LisUtil.LINE_SEPARATOR + xmdh + " 结果超出审核条件"; } - } } + //字典规定的多少天内结果间隔范围约束 + Integer jgjg = xmInfo.getJgjg(); + Double jgz = xmInfo.getJgz(); + String jgbz = xmInfo.getJgbz(); + if (jgjg != null && jgjg > 0 && jgz != null && jgz > 0) { + String csjg = LisUtil.getOverNumber(labResult.getCsjg()); + + if (LisUtil.isNumber(csjg)) { + Double csjgnum = Double.parseDouble(csjg); + Date ldt_startda = LisUtil.relativeDate(jyrq, -jgjg); + Double lde_up = null; + Double lde_low = null; + if ("2".equals(jgbz)) { + lde_up = csjgnum / (1 - jgz / 100); + lde_low = csjgnum / (1 + jgz / 100); + } else { + lde_up = csjgnum + jgz; + lde_low = csjgnum - jgz; + } + List chkval = checkResultMapper.getChkvaList(brdh, ldt_startda, jyrq, yq, xmdh); + List collect0 = chkval.stream().filter(LabResult0 -> LisUtil.isNumber(LabResult0.getCsjg())).collect(Collectors.toList()); + if (collect0.size() > 0) { + Double finalLde_up = lde_up; + Double finalLde_low = lde_low; + List collect1 = collect0.stream().filter(LabResult1 -> Double.parseDouble(LabResult1.getCsjg()) > finalLde_up && Double.parseDouble(LabResult1.getCsjg()) < finalLde_low).collect(Collectors.toList()); + if (collect0.size() > 0) { + errmsg = errmsg + LisUtil.LINE_SEPARATOR + xmdh + " 结果 (" + labResult.getCsjg() + ") 和 " + + DateFormatUtils.format(collect1.get(0).getJyrq(), "yyyy-MM-dd") + "日" + + collect1.get(0).getYbh() + " 号标本的结果 (" + collect1.get(0).getCsjg() + ") 相比超标"; + } + + } + } + } + } } - } List labChkList = checkResultMapper.getLabChkList(yq); for (LabChk labChk : labChkList) { @@ -99,8 +102,8 @@ public class CheckResultUtils { String itemcode = parameters[i]; if ("SEX".equals(itemcode)) { String sex = labPat.getBrxb().trim(); - if ("1".equals(sex)) sex = "男"; - if ("2".equals(sex)) sex = "女"; + // if ("1".equals(sex)) sex = "男"; + // if ("2".equals(sex)) sex = "女"; variables.put("SEX", sex); } else if ("AGE".equals(itemcode)) { double age = AgeUtils.getDecimalAge(AgeUtils.getBirthDateByAge(labPat.getNl(), labPat.getNldw())); @@ -117,8 +120,8 @@ public class CheckResultUtils { //项目不全,此公式跳过 if (setjgsg) { boolean result = CalcUtils.getBooleanFromCalc(jsgs, variables); - if (!result) { - errmsg = errmsg + LisUtil.LINE_SEPARATOR + "审核条件: " + jsgs + " 未通过!"; + if (result) { + errmsg = errmsg + LisUtil.LINE_SEPARATOR + "审核条件: " + jsgs + " 规则触发,未通过审核!"; } } @@ -164,7 +167,7 @@ public class CheckResultUtils { params.put("xh", xh); List labCheckruleslist = labCheckrulesMapper.getLabCheckrules(yq); if (labCheckruleslist.size() == 0) return params; - if (xh >= labCheckruleslist.size()) return params; + if (xh > labCheckruleslist.size()) return params; for (int i = xh; i < labCheckruleslist.size(); i++) { LabCheckrules labCheckrules = labCheckruleslist.get(i); String checkrules = labCheckrules.getCheckrules(); @@ -174,16 +177,17 @@ public class CheckResultUtils { String errmsg = checkcondition(labPat, labResultList, checkrules, ruledisplay); if (!"".equals(errmsg)) { if ("0".equals(checktype)) { - errmsg = "审核未通过,你是否要强行通过?" + ruledisplay + LisUtil.LINE_SEPARATOR + "审核未通过,你是否要强行通过?" + LisUtil.LINE_SEPARATOR + errmsg; + errmsg = "审核规则触发,未通过审核!,你是否要强行通过?" + ruledisplay + LisUtil.LINE_SEPARATOR + "审核规则触发,未通过审核!,你是否要强行通过?" + LisUtil.LINE_SEPARATOR + errmsg; params.put("code", "5"); params.put("msg", errmsg); int ruleid0 = labCheckrules.getRuleid(); - params.put("xh", i); + params.put("xh", i+1); return params; } else if ("3".equals(checktype)) { - errmsg = "审核未通过" + LisUtil.LINE_SEPARATOR + "设置的组合审核条件:" + errmsg + LisUtil.LINE_SEPARATOR + "审核未通过,不允许审核!"; + errmsg = "审核规则触发,未通过审核!" + LisUtil.LINE_SEPARATOR + "设置的组合审核条件:" + errmsg + LisUtil.LINE_SEPARATOR + "审核规则触发,未通过审核!,不允许审核!"; params.put("code", "1"); params.put("msg", errmsg); + params.put("xh", i+1); return params; } else if ("4".equals(checktype)) { bz = replacebz(labPat, labResultList, logcontent); @@ -193,6 +197,7 @@ public class CheckResultUtils { params.put("code", "3"); params.put("msg", errmsg); params.put("bz", bz); + params.put("xh", i+1); } } } @@ -220,8 +225,8 @@ public class CheckResultUtils { switch (itemcode) { case "SEX": String sex = labPat.getBrxb().trim(); - if ("1".equals(sex)) sex = "男"; - if ("2".equals(sex)) sex = "女"; + // if ("1".equals(sex)) sex = "男"; + // if ("2".equals(sex)) sex = "女"; errmsg.replace("[SEX]", sex); break; case "AGE": @@ -230,14 +235,14 @@ public class CheckResultUtils { break; case "BRLY": String brly = labPat.getBrly(); - String brlymc = commonUtil.getComDictNameById("PT", brly); - if (!"".equals(brlymc) || brlymc != null) brly = brlymc; + // String brlymc = commonUtil.getComDictNameById("PT", brly); + // if (!"".equals(brlymc) || brlymc != null) brly = brlymc; errmsg.replace("[BRLY]", brly); break; case "KSDH": String ksdh = labPat.getKsdh(); - String ksdhmc = commonUtil.getComDictNameById("DP", ksdh); - if (!"".equals(ksdhmc) || ksdhmc != null) ksdh = ksdhmc; + // String ksdhmc = commonUtil.getComDictNameById("DP", ksdh); + // if (!"".equals(ksdhmc) || ksdhmc != null) ksdh = ksdhmc; errmsg.replace("[KSDH]", ksdh); break; case "YBLX": @@ -279,7 +284,7 @@ public class CheckResultUtils { List labResultList0 = commonUtil.labResultMapper.getLabResultWithSql(labPat.getJyrq(), labPat.getYq(), labPat.getYbh(), errmsg); if (labResultList0.size() > 0) flag = true; } - if (flag = true) errmsg = "审核条件: " + ruledisplay + " 未通过!"; + if (flag = true) errmsg = "审核条件: " + ruledisplay + " 规则触发,未通过审核!"; } else { Map variables = new HashMap<>(); String[] parameters = CalcUtils.getParameters(checkrules); @@ -288,8 +293,8 @@ public class CheckResultUtils { switch (itemcode) { case "SEX": String sex = labPat.getBrxb().trim(); - if ("1".equals(sex)) sex = "男"; - if ("2".equals(sex)) sex = "女"; + // if ("1".equals(sex)) sex = "男"; + // if ("2".equals(sex)) sex = "女"; variables.put(itemcode, sex); break; case "AGE": @@ -298,14 +303,14 @@ public class CheckResultUtils { break; case "BRLY": String brly = labPat.getBrly(); - String brlymc = commonUtil.getComDictNameById("PT", brly); - if (!"".equals(brlymc) || brlymc != null) brly = brlymc; + // String brlymc = commonUtil.getComDictNameById("PT", brly); + // if (!"".equals(brlymc) || brlymc != null) brly = brlymc; variables.put(itemcode, brly); break; case "KSDH": String ksdh = labPat.getKsdh(); - String ksdhmc = commonUtil.getComDictNameById("DP", ksdh); - if (!"".equals(ksdhmc) || ksdhmc != null) ksdh = ksdhmc; + // String ksdhmc = commonUtil.getComDictNameById("DP", ksdh); + // if (!"".equals(ksdhmc) || ksdhmc != null) ksdh = ksdhmc; variables.put(itemcode, ksdh); break; case "YBLX": @@ -328,7 +333,7 @@ public class CheckResultUtils { } } flag = CalcUtils.getBooleanFromCalc(checkrules, variables); - if (flag = true) errmsg = "审核条件: " + ruledisplay + " 未通过!"; + if (flag = true) errmsg = "审核条件: " + ruledisplay + " 规则触发,未通过审核!"; } return errmsg; } diff --git a/liswork/src/main/java/com/czlis/liswork/mapper/LisWorkOperMapper.java b/liswork/src/main/java/com/czlis/liswork/mapper/LisWorkOperMapper.java index 9ebc0e6..6c3251b 100644 --- a/liswork/src/main/java/com/czlis/liswork/mapper/LisWorkOperMapper.java +++ b/liswork/src/main/java/com/czlis/liswork/mapper/LisWorkOperMapper.java @@ -20,4 +20,5 @@ public interface LisWorkOperMapper { Integer checkresultwxh(@Param("jyrq") Date jyrq, @Param("yq") String yq, @Param("ybh") String ybh); LabPat checkdublereport(@Param("sqh") String sqh, @Param("ybh") String ybh); LabPat checkyqdublereport(@Param("sqh") String sqh,@Param("yq") String yq, @Param("ybh") String ybh); + Integer getxsws(@Param("yq") String yq, @Param("xmdh") String xmdh); } 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 e8bf8e1..995b18b 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 @@ -235,7 +235,7 @@ public class LisWorkOperServiceImpl implements LisWorkOperService { commonUtil.updateLabPat(labPat); } //医学审核条件判断 - if (problemId < 4) problemId = 4; + if (problemId < 3) problemId = 3; result = chksample(labPat, problemId); if ("99".equals(result.getCode())) { labPat.setBz(result.getMsg()); @@ -400,8 +400,8 @@ public class LisWorkOperServiceImpl implements LisWorkOperService { setReport.setStatus(LisinterfaceNameConstants.REPORTSTART); Result result = lisInterfaceUtil.invokeLisInterface(LisinterfaceNameConstants.SETREPORT, setReport); if (result.getCode().equals("5")) { - if (problemId < 5) { - return new Result(result.getCode(), result.getMsg(), 5); + if (problemId < 3) { + return new Result(result.getCode(), result.getMsg(), 3); } return new Result("0", "保存成功!"); } @@ -420,21 +420,22 @@ public class LisWorkOperServiceImpl implements LisWorkOperService { private Result chksample(LabPat labPat, Integer problemId) { List labResultList = commonUtil.getLabResultList(labPat.getJyrq(), labPat.getYq(), labPat.getYbh()); //医学审核条件判断 - if (problemId < 3) { + if (problemId < 4) { String checkvalue = checkResultUtils.chksample(labPat, labResultList); if (checkvalue != null && !"".equals(checkvalue)) { - return new Result("5", checkvalue, 3); + return new Result("5", checkvalue, 4); } } + Boolean setbz = false; String bz = labPat.getBz(); //医学审核条件判断(新规则),预留99个递归ID + if (problemId < 4) problemId = 4; if (problemId < 99) { - int xh = 0; - if (problemId > 4) xh = problemId - 4; + int xh = problemId - 4; Map chksamplenewvalue = checkResultUtils.chksamplenew(labPat, labResultList, xh); String chkCode = (String) chksamplenewvalue.get("code"); - String chkMsg = (String) chksamplenewvalue.get("code"); + String chkMsg = (String) chksamplenewvalue.get("msg"); bz = (String) chksamplenewvalue.get("bz"); labPat.setBz(bz); xh = (Integer) chksamplenewvalue.get("xh"); @@ -759,8 +760,8 @@ public class LisWorkOperServiceImpl implements LisWorkOperService { String itemcode = parameters[i]; if ("SEX".equals(itemcode)) { String sex = labPat.getBrxb().trim(); - if ("1".equals(sex)) sex = "男"; - if ("2".equals(sex)) sex = "女"; + // if ("1".equals(sex)) sex = "男"; + // if ("2".equals(sex)) sex = "女"; variables.put("SEX", sex); } else if ("AGE".equals(itemcode)) { double age = AgeUtils.getDecimalAge(AgeUtils.getBirthDateByAge(labPat.getNl(), labPat.getNldw())); @@ -777,6 +778,10 @@ public class LisWorkOperServiceImpl implements LisWorkOperService { if (setjgsg) { String result = CalcUtils.getValueFromCalc(jsgs, variables); if (result != null && !result.trim().isEmpty()) { + if(LisUtil.isNumber(result)) { + Integer xsws =lisWorkOperMapper.getxsws(yq,xmdh); + if (xsws >= 0) result = LisUtil.round(result, xsws); + } //插入结果值 LabResult labResult = commonUtil.getLabResult(jyrq, yq, ybh, xmdh); if (labResult == null) { diff --git a/liswork/src/main/resources/mapper/LisWorkOperMapper.xml b/liswork/src/main/resources/mapper/LisWorkOperMapper.xml index 0de90a7..2d3246a 100644 --- a/liswork/src/main/resources/mapper/LisWorkOperMapper.xml +++ b/liswork/src/main/resources/mapper/LisWorkOperMapper.xml @@ -79,6 +79,7 @@ and lab_pat.brdh = #{brxm} - - +