Browse Source

规则接口

wangfeng 4 years ago
parent
commit
6f3d076f65
27 changed files with 953 additions and 17 deletions
  1. 51 0
      cdssman-service/src/main/java/com/diagbot/client/CdssCoreClient.java
  2. 52 0
      cdssman-service/src/main/java/com/diagbot/client/hystrix/CdssCoreHystrix.java
  3. 39 0
      cdssman-service/src/main/java/com/diagbot/dto/DiseasePageDTO.java
  4. 27 0
      cdssman-service/src/main/java/com/diagbot/dto/KlRuleByIdParDTO.java
  5. 31 0
      cdssman-service/src/main/java/com/diagbot/dto/KlRuleByIdSubDTO.java
  6. 65 0
      cdssman-service/src/main/java/com/diagbot/dto/KlRuleInfoDTO.java
  7. 19 0
      cdssman-service/src/main/java/com/diagbot/entity/KlRuleMenuWrapper.java
  8. 192 0
      cdssman-service/src/main/java/com/diagbot/entity/KlRulePlan.java
  9. 3 3
      cdssman-service/src/main/java/com/diagbot/facade/KlConceptFacade.java
  10. 21 0
      cdssman-service/src/main/java/com/diagbot/facade/KlDiseaseFacade.java
  11. 48 0
      cdssman-service/src/main/java/com/diagbot/facade/KlRuleFacade.java
  12. 26 0
      cdssman-service/src/main/java/com/diagbot/facade/KlRulePlanFacade.java
  13. 4 0
      cdssman-service/src/main/java/com/diagbot/mapper/KlDiseaseMapper.java
  14. 4 1
      cdssman-service/src/main/java/com/diagbot/service/KlDiseaseService.java
  15. 7 0
      cdssman-service/src/main/java/com/diagbot/service/impl/KlDiseaseServiceImpl.java
  16. 19 0
      cdssman-service/src/main/java/com/diagbot/vo/DiseasePageVO.java
  17. 18 0
      cdssman-service/src/main/java/com/diagbot/vo/KlRuleByIdVO.java
  18. 18 0
      cdssman-service/src/main/java/com/diagbot/vo/KlRuleInfoClearVO.java
  19. 30 0
      cdssman-service/src/main/java/com/diagbot/vo/KlRuleInfoSaveSubVO.java
  20. 27 0
      cdssman-service/src/main/java/com/diagbot/vo/KlRuleInfoSaveVO.java
  21. 30 0
      cdssman-service/src/main/java/com/diagbot/vo/KlRuleInfoVO.java
  22. 18 0
      cdssman-service/src/main/java/com/diagbot/vo/KlRuleMenuVO.java
  23. 18 0
      cdssman-service/src/main/java/com/diagbot/vo/KlRuleSatartOrdisaVO.java
  24. 24 3
      cdssman-service/src/main/java/com/diagbot/web/KlDiseaseController.java
  25. 88 0
      cdssman-service/src/main/java/com/diagbot/web/KlRuleController.java
  26. 43 0
      cdssman-service/src/main/java/com/diagbot/web/KlRulePlanController.java
  27. 31 10
      cdssman-service/src/main/resources/mapper/KlDiseaseMapper.xml

+ 51 - 0
cdssman-service/src/main/java/com/diagbot/client/CdssCoreClient.java

@@ -1,13 +1,19 @@
 package com.diagbot.client;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.diagbot.annotation.SysLogger;
 import com.diagbot.client.hystrix.CdssCoreHystrix;
 import com.diagbot.dto.IndicationDTO;
 import com.diagbot.dto.KlConceptStaticDTO;
+import com.diagbot.dto.KlRuleByIdParDTO;
+import com.diagbot.dto.KlRuleInfoDTO;
 import com.diagbot.dto.RespDTO;
 import com.diagbot.dto.RetrievalDTO;
 import com.diagbot.dto.StaticKnowledgeDTO;
 import com.diagbot.dto.StaticKnowledgeIndexDTO;
+import com.diagbot.entity.KlRuleMenuWrapper;
+import com.diagbot.enums.StatusEnum;
 import com.diagbot.vo.ChangeStatusVO;
 import com.diagbot.vo.ConceptVO;
 import com.diagbot.vo.HasStaticKnowledgeVO;
@@ -15,12 +21,21 @@ import com.diagbot.vo.IdVO;
 import com.diagbot.vo.IndicationPushVO;
 import com.diagbot.vo.KlConceptStaticPageVO;
 import com.diagbot.vo.KlConceptStaticVO;
+import com.diagbot.vo.KlRuleByIdVO;
+import com.diagbot.vo.KlRuleInfoClearVO;
+import com.diagbot.vo.KlRuleInfoSaveVO;
+import com.diagbot.vo.KlRuleInfoVO;
+import com.diagbot.vo.KlRuleMenuVO;
+import com.diagbot.vo.KlRuleSatartOrdisaVO;
 import com.diagbot.vo.RetrievalVO;
 import com.diagbot.vo.StaticKnowledgeIndexVO;
 import com.diagbot.vo.StaticKnowledgeVO;
+import io.swagger.annotations.ApiOperation;
 import org.springframework.cloud.openfeign.FeignClient;
+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 javax.validation.Valid;
 import java.util.List;
