Ver código fonte

症状特征提取结果增加conceptId

zhaops 5 anos atrás
pai
commit
5199de36b6

+ 18 - 0
aipt-service/src/main/java/com/diagbot/facade/FeatureFacade.java

@@ -1,14 +1,21 @@
 package com.diagbot.facade;
 
 import com.diagbot.dto.FeatureConceptDTO;
+import com.diagbot.entity.Concept;
 import com.diagbot.exception.CommonErrorCode;
 import com.diagbot.exception.CommonException;
+import com.diagbot.util.EntityUtil;
 import com.diagbot.util.ListUtil;
 import com.diagbot.util.ParamConvertUtil;
+import com.diagbot.vo.ConceptBaseVO;
+import io.swagger.models.auth.In;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
+import java.util.LinkedHashMap;
 import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
 
 /**
  * @Description:
@@ -19,6 +26,8 @@ import java.util.List;
 public class FeatureFacade {
     @Autowired
     private NLPFacade nlpFacade;
+    @Autowired
+    private ConceptFacade conceptFacade;
 
     /**
      * 症状关键词提取
@@ -32,9 +41,18 @@ public class FeatureFacade {
             throw new CommonException(CommonErrorCode.NOT_EXISTS, "未提取到特征词");
         }
 
+        Map<Integer, List<FeatureConceptDTO>> symptomMap = EntityUtil.makeEntityListMap(symptomFeatureList, "libType");
+        Map<Integer, Map<String, Long>> map = new LinkedHashMap<>();
+        for (Map.Entry<Integer, List<FeatureConceptDTO>> entry : symptomMap.entrySet()) {
+            List<Concept> concepts = conceptFacade.getListByNamesAndType(entry.getValue().stream().map(i -> i.getName()).collect(Collectors.toList()), entry.getKey());
+            Map<String, Long> conceptMap = EntityUtil.makeMapWithKeyValue(concepts, "libName", "id");
+            map.put(entry.getKey(), conceptMap);
+        }
+
         for (FeatureConceptDTO featureConceptDTO : symptomFeatureList) {
             if (null != featureConceptDTO.getLibType()) {
                 featureConceptDTO.setType(ParamConvertUtil.libConvert2Concept(featureConceptDTO.getLibType()));
+                featureConceptDTO.setConceptId(map.get(featureConceptDTO.getLibType()).get(featureConceptDTO.getName()));
             }
         }
         return symptomFeatureList;

+ 1 - 1
icss-service/src/main/java/com/diagbot/facade/FeatureFacade.java

@@ -37,7 +37,7 @@ public class FeatureFacade {
      */
     public List<FeatureConceptDTO> getSymptomFeature(String text) {
         RespDTO<List<FeatureConceptDTO>> res = aiptServiceClient.symptomFeature(text);
-        RespDTOUtil.respNGDealCover(res, "AI没有返回结果");
+        RespDTOUtil.respNGDealCover(res, res.msg == "" ? "AI没有返回结果" : res.msg);
         List<FeatureConceptDTO> symptomFeatureList = res.data;
         if (ListUtil.isNotEmpty(symptomFeatureList)) {
             if (!symptomFeatureList.get(0).getChronicLabel().equals(1)) {