wangfeng %!s(int64=4) %!d(string=hai) anos
pai
achega
5fb51cb7b9

+ 88 - 0
src/main/java/com/diagbot/dto/KlDiagnoseByIdDTO.java

@@ -0,0 +1,88 @@
+package com.diagbot.dto;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @author wangfeng
+ * @Description:
+ * @date 2021-03-19 15:26
+ */
+@Setter
+@Getter
+public class KlDiagnoseByIdDTO {
+    private Long id;
+    private String description;//规则名称
+    private Long conceptId;//提示概念id
+    private String libName;
+    private Integer libType;
+    private String lename;
+    private Integer status;//启用状态(0:禁用,1:启用)
+    /**
+     * 条件类型(1:基础条件;2:拟诊条件;3:确诊条件;4:警惕条件)
+     */
+    private Integer conditionType;
+
+    /**
+     * 规则组别(condition_type为2:拟诊条件;3:确诊条件;4:警惕条件有效)
+     */
+    private Integer conditionGroup;
+
+    /**
+     * 符合数量(condition_type为2:拟诊条件;3:确诊条件;4:警惕条件有效)
+     */
+    private Integer fitNo;
+    /**
+     * 基础规则组别(condition_type为1:基础条件;2:拟诊条件;3:确诊条件;4:警惕条件都有效)
+     */
+    private Integer baseGroup;
+    /**
+     * 描述
+     */
+    private String basDescription;
+    private Long basConceptId;
+    private String basLibName;
+    private Integer basLibType;
+    private String basLename;
+    /**
+     * 基础规则类型(1:等于术语本身;2:存在比较;3:不等于术语本身;)
+     */
+    private Integer basType;
+    /**
+     * 最小域比较符
+     */
+    private String minOperator;
+    /**
+     * 最小域值
+     */
+    private String minVal;
+
+    /**
+     * 最小域单位
+     */
+    private String minUnit;
+    /**
+     * 最大域比较符
+     */
+    private String maxOperator;
+    /**
+     * 最大域值
+     */
+    private String maxVal;
+    /**
+     * 最大域单位
+     */
+    private String maxUnit;
+    /**
+     * 等于域比较符
+     */
+    private String eqOperator;
+    /**
+     * 等于域值
+     */
+    private String eqValue;
+    /**
+     * 等于域单位
+     */
+    private String eqUnit;
+}

+ 23 - 0
src/main/java/com/diagbot/dto/KlDiagnoseGroupDTO.java

@@ -0,0 +1,23 @@
+package com.diagbot.dto;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.List;
+
+/**
+ * @author wangfeng
+ * @Description:
+ * @date 2021-03-22 10:33
+ */
+@Setter
+@Getter
+public class KlDiagnoseGroupDTO {
+    /**
+     * 规则组别(condition_type为2:拟诊条件;3:确诊条件;4:警惕条件有效)
+     */
+    private Integer conditionGroup;
+
+    List<KlDiagnoseByIdDTO>  klDiagnoseByIdDTO;
+
+}

+ 46 - 0
src/main/java/com/diagbot/dto/KlDiagnoseInfoDTO.java

@@ -0,0 +1,46 @@
+package com.diagbot.dto;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.Date;
+
+/**
+ * @author wangfeng
+ * @Description:
+ * @date 2021-03-19 14:58
+ */
+@Setter
+@Getter
+public class KlDiagnoseInfoDTO {
+
+    private Long id;
+
+    /**
+     * 记录修改时间,如果时间是1970年则表示纪录未修改
+     */
+    private Date gmtModified;
+
+    /**
+     * 修改人,如果为0则表示纪录未修改
+     */
+    private String modifier;
+
+    /**
+     * 疾病概念id
+     */
+    private Long conceptId;
+
+    /**
+     * 描述
+     */
+    private String description;
+
+    /**
+     * 启用状态(0:禁用,1:启用)
+     */
+    private Integer status;
+
+}

+ 26 - 0
src/main/java/com/diagbot/dto/KlDiagnoseTypeDTO.java