@@ -130,4 +145,40 @@ public interface CdssCoreClient {
      */
     @PostMapping("/kl/conceptStatic/isExist")
     RespDTO<Boolean> isExist(@Valid @RequestBody KlConceptStaticVO klConceptStaticVO);
+
+    /**
+     *获取规则下拉菜单信息
+     * @param klRuleMenuVO
+     * @return
+     */
+    @PostMapping("/klRulePlan/getMenu")
+    RespDTO<List<KlRuleMenuWrapper>> getMenus(@RequestBody KlRuleMenuVO klRuleMenuVO);
+
+   //"分页获取规则维护列表
+    @PostMapping("/klRule/getKlRuleInfoPage")
+
+    public RespDTO<IPage<KlRuleInfoDTO>> getKlRuleInfoPages(@RequestBody KlRuleInfoVO klRuleInfoVO);
+
+
+    //根据规则Id获取规则详情
+    @PostMapping("/klRule/getByIdRuleInfo")
+    public RespDTO<KlRuleByIdParDTO> getByIdRuleInfoAll(@RequestBody @Valid KlRuleByIdVO klRuleByIdVO);
+
+    //保存规则详情[
+    @PostMapping("/klRule/saveRuleInfo")
+    public RespDTO<Boolean> saveRuleInfoAll(@RequestBody @Valid KlRuleInfoSaveVO klRuleInfoSaveVO);
+
+    //刪除规则详情
+    @PostMapping("/klRule/clearRuleInfo")
+    public RespDTO<Boolean> clearRuleInfoAll(@RequestBody @Valid KlRuleInfoClearVO klRuleInfoClearVO);
+
+    //停用规则
+    @PostMapping("/klRule/disableRuleInfo")
+
+    public RespDTO<Boolean> disableRuleInfos(@RequestBody @Valid KlRuleSatartOrdisaVO klRuleSatartOrdisaVO);
+
+   //启用规则
+    @PostMapping("/klRule/startRuleInfo")
+    public RespDTO<Boolean> startRuleInfos(@RequestBody @Valid KlRuleSatartOrdisaVO klRuleSatartOrdisaVO);
+
 }

+ 52 - 0
cdssman-service/src/main/java/com/diagbot/client/hystrix/CdssCoreHystrix.java

@@ -1,13 +1,17 @@
 package com.diagbot.client.hystrix;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.diagbot.client.CdssCoreClient;
 import com.diagbot.dto.IndicationDTO;
 import com.diagbot.dto.KlConceptStaticDTO;
+import com.diagbot.dto.KlRuleByIdParDTO;
+import com.diagbot.dto.KlRuleInfoDTO;
 import com.diagbot.dto.RespDTO;
 import com.diagbot.dto.RetrievalDTO;
 import com.diagbot.dto.StaticKnowledgeDTO;
 import com.diagbot.dto.StaticKnowledgeIndexDTO;
+import com.diagbot.entity.KlRuleMenuWrapper;
 import com.diagbot.vo.ChangeStatusVO;
 import com.diagbot.vo.ConceptVO;
 import com.diagbot.vo.HasStaticKnowledgeVO;
@@ -15,6 +19,12 @@ import com.diagbot.vo.IdVO;
 import com.diagbot.vo.IndicationPushVO;
 import com.diagbot.vo.KlConceptStaticPageVO;
 import com.diagbot.vo.KlConceptStaticVO;
+import com.diagbot.vo.KlRuleByIdVO;
+import com.diagbot.vo.KlRuleInfoClearVO;
+import com.diagbot.vo.KlRuleInfoSaveVO;
+import com.diagbot.vo.KlRuleInfoVO;
+import com.diagbot.vo.KlRuleMenuVO;
+import com.diagbot.vo.KlRuleSatartOrdisaVO;
 import com.diagbot.vo.RetrievalVO;
 import com.diagbot.vo.StaticKnowledgeIndexVO;
 import com.diagbot.vo.StaticKnowledgeVO;
@@ -164,4 +174,46 @@ public class CdssCoreHystrix implements CdssCoreClient {
         log.error("【hystrix】调用{}异常", "isExist");
         return null;
     }
+
+    @Override
+    public RespDTO<List<KlRuleMenuWrapper>> getMenus(KlRuleMenuVO klRuleMenuVO) {
+        log.error("【hystrix】调用{}异常", "getMenus");
+        return null;
+    }
+
+    @Override
+    public RespDTO<IPage<KlRuleInfoDTO>> getKlRuleInfoPages(KlRuleInfoVO klRuleInfoVO) {
+        log.error("【hystrix】调用{}异常", "getKlRuleInfoPages");
+        return null;
+    }
+
+    @Override
+    public RespDTO<KlRuleByIdParDTO> getByIdRuleInfoAll(@Valid KlRuleByIdVO klRuleByIdVO) {
+        log.error("【hystrix】调用{}异常", "getByIdRuleInfoAll");
+        return null;
+    }
+
+    @Override
+    public RespDTO<Boolean> saveRuleInfoAll(@Valid KlRuleInfoSaveVO klRuleInfoSaveVO) {
+        log.error("【hystrix】调用{}异常", "saveRuleInfoAll");
+        return null;
+    }
+
+    @Override
+    public RespDTO<Boolean> clearRuleInfoAll(@Valid KlRuleInfoClearVO klRuleInfoClearVO) {
+        log.error("【hystrix】调用{}异常", "clearRuleInfoAll");
+        return null;
+    }
+
+    @Override
+    public RespDTO<Boolean> disableRuleInfos(@Valid KlRuleSatartOrdisaVO klRuleSatartOrdisaVO) {
+        log.error("【hystrix】调用{}异常", "disableRuleInfos");
+        return null;
+    }
+
+    @Override
+    public RespDTO<Boolean> startRuleInfos(@Valid KlRuleSatartOrdisaVO klRuleSatartOrdisaVO) {
+        log.error("【hystrix】调用{}异常", "startRuleInfos");
+        return null;
+    }
 }

