zhoutg 4 éve
szülő
commit
75df7c31c8

+ 5 - 2
src/main/java/com/diagbot/aggregate/IndicationAggregate.java

@@ -6,6 +6,7 @@ import com.diagbot.facade.BillFacade;
 import com.diagbot.facade.CriticalFacade;
 import com.diagbot.facade.HighRiskFacade;
 import com.diagbot.util.CoreUtil;
+import com.diagbot.util.StringUtil;
 import com.diagbot.vo.IndicationPushVO;
 import io.github.lvyahui8.spring.annotation.DataConsumer;
 import io.github.lvyahui8.spring.annotation.DataProvider;
@@ -75,8 +76,10 @@ public class IndicationAggregate {
                 billFacade.billFac(indicationPushVO, wordCrfDTO, res);
                 CoreUtil.getDebugStr(start, "开单规则耗时", res.getDebug());
             } catch (Exception e) {
-                log.error("【开单规则出错】" + e.getMessage());
-                CoreUtil.getDebugStr("【开单规则出错】", e.getMessage(), res.getDebug());
+                String errMsg = StringUtil.isNotBlank(indicationPushVO.getIdNum()) ?
+                        "行号【" + indicationPushVO.getIdNum() + "】" : "";
+                log.error("【开单规则出错】" + errMsg + e.getMessage());
+                CoreUtil.getDebugStr("【开单规则出错】", errMsg + e.getMessage(), res.getDebug());
             }
             return res;
         }

+ 31 - 31
src/main/java/com/diagbot/facade/TestFacade.java