@@ -0,0 +1,26 @@
+package com.diagbot.dto;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.List;
+
+/**
+ * @author wangfeng
+ * @Description:
+ * @date 2021-03-22 10:58
+ */
+@Setter
+@Getter
+public class KlDiagnoseTypeDTO {
+
+    private String conditionTypeName;
+    /**
+     * 条件类型(1:基础条件;2:拟诊条件;3:确诊条件;4:警惕条件)
+     */
+    private Integer conditionType;
+
+
+
+    List<KlDiagnoseGroupDTO> byIdDTO;
+}

+ 13 - 0
src/main/java/com/diagbot/facade/KlDiagnoseConditionFacade.java

@@ -0,0 +1,13 @@
+package com.diagbot.facade;
+
+import com.diagbot.service.impl.KlDiagnoseConditionServiceImpl;
+import org.springframework.stereotype.Component;
+
+/**
+ * @author wangfeng
+ * @Description:
+ * @date 2021-03-19 17:11
+ */
+@Component
+public class KlDiagnoseConditionFacade extends KlDiagnoseConditionServiceImpl {
+}

+ 127 - 0
src/main/java/com/diagbot/facade/KlDiagnoseFacade.java

@@ -1,8 +1,34 @@
 package com.diagbot.facade;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.diagbot.dto.DictionaryInfoDTO;
+import com.diagbot.dto.KlDiagnoseByIdDTO;
+import com.diagbot.dto.KlDiagnoseInfoDTO;
+import com.diagbot.dto.KlDiagnoseTypeDTO;
+import com.diagbot.entity.KlDiagnose;
+import com.diagbot.entity.KlDiagnoseBase;
+import com.diagbot.entity.KlDiagnoseCondition;
+import com.diagbot.enums.IsDeleteEnum;
+import com.diagbot.exception.CommonErrorCode;
+import com.diagbot.exception.CommonException;
 import com.diagbot.service.impl.KlDiagnoseServiceImpl;
