Bladeren bron

提示信息优化

Zhaops 6 jaren geleden
bovenliggende
commit
8a97c4674d

+ 1 - 0
aipt-service/src/main/java/com/diagbot/client/bean/Medicition.java

@@ -24,4 +24,5 @@ public class Medicition {
      */
     private String showInfo = "0";
     private String rate;
+    private Integer type;
 }

+ 8 - 37
aipt-service/src/main/java/com/diagbot/facade/ConceptDetailFacade.java

@@ -49,9 +49,10 @@ public class ConceptDetailFacade extends ConceptDetailServiceImpl {
         }
         conceptIntroduceVO.setLibType(ParamConvertUtil.conceptConvert2Lib(conceptIntroduceVO.getType()));
         //验证存在并且获取概念基本信息
-        Concept concept = conceptFacade.exist(conceptIntroduceVO);
-
-        //获取概念提示信息
+        ConceptBaseVO conceptBaseVO = new ConceptBaseVO();
+        BeanUtil.copyProperties(conceptIntroduceVO, conceptBaseVO);
+        Concept concept = conceptFacade.exist(conceptBaseVO);
+        //提示信息明细
         QueryWrapper<ConceptDetail> conceptDetailQueryWrapper = new QueryWrapper<>();
         conceptDetailQueryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey())
                 .eq("concept_id", concept.getId())
@@ -82,46 +83,16 @@ public class ConceptDetailFacade extends ConceptDetailServiceImpl {
     }
 
     /**
-     * 获取静态知识明细
+     * 是否存在提示信息
      *
      * @param conceptIntroduceVO
      * @return
      */
-    public List<ConceptDetail> getConceptDetailList(ConceptIntroduceVO conceptIntroduceVO) {
+    public Boolean exist(ConceptIntroduceVO conceptIntroduceVO) {
         conceptIntroduceVO.setLibType(ParamConvertUtil.conceptConvert2Lib(conceptIntroduceVO.getType()));
         //验证存在并且获取概念基本信息
-        Concept concept = conceptFacade.exist(conceptIntroduceVO);
-
-        //获取概念提示信息
-        QueryWrapper<ConceptDetail> conceptDetailQueryWrapper = new QueryWrapper<>();
-        conceptDetailQueryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey())
-                .eq("concept_id", concept.getId())
-                .orderByAsc("order_no");
-        if (conceptIntroduceVO.getPosition() == null) {
-            if (conceptIntroduceVO.getLibType().equals(LexiconTypeEnum.DRUGS.getKey())) {
-                conceptIntroduceVO.setPosition(PositionTypeEnum.T5.getKey());
-            } else if (conceptIntroduceVO.getLibType().equals(LexiconTypeEnum.SIDE_EFFECTS.getKey())) {
-                conceptIntroduceVO.setPosition(PositionTypeEnum.T6.getKey());
-            } else {
-                conceptIntroduceVO.setPosition(PositionTypeEnum.T2.getKey());
-            }
-        }
-        conceptDetailQueryWrapper.apply("find_in_set({0},position)", conceptIntroduceVO.getPosition());
-        if (ListUtil.isNotEmpty(conceptIntroduceVO.getTitles())) {
-            conceptDetailQueryWrapper.in("title", conceptIntroduceVO.getTitles());
-        }
-        List<ConceptDetail> conceptDetailList = this.list(conceptDetailQueryWrapper);
-        return conceptDetailList;
-    }
-
-    /**
-     * 是否存在提示信息
-     *
-     * @param conceptBaseVO
-     * @return
-     */
-    public Boolean exist(ConceptBaseVO conceptBaseVO) {
-        //验证存在并且获取概念基本信息
+        ConceptBaseVO conceptBaseVO = new ConceptBaseVO();
+        BeanUtil.copyProperties(conceptIntroduceVO, conceptBaseVO);
         Concept concept = conceptFacade.exist(conceptBaseVO);
         QueryWrapper<ConceptDetail> conceptDetailQueryWrapper = new QueryWrapper<>();
         conceptDetailQueryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey())

+ 14 - 19
aipt-service/src/main/java/com/diagbot/facade/TreatmentFacade.java

@@ -1,23 +1,20 @@
 package com.diagbot.facade;
 
 import com.alibaba.fastjson.JSONObject;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.diagbot.client.bean.AdverseReaction;
 import com.diagbot.client.bean.Medicition;
 import com.diagbot.client.bean.MedicitionClass;
