|
@@ -14,7 +14,10 @@ import com.diagbot.enums.RedisEnum;
|
|
|
import com.diagbot.enums.RuleTypeEnum;
|
|
|
import com.diagbot.enums.TypeEnum;
|
|
|
import com.diagbot.facade.CommonFacade;
|
|
|
+import com.diagbot.model.entity.PD;
|
|
|
+import com.diagbot.model.entity.PacsNum;
|
|
|
import com.diagbot.model.label.PacsLabel;
|
|
|
+import com.diagbot.rule.AgeRule;
|
|
|
import com.diagbot.rule.CommonRule;
|
|
|
import com.diagbot.rule.GroupRule;
|
|
|
import com.diagbot.rule.LisRule;
|
|
@@ -29,6 +32,7 @@ import com.diagbot.util.StringUtil;
|
|
|
import com.diagbot.vo.RuleVO;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Component;
|
|
|
+
|
|
|
import java.util.Date;
|
|
|
import java.util.List;
|
|
|
|
|
@@ -52,6 +56,8 @@ public class OtherTipProcess {
|
|
|
PacsRule pacsRule;
|
|
|
@Autowired
|
|
|
RedisUtil redisUtil;
|
|
|
+ @Autowired
|
|
|
+ AgeRule ageRule;
|
|
|
|
|
|
/**
|
|
|
* 处理业务——化验
|
|
@@ -106,6 +112,72 @@ public class OtherTipProcess {
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ // TODO 后期删除 辅检数值型匹配
|
|
|
+ List<PacsNum> pacsNumList = pacsLabel.getPacsNumList();
|
|
|
+ for (PacsNum pacsNum : pacsNumList) {
|
|
|
+ if ("心率".equals(pacsNum.getStandName())) {
|
|
|
+ PD pd = pacsNum.getPd();
|
|
|
+ if (pd != null && StringUtil.isNotBlank(pd.getValue())) {
|
|
|
+ double v = Double.parseDouble(pd.getValue());
|
|
|
+ String content = pacsNum.getStandName() + pd.getValue() + pd.getUnit();
|
|
|
+ Double ageNum = wordCrfDTO.getAgeNum();
|
|
|
+ Double min = null, max = null;
|
|
|
+ String suggest = "";
|
|
|
+ if (ageNum < 0.0191) {
|
|
|
+ min = 110D;
|
|
|
+ max = 170D;
|
|
|
+ suggest = "年龄0-6天心率正常值为110-170bpm";
|
|
|
+ } else if (ageNum < 0.16438) {
|
|
|
+ min = 90D;
|
|
|
+ max = 160D;
|
|
|
+ suggest = "年龄7-59天心率正常值为90-160bpm";
|
|
|
+ } else if (ageNum < 2) {
|
|
|
+ min = 90D;
|
|
|
+ max = 150D;
|
|
|
+ suggest = "年龄2-23月心率正常值为90-150bpm";
|
|
|
+ } else if (ageNum < 3) {
|
|
|
+ min = 80D;
|
|
|
+ max = 140D;
|
|
|
+ suggest = "年龄2-3岁心率正常值为80-140bpm";
|
|
|
+ } else if (ageNum < 6) {
|
|
|
+ min = 80D;
|
|
|
+ max = 130D;
|
|
|
+ suggest = "年龄3-5岁心率正常值为80-130bpm";
|
|
|
+ } else if (ageNum < 11) {
|
|
|
+ min = 70D;
|
|
|
+ max = 120D;
|
|
|
+ suggest = "年龄6-10岁心率正常值为70-120bpm";
|
|
|
+ } else if (ageNum < 18) {
|
|
|
+ min = 60D;
|
|
|
+ max = 120D;
|
|
|
+ suggest = "年龄11-17岁心率正常值为60-120bpm";
|
|
|
+ } else if (ageNum <= 150) {
|
|
|
+ min = 60D;
|
|
|
+ max = 110D;
|
|
|
+ suggest = "年龄18-150岁心率正常值为60-110bpm";
|
|
|
+ }
|
|
|
+ int flag = compareValue(min, max, v);
|
|
|
+ if (flag == 0) {
|
|
|
+ String msg = String.format("该患者%s,%s", content, suggest);
|
|
|
+ BillMsg billMsg = new BillMsg();
|
|
|
+ billMsg.setMsg(msg);
|
|
|
+ billMsg.setContent(content);
|
|
|
+ otherList.add(billMsg);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ public int compareValue(Double min, Double max, Double v) {
|
|
|
+ if (min == null || max == null || v == null) {
|
|
|
+ return -1;
|
|
|
+ }
|
|
|
+ if (v >= min && v <= max) {
|
|
|
+ return 1;
|
|
|
+ }
|
|
|
+ return 0;
|
|
|
}
|
|
|
|
|
|
/**
|