+import com.diagbot.util.DateUtil;
+import com.diagbot.util.ListUtil;
+import com.diagbot.vo.KlDiagnoseByIdVO;
+import com.diagbot.vo.KlDiagnoseClearVO;
+import com.diagbot.vo.KlDiagnoseInfoVO;
+import com.diagbot.vo.KlDiagnoseSatarDisVO;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
 /**
  * @Description:
  * @author: gaodm
@@ -10,4 +36,105 @@ import org.springframework.stereotype.Component;
  */
 @Component
 public class KlDiagnoseFacade extends KlDiagnoseServiceImpl {
+    @Autowired
+    KlDiagnoseConditionFacade klDiagnoseConditionFacade;
+    @Autowired
+    KlDiagnoseBaseFacade klDiagnoseBaseFacade;
+    @Autowired
+    KlDictionaryInfoFacade klDictionaryInfoFacade;
+
+
+    public IPage<KlDiagnoseInfoDTO> getKlDiagnoseInfoPage(KlDiagnoseInfoVO klDiagnoseInfoVO) {
+        return this.getKlDiagnosePages(klDiagnoseInfoVO);
+
+    }
+
+    public List<KlDiagnoseByIdDTO> getByIdDiagnoseAll(KlDiagnoseByIdVO klDiagnoseByIdVO) {
+        List<KlDiagnoseByIdDTO> byIdDiagnoses = this.getByIdDiagnoses(klDiagnoseByIdVO);
+        //基础条件
+        Map<Integer, List<KlDiagnoseByIdDTO>> baseGroupMap = byIdDiagnoses.stream().filter(i -> i.getConditionType().equals(1)).collect(Collectors.groupingBy(KlDiagnoseByIdDTO::getBaseGroup));
+
+
+
+
+
+        List<DictionaryInfoDTO> listByGroupType = klDictionaryInfoFacade.getListByGroupType(30);
+        List<KlDiagnoseTypeDTO> KlDiagnoseTypeList = new ArrayList<>();
+        for (DictionaryInfoDTO data : listByGroupType) {
+            KlDiagnoseTypeDTO klDiagnoseTypeDTO = new KlDiagnoseTypeDTO();
+            klDiagnoseTypeDTO.setConditionType(Integer.parseInt(data.getVal()));
+            KlDiagnoseTypeList.add(klDiagnoseTypeDTO);
+        }
+        for (KlDiagnoseByIdDTO byIdDTO : byIdDiagnoses) {
+            for (KlDiagnoseTypeDTO typeDTO : KlDiagnoseTypeList) {
+                if (typeDTO.getConditionType().equals(byIdDTO.getConditionType())) {
+
+
+                }
+
+            }
+        }
+
+        Map<Integer, List<KlDiagnoseByIdDTO>> map = byIdDiagnoses.stream().collect(Collectors.groupingBy(KlDiagnoseByIdDTO::getConditionType));
+
+        for (Map.Entry<Integer, List<KlDiagnoseByIdDTO>> entry : map.entrySet()) {
+            if (entry.getKey().equals(2)) {
+
+            }
+
+
+
+        }
+
+        return byIdDiagnoses;
+    }
+
+    public Boolean clearDiagnoseAll(KlDiagnoseClearVO klDiagnoseClearVO) {
+        boolean res = false;
+        res = clearDiagnoseSub(klDiagnoseClearVO.getId());
+        //最后删除主表rule
+        res = this.removeById(klDiagnoseClearVO.getId());
+        return res;
+    }
+
+    private boolean clearDiagnoseSub(Long id) {
+        boolean res = false;
+        QueryWrapper<KlDiagnoseCondition> klDiagnoseConditionQuery = new QueryWrapper<>();
+        klDiagnoseConditionQuery.eq("is_deleted", IsDeleteEnum.N.getKey()).eq("diagnose_id", id);
+        List<KlDiagnoseCondition> diagnoseConditionList = klDiagnoseConditionFacade.list(klDiagnoseConditionQuery);
+        List<Long> baseId = new ArrayList<>();
+        if (ListUtil.isNotEmpty(diagnoseConditionList)) {
+            for (KlDiagnoseCondition data : diagnoseConditionList) {
+                if (null != data.getId()) {
+                    baseId.add(data.getId());
+                }
+            }
+        }
+        if (ListUtil.isNotEmpty(baseId)) {
+            QueryWrapper<KlDiagnoseBase> klDiagnoseBaseQuery = new QueryWrapper<>();
+            klDiagnoseBaseQuery.eq("is_deleted", IsDeleteEnum.N.getKey()).in("id", baseId);
+            //删除kl_rule_base表数据
+            res = klDiagnoseBaseFacade.remove(klDiagnoseBaseQuery);
+
+        }
+        //删除kl_rule_condition表的数据
+        res = klDiagnoseConditionFacade.remove(klDiagnoseConditionQuery);
+        return res;
+    }
+
+    public Boolean disableDiagnose(KlDiagnoseSatarDisVO klDiagnoseSatarDisVO, int start) {
+        boolean res = false;
+        Date now = DateUtil.now();
+        int sum = this.count(new QueryWrapper<KlDiagnose>().eq("is_deleted", IsDeleteEnum.N.getKey())
+                .eq("id", klDiagnoseSatarDisVO.getId()));
+        if (sum == 0) {
+            throw new CommonException(CommonErrorCode.SERVER_IS_ERROR, "该数据已不存在!");
+        }
+        UpdateWrapper<KlDiagnose> klKlDiagnoseUpdate = new UpdateWrapper<>();
+        klKlDiagnoseUpdate.eq("is_deleted", IsDeleteEnum.N.getKey())
+                .eq("id", klDiagnoseSatarDisVO.getId())
+                .set("status", start)
+                .set("gmt_modified", now);
+        return this.update(new KlDiagnose(), klKlDiagnoseUpdate);
+    }
 }

+ 9 - 0
src/main/java/com/diagbot/mapper/KlDiagnoseMapper.java

