Parcourir la source

静态知识检索

zhaops il y a 4 ans
Parent
commit
f0d75b40a2

+ 58 - 58
cdssman-service/src/main/java/com/diagbot/facade/ConceptInfoFacade.java

@@ -68,7 +68,8 @@ public class ConceptInfoFacade extends ConceptInfoServiceImpl {
      * @return
      */
     public List<StaticKnowledgeIndexDTO> staticKnowledgeIndexWithoutInfo(StaticKnowledgeIndexVO staticKnowledgeIndexVO) {
-        List<StaticKnowledgeIndexDTO> staticKnowledgeIndexDTOList = staticKnowledgeIndex(staticKnowledgeIndexVO, 1);
+        staticKnowledgeIndexVO.setHasInfo(0);
+        List<StaticKnowledgeIndexDTO> staticKnowledgeIndexDTOList = staticKnowledgeIndex(staticKnowledgeIndexVO);
         //过滤没有静态知识的检索结果
         staticKnowledgeIndexDTOList = staticKnowledgeIndexDTOList
                 .stream()
@@ -81,10 +82,9 @@ public class ConceptInfoFacade extends ConceptInfoServiceImpl {
      * 医学知识(静态信息)检索
      *
      * @param staticKnowledgeIndexVO
-     * @param type                   0:过滤逻辑删除数据,1:不过滤逻辑删除数据
      * @return
      */
-    public List<StaticKnowledgeIndexDTO> staticKnowledgeIndex(StaticKnowledgeIndexVO staticKnowledgeIndexVO, Integer type) {
+    public List<StaticKnowledgeIndexDTO> staticKnowledgeIndex(StaticKnowledgeIndexVO staticKnowledgeIndexVO) {
         List<StaticKnowledgeIndexDTO> retList = Lists.newLinkedList();
         //静态知识检索顺序
         List<DictionaryInfoDTO> dicStaticIndexList = dictionaryFacade.getListByGroupType(7);
@@ -100,64 +100,64 @@ public class ConceptInfoFacade extends ConceptInfoServiceImpl {
             staticKnowledgeIndexDTOList.forEach(item -> {
                 item.setTypeName(convertTypeName(item.getTypeName(), 2, dicTypeMappingList));
             });
-            //是否有静态知识
-            List<String> conNameList = staticKnowledgeIndexDTOList
-                    .stream()
-                    .map(i -> i.getName())
-                    .collect(Collectors.toList());
-            QueryWrapper<ConceptInfo> conceptInfoQueryWrapper = new QueryWrapper<>();
-            conceptInfoQueryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey())
-                    .in("name", conNameList);
-            if (type.equals(0)) {
-                conceptInfoQueryWrapper.eq("status", StatusEnum.Enable.getKey());
-            }
-            List<ConceptInfo> conceptInfoList = this.list(conceptInfoQueryWrapper);
-            if (ListUtil.isNotEmpty(conceptInfoList)) {
-                //typeName转换
-                conceptInfoList.forEach(item -> {
-                    item.setType(convertTypeName(item.getType(), 2, dicTypeMappingList));
-                });
-                Map<String, ConceptInfo> infoMap
-                        = EntityUtil.makeEntityMapByKeys(conceptInfoList, "_", "name", "type");
-                for (StaticKnowledgeIndexDTO item : staticKnowledgeIndexDTOList) {
-                    if (infoMap.containsKey(item.getName() + "_" + item.getTypeName())) {
-                        item.setId(infoMap.get(item.getName() + "_" + item.getTypeName()).getId());
-                    }
-                }
-                List<Long> conceptIdList = conceptInfoList.stream()
-                        .map(i -> i.getId())
+            if (staticKnowledgeIndexVO.getHasInfo().equals(1)) {
+                //是否有静态知识
+                List<String> conNameList = staticKnowledgeIndexDTOList
+                        .stream()
+                        .map(i -> i.getName())
                         .collect(Collectors.toList());
-                if (ListUtil.isNotEmpty(conceptIdList)) {
-                    QueryWrapper<ConceptDetail> conceptDetailQueryWrapper = new QueryWrapper<>();
-                    conceptDetailQueryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey());
-                    conceptDetailQueryWrapper.in("concept_id", conceptIdList);
-                    List<ConceptDetail> conceptDetailList = conceptDetailFacade.list(conceptDetailQueryWrapper);
-                    Map<Long, List<ConceptDetail>> detailMap
-                            = EntityUtil.makeEntityListMap(conceptDetailList, "conceptId");
+                QueryWrapper<ConceptInfo> conceptInfoQueryWrapper = new QueryWrapper<>();
+                conceptInfoQueryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey())
+                        .in("name", conNameList)
+                        .eq("status", StatusEnum.Enable.getKey());
+                List<ConceptInfo> conceptInfoList = this.list(conceptInfoQueryWrapper);
+                if (ListUtil.isNotEmpty(conceptInfoList)) {
+                    //typeName转换
+                    conceptInfoList.forEach(item -> {
+                        item.setType(convertTypeName(item.getType(), 2, dicTypeMappingList));
+                    });
+                    Map<String, ConceptInfo> infoMap
+                            = EntityUtil.makeEntityMapByKeys(conceptInfoList, "_", "name", "type");
                     for (StaticKnowledgeIndexDTO item : staticKnowledgeIndexDTOList) {
-                        if (item.getId() == null
-                                || !detailMap.containsKey(item.getId())) {
-                            item.setHasInfo(0);
-                            item.setHasStaticKnowledge(0);
-                            item.setHasClinicalPathway(0);
-                            item.setHasNotice((0));
-                            item.setHasTreatInfo(0);
-                            continue;
+                        if (infoMap.containsKey(item.getName() + "_" + item.getTypeName())) {
+                            item.setId(infoMap.get(item.getName() + "_" + item.getTypeName()).getId());
                         }
-                        for (ConceptDetail detail : detailMap.get(item.getId())) {
-                            item.setHasInfo(1);
-                            List<String> contentTypeList = Arrays.asList(detail.getContentType().split(","));
-                            if (contentTypeList.contains("1")) {
-                                item.setHasStaticKnowledge(1);
-                            }
-                            if (contentTypeList.contains("2")) {
-                                item.setHasNotice(1);
-                            }
-                            if (contentTypeList.contains("3")) {
-                                item.setHasClinicalPathway(1);
+                    }
+                    List<Long> conceptIdList = conceptInfoList.stream()
+                            .map(i -> i.getId())
+                            .collect(Collectors.toList());
+                    if (ListUtil.isNotEmpty(conceptIdList)) {
+                        QueryWrapper<ConceptDetail> conceptDetailQueryWrapper = new QueryWrapper<>();
+                        conceptDetailQueryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey());
+                        conceptDetailQueryWrapper.in("concept_id", conceptIdList);
+                        List<ConceptDetail> conceptDetailList = conceptDetailFacade.list(conceptDetailQueryWrapper);
+                        Map<Long, List<ConceptDetail>> detailMap
+                                = EntityUtil.makeEntityListMap(conceptDetailList, "conceptId");
+                        for (StaticKnowledgeIndexDTO item : staticKnowledgeIndexDTOList) {
+                            if (item.getId() == null
+                                    || !detailMap.containsKey(item.getId())) {
+                                item.setHasInfo(0);
+                                item.setHasStaticKnowledge(0);
+                                item.setHasClinicalPathway(0);
+                                item.setHasNotice((0));
+                                item.setHasTreatInfo(0);
+                                continue;
                             }
-                            if (contentTypeList.contains("4")) {
-                                item.setHasTreatInfo(1);
+                            for (ConceptDetail detail : detailMap.get(item.getId())) {
+                                item.setHasInfo(1);
+                                List<String> contentTypeList = Arrays.asList(detail.getContentType().split(","));
+                                if (contentTypeList.contains("1")) {
+                                    item.setHasStaticKnowledge(1);
+                                }
+                                if (contentTypeList.contains("2")) {
+                                    item.setHasNotice(1);
+                                }
+                                if (contentTypeList.contains("3")) {
+                                    item.setHasClinicalPathway(1);
+                                }
+                                if (contentTypeList.contains("4")) {
+                                    item.setHasTreatInfo(1);
+                                }
                             }
                         }
                     }
@@ -295,7 +295,7 @@ public class ConceptInfoFacade extends ConceptInfoServiceImpl {
             RespDTO<Boolean> respDTO = cdssCoreClient.updateHasInfoStatus(hasStaticKnowledgeVO);
             //更新失败
             if (RespDTOUtil.respIsNG(respDTO)) {
-
+                throw new CommonException(CommonErrorCode.SERVER_IS_ERROR, "图谱更新静态知识状态失败");
             }
         }
 

+ 10 - 1
cdssman-service/src/main/java/com/diagbot/vo/StaticKnowledgeIndexVO.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;
 
@@ -17,10 +19,17 @@ public class StaticKnowledgeIndexVO {
     /**
      * 检索内容
      */
+    @NotBlank(message = "请输入检索内容")
     private String inputStr;
     /**
-     * 检索类型(多选):0-全部、1-诊断、2-药品、3-检验、5-检查、6-手术和操作
+     * 检索类型(多选):0-全部、1-诊断、2-药品、3-检验、4-检查、5-手术和操作
      */
     @NotNull(message = "请输入检索类型")
     private List<Integer> types;
+
+    /**
+     * 是否有静态知识:0-无,1-有
+     */
+    @ApiModelProperty(hidden = true)
+    private Integer hasInfo;
 }