Selaa lähdekoodia

Merge remote-tracking branch 'origin/dev/neo2mysql20210120' into dev/neo2mysql20210120

# Conflicts:
#	cdssman-service/src/main/java/com/diagbot/facade/KlConceptFacade.java
wangfeng 4 vuotta sitten
vanhempi
commit
cbd2990e7f
18 muutettua tiedostoa jossa 373 lisäystä ja 306 poistoa
  1. 2 1
      cdssman-service/src/main/java/com/diagbot/dto/DiseaseDetailDTO.java
  2. 19 0
      cdssman-service/src/main/java/com/diagbot/dto/DiseaseTreeDetailDTO.java
  3. 60 0
      cdssman-service/src/main/java/com/diagbot/enums/DiseaseRelationTypeEnum.java
  4. 8 8
      cdssman-service/src/main/java/com/diagbot/facade/KlConceptFacade.java
  5. 62 29
      cdssman-service/src/main/java/com/diagbot/facade/KlDiseaseFacade.java
  6. 0 12
      cdssman-service/src/main/java/com/diagbot/facade/KlLexiconRelationshipFacade.java
  7. 1 1
      cdssman-service/src/main/java/com/diagbot/facade/KlRelationFacade.java
  8. 43 203
      cdssman-service/src/main/java/com/diagbot/facade/RelationContactFacade.java
  9. 2 0
      cdssman-service/src/main/java/com/diagbot/mapper/KlDiseaseMapper.java
  10. 3 0
      cdssman-service/src/main/java/com/diagbot/service/KlDiseaseService.java
  11. 8 0
      cdssman-service/src/main/java/com/diagbot/service/impl/KlDiseaseServiceImpl.java
  12. 22 0
      cdssman-service/src/main/java/com/diagbot/vo/DiseaseDeleteVO.java
  13. 4 0
      cdssman-service/src/main/java/com/diagbot/vo/GetAllForRelationVO.java
  14. 5 4
      cdssman-service/src/main/java/com/diagbot/vo/GetDiseaseDetailVO.java
  15. 5 1
      cdssman-service/src/main/java/com/diagbot/vo/SearchConceptVO.java
  16. 43 18
      cdssman-service/src/main/java/com/diagbot/web/KlDiseaseController.java
  17. 26 11
      cdssman-service/src/main/java/com/diagbot/web/TreeContactController.java
  18. 60 18
      cdssman-service/src/main/resources/mapper/KlDiseaseMapper.xml

+ 2 - 1
cdssman-service/src/main/java/com/diagbot/dto/DiseaseDetailDTO.java

@@ -4,6 +4,7 @@ import lombok.Getter;
 import lombok.Setter;
 
 import java.io.Serializable;
+import java.util.ArrayList;
 import java.util.List;
 
 /**
@@ -16,5 +17,5 @@ import java.util.List;
 public class DiseaseDetailDTO implements Serializable {
     private Long sid;
     private String disName;
-    List<DiseaseSubDetailDTO> datas;
+    List<DiseaseSubDetailDTO> datas = new ArrayList<>();
 }

+ 19 - 0
cdssman-service/src/main/java/com/diagbot/dto/DiseaseTreeDetailDTO.java

@@ -0,0 +1,19 @@
+package com.diagbot.dto;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.List;
+
+/**
+ * @author kwz
+ * @date 2021/3/11
+ * @time 14:37
+ */
+@Setter
+@Getter
+public class DiseaseTreeDetailDTO {
+    private List<List<String>> types;
+
+    private DiseaseDetailDTO diseaseDetailDTO;
+}

+ 60 - 0
cdssman-service/src/main/java/com/diagbot/enums/DiseaseRelationTypeEnum.java

@@ -0,0 +1,60 @@
+package com.diagbot.enums;
+
+import com.diagbot.core.KeyedNamed;
+import lombok.Setter;
+
+/**
+ * @author kongwz
+ * @Description: 关系对应lib_type
+ * @date 2018年10月11日 下午3:33:22
+ */
+
+public enum DiseaseRelationTypeEnum implements KeyedNamed {
+
+    mainSymptom(501, "100&501&103"),
+    ciSymptom(502, "100&502&103"),
+    vitalResult(503, "100&503&104"),
+    lisItem(504, "100&504&107"),
+    pacsItem(505, "100&505&109,110"),
+    disMedicine(506, "100&506&101"),
+    disOperator(507, "100&507&106"),
+    disDifferentDis(508, "100&508&100");
+
+
+    @Setter
+    private int key;
+
+    @Setter
+    private String name;
+
+    DiseaseRelationTypeEnum(int key, String name) {
+        this.key = key;
+        this.name = name;
+    }
+
+    public static DiseaseRelationTypeEnum getEnum(int key) {
+        for (DiseaseRelationTypeEnum item : DiseaseRelationTypeEnum.values()) {
+            if (item.key == key) {
+                return item;
+            }
+        }
+        return null;
+    }
+
+    public static String getName(int key) {
+        DiseaseRelationTypeEnum item = getEnum(key);
+        return item != null ? item.name : null;
+    }
+
+    @Override
+    public int getKey() {
+        return key;
+    }
+
+    @Override
+    public String getName() {
+        return name;
+    }
+
+
+}

+ 8 - 8
cdssman-service/src/main/java/com/diagbot/facade/KlConceptFacade.java

@@ -313,19 +313,19 @@ public class KlConceptFacade extends KlConceptServiceImpl {
         return retList;
     }
 