@@ -1,9 +1,14 @@
 package com.diagbot.mapper;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.diagbot.dto.DiagnoseDTO;
+import com.diagbot.dto.KlDiagnoseByIdDTO;
+import com.diagbot.dto.KlDiagnoseInfoDTO;
 import com.diagbot.entity.KlDiagnose;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.diagbot.vo.DiagnoseVO;
+import com.diagbot.vo.KlDiagnoseByIdVO;
+import com.diagbot.vo.KlDiagnoseInfoVO;
 
 import java.util.List;
 
@@ -18,4 +23,8 @@ import java.util.List;
 public interface KlDiagnoseMapper extends BaseMapper<KlDiagnose> {
     //根据匹配的基础规则ID获取确诊、拟诊、警惕的疾病
     List<DiagnoseDTO> getDiagnoseByIds(DiagnoseVO diagnoseVO);
+
+    IPage<KlDiagnoseInfoDTO> getKlDiagnosePages(KlDiagnoseInfoVO klDiagnoseInfoVO);
+
+    List<KlDiagnoseByIdDTO> getByIdDiagnoses(KlDiagnoseByIdVO klDiagnoseByIdVO);
 }

+ 9 - 0
src/main/java/com/diagbot/service/KlDiagnoseService.java

@@ -1,9 +1,14 @@
 package com.diagbot.service;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.diagbot.dto.DiagnoseDTO;
+import com.diagbot.dto.KlDiagnoseByIdDTO;
+import com.diagbot.dto.KlDiagnoseInfoDTO;
 import com.diagbot.entity.KlDiagnose;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.diagbot.vo.DiagnoseVO;
+import com.diagbot.vo.KlDiagnoseByIdVO;
+import com.diagbot.vo.KlDiagnoseInfoVO;
 
 import java.util.List;
 
@@ -18,4 +23,8 @@ import java.util.List;
 public interface KlDiagnoseService extends IService<KlDiagnose> {
     //根据匹配的基础规则ID获取确诊、拟诊、警惕的疾病
     List<DiagnoseDTO> getDiagnoseByIds(DiagnoseVO diagnoseVO);
+
+    IPage<KlDiagnoseInfoDTO> getKlDiagnosePages(KlDiagnoseInfoVO klDiagnoseInfoVO);
+
+    List<KlDiagnoseByIdDTO> getByIdDiagnoses(KlDiagnoseByIdVO klDiagnoseByIdVO);
 }

+ 15 - 0
src/main/java/com/diagbot/service/impl/KlDiagnoseServiceImpl.java

@@ -1,11 +1,16 @@
 package com.diagbot.service.impl;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.diagbot.dto.DiagnoseDTO;
+import com.diagbot.dto.KlDiagnoseByIdDTO;
+import com.diagbot.dto.KlDiagnoseInfoDTO;
 import com.diagbot.entity.KlDiagnose;
 import com.diagbot.mapper.KlDiagnoseMapper;
 import com.diagbot.service.KlDiagnoseService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.diagbot.vo.DiagnoseVO;
+import com.diagbot.vo.KlDiagnoseByIdVO;
+import com.diagbot.vo.KlDiagnoseInfoVO;
 import org.springframework.stereotype.Service;
 
 import java.util.List;
@@ -24,4 +29,14 @@ public class KlDiagnoseServiceImpl extends ServiceImpl<KlDiagnoseMapper, KlDiagn
     public List<DiagnoseDTO> getDiagnoseByIds(DiagnoseVO diagnoseVO){
         return baseMapper.getDiagnoseByIds(diagnoseVO);
     }
+
+    @Override
+    public IPage<KlDiagnoseInfoDTO> getKlDiagnosePages(KlDiagnoseInfoVO klDiagnoseInfoVO) {
+        return baseMapper.getKlDiagnosePages(klDiagnoseInfoVO);
+    }
+
+    @Override
+    public List<KlDiagnoseByIdDTO> getByIdDiagnoses(KlDiagnoseByIdVO klDiagnoseByIdVO) {
+        return baseMapper.getByIdDiagnoses(klDiagnoseByIdVO);
+    }
 }

