ソースを参照

Merge branch 'dev/evaluation_20210412' into debug

wangfeng 4 年 前
コミット
c25f68a6ff
48 ファイル変更1015 行追加390 行削除
  1. 1 1
      cdssman-service/pom.xml
  2. 1 0
      cdssman-service/src/main/java/com/diagbot/dto/KlConceptAllDTO.java
  3. 1 1
      cdssman-service/src/main/java/com/diagbot/dto/KlConceptInfoDTO.java
  4. 1 0
      cdssman-service/src/main/java/com/diagbot/dto/RuleDTO.java
  5. 1 1
      cdssman-service/src/main/java/com/diagbot/entity/DeptConfig.java
  6. 1 1
      cdssman-service/src/main/java/com/diagbot/entity/DiseaseConfig.java
  7. 1 1
      cdssman-service/src/main/java/com/diagbot/entity/DrugConfig.java
  8. 147 0
      cdssman-service/src/main/java/com/diagbot/entity/KlDrug.java
  9. 1 1
      cdssman-service/src/main/java/com/diagbot/entity/LisConfig.java
  10. 1 1
      cdssman-service/src/main/java/com/diagbot/entity/OperationConfig.java
  11. 1 1
      cdssman-service/src/main/java/com/diagbot/entity/PacsConfig.java
  12. 1 1
      cdssman-service/src/main/java/com/diagbot/entity/TransfusionConfig.java
  13. 4 2
      cdssman-service/src/main/java/com/diagbot/enums/DiseaseRelationTypeEnum.java
  14. 3 2
      cdssman-service/src/main/java/com/diagbot/enums/RelationLibTypeEnum.java
  15. 1 1
      cdssman-service/src/main/java/com/diagbot/facade/CacheFacade.java
  16. 52 0
      cdssman-service/src/main/java/com/diagbot/facade/DrugConfigFacade.java
  17. 26 9
      cdssman-service/src/main/java/com/diagbot/facade/KlConceptCommonFacade.java
  18. 55 9
      cdssman-service/src/main/java/com/diagbot/facade/KlConceptFacade.java
  19. 23 9
      cdssman-service/src/main/java/com/diagbot/facade/KlDiseaseFacade.java
  20. 76 0
      cdssman-service/src/main/java/com/diagbot/facade/KlDrugFacade.java
  21. 28 14
      cdssman-service/src/main/java/com/diagbot/facade/KlLisFacade.java
  22. 368 305
      cdssman-service/src/main/java/com/diagbot/facade/MedRuleConvertFacade.java
  23. 14 8
      cdssman-service/src/main/java/com/diagbot/facade/MedSearchDataFacade.java
  24. 1 1
      cdssman-service/src/main/java/com/diagbot/facade/RelationContactFacade.java
  25. 2 0
      cdssman-service/src/main/java/com/diagbot/mapper/KlConceptMapper.java
  26. 16 0
      cdssman-service/src/main/java/com/diagbot/mapper/KlDrugMapper.java
  27. 6 2
      cdssman-service/src/main/java/com/diagbot/mapper/KlLibraryInfoMapper.java
  28. 2 0
      cdssman-service/src/main/java/com/diagbot/service/KlConceptService.java
  29. 16 0
      cdssman-service/src/main/java/com/diagbot/service/KlDrugService.java
  30. 5 2
      cdssman-service/src/main/java/com/diagbot/service/KlLibraryInfoService.java
  31. 5 0
      cdssman-service/src/main/java/com/diagbot/service/impl/KlConceptServiceImpl.java
  32. 20 0
      cdssman-service/src/main/java/com/diagbot/service/impl/KlDrugServiceImpl.java
  33. 8 2
      cdssman-service/src/main/java/com/diagbot/service/impl/KlLibraryInfoServiceImpl.java
  34. 6 1
      cdssman-service/src/main/java/com/diagbot/vo/KlConceptInfoVO.java
  35. 1 0
      cdssman-service/src/main/java/com/diagbot/vo/KlConceptSaveVO.java
  36. 16 0
      cdssman-service/src/main/java/com/diagbot/vo/KlLibraryInfoVO.java
  37. 20 0
      cdssman-service/src/main/java/com/diagbot/web/KlDrugController.java
  38. 34 0
      cdssman-service/src/main/resources/mapper/KlConceptMapper.xml
  39. 1 1
      cdssman-service/src/main/resources/mapper/KlDiseaseMapper.xml
  40. 18 0
      cdssman-service/src/main/resources/mapper/KlDrugMapper.xml
  41. 14 0
      cdssman-service/src/main/resources/mapper/KlLibraryInfoMapper.xml
  42. 2 1
      cdssman-service/src/main/resources/mapper/KlRelationMapper.xml
  43. 4 2
      cdssman-service/src/main/resources/mapper/KlRuleMapper.xml
  44. 2 2
      config-server/src/main/resources/shared/cdssman-service-dev.yml
  45. 2 2
      config-server/src/main/resources/shared/cdssman-service-local.yml
  46. 2 2
      config-server/src/main/resources/shared/cdssman-service-pre.yml
  47. 2 2
      config-server/src/main/resources/shared/cdssman-service-pro.yml
  48. 2 2
      config-server/src/main/resources/shared/cdssman-service-test.yml

+ 1 - 1
cdssman-service/pom.xml

@@ -255,7 +255,7 @@
                     <forceTags>true</forceTags>
                     <!--镜像的FROM,使用压缩的小镜像-->
                     <baseImage>frolvlad/alpine-oraclejre8:slim</baseImage>
-                    <entryPoint>["java", "-jar", "-Xms256m", "-Xmx1024m", "-Duser.timezone=GMT+8", "/${project.build.finalName}.jar"]</entryPoint>
+                    <entryPoint>["java", "-jar", "-Xms256m", "-Xmx2048m", "-Duser.timezone=GMT+8", "/${project.build.finalName}.jar"]</entryPoint>
                     <resources>
                         <resource>
                             <targetPath>/</targetPath>

+ 1 - 0
cdssman-service/src/main/java/com/diagbot/dto/KlConceptAllDTO.java

@@ -33,5 +33,6 @@ public class KlConceptAllDTO {
     private Integer scopeType;
     private String  icdCode;
     private String remark;
+    private Integer drug;
     private List<KlConceptAllSubDTO> klConceptSub;
 }

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

