Browse Source

预问诊症状添加通俗解释和详细说明

zhoutg 5 years ago
parent
commit
61e5b1af88

+ 8 - 0
aipt-service/src/main/java/com/diagbot/dto/ConceptRetrievalExtDTO.java

@@ -1,5 +1,6 @@
 package com.diagbot.dto;
 
+import com.diagbot.annotation.CryptField;
 import lombok.Getter;
 import lombok.Setter;
 
@@ -11,12 +12,19 @@ import lombok.Setter;
 @Getter
 @Setter
 public class ConceptRetrievalExtDTO {
+
     private Long selfId;//本身概念id
+    @CryptField
     private String selfName;//本身名称
     private Long parentId;//父级id
+    @CryptField
     private String parentName;//父级名称
+    @CryptField
     private String sameName;//同义词名称
     private Long showType;//显示类型(1本体,0同义词)
+    private Long libTypeId;//标签类型id
+    private String libTypeName;//标签类型名称
+    private Integer type;//questionType
     private String description;
     private String explains;
 }

+ 21 - 0
prec-service/src/main/java/com/diagbot/client/AiptServiceClient.java

@@ -4,10 +4,12 @@ import com.diagbot.biz.push.vo.SearchVO;
 import com.diagbot.client.hystrix.AiptServiceHystrix;
 import com.diagbot.dto.ConceptBaseDTO;
 import com.diagbot.dto.ConceptRetrievalDTO;
+import com.diagbot.dto.ConceptRetrievalExtDTO;
 import com.diagbot.dto.DisclaimerInformationDTO;
 import com.diagbot.dto.GetTopPatientInfoDjDTO;
 import com.diagbot.dto.PushDTO;
 import com.diagbot.dto.RespDTO;
+import com.diagbot.dto.UsualDTO;
 import com.diagbot.dto.VersionWrapperDTO;
 import com.diagbot.vo.ConceptSearchVO;
 import com.diagbot.vo.ConceptUsualVO;
