Просмотр исходного кода

标准词转换(术语映射)

kongwz 4 лет назад
Родитель
Сommit
4747303245

+ 2 - 1
src/main/java/com/diagbot/dto/StandConvertCrfDTO.java

@@ -3,6 +3,7 @@ package com.diagbot.dto;
 import lombok.Data;
 
 import java.util.List;
+import java.util.Map;
 
 /**
  * @description: 标准词转换类出参
@@ -14,7 +15,7 @@ public class StandConvertCrfDTO {
     // 成功返回true, 否则返回false
     private Boolean status;
     // 标准词列表,有顺序,第一个是最大可能性的
-    private List<String> standard_words;
+    private List<Map<String,String>> standard_words;
     /**
      * 错误码(error_code)列表:
      *     1000 ---> 正常

+ 2 - 2
src/main/java/com/diagbot/facade/IndicationFacade.java

@@ -46,8 +46,8 @@ public class IndicationFacade {
         // 标准词转换
         long l2 = System.currentTimeMillis();
         StandConvert standConvert = commonFacade.dataTypeGet(wordCrfDTO);
-        // neoFacade.standConvertCrf(standConvert);
-        Map<String, Map<String, String>> standConvertMap = neoFacade.standConvert(standConvert);
+        Map<String, Map<String, String>> standConvertMap = neoFacade.standConvertCrf(standConvert);
+//        Map<String, Map<String, String>> standConvertMap = neoFacade.standConvert(standConvert);
         commonFacade.dataTypeSet(wordCrfDTO, standConvertMap);
         CoreUtil.getDubugStr(l2, "同义词转换", res.getDubugStr());
 

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

@@ -376,10 +376,72 @@ public class NeoFacade {
             standConvertCrfVO.setWord(s);
             StandConvertCrfDTO standConvertCrfDTO = standConvertServiceClient.similarity(standConvertCrfVO);
             System.out.println(standConvertCrfDTO);
-            clinicalMap.put(s, standConvertCrfDTO.getStandard_words().get(0));
+            if(ListUtil.isEmpty(standConvertCrfDTO.getStandard_words())){
+                clinicalMap.put(s, s);
+            }
+            clinicalMap.put(s, standConvertCrfDTO.getStandard_words().get(0).get("standard_word"));
         }
         map.put(StandConvertEnum.clinical.getName(), clinicalMap);
 
+        Map<String, String> operationMap = new LinkedHashMap<>();
+        List<String> operationList = standConvert.getOperationList();
+        for (String s : operationList) {
+            StandConvertCrfVO standConvertCrfVO = new StandConvertCrfVO();
+            standConvertCrfVO.setWord_type("operation");
+            standConvertCrfVO.setWord(s);
+            StandConvertCrfDTO standConvertCrfDTO = standConvertServiceClient.similarity(standConvertCrfVO);
+            System.out.println(standConvertCrfDTO);
+            if(ListUtil.isEmpty(standConvertCrfDTO.getStandard_words())){
+                operationMap.put(s, s);
+            }
+            operationMap.put(s, standConvertCrfDTO.getStandard_words().get(0).get("standard_word"));
+        }
+        map.put(StandConvertEnum.operation.getName(), operationMap);
+
+        Map<String, String> drugMap = new LinkedHashMap<>();
+        List<String> drugList = standConvert.getDrugList();
+        for (String s : drugList) {
+            StandConvertCrfVO standConvertCrfVO = new StandConvertCrfVO();
+            standConvertCrfVO.setWord_type("drug");
+            standConvertCrfVO.setWord(s);
+            StandConvertCrfDTO standConvertCrfDTO = standConvertServiceClient.similarity(standConvertCrfVO);
+            System.out.println(standConvertCrfDTO);
+            if(ListUtil.isEmpty(standConvertCrfDTO.getStandard_words())){
+                drugMap.put(s, s);
+            }
+            drugMap.put(s, standConvertCrfDTO.getStandard_words().get(0).get("standard_word"));
+        }
+        map.put(StandConvertEnum.drug.getName(), drugMap);
+
+        Map<String, String> vitalMap = new LinkedHashMap<>();
+        List<String> vitalList = standConvert.getDrugList();
+        for (String s : vitalList) {
+            StandConvertCrfVO standConvertCrfVO = new StandConvertCrfVO();
+            standConvertCrfVO.setWord_type("vital");
+            standConvertCrfVO.setWord(s);
+            StandConvertCrfDTO standConvertCrfDTO = standConvertServiceClient.similarity(standConvertCrfVO);
+            System.out.println(standConvertCrfDTO);
+            if(ListUtil.isEmpty(standConvertCrfDTO.getStandard_words())){
+                vitalMap.put(s, s);
+            }
+            vitalMap.put(s, standConvertCrfDTO.getStandard_words().get(0).get("standard_word"));
+        }
+        map.put(StandConvertEnum.vital.getName(), vitalMap);
+
+        Map<String, String> diseaseMap = new LinkedHashMap<>();
+        List<String> diseaseList = standConvert.getDrugList();
+        for (String s : diseaseList) {
+            StandConvertCrfVO standConvertCrfVO = new StandConvertCrfVO();
+            standConvertCrfVO.setWord_type("disease");
+            standConvertCrfVO.setWord(s);
+            StandConvertCrfDTO standConvertCrfDTO = standConvertServiceClient.similarity(standConvertCrfVO);
+            System.out.println(standConvertCrfDTO);
+            if(ListUtil.isEmpty(standConvertCrfDTO.getStandard_words())){
+                diseaseMap.put(s, s);
+            }
+            diseaseMap.put(s, standConvertCrfDTO.getStandard_words().get(0).get("standard_word"));
+        }
+        map.put(StandConvertEnum.disease.getName(), diseaseMap);
 
         return map;
     }

+ 1 - 1
src/main/resources/application-local.yml

@@ -152,4 +152,4 @@ ChiefPresentSimilarity:
   url: http://192.168.2.234:3456
 
 StandConvert:
-  url: http://192.168.2.123:23232
+  url: http://192.168.3.150:23232