@@ -15,7 +15,7 @@ import java.util.Date;
 public class KlConceptInfoDTO {
     private Long  conceptId;
     private String libName;
-    private String libType;
+    private Integer libType;
     private String typeName;
     private String synonymName;
     private Integer status;

+ 1 - 0
cdssman-service/src/main/java/com/diagbot/dto/RuleDTO.java

@@ -12,6 +12,7 @@ import lombok.Setter;
 @Setter
 public class RuleDTO {
     private Long ruleOrderNo;
+    private Integer ruleType;
     private Integer ruleLibType;
     private String ruleLibTypeName;
     private String ruleLibName;

+ 1 - 1
cdssman-service/src/main/java/com/diagbot/entity/DeptConfig.java

@@ -31,7 +31,7 @@ public class DeptConfig implements Serializable {
     /**
      * 主键
      */
-    @TableId(value = "id", type = IdType.AUTO)
+    @TableId(value = "id", type = IdType.INPUT)
     private Long id;
 
     /**

+ 1 - 1
cdssman-service/src/main/java/com/diagbot/entity/DiseaseConfig.java

@@ -26,7 +26,7 @@ public class DiseaseConfig implements Serializable {
     /**
      * 主键
      */
-    @TableId(value = "id", type = IdType.AUTO)
+    @TableId(value = "id", type = IdType.INPUT)
     private Long id;
 
     /**

+ 1 - 1
cdssman-service/src/main/java/com/diagbot/entity/DrugConfig.java

@@ -28,7 +28,7 @@ public class DrugConfig implements Serializable {
     /**
      * 主键
      */
-    @TableId(value = "id", type = IdType.AUTO)
+    @TableId(value = "id", type = IdType.INPUT)
     private Long id;
 
     /**

+ 147 - 0
cdssman-service/src/main/java/com/diagbot/entity/KlDrug.java

@@ -0,0 +1,147 @@
+package com.diagbot.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+
+
+import java.time.LocalDateTime;
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * <p>
+ * 药品表
+ * </p>
+ *
+ * @author wangfeng
+ * @since 2021-04-13
+ */
+public class KlDrug implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键
+     */
+    @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;
+
+    /**
+     * 术语概念id
+     */
+    private Long conceptId;
+
+    /**
+     * 药品类别(0:西药,1:中成药)
+     */
+    private Integer drug;
+
+    /**
+     * 备注
+     */
+    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 getConceptId() {
+        return conceptId;
+    }
+
+    public void setConceptId(Long conceptId) {
+        this.conceptId = conceptId;
+    }
+    public Integer getDrug() {
+        return drug;
+    }
+
+    public void setDrug(Integer drug) {
+        this.drug = drug;
+    }
+    public String getRemark() {
+        return remark;
+    }
+
+    public void setRemark(String remark) {
+        this.remark = remark;
+    }
+
+    @Override
+    public String toString() {
+        return "KlDrug{" +
+            "id=" + id +
+            ", isDeleted=" + isDeleted +
+            ", gmtCreate=" + gmtCreate +
+            ", gmtModified=" + gmtModified +
+            ", creator=" + creator +
+            ", modifier=" + modifier +
+            ", conceptId=" + conceptId +
+            ", drug=" + drug +
+            ", remark=" + remark +
+        "}";
+    }
+}

+ 1 - 1
cdssman-service/src/main/java/com/diagbot/entity/LisConfig.java

@@ -30,7 +30,7 @@ public class LisConfig implements Serializable {
     /**
      * 主键
      */
-    @TableId(value = "id", type = IdType.AUTO)
+    @TableId(value = "id", type = IdType.INPUT)
     private Long id;
 
     /**

+ 1 - 1
cdssman-service/src/main/java/com/diagbot/entity/OperationConfig.java

@@ -26,7 +26,7 @@ public class OperationConfig implements Serializable {
     /**
      * 主键
      */
-    @TableId(value = "id", type = IdType.AUTO)
+    @TableId(value = "id", type = IdType.INPUT)
     private Long id;
 
     /**

+ 1 - 1
cdssman-service/src/main/java/com/diagbot/entity/PacsConfig.java

@@ -26,7 +26,7 @@ public class PacsConfig implements Serializable {
     /**
      * 主键
      */
-    @TableId(value = "id", type = IdType.AUTO)
+    @TableId(value = "id", type = IdType.INPUT)
     private Long id;
 
     /**

+ 1 - 1
cdssman-service/src/main/java/com/diagbot/entity/TransfusionConfig.java

@@ -26,7 +26,7 @@ public class TransfusionConfig implements Serializable {
     /**
      * 主键
      */
-    @TableId(value = "id", type = IdType.AUTO)
+    @TableId(value = "id", type = IdType.INPUT)
     private Long id;
 
     /**

+ 4 - 2
cdssman-service/src/main/java/com/diagbot/enums/DiseaseRelationTypeEnum.java

@@ -13,12 +13,14 @@ public enum DiseaseRelationTypeEnum implements KeyedNamed {
 
     mainSymptom(501, "100&501&103"),
     ciSymptom(502, "100&502&103"),
-    vitalResult(503, "100&503&104"),
+    vitalResult(503, "100&503&105"),
     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");
+    disDifferentDis(508, "100&508&100"),
+    disLiangbiao(509, "100&509&124")
+    ;
 
 
     @Setter

+ 3 - 2
cdssman-service/src/main/java/com/diagbot/enums/RelationLibTypeEnum.java

@@ -13,12 +13,13 @@ public enum RelationLibTypeEnum implements KeyedNamed {
 
     mainSymptom(501, "103"),
     ciSymptom(502, "103"),
-    vitalResult(503, "104"),
+    vitalResult(503, "105"),
     lisItem(504, "107"),
     pacsItem(505, "109&110"),
     disMedicine(506, "101"),
     disOperator(507, "106"),
-    disDifferentDis(508, "100");
+    disDifferentDis(508, "100"),
+    disLiangbiao(509,"124");
 
 
     @Setter

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

@@ -36,7 +36,7 @@ public class CacheFacade {
 
     public boolean clearStandRuleDrugAll() {
         RespDTO<Boolean> resData =  cdssCoreClient.clearStandRuleDrugAll();
-        RespDTOUtil.respNGDeal(resData, "加载数据失败!");
+        RespDTOUtil.respNGDealCover(resData, resData.msg);
         return  resData.data;
     }
 

+ 52 - 0
cdssman-service/src/main/java/com/diagbot/facade/DrugConfigFacade.java

@@ -458,6 +458,58 @@ public class DrugConfigFacade {
         return retMap;
     }
 
+    /**
+     * 获取映射关系-公表名
+     *
+     * @param hospitalId
+     * @param hisNames
+     * @param uniqueNames
+     * @return Map<uniqueName,Map<form,Map<hisName,List<id>>>>
+     */
+    public Map<String, Map<String,Map<String, List<Long>>>> getUniqueFormConfigMap(Long hospitalId, List<String> hisNames, List<String> uniqueNames) {
+        Map<String, Map<String, Map<String, List<Long>>>> retMap = new HashMap<>();
+        QueryWrapper<DrugConfig> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey())
+                .eq("hospital_id", hospitalId);
+        if (ListUtil.isNotEmpty(hisNames)) {
+            queryWrapper.in("his_name", hisNames);
+        }
+        if (ListUtil.isNotEmpty(uniqueNames)) {
+            queryWrapper.in("unique_name", uniqueNames);
+        }
+        List<DrugConfig> records = drugConfigService.list(queryWrapper);
+        if (ListUtil.isEmpty(records)) {
+            return retMap;
+        }
+
+        records.forEach(record -> {
+            if (StringUtil.isBlank(record.getForm())) {
+                record.setForm("");
+            }
+        });
+
+        Map<String, List<DrugConfig>> uniqueNameMap = EntityUtil.makeEntityListMap(records, "uniqueName");
+        for (Map.Entry<String, List<DrugConfig>> entry : uniqueNameMap.entrySet()) {
+            if (ListUtil.isNotEmpty(entry.getValue())) {
+                Map<String, Map<String, List<Long>>> subMap = new HashMap<>();
+                Map<String, List<DrugConfig>> hisNameMap
+                        = EntityUtil.makeEntityListMap(entry.getValue(), "form");
+                for (Map.Entry<String, List<DrugConfig>> hisEntry : hisNameMap.entrySet()) {
+                    if (ListUtil.isNotEmpty(hisEntry.getValue())) {
+                        Map<String, List<DrugConfig>> thirdMap = EntityUtil.makeEntityListMap(hisEntry.getValue(), "hisName");
+                        Map<String, List<Long>> idMap = new HashMap<>();
+                        for (Map.Entry<String, List<DrugConfig>> thirdEntry : thirdMap.entrySet()) {
+                            idMap.put(thirdEntry.getKey(), thirdEntry.getValue().stream().map(i -> i.getId()).distinct().collect(Collectors.toList()));
+                        }
+                        subMap.put(hisEntry.getKey(), idMap);
+                    }
+                }
+                retMap.put(entry.getKey(), subMap);
+            }
+        }
+        return retMap;
+    }
+
     /**
      * 获取映射关系-公表名
      *

+ 26 - 9
cdssman-service/src/main/java/com/diagbot/facade/KlConceptCommonFacade.java

@@ -1,5 +1,6 @@
 package com.diagbot.facade;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.diagbot.entity.KlConceptCommon;
 import com.diagbot.enums.IsDeleteEnum;
@@ -28,21 +29,37 @@ public class KlConceptCommonFacade extends KlConceptCommonServiceImpl {
         Date now = DateUtil.now();
         boolean res = false;
         if (null != klConceptSaveVO.getConceptId()) {
-            UpdateWrapper<KlConceptCommon> klConceptCommonQuerySub = new UpdateWrapper<>();
-            klConceptCommonQuerySub.eq("is_deleted", IsDeleteEnum.N.getKey())
-                    .eq("concept_id", klConceptSaveVO.getConceptId())
-                    .set("gmt_modified", now)
-                    .set("modifier", UserUtils.getCurrentPrincipleID())
-                    .set("sex_type", klConceptSaveVO.getSexType())
-                    .set("min_age", klConceptSaveVO.getMinAge())
-                    .set("max_age", klConceptSaveVO.getMaxAge());
-            res = this.update(klConceptCommonQuerySub);
+            //校验
+            int countLis = this.count(new QueryWrapper<KlConceptCommon>()
+                    .eq("is_deleted", IsDeleteEnum.N.getKey())
+                    .eq("concept_id", klConceptSaveVO.getConceptId()));
+            if (countLis > 0) {
+                UpdateWrapper<KlConceptCommon> klConceptCommonQuerySub = new UpdateWrapper<>();
+                klConceptCommonQuerySub.eq("is_deleted", IsDeleteEnum.N.getKey())
+                        .eq("concept_id", klConceptSaveVO.getConceptId())
+                        .set("gmt_modified", now)
+                        .set("modifier", UserUtils.getCurrentPrincipleID())
+                        .set("sex_type", klConceptSaveVO.getSexType())
+                        .set("min_age", klConceptSaveVO.getMinAge())
+                        .set("max_age", klConceptSaveVO.getMaxAge());
+                res = this.update(klConceptCommonQuerySub);
+            } else {
+                KlConceptCommon klConceptCommonSub = new KlConceptCommon();
+                klConceptCommonSub.setConceptId(klConceptSaveVO.getConceptId());
+                klConceptCommonSub.setMaxAge(klConceptSaveVO.getMaxAge());
+                klConceptCommonSub.setMinAge(klConceptSaveVO.getMinAge());
+                klConceptCommonSub.setGmtModified(now);
+                klConceptCommonSub.setSexType(klConceptSaveVO.getSexType());
+                klConceptCommonSub.setModifier(UserUtils.getCurrentPrincipleID());
+                res = this.save(klConceptCommonSub);
+            }
         } else {
             KlConceptCommon klConceptCommonSub = new KlConceptCommon();
             klConceptCommonSub.setConceptId(klConceptSaveVO.getConceptId());
             klConceptCommonSub.setMaxAge(klConceptSaveVO.getMaxAge());
             klConceptCommonSub.setMinAge(klConceptSaveVO.getMinAge());
             klConceptCommonSub.setGmtModified(now);
+            klConceptCommonSub.setSexType(klConceptSaveVO.getSexType());
             klConceptCommonSub.setModifier(UserUtils.getCurrentPrincipleID());
             res = this.save(klConceptCommonSub);
         }

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

@@ -37,6 +37,7 @@ import com.diagbot.vo.KlConceptInfoVO;
 import com.diagbot.vo.KlConceptSatarOrdisaVO;
 import com.diagbot.vo.KlConceptSaveSubVO;
 import com.diagbot.vo.KlConceptSaveVO;
+import com.diagbot.vo.KlLibraryInfoVO;
 import com.diagbot.vo.SearchConceptVO;
 import com.google.common.collect.Lists;
 import org.apache.commons.lang3.StringUtils;
@@ -81,21 +82,60 @@ public class KlConceptFacade extends KlConceptServiceImpl {
     KlDiagnoseFacade klDiagnoseFacade;
     @Autowired
     KlDiagnoseBaseFacade klDiagnoseBaseFacade;
-
+    @Autowired
+    KlDrugFacade klDrugFacade;
 
     /**
      * @param klConceptInfoVO
      * @return
      */
     public IPage<KlConceptInfoDTO> getConceptInfoPage(KlConceptInfoVO klConceptInfoVO) {
-        IPage<KlConceptInfoDTO> conceptPage = getConceptPage(klConceptInfoVO);
-        List<String> userIds = conceptPage.getRecords().stream()
-                .map(i -> i.getModifierId()).distinct().collect(Collectors.toList());
-        RespDTO<Map<String, String>> respDTO = userServiceClient.getUserInfoByIds(userIds);
-        RespDTOUtil.respNGDealCover(respDTO, "获取用户信息失败");
-        conceptPage.getRecords().forEach(i -> {
-            i.setModifierName(respDTO.data.get(i.getModifierId()));
-        });
+        if (StringUtil.isNotBlank(klConceptInfoVO.getSynonymName())) {
+            KlLibraryInfoVO klLibraryInfoVO = new KlLibraryInfoVO();
+            BeanUtil.copyProperties(klConceptInfoVO, klLibraryInfoVO);
+            List<Long> conceptIdList = klLibraryInfoFacade.getLib(klLibraryInfoVO)
+                    .stream().map(KlLibraryInfo::getConceptId).distinct().collect(Collectors.toList());
+            if (ListUtil.isEmpty(conceptIdList)) {
+                conceptIdList.add(-999999999L);
+            }
+            klConceptInfoVO.setConceptIdList(conceptIdList);
+        }
+        IPage<KlConceptInfoDTO> conceptPage = this.getConceptPage2(klConceptInfoVO);
+
+        if (ListUtil.isNotEmpty(conceptPage.getRecords())) {
+            //获取用户
+            List<String> userIds = conceptPage.getRecords().stream()
+                    .map(KlConceptInfoDTO::getModifierId).distinct().collect(Collectors.toList());
+            RespDTO<Map<String, String>> respDTO = userServiceClient.getUserInfoByIds(userIds);
+            RespDTOUtil.respNGDealCover(respDTO, "获取用户信息失败");
+            //获取同义词
+            List<Long> conceptIds = conceptPage.getRecords().stream()
+                    .map(KlConceptInfoDTO::getConceptId).distinct().collect(Collectors.toList());
+            QueryWrapper<KlLibraryInfo> qw = new QueryWrapper<>();
+            qw.in("concept_id", conceptIds)
+                    .eq("is_deleted", IsDeleteEnum.N.getKey())
+                    .orderByDesc("concept_id")
+                    .orderByDesc("is_concept");
+            Map<Long, List<KlLibraryInfo>> libMap = klLibraryInfoFacade.list(qw)
+                    .stream().collect(Collectors.groupingBy(KlLibraryInfo::getConceptId));
+            //获取类型
+            List<Integer> libTypes = conceptPage.getRecords().stream()
+                    .map(KlConceptInfoDTO::getLibType).distinct().collect(Collectors.toList());
+            QueryWrapper<KlLexicon> qwLib = new QueryWrapper<>();
+            qwLib.in("code", libTypes)
+                    .eq("is_deleted", IsDeleteEnum.N.getKey());
+            Map<Integer, String> lexiconMap = klLexiconFacade.list(qwLib)
+                    .stream().collect(Collectors.toMap(KlLexicon::getCode, KlLexicon::getName));
+            //组装结果
+            conceptPage.getRecords().forEach(i -> {
+                i.setTypeName(lexiconMap.get(i.getLibType()));
+                i.setSynonymName(libMap.get(i.getConceptId())
+                        .stream()
+                        .map(KlLibraryInfo::getName)
+                        .collect(Collectors.joining("、")));
+                i.setModifierName(respDTO.data.get(i.getModifierId()));
+            });
+        }
         return conceptPage;
     }
 
@@ -232,6 +272,9 @@ public class KlConceptFacade extends KlConceptServiceImpl {
             if (null != klConceptSaveVO.getScopeType()) {
                 res = klLisFacade.saveAll(klConceptPare, klConceptSaveVO);
             }
+            if (null != klConceptSaveVO.getDrug()) {
+                res = klDrugFacade.saveAll(klConceptPare, klConceptSaveVO);
+            }
             //增加同义词
             List<KlConceptSaveSubVO> klConceptSub = klConceptSaveVO.getKlConceptSub();
             if (ListUtil.isNotEmpty(klConceptSub)) {
@@ -285,6 +328,9 @@ public class KlConceptFacade extends KlConceptServiceImpl {
         if (null != klConceptSaveVO.getScopeType()) {
             res = klLisFacade.saveOrUpdateAll(klConceptSaveVO);
         }
+        if (null != klConceptSaveVO.getDrug()) {
+            klDrugFacade.saveOrUpdateAll(klConceptSaveVO);
+        }
         return res;
     }
 

+ 23 - 9
cdssman-service/src/main/java/com/diagbot/facade/KlDiseaseFacade.java

@@ -103,7 +103,7 @@ public class KlDiseaseFacade extends KlDiseaseServiceImpl {
      * @return
      */
     public DiseaseTreeDetailDTO getDetail(GetDiseaseDetailVO getDiseaseDetailVO) {
-        List<Integer> relations = Arrays.asList(501, 502, 503, 504, 505, 506, 507, 508);
+        List<Integer> relations = Arrays.asList(501, 502, 503, 504, 505, 506, 507, 508, 509);
         List<KlLexiconRelationship> klLexiconRelationships = klLexiconRelationshipFacade.list(new QueryWrapper<KlLexiconRelationship>()
                 .eq("is_deleted", IsDeleteEnum.N.getKey())
                 .in("code", relations)
@@ -177,13 +177,27 @@ public class KlDiseaseFacade extends KlDiseaseServiceImpl {
         Date now = DateUtil.now();
         boolean res = false;
         if (null != klConceptSaveVO.getConceptId()) {
-            UpdateWrapper<KlDisease> klDiseaseQuerySub = new UpdateWrapper<>();
-            klDiseaseQuerySub.eq("is_deleted", IsDeleteEnum.N.getKey())
-                    .eq("concept_id", klConceptSaveVO.getConceptId())
-                    .set("gmt_modified", now)
-                    .set("modifier", UserUtils.getCurrentPrincipleID())
-                    .set(StringUtil.isNotBlank(klConceptSaveVO.getIcdCode()),"icd10_code", klConceptSaveVO.getIcdCode());
-            res = this.update(new KlDisease(),klDiseaseQuerySub);
+            //校验
+            int countLis = this.count(new QueryWrapper<KlDisease>()
+                    .eq("is_deleted", IsDeleteEnum.N.getKey())
+                    .eq("concept_id", klConceptSaveVO.getConceptId()));
+            if (countLis > 0) {
+                UpdateWrapper<KlDisease> klDiseaseQuerySub = new UpdateWrapper<>();
+                klDiseaseQuerySub.eq("is_deleted", IsDeleteEnum.N.getKey())
+                        .eq("concept_id", klConceptSaveVO.getConceptId())
+                        .set("gmt_modified", now)
+                        .set("modifier", UserUtils.getCurrentPrincipleID())
+                        .set(StringUtil.isNotBlank(klConceptSaveVO.getIcdCode()), "icd10_code", klConceptSaveVO.getIcdCode());
+                res = this.update(new KlDisease(), klDiseaseQuerySub);
+            } else {
+                KlDisease kllDiseaseSub = new KlDisease();
+                kllDiseaseSub.setConceptId(klConceptSaveVO.getConceptId());
+                kllDiseaseSub.setGmtModified(now);
+                kllDiseaseSub.setModifier(UserUtils.getCurrentPrincipleID());
+                kllDiseaseSub.setIcd10Code(klConceptSaveVO.getIcdCode());
+                res = this.save(kllDiseaseSub);
+            }
+
         } else {
             KlDisease kllDiseaseSub = new KlDisease();
             kllDiseaseSub.setConceptId(klConceptSaveVO.getConceptId());
@@ -195,7 +209,7 @@ public class KlDiseaseFacade extends KlDiseaseServiceImpl {
         return res;
     }
 
-    public boolean saveAll(KlConcept klConceptPare,KlConceptSaveVO klConceptSaveVO) {
+    public boolean saveAll(KlConcept klConceptPare, KlConceptSaveVO klConceptSaveVO) {
         Date now = DateUtil.now();
         KlDisease kllDiseaseSub = new KlDisease();
         kllDiseaseSub.setConceptId(klConceptPare.getId());

+ 76 - 0
cdssman-service/src/main/java/com/diagbot/facade/KlDrugFacade.java

@@ -0,0 +1,76 @@
+package com.diagbot.facade;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.diagbot.entity.KlConcept;
+import com.diagbot.entity.KlDrug;
+import com.diagbot.entity.KlLis;
+import com.diagbot.enums.IsDeleteEnum;
+import com.diagbot.service.impl.KlDrugServiceImpl;
+import com.diagbot.util.DateUtil;
+import com.diagbot.util.UserUtils;
+import com.diagbot.vo.KlConceptSaveVO;
+import org.springframework.stereotype.Component;
+
+import java.util.Date;
+
+/**
+ * @author wangfeng
+ * @Description:
+ * @date 2021-04-13 10:41
+ */
+@Component
+public class KlDrugFacade extends KlDrugServiceImpl {
+
+
+    public boolean saveOrUpdateAll(KlConceptSaveVO klConceptSaveVO) {
+
+        Date now = DateUtil.now();
+        boolean res = false;
+        if (null != klConceptSaveVO.getConceptId()) {
+            //校验
+            int countLis = this.count(new QueryWrapper<KlDrug>()
+                    .eq("is_deleted", IsDeleteEnum.N.getKey())
+                    .eq("concept_id", klConceptSaveVO.getConceptId()));
+            if (countLis > 0) {
+                UpdateWrapper<KlDrug> klDrugUpdate = new UpdateWrapper<>();
+                klDrugUpdate.eq("is_deleted", IsDeleteEnum.N.getKey())
+                        .eq("concept_id", klConceptSaveVO.getConceptId())
+                        .set("gmt_modified", now)
+                        .set("modifier", UserUtils.getCurrentPrincipleID())
+                        .set("drug", klConceptSaveVO.getDrug());
+                res = this.update(klDrugUpdate);
+            } else {
+                KlDrug klDrug = new KlDrug();
+                klDrug.setConceptId(klConceptSaveVO.getConceptId());
+                klDrug.setDrug(klConceptSaveVO.getDrug());
+                klDrug.setGmtModified(now);
+                klDrug.setModifier(UserUtils.getCurrentPrincipleID());
+                res = this.save(klDrug);
+            }
+        } else {
+            KlDrug klDrug = new KlDrug();
+            klDrug.setConceptId(klConceptSaveVO.getConceptId());
+            klDrug.setDrug(klConceptSaveVO.getDrug());
+            klDrug.setGmtModified(now);
+            klDrug.setModifier(UserUtils.getCurrentPrincipleID());
+            res = this.save(klDrug);
+        }
+
+        return res;
+
+    }
+
+    public boolean saveAll(KlConcept klConceptPare, KlConceptSaveVO klConceptSaveVO) {
+        Date now = DateUtil.now();
+        KlDrug klDrug = new KlDrug();
+        klDrug.setConceptId(klConceptPare.getId());
+        klDrug.setDrug(klConceptSaveVO.getDrug());
+        klDrug.setCreator(UserUtils.getCurrentPrincipleID());
+        klDrug.setModifier(UserUtils.getCurrentPrincipleID());
+        klDrug.setGmtCreate(now);
+        klDrug.setGmtModified(now);
+        return this.save(klDrug);
+    }
+
+}

+ 28 - 14
cdssman-service/src/main/java/com/diagbot/facade/KlLisFacade.java

@@ -1,16 +1,14 @@
 package com.diagbot.facade;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.diagbot.entity.KlConcept;
-import com.diagbot.entity.KlDisease;
 import com.diagbot.entity.KlLis;
 import com.diagbot.enums.IsDeleteEnum;
-import com.diagbot.service.KlLisService;
 import com.diagbot.service.impl.KlLisServiceImpl;
 import com.diagbot.util.DateUtil;
 import com.diagbot.util.UserUtils;
 import com.diagbot.vo.KlConceptSaveVO;
-import org.checkerframework.checker.units.qual.C;
 import org.springframework.stereotype.Component;
 
 import java.util.Date;
@@ -27,15 +25,31 @@ public class KlLisFacade extends KlLisServiceImpl {
         Date now = DateUtil.now();
         boolean res = false;
         if (null != klConceptSaveVO.getConceptId()) {
-            UpdateWrapper<KlLis> klDiseaseQuerySub = new UpdateWrapper<>();
-            klDiseaseQuerySub.eq("is_deleted", IsDeleteEnum.N.getKey())
-                    .eq("concept_id", klConceptSaveVO.getConceptId())
-                    .set("gmt_modified", now)
-                    .set("modifier", UserUtils.getCurrentPrincipleID())
-                    .set("min_value", klConceptSaveVO.getMinVal())
-                    .set("max_value", klConceptSaveVO.getMaxVal())
-                    .set("type", klConceptSaveVO.getScopeType());
-            res = this.update(new KlLis(),klDiseaseQuerySub);
+            //校验
+            int countLis = this.count(new QueryWrapper<KlLis>()
+                    .eq("is_deleted", IsDeleteEnum.N.getKey())
+                    .eq("concept_id", klConceptSaveVO.getConceptId()));
+            if (countLis > 0) {
+                UpdateWrapper<KlLis> klDiseaseQuerySub = new UpdateWrapper<>();
+                klDiseaseQuerySub.eq("is_deleted", IsDeleteEnum.N.getKey())
+                        .eq("concept_id", klConceptSaveVO.getConceptId())
+                        .set("gmt_modified", now)
+                        .set("modifier", UserUtils.getCurrentPrincipleID())
+                        .set("min_value", klConceptSaveVO.getMinVal())
+                        .set("max_value", klConceptSaveVO.getMaxVal())
+                        .set("type", klConceptSaveVO.getScopeType());
+                res = this.update(new KlLis(), klDiseaseQuerySub);
+            } else {
+                KlLis klLisSub = new KlLis();
+                klLisSub.setConceptId(klConceptSaveVO.getConceptId());
+                klLisSub.setGmtModified(now);
+                klLisSub.setModifier(UserUtils.getCurrentPrincipleID());
+                klLisSub.setMinValue(klConceptSaveVO.getMinVal());
+                klLisSub.setMaxValue(klConceptSaveVO.getMaxVal());
+                klLisSub.setType(klConceptSaveVO.getScopeType());
+                res = this.save(klLisSub);
+            }
+
         } else {
             KlLis klLisSub = new KlLis();
             klLisSub.setConceptId(klConceptSaveVO.getConceptId());
@@ -49,7 +63,7 @@ public class KlLisFacade extends KlLisServiceImpl {
         return res;
     }
 
-    public boolean saveAll(KlConcept klConceptPare,KlConceptSaveVO klConceptSaveVO) {
+    public boolean saveAll(KlConcept klConceptPare, KlConceptSaveVO klConceptSaveVO) {
         Date now = DateUtil.now();
         KlLis klLisSub = new KlLis();
         klLisSub.setConceptId(klConceptPare.getId());
@@ -60,6 +74,6 @@ public class KlLisFacade extends KlLisServiceImpl {
         klLisSub.setModifier(UserUtils.getCurrentPrincipleID());
         klLisSub.setGmtCreate(now);
         klLisSub.setGmtModified(now);
-       return this.save(klLisSub);
+        return this.save(klLisSub);
     }
 }

ファイルの差分が大きいため隠しています
+ 368 - 305
cdssman-service/src/main/java/com/diagbot/facade/MedRuleConvertFacade.java


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

@@ -168,11 +168,6 @@ public class MedSearchDataFacade {
                     pacs.setName("胸部CT");
                     pacs.setUniqueName("胸部CT");
                     String pacsResult = result.getRuleLibName();
-                    /*if (result.getHasSubCond().equals(1)
-                            && result.getRuleBaseLibType().equals(LexiconEnum.PacsResult.getKey())
-                            && result.getRuleBaseType().equals(RuleBaseTypeEnum.Eq.getKey())) {
-                        pacsResult += "," + result.getRuleBaseLibName();
-                    }*/
                     pacs.setDesc(pacsResult);
                     pacs.setResult(pacsResult);
                     indicationPushVO.getPacs().add(pacs);
@@ -237,9 +232,20 @@ public class MedSearchDataFacade {
                     }
                 } else if (result.getRuleBaseLibType().equals(LexiconEnum.Vital.getKey())) {
                     if (result.getRuleBaseType().equals(RuleBaseTypeEnum.Compare.getKey())) {
-                        indicationPushVO.setVital(result.getRuleBaseLibName() + result.getRuleBaseInputValue()
-                                + (StringUtil.isNotBlank(result.getRuleBaseUnit()) ? result.getRuleBaseUnit() : "")
-                                + ",");
+                        String content = "";
+                        if (result.getRuleBaseLibName().equals("收缩压")) {
+                            content = "血压" + result.getRuleBaseInputValue() + "/80";
+                        } else if (result.getRuleBaseLibName().equals("舒张压")) {
+                            content = "血压120/" + result.getRuleBaseInputValue();
+                        } else if (result.getRuleBaseLibName().equals("体温")) {
+                            content = result.getRuleBaseLibName() + result.getRuleBaseInputValue() + (StringUtil.isBlank(result.getRuleBaseUnit()) ? "℃" : "");
+                        } else {
+                            content = result.getRuleBaseLibName() + result.getRuleBaseInputValue();
+                        }
+                        if (StringUtil.isNotBlank(result.getRuleBaseUnit())) {
+                            content += result.getRuleBaseUnit();
+                        }
+                        indicationPushVO.setVital(content);
                     }
                 } else if (result.getRuleBaseLibType().equals(LexiconEnum.VitalResult.getKey())) {
                     if (result.getRuleBaseType().equals(RuleBaseTypeEnum.Eq.getKey())) {

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

@@ -264,7 +264,7 @@ public class RelationContactFacade extends KlRelationServiceImpl {
                     .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<Integer> relations = Lists.newArrayList(501, 502, 503, 504, 505, 506, 507, 508, 509);
             List<KlRelation> klRelations = this.list(new QueryWrapper<KlRelation>()
                     .eq("is_deleted", IsDeleteEnum.N.getKey())
                     .in(ListUtil.isNotEmpty(ids), "start_id", ids)

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

@@ -23,4 +23,6 @@ public interface KlConceptMapper extends BaseMapper<KlConcept> {
     IPage<KlConceptInfoDTO> getConceptPage(KlConceptInfoVO klConceptInfoVO);
 
     List<KlConceptAllDTO> getConceptAll(KlConceptAllVO klConceptAllVO);
+
+    IPage<KlConceptInfoDTO> getConceptPage2(KlConceptInfoVO klConceptInfoVO);
 }

+ 16 - 0
cdssman-service/src/main/java/com/diagbot/mapper/KlDrugMapper.java

@@ -0,0 +1,16 @@
+package com.diagbot.mapper;
+
+import com.diagbot.entity.KlDrug;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ * 药品表 Mapper 接口
+ * </p>
+ *
+ * @author wangfeng
+ * @since 2021-04-13
+ */
+public interface KlDrugMapper extends BaseMapper<KlDrug> {
+
+}

+ 6 - 2
cdssman-service/src/main/java/com/diagbot/mapper/KlLibraryInfoMapper.java

@@ -1,7 +1,11 @@
 package com.diagbot.mapper;
 
-import com.diagbot.entity.KlLibraryInfo;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.diagbot.entity.KlLibraryInfo;
+import com.diagbot.vo.KlConceptInfoVO;
+import com.diagbot.vo.KlLibraryInfoVO;
+
+import java.util.List;
 
 /**
  * <p>
@@ -12,5 +16,5 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  * @since 2021-03-01
  */
 public interface KlLibraryInfoMapper extends BaseMapper<KlLibraryInfo> {
-
+    List<KlLibraryInfo> getLib(KlLibraryInfoVO klLibraryInfoVO);
 }

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

@@ -22,4 +22,6 @@ import java.util.List;
 public interface KlConceptService extends IService<KlConcept> {
     public IPage<KlConceptInfoDTO> getConceptPage(KlConceptInfoVO klConceptInfoVO);
     public List<KlConceptAllDTO> getConceptAll(KlConceptAllVO klConceptAllVO);
+
+    IPage<KlConceptInfoDTO> getConceptPage2(KlConceptInfoVO klConceptInfoVO);
 }

+ 16 - 0
cdssman-service/src/main/java/com/diagbot/service/KlDrugService.java

@@ -0,0 +1,16 @@
+package com.diagbot.service;
+
+import com.diagbot.entity.KlDrug;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ * 药品表 服务类
+ * </p>
+ *
+ * @author wangfeng
+ * @since 2021-04-13
+ */
+public interface KlDrugService extends IService<KlDrug> {
+
+}

+ 5 - 2
cdssman-service/src/main/java/com/diagbot/service/KlLibraryInfoService.java

@@ -1,7 +1,10 @@
 package com.diagbot.service;
 
-import com.diagbot.entity.KlLibraryInfo;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.diagbot.entity.KlLibraryInfo;
+import com.diagbot.vo.KlLibraryInfoVO;
+
+import java.util.List;
 
 /**
  * <p>
@@ -12,5 +15,5 @@ import com.baomidou.mybatisplus.extension.service.IService;
  * @since 2021-03-01
  */
 public interface KlLibraryInfoService extends IService<KlLibraryInfo> {
-
+    List<KlLibraryInfo> getLib(KlLibraryInfoVO klLibraryInfoVO);
 }

+ 5 - 0
cdssman-service/src/main/java/com/diagbot/service/impl/KlConceptServiceImpl.java

@@ -35,4 +35,9 @@ public class KlConceptServiceImpl extends ServiceImpl<KlConceptMapper, KlConcept
     public List<KlConceptAllDTO> getConceptAll(KlConceptAllVO klConceptAllVO) {
         return baseMapper.getConceptAll(klConceptAllVO);
     }
+
+    @Override
+    public IPage<KlConceptInfoDTO> getConceptPage2(KlConceptInfoVO klConceptInfoVO){
+        return baseMapper.getConceptPage2(klConceptInfoVO);
+    }
 }

+ 20 - 0
cdssman-service/src/main/java/com/diagbot/service/impl/KlDrugServiceImpl.java

@@ -0,0 +1,20 @@
+package com.diagbot.service.impl;
+
+import com.diagbot.entity.KlDrug;
+import com.diagbot.mapper.KlDrugMapper;
+import com.diagbot.service.KlDrugService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 药品表 服务实现类
+ * </p>
+ *
+ * @author wangfeng
+ * @since 2021-04-13
+ */
+@Service
+public class KlDrugServiceImpl extends ServiceImpl<KlDrugMapper, KlDrug> implements KlDrugService {
+
+}

+ 8 - 2
cdssman-service/src/main/java/com/diagbot/service/impl/KlLibraryInfoServiceImpl.java

@@ -1,12 +1,15 @@
 package com.diagbot.service.impl;
 
 import com.baomidou.dynamic.datasource.annotation.DS;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.diagbot.entity.KlLibraryInfo;
 import com.diagbot.mapper.KlLibraryInfoMapper;
 import com.diagbot.service.KlLibraryInfoService;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.diagbot.vo.KlLibraryInfoVO;
 import org.springframework.stereotype.Service;
 
+import java.util.List;
+
 /**
  * <p>
  * 术语表 服务实现类
@@ -18,5 +21,8 @@ import org.springframework.stereotype.Service;
 @Service
 @DS("med")
 public class KlLibraryInfoServiceImpl extends ServiceImpl<KlLibraryInfoMapper, KlLibraryInfo> implements KlLibraryInfoService {
-
+    @Override
+    public List<KlLibraryInfo> getLib(KlLibraryInfoVO klLibraryInfoVO) {
+        return baseMapper.getLib(klLibraryInfoVO);
+    }
 }

+ 6 - 1
cdssman-service/src/main/java/com/diagbot/vo/KlConceptInfoVO.java

@@ -1,9 +1,12 @@
 package com.diagbot.vo;
 
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import io.swagger.annotations.ApiModelProperty;
 import lombok.Getter;
 import lombok.Setter;
 
+import java.util.List;
+
 /**
  * @author wangfeng
  * @Description:
@@ -13,7 +16,9 @@ import lombok.Setter;
 @Getter
 public class KlConceptInfoVO extends Page {
     private String libName;
-    private String libType;
+    private Integer libType;
     private String synonymName;
     private Integer status;
+    @ApiModelProperty(hidden = true)
+    List<Long> conceptIdList;
 }

+ 1 - 0
cdssman-service/src/main/java/com/diagbot/vo/KlConceptSaveVO.java

@@ -38,5 +38,6 @@ public class KlConceptSaveVO {
     private Integer scopeType;
     private String icdCode;
     private String remark;
+    private Integer drug;
     private List<KlConceptSaveSubVO> klConceptSub;
 }

+ 16 - 0
cdssman-service/src/main/java/com/diagbot/vo/KlLibraryInfoVO.java

@@ -0,0 +1,16 @@
+package com.diagbot.vo;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @author wangfeng
+ * @Description:
+ * @date 2021-03-01 13:25
+ */
+@Setter
+@Getter
+public class KlLibraryInfoVO {
+    private Integer libType;
+    private String synonymName;
+}

+ 20 - 0
cdssman-service/src/main/java/com/diagbot/web/KlDrugController.java

@@ -0,0 +1,20 @@
+package com.diagbot.web;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.stereotype.Controller;
+
+/**
+ * <p>
+ * 药品表 前端控制器
+ * </p>
+ *
+ * @author wangfeng
+ * @since 2021-04-13
+ */
+@Controller
+@RequestMapping("/klDrug")
+public class KlDrugController {
+
+}

+ 34 - 0
cdssman-service/src/main/resources/mapper/KlConceptMapper.xml

@@ -74,6 +74,7 @@
         g.max_value AS maxVal,
         g.type AS scopeType,
         h.icd10_code AS icdCode,
+        dr.drug ,
         a.remark
         FROM
         kl_library_info a
@@ -86,6 +87,7 @@
         LEFT JOIN kl_concept_common f ON f.concept_id = a.concept_id
         LEFT JOIN kl_lis g ON g.concept_id = a.concept_id
         LEFT JOIN kl_disease h ON h.concept_id = a.concept_id
+        LEFT JOIN kl_drug  dr ON dr.concept_id = a.concept_id
         WHERE a.is_deleted = 'N'
         AND b.is_deleted = 'N'
         AND d.is_deleted = 'N'
@@ -94,4 +96,36 @@
         </if>
         ORDER BY a.is_concept DESC
     </select>
+
+    <select id="getConceptPage2"
+            parameterType="com.diagbot.vo.KlConceptInfoVO" resultType="com.diagbot.dto.KlConceptInfoDTO">
+        SELECT
+        b.id AS conceptId,
+        b.lib_name as libName,
+        b.lib_type as libType,
+        "" AS typeName,
+        "" AS synonymName,
+        b.status,
+        b.modifier AS modifierId,
+        b.gmt_modified as gmtModified
+        FROM
+        kl_concept b
+        WHERE b.is_deleted = 'N'
+        <if test="libType != null">
+            AND b.lib_type = #{libType}
+        </if>
+        <if test="libName!=null and libName!=''">
+            AND UPPER(b.lib_name) LIKE CONCAT('%', UPPER(trim(#{libName})), '%')
+        </if>
+        <if test="status != null">
+            AND b.status = #{status}
+        </if>
+        <if test="conceptIdList != null and conceptIdList.size > 0">
+            and b.id in
+            <foreach item="conceptId" collection="conceptIdList" open="(" separator="," close=")">
+                #{conceptId}
+            </foreach>
+        </if>
+        ORDER BY b.status DESC ,b.gmt_modified DESC,b.id DESC
+    </select>
 </mapper>

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

@@ -110,7 +110,7 @@
                 #{item}
             </foreach>
         </if>-->
-        AND kr.relation_id IN (501,502,503,504,505,506,507,508)
+        AND kr.relation_id IN (501,502,503,504,505,506,507,508,509)
         ORDER BY
         rid,kro.order_no
     </select>

+ 18 - 0
cdssman-service/src/main/resources/mapper/KlDrugMapper.xml

@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.diagbot.mapper.KlDrugMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.diagbot.entity.KlDrug">
+        <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="drug" property="drug" />
+        <result column="remark" property="remark" />
+    </resultMap>
+
+</mapper>

+ 14 - 0
cdssman-service/src/main/resources/mapper/KlLibraryInfoMapper.xml

@@ -18,4 +18,18 @@
         <result column="remark" property="remark" />
     </resultMap>
 
+    <select id="getLib"
+            parameterType="com.diagbot.vo.KlLibraryInfoVO" resultType="com.diagbot.entity.KlLibraryInfo">
+        SELECT
+        *
+        FROM
+        kl_library_info a
+        WHERE a.is_deleted = 'N'
+        <if test="libType != null">
+            AND a.type_id = #{libType}
+        </if>
+        <if test="synonymName!=null and synonymName!=''">
+            AND UPPER(a.name) LIKE CONCAT('%', UPPER(trim(#{synonymName})), '%')
+        </if>
+    </select>
 </mapper>

+ 2 - 1
cdssman-service/src/main/resources/mapper/KlRelationMapper.xml

@@ -180,7 +180,8 @@
         505,
         506,
         507,
-        508
+        508,
+        509
         )
         GROUP BY b.id
         ) re

+ 4 - 2
cdssman-service/src/main/resources/mapper/KlRuleMapper.xml

@@ -20,6 +20,7 @@
 
     <select id="getRules" resultType="com.diagbot.dto.RuleDTO">
         SELECT
+        t1.rule_type AS ruleType,
         t1.lib_type AS ruleLibType,
         t1.lib_type_name AS ruleLibTypeName,
         t1.lib_name AS ruleLibName,
@@ -29,7 +30,7 @@
         t1.has_sub_cond AS hasSubCond,
         t1.msg AS ruleMsg,
         t2.group_type AS groupType,
-        t2.rule_base_id AS ruleBaseId,
+        t3.id AS ruleBaseId,
         t3.description AS ruleBaseDescription,
         t3.eq_operator AS ruleBaseEqOperator,
         t3.eq_unit AS ruleBaseEqUnit,
@@ -56,7 +57,8 @@
         b.description,
         b.has_sub_cond,
         b.msg,
-        b.`status`
+        b.`status`,
+        b.rule_type
         FROM
         kl_concept a,
         kl_rule b,

+ 2 - 2
config-server/src/main/resources/shared/cdssman-service-dev.yml

@@ -23,11 +23,11 @@ spring:
         testOnBorrow: false
         testOnReturn: false
         # 打开PSCache,并且指定每个连接上PSCache的大小
-        poolPreparedStatements: true
+        poolPreparedStatements: false
         maxPoolPreparedStatementPerConnectionSize: 20
         # 配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙
         filters.commons-log.connection-logger-name: wall,log4j
-        share-prepared-statements: true
+        share-prepared-statements: false
         filter:
           stat:
             enabled: true

+ 2 - 2
config-server/src/main/resources/shared/cdssman-service-local.yml

@@ -23,11 +23,11 @@ spring:
         testOnBorrow: false
         testOnReturn: false
         # 打开PSCache,并且指定每个连接上PSCache的大小
-        poolPreparedStatements: true
+        poolPreparedStatements: false
         maxPoolPreparedStatementPerConnectionSize: 20
         # 配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙
         filters.commons-log.connection-logger-name: wall,log4j
-        share-prepared-statements: true
+        share-prepared-statements: false
         filter:
           stat:
             enabled: true

+ 2 - 2
config-server/src/main/resources/shared/cdssman-service-pre.yml

@@ -23,11 +23,11 @@ spring:
         testOnBorrow: false
         testOnReturn: false
         # 打开PSCache,并且指定每个连接上PSCache的大小
-        poolPreparedStatements: true
+        poolPreparedStatements: false
         maxPoolPreparedStatementPerConnectionSize: 20
         # 配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙
         filters.commons-log.connection-logger-name: wall,log4j
-        share-prepared-statements: true
+        share-prepared-statements: false
         filter:
           stat:
             enabled: true

+ 2 - 2
config-server/src/main/resources/shared/cdssman-service-pro.yml

@@ -25,11 +25,11 @@ spring:
           testOnBorrow: false
           testOnReturn: false
           # 打开PSCache,并且指定每个连接上PSCache的大小
-          poolPreparedStatements: true
+          poolPreparedStatements: false
           maxPoolPreparedStatementPerConnectionSize: 20
           # 配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙
           filters.commons-log.connection-logger-name: wall,log4j
-          share-prepared-statements: true
+          share-prepared-statements: false
           filter:
             stat:
               enabled: true

+ 2 - 2
config-server/src/main/resources/shared/cdssman-service-test.yml

@@ -23,11 +23,11 @@ spring:
         testOnBorrow: false
         testOnReturn: false
         # 打开PSCache,并且指定每个连接上PSCache的大小
-        poolPreparedStatements: true
+        poolPreparedStatements: false
         maxPoolPreparedStatementPerConnectionSize: 20
         # 配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙
         filters.commons-log.connection-logger-name: wall,log4j
-        share-prepared-statements: true
+        share-prepared-statements: false
         filter:
           stat:
             enabled: true