-    public List<GetAllForRelationDTO> searchConceptByNameAndLibType(SearchConceptVO searchConceptVO) {
+    public List<GetAllForRelationDTO> searchConceptByNameAndLibType(SearchConceptVO searchConceptVO){
         List<GetAllForRelationDTO> getAllForRelationDTOS = Lists.newArrayList();
         String name = searchConceptVO.getName();
-        List<Integer> libTypes = searchConceptVO.getLibTypes();
+        Integer libType = searchConceptVO.getLibType();
         List<Long> excludedConceptIds = searchConceptVO.getExcludedConceptIds();
-        if (StringUtils.isNotBlank(name) || ListUtil.isNotEmpty(libTypes)) {
+        if(StringUtils.isNotBlank(name) && libType != null ){
             List<KlConcept> conceptList = this.list(new QueryWrapper<KlConcept>()
                     .eq("is_deleted", IsDeleteEnum.N.getKey())
-                    .like(StringUtil.isNotBlank(name), "lib_name", name.trim())
-                    .in(ListUtil.isNotEmpty(libTypes), "lib_type", libTypes)
-                    .notIn(ListUtil.isNotEmpty(excludedConceptIds), "id", excludedConceptIds));
-            if (ListUtil.isNotEmpty(conceptList)) {
-                getAllForRelationDTOS = conceptList.stream().map(x -> {
+            .like(StringUtil.isNotBlank(name),"lib_name",name.trim())
+            .eq("lib_type",libType)
+            .notIn(ListUtil.isNotEmpty(excludedConceptIds),"id",excludedConceptIds));
+            if(ListUtil.isNotEmpty(conceptList)){
+                getAllForRelationDTOS = conceptList.stream().map(x ->{
                     GetAllForRelationDTO getAllForRelationDTO = new GetAllForRelationDTO();
                     getAllForRelationDTO.setConceptNameType(x.getLibName());
                     getAllForRelationDTO.setConceptName(x.getLibName());

+ 62 - 29
cdssman-service/src/main/java/com/diagbot/facade/KlDiseaseFacade.java

@@ -2,17 +2,19 @@ package com.diagbot.facade;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.diagbot.dto.DiseaseAllDetailDTO;
-import com.diagbot.dto.DiseaseDetailDTO;
-import com.diagbot.dto.DiseasePageDTO;
-import com.diagbot.dto.DiseaseSubDetailDTO;
+import com.diagbot.dto.*;
 import com.diagbot.entity.KlConcept;
 import com.diagbot.entity.KlLexiconRelationship;
+import com.diagbot.enums.DiseaseRelationTypeEnum;
+import com.diagbot.enums.IsDeleteEnum;
 import com.diagbot.enums.RelationLibTypeEnum;
 import com.diagbot.service.KlDiseaseService;
 import com.diagbot.service.KlLexiconRelationshipService;
 import com.diagbot.service.impl.KlDiseaseServiceImpl;
+import com.diagbot.util.EntityUtil;
 import com.diagbot.util.ListUtil;
+import com.diagbot.util.StringUtil;
+import com.diagbot.vo.DiseaseDeleteVO;
 import com.diagbot.vo.DiseasePageVO;
 import com.diagbot.vo.GetDiseaseDetailVO;
 import com.google.common.collect.Maps;
@@ -21,10 +23,7 @@ import org.apache.commons.compress.utils.Lists;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
-import java.util.Arrays;
-import java.util.LinkedHashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 import java.util.stream.Collectors;
 
 /**
@@ -36,9 +35,12 @@ import java.util.stream.Collectors;
 public class KlDiseaseFacade extends KlDiseaseServiceImpl {
     @Autowired
     KlLexiconRelationshipFacade klLexiconRelationshipFacade;
+    @Autowired
+    KlConceptFacade klConceptFacade;
 
     /**
      * 诊断依据分页查询
+     *
      * @param klConceptInfoVO
      * @return
      */
@@ -46,18 +48,46 @@ public class KlDiseaseFacade extends KlDiseaseServiceImpl {
         return this.getDiseasePage(klConceptInfoVO);
     }
 
+    public List<KlConcept> getDiseaseAll(DiseaseDeleteVO diseaseDeleteVO) {
+        List<KlConcept> klConceptss = new ArrayList<>();
+        List<DiseasePageDTO> diseasePage = this.getDiseaseAlls(diseaseDeleteVO);
+        List<String> diseases = diseasePage.stream().map(x -> x.getDisName()).collect(Collectors.toList());
+        String disName = diseaseDeleteVO.getDisName();
+        if (StringUtil.isNotEmpty(disName)) {
+            List<KlConcept> klConcepts = klConceptFacade.list(new QueryWrapper<KlConcept>()
+                    .eq("is_deleted", IsDeleteEnum.N.getKey())
+                    .like("lib_name", disName.trim())
+                    .eq("lib_type", 100));
+            Map<String, List<KlConcept>> libNameMap = EntityUtil.makeEntityListMap(klConcepts, "libName");
+            if (MapUtils.isNotEmpty(libNameMap) && ListUtil.isNotEmpty(diseases)) {
+                libNameMap.forEach((x, y) -> {
+                    if (!diseases.contains(x)) {
+                        klConceptss.addAll(y);
+                    }
+                });
+            }
+        }
+
+        return klConceptss;
+    }
+
 
     /**
      * 某个诊断依据的具体数据
+     *
      * @param getDiseaseDetailVO
      * @return
      */
-    public DiseaseDetailDTO getDetail(GetDiseaseDetailVO getDiseaseDetailVO) {
-        DiseaseDetailDTO diseaseDetailDTO = new DiseaseDetailDTO();
-
-        List<Integer> types = getDiseaseDetailVO.getTypes();
-        Map<Integer, String> type_nameMap = klLexiconRelationshipFacade.getTypeNameMap(getDiseaseDetailVO);
+    public DiseaseTreeDetailDTO getDetail(GetDiseaseDetailVO getDiseaseDetailVO) {
+        List<Integer> relations = Arrays.asList(501,502,503,504,505,506,507,508);
+        List<KlLexiconRelationship> klLexiconRelationships = klLexiconRelationshipFacade.list(new QueryWrapper<KlLexiconRelationship>()
+                .eq("is_deleted", IsDeleteEnum.N.getKey())
+                .in("code", relations)
+        .orderByAsc("code"));
+        Map<Integer, String> relation_name = klLexiconRelationships.stream().collect(Collectors.toMap(KlLexiconRelationship::getCode, KlLexiconRelationship::getName, (key1, key2) -> key2));
+        DiseaseTreeDetailDTO diseaseTreeDetailDTO = new DiseaseTreeDetailDTO();
 
+        DiseaseDetailDTO diseaseDetailDTO = new DiseaseDetailDTO();
         Map<Integer, DiseaseSubDetailDTO> disSubDetailMap = Maps.newHashMap();
         List<DiseaseAllDetailDTO> diseaseAllDetailDTOS = this.getDiseaseDetail(getDiseaseDetailVO);
         if (ListUtil.isNotEmpty(diseaseAllDetailDTOS)) {
@@ -95,24 +125,27 @@ public class KlDiseaseFacade extends KlDiseaseServiceImpl {
             });
         }
         List<DiseaseSubDetailDTO> datas = Lists.newArrayList();
-        if (MapUtils.isNotEmpty(disSubDetailMap)) {
-            for (Integer type : types) {
-                if (disSubDetailMap.containsKey(type)) {
-                    DiseaseSubDetailDTO diseaseSubDetailDTO = disSubDetailMap.get(type);
-                    diseaseSubDetailDTO.setLibType(Arrays.stream(RelationLibTypeEnum.getName(type).split("&")).map(x ->Integer.parseInt(x)).collect(Collectors.toList()));
-                    datas.add(diseaseSubDetailDTO);
-                } else {
-                    DiseaseSubDetailDTO diseaseSubDetailDTO = new DiseaseSubDetailDTO();
-                    diseaseSubDetailDTO.setRid(type);
-                    diseaseSubDetailDTO.setLibType(Arrays.stream(RelationLibTypeEnum.getName(type).split("&")).map(x ->Integer.parseInt(x)).collect(Collectors.toList()));
-                    diseaseSubDetailDTO.setRname(type_nameMap.get(type));
-                    datas.add(diseaseSubDetailDTO);
-                }
+        List<List<String>> types = Lists.newArrayList();
+        relation_name.forEach((x,y)->{
+            List<String> split = Arrays.asList(DiseaseRelationTypeEnum.getName(x).split("&"));
+            List<Integer> collect = Arrays.stream(RelationLibTypeEnum.getName(x).split("&")).map(z -> Integer.parseInt(z)).collect(Collectors.toList());
+            types.add(split);
+            if(disSubDetailMap.containsKey(x)){
+                DiseaseSubDetailDTO diseaseSubDetailDTO = disSubDetailMap.get(x);
+                diseaseSubDetailDTO.setLibType(collect);
+                datas.add(diseaseSubDetailDTO);
+            }else {
+                DiseaseSubDetailDTO diseaseSubDetailDTO = new DiseaseSubDetailDTO();
+                diseaseSubDetailDTO.setLibType(collect);
+                diseaseSubDetailDTO.setRname(relation_name.get(x));
+                diseaseSubDetailDTO.setRid(x);
+                datas.add(diseaseSubDetailDTO);
             }
-
-        }
+        });
         diseaseDetailDTO.setDatas(datas);
-        return diseaseDetailDTO;
+        diseaseTreeDetailDTO.setDiseaseDetailDTO(diseaseDetailDTO);
+        diseaseTreeDetailDTO.setTypes(types);
+        return diseaseTreeDetailDTO;
     }
 
 

+ 0 - 12
cdssman-service/src/main/java/com/diagbot/facade/KlLexiconRelationshipFacade.java

@@ -40,16 +40,4 @@ public class KlLexiconRelationshipFacade extends KlLexiconRelationshipServiceImp
         });
         return iPage;
     }
-
-    public Map<Integer,String> getTypeNameMap(GetDiseaseDetailVO getDiseaseDetailVO){
-        Map<Integer,String> typeNameMap = Maps.newHashMap();
-        List<Integer> types = getDiseaseDetailVO.getTypes();
-        List<KlLexiconRelationship> klLexiconRelationships = this.list(new QueryWrapper<KlLexiconRelationship>()
-                .in("code", types)
-                .eq("is_deleted", "N"));
-        if (ListUtil.isNotEmpty(klLexiconRelationships)) {
-            typeNameMap = klLexiconRelationships.stream().collect(Collectors.toMap(KlLexiconRelationship::getCode, KlLexiconRelationship::getName));
-        }
-        return typeNameMap;
-    }
 }

+ 1 - 1
cdssman-service/src/main/java/com/diagbot/facade/KlRelationFacade.java

@@ -30,7 +30,7 @@ public class KlRelationFacade extends KlRelationServiceImpl {
         pList.add(new Long[] { 406L, 600L, 305L, 600L, 103L });//症状类别
         pList.add(new Long[] { 407L, 600L, 306L, 600L, 106L });//手术和操作类别
         pList.add(new Long[] { 408L, 600L, 107L, 600L, 108L });//实验室检查类别
-        pList.add(new Long[] { 409L, 600L, 109L, 600L, 110L });//实验室检查类别
+        pList.add(new Long[] { 409L, 600L, 109L, 600L, 110L });//辅助检查类别
 
         Integer index = treeVO.getType() - 1;
         List<Long> types = new ArrayList<>();

+ 43 - 203
cdssman-service/src/main/java/com/diagbot/facade/RelationContactFacade.java

@@ -4,34 +4,27 @@ import com.baomidou.dynamic.datasource.annotation.DS;
 import com.baomidou.dynamic.datasource.annotation.DSTransactional;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.diagbot.client.UserServiceClient;
-import com.diagbot.dto.RelationNameDTO;
-import com.diagbot.dto.RelationNamesDTO;
-import com.diagbot.dto.RelationNodeDTO;
-import com.diagbot.dto.RespDTO;
+import com.diagbot.dto.*;
 import com.diagbot.entity.KlConcept;
 import com.diagbot.entity.KlRelation;
 import com.diagbot.entity.KlRelationOrder;
 import com.diagbot.enums.IsDeleteEnum;
 import com.diagbot.enums.LexiconEnum;
-import com.diagbot.exception.CommonErrorCode;
-import com.diagbot.exception.CommonException;
 import com.diagbot.service.KlRelationService;
 import com.diagbot.service.impl.KlRelationOrderServiceImpl;
 import com.diagbot.service.impl.KlRelationServiceImpl;
 import com.diagbot.util.DateUtil;
 import com.diagbot.util.ListUtil;
-import com.diagbot.util.UserUtils;
-import com.diagbot.vo.KlRelationNodeVO;
-import com.diagbot.vo.KlRelationSaveVO;
-import com.diagbot.vo.KlRelationVO;
-import com.diagbot.vo.RelationContactDetailVO;
+import com.diagbot.vo.*;
 import com.google.common.collect.Lists;
 import com.google.common.collect.Maps;
 import org.apache.commons.collections4.MapUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Qualifier;
 import org.springframework.stereotype.Component;
 
+import javax.validation.constraints.NotBlank;
 import javax.validation.constraints.NotNull;
 import java.util.ArrayList;
 import java.util.Date;
@@ -58,86 +51,10 @@ public class RelationContactFacade extends KlRelationServiceImpl {
     @Autowired
     @Qualifier("klRelationOrderServiceImpl")
     private KlRelationOrderServiceImpl klRelationOrderServiceImpl;
+    @Autowired
+    KlDiseaseFacade klDiseaseFacade;
 
-    public RelationNodeDTO relationContactDetail(RelationContactDetailVO relationContactDetailVO) {
-        RelationNodeDTO relationNodeDTO = new RelationNodeDTO();
-
-        KlConcept klConcept = klConceptFacade.getById(relationContactDetailVO.getConceptId());
-        relationNodeDTO.setConceptId(klConcept.getId());
-        relationNodeDTO.setConceptName(klConcept.getLibName());
-        relationNodeDTO.setIsDeletedConcept(klConcept.getIsDeleted());
-        relationNodeDTO.setConceptTypeId(new Long(klConcept.getLibType()));
-
-        relationNodeDTO.setNodeList(repairRelationDataForQuery(relationContactDetailVO.getConceptId(),
-                relationContactDetailVO.getRelationIds(), relationContactDetailVO.getTypeIds(),
-                null, klConcept.getIsDeleted()));
-
-        return relationNodeDTO;
-    }
-
-    public RelationNodeDTO relationContactDetail(KlRelationVO klRelationVO) {
-        RelationNamesDTO relationNamesDTO = new RelationNamesDTO();
-        RelationNodeDTO relationNodeDTO = new RelationNodeDTO();
-        List<RelationNameDTO> relationNameDTOs_first = this.getRelationNameDTOs(klRelationVO.getConceptIds(), klRelationVO.getRelationId());
-
-
-        return relationNodeDTO;
-    }
-
-    /**
-     * 处理关系节点-查询事件
-     *
-     * @param conceptId
-     * @param relationIds
-     * @param typeIds
-     * @param hookConceptIds
-     * @param isDeletedParent
-     * @return
-     */
-    private List<RelationNodeDTO> repairRelationDataForQuery(Long conceptId, List<Long> relationIds,
-                                                             List<Long> typeIds, List<Long> hookConceptIds,
-                                                             String isDeletedParent) {
-        if (hookConceptIds == null) {
-            hookConceptIds = new ArrayList<>();
-            hookConceptIds.add(conceptId);
-        }
-
-        Long relationId = null, endTypeId = null;
-        if (ListUtil.isNotEmpty(relationIds)) {
-            relationId = relationIds.remove(0);
-        }
-        if (relationId == null) {
-            relationId = -999999l;
-        }
-        if (ListUtil.isNotEmpty(typeIds)) {
-            endTypeId = typeIds.remove(0);
-        }
-        List<RelationNodeDTO> relationNodeDTOList = this.baseMapper.getRelationNodeDTOs(conceptId, relationId, endTypeId);
-
-        for (RelationNodeDTO i : relationNodeDTOList) {
-            i.setConceptName(i.getConceptName());
-            i.setParentConceptName(i.getParentConceptName());
-            i.setConceptTypeName(LexiconEnum.getName(i.getConceptTypeId().intValue()));
-            i.setConceptNameType(i.getConceptName() + "(" + LexiconEnum.getName(i.getConceptTypeId().intValue()) + ")");
-            i.setParentConceptTypeName(LexiconEnum.getName(i.getParentConceptTypeId().intValue()));
-            i.setParentConceptNameType(i.getParentConceptName() + "("
-                    + LexiconEnum.getName(i.getParentConceptTypeId().intValue()) + ")");
-            i.setIsDeletedConcept(
-                    isDeletedParent.equals(IsDeleteEnum.Y.getKey()) ? IsDeleteEnum.Y.getKey() : i.getIsDeletedConcept()
-            );
 
-            if (!hookConceptIds.contains(i.getConceptId())) {
-                List<Long> hookConceptIds_ = new ArrayList<>();
-                hookConceptIds_.addAll(hookConceptIds);
-                hookConceptIds_.add(i.getConceptId());
-                i.setNodeList(repairRelationDataForQuery(i.getConceptId(),
-                        Lists.newArrayList(relationIds), Lists.newArrayList(typeIds),
-                        hookConceptIds_, i.getIsDeletedConcept()));
-            }
-        }
-
-        return relationNodeDTOList;
-    }
 
     @DS("med")
     @DSTransactional
@@ -329,136 +246,59 @@ public class RelationContactFacade extends KlRelationServiceImpl {
         return relationList;
     }
 
+
+
     /**
-     * 医学术语关联维护/医学术语多层关联维护-添加或者编辑
-     *
-     * @param klRelationNodeVO
+     * 删除某个诊断依据
+     * @param diseaseDeleteVO
      * @return
      */
-    public Boolean addRelation(KlRelationNodeVO klRelationNodeVO) {
-        if (klRelationNodeVO.getConceptId() == null) {
-            throw new CommonException(CommonErrorCode.RPC_ERROR, "conceptId必填!");
-        }
-        if (ListUtil.isEmpty(klRelationNodeVO.getNodeList())) {
-            throw new CommonException(CommonErrorCode.RPC_ERROR, "nodeList不能为空!");
-        }
-
-        //先删除
-        List<Long> relationIdList = repairRelationDataForDelBeforeAdd(klRelationNodeVO.getConceptId(), klRelationNodeVO);
-        if (ListUtil.isNotEmpty(relationIdList)) {
-            removeByIds(relationIdList);
-
+    @DS("med")
+    @DSTransactional
+    public Boolean deleteRelation(DiseaseDeleteVO diseaseDeleteVO) {
+        String disName = diseaseDeleteVO.getDisName();
+        if(StringUtils.isNotBlank(disName)){
+            List<KlConcept> klConcepts = klConceptFacade.list(new QueryWrapper<KlConcept>()
+                    .eq("is_deleted", IsDeleteEnum.N.getKey())
+                    .eq("lib_name", disName.trim())
+                    .eq("lib_type", 100));
+            List<Long> ids = klConcepts.stream().map(x -> x.getId()).collect(Collectors.toList());
+            List<Integer> relations = Lists.newArrayList(501, 502, 503, 504, 505, 506, 507, 508);
+            List<KlRelation> klRelations = this.list(new QueryWrapper<KlRelation>()
+                    .eq("is_deleted", IsDeleteEnum.N.getKey())
+                    .in(ListUtil.isNotEmpty(ids),"start_id", ids)
+                    .in(ListUtil.isNotEmpty(relations),"relation_id", relations));
+            List<Long> kids = klRelations.stream().map(x -> x.getId()).collect(Collectors.toList());
+            this.removeByIds(kids);
             QueryWrapper<KlRelationOrder> relationOrderQe = new QueryWrapper<>();
-            relationOrderQe.in("t_relation_id", relationIdList);
+            relationOrderQe.in(ListUtil.isNotEmpty(kids),"t_relation_id", kids);
             klRelationOrderFacade.remove(relationOrderQe);
         }
 
-        //后添加
-        List<List<KlRelation>> relationGroupList = repairRelationDataForAdd(klRelationNodeVO);
-        String currentUser = UserUtils.getCurrentPrincipleID();
-        Date now = DateUtil.now();
-        List<KlRelation> relationList = Lists.newArrayList();
-        relationGroupList.forEach(i -> {
-            i.forEach(j -> {
-                j.setCreator(currentUser);
-                j.setGmtCreate(now);
-                j.setModifier(currentUser);
-                j.setGmtModified(now);
-                relationList.add(j);
-            });
-        });
-        klRelationService.saveOrUpdateBatch(relationList);
-
-        if (klRelationNodeVO.getIsOrderBy() == 1) {
-            List<KlRelationOrder> relationOrderList = Lists.newArrayList();
-            relationGroupList.forEach(i -> {
-                int orderNo = 0;
-                for (KlRelation j : i) {
-                    orderNo++;
-                    KlRelationOrder relationOrder = new KlRelationOrder();
-                    relationOrder.setOrderNo(orderNo);
-                    relationOrder.settRelationId(j.getId());
-                    relationOrder.setGmtCreate(now);
-                    relationOrder.setGmtModified(now);
-                    relationOrder.setCreator(currentUser);
-                    relationOrder.setModifier(currentUser);
-                    relationOrderList.add(relationOrder);
-                }
-            });
-            klRelationOrderServiceImpl.saveBatch(relationOrderList);
-        }
-
         return true;
     }
 
     /**
-     * 处理关系节点-添加或者编辑前先删除掉
-     *
-     * @param conceptId        当前概念id
-     * @param klRelationNodeVO
+     * 新增诊断依据
+     * @param diseaseDeleteVO
      * @return
      */
-    private List<Long> repairRelationDataForDelBeforeAdd(Long conceptId, KlRelationNodeVO klRelationNodeVO) {
-        List<Long> relationIdList = Lists.newArrayList();
-        List<KlRelation> relationList = this.list(new QueryWrapper<KlRelation>()
-                .eq("start_id", conceptId)
-                .eq("relation_id", klRelationNodeVO != null && klRelationNodeVO.getSonRelationId() != null ?
-                        klRelationNodeVO.getSonRelationId() : -999999l));
-
-        if (ListUtil.isNotEmpty(relationList)) {
-            if (klRelationNodeVO != null && klRelationNodeVO.getSonTypeId() != null) {
-                List<Long> conceptIdList = klConceptFacade.getCompatibleTypeConceptIds(klRelationNodeVO.getSonTypeId(),
-                        relationList.stream().map(i -> i.getEndId()).collect(Collectors.toList()));
-                if (conceptIdList != null) {
-                    relationList = relationList.stream()
-                            .filter(i -> conceptIdList.contains(i.getEndId())).collect(Collectors.toList());
-                }
-            }
-
-            if (ListUtil.isNotEmpty(relationList)) {
-                relationIdList.addAll(relationList.stream().map(i -> i.getId()).collect(Collectors.toList()));
-
-                Map<Long, KlRelationNodeVO> conceptIdRnMap = Maps.newHashMap();
-                if (klRelationNodeVO != null && ListUtil.isNotEmpty(klRelationNodeVO.getNodeList())) {
-                    conceptIdRnMap = klRelationNodeVO.getNodeList()
-                            .stream().collect(Collectors.toMap(KlRelationNodeVO::getConceptId, i -> i));
-                }
-
-                for (KlRelation i : relationList) {
-                    relationIdList.addAll(repairRelationDataForDelBeforeAdd(i.getEndId(),
-                            conceptIdRnMap.get(i.getEndId())));
-                }
-            }
-        }
-        return relationIdList;
+    public List<KlConcept> addDisease(DiseaseDeleteVO diseaseDeleteVO) {
+        List<KlConcept> diseaseAll = klDiseaseFacade.getDiseaseAll(diseaseDeleteVO);
+        return diseaseAll;
     }
 
-    /**
-     * 处理关系节点-添加或者编辑事件
-     *
-     * @param klRelationNodeVO
-     * @return
-     */
-    private List<List<KlRelation>> repairRelationDataForAdd(KlRelationNodeVO klRelationNodeVO) {
-        List<List<KlRelation>> retList = Lists.newArrayList();
-
-        if (ListUtil.isNotEmpty(klRelationNodeVO.getNodeList())) {
-            List<KlRelation> relationList = Lists.newArrayList();
-            klRelationNodeVO.getNodeList().forEach(i -> {
-                KlRelation relation = new KlRelation();
-                relation.setStartId(klRelationNodeVO.getConceptId());
-                relation.setEndId(i.getConceptId());
-                relation.setRelationId(Integer.parseInt(String.valueOf(i.getRelationId())));
-                relationList.add(relation);
+    public List<String> searchAndPosition(GetAllForRelationVO getAllForRelationVO) {
+        List<String> names = Lists.newArrayList();
+        String name = getAllForRelationVO.getName();
+        Long typeId = getAllForRelationVO.getTypeId();
+        List<KlConcept> klConcepts = klConceptFacade.list(new QueryWrapper<KlConcept>()
+                .eq("is_deleted", IsDeleteEnum.N.getKey())
+                .like("lib_name", name.trim())
+                .eq("lib_type", typeId));
+        names = klConcepts.stream().map(x -> x.getLibName()).collect(Collectors.toList());
 
-                if (ListUtil.isNotEmpty(i.getNodeList())) {
-                    retList.addAll(repairRelationDataForAdd(i));
-                }
-            });
-            retList.add(relationList);
-        }
+        return names;
 
-        return retList;
     }
-
 }

+ 2 - 0
cdssman-service/src/main/java/com/diagbot/mapper/KlDiseaseMapper.java

@@ -5,6 +5,7 @@ import com.diagbot.dto.DiseaseAllDetailDTO;
 import com.diagbot.dto.DiseasePageDTO;
 import com.diagbot.entity.KlDisease;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.diagbot.vo.DiseaseDeleteVO;
 import com.diagbot.vo.DiseasePageVO;
 import com.diagbot.vo.GetDiseaseDetailVO;
 
@@ -21,5 +22,6 @@ import java.util.List;
 public interface KlDiseaseMapper extends BaseMapper<KlDisease> {
 
     IPage<DiseasePageDTO> getDiseasePage(DiseasePageVO klConceptInfoVO);
+    List<DiseasePageDTO> getDiseaseAll(DiseaseDeleteVO diseaseDeleteVO);
     List<DiseaseAllDetailDTO> getDiseaseAllDetaill(GetDiseaseDetailVO getDiseaseDetailVO);
 }

+ 3 - 0
cdssman-service/src/main/java/com/diagbot/service/KlDiseaseService.java

@@ -5,6 +5,7 @@ import com.diagbot.dto.DiseaseAllDetailDTO;
 import com.diagbot.dto.DiseasePageDTO;
 import com.diagbot.entity.KlDisease;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.diagbot.vo.DiseaseDeleteVO;
 import com.diagbot.vo.DiseasePageVO;
 import com.diagbot.vo.GetDiseaseDetailVO;
 
@@ -21,6 +22,8 @@ import java.util.List;
 public interface KlDiseaseService extends IService<KlDisease> {
     IPage<DiseasePageDTO> getDiseasePage(DiseasePageVO klConceptInfoVO);
 
+    List<DiseasePageDTO> getDiseaseAlls(DiseaseDeleteVO diseaseDeleteVO);
+
     List<DiseaseAllDetailDTO> getDiseaseDetail(GetDiseaseDetailVO getDiseaseDetailVO);
 }
 

+ 8 - 0
cdssman-service/src/main/java/com/diagbot/service/impl/KlDiseaseServiceImpl.java

@@ -8,6 +8,7 @@ import com.diagbot.entity.KlDisease;
 import com.diagbot.mapper.KlDiseaseMapper;
 import com.diagbot.service.KlDiseaseService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.diagbot.vo.DiseaseDeleteVO;
 import com.diagbot.vo.DiseasePageVO;
 import com.diagbot.vo.GetDiseaseDetailVO;
 import org.springframework.stereotype.Service;
@@ -31,8 +32,15 @@ public class KlDiseaseServiceImpl extends ServiceImpl<KlDiseaseMapper, KlDisease
         return baseMapper.getDiseasePage(klConceptInfoVO);
     }
 
+    @Override
+    public List<DiseasePageDTO> getDiseaseAlls(DiseaseDeleteVO diseaseDeleteVO) {
+        return baseMapper.getDiseaseAll(diseaseDeleteVO);
+
+    }
+
     @Override
     public List<DiseaseAllDetailDTO> getDiseaseDetail(GetDiseaseDetailVO getDiseaseDetailVO) {
         return baseMapper.getDiseaseAllDetaill(getDiseaseDetailVO);
     }
+
 }

+ 22 - 0
cdssman-service/src/main/java/com/diagbot/vo/DiseaseDeleteVO.java

@@ -0,0 +1,22 @@
+package com.diagbot.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+import javax.validation.constraints.NotBlank;
+
+/**
+ * @author kwz
+ * @date 2021/3/11
+ * @time 11:14
+ */
+@Setter
+@Getter
+@ApiModel(value = "删除诊断依据入参")
+public class DiseaseDeleteVO {
+    @ApiModelProperty(value = "诊断名称")
+    @NotBlank(message = "请输入搜索名称")
+    private String disName;
+}

+ 4 - 0
cdssman-service/src/main/java/com/diagbot/vo/GetAllForRelationVO.java

@@ -6,6 +6,8 @@ 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;
 
 /**
@@ -23,12 +25,14 @@ public class GetAllForRelationVO {
      */
 
     @ApiModelProperty(value="名称")
+    @NotBlank(message = "名称不能为空")
     private String name;
     
     /**
      * 词性id
      */
     @ApiModelProperty(value="词性id")
+    @NotNull(message = "词性不能为空")
     private Long typeId;
     
     /**

+ 5 - 4
cdssman-service/src/main/java/com/diagbot/vo/GetDiseaseDetailVO.java

@@ -4,6 +4,7 @@ import io.swagger.annotations.ApiModelProperty;
 import lombok.Getter;
 import lombok.Setter;
 
+import javax.validation.constraints.NotBlank;
 import javax.validation.constraints.NotNull;
 import java.io.Serializable;
 import java.util.List;
@@ -17,8 +18,8 @@ import java.util.List;
 @Setter
 @Getter
 public class GetDiseaseDetailVO implements Serializable {
-    @ApiModelProperty(value = "诊断依据主键")
-    @NotNull(message="诊断依据id不能为空")
-    private Long id;
-    private List<Integer> types;
+    @ApiModelProperty(value = "疾病名")
+    @NotBlank(message="疾病名不能为空")
+    private String disName;
+//    private List<Integer> types;
 }

+ 5 - 1
cdssman-service/src/main/java/com/diagbot/vo/SearchConceptVO.java

@@ -4,6 +4,8 @@ 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;
 
 /**
@@ -15,12 +17,14 @@ import java.util.List;
 @Getter
 public class SearchConceptVO {
     @ApiModelProperty(value="名称")
+    @NotBlank(message = "请输入搜索名称")
     private String name;
     /**
      * 词性id
      */
     @ApiModelProperty(value="词性id")
-    private List<Integer> libTypes;
+    @NotNull(message ="请输入搜索词的词性" )
+    private Integer libType;
     /**
      * 需要排除的概念id集合
      */

+ 43 - 18
cdssman-service/src/main/java/com/diagbot/web/KlDiseaseController.java

@@ -3,17 +3,12 @@ package com.diagbot.web;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.diagbot.annotation.SysLogger;
-import com.diagbot.dto.DiseaseDetailDTO;
-import com.diagbot.dto.DiseasePageDTO;
-import com.diagbot.dto.GetAllForRelationDTO;
-import com.diagbot.dto.RespDTO;
+import com.diagbot.dto.*;
+import com.diagbot.entity.KlConcept;
 import com.diagbot.facade.KlConceptFacade;
 import com.diagbot.facade.KlDiseaseFacade;
 import com.diagbot.facade.RelationContactFacade;
-import com.diagbot.vo.DiseasePageVO;
-import com.diagbot.vo.GetDiseaseDetailVO;
-import com.diagbot.vo.KlRelationSaveVO;
-import com.diagbot.vo.SearchConceptVO;
+import com.diagbot.vo.*;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -37,7 +32,7 @@ import java.util.List;
 @RestController
 @RequestMapping("/klDisease")
 @SuppressWarnings("unchecked")
-@Api(value = "疾病相关API", tags = { "疾病相关API" })
+@Api(value = "疾病相关API", tags = {"疾病相关API"})
 public class KlDiseaseController {
     @Autowired
     KlDiseaseFacade klDiseaseFacade;
@@ -46,22 +41,29 @@ public class KlDiseaseController {
     @Autowired
     RelationContactFacade relationContactFacade;
 
-    @ApiOperation(value = "分页获取基础术语维护列表[by:kongwz]")
+    @ApiOperation(value = "分页获取诊断依据列表[by:kongwz]",
+            notes = "disName: 要查询的疾病(可模糊查询)<br>" +
+                    "current: 当前页 <br>" +
+                    "size: 每页条数")
     @PostMapping("/getDiseasePage")
     @SysLogger("getDiseasePage")
-    public RespDTO<IPage<DiseasePageDTO>> getDiseasePages(@RequestBody DiseasePageVO klConceptInfoVO) {
-        return RespDTO.onSuc(klDiseaseFacade.getDiseasePageAll(klConceptInfoVO));
+    public RespDTO<IPage<DiseasePageDTO>> getDiseasePages(@RequestBody DiseasePageVO diseasePageVO) {
+        return RespDTO.onSuc(klDiseaseFacade.getDiseasePageAll(diseasePageVO));
     }
 
-    @ApiOperation(value = "诊断依据-获取详情[by:kongwz]")
+    @ApiOperation(value = "诊断依据-获取详情[by:kongwz]",
+            notes = "disName: 诊断名称<br>")
     @PostMapping("/getDetail")
     @SysLogger("getDetail")
-    public RespDTO<DiseaseDetailDTO> getDetail(@Valid @RequestBody GetDiseaseDetailVO getDiseaseDetailVO) {
-        DiseaseDetailDTO diagnoseDetailSaveDTO = klDiseaseFacade.getDetail(getDiseaseDetailVO);
-        return RespDTO.onSuc(diagnoseDetailSaveDTO);
+    public RespDTO<DiseaseTreeDetailDTO> getDetail(@Valid @RequestBody GetDiseaseDetailVO getDiseaseDetailVO) {
+        DiseaseTreeDetailDTO diseaseTreeDetailDTO = klDiseaseFacade.getDetail(getDiseaseDetailVO);
+        return RespDTO.onSuc(diseaseTreeDetailDTO);
     }
 
-    @ApiOperation(value = "查询诊断依据相关的类型术语[by:kongwz]")
+    @ApiOperation(value = "查询诊断依据相关的类型术语[by:kongwz]",
+            notes = "name: 查询术语的名称<br>" +
+                    "libType: 查询术语的词性<br>" +
+                    "excludedConceptIds: 需要排除的概念id集合")
     @PostMapping("/searchConcept")
     @SysLogger("searchConcept")
     public RespDTO<GetAllForRelationDTO> searchConcept(@Valid @RequestBody SearchConceptVO searchConceptVO) {
@@ -69,7 +71,12 @@ public class KlDiseaseController {
         return RespDTO.onSuc(getAllForRelationDTOS);
     }
 
-    @ApiOperation(value = "诊断依据保存[by:kongwz]")
+    @ApiOperation(value = "诊断依据保存[by:kongwz]",
+            notes = "sid: 第一层的概念id <br>" +
+                    "rid: 第一层的关系id <br>" +
+                    "eid: 第二层的概念id <br>" +
+                    "srid: 第二层的关系id <br>" +
+                    "eids: 第三层的概念id")
     @PostMapping("/save")
     @SysLogger("save")
     public RespDTO<Boolean> save(@Valid @RequestBody List<KlRelationSaveVO> klRelationSaveVOs) {
@@ -77,4 +84,22 @@ public class KlDiseaseController {
         return RespDTO.onSuc(aBoolean);
     }
 
+    @ApiOperation(value = "诊断依据删除[by:kongwz]",
+            notes = "disName: 选中的诊断名字 <br>")
+    @PostMapping("/delete")
+    @SysLogger("delete")
+    public RespDTO<Boolean> delete(@Valid @RequestBody DiseaseDeleteVO diseaseDeleteVO) {
+        Boolean aBoolean = relationContactFacade.deleteRelation(diseaseDeleteVO);
+        return RespDTO.onSuc(aBoolean);
+    }
+
+    @ApiOperation(value = "新增疾病[by:kongwz]",
+            notes = "disName: 选中的诊断名字 <br>")
+    @PostMapping("/add")
+    @SysLogger("add")
+    public RespDTO<KlConcept> add(@Valid @RequestBody DiseaseDeleteVO diseaseDeleteVO) {
+        List<KlConcept> klConcepts = relationContactFacade.addDisease(diseaseDeleteVO);
+        return RespDTO.onSuc(klConcepts);
+    }
+
 }

+ 26 - 11
cdssman-service/src/main/java/com/diagbot/web/TreeContactController.java

@@ -32,7 +32,7 @@ import java.util.List;
 @RestController
 @RequestMapping("/multContact")
 @SuppressWarnings("unchecked")
-@Api(value = "树形结构维护相关API", tags = { "知识库标准化-树形结构维护相关API" })
+@Api(value = "树形结构维护相关API", tags = {"知识库标准化-树形结构维护相关API"})
 public class TreeContactController {
     @Autowired
     private RelationContactFacade relationContactFacade;
@@ -42,28 +42,33 @@ public class TreeContactController {
     private KlRelationFacade klRelationFacade;
 
 
-    @ApiOperation(value = "知识库标准化-树形结构维护相关API-详情(根据类别查询)[by:kongwz]")
-    @PostMapping("/relationContactDetail")
-    @SysLogger("relationContactDetail")
-    public RespDTO<RelationNodeDTO> relationContactDetail(@Valid @RequestBody RelationContactDetailVO relationContactDetailVO) {
-        return RespDTO.onSuc(relationContactFacade.relationContactDetail(relationContactDetailVO));
-    }
-
-    @ApiOperation(value = "知识库标准化-树形结构维护相关API-详情(根据类别查询)[by:kongwz]")
+    @ApiOperation(value = "知识库标准化-树形结构维护相关API-详情(根据类别查询)[by:kongwz]",
+            notes = "type :类型 <br> " +
+                    "{1:药品化学物质类别    2:药品治疗学类别   3:药品药理学类别   4:药品解剖学类别   5:症状类别" +
+                    "6:手术和操作类别  7:实验室检查类别   8:辅助检查类别" +
+                    "}")
     @PostMapping("/getTree")
     @SysLogger("getTree")
     public RespDTO<TreeAllDTO> getTree(@RequestBody TreeVO treeVO) {
         return RespDTO.onSuc(klRelationFacade.getTree(treeVO));
     }
 
-    @ApiOperation(value = "知识库标准化-获取所有概念(术语关系维护时筛选使用)[by:kongwz]")
+    @ApiOperation(value = "知识库标准化-获取所有概念(术语关系维护时筛选使用)[by:kongwz]",
+            notes = "excludedConceptIds: 要筛选掉的概念id <br>" +
+                    "name: 要搜索的名字 <br>" +
+                    "typeId: 要搜索的类型")
     @PostMapping("/getAllForRelation")
     @SysLogger("getAllForRelation")
     public RespDTO<List<GetAllForRelationDTO>> getAllForRelation(@RequestBody GetAllForRelationVO getAllForRelationVO) {
         return RespDTO.onSuc(klConceptFacade.getAllForRelation(getAllForRelationVO));
     }
 
-    @ApiOperation(value = "知识库标准化-医学术语多层关联维护-添加或者编辑[by:kongwz]")
+    @ApiOperation(value = "知识库标准化-医学术语多层关联维护-添加或者编辑[by:kongwz]",
+            notes = "sid: 第一层的概念id <br>" +
+                    "rid: 第一层的关系id <br>" +
+                    "eid: 第二层的概念id <br>" +
+                    "srid: 第二层的关系id <br>" +
+                    "eids: 第三层的概念id")
     @PostMapping("/addRelation")
     @SysLogger("addRelation")
     public RespDTO<Boolean> addRelation(@Valid @RequestBody List<KlRelationSaveVO> klRelationSaveVOs) {
@@ -71,4 +76,14 @@ public class TreeContactController {
     }
 
 
+    @ApiOperation(value = "知识库标准化-树形结构维护相关API-搜索定位[by:kongwz]",
+            notes = "name: 要搜索的名字 <br>" +
+                    "typeId: 要搜索的类型")
+    @PostMapping("/searchAndPosition")
+    @SysLogger("searchAndPosition")
+    public RespDTO<List<String>> searchAndPosition(@RequestBody GetAllForRelationVO getAllForRelationVO){
+        return RespDTO.onSuc(relationContactFacade.searchAndPosition(getAllForRelationVO));
+    }
+
+
 }

+ 60 - 18
cdssman-service/src/main/resources/mapper/KlDiseaseMapper.xml

@@ -16,25 +16,67 @@
     </resultMap>
     <select id="getDiseasePage" resultType="com.diagbot.dto.DiseasePageDTO">
         SELECT
-        res.id,
-        res.lib_name as disName,
-        res.modifier,
-        res.gmt_modified as gmtModified
+        a.id,
+        b.lib_name as disName,
+        a.modifier,
+        a.gmt_modified as gmtModified
         FROM
-        (
+        `kl_relation` a,
+        kl_concept b
+        WHERE
+        a.is_deleted = 'N'
+        AND b.is_deleted = 'N'
+        AND a.`status` = 1
+        AND b.`status` = 1
+        AND a.start_id = b.id
+        AND b.lib_type=100
+        AND a.relation_id IN (
+        501,
+        502,
+        503,
+        504,
+        505,
+        506,
+        507,
+        508
+        )
+        GROUP BY b.lib_name
+        ORDER BY
+        b.gmt_modified DESC
+    </select>
+
+    <select id="getDiseaseAll" resultType="com.diagbot.dto.DiseasePageDTO">
         SELECT
-        kd.*, kc.lib_name
+        a.id,
+        b.lib_name as disName,
+        a.modifier,
+        a.gmt_modified as gmtModified
         FROM
-        kl_disease kd,
-        kl_concept kc
+        `kl_relation` a,
+        kl_concept b
         WHERE
-        kd.concept_id = kc.id
-        AND kc.is_deleted = 'N'
-        AND kd.is_deleted = 'N'
-        ) res
+        a.is_deleted = 'N'
+        AND b.is_deleted = 'N'
+        AND a.`status` = 1
+        AND b.`status` = 1
+        AND a.start_id = b.id
         <if test="disName != null and disName != ''">
-            WHERE UPPER(res.lib_name) LIKE concat('%',UPPER(trim(#{disName})) ,'%' )
+            AND UPPER(b.lib_name) LIKE concat('%',UPPER(trim(#{disName})) ,'%' )
         </if>
+        AND b.lib_type=100
+        AND a.relation_id IN (
+        501,
+        502,
+        503,
+        504,
+        505,
+        506,
+        507,
+        508
+        )
+        GROUP BY b.lib_name
+        ORDER BY
+        b.gmt_modified DESC
     </select>
 
     <select id="getDiseaseAllDetaill" resultType="com.diagbot.dto.DiseaseAllDetailDTO">
@@ -56,16 +98,16 @@
         AND klc1.id = kr.start_id
         AND klc2.id = kr.end_id
         AND kr.relation_id = klex. CODE
-        <if test="id != null">
-            AND kr.start_id = #{id}
+        <if test="disName != null and disName !=''">
+            AND klc1.lib_name = #{disName}
         </if>
-        <if test="types!=null and types.size() > 0">
+        <!--<if test="types!=null and types.size() > 0">
             AND kr.relation_id IN
             <foreach collection="types" item="item" index="index" open="(" separator="," close=")">
                 #{item}
             </foreach>
-        </if>
-
+        </if>-->
+        AND kr.relation_id IN (501,502,503,504,505,506,507,508)
         ORDER BY
         rid,kro.order_no
     </select>