浏览代码

主诉+慢病

Zhaops 6 年之前
父节点
当前提交
19f2e947ef

+ 4 - 4
aipt-service/src/main/java/com/diagbot/client/NLPServiceClient.java

@@ -2,12 +2,12 @@ package com.diagbot.client;
 
 import com.diagbot.client.bean.Response;
 import com.diagbot.client.hystrix.NLPServiceHystrix;
+import com.diagbot.dto.FeatureConceptDTO;
 import org.springframework.cloud.openfeign.FeignClient;
-import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RequestParam;
 
 import java.util.List;
-import java.util.Map;
 
 /**
  * @Description:调用NLP对接层服务
@@ -22,6 +22,6 @@ public interface NLPServiceClient {
      * @param text
      * @return
      */
-    @PostMapping(value = "/nlp-web/feature/find_symptom_feature")
-    Response<List<Map<String, Object>>> symptomFeaturePageData(@RequestParam("text") String text);
+    @GetMapping(value = "/nlp-web/feature/find_symptom_feature")
+    Response<List<FeatureConceptDTO>> symptomFeaturePageData(@RequestParam("text") String text);
 }

+ 2 - 2
aipt-service/src/main/java/com/diagbot/client/hystrix/NLPServiceHystrix.java

@@ -2,12 +2,12 @@ package com.diagbot.client.hystrix;
 
 import com.diagbot.client.NLPServiceClient;
 import com.diagbot.client.bean.Response;
+import com.diagbot.dto.FeatureConceptDTO;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Component;
 import org.springframework.web.bind.annotation.RequestParam;
 
 import java.util.List;
-import java.util.Map;
 
 /**
  * @Description:调用NLP对接层服务
@@ -25,7 +25,7 @@ public class NLPServiceHystrix implements NLPServiceClient {
      * @return
      */
     @Override