+ 19 - 0
src/main/java/com/diagbot/vo/KlDiagnoseByIdVO.java

@@ -0,0 +1,19 @@
+package com.diagbot.vo;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import javax.validation.constraints.NotNull;
+
+/**
+ * @author wangfeng
+ * @Description:
+ * @date 2021-03-19 15:27
+ */
+@Setter
+@Getter
+public class KlDiagnoseByIdVO {
+
+    @NotNull(message = "请输入id")
+    private Long id;
+}

+ 18 - 0
src/main/java/com/diagbot/vo/KlDiagnoseClearVO.java

@@ -0,0 +1,18 @@
+package com.diagbot.vo;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import javax.validation.constraints.NotNull;
+
+/**
+ * @author wangfeng
+ * @Description:
+ * @date 2021-03-19 17:03
+ */
+@Setter
+@Getter
+public class KlDiagnoseClearVO {
+    @NotNull(message = "请输id")
+    private Long id;
+}

+ 24 - 0
src/main/java/com/diagbot/vo/KlDiagnoseInfoVO.java

@@ -0,0 +1,24 @@
+package com.diagbot.vo;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @author wangfeng
+ * @Description:
+ * @date 2021-03-19 15:25
+ */
+@Setter
+@Getter
+public class KlDiagnoseInfoVO extends Page {
+    /**
+     * 描述
+     */
+    private String description;
+
+    /**
+     * 启用状态(0:禁用,1:启用)
+     */
+    private Integer status;
+}

+ 19 - 0
src/main/java/com/diagbot/vo/KlDiagnoseSatarDisVO.java

@@ -0,0 +1,19 @@
+package com.diagbot.vo;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import javax.validation.constraints.NotNull;
+
+/**
+ * @author wangfeng
+ * @Description:
+ * @date 2021-03-19 17:02
+ */
+@Setter
+@Getter
+public class KlDiagnoseSatarDisVO {
+    @NotNull(message = "请输id")
+    private Long id;
+
+}

+ 89 - 0
src/main/java/com/diagbot/web/KlDiagnoseController.java

