zhoutg 4 yıl önce
ebeveyn
işleme
16677b6d1d

+ 56 - 22
src/main/java/com/diagbot/facade/TestwordInfoFacade.java

@@ -55,6 +55,7 @@ public class TestwordInfoFacade extends TestwordInfoServiceImpl {
     TestFacade testFacade;
     @Autowired
     RetrievalFacade retrievalFacade;
+    int getWordSize = 100;
 
     public Map getWord() {
         Map<String, String> res = new LinkedHashMap<>();
@@ -63,17 +64,21 @@ public class TestwordInfoFacade extends TestwordInfoServiceImpl {
         AIAnalyze aiAnalyze = new AIAnalyze(crfServiceClient);
 
         // 症状标准词
-        List<String> symptomStand = getStandWord(9, 10000).getSymptomNames();
+        List<String> symptomStand = new ArrayList<>();
+        // List<String> symptomStand = getStandWord(9, 10000).getSymptomNames();
         // 诊断标准词
-        List<String> diseaseStand = getStandWord(4, 100).getDiseaseNames().stream().map(r -> r.getName()).collect(Collectors.toList());
+        // List<String> diseaseStand = getStandWord(4, 10000).getDiseaseNames().stream().map(r -> r.getName()).collect(Collectors.toList());
+        List<String> diseaseStand = new ArrayList<>();
         // 药品标准词
-        List<String> drugStand = getStandWord(5, 100).getDrugNames().stream().map(r -> r.getName()).collect(Collectors.toList());
+        List<String> drugStand = new ArrayList<>();
+        // List<String> drugStand = getStandWord(5, 10000).getDrugNames().stream().map(r -> r.getName()).collect(Collectors.toList());
         // 手术标准词
-        List<String> operateStand = getStandWord(6, 100).getOperationNames().stream().map(r -> r.getName()).collect(Collectors.toList());
+        List<String> operateStand = new ArrayList<>();
+        // List<String> operateStand = getStandWord(6, 10000).getOperationNames().stream().map(r -> r.getName()).collect(Collectors.toList());
 
         // 模型处理数据
         WordCrfDTO wordCrfDTO = new WordCrfDTO();
-        List<TestwordInfo> testwordInfoList = this.page(new Page<>(1, 100), new QueryWrapper<TestwordInfo>()
+        List<TestwordInfo> testwordInfoList = this.page(new Page<>(1, getWordSize), new QueryWrapper<TestwordInfo>()
                 .eq("is_deleted", IsDeleteEnum.N.getKey())
                 .eq("is_deal", 0)
                 .orderByAsc("id")).getRecords();
@@ -90,22 +95,50 @@ public class TestwordInfoFacade extends TestwordInfoServiceImpl {
             for (TestwordInfo bean : testwordInfoList) {
                 String text = bean.getText();
                 String type = bean.getType();
-                if ("主诉".equals(type) || "现病史".equals(type)) {
-                    SearchData searchData = new SearchData();
-                    searchData.setSymptom(text);
-                    aiAnalyze.aiProcess(searchData, wordCrfDTO);
-                    // 临床表现
-                    CoreUtil.addSet(symptomList, CoreUtil.getName(wordCrfDTO.getPresentLabel().getClinicals()));
-                    // 诊断
-                    CoreUtil.addSet(diseaseList, CoreUtil.getName(wordCrfDTO.getPresentLabel().getDiags()));
-                    // 药品
-                    CoreUtil.addSet(drugList, CoreUtil.getName(wordCrfDTO.getPresentLabel().getMedicines()));
-                    // 手术
-                    CoreUtil.addSet(operateList, CoreUtil.getName(wordCrfDTO.getPresentLabel().getOperations()));
-                    // // 化验
-                    // CoreUtil.addSet(drugList, CoreUtil.getName(wordCrfDTO.getPresentLabel().getDiags()));
-                    // // 辅检
-                    // CoreUtil.addSet(diseaseList, CoreUtil.getName(wordCrfDTO.getPresentLabel().getDiags()));
+                SearchData searchData = new SearchData();
+                switch (type) {
+                    case "主诉":
+                    case "现病史":
+                        searchData.setSymptom(text);
+                        aiAnalyze.aiProcess(searchData, wordCrfDTO);
+                        // 临床表现
+                        CoreUtil.addSet(symptomList, CoreUtil.getName(wordCrfDTO.getPresentLabel().getClinicals()));
+                        // 诊断
+                        CoreUtil.addSet(diseaseList, CoreUtil.getName(wordCrfDTO.getPresentLabel().getDiags()));
+                        // 药品
+                        CoreUtil.addSet(drugList, CoreUtil.getName(wordCrfDTO.getPresentLabel().getMedicines()));
+                        // 手术
+                        CoreUtil.addSet(operateList, CoreUtil.getName(wordCrfDTO.getPresentLabel().getOperations()));
+                        // // 化验
+                        // CoreUtil.addSet(drugList, CoreUtil.getName(wordCrfDTO.getPresentLabel().getDiags()));
+                        // // 辅检
+                        // CoreUtil.addSet(diseaseList, CoreUtil.getName(wordCrfDTO.getPresentLabel().getDiags()));
+                        break;
+                    case "既往史":
+                        searchData.setPasts(text);
+                        aiAnalyze.aiProcess(searchData, wordCrfDTO);
+                        // 诊断
+                        CoreUtil.addSet(diseaseList, CoreUtil.getName(wordCrfDTO.getPastLabel().getDiags()));
+                        // 药品
+                        CoreUtil.addSet(drugList, CoreUtil.getName(wordCrfDTO.getPastLabel().getMedicines()));
+                        // 手术
+                        CoreUtil.addSet(operateList, CoreUtil.getName(wordCrfDTO.getPastLabel().getOperations()));
+                        break;
+                    case "专科体格检查":
+                        searchData.setVital(text);
+                        aiAnalyze.aiProcess(searchData, wordCrfDTO);
+                        // 查体
+                        CoreUtil.addSet(diseaseList, CoreUtil.getName(wordCrfDTO.getVitalLabel().getVitals()));
+                        break;
+                    case "辅助检查":
+                        break;
+                    case "初步诊断":
+                    case "修正诊断":
+                        searchData.setDiagString(text);
+                        aiAnalyze.aiProcess(searchData, wordCrfDTO);
+                        // 诊断
+                        CoreUtil.addSet(diseaseList, CoreUtil.getName(wordCrfDTO.getDiag()));
+                        break;
                 }
             }
 
@@ -129,10 +162,11 @@ public class TestwordInfoFacade extends TestwordInfoServiceImpl {
             testwordInfoService.saveOrUpdateBatch(testwordInfoList);
 
             // 获取下一批数据
-            testwordInfoList = this.page(new Page<>(1, 100), new QueryWrapper<TestwordInfo>()
+            testwordInfoList = this.page(new Page<>(1, getWordSize), new QueryWrapper<TestwordInfo>()
                     .eq("is_deleted", IsDeleteEnum.N.getKey())
                     .eq("is_deal", 0)
                     .orderByAsc("id")).getRecords();
+            break;
         }
 
         long end = System.currentTimeMillis();