-    public Response<List<Map<String, Object>>> symptomFeaturePageData(@RequestParam("text") String text) {
+    public Response<List<FeatureConceptDTO>> symptomFeaturePageData(@RequestParam("text") String text) {
         log.error("【hystrix】调用{}异常", "symptomFeaturePageData");
         return null;
     }

+ 1 - 0
aipt-service/src/main/java/com/diagbot/dto/FeatureConceptDTO.java

@@ -13,4 +13,5 @@ import lombok.Setter;
 public class FeatureConceptDTO extends ConceptBaseDTO {
     private Integer libType;
     private Integer type;
+    private Integer chronicLabel; //是否慢病复诊标志
 }

+ 7 - 31
aipt-service/src/main/java/com/diagbot/facade/FeatureFacade.java

@@ -1,19 +1,14 @@
 package com.diagbot.facade;
 
 import com.diagbot.dto.FeatureConceptDTO;
-import com.diagbot.entity.Concept;
-import com.diagbot.enums.ConceptTypeEnum;
-import com.diagbot.enums.LexiconTypeEnum;
 import com.diagbot.exception.CommonErrorCode;
 import com.diagbot.exception.CommonException;
-import com.diagbot.util.EntityUtil;
 import com.diagbot.util.ListUtil;
-import com.google.common.collect.Lists;
+import com.diagbot.util.ParamConvertUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
 import java.util.List;
-import java.util.Map;
 
 /**
  * @Description:
@@ -24,8 +19,6 @@ import java.util.Map;
 public class FeatureFacade {
     @Autowired
     private NLPFacade nlpFacade;
-    @Autowired
-    private ConceptFacade conceptFacade;
 
     /**
      * 症状关键词提取
@@ -34,33 +27,16 @@ public class FeatureFacade {
      * @return
      */
     public List<FeatureConceptDTO> getSymptomFeature(String text) {
-        List<FeatureConceptDTO> symptomFeatureDTOList = Lists.newLinkedList();
-        List<Map<String, Object>> symptomFeatureList = nlpFacade.symptomFeaturePageData(text);
-        List<String> symptomNameList = Lists.newLinkedList();
-        for (Map<String, Object> symptomFeature : symptomFeatureList) {
-            if (symptomFeature != null) {
-                String symptomName = symptomFeature.get("feature_name").toString();
-                if (!symptomNameList.contains(symptomName) && symptomFeature.get("feature_type").toString().equals("1")) {
-                    symptomNameList.add(symptomName);
-                }
-            }
-        }
+        List<FeatureConceptDTO> symptomFeatureList = nlpFacade.symptomFeaturePageData(text);
         if (!ListUtil.isNotEmpty(symptomFeatureList)) {
             throw new CommonException(CommonErrorCode.NOT_EXISTS, "未提取到特征词");
         }
-        List<Concept> concepts = conceptFacade.getListByNamesAndType(symptomNameList, LexiconTypeEnum.SYMPTOM.getKey());
-        Map<String, Concept> conceptMap = EntityUtil.makeEntityMap(concepts, "libName");
-        for (String name : symptomNameList) {
-            FeatureConceptDTO featureConceptDTO = new FeatureConceptDTO();
-            featureConceptDTO.setName(name);
-            featureConceptDTO.setLibType(LexiconTypeEnum.SYMPTOM.getKey());
-            featureConceptDTO.setType(ConceptTypeEnum.Symptom.getKey());
-            if (conceptMap.containsKey(name) && conceptMap.get(name) != null) {
-                Concept concept = conceptMap.get(name);
-                featureConceptDTO.setConceptId(concept.getId());
+
+        for (FeatureConceptDTO featureConceptDTO : symptomFeatureList) {
+            if (null != featureConceptDTO.getLibType()) {
+                featureConceptDTO.setType(ParamConvertUtil.libConvert2Concept(featureConceptDTO.getLibType()));
             }
-            symptomFeatureDTOList.add(featureConceptDTO);
         }
-        return symptomFeatureDTOList;
+        return symptomFeatureList;
     }
 }

+ 4 - 4
aipt-service/src/main/java/com/diagbot/facade/NLPFacade.java

@@ -2,13 +2,13 @@ package com.diagbot.facade;
 
 import com.diagbot.client.NLPServiceClient;
 import com.diagbot.client.bean.Response;
+import com.diagbot.dto.FeatureConceptDTO;
 import com.diagbot.exception.CommonErrorCode;
 import com.diagbot.exception.CommonException;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
 import java.util.List;
-import java.util.Map;
 
 /**
  * @Description:
@@ -26,11 +26,11 @@ public class NLPFacade {
      * @param text
      * @return
      */
-    public List<Map<String, Object>> symptomFeaturePageData(String text) {
-        Response<List<Map<String, Object>>> response = nlpServiceClient.symptomFeaturePageData(text);
+    public List<FeatureConceptDTO> symptomFeaturePageData(String text) {
+        Response<List<FeatureConceptDTO>> response = nlpServiceClient.symptomFeaturePageData(text);
         if (response == null || response.getData() == null) {
             throw new CommonException(CommonErrorCode.SERVER_IS_ERROR, "NLP没有返回结果");
         }
         return response.getData();
     }
-}
+}

+ 3 - 1
icss-service/src/main/java/com/diagbot/dto/FeatureConceptDTO.java

@@ -12,5 +12,7 @@ import lombok.Setter;
 @Setter
 public class FeatureConceptDTO extends ConceptBaseDTO {
     private Integer libType;
+    private Integer type;
     private Long id;
-}
+    private Integer chronicLabel;//是否慢病复诊标志
+}

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

@@ -39,7 +39,11 @@ public class FeatureFacade {
         RespDTO<List<FeatureConceptDTO>> res = aiptServiceClient.symptomFeature(text);
         RespDTOUtil.respNGDealCover(res, "AI没有返回结果");
         List<FeatureConceptDTO> symptomFeatureList = res.data;
-        symptomFeatureList = addQuestionId(symptomFeatureList, ConceptTypeEnum.Symptom.getKey());
+        if (ListUtil.isNotEmpty(symptomFeatureList)) {
+            if (!symptomFeatureList.get(0).getChronicLabel().equals(1)) {
+                symptomFeatureList = addQuestionId(symptomFeatureList, ConceptTypeEnum.Symptom.getKey());
+            }
+        }
         return symptomFeatureList;
     }