@@ -53,7 +53,7 @@ public class TestFacade {
             indicationPushVO.setIdNum(bean.getIdNum());
             if (StringUtil.isNotBlank(bean.getOrderType())) {
                 switch (bean.getOrderType()) {
-                    case "实验室检查" : // 细项
+                    case "实验室检查名称" : // 细项
                         List<Lis> lisDetailOrder = new ArrayList<>();
                         Lis lisDetailBean = new Lis();
                         lisDetailBean.setName(bean.getStandName());
@@ -62,7 +62,7 @@ public class TestFacade {
                         lisDetailOrder.add(lisDetailBean);
                         indicationPushVO.setLisOrder(lisDetailOrder);
                         break;
-                    case "辅助检查" :
+                    case "辅助检查名称" :
                         List<Pacs> pacsOrder = new ArrayList<>();
                         Pacs pacsBean = new Pacs();
                         pacsBean.setName(bean.getStandName());
@@ -70,7 +70,7 @@ public class TestFacade {
                         pacsOrder.add(pacsBean);
                         indicationPushVO.setPacsOrder(pacsOrder);
                         break;
-                    case "实验室检查套餐" :
+                    case "实验室检查套餐" :
                         List<Lis> lisOrder = new ArrayList<>();
                         Lis lisBean = new Lis();
                         lisBean.setName(bean.getStandName());
@@ -78,7 +78,7 @@ public class TestFacade {
                         lisOrder.add(lisBean);
                         indicationPushVO.setLisOrder(lisOrder);
                         break;
-                    case "手术和操作" :
+                    case "医保手术和操作名称" :
                         List<Item> operationOrder = new ArrayList<>();
                         Item operationItem = new Item();
                         operationItem.setName(bean.getStandName());
@@ -100,7 +100,7 @@ public class TestFacade {
                     //         indicationPushVO.setSex(2);
                     //     }
                     //     break;
-                    // case "2" : // 化验, 示例:血小板计数,<,50,*10~9L
+                    // case "2" : // 化验, 示例:血小板计数,<,50,10^9/L
                     //     String lisStr = bean.getNeoName();
                     //     String[] lisArr = lisStr.split(",");
                     //
@@ -129,32 +129,32 @@ public class TestFacade {
                     //     symptom.append(bean.getNeoName()).append("。");
                     //     indicationPushVO.setSymptom(symptom.toString());
                     //     break;
-                    case "12": // 体征
-                        StringBuffer sbVital = new StringBuffer();
-                        String[] vitalArr = bean.getNeoName().split(",");
-                        if (vitalArr.length > 1) {
-                            if ("收缩压".equals(vitalArr[0]) || "舒张压".equals(vitalArr[0])) {
-                                if ("收缩压".equals(vitalArr[0])) {
-                                    sbVital.append("血压");
-                                    sbVital.append(getValue(vitalArr) + "/100mmHg");
-                                    indicationPushVO.setVital(sbVital.toString());
-                                } else if ("舒张压".equals(vitalArr[0])) {
-                                    sbVital.append("血压");
-                                    sbVital.append("100/" + getValue(vitalArr) + "mmHg");
-                                    indicationPushVO.setVital(sbVital.toString());
-                                }
-                            } else {
-                                // 其他数值类型
-                                sbVital.append(vitalArr[0]);
-                                sbVital.append(getValue(vitalArr));
-                                sbVital.append(vitalArr[3]);
-                                indicationPushVO.setVital(sbVital.toString());
-                            }
-                        } else {
-                            sbVital.append(vitalArr[0]);
-                            indicationPushVO.setVital(sbVital.toString());
-                        }
-                        break;
+                    // case "12": // 体征
+                    //     StringBuffer sbVital = new StringBuffer();
+                    //     String[] vitalArr = bean.getNeoName().split(",");
+                    //     if (vitalArr.length > 1) {
+                    //         if ("收缩压".equals(vitalArr[0]) || "舒张压".equals(vitalArr[0])) {
+                    //             if ("收缩压".equals(vitalArr[0])) {
+                    //                 sbVital.append("血压");
+                    //                 sbVital.append(getValue(vitalArr) + "/100mmHg");
+                    //                 indicationPushVO.setVital(sbVital.toString());
+                    //             } else if ("舒张压".equals(vitalArr[0])) {
+                    //                 sbVital.append("血压");
+                    //                 sbVital.append("100/" + getValue(vitalArr) + "mmHg");
+                    //                 indicationPushVO.setVital(sbVital.toString());
+                    //             }
+                    //         } else {
+                    //             // 其他数值类型
+                    //             sbVital.append(vitalArr[0]);
+                    //             sbVital.append(getValue(vitalArr));
+                    //             sbVital.append(vitalArr[3]);
+                    //             indicationPushVO.setVital(sbVital.toString());
+                    //         }
+                    //     } else {
+                    //         sbVital.append(vitalArr[0]);
+                    //         indicationPushVO.setVital(sbVital.toString());
+                    //     }
+                    //     break;
                     default:
                         continue;
                 }

+ 2 - 1
src/main/java/com/diagbot/process/BillProcess.java

@@ -14,6 +14,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
 import java.util.ArrayList;
+import java.util.LinkedHashMap;
 import java.util.List;
 import java.util.Map;
 import java.util.stream.Collectors;
@@ -109,7 +110,7 @@ public class BillProcess {
     // 规则处理
     public void processRule(List<BillNeoMaxDTO> billNeoMaxDTOList, WordCrfDTO wordCrfDTO, IndicationDTO indicationDTO) {
         // 获取药品缓存
-        Map<String, List<String>> drugMap = neoFacade.getDrugCache();
+        Map<String, List<String>> drugMap = new LinkedHashMap<>();
         DiagLabel diagLabel = wordCrfDTO.getDiagLabel();
         ChiefLabel chiefLabel = wordCrfDTO.getChiefLabel();
         PresentLabel presentLabel = wordCrfDTO.getPresentLabel();

+ 1 - 1
src/main/java/com/diagbot/rule/DrugRule.java

@@ -34,7 +34,7 @@ public class DrugRule {
         if (ListUtil.isNotEmpty(drugList) && ListUtil.isNotEmpty(inputList)) {
             List<String> allDrug = new ArrayList<>();
             for (NodeNeoDTO nodeNeoDTO : drugList) {
-                if (StringUtil.isBlank(nodeNeoDTO.getTermtype()) || "药品".equals(nodeNeoDTO.getTermtype())) {
+                if (StringUtil.isBlank(nodeNeoDTO.getTermtype()) || "服用药品".equals(nodeNeoDTO.getTermtype())) {
                     allDrug.add(nodeNeoDTO.getName());
                 } else if ("药品分类".equals(nodeNeoDTO.getTermtype())){
                     String drugType = nodeNeoDTO.getName();