@@ -57,6 +59,25 @@ public interface AiptServiceClient {
     @PostMapping(value = "/concept/getConceptUsual")
     RespDTO<List<ConceptBaseDTO>> getConceptUsual(@RequestBody @Valid ConceptUsualVO conceptUsualVO);
 
+    /**
+     * 获取常用标签附带通俗解释和详细说明
+     *
+     * @param conceptUsualVO
+     * @return
+     */
+    @PostMapping(value = "/concept/getConceptExtUsual")
+    RespDTO<List<UsualDTO>> getConceptExtUsual(@RequestBody @Valid ConceptUsualVO conceptUsualVO);
+
+    /**
+     * 标签检索(附带通俗解释和详细说明, retrivelConceptInfo这个作废)
+     *
+     * @param retrievalVO
+     * @return
+     */
+    @PostMapping("/concept/retrivelConceptInfoExt")
+    RespDTO<List<ConceptRetrievalExtDTO>> retrivelConceptInfoExt(@RequestBody @Valid RetrievalVO retrievalVO);
+
+
     /**
      * 标签检索
      *

+ 14 - 0
prec-service/src/main/java/com/diagbot/client/hystrix/AiptServiceHystrix.java

@@ -4,10 +4,12 @@ import com.diagbot.biz.push.vo.SearchVO;
 import com.diagbot.client.AiptServiceClient;
 import com.diagbot.dto.ConceptBaseDTO;
 import com.diagbot.dto.ConceptRetrievalDTO;
+import com.diagbot.dto.ConceptRetrievalExtDTO;
 import com.diagbot.dto.DisclaimerInformationDTO;
 import com.diagbot.dto.GetTopPatientInfoDjDTO;
 import com.diagbot.dto.PushDTO;
 import com.diagbot.dto.RespDTO;
+import com.diagbot.dto.UsualDTO;
 import com.diagbot.dto.VersionWrapperDTO;
 import com.diagbot.vo.ConceptSearchVO;
 import com.diagbot.vo.ConceptUsualVO;
@@ -55,6 +57,18 @@ public class AiptServiceHystrix implements AiptServiceClient {
         return null;
     }
 
+    @Override
+    public RespDTO<List<UsualDTO>> getConceptExtUsual(@Valid ConceptUsualVO conceptUsualVO) {
+        log.error("【hystrix】调用{}异常", "getConceptExtUsual");
+        return null;
+    }
+
+    @Override
+    public RespDTO<List<ConceptRetrievalExtDTO>> retrivelConceptInfoExt(@Valid RetrievalVO retrievalVO) {
+        log.error("【hystrix】调用{}异常", "retrivelConceptInfoExt");
+        return null;
+    }
+
     @Override
     public RespDTO<List<ConceptRetrievalDTO>> retrivelConceptInfo(@Valid RetrievalVO retrievalVO) {
         log.error("【hystrix】调用{}异常", "retrivelConceptInfo");

+ 29 - 0
prec-service/src/main/java/com/diagbot/dto/ConceptRetrievalExtDTO.java

@@ -0,0 +1,29 @@
+package com.diagbot.dto;
+
+import com.diagbot.annotation.CryptField;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @Description:
+ * @author: wangyu
+ * @time: 2019/5/10 10:20
+ */
+@Getter
+@Setter
+public class ConceptRetrievalExtDTO {
+    private Long selfId;//本身概念id
+    @CryptField
+    private String selfName;//本身名称
+    private Long parentId;//父级id
+    @CryptField
+    private String parentName;//父级名称
+    @CryptField
+    private String sameName;//同义词名称
+    private Long showType;//显示类型(1本体,0同义词)
+    private Long libTypeId;//标签类型id
+    private String libTypeName;//标签类型名称
+    private Integer type;//questionType
+    private String description; //通俗解释
+    private String explains; //详细说明
+}

+ 18 - 0
prec-service/src/main/java/com/diagbot/dto/UsualDTO.java

@@ -0,0 +1,18 @@
+package com.diagbot.dto;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @Description: 概念出参基础实体类
+ * @author: gaodm
+ * @time: 2019/5/7 9:44
+ */
+@Getter
+@Setter
+public class UsualDTO {
+    private Long conceptId; // 概念id
+    private String name;    //概念名称
+    private String description; // 描述
+    private String explains;   // 详细说明
+}

+ 9 - 11
prec-service/src/main/java/com/diagbot/facade/QuestionUsualFacade.java

@@ -2,9 +2,9 @@ package com.diagbot.facade;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.diagbot.client.AiptServiceClient;
-import com.diagbot.dto.ConceptBaseDTO;
 import com.diagbot.dto.QuestionUsualDTO;
 import com.diagbot.dto.RespDTO;
+import com.diagbot.dto.UsualDTO;
 import com.diagbot.entity.QuestionInfo;
 import com.diagbot.enums.IsDeleteEnum;
 import com.diagbot.enums.QuestionTypeEnum;
@@ -49,18 +49,18 @@ public class QuestionUsualFacade {
         conceptUsualVO.setType(type);
         List<QuestionUsualDTO> questionUsualDTOList = new ArrayList<>();
         //从知识库获取常用标签
-        RespDTO<List<ConceptBaseDTO>> conceptBaseDTORespDTO = aiptServiceClient.getConceptUsual(conceptUsualVO);
+        RespDTO<List<UsualDTO>> conceptBaseDTORespDTO = aiptServiceClient.getConceptExtUsual(conceptUsualVO);
         //如果该科室没有常用,返回全科常用
         if (conceptBaseDTORespDTO != null && ListUtil.isEmpty(conceptBaseDTORespDTO.data)) {
             conceptUsualVO.setDeptName("全科");
-            conceptBaseDTORespDTO = aiptServiceClient.getConceptUsual(conceptUsualVO);
+            conceptBaseDTORespDTO = aiptServiceClient.getConceptExtUsual(conceptUsualVO);
         }
         RespDTOUtil.respNGDeal(conceptBaseDTORespDTO, "获取常用标签失败");
         if (conceptBaseDTORespDTO.data != null
                 && ListUtil.isNotEmpty(conceptBaseDTORespDTO.data)) {
             //提取标签名称
             List<String> conceptName = conceptBaseDTORespDTO.data.stream()
-                    .map(ConceptBaseDTO::getName)
+                    .map(r -> r.getName())
                     .collect(Collectors.toList());
             //与question标签匹配
             QueryWrapper<QuestionInfo> questionInfoQueryWrapper = new QueryWrapper<>();
@@ -73,10 +73,13 @@ public class QuestionUsualFacade {
             Map<String, QuestionInfo> questionInfoMap
                     = questionInfoList.stream()
                     .collect(Collectors.toMap(QuestionInfo::getTagName, questionInfo -> questionInfo));
-            for (ConceptBaseDTO conceptBaseDTO : conceptBaseDTORespDTO.data) {//将概念id和概念名称放入出参
+            for (UsualDTO conceptBaseDTO : conceptBaseDTORespDTO.data) {//将概念id和概念名称放入出参
                 QuestionUsualDTO questionUsualDTO = new QuestionUsualDTO();
+                BeanUtil.copyProperties(conceptBaseDTO, questionUsualDTO);
                 questionUsualDTO.setTagName(conceptBaseDTO.getName());
-                questionUsualDTO.setConceptId(conceptBaseDTO.getConceptId());
+                if (StringUtil.isNotBlank(questionUsualDTO.getExplains())) {
+                    questionUsualDTO.setHasExplain(1);
+                }
                 questionUsualDTOList.add(questionUsualDTO);
             }
             for (QuestionUsualDTO questionUsualDTO : questionUsualDTOList) {
@@ -84,11 +87,6 @@ public class QuestionUsualFacade {
                     questionUsualDTO.setTagName(questionInfoMap.get(questionUsualDTO.getTagName()).getTagName());
                     questionUsualDTO.setName(questionInfoMap.get(questionUsualDTO.getTagName()).getName());
                     questionUsualDTO.setQuestionId(questionInfoMap.get(questionUsualDTO.getTagName()).getId());
-                    questionUsualDTO.setDescription(questionInfoMap.get(questionUsualDTO.getTagName()).getDescription());
-                    if (StringUtil.isNotBlank(questionInfoMap.get(questionUsualDTO.getTagName()).getExplains())){
-                        questionUsualDTO.setHasExplain(1);
-                        questionUsualDTO.setExplains(questionInfoMap.get(questionUsualDTO.getTagName()).getExplains());
-                    }
                 }
             }
             //如何没有匹配到questionId就移除

+ 8 - 9
prec-service/src/main/java/com/diagbot/facade/RetrievalFacade.java

@@ -2,7 +2,7 @@ package com.diagbot.facade;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.diagbot.client.AiptServiceClient;
-import com.diagbot.dto.ConceptRetrievalDTO;
+import com.diagbot.dto.ConceptRetrievalExtDTO;
 import com.diagbot.dto.RespDTO;
 import com.diagbot.dto.RetrievalDTO;
 import com.diagbot.entity.QuestionInfo;
@@ -44,12 +44,12 @@ public class RetrievalFacade {
         retrievalVO.setType(QuestionTypeEnum.Symptom.getKey());
         List<RetrievalDTO> retrievalDTOS = new ArrayList<>();
         //调用aipt-服务
-        RespDTO<List<ConceptRetrievalDTO>> conceptInfos = aiptServiceClient.retrivelConceptInfo(retrievalVO);
+        RespDTO<List<ConceptRetrievalExtDTO>> conceptInfos = aiptServiceClient.retrivelConceptInfoExt(retrievalVO);
         RespDTOUtil.respNGDeal(conceptInfos, "获取检索信息失败");
         //获取questionId
         List<String> questionNames = new ArrayList<>();
         if (ListUtil.isNotEmpty(conceptInfos.data)) {
-            for (ConceptRetrievalDTO conceptRetrievalDTO : conceptInfos.data) {
+            for (ConceptRetrievalExtDTO conceptRetrievalDTO : conceptInfos.data) {
                 if (!questionNames.contains(conceptRetrievalDTO.getSelfName())
                         && conceptRetrievalDTO.getSelfName() != null) {
                     questionNames.add(conceptRetrievalDTO.getSelfName());
@@ -66,17 +66,17 @@ public class RetrievalFacade {
                     .collect(Collectors.toMap(QuestionInfo::getTagName, questionInfo -> questionInfo));
             RetrievalDTO retrievalDTO = new RetrievalDTO();
             //封装
-            for (ConceptRetrievalDTO conceptRetrievalDTO : conceptInfos.data) {
+            for (ConceptRetrievalExtDTO conceptRetrievalDTO : conceptInfos.data) {
                 retrievalDTO = new RetrievalDTO();
                 retrievalDTO.setConceptId(conceptRetrievalDTO.getSelfId());
                 retrievalDTO.setTagName(conceptRetrievalDTO.getSelfName());
                 if (null != questionInfoMap.get(conceptRetrievalDTO.getSelfName())) {//如果匹配到就添加questionId
                     retrievalDTO.setName(questionInfoMap.get(conceptRetrievalDTO.getSelfName()).getName());
                     retrievalDTO.setQuestionId(questionInfoMap.get(conceptRetrievalDTO.getSelfName()).getId());
-                    retrievalDTO.setDescription(questionInfoMap.get(conceptRetrievalDTO.getSelfName()).getDescription());
-                    if (StringUtil.isNotBlank(questionInfoMap.get(conceptRetrievalDTO.getSelfName()).getExplains())){
+                    retrievalDTO.setDescription(conceptRetrievalDTO.getDescription());
+                    if (StringUtil.isNotBlank(conceptRetrievalDTO.getExplains())){
                         retrievalDTO.setHasExplain(1);
-                        retrievalDTO.setExplains(questionInfoMap.get(conceptRetrievalDTO.getSelfName()).getExplains());
+                        retrievalDTO.setExplains(conceptRetrievalDTO.getExplains());
                     }
                 }
                 if (StringUtil.isNotEmpty(conceptRetrievalDTO.getSameName())) {//同义词
@@ -92,8 +92,7 @@ public class RetrievalFacade {
         //如何没有匹配到questionId就移除
         Iterator<RetrievalDTO> retrievalDTOIterator = retrievalDTOS.iterator();
         while (retrievalDTOIterator.hasNext()) {
-            RetrievalDTO retrievalDTO = new RetrievalDTO();
-            retrievalDTO = retrievalDTOIterator.next();
+            RetrievalDTO retrievalDTO = retrievalDTOIterator.next();
             if (retrievalDTO.getQuestionId() == null) {
                 retrievalDTOIterator.remove();
             }

+ 3 - 0
triage-service/src/main/java/com/diagbot/dto/ConceptRetrievalExtDTO.java

@@ -17,6 +17,9 @@ public class ConceptRetrievalExtDTO {
     private String parentName;//父级名称
     private String sameName;//同义词名称
     private Long showType;//显示类型(1本体,0同义词)
+    private Long libTypeId;//标签类型id
+    private String libTypeName;//标签类型名称
+    private Integer type;//questionType
     private String description;
     private String explains;
 }