@@ -0,0 +1,89 @@
+package com.diagbot.web;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.diagbot.annotation.SysLogger;
+import com.diagbot.dto.KlDiagnoseByIdDTO;
+import com.diagbot.dto.KlDiagnoseInfoDTO;
+import com.diagbot.dto.KlRuleByIdParDTO;
+import com.diagbot.dto.KlRuleInfoDTO;
+import com.diagbot.dto.RespDTO;
+import com.diagbot.enums.StatusEnum;
+import com.diagbot.facade.KlDiagnoseFacade;
+import com.diagbot.vo.KlDiagnoseByIdVO;
+import com.diagbot.vo.KlDiagnoseClearVO;
+import com.diagbot.vo.KlDiagnoseInfoVO;
+import com.diagbot.vo.KlDiagnoseSatarDisVO;
+import com.diagbot.vo.KlRuleByIdVO;
+import com.diagbot.vo.KlRuleInfoClearVO;
+import com.diagbot.vo.KlRuleInfoSaveVO;
+import com.diagbot.vo.KlRuleInfoVO;
+import com.diagbot.vo.KlRuleSatartOrdisaVO;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.validation.Valid;
+import java.util.List;
+
+/**
+ * @author wangfeng
+ * @Description:
+ * @date 2021-03-19 14:52
+ */
+@RestController
+@RequestMapping("/klDiagnose")
+@Api(value = "诊断依据维护相关API", tags = { "诊断依据维护相关API" })
+@SuppressWarnings("unchecked")
+public class KlDiagnoseController {
+    @Autowired
+    KlDiagnoseFacade  klDiagnoseFacade;
+
+    @ApiOperation(value = "分页获取规则维护列表[by:wangfeng]")
+    @PostMapping("/getKlDiagnosePage")
+    @SysLogger("getKlDiagnosePage")
+    public RespDTO<IPage<KlDiagnoseInfoDTO>> getDiagnosePages(@RequestBody KlDiagnoseInfoVO klRuleInfoVO) {
+        return RespDTO.onSuc(klDiagnoseFacade.getKlDiagnoseInfoPage(klRuleInfoVO));
+    }
+
+    @ApiOperation(value = "根据规则Id获取规则详情[by:wangfeng]")
+    @PostMapping("/getByIdDiagnose")
+    @SysLogger("getByIdDiagnose")
+    public RespDTO<List<KlDiagnoseByIdDTO>> getByIdDiagnoseAll(@RequestBody @Valid KlDiagnoseByIdVO klDiagnoseByIdVO) {
+        return RespDTO.onSuc(klDiagnoseFacade.getByIdDiagnoseAll(klDiagnoseByIdVO));
+    }
+/*
+    @ApiOperation(value = "保存规则详情[by:wangfeng]")
+    @PostMapping("/saveDiagnose")
+    @SysLogger("saveDiagnose")
+    @Transactional
+    public RespDTO<Boolean> saveDiagnoseAll(@RequestBody @Valid KlDiagnoseSaveVO klRuleInfoSaveVO) {
+        return RespDTO.onSuc(klDiagnoseFacade.saveDiagnoseAll(klRuleInfoSaveVO));
+    }*/
+
+    @ApiOperation(value = "刪除规则详情[by:wangfeng]")
+    @PostMapping("/clearDiagnose")
+    @SysLogger("clearDiagnose")
+    @Transactional
+    public RespDTO<Boolean> clearDiagnoseAll(@RequestBody @Valid KlDiagnoseClearVO klDiagnoseClearVO) {
+        return RespDTO.onSuc(klDiagnoseFacade.clearDiagnoseAll(klDiagnoseClearVO));
+    }
+
+    @ApiOperation(value = "停用规则[by:wangfeng]")
+    @PostMapping("/disableKlDiagnose")
+    @SysLogger("disableKlDiagnose")
+    public RespDTO<Boolean> disableDiagnoses(@RequestBody @Valid KlDiagnoseSatarDisVO klDiagnoseSatarDisVO) {
+        return RespDTO.onSuc(klDiagnoseFacade.disableDiagnose(klDiagnoseSatarDisVO, StatusEnum.Disable.getKey()));
+    }
+
+    @ApiOperation(value = "启用规则[by:wangfeng]")
+    @PostMapping("/startKlDiagnose")
+    @SysLogger("startKlDiagnose")
+    public RespDTO<Boolean> startKlDiagnoses(@RequestBody @Valid KlDiagnoseSatarDisVO klDiagnoseSatarDisVO) {
+        return RespDTO.onSuc(klDiagnoseFacade.disableDiagnose(klDiagnoseSatarDisVO,StatusEnum.Enable.getKey()));
+    }
+}

+ 166 - 81
src/main/resources/mapper/KlDiagnoseMapper.xml

@@ -18,88 +18,88 @@
 
     <select id="getDiagnoseByIds" resultType="com.diagbot.dto.DiagnoseDTO" parameterType="com.diagbot.vo.DiagnoseVO">
         SELECT DISTINCT
-            t12.concept_id,
-            t12.lib_name,
-            t12.condition_type
+        t12.concept_id,
+        t12.lib_name,
+        t12.condition_type
         FROM
