主业务添加代码

This commit is contained in:
tangw 2025-09-03 19:26:35 +08:00
parent 59bb8a7b97
commit 366e1ea1e1
5 changed files with 122 additions and 89 deletions

View File

@ -20,6 +20,7 @@ public class CalcUtils {
public static String getValueFromCalc(String CalcExpression, Map<String, String> variableMap) { public static String getValueFromCalc(String CalcExpression, Map<String, String> variableMap) {
ExpressionParser parser = new SpelExpressionParser(); ExpressionParser parser = new SpelExpressionParser();
StandardEvaluationContext context = new StandardEvaluationContext(); StandardEvaluationContext context = new StandardEvaluationContext();
variableMap=replaceAllSpecialKeys(variableMap);
for (Map.Entry<String, String> entry : variableMap.entrySet()) { for (Map.Entry<String, String> entry : variableMap.entrySet()) {
String str = entry.getValue(); String str = entry.getValue();
if (isNumber(str)) { if (isNumber(str)) {
@ -57,13 +58,29 @@ public class CalcUtils {
throw new RuntimeException("表达式计算失败: " + expression, e); throw new RuntimeException("表达式计算失败: " + expression, e);
} }
} }
public static boolean getBooleanFromCalc(String CalcExpression, Map<String, String> variableMap) { public static boolean getBooleanFromCalc(String CalcExpression, Map<String, String> variableMap) {
String resultcondition = "if((" + CalcExpression + ") ,1,0)"; String resultcondition = "if((" + CalcExpression + ") ,1,0)";
String result1 = getValueFromCalc(resultcondition, variableMap); String result1 = getValueFromCalc(resultcondition, variableMap);
if ("1".equals(result1)) return true; if ("1".equals(result1)) return true;
return false; return false;
} }
/**
* 批量替换Map中所有包含"/"的键(将"/"改为"_")
* @param variableMap 原始变量Map
* @return 处理后的Map
*/
public static Map<String, String> replaceAllSpecialKeys(Map<String, String> variableMap) {
Map<String, String> newMap = new HashMap<>();
for (Map.Entry<String, String> entry : variableMap.entrySet()) {
// 将键中所有"/"替换为"_"
String newKey = entry.getKey().replace("/", "_");
newMap.put(newKey, entry.getValue());
}
return newMap;
}
/** /**
* 此方法把PB的计算公式转换为SpEL表达式 * 此方法把PB的计算公式转换为SpEL表达式
* @param CalcExpression * @param CalcExpression
@ -74,7 +91,8 @@ public class CalcUtils {
// 1. 替换逻辑运算符:and→&&,or→|| // 1. 替换逻辑运算符:and→&&,or→||
String processed = CalcExpression.replaceAll("\\band|AND\\b", "&&").replaceAll("\\bor|OR\\b", "||"); String processed = CalcExpression.replaceAll("\\band|AND\\b", "&&").replaceAll("\\bor|OR\\b", "||");
// 2. 替换变量格式:[a] → #a // 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() // 3. 替换len()函数为length()方法:len(xxx) → xxx.length()
processed = replaceLenFunction(processed); processed = replaceLenFunction(processed);
//4.like '%aa'或者 like 'aa%'或者 like '%aa%' //4.like '%aa'或者 like 'aa%'或者 like '%aa%'
@ -318,10 +336,13 @@ public class CalcUtils {
// 测试 // 测试
public static void main(String[] args) { public static void main(String[] args) {
Map<String, String> variables = new HashMap<>(); Map<String, String> 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"); // variables.put("TP", "6.0");
String testCalc = "if(([结果]>7.12) ,1,0)"; 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]"); // testCalc=testCalc.replace("[结果]", "[RESULT]");
//System.out.println(getCalc(testCalc)); //System.out.println(getCalc(testCalc));
System.out.println(getValueFromCalc(testCalc,variables)); System.out.println(getValueFromCalc(testCalc,variables));

View File

@ -31,63 +31,66 @@ public class CheckResultUtils {
String yq = labPat.getYq(); String yq = labPat.getYq();
Date jyrq = labPat.getJyrq(); Date jyrq = labPat.getJyrq();
String ybh = labPat.getYbh(); String ybh = labPat.getYbh();
List<XmInfo> xmInfoList = commonUtil.xmInfoMapper.getXmInfoList(yq); List<XmInfo> xmInfoList0 = commonUtil.getXmInfoList(yq);
for (LabResult labResult : labResultList) { List<XmInfo> xmInfoList = xmInfoList0.stream().filter(xmInfo -> xmInfo.getXjx()!=null||xmInfo.getSjx()!=null||xmInfo.getJgjg()!=null||xmInfo.getJgz()!=null||xmInfo.getJgbz()!=null).collect(Collectors.toList());
String xmdh = labResult.getXmdh(); if(xmInfoList.size()>0) {
List<XmInfo> collect = xmInfoList.stream().filter(xmInfo -> xmInfo.getXmdh().equals(xmdh)).collect(Collectors.toList()); for (LabResult labResult : labResultList) {
if (collect.size() > 0) { String xmdh = labResult.getXmdh();
XmInfo xmInfo = collect.get(0); List<XmInfo> collect = xmInfoList.stream().filter(xmInfo -> xmInfo.getXmdh().equals(xmdh)).collect(Collectors.toList());
//字典规定的结果值范围约束 if (collect.size() > 0) {
Double xjx = xmInfo.getXjx(); XmInfo xmInfo = collect.get(0);
Double sjx = xmInfo.getSjx(); //字典规定的结果值范围约束
if (xjx != null || sjx != null) { Double xjx = xmInfo.getXjx();
String csjg = LisUtil.getOverNumber(labResult.getCsjg()); Double sjx = xmInfo.getSjx();
if (LisUtil.isNumber(csjg)) { if (xjx != null || sjx != null) {
Double csjgnum = Double.parseDouble(csjg); String csjg = LisUtil.getOverNumber(labResult.getCsjg());
if (xjx != null && csjgnum <= xjx) { if (LisUtil.isNumber(csjg)) {
errmsg = errmsg + LisUtil.LINE_SEPARATOR + xmdh + " 结果超出审核条件"; Double csjgnum = Double.parseDouble(csjg);
} else if (sjx != null && csjgnum >= sjx) { if (xjx != null && csjgnum <= xjx) {
errmsg = errmsg + LisUtil.LINE_SEPARATOR + xmdh + " 结果超出审核条件"; 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<LabResult> chkval = checkResultMapper.getChkvaList(brdh, ldt_startda, jyrq, yq, xmdh);
List<LabResult> 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<LabResult> 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() + ") 相比超标";
} }
} }
} }
//字典规定的多少天内结果间隔范围约束
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<LabResult> chkval = checkResultMapper.getChkvaList(brdh, ldt_startda, jyrq, yq, xmdh);
List<LabResult> 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<LabResult> 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<LabChk> labChkList = checkResultMapper.getLabChkList(yq); List<LabChk> labChkList = checkResultMapper.getLabChkList(yq);
for (LabChk labChk : labChkList) { for (LabChk labChk : labChkList) {
@ -99,8 +102,8 @@ public class CheckResultUtils {
String itemcode = parameters[i]; String itemcode = parameters[i];
if ("SEX".equals(itemcode)) { if ("SEX".equals(itemcode)) {
String sex = labPat.getBrxb().trim(); String sex = labPat.getBrxb().trim();
if ("1".equals(sex)) sex = "男"; // if ("1".equals(sex)) sex = "男";
if ("2".equals(sex)) sex = "女"; // if ("2".equals(sex)) sex = "女";
variables.put("SEX", sex); variables.put("SEX", sex);
} else if ("AGE".equals(itemcode)) { } else if ("AGE".equals(itemcode)) {
double age = AgeUtils.getDecimalAge(AgeUtils.getBirthDateByAge(labPat.getNl(), labPat.getNldw())); double age = AgeUtils.getDecimalAge(AgeUtils.getBirthDateByAge(labPat.getNl(), labPat.getNldw()));
@ -117,8 +120,8 @@ public class CheckResultUtils {
//项目不全,此公式跳过 //项目不全,此公式跳过
if (setjgsg) { if (setjgsg) {
boolean result = CalcUtils.getBooleanFromCalc(jsgs, variables); boolean result = CalcUtils.getBooleanFromCalc(jsgs, variables);
if (!result) { if (result) {
errmsg = errmsg + LisUtil.LINE_SEPARATOR + "审核条件: " + jsgs + " 未通过!"; errmsg = errmsg + LisUtil.LINE_SEPARATOR + "审核条件: " + jsgs + " 规则触发,未通过审核!";
} }
} }
@ -164,7 +167,7 @@ public class CheckResultUtils {
params.put("xh", xh); params.put("xh", xh);
List<LabCheckrules> labCheckruleslist = labCheckrulesMapper.getLabCheckrules(yq); List<LabCheckrules> labCheckruleslist = labCheckrulesMapper.getLabCheckrules(yq);
if (labCheckruleslist.size() == 0) return params; 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++) { for (int i = xh; i < labCheckruleslist.size(); i++) {
LabCheckrules labCheckrules = labCheckruleslist.get(i); LabCheckrules labCheckrules = labCheckruleslist.get(i);
String checkrules = labCheckrules.getCheckrules(); String checkrules = labCheckrules.getCheckrules();
@ -174,16 +177,17 @@ public class CheckResultUtils {
String errmsg = checkcondition(labPat, labResultList, checkrules, ruledisplay); String errmsg = checkcondition(labPat, labResultList, checkrules, ruledisplay);
if (!"".equals(errmsg)) { if (!"".equals(errmsg)) {
if ("0".equals(checktype)) { 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("code", "5");
params.put("msg", errmsg); params.put("msg", errmsg);
int ruleid0 = labCheckrules.getRuleid(); int ruleid0 = labCheckrules.getRuleid();
params.put("xh", i); params.put("xh", i+1);
return params; return params;
} else if ("3".equals(checktype)) { } 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("code", "1");
params.put("msg", errmsg); params.put("msg", errmsg);
params.put("xh", i+1);
return params; return params;
} else if ("4".equals(checktype)) { } else if ("4".equals(checktype)) {
bz = replacebz(labPat, labResultList, logcontent); bz = replacebz(labPat, labResultList, logcontent);
@ -193,6 +197,7 @@ public class CheckResultUtils {
params.put("code", "3"); params.put("code", "3");
params.put("msg", errmsg); params.put("msg", errmsg);
params.put("bz", bz); params.put("bz", bz);
params.put("xh", i+1);
} }
} }
} }
@ -220,8 +225,8 @@ public class CheckResultUtils {
switch (itemcode) { switch (itemcode) {
case "SEX": case "SEX":
String sex = labPat.getBrxb().trim(); String sex = labPat.getBrxb().trim();
if ("1".equals(sex)) sex = "男"; // if ("1".equals(sex)) sex = "男";
if ("2".equals(sex)) sex = "女"; // if ("2".equals(sex)) sex = "女";
errmsg.replace("[SEX]", sex); errmsg.replace("[SEX]", sex);
break; break;
case "AGE": case "AGE":
@ -230,14 +235,14 @@ public class CheckResultUtils {
break; break;
case "BRLY": case "BRLY":
String brly = labPat.getBrly(); String brly = labPat.getBrly();
String brlymc = commonUtil.getComDictNameById("PT", brly); // String brlymc = commonUtil.getComDictNameById("PT", brly);
if (!"".equals(brlymc) || brlymc != null) brly = brlymc; // if (!"".equals(brlymc) || brlymc != null) brly = brlymc;
errmsg.replace("[BRLY]", brly); errmsg.replace("[BRLY]", brly);
break; break;
case "KSDH": case "KSDH":
String ksdh = labPat.getKsdh(); String ksdh = labPat.getKsdh();
String ksdhmc = commonUtil.getComDictNameById("DP", ksdh); // String ksdhmc = commonUtil.getComDictNameById("DP", ksdh);
if (!"".equals(ksdhmc) || ksdhmc != null) ksdh = ksdhmc; // if (!"".equals(ksdhmc) || ksdhmc != null) ksdh = ksdhmc;
errmsg.replace("[KSDH]", ksdh); errmsg.replace("[KSDH]", ksdh);
break; break;
case "YBLX": case "YBLX":
@ -279,7 +284,7 @@ public class CheckResultUtils {
List<LabResult> labResultList0 = commonUtil.labResultMapper.getLabResultWithSql(labPat.getJyrq(), labPat.getYq(), labPat.getYbh(), errmsg); List<LabResult> labResultList0 = commonUtil.labResultMapper.getLabResultWithSql(labPat.getJyrq(), labPat.getYq(), labPat.getYbh(), errmsg);
if (labResultList0.size() > 0) flag = true; if (labResultList0.size() > 0) flag = true;
} }
if (flag = true) errmsg = "审核条件: " + ruledisplay + " 未通过!"; if (flag = true) errmsg = "审核条件: " + ruledisplay + " 规则触发,未通过审核!";
} else { } else {
Map<String, String> variables = new HashMap<>(); Map<String, String> variables = new HashMap<>();
String[] parameters = CalcUtils.getParameters(checkrules); String[] parameters = CalcUtils.getParameters(checkrules);
@ -288,8 +293,8 @@ public class CheckResultUtils {
switch (itemcode) { switch (itemcode) {
case "SEX": case "SEX":
String sex = labPat.getBrxb().trim(); String sex = labPat.getBrxb().trim();
if ("1".equals(sex)) sex = "男"; // if ("1".equals(sex)) sex = "男";
if ("2".equals(sex)) sex = "女"; // if ("2".equals(sex)) sex = "女";
variables.put(itemcode, sex); variables.put(itemcode, sex);
break; break;
case "AGE": case "AGE":
@ -298,14 +303,14 @@ public class CheckResultUtils {
break; break;
case "BRLY": case "BRLY":
String brly = labPat.getBrly(); String brly = labPat.getBrly();
String brlymc = commonUtil.getComDictNameById("PT", brly); // String brlymc = commonUtil.getComDictNameById("PT", brly);
if (!"".equals(brlymc) || brlymc != null) brly = brlymc; // if (!"".equals(brlymc) || brlymc != null) brly = brlymc;
variables.put(itemcode, brly); variables.put(itemcode, brly);
break; break;
case "KSDH": case "KSDH":
String ksdh = labPat.getKsdh(); String ksdh = labPat.getKsdh();
String ksdhmc = commonUtil.getComDictNameById("DP", ksdh); // String ksdhmc = commonUtil.getComDictNameById("DP", ksdh);
if (!"".equals(ksdhmc) || ksdhmc != null) ksdh = ksdhmc; // if (!"".equals(ksdhmc) || ksdhmc != null) ksdh = ksdhmc;
variables.put(itemcode, ksdh); variables.put(itemcode, ksdh);
break; break;
case "YBLX": case "YBLX":
@ -328,7 +333,7 @@ public class CheckResultUtils {
} }
} }
flag = CalcUtils.getBooleanFromCalc(checkrules, variables); flag = CalcUtils.getBooleanFromCalc(checkrules, variables);
if (flag = true) errmsg = "审核条件: " + ruledisplay + " 未通过!"; if (flag = true) errmsg = "审核条件: " + ruledisplay + " 规则触发,未通过审核!";
} }
return errmsg; return errmsg;
} }

View File

@ -20,4 +20,5 @@ public interface LisWorkOperMapper {
Integer checkresultwxh(@Param("jyrq") Date jyrq, @Param("yq") String yq, @Param("ybh") String ybh); 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 checkdublereport(@Param("sqh") String sqh, @Param("ybh") String ybh);
LabPat checkyqdublereport(@Param("sqh") String sqh,@Param("yq") String yq, @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);
} }

View File

@ -235,7 +235,7 @@ public class LisWorkOperServiceImpl implements LisWorkOperService {
commonUtil.updateLabPat(labPat); commonUtil.updateLabPat(labPat);
} }
//医学审核条件判断 //医学审核条件判断
if (problemId < 4) problemId = 4; if (problemId < 3) problemId = 3;
result = chksample(labPat, problemId); result = chksample(labPat, problemId);
if ("99".equals(result.getCode())) { if ("99".equals(result.getCode())) {
labPat.setBz(result.getMsg()); labPat.setBz(result.getMsg());
@ -400,8 +400,8 @@ public class LisWorkOperServiceImpl implements LisWorkOperService {
setReport.setStatus(LisinterfaceNameConstants.REPORTSTART); setReport.setStatus(LisinterfaceNameConstants.REPORTSTART);
Result result = lisInterfaceUtil.invokeLisInterface(LisinterfaceNameConstants.SETREPORT, setReport); Result result = lisInterfaceUtil.invokeLisInterface(LisinterfaceNameConstants.SETREPORT, setReport);
if (result.getCode().equals("5")) { if (result.getCode().equals("5")) {
if (problemId < 5) { if (problemId < 3) {
return new Result(result.getCode(), result.getMsg(), 5); return new Result(result.getCode(), result.getMsg(), 3);
} }
return new Result("0", "保存成功!"); return new Result("0", "保存成功!");
} }
@ -420,21 +420,22 @@ public class LisWorkOperServiceImpl implements LisWorkOperService {
private Result chksample(LabPat labPat, Integer problemId) { private Result chksample(LabPat labPat, Integer problemId) {
List<LabResult> labResultList = commonUtil.getLabResultList(labPat.getJyrq(), labPat.getYq(), labPat.getYbh()); List<LabResult> labResultList = commonUtil.getLabResultList(labPat.getJyrq(), labPat.getYq(), labPat.getYbh());
//医学审核条件判断 //医学审核条件判断
if (problemId < 3) { if (problemId < 4) {
String checkvalue = checkResultUtils.chksample(labPat, labResultList); String checkvalue = checkResultUtils.chksample(labPat, labResultList);
if (checkvalue != null && !"".equals(checkvalue)) { if (checkvalue != null && !"".equals(checkvalue)) {
return new Result("5", checkvalue, 3); return new Result("5", checkvalue, 4);
} }
} }
Boolean setbz = false; Boolean setbz = false;
String bz = labPat.getBz(); String bz = labPat.getBz();
//医学审核条件判断(新规则),预留99个递归ID //医学审核条件判断(新规则),预留99个递归ID
if (problemId < 4) problemId = 4;
if (problemId < 99) { if (problemId < 99) {
int xh = 0; int xh = problemId - 4;
if (problemId > 4) xh = problemId - 4;
Map<String, Object> chksamplenewvalue = checkResultUtils.chksamplenew(labPat, labResultList, xh); Map<String, Object> chksamplenewvalue = checkResultUtils.chksamplenew(labPat, labResultList, xh);
String chkCode = (String) chksamplenewvalue.get("code"); String chkCode = (String) chksamplenewvalue.get("code");
String chkMsg = (String) chksamplenewvalue.get("code"); String chkMsg = (String) chksamplenewvalue.get("msg");
bz = (String) chksamplenewvalue.get("bz"); bz = (String) chksamplenewvalue.get("bz");
labPat.setBz(bz); labPat.setBz(bz);
xh = (Integer) chksamplenewvalue.get("xh"); xh = (Integer) chksamplenewvalue.get("xh");
@ -759,8 +760,8 @@ public class LisWorkOperServiceImpl implements LisWorkOperService {
String itemcode = parameters[i]; String itemcode = parameters[i];
if ("SEX".equals(itemcode)) { if ("SEX".equals(itemcode)) {
String sex = labPat.getBrxb().trim(); String sex = labPat.getBrxb().trim();
if ("1".equals(sex)) sex = "男"; // if ("1".equals(sex)) sex = "男";
if ("2".equals(sex)) sex = "女"; // if ("2".equals(sex)) sex = "女";
variables.put("SEX", sex); variables.put("SEX", sex);
} else if ("AGE".equals(itemcode)) { } else if ("AGE".equals(itemcode)) {
double age = AgeUtils.getDecimalAge(AgeUtils.getBirthDateByAge(labPat.getNl(), labPat.getNldw())); double age = AgeUtils.getDecimalAge(AgeUtils.getBirthDateByAge(labPat.getNl(), labPat.getNldw()));
@ -777,6 +778,10 @@ public class LisWorkOperServiceImpl implements LisWorkOperService {
if (setjgsg) { if (setjgsg) {
String result = CalcUtils.getValueFromCalc(jsgs, variables); String result = CalcUtils.getValueFromCalc(jsgs, variables);
if (result != null && !result.trim().isEmpty()) { 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); LabResult labResult = commonUtil.getLabResult(jyrq, yq, ybh, xmdh);
if (labResult == null) { if (labResult == null) {

View File

@ -79,6 +79,7 @@
<if test="brxm != null and brxm != ''">and lab_pat.brdh = #{brxm}</if> <if test="brxm != null and brxm != ''">and lab_pat.brdh = #{brxm}</if>
</where> </where>
</select> </select>
<select id="getxsws" resultType="Integer">
select xsws from xm_info where yq=#{yq} and xmdh=#{xmdh}
</select>
</mapper> </mapper>