zhoutg 4 年之前
父节点
当前提交
7344082b71
共有 1 个文件被更改,包括 47 次插入5 次删除
  1. 47 5
      src/main/java/com/diagbot/facade/TestwordInfoFacade.java

+ 47 - 5
src/main/java/com/diagbot/facade/TestwordInfoFacade.java

@@ -71,6 +71,18 @@ public class TestwordInfoFacade extends TestwordInfoServiceImpl {
         List<String> drugStand = getStandWord(5, 100000).getDrugNames().stream().map(r -> r.getName()).collect(Collectors.toList());
         // 手术标准词
         List<String> operateStand = getStandWord(6, 100000).getOperationNames().stream().map(r -> r.getName()).collect(Collectors.toList());
+        // 化验套餐标准词
+        List<String> lisItem = getStandWord(1, 100000).getLisNames();
+        // 化验明细标准词
+        List<String> lisDetail = getStandWord(2, 100000).getLisDetailNames().stream().map(r -> r.getUniqueName()).collect(Collectors.toList());
+        // 化验标准词
+        List<String> lisStand = new ArrayList<>();
+        lisStand.addAll(lisItem);
+        lisStand.addAll(lisDetail);
+        // 查体标准词
+        List<String> vitalStand = getStandWord(10, 100000).getOperationNames().stream().map(r -> r.getName()).collect(Collectors.toList());
+        // 辅检结果标准词
+        List<String> pacsResStand = new ArrayList<>();
 
         // 模型处理数据
         WordCrfDTO wordCrfDTO = new WordCrfDTO();
@@ -87,7 +99,8 @@ public class TestwordInfoFacade extends TestwordInfoServiceImpl {
             Set<String> drugList = new LinkedHashSet<>();
             Set<String> operateList = new LinkedHashSet<>();
             Set<String> lisList = new LinkedHashSet<>();
-            Set<String> pacsList = new LinkedHashSet<>();
+            Set<String> pacsResList = new LinkedHashSet<>();
+            Set<String> vitalList = new LinkedHashSet<>();
             for (TestwordInfo bean : testwordInfoList) {
                 String text = bean.getText();
                 String type = bean.getType();
@@ -106,9 +119,10 @@ public class TestwordInfoFacade extends TestwordInfoServiceImpl {
                         // 手术
                         CoreUtil.addSet(operateList, CoreUtil.getName(wordCrfDTO.getPresentLabel().getOperations()));
                         // 化验
-                        // CoreUtil.addSet(drugList, CoreUtil.getName(wordCrfDTO.getLis().getDiags()));
+                        CoreUtil.addSet(lisList, CoreUtil.getName(wordCrfDTO.getLis()));
+                        CoreUtil.addSet(lisList, getDetail(wordCrfDTO.getLis()));
                         // 辅检
-                        CoreUtil.addSet(diseaseList, CoreUtil.getName(wordCrfDTO.getPacsLabel().getRes()));
+                        CoreUtil.addSet(pacsResList, CoreUtil.getName(wordCrfDTO.getPacsLabel().getRes()));
                         break;
                     case "既往史":
                         searchData.setPasts(text);
@@ -124,13 +138,17 @@ public class TestwordInfoFacade extends TestwordInfoServiceImpl {
                         searchData.setVital(text);
                         aiAnalyze.aiProcess(searchData, wordCrfDTO);
                         // 查体
-                        CoreUtil.addSet(diseaseList, CoreUtil.getName(wordCrfDTO.getVitalLabel().getVitals()));
+                        CoreUtil.addSet(vitalList, CoreUtil.getName(wordCrfDTO.getVitalLabel().getVitals()));
+                        CoreUtil.addSet(vitalList, CoreUtil.getName(wordCrfDTO.getVitalLabel().getClinicals()));
                         break;
                     case "辅助检查":
                         searchData.setSymptom(text);
                         aiAnalyze.aiProcess(searchData, wordCrfDTO);
+                        // 化验
+                        CoreUtil.addSet(lisList, CoreUtil.getName(wordCrfDTO.getLis()));
+                        CoreUtil.addSet(lisList, getDetail(wordCrfDTO.getLis()));
                         // 辅检
-                        CoreUtil.addSet(diseaseList, CoreUtil.getName(wordCrfDTO.getPacsLabel().getRes()));
+                        CoreUtil.addSet(pacsResList, CoreUtil.getName(wordCrfDTO.getPacsLabel().getRes()));
                         break;
                     case "初步诊断":
                     case "修正诊断":
@@ -150,6 +168,12 @@ public class TestwordInfoFacade extends TestwordInfoServiceImpl {
             dealBusiness(drugList, "药品", drugStand, insertRes);
             // 处理手术
             dealBusiness(operateList, "手术", operateStand, insertRes);
+            // 处理查体
+            dealBusiness(vitalList, "查体", vitalStand, insertRes);
+            // 处理化验
+            dealBusiness(lisList, "化验", lisStand, insertRes);
+            // 处理辅检结果
+            dealBusiness(pacsResList, "辅检结果", pacsResStand, insertRes);
 
             // 保存结果
             if (ListUtil.isNotEmpty(insertRes)) {
@@ -291,4 +315,22 @@ public class TestwordInfoFacade extends TestwordInfoServiceImpl {
                     .orderByAsc("id")).getRecords();
         }
     }
+
+
+    /**
+     * 筛选对象列表中“uniqueName”字段为空的数据,返回targetProperty字段列表
+     *
+     * @param list
+     * @param <T>
+     * @return
+     */
+    public <T> List<String> getDetail(List<T> list) {
+        if (ListUtil.isEmpty(list)) {
+            return new ArrayList<>();
+        }
+        return list.stream()
+                .filter(r -> StringUtil.isNotBlank((String)CoreUtil.getFieldValue(r, "detailName")))
+                .map(r -> (String)CoreUtil.getFieldValue(r, "detailName"))
+                .collect(Collectors.toList());
+    }
 }