-            (
-                SELECT DISTINCT
-                    t11.concept_id,
-                    t11.lib_name,
-                    t11.condition_type,
-                    t11.condition_group,
-                    (
-                        count(t11.condition_group) &lt;= sum(baseGroupDiff)
-                    ) AS groupDiff
-                FROM
-                    (
-                        SELECT
-                            t3.*, IFNULL(t5.cnt, 0) AS cnt,
-                            (
-                                t3.fit_no &lt;= IFNULL(t5.cnt, 0)
-                            ) AS baseGroupDiff
-                        FROM
-                            (
-                                SELECT
-                                    t1.concept_id,t2.*, c1.lib_name
-                                FROM
-                                    kl_diagnose t1,
-                                    kl_diagnose_condition t2,
-                                    kl_concept c1,
-                                    (
-                                        SELECT DISTINCT
-                                            t4.diagnose_id
-                                        FROM
-                                            `kl_diagnose_condition` t4
-                                        WHERE
-                                            t4.condition_type = 1
-                                        AND t4.is_deleted = "N"
-                                        <if test="ids != null and ids.size > 0">
-                                            and t4.diagnose_base_id in
-                                            <foreach item="id" collection="ids" open="(" separator="," close=")">
-                                                #{id}
-                                            </foreach>
-                                        </if>
-                                    ) t10
-                                WHERE
-                                    t1.is_deleted = "N"
-                                AND t1.`status` = 1
-                                AND t2.is_deleted = "N"
-                                AND t1.id = t2.diagnose_id
-                                AND t2.condition_type IN (2, 3, 4)
-                                AND c1.is_deleted = "N"
-                                AND c1.`status` = 1
-                                AND c1.id = t1.concept_id
-                                AND t1.id = t10.diagnose_id
-                            ) t3
-                        LEFT JOIN (
-                            SELECT
-                                t4.diagnose_id,
-                                t4.base_group,
-                                COUNT(t4.id) AS cnt
-                            FROM
-                                `kl_diagnose_condition` t4
-                            WHERE
-                                t4.condition_type = 1
-                            AND t4.is_deleted = "N"
-                            <if test="ids != null and ids.size > 0">
-                                and t4.diagnose_base_id in
-                                <foreach item="id" collection="ids" open="(" separator="," close=")">
-                                    #{id}
-                                </foreach>
-                            </if>
-                            GROUP BY
-                                t4.diagnose_id,
-                                t4.base_group
-                        ) t5 ON t3.diagnose_id = t5.diagnose_id
-                        AND t3.base_group = t5.base_group
-                    ) t11
-                GROUP BY
-                    t11.concept_id,
-                    t11.condition_type,
-                    t11.condition_group
-                ) t12,
-                kl_concept_common t15
+        (
+        SELECT DISTINCT
+        t11.concept_id,
+        t11.lib_name,
+        t11.condition_type,
+        t11.condition_group,
+        (
+        count(t11.condition_group) &lt;= sum(baseGroupDiff)
+        ) AS groupDiff
+        FROM
+        (
+        SELECT
+        t3.*, IFNULL(t5.cnt, 0) AS cnt,
+        (
+        t3.fit_no &lt;= IFNULL(t5.cnt, 0)
+        ) AS baseGroupDiff
+        FROM
+        (
+        SELECT
+        t1.concept_id,t2.*, c1.lib_name
+        FROM
+        kl_diagnose t1,
+        kl_diagnose_condition t2,
+        kl_concept c1,
+        (
+        SELECT DISTINCT
+        t4.diagnose_id
+        FROM
+        `kl_diagnose_condition` t4
+        WHERE
+        t4.condition_type = 1
+        AND t4.is_deleted = "N"
+        <if test="ids != null and ids.size > 0">
+            and t4.diagnose_base_id in
+            <foreach item="id" collection="ids" open="(" separator="," close=")">
+                #{id}
+            </foreach>
+        </if>
+        ) t10
+        WHERE
+        t1.is_deleted = "N"
+        AND t1.`status` = 1
+        AND t2.is_deleted = "N"
+        AND t1.id = t2.diagnose_id
+        AND t2.condition_type IN (2, 3, 4)
+        AND c1.is_deleted = "N"
+        AND c1.`status` = 1
+        AND c1.id = t1.concept_id
+        AND t1.id = t10.diagnose_id
+        ) t3
+        LEFT JOIN (
+        SELECT
+        t4.diagnose_id,
+        t4.base_group,
+        COUNT(t4.id) AS cnt
+        FROM
+        `kl_diagnose_condition` t4
+        WHERE
+        t4.condition_type = 1
+        AND t4.is_deleted = "N"
+        <if test="ids != null and ids.size > 0">
+            and t4.diagnose_base_id in
+            <foreach item="id" collection="ids" open="(" separator="," close=")">
+                #{id}
+            </foreach>
+        </if>
+        GROUP BY
+        t4.diagnose_id,
+        t4.base_group
+        ) t5 ON t3.diagnose_id = t5.diagnose_id
+        AND t3.base_group = t5.base_group
+        ) t11
+        GROUP BY
+        t11.concept_id,
+        t11.condition_type,
+        t11.condition_group
+        ) t12,
+        kl_concept_common t15
         WHERE
         t15.concept_id = t12.concept_id
         AND t15.is_deleted = "N"