-import com.diagbot.dto.ConceptDetailDTO;
+import com.diagbot.dto.ConceptIntroduceDTO;
 import com.diagbot.dto.ConceptRes;
 import com.diagbot.entity.Concept;
-import com.diagbot.entity.ConceptDetail;
 import com.diagbot.entity.wrapper.ConceptWrapper;
 import com.diagbot.enums.ConceptTypeEnum;
 import com.diagbot.enums.DisTypeEnum;
-import com.diagbot.enums.PositionTypeEnum;
 import com.diagbot.enums.LexiconRSTypeEnum;
 import com.diagbot.enums.LexiconTypeEnum;
+import com.diagbot.enums.PositionTypeEnum;
 import com.diagbot.exception.CommonErrorCode;
 import com.diagbot.exception.CommonException;
-import com.diagbot.util.BeanUtil;
 import com.diagbot.util.EntityUtil;
 import com.diagbot.util.FastJsonUtils;
 import com.diagbot.util.ListUtil;
@@ -72,22 +69,18 @@ public class TreatmentFacade {
         conceptIntroduceVO.setLibType(LexiconTypeEnum.DIAGNOSIS.getKey());
         conceptIntroduceVO.setPosition(PositionTypeEnum.T3.getKey());
         conceptIntroduceVO.setType(ConceptTypeEnum.Disease.getKey());
-        List<ConceptDetail> commonTreatmentDetailList = conceptDetailFacade.getConceptDetailList(conceptIntroduceVO);
-        if (ListUtil.isNotEmpty(commonTreatmentDetailList)) {
-            ConceptDetailDTO commonDetailDTO = new ConceptDetailDTO();
-            BeanUtil.copyProperties(commonTreatmentDetailList.get(0), commonDetailDTO);
-            retMap.put("commonTreatment", commonDetailDTO);
+        ConceptIntroduceDTO commonTreatmentDetail = conceptDetailFacade.getConceptDetail(conceptIntroduceVO);
+        if (commonTreatmentDetail != null && ListUtil.isNotEmpty(commonTreatmentDetail.getDetails())) {
+            retMap.put("commonTreatment", commonTreatmentDetail.getDetails().get(0));
         } else {
             retMap.put("commonTreatment", null);
         }
 
         //手术治疗
         conceptIntroduceVO.setPosition(PositionTypeEnum.T4.getKey());
-        List<ConceptDetail> surgeryTreatmentDetailList = conceptDetailFacade.getConceptDetailList(conceptIntroduceVO);
-        if (ListUtil.isNotEmpty(surgeryTreatmentDetailList)) {
-            ConceptDetailDTO surgeryDetailDTO = new ConceptDetailDTO();
-            BeanUtil.copyProperties(surgeryTreatmentDetailList.get(0), surgeryDetailDTO);
-            retMap.put("surgeryTreatment", surgeryDetailDTO);
+        ConceptIntroduceDTO surgeryTreatmentDetail = conceptDetailFacade.getConceptDetail(conceptIntroduceVO);
+        if (surgeryTreatmentDetail != null && ListUtil.isNotEmpty(surgeryTreatmentDetail.getDetails())) {
+            retMap.put("surgeryTreatment", surgeryTreatmentDetail.getDetails().get(0));
         } else {
             retMap.put("surgeryTreatment", null);
         }
@@ -121,9 +114,10 @@ public class TreatmentFacade {
             medicitionClass.setSubdrugsLibType(LexiconTypeEnum.DRUG_CATEGORY_SMALL.getKey());
             medicitionClass.setSubdrugsType(ConceptTypeEnum.Drug_Category_Small.getKey());
             if (cateBigConcept != null) {
-                conceptBaseVO.setLibType(LexiconTypeEnum.DRUG_CATEGORY_BIG.getKey());
-                conceptBaseVO.setName(cateBigConcept.getLibName());
-                if (conceptDetailFacade.exist(conceptBaseVO)) {
+                conceptIntroduceVO = new ConceptIntroduceVO();
+                conceptIntroduceVO.setName(cateBigConcept.getLibName());
+                conceptIntroduceVO.setLibType(LexiconTypeEnum.DRUG_CATEGORY_BIG.getKey());
+                if (conceptDetailFacade.exist(conceptIntroduceVO)) {
                     medicitionClass.setShowInfo("1");
                 } else {
                     medicitionClass.setShowInfo("0");
@@ -139,7 +133,8 @@ public class TreatmentFacade {
                 if (drugConcept != null) {
                     medicition.setConceptId(drugConcept.getId());
                 }
-                medicition.setLibType(ConceptTypeEnum.Drug.getKey());
+                medicition.setLibType(LexiconTypeEnum.DRUGS.getKey());
+                medicition.setType(ConceptTypeEnum.Drug.getKey());
                 if (drugDetailMap != null && drugDetailMap.containsKey(medicition.getMedicitionName())) {
                     medicition.setShowInfo("1");
                 } else {

+ 9 - 2
aipt-service/src/main/java/com/diagbot/vo/ConceptIntroduceVO.java

@@ -1,8 +1,10 @@
 package com.diagbot.vo;
 
+import io.swagger.annotations.ApiModelProperty;
 import lombok.Getter;
 import lombok.Setter;
 
+import javax.validation.constraints.NotBlank;
 import javax.validation.constraints.NotNull;
 import java.util.List;
 
@@ -13,8 +15,13 @@ import java.util.List;
  */
 @Getter
 @Setter
-public class ConceptIntroduceVO extends ConceptBaseVO {
+public class ConceptIntroduceVO {
+    @NotBlank(message = "请输入概念名称")
+    private String name;
+    @NotNull(message = "请输入概念词性")
+    private Integer type;
     private Integer position;
     private List<String> titles;
-    private Integer type;
+    @ApiModelProperty(hidden = true)
+    private Integer libType;
 }

+ 5 - 7
aipt-service/src/main/java/com/diagbot/web/ConceptDetailController.java

@@ -45,26 +45,24 @@ public class ConceptDetailController {
                     "position:1-摘要,2-全文,5-药品说明书,6-不良反应,单选选填")
     @PostMapping("/getConceptDetail")
     @SysLogger("getConceptDetail")
-    public RespDTO<ConceptIntroduceDTO> getConceptDetail(@RequestBody ConceptIntroduceVO conceptIntroduceVO) {
+    public RespDTO<ConceptIntroduceDTO> getConceptDetail(@Valid @RequestBody ConceptIntroduceVO conceptIntroduceVO) {
         ConceptIntroduceDTO data = conceptDetailFacade.getConceptDetail(conceptIntroduceVO);
         return RespDTO.onSuc(data);
     }
 
     @ApiOperation(value = "知识库标准化-获取提示信息存在性[by:zhaops]",
             notes = "name: 标签名称,必填<br>" +
-                    "libType:标签类型(1-症状,5-化验,6-辅检,7-诊断,8-药品,9-药品大类,10-不良反应,11-药品小类,12-化验公表项,22-指标),单选必填<br>")
+                    "type:标签类型(1-症状,5-化验,6-辅检,7-诊断,8-药品,9-药品大类,10-不良反应,11-药品小类,12-化验公表项,22-指标),单选必填<br>")
     @PostMapping("/exist")
     @SysLogger("exist")
     @ApiIgnore
-    public RespDTO<Bool> exist(@Valid @RequestBody ConceptBaseVO conceptBaseVO) {
-        conceptBaseVO.setLibType(ParamConvertUtil.conceptConvert2Lib(conceptBaseVO.getLibType()));
-        Boolean data = conceptDetailFacade.exist(conceptBaseVO);
+    public RespDTO<Bool> exist(@Valid @RequestBody ConceptIntroduceVO conceptIntroduceVO) {
+        Boolean data = conceptDetailFacade.exist(conceptIntroduceVO);
         return RespDTO.onSuc(data);
     }
 
     @ApiOperation(value = "知识库标准化-获取提示信息存在性[by:zhaops]",
-            notes = "name: 标签名称,必填<br>" +
-                    "libType:标签类型(1-症状,5-化验,6-辅检,7-诊断,8-药品,9-药品大类,10-不良反应,11-药品小类,12-化验公表项,22-指标),单选必填<br>")
+            notes = "conceptIds: 概念id,必填<br>")
     @PostMapping("/existListByConceptIds")
     @SysLogger("existListByConceptIds")
     @ApiIgnore

+ 1 - 1
data-service/src/main/java/com/diagbot/client/AiptServiceClient.java

@@ -71,5 +71,5 @@ public interface AiptServiceClient {
      * @return
      */
     @PostMapping(value = "/conceptDetail/getConceptDetail")
-    RespDTO<ConceptIntroduceDTO> getConceptDetail(@RequestBody ConceptIntroduceVO conceptIntroduceVO);
+    RespDTO<ConceptIntroduceDTO> getConceptDetail(@Valid @RequestBody ConceptIntroduceVO conceptIntroduceVO);
 }

+ 1 - 1
data-service/src/main/java/com/diagbot/client/hystrix/AiptServiceHystrix.java

@@ -86,7 +86,7 @@ public class AiptServiceHystrix implements AiptServiceClient {
      * @return
      */
     @Override
-    public RespDTO<ConceptIntroduceDTO> getConceptDetail(@RequestBody ConceptIntroduceVO conceptIntroduceVO) {
+    public RespDTO<ConceptIntroduceDTO> getConceptDetail(@Valid @RequestBody ConceptIntroduceVO conceptIntroduceVO) {
         log.error("【hystrix】调用{}异常", "getConceptDetail");
         return null;
     }

+ 4 - 4
data-service/src/main/java/com/diagbot/vo/ConceptIntroduceVO.java

@@ -16,14 +16,14 @@ import java.util.List;
 @Getter
 @Setter
 public class ConceptIntroduceVO {
+    @NotBlank(message = "请输入概念名称")
+    private String name;
+    @NotNull(message = "请输入概念词性")
+    private Integer type;
     //此版本暂不提供该过滤条件
     @ApiModelProperty(hidden = true)
     private Integer position;
     //此版本暂不提供该过滤条件
     @ApiModelProperty(hidden = true)
     private List<String> titles;
-    @NotNull(message = "词性不能为空")
-    private Integer type;
-    @NotBlank(message = "概念名称不能为空")
-    private String name;
 }

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

@@ -70,7 +70,7 @@ public interface AiptServiceClient {
     RespDTO<List<ScaleContent>> getScale(@RequestBody SearchData searchData);
 
     @PostMapping(value = "/conceptDetail/getConceptDetail")
-    RespDTO<ConceptIntroduceDTO> getConceptDetail(@RequestBody ConceptIntroduceVO conceptIntroduceVO);
+    RespDTO<ConceptIntroduceDTO> getConceptDetail(@Valid @RequestBody ConceptIntroduceVO conceptIntroduceVO);
 
     @PostMapping(value = "/concept/exist")
     RespDTO<ConceptBaseDTO> existConcept(@RequestBody @Valid ConceptBaseVO conceptBaseVO);
@@ -147,11 +147,11 @@ public interface AiptServiceClient {
     /**
      * 是否有提示信息
      *
-     * @param conceptBaseVO
+     * @param conceptIntroduceVO
      * @return
      */
     @PostMapping("/conceptDetail/exist")
-    RespDTO<Boolean> existConceptDetail(@Valid @RequestBody ConceptBaseVO conceptBaseVO);
+    RespDTO<Boolean> existConceptDetail(@Valid @RequestBody ConceptIntroduceVO conceptIntroduceVO);
 
     /**
      * 验证诊断类型

+ 1 - 0
icss-service/src/main/java/com/diagbot/client/bean/Medicition.java

@@ -24,4 +24,5 @@ public class Medicition {
      */
     private String showInfo = "0";
     private String rate;
+    private Integer type;
 }

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

@@ -89,7 +89,7 @@ public class AiptServiceHystrix implements AiptServiceClient {
     }
 
     @Override
-    public RespDTO<ConceptIntroduceDTO> getConceptDetail(@RequestBody ConceptIntroduceVO conceptIntroduceVO) {
+    public RespDTO<ConceptIntroduceDTO> getConceptDetail(@Valid @RequestBody ConceptIntroduceVO conceptIntroduceVO) {
         log.error("【hystrix】调用{}异常", "getConceptDetail");
         return null;
     }
@@ -181,11 +181,11 @@ public class AiptServiceHystrix implements AiptServiceClient {
     /**
      * 是否有提示信息
      *
-     * @param conceptBaseVO
+     * @param conceptIntroduceVO
      * @return
      */
     @Override
-    public RespDTO<Boolean> existConceptDetail(@Valid @RequestBody ConceptBaseVO conceptBaseVO) {
+    public RespDTO<Boolean> existConceptDetail(@Valid @RequestBody ConceptIntroduceVO conceptIntroduceVO) {
         log.error("【hystrix】调用{}异常", "existConceptDetail");
         return null;
     }

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

@@ -25,7 +25,6 @@ public class ConceptDetailFacade {
      * @return
      */
     public ConceptIntroduceDTO getConceptDetail(ConceptIntroduceVO conceptIntroduceVO) {
-        conceptIntroduceVO.setLibType(conceptIntroduceVO.getType());
         RespDTO<ConceptIntroduceDTO> res = aiptServiceClient.getConceptDetail(conceptIntroduceVO);
         RespDTOUtil.respNGDeal(res, "获取提示信息失败");
         return res.data;

+ 18 - 6
icss-service/src/main/java/com/diagbot/facade/TreatmentFacade.java

@@ -8,9 +8,13 @@ import com.diagbot.client.bean.Medicition;
 import com.diagbot.dto.RespDTO;
 import com.diagbot.entity.InquiryDrug;
 import com.diagbot.entity.InquiryInfo;
+import com.diagbot.enums.ConceptTypeEnum;
 import com.diagbot.enums.DisTypeEnum;
 import com.diagbot.enums.IsDeleteEnum;
+import com.diagbot.util.ListUtil;
 import com.diagbot.util.RespDTOUtil;
+import com.diagbot.vo.ConceptIntroduceVO;
+import com.diagbot.vo.ExistListByConceptIdsVO;
 import com.google.common.collect.Lists;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
@@ -18,6 +22,7 @@ import org.springframework.stereotype.Component;
 import java.util.LinkedHashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.stream.Collectors;
 
 /**
  * @Description:
@@ -82,17 +87,24 @@ public class TreatmentFacade {
                 inquiryDrugQueryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey()).eq("inquiry_id", inquiryInfo.getId());
                 List<InquiryDrug> inquiryDrugList = inquiryDrugFacade.list(inquiryDrugQueryWrapper);
                 List<Medicition> medicitionList = Lists.newLinkedList();
+                List<Long> conceptIds = inquiryDrugList.stream().map(inquiryDrug -> inquiryDrug.getConceptId()).collect(Collectors.toList());
+                ExistListByConceptIdsVO existListByConceptIds = new ExistListByConceptIdsVO();
+                existListByConceptIds.setConceptIds(conceptIds);
+                RespDTO<List<Long>> res = aiptServiceClient.existListByConceptIds(existListByConceptIds);
+                List<Long> retConceptIds = Lists.newLinkedList();
+                if (RespDTOUtil.respIsOK(res)) {
+                    retConceptIds = res.data;
+                }
                 for (InquiryDrug inquiryDrug : inquiryDrugList) {
                     Medicition medicition = new Medicition();
                     medicition.setConceptId(inquiryDrug.getConceptId());
                     medicition.setMedicitionName(inquiryDrug.getConceptName());
-                    medicition.setLibType(8);
+                    medicition.setType(ConceptTypeEnum.Drug.getKey());
                     medicition.setIsShow("1");
-                    ConceptBaseVO conceptBaseVO = new ConceptBaseVO();
-                    conceptBaseVO.setName(medicition.getMedicitionName());
-                    conceptBaseVO.setLibType(8);
-                    RespDTO<Boolean> res = aiptServiceClient.existConceptDetail(conceptBaseVO);
-                    if (RespDTOUtil.respIsOK(res) && res.data == true) {
+                    ConceptIntroduceVO conceptIntroduceVO = new ConceptIntroduceVO();
+                    conceptIntroduceVO.setName(medicition.getMedicitionName());
+                    conceptIntroduceVO.setType(ConceptTypeEnum.Drug.getKey());
+                    if (ListUtil.isNotEmpty(retConceptIds) && retConceptIds.contains(inquiryDrug.getConceptId())) {
                         medicition.setShowInfo("1");
                     } else {
                         medicition.setShowInfo("0");

+ 3 - 6
icss-service/src/main/java/com/diagbot/vo/ConceptIntroduceVO.java

@@ -1,6 +1,5 @@
 package com.diagbot.vo;
 
-import io.swagger.annotations.ApiModelProperty;
 import lombok.Getter;
 import lombok.Setter;
 
@@ -15,11 +14,9 @@ import javax.validation.constraints.NotNull;
 @Getter
 @Setter
 public class ConceptIntroduceVO {
-    @NotBlank(message = "概念名称不能为空")
+    @NotBlank(message = "请输入概念名称")
     private String name;
-    @ApiModelProperty(hidden = true)
-    private Integer libType;
-    private Integer position;
-    @NotNull(message = "词性不能为空")
+    @NotNull(message = "请输入概念词性")
     private Integer type;
+    private Integer position;
 }