+ 39 - 0
cdssman-service/src/main/java/com/diagbot/dto/DiseasePageDTO.java

@@ -0,0 +1,39 @@
+package com.diagbot.dto;
+
+import lombok.Data;
+import lombok.Getter;
+import lombok.Setter;
+import org.springframework.web.bind.annotation.GetMapping;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * @author kwz
+ * @date 2021/3/9
+ * @time 14:04
+ */
+@Setter
+@Getter
+public class DiseasePageDTO  {
+
+    /**
+     * 主键
+     */
+    private Long id;
+    /**
+     * 记录修改时间,如果时间是1970年则表示纪录未修改
+     */
+    private Date gmtModified;
+
+
+    /**
+     * 修改人姓名
+     */
+    private String modifier;
+
+    /**
+     * 诊断名称
+     */
+    private String disName;
+}

+ 27 - 0
cdssman-service/src/main/java/com/diagbot/dto/KlRuleByIdParDTO.java

@@ -0,0 +1,27 @@
+package com.diagbot.dto;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.List;
+
+/**
+ * @author wangfeng
+ * @Description:
+ * @date 2021-03-08 13:18
+ */
+@Setter
+@Getter
+public class KlRuleByIdParDTO {
+    private Long parId;
+    private String parDescription;//规则名称
+    private Integer parRuleType;//规则类型(1:开单合理性;2:高危;3:危急值;4:其他值提醒;5:其他值提醒输血;6:正常项目重复开立)
+    private Long parConceptId;//提示概念id
+    private String parlibName;
+    private Integer parHasSub;//是否有子条件(0:无,1:有)
+    private String parMsg;//附加信息
+    private Integer parStatus;//启用状态(0:禁用,1:启用)
+    private String parLenName;
+    private String parLenCode;
+    private List<KlRuleByIdSubDTO>  klRuleByIdSub;
+}

+ 31 - 0
cdssman-service/src/main/java/com/diagbot/dto/KlRuleByIdSubDTO.java

@@ -0,0 +1,31 @@
+package com.diagbot.dto;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @author wangfeng
+ * @Description:
+ * @date 2021-03-08 13:16
+ */
+@Setter
+@Getter
+public class KlRuleByIdSubDTO {
+    private Long subId;//基础规则id
+    private String subDescription;//基础规则名称
+    private Long subConceptId;//医学标准术语id
+    private String subLibName;//医学标准术语
+    private String subLenName;//基础规则术语类型
+    private String subLenCode;//基础规则术语编码
+    private Integer subType;//基础规则类型(1:开单外等于术语本身;2:开单外存在比较;3:开单外不等于术语本身;4:过敏原;5:开单项;6:检查结果正则表达式)
+    private Integer groupType;
+    private String subMinOperator;//最小域比较符
+    private String subMinValue;//最小域值
+    private String subMinUnit;//最小域单位
+    private String subMaxOperator;//最大域比较符
+    private String subMaxValue;//最大域值
+    private String subMaxUnit;//最大域单位
+    private String subEqOperator;//等于域比较符
+    private String subEqValue;//等于域值
+    private String subEqUnit;//等于域单位
+}

+ 65 - 0
cdssman-service/src/main/java/com/diagbot/dto/KlRuleInfoDTO.java

@@ -0,0 +1,65 @@
+package com.diagbot.dto;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.Date;
+
+/**
+ * @author wangfeng
+ * @Description:
+ * @date 2021-03-05 13:44
+ */
+@Setter
+@Getter
+public class KlRuleInfoDTO {
+
+    /**
+     * 主键
+     */
+    private Long id;
+
+    /**
+     * 记录修改时间,如果时间是1970年则表示纪录未修改
+     */
+    private Date gmtModified;
+
+    /**
+     * 修改人,如果为0则表示纪录未修改
+     */
+    private String modifier;
+
+    /**
+     * 提示概念id
+     */
+    private Long conceptId;
+
+    private String conceptName;
+
+
+    private String libTypeName;
+    /**
+     * 描述
+     */
+    private String description;
+
+    /**
+     * 规则类型(1:开单合理性;2:高危;3:危急值;4:其他值提醒;5:其他值提醒输血;6:正常项目重复开立)
+     */
+    private Integer ruleType;
+
+    /**
+     * 是否有子条件(0:无,1:有)
+     */
+    private Integer hasSubCond;
+
+    /**
+     * 启用状态(0:禁用,1:启用)
+     */
+    private Integer status;
+
+    /**
+     * 附加信息
+     */
+    private String msg;
+}

