فهرست منبع

查体开单项

zhoutg 4 سال پیش
والد
کامیت
6210085196

+ 1 - 1
src/main/java/com/diagbot/facade/BillFacade.java

@@ -42,7 +42,7 @@ public class BillFacade {
 
         // 规则处理
         billProcess.process(billNeoDTOList, wordCrfDTO, res);
-        System.out.println(res);
+        // System.out.println(res);
     }
 
 

+ 1 - 1
src/main/java/com/diagbot/facade/NeoFacade.java

@@ -56,7 +56,7 @@ public class NeoFacade {
     StandConvertServiceClient standConvertServiceClient;
     @Autowired
     RedisUtil redisUtil;
-    @Value("StandConvert.rate")
+    @Value("${StandConvert.rate}")
     String standConvertRate;
 
     /**

+ 38 - 38
src/main/java/com/diagbot/process/BillProcess.java

@@ -4,7 +4,6 @@ import com.diagbot.dto.BillMsg;
 import com.diagbot.dto.BillNeoDTO;
 import com.diagbot.dto.BillNeoMaxDTO;
 import com.diagbot.dto.IndicationDTO;
-import com.diagbot.dto.NodeNeoDTO;
 import com.diagbot.dto.WordCrfDTO;
 import com.diagbot.enums.NeoEnum;
 import com.diagbot.facade.NeoFacade;
@@ -60,43 +59,44 @@ public class BillProcess {
             }
             billNeoMaxDTO.setOrderName(billNeoDTO.getName()); // 开单名称
             billNeoMaxDTO.setOrderStandName(billNeoDTO.getStandname()); // 开单标准名称
-            // TODO 测试数据开始
-            if (billNeoDTO.getName().equals("普通胃镜检查")) {
-                NodeNeoDTO sexNeo = new NodeNeoDTO();
-                sexNeo.setName("男性");
-                billNeoMaxDTO.setGender(sexNeo);
-
-                NodeNeoDTO nodeNeoDTO = new NodeNeoDTO();
-                nodeNeoDTO.setName("红细胞压积");
-                nodeNeoDTO.setVal("阳性");
-                billNeoDTO.getPacsBillNeoDTO().getLis().add(nodeNeoDTO);
-
-                NodeNeoDTO nodepacsDTO = new NodeNeoDTO();
-                nodepacsDTO.setName("上腹部平扫");
-                billNeoDTO.getPacsBillNeoDTO().getPacs().add(nodepacsDTO);
-
-                NodeNeoDTO opereat = new NodeNeoDTO();
-                opereat.setName("胸腔镜下左下肺叶切除术");
-                billNeoDTO.getPacsBillNeoDTO().getOperations().add(opereat);
-                NodeNeoDTO opereat2 = new NodeNeoDTO();
-                opereat2.setName("区域淋巴结清扫术");
-                billNeoDTO.getPacsBillNeoDTO().getOperations().add(opereat2);
-
-                NodeNeoDTO drug = new NodeNeoDTO();
-                drug.setName("青霉素类");
-                billNeoDTO.getPacsBillNeoDTO().getAllergicmeds().add(drug);
-
-                NodeNeoDTO drug3 = new NodeNeoDTO();
-                drug3.setName("泰舒达类");
-                billNeoDTO.getPacsBillNeoDTO().getOralmeds().add(drug3);
-
-                // NodeNeoDTO vital = new NodeNeoDTO();
-                // vital.setName("体温");
-                // vital.setMax(new BigDecimal("39.1"));
-                // vital.setMin(new BigDecimal(35.1));
-                // billNeoDTO.getPacsBillNeoDTO().getVitals().add(vital);
-
-            }
+            // // TODO 测试数据开始
+            // if (billNeoDTO.getName().equals("普通胃镜检查")) {
+            //     NodeNeoDTO sexNeo = new NodeNeoDTO();
+            //     sexNeo.setName("男性");
+            //     billNeoMaxDTO.setGender(sexNeo);
+            //
+            //     NodeNeoDTO nodeNeoDTO = new NodeNeoDTO();
+            //     nodeNeoDTO.setName("红细胞压积");
+            //     nodeNeoDTO.setVal("阳性");
+            //     billNeoDTO.getPacsBillNeoDTO().getLis().add(nodeNeoDTO);
+            //
+            //     NodeNeoDTO nodepacsDTO = new NodeNeoDTO();
+            //     nodepacsDTO.setName("上腹部平扫");
+            //     billNeoDTO.getPacsBillNeoDTO().getPacs().add(nodepacsDTO);
+            //
+            //     NodeNeoDTO opereat = new NodeNeoDTO();
+            //     opereat.setName("胸腔镜下左下肺叶切除术");
+            //     billNeoDTO.getPacsBillNeoDTO().getOperations().add(opereat);
+            //     NodeNeoDTO opereat2 = new NodeNeoDTO();
+            //     opereat2.setName("区域淋巴结清扫术");
+            //     billNeoDTO.getPacsBillNeoDTO().getOperations().add(opereat2);
+            //
+            //     NodeNeoDTO drug = new NodeNeoDTO();
+            //     drug.setName("青霉素类");
+            //     billNeoDTO.getPacsBillNeoDTO().getAllergicmeds().add(drug);
+            //
+            //     NodeNeoDTO drug3 = new NodeNeoDTO();
+            //     drug3.setName("泰舒达类");
+            //     billNeoDTO.getPacsBillNeoDTO().getOralmeds().add(drug3);
+            //
+            //     // NodeNeoDTO vital = new NodeNeoDTO();
+            //     // vital.setName("体温");
+            //     // vital.setMax(new BigDecimal("39.1"));
+            //     // vital.setMin(new BigDecimal("35.1"));
+            //     // vital.setValType(1);
+            //     // billNeoDTO.getPacsBillNeoDTO().getVitals().add(vital);
+            //
+            // }
             // 测试数据结束
 
             System.out.println(billNeoMaxDTO);

+ 5 - 22
src/main/java/com/diagbot/rule/VitalRule.java

@@ -6,9 +6,9 @@ import com.diagbot.dto.NodeNeoDTO;
 import com.diagbot.model.entity.Vital;
 import com.diagbot.util.CoreUtil;
 import com.diagbot.util.ListUtil;
-import com.diagbot.util.StringUtil;
 
 import java.util.List;
+import java.util.Map;
 
 /**
  * @description: 体征规则
@@ -29,28 +29,11 @@ public class VitalRule {
         if(ListUtil.isNotEmpty(neoList) && ListUtil.isNotEmpty(inputLis)){
             for (NodeNeoDTO neo : neoList) {
                 for (Vital vit : inputLis) {
-                    String val = vit.getName();
-                    val = vit.getStandName();
-                    if (StringUtil.isNotBlank(val) && val.equals(neo.getName()) && "体温".equals(val)) {
-//                        String val_name = lis.getDetailName();
-                        // 如果有结果数据,就不用比较数值
-                        String message = "";
-                        boolean flag = false;
-//                        if (StringUtil.isNotBlank(lis.getValue())) {
-//                            flag = CoreUtil.compareStr(neo, lis.getValue());
-//                            if (flag) {
-//                                message = CoreUtil.getStrMsg(neo, val, lis.getValue());
-//                            }
-//                        } else
-                            if (vit.getPd() != null) {
-                            flag = CoreUtil.compareNum(neo, Double.parseDouble(vit.getPd().getValue()));
-                            if (flag) {
-                                message = CoreUtil.getNumMsg(neo, val, Double.parseDouble(vit.getPd().getValue()), vit.getPd().getUnit());
-                            }
-                        }
-                        if (flag) {
+                    if (neo.getName().equals(vit.getStandName())) {
+                        Map<String, Object> map = CoreUtil.compareNumWtihMap(neo, vit.getName(), vit.getStandName(), vit.getPd().getValue());
+                        if ((Boolean) map.get("flag") == true) {
                             BillMsg commonBillMsg = CoreUtil.getCommonBillMsg(billNeoMaxDTO.getOrderName(),
-                                    billNeoMaxDTO.getOrderStandName(), message, type);
+                                    billNeoMaxDTO.getOrderStandName(), (String) map.get("msg"), type);
                             billMsgList.add(commonBillMsg);
                         }
                     }

+ 29 - 0
src/main/java/com/diagbot/util/CoreUtil.java

@@ -295,6 +295,35 @@ public class CoreUtil {
         return map;
     }
 
+    /**
+     * 比较数值是否匹配
+     *
+     * @param nodeNeoDTO
+     * @param name
+     * @param standName
+     * @param value
+     * @return
+     */
+    public static Map<String, Object> compareNumWtihMap(NodeNeoDTO nodeNeoDTO, String name, String standName, String value) {
+        Map<String, Object> map = new LinkedHashMap<>();
+        boolean flag = false;
+        if (nodeNeoDTO == null || StringUtil.isBlank(name) || StringUtil.isBlank(standName) || StringUtil.isBlank(value)) {
+            map.put("flag", flag);
+            return map;
+        }
+        try {
+            flag = compareNum(nodeNeoDTO, Double.parseDouble(value));
+            if (flag) {
+                map.put("msg", name + subZeroAndDot(String.valueOf(value)));
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+
+        map.put("flag", flag);
+        return map;
+    }
+
     /**
      * 比较数值大小(int)
      *