@@ -119,5 +119,90 @@
         </if>
         AND t12.groupDiff = 1
     </select>
+    <select id="getKlDiagnosePages" resultType="com.diagbot.dto.KlDiagnoseInfoDTO">
+        select * from kl_diagnose where is_deleted = 'N'
+        <if test="description!=null and description!=''">
+            AND UPPER(description) LIKE CONCAT('%', UPPER(trim(#{description})), '%')
+        </if>
+        <if test="status!=null">
+            AND status = #{status}
+        </if>
+        ORDER BY gmt_modified DESC
+    </select>
+    <select id="getByIdDiagnoses" resultType="com.diagbot.dto.KlDiagnoseByIdDTO">
+        SELECT
+        di.id as id,
+        di.description as description,
+        di.concept_id AS conceptId,
+        di.lib_name as libName,
+        di.lib_type as libType,
+        di.lename as lename,
+        di.status as status,
+        dico.condition_group as conditionGroup,
+        dico.base_group as baseGroup,
+        dico.fit_no as fitNo,
+        dico.condition_type as conditionType,
+        dibas.basid as basid,
+        dibas.basDescription as basDescription,
+        dibas.basConceptId as basConceptId,
+        dibas.basLibName as basLibName,
+        dibas.baslibType as baslibType,
+        dibas.basLename as basLename,
+        dibas.basType as basType,
+        dibas.min_operator as minOperator,
+        dibas.min_value AS minVal,
+        dibas.min_unit AS minUnit,
+        dibas.max_value AS maxVal,
+        dibas.max_unit as maxUnit,
+        dibas.max_operator as maxOperator,
+        dibas.eq_operator as eqOperator,
+        dibas.eq_value as eqValue,
+        dibas.eq_unit as eqUnit
+        FROM
+        (SELECT
+        a.id,
+        a.description,
+        a.concept_id,
+        b.lib_name,
+        b.lib_type,
+        a.status,
+        c.name AS lename
+        FROM
+        kl_diagnose a,
+        kl_concept b,
+        kl_lexicon c
+        WHERE a.concept_id = b.id
+        AND b.lib_type = c.code
+        <if test="id != null">
+            AND a.id = #{id}
+        </if>
+        ) di
+        LEFT JOIN kl_diagnose_condition dico
+        ON di.id = dico.diagnose_id
+        LEFT JOIN
+        (SELECT
+        c.id AS basid,
+        c.description AS basDescription,
+        c.concept_id AS basConceptId,
+        d.lib_name AS basLibName,
+        d.lib_type AS baslibType,
+        f.name AS basLename,
+        c.type AS basType,
+        c.min_operator,
+        c.min_value,
+        c.min_unit,
+        c.max_value,
+        c.max_unit,
+        c.max_operator,
+        c.eq_operator,
+        c.eq_value,
+        c.eq_unit
+        FROM
+        kl_diagnose_base c LEFT JOIN
+        kl_concept d ON c.concept_id = d.id
+        LEFT JOIN kl_lexicon f ON d.lib_type = f.code
+        ) dibas
+        ON dibas.basid = dico.diagnose_base_id
+    </select>
 
 </mapper>