Pārlūkot izejas kodu

静态知识检索

wangyu 6 gadi atpakaļ
vecāks
revīzija
9472098b8b

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

@@ -18,6 +18,7 @@ import com.diagbot.util.ParamConvertUtil;
 import com.diagbot.util.StringUtil;
 import com.diagbot.vo.ConceptBaseVO;
 import com.diagbot.vo.ConceptIntroduceVO;
+import com.diagbot.vo.ExistListByConceptIdsVO;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
@@ -167,13 +168,13 @@ public class ConceptDetailFacade extends ConceptDetailServiceImpl {
     /**
      * 根据概念id验证提示信息是否存在
      *
-     * @param conceptIds
+     * @param existListByConceptIdsVO
      * @return
      */
-    public List<Long> existListByConceptIds(List<Long> conceptIds) {
+    public List<Long> existListByConceptIds(ExistListByConceptIdsVO existListByConceptIdsVO) {
         QueryWrapper<ConceptDetail> conceptDetailQueryWrapper = new QueryWrapper<>();
         conceptDetailQueryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey())
-                .in("concept_id", conceptIds);
+                .in("concept_id", existListByConceptIdsVO.getConceptIds());
         List<ConceptDetail> conceptDetailList = this.list(conceptDetailQueryWrapper);
         if (ListUtil.isNotEmpty(conceptDetailList)) {
             List<Long> retConceptIds = conceptDetailList.stream().map(conceptDetail -> conceptDetail.getConceptId()).distinct().collect(Collectors.toList());

+ 18 - 0
aipt-service/src/main/java/com/diagbot/vo/ExistListByConceptIdsVO.java

@@ -0,0 +1,18 @@
+package com.diagbot.vo;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.List;
+
+/**
+ * @Description:
+ * @author: wangyu
+ * @time: 2019/5/24 9:48
+ */
+@Getter
+@Setter
+public class ExistListByConceptIdsVO {
+    //概念id
+    private List<Long> conceptIds;
+}

+ 13 - 0
aipt-service/src/main/java/com/diagbot/web/ConceptDetailController.java

@@ -8,6 +8,7 @@ import com.diagbot.facade.ConceptDetailFacade;
 import com.diagbot.util.ParamConvertUtil;
 import com.diagbot.vo.ConceptBaseVO;
 import com.diagbot.vo.ConceptIntroduceVO;
+import com.diagbot.vo.ExistListByConceptIdsVO;
 import com.sun.org.apache.xpath.internal.operations.Bool;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -19,6 +20,7 @@ import org.springframework.web.bind.annotation.RestController;
 import springfox.documentation.annotations.ApiIgnore;
 
 import javax.validation.Valid;
+import java.util.List;
 
 /**
  * <p>
@@ -59,4 +61,15 @@ public class ConceptDetailController {
         Boolean data = conceptDetailFacade.exist(conceptBaseVO);
         return RespDTO.onSuc(data);
     }
+
+    @ApiOperation(value = "知识库标准化-获取提示信息存在性[by:zhaops]",
+            notes = "name: 标签名称,必填<br>" +
+                    "libType:标签类型(1-症状,5-化验,6-辅检,7-诊断,8-药品,9-药品大类,10-不良反应,11-药品小类,12-化验公表项,22-指标),单选必填<br>")
+    @PostMapping("/existListByConceptIds")
+    @SysLogger("existListByConceptIds")
+    @ApiIgnore
+    public RespDTO<List<Long>> existListByConceptIds(@Valid @RequestBody ExistListByConceptIdsVO existListByConceptIdsVO) {
+        List<Long> data = conceptDetailFacade.existListByConceptIds(existListByConceptIdsVO);
+        return RespDTO.onSuc(data);
+    }
 }

+ 10 - 0
icss-service/src/main/java/com/diagbot/client/AiptServiceClient.java

@@ -28,6 +28,7 @@ import com.diagbot.vo.ConceptSearchVO;
 import com.diagbot.vo.ConceptUsualVO;
 import com.diagbot.vo.DeptInfoVO;
 import com.diagbot.vo.DisScaleVO;
+import com.diagbot.vo.ExistListByConceptIdsVO;
 import com.diagbot.vo.GetDiseaseIcdVO;
 import com.diagbot.vo.GetTopPatientInfoVO;
 import com.diagbot.vo.IndexConfigdiseaseNameVO;
@@ -195,4 +196,13 @@ public interface AiptServiceClient {
 
     @PostMapping("/disclaimerInformation/getDisclaimerInformations")
     RespDTO<List<DisclaimerInformationDTO>> getDisclaimerInformations();
+
+    /**
+     * 验证是否存在静态知识
+     *
+     * @param existListByConceptIdsVO
+     * @return
+     */
+    @PostMapping("/conceptDetail/existListByConceptIds")
+    RespDTO<List<Long>> existListByConceptIds(ExistListByConceptIdsVO existListByConceptIdsVO);
 }

+ 13 - 0
icss-service/src/main/java/com/diagbot/client/hystrix/AiptServiceHystrix.java

@@ -28,6 +28,7 @@ import com.diagbot.vo.ConceptSearchVO;
 import com.diagbot.vo.ConceptUsualVO;
 import com.diagbot.vo.DeptInfoVO;
 import com.diagbot.vo.DisScaleVO;
+import com.diagbot.vo.ExistListByConceptIdsVO;
 import com.diagbot.vo.GetDiseaseIcdVO;
 import com.diagbot.vo.GetTopPatientInfoVO;
 import com.diagbot.vo.IndexConfigdiseaseNameVO;
@@ -254,4 +255,16 @@ public class AiptServiceHystrix implements AiptServiceClient {
         log.error("【hystrix】调用{}异常", "getDisclaimerInformations");
         return null;
     }
+
+    /**
+     * 判断静态知识是否存在
+     *
+     * @param existListByConceptIdsVO
+     * @return
+     */
+    @Override
+    public RespDTO<List<Long>> existListByConceptIds(ExistListByConceptIdsVO existListByConceptIdsVO) {
+        log.error("【hystrix】调用{}异常", "existListByConceptIds");
+        return null;
+    }
 }

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

@@ -7,9 +7,12 @@ import com.diagbot.dto.RespDTO;
 import com.diagbot.dto.RetrievalDTO;
 import com.diagbot.entity.QuestionInfo;
 import com.diagbot.enums.IsDeleteEnum;
+import com.diagbot.util.BeanUtil;
 import com.diagbot.util.ListUtil;
 import com.diagbot.util.RespDTOUtil;
 import com.diagbot.util.StringUtil;
+import com.diagbot.vo.ExistListByConceptIdsVO;
+import com.diagbot.vo.GetStaticKnowledgeVO;
 import com.diagbot.vo.RetrievalVO;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
@@ -67,7 +70,9 @@ public class RetrievalFacade {
                 retrievalDTO.setConceptId(conceptRetrievalDTO.getSelfId());
                 retrievalDTO.setName(conceptRetrievalDTO.getSelfName());
                 if (StringUtil.isNotEmpty(conceptRetrievalDTO.getParentName())) {//parent不为空时说明有子项,返回父级id
-                    retrievalDTO.setQuestionId(questionInfoMap.get(conceptRetrievalDTO.getParentName()).getId());
+                    if(null != questionInfoMap.get(conceptRetrievalDTO.getParentName())){//如果匹配到就添加questionId
+                        retrievalDTO.setQuestionId(questionInfoMap.get(conceptRetrievalDTO.getParentName()).getId());
+                    }
                     retrievalDTO.setRetrievalName(conceptRetrievalDTO.getParentName());
                 } else {//parent为空时说明没有子项返回本体id
                     if(null != questionInfoMap.get(conceptRetrievalDTO.getSelfName())){//如果匹配到就添加questionId
@@ -86,4 +91,33 @@ public class RetrievalFacade {
         }
         return retrievalDTOS;
     }
+
+    /**
+     * 静态知识标签检索
+     *
+     * @param getStaticKnowledgeVO
+     * @return
+     */
+    public List<RetrievalDTO> getStaticKnowledge(GetStaticKnowledgeVO getStaticKnowledgeVO){
+        RetrievalVO retrievalVO = new RetrievalVO();
+        RetrievalDTO retrievalDTO = new RetrievalDTO();
+        BeanUtil.copyProperties(getStaticKnowledgeVO,retrievalVO);
+        List<RetrievalDTO> retrievalDTOList = this.getTagInfos(retrievalVO);
+        List<RetrievalDTO> staticRetrievalList = new ArrayList<>();
+        List<Long> cenceptIdList = retrievalDTOList.stream().map(RetrievalDTO::getConceptId).collect(Collectors.toList());
+        ExistListByConceptIdsVO existListByConceptIdsVO = new ExistListByConceptIdsVO();
+        existListByConceptIdsVO.setConceptIds(cenceptIdList);
+        RespDTO<List<Long>> existConceptIdList = aiptServiceClient.existListByConceptIds(existListByConceptIdsVO);
+        RespDTOUtil.respNGDeal(existConceptIdList,"获取静态知识失败");
+        for (RetrievalDTO retrievalDTOInfo : retrievalDTOList) {
+            for (Long concept : existConceptIdList.data) {
+                if (retrievalDTOInfo.getConceptId().intValue() == concept.intValue()){
+                    retrievalDTO = new RetrievalDTO();
+                    BeanUtil.copyProperties(retrievalDTOInfo,retrievalDTO);
+                    staticRetrievalList.add(retrievalDTO);
+                }
+            }
+        }
+        return staticRetrievalList;
+    }
 }

+ 18 - 0
icss-service/src/main/java/com/diagbot/vo/ExistListByConceptIdsVO.java

@@ -0,0 +1,18 @@
+package com.diagbot.vo;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.List;
+
+/**
+ * @Description:
+ * @author: wangyu
+ * @time: 2019/5/24 9:48
+ */
+@Getter
+@Setter
+public class ExistListByConceptIdsVO {
+    //概念id
+    private List<Long> conceptIds;
+}

+ 20 - 0
icss-service/src/main/java/com/diagbot/vo/GetStaticKnowledgeVO.java

@@ -0,0 +1,20 @@
+package com.diagbot.vo;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.List;
+
+/**
+ * @Description:
+ * @author: wangyu
+ * @time: 2019/5/24 9:23
+ */
+@Getter
+@Setter
+public class GetStaticKnowledgeVO {
+    //检索内容
+    private String InputStr;
+    //需要去重的id
+    private List<Long> inputIds;
+}

+ 11 - 0
icss-service/src/main/java/com/diagbot/web/RetrievalController.java

@@ -5,6 +5,7 @@ import com.diagbot.annotation.SysLogger;
 import com.diagbot.dto.RespDTO;
 import com.diagbot.dto.RetrievalDTO;
 import com.diagbot.facade.RetrievalFacade;
+import com.diagbot.vo.GetStaticKnowledgeVO;
 import com.diagbot.vo.RetrievalVO;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -47,4 +48,14 @@ public class RetrievalController {
         List<RetrievalDTO> data = retrievalFacade.getTagInfos(retrievalVO);
         return RespDTO.onSuc(data);
     }
+
+    @ApiOperation(value = "静态知识-页面检索[by:wangyu]",
+            notes = "inputStr:检索内容,必填<br>" +
+                    "inputIds:需要去重的id<br>")
+    @PostMapping("/getStaticKnowledge")
+    @SysLogger("getStaticKnowledge")
+    public RespDTO<List<RetrievalDTO>> getStaticKnowledge(@Valid @RequestBody GetStaticKnowledgeVO getStaticKnowledgeVO) {
+        List<RetrievalDTO> data = retrievalFacade.getStaticKnowledge(getStaticKnowledgeVO);
+        return RespDTO.onSuc(data);
+    }
 }