+ 19 - 0
cdssman-service/src/main/java/com/diagbot/entity/KlRuleMenuWrapper.java

@@ -0,0 +1,19 @@
+package com.diagbot.entity;
+
+import com.diagbot.entity.KlRulePlan;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @author wangfeng
+ * @Description:
+ * @date 2021-03-09 10:20
+ */
+@Getter
+@Setter
+public class KlRuleMenuWrapper extends KlRulePlan {
+    private List<KlRuleMenuWrapper> subMenuList = new ArrayList<>();
+}

+ 192 - 0
cdssman-service/src/main/java/com/diagbot/entity/KlRulePlan.java

@@ -0,0 +1,192 @@
+package com.diagbot.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+import java.util.Date;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author wangfeng
+ * @since 2021-03-09
+ */
+public class KlRulePlan implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 资源ID
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 是否删除,N:未删除,Y:删除
+     */
+    private String isDeleted;
+
+    /**
+     * 记录创建时间
+     */
+    private Date gmtCreate;
+
+    /**
+     * 记录修改时间,如果时间是1970年则表示纪录未修改
+     */
+    private Date gmtModified;
+
+    /**
+     * 创建人,0表示无创建人值
+     */
+    private String creator;
+
+    /**
+     * 修改人,如果为0则表示纪录未修改
+     */
+    private String modifier;
+
+    /**
+     * 规则类型(1:开单合理性;2:高危;3:危急值;4:其他值提醒;5:其他值提醒输血;6:正常项目重复开立)
+     */
+    private Long ruleType;
+
+    /**
+     * -1:表示顶级,其他值表示上级菜单的id
+     */
+    private Long parentId;
+
+    /**
+     * 基础规则类型
+     */
+    private String name;
+
+    private Integer type;
+
+    /**
+     * 类型编码
+     */
+    private String code;
+
+    /**
+     * 显示顺序
+     */
+    private Integer orderNo;
+
+    private String remark;
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+    public String getIsDeleted() {
+        return isDeleted;
+    }
+
+    public void setIsDeleted(String isDeleted) {
+        this.isDeleted = isDeleted;
+    }
+    public Date getGmtCreate() {
+        return gmtCreate;
+    }
+
+    public void setGmtCreate(Date gmtCreate) {
+        this.gmtCreate = gmtCreate;
+    }
+    public Date getGmtModified() {
+        return gmtModified;
+    }
+
+    public void setGmtModified(Date gmtModified) {
+        this.gmtModified = gmtModified;
+    }
+    public String getCreator() {
+        return creator;
+    }
+
+    public void setCreator(String creator) {
+        this.creator = creator;
+    }
+    public String getModifier() {
+        return modifier;
+    }
+
+    public void setModifier(String modifier) {
+        this.modifier = modifier;
+    }
+    public Long getRuleType() {
+        return ruleType;
+    }
+
+    public void setRuleType(Long ruleType) {
+        this.ruleType = ruleType;
+    }
+    public Long getParentId() {
+        return parentId;
+    }
+
+    public void setParentId(Long parentId) {
+        this.parentId = parentId;
+    }
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+    public Integer getType() {
+        return type;
+    }
+
+    public void setType(Integer type) {
+        this.type = type;
+    }
+    public String getCode() {
+        return code;
+    }
+
+    public void setCode(String code) {
+        this.code = code;
+    }
+    public Integer getOrderNo() {
+        return orderNo;
+    }
+
+    public void setOrderNo(Integer orderNo) {
+        this.orderNo = orderNo;
+    }
+    public String getRemark() {
+        return remark;
+    }
+
+    public void setRemark(String remark) {
+        this.remark = remark;
+    }
+
+    @Override
+    public String toString() {
+        return "KlRulePlan{" +
+            "id=" + id +
+            ", isDeleted=" + isDeleted +
+            ", gmtCreate=" + gmtCreate +
+            ", gmtModified=" + gmtModified +
+            ", creator=" + creator +
+            ", modifier=" + modifier +
+            ", ruleType=" + ruleType +
+            ", parentId=" + parentId +
+            ", name=" + name +
+            ", type=" + type +
+            ", code=" + code +
+            ", orderNo=" + orderNo +
+            ", remark=" + remark +
+        "}";
+    }
+}

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

@@ -55,7 +55,7 @@ public class KlConceptFacade extends KlConceptServiceImpl {
     @Autowired
     KlLisService klLisService;
     @Autowired
-    KlDiseaseService klDiseaseService;
+    KlDiseaseFacade klDiseaseFacade;
 
     /**
      * @param klConceptInfoVO
@@ -172,7 +172,7 @@ public class KlConceptFacade extends KlConceptServiceImpl {
             kllDiseaseSub.setGmtModified(now);
             kllDiseaseSub.setModifier(UserUtils.getCurrentPrincipleID());
             kllDiseaseSub.setIcd10Code(klConceptSaveVO.getIcdCode());
-            res = klDiseaseService.saveOrUpdate(kllDiseaseSub);
+            res = klDiseaseFacade.saveOrUpdate(kllDiseaseSub);
             //更新kl_lis
             KlLis klLisSub = new KlLis();
             klLisSub.setConceptId(klConceptPare.getId());
@@ -243,7 +243,7 @@ public class KlConceptFacade extends KlConceptServiceImpl {
             kllDiseaseSub.setGmtModified(now);
             kllDiseaseSub.setModifier(UserUtils.getCurrentPrincipleID());
             kllDiseaseSub.setIcd10Code(klConceptSaveVO.getIcdCode());
-            res = klDiseaseService.saveOrUpdate(kllDiseaseSub);
+            res = klDiseaseFacade.saveOrUpdate(kllDiseaseSub);
         }
         //更新kl_lis
         if (klConceptSaveVO.getScopeType() != null) {

+ 21 - 0
cdssman-service/src/main/java/com/diagbot/facade/KlDiseaseFacade.java

@@ -0,0 +1,21 @@
+package com.diagbot.facade;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.diagbot.dto.DiseasePageDTO;
+import com.diagbot.service.KlDiseaseService;
+import com.diagbot.service.impl.KlDiseaseServiceImpl;
+import com.diagbot.vo.DiseasePageVO;
+import org.springframework.stereotype.Component;
+
+/**
+ * @author wangfeng
+ * @Description:
+ * @date 2021-03-09 15:33
+ */
+@Component
+public class KlDiseaseFacade extends KlDiseaseServiceImpl {
+
+    public IPage<DiseasePageDTO> getDiseasePageAll(DiseasePageVO klConceptInfoVO) {
+        return  this.getDiseasePage(klConceptInfoVO);
+    }
+}

+ 48 - 0
cdssman-service/src/main/java/com/diagbot/facade/KlRuleFacade.java

@@ -1,6 +1,19 @@
 package com.diagbot.facade;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.diagbot.client.CdssCoreClient;
+import com.diagbot.dto.KlRuleByIdParDTO;
+import com.diagbot.dto.KlRuleInfoDTO;
+import com.diagbot.dto.RespDTO;
+import com.diagbot.exception.CommonErrorCode;
+import com.diagbot.exception.CommonException;
 import com.diagbot.service.impl.KlRuleServiceImpl;
+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 org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
 /**
@@ -10,5 +23,40 @@ import org.springframework.stereotype.Component;
  */
 @Component
 public class KlRuleFacade extends KlRuleServiceImpl {
+    @Autowired
+    CdssCoreClient cdssCoreClient;
 
+    public IPage<KlRuleInfoDTO> getKlRuleInfoPage(KlRuleInfoVO klRuleInfoVO) {
+        RespDTO<IPage<KlRuleInfoDTO>> klRuleInfoPages = cdssCoreClient.getKlRuleInfoPages(klRuleInfoVO);
+        if (klRuleInfoPages == null || !CommonErrorCode.OK.getCode().equals(klRuleInfoPages.code)) {
+            throw new CommonException(CommonErrorCode.SERVER_IS_ERROR,
+                    "获取cdss_core数据失败");
+        }
+        return klRuleInfoPages.data;
+    }
+
+    public KlRuleByIdParDTO getByIdRuleInfos(KlRuleByIdVO klRuleByIdVO) {
+        RespDTO<KlRuleByIdParDTO> byIdRuleInfoAll = cdssCoreClient.getByIdRuleInfoAll(klRuleByIdVO);
+        return byIdRuleInfoAll.data;
+    }
+
+    public Boolean saveRuleInfos(KlRuleInfoSaveVO klRuleInfoSaveVO) {
+        RespDTO<Boolean> booleanRespDTO = cdssCoreClient.saveRuleInfoAll(klRuleInfoSaveVO);
+        return booleanRespDTO.data;
+    }
+
+    public Boolean clearRuleInfos(KlRuleInfoClearVO klRuleInfoClearVO) {
+        RespDTO<Boolean> booleanRespDTO = cdssCoreClient.clearRuleInfoAll(klRuleInfoClearVO);
+        return booleanRespDTO.data;
+    }
+
+    public Boolean startOrDisableRule(KlRuleSatartOrdisaVO klRuleSatartOrdisaVO) {
+        RespDTO<Boolean> booleanRespDTO = cdssCoreClient.disableRuleInfos(klRuleSatartOrdisaVO);
+        return booleanRespDTO.data;
+    }
+
+    public Boolean startRuleInfos(KlRuleSatartOrdisaVO klRuleSatartOrdisaVO) {
+        RespDTO<Boolean> booleanRespDTO = cdssCoreClient.startRuleInfos(klRuleSatartOrdisaVO);
+        return booleanRespDTO.data;
+    }
 }

+ 26 - 0
cdssman-service/src/main/java/com/diagbot/facade/KlRulePlanFacade.java

@@ -0,0 +1,26 @@
+package com.diagbot.facade;
+
+import com.diagbot.client.CdssCoreClient;
+import com.diagbot.dto.RespDTO;
+import com.diagbot.entity.KlRuleMenuWrapper;
+import com.diagbot.vo.KlRuleMenuVO;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.util.List;
+
+/**
+ * @author wangfeng
+ * @Description:
+ * @date 2021-03-09 15:30
+ */
+@Component
+public class KlRulePlanFacade {
+    @Autowired
+    CdssCoreClient cdssCoreClient;
+
+    public List<KlRuleMenuWrapper> getMenu(KlRuleMenuVO klRuleMenuVO) {
+        RespDTO<List<KlRuleMenuWrapper>> menus = cdssCoreClient.getMenus(klRuleMenuVO);
+        return  menus.data;
+    }
+}

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

@@ -1,7 +1,10 @@
 package com.diagbot.mapper;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.diagbot.dto.DiseasePageDTO;
 import com.diagbot.entity.KlDisease;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.diagbot.vo.DiseasePageVO;
 
 /**
  * <p>
@@ -13,4 +16,5 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  */
 public interface KlDiseaseMapper extends BaseMapper<KlDisease> {
 
+    IPage<DiseasePageDTO> getDiseasePage(DiseasePageVO klConceptInfoVO);
 }

+ 4 - 1
cdssman-service/src/main/java/com/diagbot/service/KlDiseaseService.java

@@ -1,7 +1,10 @@
 package com.diagbot.service;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.diagbot.dto.DiseasePageDTO;
 import com.diagbot.entity.KlDisease;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.diagbot.vo.DiseasePageVO;
 
 /**
  * <p>
@@ -12,5 +15,5 @@ import com.baomidou.mybatisplus.extension.service.IService;
  * @since 2021-03-01
  */
 public interface KlDiseaseService extends IService<KlDisease> {
-
+    IPage<DiseasePageDTO> getDiseasePage(DiseasePageVO klConceptInfoVO);
 }

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

@@ -1,10 +1,13 @@
 package com.diagbot.service.impl;
 
 import com.baomidou.dynamic.datasource.annotation.DS;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.diagbot.dto.DiseasePageDTO;
 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.DiseasePageVO;
 import org.springframework.stereotype.Service;
 
 /**
@@ -19,4 +22,8 @@ import org.springframework.stereotype.Service;
 @DS("med")
 public class KlDiseaseServiceImpl extends ServiceImpl<KlDiseaseMapper, KlDisease> implements KlDiseaseService {
 
+    @Override
+    public IPage<DiseasePageDTO> getDiseasePage(DiseasePageVO klConceptInfoVO) {
+        return baseMapper.getDiseasePage(klConceptInfoVO);
+    }
 }

+ 19 - 0
cdssman-service/src/main/java/com/diagbot/vo/DiseasePageVO.java

@@ -0,0 +1,19 @@
+package com.diagbot.vo;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+
+/**
+ * @author kwz
+ * @date 2021/3/9
+ * @time 13:59
+ */
+@Getter
+@Setter
+public class DiseasePageVO extends Page{
+    //@ApiModelProperty(value = "诊断名称")
+    private String disName;
+}

+ 18 - 0
cdssman-service/src/main/java/com/diagbot/vo/KlRuleByIdVO.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-08 11:11
+ */
+@Setter
+@Getter
+public class KlRuleByIdVO {
+    @NotNull(message = "请输id")
+    private Long id;
+}

+ 18 - 0
cdssman-service/src/main/java/com/diagbot/vo/KlRuleInfoClearVO.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-08 13:46
+ */
+@Setter
+@Getter
+public class KlRuleInfoClearVO {
+    @NotNull(message = "请输id")
+    private Long id;
+}

+ 30 - 0
cdssman-service/src/main/java/com/diagbot/vo/KlRuleInfoSaveSubVO.java

@@ -0,0 +1,30 @@
+package com.diagbot.vo;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @author wangfeng
+ * @Description:
+ * @date 2021-03-08 13:38
+ */
+@Setter
+@Getter
+public class KlRuleInfoSaveSubVO {
+    private String subDescription;//基础规则名称
+    private Long subConceptId;//医学标准术语id
+/*    private String subLibName;//医学标准术语
+    private String subLenName;//基础规则术语类型
+    private String subLenCode;//基础规则术语编码*/
+    private Integer subType;//基础规则类型(1:开单外等于术语本身;2:开单外存在比较;3:开单外不等于术语本身;4:过敏原;5:开单项;6:检查结果正则表达式)
+    private Integer groupType;
+    private String subMinOperator;//最小域比较符
+    private String subMinValue;//最小域值
+    private String subMinUnit;//最小域单位
+    private String subMaxOperator;//最大域比较符
+    private String subMaxValue;//最大域值
+    private String subMaxUnit;//最大域单位
+    private String subEqOperator;//等于域比较符
+    private String subEqValue;//等于域值
+    private String subEqUnit;//等于域单位
+}

+ 27 - 0
cdssman-service/src/main/java/com/diagbot/vo/KlRuleInfoSaveVO.java

@@ -0,0 +1,27 @@
+package com.diagbot.vo;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.List;
+
+/**
+ * @author wangfeng
+ * @Description:
+ * @date 2021-03-08 13:37
+ */
+@Setter
+@Getter
+public class KlRuleInfoSaveVO {
+    private Long id;
+    private String parDescription;//规则名称
+    private Integer parRuleType;//规则类型(1:开单合理性;2:高危;3:危急值;4:其他值提醒;5:其他值提醒输血;6:正常项目重复开立)
+    private Long parConceptId;//提示概念id
+    private Integer parHasSub;//是否有子条件(0:无,1:有)
+    private String parMsg;//附加信息
+    private Integer parStatus;//启用状态(0:禁用,1:启用)
+    /*    private String parlibName;
+        private String parLenName;
+        private String parLenCode;*/
+    private List<KlRuleInfoSaveSubVO> klRuleInfoSaveSub;
+}

+ 30 - 0
cdssman-service/src/main/java/com/diagbot/vo/KlRuleInfoVO.java

@@ -0,0 +1,30 @@
+package com.diagbot.vo;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @author wangfeng
+ * @Description:
+ * @date 2021-03-05 13:44
+ */
+@Setter
+@Getter
+public class KlRuleInfoVO extends Page {
+    /**
+     * 描述
+     */
+    private String description;
+    /**
+     * 规则类型(1:开单合理性;2:高危;3:危急值;4:其他值提醒;5:其他值提醒输血;6:正常项目重复开立)
+     */
+    private Integer ruleType;
+
+    private String conceptName;
+    /**
+     * 启用状态(0:禁用,1:启用)
+     */
+    private Integer status;
+
+}

+ 18 - 0
cdssman-service/src/main/java/com/diagbot/vo/KlRuleMenuVO.java

@@ -0,0 +1,18 @@
+package com.diagbot.vo;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @author wangfeng
+ * @Description:
+ * @date 2021-03-09 13:35
+ */
+@Setter
+@Getter
+public class KlRuleMenuVO {
+    /**
+     * 规则类型(1:开单合理性;2:高危;3:危急值;4:其他值提醒;5:其他值提醒输血;6:正常项目重复开立)
+     */
+    private Integer ruleType;
+}

+ 18 - 0
cdssman-service/src/main/java/com/diagbot/vo/KlRuleSatartOrdisaVO.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-08 16:32
+ */
+@Setter
+@Getter
+public class KlRuleSatartOrdisaVO {
+    @NotNull(message = "请输id")
+    private Long id;
+}

+ 24 - 3
cdssman-service/src/main/java/com/diagbot/web/KlDiseaseController.java

@@ -1,9 +1,20 @@
 package com.diagbot.web;
 
 
-import org.springframework.web.bind.annotation.RequestMapping;
-
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.diagbot.annotation.SysLogger;
+import com.diagbot.dto.DiseasePageDTO;
+import com.diagbot.dto.RespDTO;
+import com.diagbot.facade.KlDiseaseFacade;
+import com.diagbot.vo.DiseasePageVO;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
+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;
 
 /**
  * <p>
@@ -13,8 +24,18 @@ import org.springframework.stereotype.Controller;
  * @author wangfeng
  * @since 2021-03-01
  */
-@Controller
+@RestController
 @RequestMapping("/klDisease")
+@SuppressWarnings("unchecked")
+@Api(value = "疾病相关API", tags = { "疾病相关API" })
 public class KlDiseaseController {
+    @Autowired
+    KlDiseaseFacade klDiseaseFacade;
 
+    @ApiOperation(value = "分页获取基础术语维护列表[by:kongwz]")
+    @PostMapping("/getDiseasePage")
+    @SysLogger("getDiseasePage")
+    public RespDTO<IPage<DiseasePageDTO>> getDiseasePages(@RequestBody DiseasePageVO klConceptInfoVO) {
+        return RespDTO.onSuc(klDiseaseFacade.getDiseasePageAll(klConceptInfoVO));
+    }
 }

+ 88 - 0
cdssman-service/src/main/java/com/diagbot/web/KlRuleController.java

@@ -0,0 +1,88 @@
+package com.diagbot.web;
+
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.diagbot.annotation.SysLogger;
+import com.diagbot.dto.KlRuleByIdParDTO;
+import com.diagbot.dto.KlRuleInfoDTO;
+import com.diagbot.dto.RespDTO;
+import com.diagbot.enums.StatusEnum;
+import com.diagbot.facade.KlRuleFacade;
+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;
+
+/**
+ * <p>
+ * 规则信息表 前端控制器
+ * </p>
+ *
+ * @author wangfeng
+ * @since 2021-03-05
+ */
+@RestController
+@RequestMapping("/klRule")
+@Api(value = "规则维护相关API", tags = { "规则维护相关API" })
+@SuppressWarnings("unchecked")
+public class KlRuleController {
+
+    @Autowired
+    KlRuleFacade klRuleFacade;
+
+    @ApiOperation(value = "分页获取规则维护列表[by:wangfeng]")
+    @PostMapping("/getKlRuleInfoPage")
+    @SysLogger("getKlRuleInfoPage")
+    public RespDTO<IPage<KlRuleInfoDTO>> getKlRuleInfoPages(@RequestBody KlRuleInfoVO klRuleInfoVO) {
+        return RespDTO.onSuc(klRuleFacade.getKlRuleInfoPage(klRuleInfoVO));
+    }
+
+    @ApiOperation(value = "根据规则Id获取规则详情[by:wangfeng]")
+    @PostMapping("/getByIdRuleInfo")
+    @SysLogger("getByIdRuleInfo")
+    public RespDTO<KlRuleByIdParDTO> getByIdRuleInfoAll(@RequestBody @Valid KlRuleByIdVO klRuleByIdVO) {
+        return RespDTO.onSuc(klRuleFacade.getByIdRuleInfos(klRuleByIdVO));
+    }
+
+    @ApiOperation(value = "保存规则详情[by:wangfeng]")
+    @PostMapping("/saveRuleInfo")
+    @SysLogger("saveRuleInfo")
+    @Transactional
+    public RespDTO<Boolean> saveRuleInfoAll(@RequestBody @Valid KlRuleInfoSaveVO klRuleInfoSaveVO) {
+        return RespDTO.onSuc(klRuleFacade.saveRuleInfos(klRuleInfoSaveVO));
+    }
+
+    @ApiOperation(value = "刪除规则详情[by:wangfeng]")
+    @PostMapping("/clearRuleInfo")
+    @SysLogger("clearRuleInfo")
+    @Transactional
+    public RespDTO<Boolean> clearRuleInfoAll(@RequestBody @Valid KlRuleInfoClearVO klRuleInfoClearVO) {
+        return RespDTO.onSuc(klRuleFacade.clearRuleInfos(klRuleInfoClearVO));
+    }
+
+    @ApiOperation(value = "停用规则[by:wangfeng]")
+    @PostMapping("/disableRuleInfo")
+    @SysLogger("disableRuleInfo")
+    public RespDTO<Boolean> disableRuleInfos(@RequestBody @Valid KlRuleSatartOrdisaVO klRuleSatartOrdisaVO) {
+        return RespDTO.onSuc(klRuleFacade.startOrDisableRule(klRuleSatartOrdisaVO));
+    }
+
+    @ApiOperation(value = "启用规则[by:wangfeng]")
+    @PostMapping("/startRuleInfo")
+    @SysLogger("startRuleInfo")
+    public RespDTO<Boolean> startRuleInfos(@RequestBody @Valid KlRuleSatartOrdisaVO klRuleSatartOrdisaVO) {
+        return RespDTO.onSuc(klRuleFacade.startRuleInfos(klRuleSatartOrdisaVO));
+    }
+
+}

+ 43 - 0
cdssman-service/src/main/java/com/diagbot/web/KlRulePlanController.java

@@ -0,0 +1,43 @@
+package com.diagbot.web;
+
+
+import com.diagbot.annotation.SysLogger;
+import com.diagbot.dto.RespDTO;
+import com.diagbot.entity.KlRuleMenuWrapper;
+import com.diagbot.facade.KlRulePlanFacade;
+import com.diagbot.vo.KlRuleMenuVO;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+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 java.util.List;
+
+/**
+ * <p>
+ *  前端控制器
+ * </p>
+ *
+ * @author wangfeng
+ * @since 2021-03-09
+ */
+@RestController
+@Api(value = "规则下拉菜单API", tags = { "规则下拉菜单API" })
+@RequestMapping("/klRulePlan")
+@SuppressWarnings("unchecked")
+public class KlRulePlanController {
+
+    @Autowired
+    KlRulePlanFacade klRulePlanFacade;
+
+    @ApiOperation(value = "获取规则下拉菜单信息[by:wangfeng]",
+            notes = "")
+    @PostMapping("/getMenu")
+    @SysLogger("getMenu")
+    public RespDTO<List<KlRuleMenuWrapper>> getMenus(@RequestBody KlRuleMenuVO klRuleMenuVO) {
+        return RespDTO.onSuc( klRulePlanFacade.getMenu(klRuleMenuVO));
+    }
+}

+ 31 - 10
cdssman-service/src/main/resources/mapper/KlDiseaseMapper.xml

@@ -4,15 +4,36 @@
 
     <!-- 通用查询映射结果 -->
     <resultMap id="BaseResultMap" type="com.diagbot.entity.KlDisease">
-        <id column="id" property="id" />
-        <result column="is_deleted" property="isDeleted" />
-        <result column="gmt_create" property="gmtCreate" />
-        <result column="gmt_modified" property="gmtModified" />
-        <result column="creator" property="creator" />
-        <result column="modifier" property="modifier" />
-        <result column="concept_id" property="conceptId" />
-        <result column="icd10_code" property="icd10Code" />
-        <result column="remark" property="remark" />
+        <id column="id" property="id"/>
+        <result column="is_deleted" property="isDeleted"/>
+        <result column="gmt_create" property="gmtCreate"/>
+        <result column="gmt_modified" property="gmtModified"/>
+        <result column="creator" property="creator"/>
+        <result column="modifier" property="modifier"/>
+        <result column="concept_id" property="conceptId"/>
+        <result column="icd10_code" property="icd10Code"/>
+        <result column="remark" property="remark"/>
     </resultMap>
-
+    <select id="getDiseasePage" resultType="com.diagbot.dto.DiseasePageDTO">
+        SELECT
+        res.id,
+        res.lib_name as disName,
+        res.modifier,
+        res.gmt_modified as gmtModified
+        FROM
+        (
+        SELECT
+        kd.*, kc.lib_name
+        FROM
+        kl_disease kd,
+        kl_concept kc
+        WHERE
+        kd.concept_id = kc.id
+        AND kc.is_deleted = 'N'
+        AND kd.is_deleted = 'N'
+        ) res
+        <if test="disName != null and disName != ''">
+            WHERE UPPER(res.lib_name) LIKE concat('%',UPPER(trim(#{disName})) ,'%' )
+        </if>
+    </select>
 </mapper>