소스 검색

Merge branch 'dev/neo2mysql20210120' into debug

wangfeng 4 년 전
부모
커밋
9fc2da4664

+ 43 - 43
cdssman-service/src/main/java/com/diagbot/aggregate/RuleTestAggregate.java

@@ -86,44 +86,44 @@ public class RuleTestAggregate {
     /**
      * 开单合理性测试
      *
-     * @param billRuleVO
+     * @param ruleTestVO
      */
     @DataProvider("billRuleTest")
-    public Boolean billRuleTest(@InvokeParameter("billRuleVO") RuleTestVO billRuleVO) {
-        billTestExe(billRuleVO);
+    public Boolean billRuleTest(@InvokeParameter("billRuleVO") RuleTestVO ruleTestVO) {
+        billTestExe(ruleTestVO);
         return true;
     }
 
     /**
      * 开单合理性测试-输血
      *
-     * @param billRuleVO
+     * @param ruleTestVO
      */
     @DataProvider("billTransfusionRuleTest")
-    public Boolean billTransfusionRuleTest(@InvokeParameter("billTransfusionRuleVO") RuleTestVO billRuleVO) {
-        billTestExe(billRuleVO);
+    public Boolean billTransfusionRuleTest(@InvokeParameter("billTransfusionRuleVO") RuleTestVO ruleTestVO) {
+        billTestExe(ruleTestVO);
         return true;
     }
 
     /**
      * 危急值规则测试-检验
      *
-     * @param billRuleVO
+     * @param ruleTestVO
      */
     @DataProvider("criticalLisRuleTest")
-    public Boolean criticalLisRuleTest(@InvokeParameter("criticalLisRuleVO") RuleTestVO billRuleVO) {
-        billTestExe(billRuleVO);
+    public Boolean criticalLisRuleTest(@InvokeParameter("criticalLisRuleVO") RuleTestVO ruleTestVO) {
+        billTestExe(ruleTestVO);
         return true;
     }
 
     /**
      * 危急值规则测试-检查
      *
-     * @param billRuleVO
+     * @param ruleTestVO
      */
     @DataProvider("criticalPacsRuleTest")
-    public Boolean criticalPacsRuleTest(@InvokeParameter("criticalPacsRuleVO") RuleTestVO billRuleVO) {
-        billTestExe(billRuleVO);
+    public Boolean criticalPacsRuleTest(@InvokeParameter("criticalPacsRuleVO") RuleTestVO ruleTestVO) {
+        billTestExe(ruleTestVO);
         return true;
     }
 
@@ -133,8 +133,8 @@ public class RuleTestAggregate {
      * @return
      */
     @DataProvider("highriskDrugRuleTest")
-    public Boolean highriskDrugRuleTest(@InvokeParameter("highriskDrugRuleVO") RuleTestVO billRuleVO) {
-        billTestExe(billRuleVO);
+    public Boolean highriskDrugRuleTest(@InvokeParameter("highriskDrugRuleVO") RuleTestVO ruleTestVO) {
+        billTestExe(ruleTestVO);
         return true;
     }
 
@@ -144,8 +144,8 @@ public class RuleTestAggregate {
      * @return
      */
     @DataProvider("highriskOperationRuleTest")
-    public Boolean highriskOperationRuleTest(@InvokeParameter("highriskOperationRuleVO") RuleTestVO billRuleVO) {
-        billTestExe(billRuleVO);
+    public Boolean highriskOperationRuleTest(@InvokeParameter("highriskOperationRuleVO") RuleTestVO ruleTestVO) {
+        billTestExe(ruleTestVO);
         return true;
     }
 
@@ -153,24 +153,24 @@ public class RuleTestAggregate {
     /**
      * 其他值提醒-化验
      *
-     * @param billRuleVO
+     * @param ruleTestVO
      * @return
      */
     @DataProvider("otherLisRuleTest")
-    public Boolean otherLisRuleTest(@InvokeParameter("otherLisRuleVO") RuleTestVO billRuleVO) {
-        billTestExe(billRuleVO);
+    public Boolean otherLisRuleTest(@InvokeParameter("otherLisRuleVO") RuleTestVO ruleTestVO) {
+        billTestExe(ruleTestVO);
         return true;
     }
 
     /**
      * 其他值提醒-辅检
      *
-     * @param billRuleVO
+     * @param ruleTestVO
      * @return
      */
     @DataProvider("otherPacsRuleTest")
-    public Boolean otherPacsRuleTest(@InvokeParameter("otherPacsRuleVO") RuleTestVO billRuleVO) {
-        billTestExe(billRuleVO);
+    public Boolean otherPacsRuleTest(@InvokeParameter("otherPacsRuleVO") RuleTestVO ruleTestVO) {
+        billTestExe(ruleTestVO);
         return true;
     }
 
@@ -178,24 +178,24 @@ public class RuleTestAggregate {
     /**
      * 其他值提醒-输血
      *
-     * @param billRuleVO
+     * @param ruleTestVO
      * @return
      */
     @DataProvider("otherTransfusionRuleTest")
-    public Boolean otherTransfusionRuleTest(@InvokeParameter("otherTransfusionRuleVO") RuleTestVO billRuleVO) {
-        billTestExe(billRuleVO);
+    public Boolean otherTransfusionRuleTest(@InvokeParameter("otherTransfusionRuleVO") RuleTestVO ruleTestVO) {
+        billTestExe(ruleTestVO);
         return true;
     }
 
     /**
      * 正常项目重复开单
      *
-     * @param billRuleVO
+     * @param ruleTestVO
      * @return
      */
     @DataProvider("reBillRuleTest")
-    public Boolean reBillRuleTest(@InvokeParameter("reBillRuleVO") RuleTestVO billRuleVO) {
-        billTestExe(billRuleVO);
+    public Boolean reBillRuleTest(@InvokeParameter("reBillRuleVO") RuleTestVO ruleTestVO) {
+        billTestExe(ruleTestVO);
         return true;
     }
 
@@ -203,27 +203,27 @@ public class RuleTestAggregate {
     /**
      * 执行测试
      *
-     * @param billRuleVO
+     * @param ruleTestVO
      * @return
      */
-    public Boolean billTestExe(RuleTestVO billRuleVO) {
-        Long hospitalId = billRuleVO.getHospitalId();
+    public Boolean billTestExe(RuleTestVO ruleTestVO) {
+        Long hospitalId = ruleTestVO.getHospitalId();
         //开始运行
         RunningInfoVO runningInfoVO = new RunningInfoVO();
-        runningInfoVO.setCaseId(billRuleVO.getCaseId());
-        runningInfoVO.setHospitalId(billRuleVO.getHospitalId());
+        runningInfoVO.setCaseId(ruleTestVO.getCaseId());
+        runningInfoVO.setHospitalId(ruleTestVO.getHospitalId());
         runningInfoVO.setStatus(1);
         runningInfoFacade.updateStatus(runningInfoVO);
 
         //生成测试规则
-        List<ResultRule> resultList = medRuleConvertFacade.billConvert(hospitalId, billRuleVO.getCaseId());
+        List<ResultRule> resultList = medRuleConvertFacade.billConvert(hospitalId, ruleTestVO.getCaseId());
         if (ListUtil.isEmpty(resultList)) {
             return true;
         }
         //远程调用推理
         List<ResultRule> saveList = callIndication(resultList, hospitalId);
         //保存测试结果
-        saveResultRule(saveList, billRuleVO);
+        saveResultRule(saveList, ruleTestVO);
 
         //结束运行
         runningInfoVO.setStatus(0);
@@ -256,8 +256,8 @@ public class RuleTestAggregate {
             }
 
             Integer ruleType = entry.getValue().get(0).getRuleType();
-            IndicationPushVO indicationPushVO = medSearchDataFacade.createBillVO(entry.getValue());
-            indicationPushVO.setHospitalId(hospitalId);
+            IndicationPushVO indicationPushVO = medSearchDataFacade.createBillVO(entry.getValue(),hospitalId);
+
             //入参
             entry.getValue().forEach(result -> {
                 result.setInputParams(FastJsonUtils.getBeanToJson(indicationPushVO));
@@ -346,11 +346,11 @@ public class RuleTestAggregate {
      * 保存开单合理性测试结果
      *
      * @param list
-     * @param billRuleVO
+     * @param ruleTestVO
      * @return
      */
     @Transactional
-    public Boolean saveResultRule(List<ResultRule> list, RuleTestVO billRuleVO) {
+    public Boolean saveResultRule(List<ResultRule> list, RuleTestVO ruleTestVO) {
         Date now = new Date();
         Integer totleNum = list.stream()
                 .map(i -> i.getRuleOrderNo())
@@ -367,13 +367,13 @@ public class RuleTestAggregate {
                 .collect(Collectors.toList()).size();
         QueryWrapper<ResultInfo> resultInfoQueryWrapper = new QueryWrapper<>();
         resultInfoQueryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey())
-                .eq("hospital_id", billRuleVO.getHospitalId())
-                .eq("case_id", billRuleVO.getCaseId());
+                .eq("hospital_id", ruleTestVO.getHospitalId())
+                .eq("case_id", ruleTestVO.getCaseId());
         ResultInfo resultInfo = resultInfoService.getOne(resultInfoQueryWrapper, false);
         if (resultInfo == null) {
             resultInfo = new ResultInfo();
-            resultInfo.setHospitalId(billRuleVO.getHospitalId());
-            resultInfo.setCaseId(billRuleVO.getCaseId());
+            resultInfo.setHospitalId(ruleTestVO.getHospitalId());
+            resultInfo.setCaseId(ruleTestVO.getCaseId());
             resultInfo.setGmtCreate(now);
         }
         resultInfo.setGmtModified(now);

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

@@ -32,6 +32,8 @@ public class DiseasePageDTO  {
      */
     private String modifier;
 
+    private String modifierName;
+
     /**
      * 诊断名称
      */

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

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

+ 53 - 0
cdssman-service/src/main/java/com/diagbot/facade/KlConceptCommonFacade.java

@@ -0,0 +1,53 @@
+package com.diagbot.facade;
+
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.diagbot.entity.KlConceptCommon;
+import com.diagbot.enums.IsDeleteEnum;
+import com.diagbot.service.KlConceptCommonService;
+import com.diagbot.service.impl.KlConceptCommonServiceImpl;
+import com.diagbot.util.DateUtil;
+import com.diagbot.util.UserUtils;
+import com.diagbot.vo.KlConceptSaveVO;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.util.Date;
+
+/**
+ * @author wangfeng
+ * @Description:
+ * @date 2021-03-18 16:30
+ */
+@Component
+public class KlConceptCommonFacade extends KlConceptCommonServiceImpl {
+    @Autowired
+    KlConceptCommonService KlConceptCommonService;
+
+
+    public boolean saveOrUpdateAll(KlConceptSaveVO klConceptSaveVO) {
+        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);
+        } else {
+            KlConceptCommon klConceptCommonSub = new KlConceptCommon();
+            klConceptCommonSub.setConceptId(klConceptSaveVO.getConceptId());
+            klConceptCommonSub.setMaxAge(klConceptSaveVO.getMaxAge());
+            klConceptCommonSub.setMinAge(klConceptSaveVO.getMinAge());
+            klConceptCommonSub.setGmtModified(now);
+            klConceptCommonSub.setModifier(UserUtils.getCurrentPrincipleID());
+            res = this.save(klConceptCommonSub);
+        }
+
+        return res;
+
+    }
+}

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

@@ -17,8 +17,6 @@ import com.diagbot.entity.KlLis;
 import com.diagbot.enums.IsDeleteEnum;
 import com.diagbot.exception.CommonErrorCode;
 import com.diagbot.exception.CommonException;
-import com.diagbot.service.KlConceptCommonService;
-import com.diagbot.service.KlLisService;
 import com.diagbot.service.impl.KlConceptServiceImpl;
 import com.diagbot.util.BeanUtil;
 import com.diagbot.util.DateUtil;
@@ -39,8 +37,6 @@ import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
-import javax.validation.constraints.NotBlank;
-import javax.validation.constraints.NotNull;
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
@@ -60,9 +56,9 @@ public class KlConceptFacade extends KlConceptServiceImpl {
     @Autowired
     private KlLibraryInfoFacade klLibraryInfoFacade;
     @Autowired
-    private KlConceptCommonService klConceptCommonService;
+    private KlConceptCommonFacade klConceptCommonFacade;
     @Autowired
-    KlLisService klLisService;
+    KlLisFacade klLisFacade;
     @Autowired
     KlDiseaseFacade klDiseaseFacade;
 
@@ -140,7 +136,7 @@ public class KlConceptFacade extends KlConceptServiceImpl {
                         //校验
                         klLibraryInfoFacade.checkLibraryInfoData(subVO);
                         //保存LibraryInfo
-                        res = klLibraryInfoFacade.savekLibraryInfoData(klConceptSaveVO.getConceptId(),subVO);
+                        res = klLibraryInfoFacade.savekLibraryInfoData(klConceptSaveVO.getConceptId(), subVO);
                     } else {
                         UpdateWrapper<KlLibraryInfo> klLibraryInfoQuerySub = new UpdateWrapper<>();
                         klLibraryInfoQuerySub.eq("is_deleted", IsDeleteEnum.N.getKey())
@@ -205,29 +201,34 @@ public class KlConceptFacade extends KlConceptServiceImpl {
                 conceptCommon.setModifier(UserUtils.getCurrentPrincipleID());
                 conceptCommon.setGmtCreate(now);
                 conceptCommon.setGmtModified(now);
-                klConceptCommonService.save(conceptCommon);
+                klConceptCommonFacade.save(conceptCommon);
             }
             //更新kl_disease
-            KlDisease kllDiseaseSub = new KlDisease();
-            kllDiseaseSub.setConceptId(klConceptPare.getId());
-            kllDiseaseSub.setGmtModified(now);
-            kllDiseaseSub.setIcd10Code(klConceptSaveVO.getIcdCode());
-            kllDiseaseSub.setCreator(UserUtils.getCurrentPrincipleID());
-            kllDiseaseSub.setModifier(UserUtils.getCurrentPrincipleID());
-            kllDiseaseSub.setGmtCreate(now);
-            kllDiseaseSub.setGmtModified(now);
-            res = klDiseaseFacade.saveOrUpdate(kllDiseaseSub);
+            if (null != klConceptSaveVO.getIcdCode()) {
+                KlDisease kllDiseaseSub = new KlDisease();
+                kllDiseaseSub.setConceptId(klConceptPare.getId());
+                kllDiseaseSub.setGmtModified(now);
+                kllDiseaseSub.setIcd10Code(klConceptSaveVO.getIcdCode());
+                kllDiseaseSub.setCreator(UserUtils.getCurrentPrincipleID());
+                kllDiseaseSub.setModifier(UserUtils.getCurrentPrincipleID());
+                kllDiseaseSub.setGmtCreate(now);
+                kllDiseaseSub.setGmtModified(now);
+                res = klDiseaseFacade.save(kllDiseaseSub);
+            }
+
             //更新kl_lis
-            KlLis klLisSub = new KlLis();
-            klLisSub.setConceptId(klConceptPare.getId());
-            klLisSub.setMinValue(klConceptSaveVO.getMinVal());
-            klLisSub.setMaxValue(klConceptSaveVO.getMaxVal());
-            klLisSub.setType(klConceptSaveVO.getScopeType());
-            klLisSub.setCreator(UserUtils.getCurrentPrincipleID());
-            klLisSub.setModifier(UserUtils.getCurrentPrincipleID());
-            klLisSub.setGmtCreate(now);
-            klLisSub.setGmtModified(now);
-            res = klLisService.saveOrUpdate(klLisSub);
+            if (null != klConceptSaveVO.getScopeType()) {
+                KlLis klLisSub = new KlLis();
+                klLisSub.setConceptId(klConceptPare.getId());
+                klLisSub.setMinValue(klConceptSaveVO.getMinVal());
+                klLisSub.setMaxValue(klConceptSaveVO.getMaxVal());
+                klLisSub.setType(klConceptSaveVO.getScopeType());
+                klLisSub.setCreator(UserUtils.getCurrentPrincipleID());
+                klLisSub.setModifier(UserUtils.getCurrentPrincipleID());
+                klLisSub.setGmtCreate(now);
+                klLisSub.setGmtModified(now);
+                res = klLisFacade.save(klLisSub);
+            }
             //增加同义词
             List<KlConceptSaveSubVO> klConceptSub = klConceptSaveVO.getKlConceptSub();
             if (ListUtil.isNotEmpty(klConceptSub)) {
@@ -236,7 +237,7 @@ public class KlConceptFacade extends KlConceptServiceImpl {
 
                         klLibraryInfoFacade.checkLibraryInfoData(subVO);
 
-                        res = klLibraryInfoFacade.savekLibraryInfoData(klConceptPare.getId(),subVO);
+                        res = klLibraryInfoFacade.savekLibraryInfoData(klConceptPare.getId(), subVO);
                     }
                 }
             }
@@ -269,41 +270,17 @@ public class KlConceptFacade extends KlConceptServiceImpl {
         res = klLibraryInfoFacade.update(new KlLibraryInfo(), klLibraryInfoQuerySub);
         //更新kl_concept_common表
         if (null != klConceptSaveVO.getIsHasCommon() && klConceptSaveVO.getIsHasCommon().equals(1)) {
-            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.getLibName())
-                    .set("min_age", klConceptSaveVO.getLibName())
-                    .set("max_age", klConceptSaveVO.getLibName());
-            KlConceptCommon klConceptCommonSub = new KlConceptCommon();
-            klConceptCommonSub.setConceptId(klConceptSaveVO.getConceptId());
-            klConceptCommonSub.setMaxAge(klConceptSaveVO.getMaxAge());
-            klConceptCommonSub.setMinAge(klConceptSaveVO.getMinAge());
-            klConceptCommonSub.setGmtModified(now);
-            klConceptCommonSub.setModifier(UserUtils.getCurrentPrincipleID());
-            res = klConceptCommonService.saveOrUpdate(klConceptCommonSub);
+            //当是疾病的时候才保存性别和年龄大小的数据
+            res = klConceptCommonFacade.saveOrUpdateAll(klConceptSaveVO);
         }
         //更新kl_disease
         if (null != klConceptSaveVO.getIcdCode()) {
-            KlDisease kllDiseaseSub = new KlDisease();
-            kllDiseaseSub.setConceptId(klConceptSaveVO.getConceptId());
-            kllDiseaseSub.setGmtModified(now);
-            kllDiseaseSub.setModifier(UserUtils.getCurrentPrincipleID());
-            kllDiseaseSub.setIcd10Code(klConceptSaveVO.getIcdCode());
-            res = klDiseaseFacade.saveOrUpdate(kllDiseaseSub);
+            //当icd10编码不为空
+            res = klDiseaseFacade.saveOrUpdateAll(klConceptSaveVO);
         }
         //更新kl_lis
         if (null != klConceptSaveVO.getScopeType()) {
-            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 = klLisService.saveOrUpdate(klLisSub);
+            res = klLisFacade.saveOrUpdateAll(klConceptSaveVO);
         }
         return res;
     }

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

@@ -7,6 +7,7 @@ import com.diagbot.dto.KlConceptStaticDTO;
 import com.diagbot.dto.RespDTO;
 import com.diagbot.dto.StaticKnowledgeDTO;
 import com.diagbot.dto.StaticKnowledgeIndexDTO;
+import com.diagbot.service.impl.KlConceptStaticServiceImpl;
 import com.diagbot.util.RespDTOUtil;
 import com.diagbot.util.UserUtils;
 import com.diagbot.vo.ChangeStatusVO;
@@ -28,7 +29,7 @@ import java.util.stream.Collectors;
  * @time: 2021/2/23 15:41
  */
 @Component
-public class KlConceptStaticFacade {
+public class KlConceptStaticFacade extends KlConceptStaticServiceImpl {
 
     @Autowired
     private CdssCoreClient cdssCoreClient;

+ 55 - 10
cdssman-service/src/main/java/com/diagbot/facade/KlDiseaseFacade.java

@@ -1,29 +1,43 @@
 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.*;
+import com.diagbot.client.UserServiceClient;
+import com.diagbot.dto.DiseaseAllDetailDTO;
+import com.diagbot.dto.DiseaseDetailDTO;
+import com.diagbot.dto.DiseasePageDTO;
+import com.diagbot.dto.DiseaseSubDetailDTO;
+import com.diagbot.dto.DiseaseTreeDetailDTO;
+import com.diagbot.dto.RespDTO;
 import com.diagbot.entity.KlConcept;
+import com.diagbot.entity.KlDisease;
 import com.diagbot.entity.KlLexiconRelationship;
 import com.diagbot.enums.DiseaseRelationTypeEnum;
 import com.diagbot.enums.IsDeleteEnum;
 import com.diagbot.enums.RelationLibTypeEnum;
-import com.diagbot.service.KlDiseaseService;
-import com.diagbot.service.KlLexiconRelationshipService;
 import com.diagbot.service.impl.KlDiseaseServiceImpl;
+import com.diagbot.util.DateUtil;
 import com.diagbot.util.EntityUtil;
 import com.diagbot.util.ListUtil;
+import com.diagbot.util.RespDTOUtil;
 import com.diagbot.util.StringUtil;
+import com.diagbot.util.UserUtils;
 import com.diagbot.vo.DiseaseDeleteVO;
 import com.diagbot.vo.DiseasePageVO;
 import com.diagbot.vo.GetDiseaseDetailVO;
+import com.diagbot.vo.KlConceptSaveVO;
 import com.google.common.collect.Maps;
 import org.apache.commons.collections4.MapUtils;
 import org.apache.commons.compress.utils.Lists;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
 import java.util.stream.Collectors;
 
 /**
@@ -37,6 +51,8 @@ public class KlDiseaseFacade extends KlDiseaseServiceImpl {
     KlLexiconRelationshipFacade klLexiconRelationshipFacade;
     @Autowired
     KlConceptFacade klConceptFacade;
+    @Autowired
+    UserServiceClient userServiceClient;
 
     /**
      * 诊断依据分页查询
@@ -45,7 +61,15 @@ public class KlDiseaseFacade extends KlDiseaseServiceImpl {
      * @return
      */
     public IPage<DiseasePageDTO> getDiseasePageAll(DiseasePageVO klConceptInfoVO) {
-        return this.getDiseasePage(klConceptInfoVO);
+        IPage<DiseasePageDTO> diseasePage = this.getDiseasePage(klConceptInfoVO);
+        List<String> userIds = diseasePage.getRecords().stream()
+                .map(i -> i.getModifier()).distinct().collect(Collectors.toList());
+        RespDTO<Map<String, String>> respDTO = userServiceClient.getUserInfoByIds(userIds);
+        RespDTOUtil.respNGDealCover(respDTO, "获取用户信息失败");
+        diseasePage.getRecords().forEach(i -> {
+            i.setModifierName(respDTO.data.get(i.getModifier()));
+        });
+        return diseasePage;
     }
 
     public List<KlConcept> getDiseaseAll(DiseaseDeleteVO diseaseDeleteVO) {
@@ -79,11 +103,11 @@ 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);
         List<KlLexiconRelationship> klLexiconRelationships = klLexiconRelationshipFacade.list(new QueryWrapper<KlLexiconRelationship>()
                 .eq("is_deleted", IsDeleteEnum.N.getKey())
                 .in("code", relations)
-        .orderByAsc("code"));
+                .orderByAsc("code"));
         Map<Integer, String> relation_name = klLexiconRelationships.stream().collect(Collectors.toMap(KlLexiconRelationship::getCode, KlLexiconRelationship::getName, (key1, key2) -> key2));
         DiseaseTreeDetailDTO diseaseTreeDetailDTO = new DiseaseTreeDetailDTO();
 
@@ -126,15 +150,15 @@ public class KlDiseaseFacade extends KlDiseaseServiceImpl {
         }
         List<DiseaseSubDetailDTO> datas = Lists.newArrayList();
         List<List<String>> types = Lists.newArrayList();
-        relation_name.forEach((x,y)->{
+        relation_name.forEach((x, y) -> {
             List<String> split = Arrays.asList(DiseaseRelationTypeEnum.getName(x).split("&"));
             List<Integer> collect = Arrays.stream(RelationLibTypeEnum.getName(x).split("&")).map(z -> Integer.parseInt(z)).collect(Collectors.toList());
             types.add(split);
-            if(disSubDetailMap.containsKey(x)){
+            if (disSubDetailMap.containsKey(x)) {
                 DiseaseSubDetailDTO diseaseSubDetailDTO = disSubDetailMap.get(x);
                 diseaseSubDetailDTO.setLibType(collect);
                 datas.add(diseaseSubDetailDTO);
-            }else {
+            } else {
                 DiseaseSubDetailDTO diseaseSubDetailDTO = new DiseaseSubDetailDTO();
                 diseaseSubDetailDTO.setLibType(collect);
                 diseaseSubDetailDTO.setRname(relation_name.get(x));
@@ -149,5 +173,26 @@ public class KlDiseaseFacade extends KlDiseaseServiceImpl {
     }
 
 
+    public boolean saveOrUpdateAll(KlConceptSaveVO klConceptSaveVO) {
+        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);
+        } else {
+            KlDisease kllDiseaseSub = new KlDisease();
+            kllDiseaseSub.setConceptId(klConceptSaveVO.getConceptId());
+            kllDiseaseSub.setGmtModified(now);
+            kllDiseaseSub.setModifier(UserUtils.getCurrentPrincipleID());
+            kllDiseaseSub.setIcd10Code(klConceptSaveVO.getIcdCode());
+            res = this.save(kllDiseaseSub);
+        }
+        return res;
+    }
 }
 

+ 50 - 0
cdssman-service/src/main/java/com/diagbot/facade/KlLisFacade.java

@@ -0,0 +1,50 @@
+package com.diagbot.facade;
+
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+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;
+
+/**
+ * @author wangfeng
+ * @Description:
+ * @date 2021-03-18 16:38
+ */
+@Component
+public class KlLisFacade extends KlLisServiceImpl {
+
+    public boolean saveOrUpdateAll(KlConceptSaveVO klConceptSaveVO) {
+        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);
+        } 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);
+        }
+        return res;
+    }
+}

+ 512 - 135
cdssman-service/src/main/java/com/diagbot/facade/MedRuleConvertFacade.java

@@ -1,13 +1,17 @@
 package com.diagbot.facade;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.diagbot.biz.push.entity.Lis;
 import com.diagbot.dto.BillMsg;
 import com.diagbot.dto.MedClassMedDTO;
 import com.diagbot.dto.RuleDTO;
+import com.diagbot.entity.KlConcept;
 import com.diagbot.entity.ResultRule;
 import com.diagbot.enums.ConEnum;
+import com.diagbot.enums.IsDeleteEnum;
 import com.diagbot.enums.LexiconEnum;
 import com.diagbot.enums.RuleBaseTypeEnum;
+import com.diagbot.enums.StatusEnum;
 import com.diagbot.enums.TypeEnum;
 import com.diagbot.util.BeanUtil;
 import com.diagbot.util.ListUtil;
@@ -36,6 +40,8 @@ import java.util.stream.Collectors;
  */
 @Component
 public class MedRuleConvertFacade {
+    @Autowired
+    private KlConceptFacade klConceptFacade;
     @Autowired
     private KlRuleFacade klRuleFacade;
     @Autowired
@@ -93,15 +99,13 @@ public class MedRuleConvertFacade {
                         LexiconEnum.PacsSubName.getKey() }));
             } else if (caseId.equals(5L)) {
                 ruleVO.setRuleType(2);
-                ruleVO.setLibTypes(Arrays.asList(new Integer[] { LexiconEnum.Medicine.getKey()
-                }));
+                ruleVO.setLibTypes(Arrays.asList(new Integer[] { LexiconEnum.Medicine.getKey() }));
             } else if (caseId.equals(6L)) {
                 ruleVO.setRuleType(2);
                 ruleVO.setLibTypes(Arrays.asList(new Integer[] { LexiconEnum.Operation.getKey() }));
             } else if (caseId.equals(7L)) {
                 ruleVO.setRuleType(4);
-                ruleVO.setLibTypes(Arrays.asList(new Integer[] { LexiconEnum.LisSubName.getKey()
-                }));
+                ruleVO.setLibTypes(Arrays.asList(new Integer[] { LexiconEnum.LisSubName.getKey() }));
             } else if (caseId.equals(8L)) {
                 ruleVO.setRuleType(4);
                 ruleVO.setLibTypes(Arrays.asList(new Integer[] { LexiconEnum.PacsResult.getKey() }));
@@ -136,6 +140,7 @@ public class MedRuleConvertFacade {
         Map<String, List<RuleDTO>> map = list
                 .stream()
                 .collect(Collectors.groupingBy(k -> k.getRuleId() + "_" + k.getGroupType()));
+
         Long ruleOrderNo = 1L;
         for (Map.Entry<String, List<RuleDTO>> entry : map.entrySet()) {
             //多个条件的痛ruleOrderNo
@@ -185,7 +190,8 @@ public class MedRuleConvertFacade {
                     //年龄转换数值
                     switch (result.getRuleBaseLibName()) {
                         case "新生儿":
-                            result.setRuleBaseInputValue(random(BigDecimal.ZERO, BigDecimal.ONE, false, true).toString());
+                            result.setRuleBaseInputValue(random_int(1, 12, true, true).toString());
+                            result.setRuleBaseUnit("月");
                             break;
                         case "幼儿":
                             result.setRuleBaseInputValue(random_int(1, 6, true, false).toString());
@@ -430,8 +436,20 @@ public class MedRuleConvertFacade {
                 if (result.getRuleType().equals(4)) {
                     if (StringUtil.isNotBlank(result.getRuleBaseLibName())
                             && result.getRuleBaseLibName().equals("流产")) {
-                        List<String> conflictDiseases = diseaseConfigMap.keySet().stream()
-                                .filter(i -> i.contains(result.getRuleBaseLibName())).collect(Collectors.toList());
+                        List<String> conflictDiseases = Lists.newLinkedList();
+                        if (hospitalId < 0) {
+                            List<KlConcept> concepts = klConceptFacade.list(new QueryWrapper<KlConcept>()
+                                    .eq("is_deleted", IsDeleteEnum.N.getKey())
+                                    .eq("status", StatusEnum.Enable.getKey())
+                                    .eq("lib_type", LexiconEnum.Disease.getKey())
+                                    .like("lib_name", result.getRuleBaseLibName()));
+                            if (ListUtil.isNotEmpty(concepts)) {
+                                conflictDiseases = concepts.stream().map(i -> i.getLibName()).collect(Collectors.toList());
+                            }
+                        } else {
+                            conflictDiseases = diseaseConfigMap.keySet().stream()
+                                    .filter(i -> i.contains(result.getRuleBaseLibName())).collect(Collectors.toList());
+                        }
                         for (String conflictDisease : conflictDiseases) {
                             ResultRule convertResult = new ResultRule();
                             BeanUtil.copyProperties(result, convertResult);
@@ -484,136 +502,140 @@ public class MedRuleConvertFacade {
             ruleOrderNo = (long) rePacsBillList.size();
         }
 
-        //术语映射-开单项映射
-        ruleOrderNo = 0L;
-        Map<Long, List<ResultRule>> billMappingMap = rePacsBillList
-                .stream()
-                .collect(Collectors.groupingBy(ResultRule::getRuleOrderNo));
-        for (Map.Entry<Long, List<ResultRule>> entry : billMappingMap.entrySet()) {
-            Map<Integer, List<ResultRule>> tempMap = new HashMap<>();
-            Integer num = 1;
-            for (ResultRule result : entry.getValue()) {
-                List<ResultRule> tempList = Lists.newLinkedList();
-                if (result.getRuleLibType().equals(LexiconEnum.Medicine.getKey())) {
-                    List<ResultRule> mappingList = getMappingResult_medicine(result, drugConfigMap, 1);
-                    if (result.getRuleLibType().equals(result.getRuleBaseLibType())
-                            && result.getRuleLibName().equals(result.getRuleBaseLibName())) {
-                        mappingList.forEach(item -> {
-                            item.setRuleBaseHisName(item.getRuleHisName());
-                        });
-                    }
-                    tempList.addAll(mappingList);
-                } else if (result.getRuleLibType().equals(LexiconEnum.Operation.getKey())) {
-                    List<ResultRule> mappingList = getMappingResult(result, operationConfigMap, 1);
-                    if (result.getRuleLibType().equals(result.getRuleBaseLibType())
-                            && result.getRuleLibName().equals(result.getRuleBaseLibName())) {
-                        mappingList.forEach(item -> {
-                            item.setRuleBaseHisName(item.getRuleHisName());
-                        });
-                    }
-                    tempList.addAll(mappingList);
-                } else if (result.getRuleLibType().equals(LexiconEnum.LisName.getKey())) {
-                    List<ResultRule> mappingList = getMappingResult_lis(result, lisConfigMap, 1);
-                    if (result.getRuleLibType().equals(result.getRuleBaseLibType())
-                            && result.getRuleLibName().equals(result.getRuleBaseLibName())) {
-                        mappingList.forEach(item -> {
-                            item.setRuleBaseHisName(item.getRuleHisName());
-                            item.setRuleBaseHisDetailName(item.getRuleHisDetailName());
-                        });
-                    }
-                    tempList.addAll(mappingList);
-                } else if (result.getRuleLibType().equals(LexiconEnum.LisSubName.getKey())) {
-                    List<ResultRule> mappingList = getMappingResult_lis(result, lisConfigMap, 1);
-                    if (result.getRuleLibType().equals(result.getRuleBaseLibType())
-                            && result.getRuleLibName().equals(result.getRuleBaseLibName())) {
-                        mappingList.forEach(item -> {
-                            item.setRuleBaseHisName(item.getRuleHisName());
-                            item.setRuleBaseHisDetailName(item.getRuleHisDetailName());
-                        });
-                    }
-                    tempList.addAll(mappingList);
-                } else if (result.getRuleLibType().equals(LexiconEnum.PacsName.getKey())) {
-                    List<ResultRule> mappingList = getMappingResult(result, pacsConfigMap, 1);
-                    if (result.getRuleLibType().equals(result.getRuleBaseLibType())
-                            && result.getRuleLibName().equals(result.getRuleBaseLibName())) {
-                        mappingList.forEach(item -> {
-                            item.setRuleBaseHisName(item.getRuleHisName());
-                        });
-                    }
-                    tempList.addAll(mappingList);
-                } else if (result.getRuleLibType().equals(LexiconEnum.PacsSubName.getKey())) {
-                    List<ResultRule> mappingList = getMappingResult(result, pacsConfigMap, 1);
-                    if (result.getRuleLibType().equals(result.getRuleBaseLibType())
-                            && result.getRuleLibName().equals(result.getRuleBaseLibName())) {
-                        mappingList.forEach(item -> {
-                            item.setRuleBaseHisName(item.getRuleHisName());
-                        });
-                    }
-                    tempList.addAll(mappingList);
-                } else if (result.getRuleLibType().equals(LexiconEnum.Transfusion.getKey())) {
-                    List<ResultRule> mappingList = getMappingResult(result, transfusionConfigMap, 1);
-                    if (result.getRuleLibType().equals(result.getRuleBaseLibType())
-                            && result.getRuleLibName().equals(result.getRuleBaseLibName())) {
-                        mappingList.forEach(item -> {
-                            item.setRuleBaseHisName(item.getRuleHisName());
-                        });
+        if (hospitalId < 0) {
+            conflictMappingList = BeanUtil.listCopyTo(rePacsBillList, ResultRule.class);
+        } else {
+            //术语映射-开单项映射
+            ruleOrderNo = 0L;
+            Map<Long, List<ResultRule>> billMappingMap = rePacsBillList
+                    .stream()
+                    .collect(Collectors.groupingBy(ResultRule::getRuleOrderNo));
+            for (Map.Entry<Long, List<ResultRule>> entry : billMappingMap.entrySet()) {
+                Map<Integer, List<ResultRule>> tempMap = new HashMap<>();
+                Integer num = 1;
+                for (ResultRule result : entry.getValue()) {
+                    List<ResultRule> tempList = Lists.newLinkedList();
+                    if (result.getRuleLibType().equals(LexiconEnum.Medicine.getKey())) {
+                        List<ResultRule> mappingList = getMappingResult_medicine(result, drugConfigMap, 1);
+                        if (result.getRuleLibType().equals(result.getRuleBaseLibType())
+                                && result.getRuleLibName().equals(result.getRuleBaseLibName())) {
+                            mappingList.forEach(item -> {
+                                item.setRuleBaseHisName(item.getRuleHisName());
+                            });
+                        }
+                        tempList.addAll(mappingList);
+                    } else if (result.getRuleLibType().equals(LexiconEnum.Operation.getKey())) {
+                        List<ResultRule> mappingList = getMappingResult(result, operationConfigMap, 1);
+                        if (result.getRuleLibType().equals(result.getRuleBaseLibType())
+                                && result.getRuleLibName().equals(result.getRuleBaseLibName())) {
+                            mappingList.forEach(item -> {
+                                item.setRuleBaseHisName(item.getRuleHisName());
+                            });
+                        }
+                        tempList.addAll(mappingList);
+                    } else if (result.getRuleLibType().equals(LexiconEnum.LisName.getKey())) {
+                        List<ResultRule> mappingList = getMappingResult_lis(result, lisConfigMap, 1);
+                        if (result.getRuleLibType().equals(result.getRuleBaseLibType())
+                                && result.getRuleLibName().equals(result.getRuleBaseLibName())) {
+                            mappingList.forEach(item -> {
+                                item.setRuleBaseHisName(item.getRuleHisName());
+                                item.setRuleBaseHisDetailName(item.getRuleHisDetailName());
+                            });
+                        }
+                        tempList.addAll(mappingList);
+                    } else if (result.getRuleLibType().equals(LexiconEnum.LisSubName.getKey())) {
+                        List<ResultRule> mappingList = getMappingResult_lis(result, lisConfigMap, 1);
+                        if (result.getRuleLibType().equals(result.getRuleBaseLibType())
+                                && result.getRuleLibName().equals(result.getRuleBaseLibName())) {
+                            mappingList.forEach(item -> {
+                                item.setRuleBaseHisName(item.getRuleHisName());
+                                item.setRuleBaseHisDetailName(item.getRuleHisDetailName());
+                            });
+                        }
+                        tempList.addAll(mappingList);
+                    } else if (result.getRuleLibType().equals(LexiconEnum.PacsName.getKey())) {
+                        List<ResultRule> mappingList = getMappingResult(result, pacsConfigMap, 1);
+                        if (result.getRuleLibType().equals(result.getRuleBaseLibType())
+                                && result.getRuleLibName().equals(result.getRuleBaseLibName())) {
+                            mappingList.forEach(item -> {
+                                item.setRuleBaseHisName(item.getRuleHisName());
+                            });
+                        }
+                        tempList.addAll(mappingList);
+                    } else if (result.getRuleLibType().equals(LexiconEnum.PacsSubName.getKey())) {
+                        List<ResultRule> mappingList = getMappingResult(result, pacsConfigMap, 1);
+                        if (result.getRuleLibType().equals(result.getRuleBaseLibType())
+                                && result.getRuleLibName().equals(result.getRuleBaseLibName())) {
+                            mappingList.forEach(item -> {
+                                item.setRuleBaseHisName(item.getRuleHisName());
+                            });
+                        }
+                        tempList.addAll(mappingList);
+                    } else if (result.getRuleLibType().equals(LexiconEnum.Transfusion.getKey())) {
+                        List<ResultRule> mappingList = getMappingResult(result, transfusionConfigMap, 1);
+                        if (result.getRuleLibType().equals(result.getRuleBaseLibType())
+                                && result.getRuleLibName().equals(result.getRuleBaseLibName())) {
+                            mappingList.forEach(item -> {
+                                item.setRuleBaseHisName(item.getRuleHisName());
+                            });
+                        }
+                        tempList.addAll(mappingList);
+                    } else if (result.getRuleLibType().equals(LexiconEnum.PacsResult.getKey())) {
+                        tempList.add(result);
+                    } else {
+                        tempList.add(result);
                     }
-                    tempList.addAll(mappingList);
-                } else if (result.getRuleLibType().equals(LexiconEnum.PacsResult.getKey())) {
-                    tempList.add(result);
-                } else {
-                    tempList.add(result);
+                    tempMap.put(num++, tempList);
                 }
-                tempMap.put(num++, tempList);
+                billMappingList.addAll(addRuleOrderNo(tempMap, ruleOrderNo));
+                ruleOrderNo = (long) billMappingList.size();
             }
-            billMappingList.addAll(addRuleOrderNo(tempMap, ruleOrderNo));
-            ruleOrderNo = (long) billMappingList.size();
-        }
 
-        //术语映射-禁忌项映射
-        ruleOrderNo = 0L;
-        Map<Long, List<ResultRule>> conflictMappingMap = billMappingList
-                .stream()
-                .collect(Collectors.groupingBy(ResultRule::getRuleOrderNo));
-        for (Map.Entry<Long, List<ResultRule>> entry : conflictMappingMap.entrySet()) {
-            Map<Integer, List<ResultRule>> tempMap = new HashMap<>();
-            Integer num = 1;
-            for (ResultRule result : entry.getValue()) {
-                List<ResultRule> tempList = Lists.newLinkedList();
-                if (result.getHasSubCond() != null && result.getHasSubCond().equals(1)) {
-                    if (result.getRuleLibType().equals(result.getRuleBaseLibType())
-                            && result.getRuleLibName().equals(result.getRuleBaseLibName())) {
-                        tempList.add(result);
-                    } else {
-                        if (result.getRuleBaseLibType().equals(LexiconEnum.Disease.getKey())) {
-                            List<ResultRule> mappingList = getMappingResult(result, diseaseConfigMap, 2);
-                            tempList.addAll(mappingList);
-                        } else if (result.getRuleBaseLibType().equals(LexiconEnum.Medicine.getKey())) {
-                            List<ResultRule> mappingList = getMappingResult_medicine(result, drugConfigMap, 2);
-                            tempList.addAll(mappingList);
-                        } else if (result.getRuleBaseLibType().equals(LexiconEnum.LisSubName.getKey())) {
-                            List<ResultRule> mappingList = getMappingResult_lis(result, lisConfigMap, 2);
-                            tempList.addAll(mappingList);
-                        } else if (result.getRuleBaseLibType().equals(LexiconEnum.PacsName.getKey())) {
-                            List<ResultRule> mappingList = getMappingResult(result, pacsConfigMap, 2);
-                            tempList.addAll(mappingList);
-                        } else if (result.getRuleBaseLibType().equals(LexiconEnum.PacsSubName.getKey())) {
-                            List<ResultRule> mappingList = getMappingResult(result, pacsConfigMap, 2);
-                            tempList.addAll(mappingList);
-                        } else if (result.getRuleBaseLibType().equals(LexiconEnum.Operation.getKey())) {
-                            List<ResultRule> mappingList = getMappingResult(result, operationConfigMap, 2);
-                            tempList.addAll(mappingList);
-                        } else {
+            //术语映射-禁忌项映射
+            ruleOrderNo = 0L;
+            Map<Long, List<ResultRule>> conflictMappingMap = billMappingList
+                    .stream()
+                    .collect(Collectors.groupingBy(ResultRule::getRuleOrderNo));
+            for (Map.Entry<Long, List<ResultRule>> entry : conflictMappingMap.entrySet()) {
+                Map<Integer, List<ResultRule>> tempMap = new HashMap<>();
+                Integer num = 1;
+                for (ResultRule result : entry.getValue()) {
+                    List<ResultRule> tempList = Lists.newLinkedList();
+                    if (result.getHasSubCond() != null && result.getHasSubCond().equals(1)) {
+                        if (result.getRuleLibType().equals(result.getRuleBaseLibType())
+                                && result.getRuleLibName().equals(result.getRuleBaseLibName())) {
                             tempList.add(result);
+                        } else {
+                            if (result.getRuleBaseLibType().equals(LexiconEnum.Disease.getKey())) {
+                                List<ResultRule> mappingList = getMappingResult(result, diseaseConfigMap, 2);
+                                tempList.addAll(mappingList);
+                            } else if (result.getRuleBaseLibType().equals(LexiconEnum.Medicine.getKey())) {
+                                List<ResultRule> mappingList = getMappingResult_medicine(result, drugConfigMap, 2);
+                                tempList.addAll(mappingList);
+                            } else if (result.getRuleBaseLibType().equals(LexiconEnum.LisSubName.getKey())) {
+                                List<ResultRule> mappingList = getMappingResult_lis(result, lisConfigMap, 2);
+                                tempList.addAll(mappingList);
+                            } else if (result.getRuleBaseLibType().equals(LexiconEnum.PacsName.getKey())) {
+                                List<ResultRule> mappingList = getMappingResult(result, pacsConfigMap, 2);
+                                tempList.addAll(mappingList);
+                            } else if (result.getRuleBaseLibType().equals(LexiconEnum.PacsSubName.getKey())) {
+                                List<ResultRule> mappingList = getMappingResult(result, pacsConfigMap, 2);
+                                tempList.addAll(mappingList);
+                            } else if (result.getRuleBaseLibType().equals(LexiconEnum.Operation.getKey())) {
+                                List<ResultRule> mappingList = getMappingResult(result, operationConfigMap, 2);
+                                tempList.addAll(mappingList);
+                            } else {
+                                tempList.add(result);
+                            }
                         }
+                    } else {
+                        tempList.add(result);
                     }
-                } else {
-                    tempList.add(result);
+                    tempMap.put(num++, tempList);
                 }
-                tempMap.put(num++, tempList);
+                conflictMappingList.addAll(addRuleOrderNo(tempMap, ruleOrderNo));
+                ruleOrderNo = (long) conflictMappingList.size();
             }
-            conflictMappingList.addAll(addRuleOrderNo(tempMap, ruleOrderNo));
-            ruleOrderNo = (long) conflictMappingList.size();
         }
 
         //生成预期结果
@@ -639,13 +661,18 @@ public class MedRuleConvertFacade {
                 retList.addAll(entry.getValue());
                 continue;
             }
-            BillMsg billMsg = getBillMsg(entry.getValue());
+            BillMsg billMsg = new BillMsg();
+            if (hospitalId < 0) {
+                billMsg = getBillMsg_inner(entry.getValue());
+            } else {
+                billMsg = getBillMsg(entry.getValue());
+            }
             if (billMsg != null) {
-                entry.getValue().forEach(item -> {
+                for (ResultRule item : entry.getValue()) {
                     if (StringUtil.isBlank(item.getExpectedOutput())) {
                         item.setExpectedOutput(billMsg.getMsg());
                     }
-                });
+                }
             } else {
                 entry.getValue().forEach(item -> {
                     item.setSuccess(0);
@@ -739,7 +766,7 @@ public class MedRuleConvertFacade {
                 continue;
             }
             Integer num = 0;
-            List<String> baseIdList = Arrays.asList(entry.getKey().split("|"));
+            List<String> baseIdList = Arrays.asList(entry.getKey().split("\\|"));
             for (Long ruleId : entry.getValue()) {
                 retList.add(nestMap.get(ruleId).get(baseIdList.get(num++)));
                 if (num == baseIdList.size()) {
@@ -1276,7 +1303,7 @@ public class MedRuleConvertFacade {
                     billMsg = MsgUtil.getCommonOtherMsg(TypeEnum.transfusion.getName(), content, lisResult.getRuleMsg(), ConEnum.disease.getName(), null);
                 } else if (ListUtil.isNotEmpty(operationResults)) {
                     ResultRule operationResult = operationResults.get(0);
-                    content +=  ",已开" + operationResult.getRuleBaseHisName();
+                    content += ",已开" + operationResult.getRuleBaseHisName();
                     billMsg = MsgUtil.getCommonOtherMsg(TypeEnum.transfusion.getName(), content, lisResult.getRuleMsg(), ConEnum.operations.getName(), null);
                 } else {
                     billMsg = MsgUtil.getCommonOtherMsg(TypeEnum.transfusion.getName(), content, lisResult.getRuleMsg(), ConEnum.lis.getName(), null);
@@ -1286,6 +1313,348 @@ public class MedRuleConvertFacade {
         return billMsg;
     }
 
+    /**
+     * 模拟提示信息
+     *
+     * @param list
+     * @return
+     */
+    public BillMsg getBillMsg_inner(List<ResultRule> list) {
+        BillMsg billMsg = new BillMsg();
+        if (list.size() == 1) {
+            ResultRule resultRule = list.get(0);
+            String orderType = getOrderType(resultRule.getRuleLibTypeName());
+            String conType = "";
+            if (StringUtil.isNotBlank(resultRule.getRuleBaseLibTypeName())) {
+                conType = getConType(resultRule.getRuleBaseLibTypeName(), resultRule.getRuleType(), resultRule.getRuleBaseType());
+            }
+            //开单合理性
+            if (resultRule.getRuleType().equals(1)) {
+                if (resultRule.getHasSubCond() != null && resultRule.getHasSubCond().equals(1)) {
+                    if (resultRule.getRuleBaseLibType().equals(LexiconEnum.Disease.getKey())) {
+                        //禁忌疾病
+                        billMsg = MsgUtil.getCommonBillMsg(resultRule.getRuleLibName(),
+                                resultRule.getRuleLibName(),
+                                resultRule.getRuleBaseLibName(),
+                                conType,
+                                orderType);
+                    } else if (resultRule.getRuleBaseLibType().equals(LexiconEnum.Medicine.getKey())) {
+                        //禁忌服用药品
+                        if (resultRule.getRuleBaseType().equals(RuleBaseTypeEnum.Eq.getKey())) {
+                            billMsg = MsgUtil.getCommonBillMsg(resultRule.getRuleLibName(),
+                                    resultRule.getRuleLibName(),
+                                    resultRule.getRuleBaseLibName(),
+                                    conType,
+                                    orderType);
+                        } else if (resultRule.getRuleBaseType().equals(RuleBaseTypeEnum.Allergen.getKey())) {
+                            billMsg = MsgUtil.getCommonBillMsg(resultRule.getRuleLibName(),
+                                    resultRule.getRuleLibName(),
+                                    resultRule.getRuleBaseLibName(),
+                                    conType,
+                                    orderType);
+                        }
+                    } else if (resultRule.getRuleBaseLibType().equals(LexiconEnum.Symptom.getKey())) {
+                        //禁忌症状
+                        billMsg = MsgUtil.getCommonBillMsg(resultRule.getRuleLibName(),
+                                resultRule.getRuleLibName(),
+                                resultRule.getRuleBaseLibName(),
+                                conType,
+                                orderType);
+                    } else if (resultRule.getRuleBaseLibType().equals(LexiconEnum.Vital.getKey())) {
+                        String content = resultRule.getRuleBaseLibName();
+                        if (StringUtil.isNotBlank(resultRule.getRuleBaseInputValue())) {
+                            content += trimZero(resultRule.getRuleBaseInputValue());
+                        }
+                        billMsg = MsgUtil.getCommonBillMsg(resultRule.getRuleLibName(),
+                                resultRule.getRuleLibName(),
+                                content,
+                                conType,
+                                orderType);
+                    } else if (resultRule.getRuleBaseLibType().equals(LexiconEnum.VitalResult.getKey())) {
+                        billMsg = MsgUtil.getCommonBillMsg(resultRule.getRuleLibName(),
+                                resultRule.getRuleLibName(),
+                                resultRule.getRuleBaseLibName(),
+                                conType,
+                                orderType);
+                    } else if (resultRule.getRuleBaseLibType().equals(LexiconEnum.Operation.getKey())) {
+                        //禁忌手术
+                        billMsg = MsgUtil.getCommonBillMsg(resultRule.getRuleLibName(),
+                                resultRule.getRuleLibName(),
+                                resultRule.getRuleBaseLibName(),
+                                conType,
+                                orderType);
+                    } else if (resultRule.getRuleBaseLibType().equals(LexiconEnum.LisSubName.getKey())) {
+                        //禁忌实验室检查
+                        String content = resultRule.getRuleBaseLibName();
+                        if (StringUtil.isNotBlank(resultRule.getRuleBaseInputValue())) {
+                            content += trimZero(resultRule.getRuleBaseInputValue());
+                        }
+                        billMsg = MsgUtil.getCommonBillMsg(resultRule.getRuleLibName(),
+                                resultRule.getRuleLibName(),
+                                content,
+                                conType,
+                                orderType);
+                    } else if (resultRule.getRuleBaseLibType().equals(LexiconEnum.PacsName.getKey())) {
+                        //互斥项
+                        if (resultRule.getRuleBaseType().equals(RuleBaseTypeEnum.BillItem.getKey())) {
+                            billMsg = MsgUtil.getCommonBillMsg(resultRule.getRuleLibName(),
+                                    resultRule.getRuleLibName(),
+                                    resultRule.getRuleBaseLibName(),
+                                    conType,
+                                    orderType);
+                        }
+                    } else if (resultRule.getRuleBaseLibType().equals(LexiconEnum.PacsResult.getKey())) {
+                        //禁忌辅助检查结果
+                        billMsg = MsgUtil.getCommonBillMsg(resultRule.getRuleLibName(),
+                                resultRule.getRuleLibName(),
+                                resultRule.getRuleBaseLibName(),
+                                conType,
+                                orderType);
+                    } else if (resultRule.getRuleBaseLibType().equals(LexiconEnum.Gender.getKey())) {
+                        //禁忌性别
+                        billMsg = MsgUtil.getCommonBillMsg(resultRule.getRuleLibName(),
+                                resultRule.getRuleLibName(),
+                                resultRule.getRuleBaseLibName(),
+                                conType,
+                                orderType);
+                    } else if (resultRule.getRuleBaseLibType().equals(LexiconEnum.Group.getKey())) {
+                        //禁忌禁忌人群
+                        billMsg = MsgUtil.getCommonBillMsg(resultRule.getRuleLibName(),
+                                resultRule.getRuleLibName(),
+                                resultRule.getRuleBaseLibName(),
+                                conType,
+                                orderType);
+                    } else if (resultRule.getRuleBaseLibType().equals(LexiconEnum.Allergen.getKey())) {
+                        //其他过敏原
+                        billMsg = MsgUtil.getCommonBillMsg(resultRule.getRuleLibName(),
+                                resultRule.getRuleLibName(),
+                                resultRule.getRuleBaseLibName(),
+                                conType,
+                                orderType);
+                    } else if (resultRule.getRuleBaseLibType().equals(LexiconEnum.Device.getKey())) {
+                        //禁忌医疗器械及物品提示信息
+                        billMsg = MsgUtil.getCommonBillMsg(resultRule.getRuleLibName(),
+                                resultRule.getRuleLibName(),
+                                resultRule.getRuleBaseLibName(),
+                                conType,
+                                orderType);
+                    } else if (resultRule.getRuleBaseLibType().equals(LexiconEnum.Age.getKey())) {
+                        //年龄
+                        String content = resultRule.getRuleBaseLibName();
+                        if (StringUtil.isNotBlank(resultRule.getRuleBaseInputValue())) {
+                            content += trimZero(resultRule.getRuleBaseInputValue());
+                        }
+                        billMsg = MsgUtil.getCommonBillMsg(resultRule.getRuleLibName(),
+                                resultRule.getRuleLibName(),
+                                content,
+                                conType,
+                                orderType);
+                    } else {
+                        //通用
+                        String content = resultRule.getRuleBaseLibName();
+                        if (StringUtil.isNotBlank(resultRule.getRuleBaseInputValue())) {
+                            content += trimZero(resultRule.getRuleBaseInputValue());
+                        }
+                        billMsg = MsgUtil.getCommonBillMsg(resultRule.getRuleLibName(),
+                                resultRule.getRuleLibName(),
+                                content,
+                                conType,
+                                orderType);
+                    }
+                }
+            } else if (resultRule.getRuleType().equals(2)) {
+                if (resultRule.getHasSubCond() != null && resultRule.getHasSubCond().equals(1)) {
+                    if (resultRule.getRuleBaseLibType().equals(LexiconEnum.Disease.getKey())) {
+                        billMsg = MsgUtil.getCommonHighRiskMsg(resultRule.getRuleBaseLibName(), resultRule.getRuleLibName(), orderType);
+                    } else if (resultRule.getRuleBaseLibType().equals(LexiconEnum.Form.getKey())) {
+                        billMsg = MsgUtil.getCommonHighRiskMsg(resultRule.getReferenceValue(), resultRule.getRuleLibName(), orderType);
+                    } else if (resultRule.getRuleBaseLibType().equals(LexiconEnum.Vital.getKey())) {
+                        String content = "";
+                        if (resultRule.getRuleBaseLibName().equals("收缩压")) {
+                            content = "血压" + resultRule.getRuleBaseInputValue() + "/80";
+                        } else if (resultRule.getRuleBaseLibName().equals("舒张压")) {
+                            content = "血压120/" + resultRule.getRuleBaseInputValue();
+                        } else {
+                            content = resultRule.getRuleBaseLibName();
+                            if (StringUtil.isNotBlank(resultRule.getRuleBaseInputValue())) {
+                                content += trimZero(resultRule.getRuleBaseInputValue());
+                            }
+                        }
+                        billMsg = MsgUtil.getCommonHighRiskMsg(content, resultRule.getRuleLibName(), orderType);
+                    } else if (resultRule.getRuleBaseLibType().equals(LexiconEnum.VitalResult.getKey())) {
+                        billMsg = MsgUtil.getCommonHighRiskMsg(resultRule.getRuleBaseLibName(), resultRule.getRuleLibName(), orderType);
+                    } else if (resultRule.getRuleBaseLibType().equals(LexiconEnum.LisSubName.getKey())) {
+                        String content = "";
+                        if (StringUtil.isNotBlank(resultRule.getRuleBaseLibName())) {
+                            content += resultRule.getRuleBaseLibName();
+                        }
+                        if (StringUtil.isNotBlank(resultRule.getRuleBaseInputValue())) {
+                            content += trimZero(resultRule.getRuleBaseInputValue());
+                        }
+                        billMsg = MsgUtil.getCommonHighRiskMsg(content, resultRule.getRuleLibName(), orderType);
+                    } else if (resultRule.getRuleBaseLibType().equals(LexiconEnum.PacsResult.getKey())) {
+                        billMsg = MsgUtil.getCommonHighRiskMsg(resultRule.getRuleBaseLibName(), resultRule.getRuleLibName(), orderType);
+                    } else if (resultRule.getRuleBaseLibType().equals(LexiconEnum.Age.getKey())) {
+                        String content = resultRule.getRuleBaseLibName() + ":";
+                        if (StringUtil.isNotBlank(resultRule.getRuleBaseInputValue())) {
+                            content += trimZero(resultRule.getRuleBaseInputValue());
+                        }
+                        billMsg = MsgUtil.getCommonHighRiskMsg(content, resultRule.getRuleLibName(), orderType);
+                    } else {
+                        billMsg = MsgUtil.getCommonHighRiskMsg(resultRule.getRuleBaseLibName(), resultRule.getRuleLibName(), orderType);
+                    }
+                } else {
+                    billMsg = MsgUtil.getCommonHighRiskMsg("", resultRule.getRuleLibName(), orderType);
+                }
+            } else if (resultRule.getRuleType().equals(3)) {
+                if (resultRule.getRuleLibType().equals(LexiconEnum.LisSubName.getKey())) {
+                    String content = "";
+                    if (StringUtil.isNotBlank(resultRule.getRuleBaseLibName())) {
+                        content += resultRule.getRuleBaseLibName();
+                    }
+                    if (StringUtil.isNotBlank(resultRule.getRuleBaseInputValue())) {
+                        content += trimZero(resultRule.getRuleBaseInputValue());
+                    }
+                    billMsg = MsgUtil.getCommonCriticalMsg(content, orderType);
+                } else if (resultRule.getRuleLibType().equals(LexiconEnum.PacsResult.getKey())) {
+                    billMsg = MsgUtil.getCommonCriticalMsg(resultRule.getRuleLibName(), orderType);
+                }
+            } else if (resultRule.getRuleType().equals(4)) {
+                if (resultRule.getRuleLibType().equals(LexiconEnum.LisSubName.getKey())) {
+                    Lis lis = new Lis();
+                    lis.setUniqueName(resultRule.getRuleLibName());
+
+                    if (resultRule.getRuleBaseLibType().equals(LexiconEnum.LisSubName.getKey())) {
+                        String content = resultRule.getRuleLibName();
+                        if (StringUtil.isNotBlank(resultRule.getRuleBaseInputValue())) {
+                            content += trimZero(resultRule.getRuleBaseInputValue());
+                        }
+                        billMsg = MsgUtil.getCommonOtherMsg(orderType, content, resultRule.getRuleLibName(), conType, lis);
+                    } else if (resultRule.getRuleBaseLibType().equals(LexiconEnum.Group.getKey())) {
+                        billMsg = MsgUtil.getCommonOtherMsg(orderType, resultRule.getRuleBaseLibName(), resultRule.getRuleLibName(), ConEnum.group.getName(), lis);
+                    }
+                } else if (resultRule.getRuleLibType().equals(LexiconEnum.PacsResult.getKey())) {
+                    if (resultRule.getRuleBaseLibType().equals(LexiconEnum.PacsResult.getKey())) {
+                        if (resultRule.getRuleBaseType() != null && resultRule.getRuleBaseType().equals(RuleBaseTypeEnum.Eq.getKey())) {
+                            billMsg = MsgUtil.getCommonOtherMsg(orderType, resultRule.getExpectedOutput(), resultRule.getRuleLibName(), conType, null);
+                        } else if (resultRule.getRuleBaseType() != null && resultRule.getRuleBaseType().equals(RuleBaseTypeEnum.Ne.getKey())) {
+                            billMsg = MsgUtil.getCommonOtherMsg(orderType, resultRule.getExpectedOutput(), resultRule.getRuleLibName(), conType, null);
+                        }
+                    } else if (resultRule.getRuleBaseLibType().equals(LexiconEnum.Gender.getKey())) {
+                        billMsg = MsgUtil.getCommonOtherMsg(orderType, resultRule.getExpectedOutput(), resultRule.getRuleLibName(), conType, null);
+                    } else if (resultRule.getRuleBaseLibType().equals(LexiconEnum.Group.getKey())) {
+                        billMsg = MsgUtil.getCommonOtherMsg(orderType, resultRule.getExpectedOutput(), resultRule.getRuleLibName(), conType, null);
+                    } else if (resultRule.getRuleBaseLibType().equals(LexiconEnum.Age.getKey())) {
+                        billMsg = MsgUtil.getCommonOtherMsg(orderType, resultRule.getExpectedOutput(), resultRule.getRuleLibName(), conType, null);
+                    }
+                }
+            } else if (resultRule.getRuleType().equals(5)) {
+                if (resultRule.getRuleBaseLibType().equals(LexiconEnum.LisSubName.getKey())) {
+                    String content = "";
+                    content += resultRule.getRuleLibName();
+                    if (StringUtil.isNotBlank(resultRule.getRuleBaseInputValue())) {
+                        content += trimZero(resultRule.getRuleBaseInputValue());
+                    }
+                    billMsg = MsgUtil.getCommonOtherMsg(TypeEnum.transfusion.getName(), content, resultRule.getRuleMsg(), ConEnum.lis.getName(), null);
+                }
+            } else if (resultRule.getRuleType().equals(6)) {
+                billMsg = MsgUtil.getCommonBillMsg(resultRule.getRuleLibName(), resultRule.getRuleLibName(), resultRule.getRuleBaseLibName(), conType, orderType);
+            }
+        } else if (list.size() > 1) {
+            Integer ruleType = list.get(0).getRuleType();
+            Integer ruleLibType = list.get(0).getRuleLibType();
+            String orderType = getOrderType(list.get(0).getRuleLibTypeName());
+            if (ruleType.equals(3)) {
+                //检验危急值
+                if (ruleLibType.equals(LexiconEnum.LisSubName.getKey())) {
+                    ResultRule resultRule = list.stream()
+                            .filter(i -> i.getRuleBaseLibType().equals(LexiconEnum.LisSubName.getKey()))
+                            .collect(Collectors.toList())
+                            .get(0);
+                    String content = "";
+                    if (StringUtil.isNotBlank(resultRule.getRuleBaseLibName())) {
+                        content += resultRule.getRuleBaseLibName();
+                    }
+                    if (StringUtil.isNotBlank(resultRule.getRuleBaseInputValue())) {
+                        content += trimZero(resultRule.getRuleBaseInputValue());
+                    }
+                    billMsg = MsgUtil.getCommonCriticalMsg(content, orderType);
+                }
+            } else if (ruleType.equals(4)) {
+                //检验其他值
+                if (ruleLibType.equals(LexiconEnum.LisSubName.getKey())) {
+                    Lis lis = new Lis();
+                    lis.setUniqueName(list.get(0).getRuleLibName());
+
+                    ResultRule lisResult = list.stream()
+                            .filter(i -> i.getRuleBaseLibType().equals(LexiconEnum.LisSubName.getKey()))
+                            .collect(Collectors.toList())
+                            .get(0);
+                    List<ResultRule> diseaseResults = list.stream()
+                            .filter(i -> i.getRuleBaseLibType().equals(LexiconEnum.Disease.getKey()))
+                            .collect(Collectors.toList());
+                    List<ResultRule> operationResults = list.stream()
+                            .filter(i -> i.getRuleBaseLibType().equals(LexiconEnum.Operation.getKey()))
+                            .collect(Collectors.toList());
+                    List<ResultRule> medicineResults = list.stream()
+                            .filter(i -> i.getRuleBaseLibType().equals(LexiconEnum.Medicine.getKey()))
+                            .collect(Collectors.toList());
+                    List<ResultRule> groupResults = list.stream()
+                            .filter(i -> i.getRuleBaseLibType().equals(LexiconEnum.Group.getKey()))
+                            .collect(Collectors.toList());
+
+                    String content = lisResult.getRuleLibName();
+                    if (StringUtil.isNotBlank(lisResult.getRuleBaseInputValue())) {
+                        content += trimZero(lisResult.getRuleBaseInputValue());
+                    }
+
+                    if (ListUtil.isNotEmpty(diseaseResults)) {
+                        billMsg = MsgUtil.getCommonOtherMsg(orderType, content, diseaseResults.get(0).getRuleBaseLibName(), TypeEnum.disease.getName(), lis);
+                    } else if (ListUtil.isNotEmpty(operationResults)) {
+                        billMsg = MsgUtil.getCommonOtherMsg(orderType, content, operationResults.get(0).getRuleBaseLibName(), TypeEnum.operation.getName(), lis);
+                    } else if (ListUtil.isNotEmpty(medicineResults)) {
+                        billMsg = MsgUtil.getCommonOtherMsg(orderType, content, medicineResults.get(0).getRuleBaseLibName(), TypeEnum.drug.getName(), lis);
+                    } else if (ListUtil.isNotEmpty(groupResults)) {
+                        billMsg = MsgUtil.getCommonOtherMsg(orderType, content, groupResults.get(0).getRuleBaseLibName(), ConEnum.group.getName(), lis);
+                    } else {
+                        billMsg = MsgUtil.getCommonOtherMsg(orderType, content, "", ConEnum.lis.getName(), lis);
+                    }
+                } else if (ruleLibType.equals(LexiconEnum.PacsResult.getKey())) {
+                    billMsg = MsgUtil.getCommonOtherMsg(orderType, list.get(0).getExpectedOutput(), "", "", null);
+                }
+            } else if (ruleType.equals(5)) {
+                ResultRule lisResult = list.stream()
+                        .filter(i -> i.getRuleBaseLibType().equals(LexiconEnum.LisSubName.getKey()))
+                        .collect(Collectors.toList())
+                        .get(0);
+                List<ResultRule> diseaseResults = list.stream()
+                        .filter(i -> i.getRuleBaseLibType().equals(LexiconEnum.Disease.getKey()))
+                        .collect(Collectors.toList());
+                List<ResultRule> operationResults = list.stream()
+                        .filter(i -> i.getRuleBaseLibType().equals(LexiconEnum.Operation.getKey()))
+                        .collect(Collectors.toList());
+                String content = lisResult.getRuleLibName();
+                if (StringUtil.isNotBlank(lisResult.getRuleBaseInputValue())) {
+                    content += trimZero(lisResult.getRuleBaseInputValue());
+                }
+
+                if (ListUtil.isNotEmpty(diseaseResults)) {
+                    ResultRule diseaseResult = diseaseResults.get(0);
+                    content = "诊断" + diseaseResult.getRuleBaseLibName() + "," + content;
+                    billMsg = MsgUtil.getCommonOtherMsg(TypeEnum.transfusion.getName(), content, lisResult.getRuleMsg(), ConEnum.disease.getName(), null);
+                } else if (ListUtil.isNotEmpty(operationResults)) {
+                    ResultRule operationResult = operationResults.get(0);
+                    content += ",已开" + operationResult.getRuleBaseLibName();
+                    billMsg = MsgUtil.getCommonOtherMsg(TypeEnum.transfusion.getName(), content, lisResult.getRuleMsg(), ConEnum.operations.getName(), null);
+                } else {
+                    billMsg = MsgUtil.getCommonOtherMsg(TypeEnum.transfusion.getName(), content, lisResult.getRuleMsg(), ConEnum.lis.getName(), null);
+                }
+            }
+        }
+        return billMsg;
+    }
+
+
     /**
      * 生成随机数
      *
@@ -1331,8 +1700,16 @@ public class MedRuleConvertFacade {
         Integer random_int = random.nextInt(max - min) + min;
 
         //是否包含边界值
-        if (!minBoundary || maxBoundary) {
-            random_int++;
+        if (!minBoundary) {
+            if (maxBoundary) {
+                //左开右闭
+                random_int++;
+            } else {
+                //左开右开
+                if (random_int + 1 < max) {
+                    random_int++;
+                }
+            }
         }
         return random_int;
     }

+ 109 - 32
cdssman-service/src/main/java/com/diagbot/facade/MedSearchDataFacade.java

@@ -32,11 +32,12 @@ public class MedSearchDataFacade {
      * @param list
      * @return
      */
-    public IndicationPushVO createBillVO(List<ResultRule> list) {
+    public IndicationPushVO createBillVO(List<ResultRule> list, Long hospitalId) {
         IndicationPushVO indicationPushVO = new IndicationPushVO();
+        indicationPushVO.setHospitalId(hospitalId);
         indicationPushVO.setAge("20");
         indicationPushVO.setSex(3);
-        Integer ruleType=list.get(0).getRuleType();
+        Integer ruleType = list.get(0).getRuleType();
         switch (ruleType) {
             case 1:
             case 6:
@@ -67,29 +68,49 @@ public class MedSearchDataFacade {
             if (result.getRuleType().equals(1)) {
                 if (result.getRuleLibType().equals(LexiconEnum.Medicine.getKey())) {
                     Drug drug = new Drug();
-                    drug.setName(result.getRuleHisName());
+                    if (hospitalId < 0) {
+                        drug.setName(result.getRuleLibName());
+                    } else {
+                        drug.setName(result.getRuleHisName());
+                    }
                     drug.setUniqueName(result.getRuleLibName());
                     indicationPushVO.getDrugOrder().add(drug);
                 } else if (result.getRuleLibType().equals(LexiconEnum.Operation.getKey())) {
                     Item operation = new Item();
-                    operation.setName(result.getRuleHisName());
+                    if (hospitalId < 0) {
+                        operation.setName(result.getRuleLibName());
+                    } else {
+                        operation.setName(result.getRuleHisName());
+                    }
                     operation.setUniqueName(result.getRuleLibName());
                     indicationPushVO.getOperationOrder().add(operation);
                 } else if (result.getRuleLibType().equals(LexiconEnum.LisName.getKey())) {
                     //检验开单项
                     Lis lis = new Lis();
-                    lis.setName(result.getRuleHisName());
+                    if (hospitalId < 0) {
+                        lis.setName(result.getRuleLibName());
+                    } else {
+                        lis.setName(result.getRuleHisName());
+                    }
                     lis.setUniqueName(result.getRuleLibName());
                     indicationPushVO.getLisOrder().add(lis);
                 } else if (result.getRuleLibType().equals(LexiconEnum.PacsName.getKey())
                         || result.getRuleLibType().equals(LexiconEnum.PacsSubName.getKey())) {
                     Pacs pacs = new Pacs();
-                    pacs.setName(result.getRuleHisName());
+                    if (hospitalId < 0) {
+                        pacs.setName(result.getRuleLibName());
+                    } else {
+                        pacs.setName(result.getRuleHisName());
+                    }
                     pacs.setUniqueName(result.getRuleLibName());
                     indicationPushVO.getPacsOrder().add(pacs);
                 } else if (result.getRuleLibType().equals(LexiconEnum.Transfusion.getKey())) {
                     ItemExt itemExt = new ItemExt();
-                    itemExt.setName(result.getRuleHisName());
+                    if (hospitalId < 0) {
+                        itemExt.setName(result.getRuleLibName());
+                    } else {
+                        itemExt.setName(result.getRuleHisName());
+                    }
                     itemExt.setUniqueName(result.getRuleLibName());
                     indicationPushVO.getTransfusionOrder().add(itemExt);
                 }
@@ -97,13 +118,21 @@ public class MedSearchDataFacade {
                 //高危
                 if (result.getRuleLibType().equals(LexiconEnum.Medicine.getKey())) {
                     Drug drug = new Drug();
-                    drug.setName(result.getRuleHisName());
+                    if (hospitalId < 0) {
+                        drug.setName(result.getRuleLibName());
+                    } else {
+                        drug.setName(result.getRuleHisName());
+                    }
                     drug.setUniqueName(result.getRuleLibName());
                     drug.setForm(result.getRuleBaseLibName());
                     indicationPushVO.getDrugOrder().add(drug);
                 } else if (result.getRuleLibType().equals(LexiconEnum.Operation.getKey())) {
                     Item operation = new Item();
-                    operation.setName(result.getRuleHisName());
+                    if (hospitalId < 0) {
+                        operation.setName(result.getRuleLibName());
+                    } else {
+                        operation.setName(result.getRuleHisName());
+                    }
                     operation.setUniqueName(result.getRuleLibName());
                     indicationPushVO.getOperationOrder().add(operation);
                 }
@@ -112,12 +141,19 @@ public class MedSearchDataFacade {
                 if (result.getRuleLibType().equals(LexiconEnum.LisSubName.getKey())) {
                     //检验开单项
                     Lis lis = new Lis();
-                    lis.setName(result.getRuleHisName());
-                    lis.setDetailName(result.getRuleHisDetailName());
+                    if (hospitalId < 0) {
+                        lis.setName(result.getRuleLibName());
+                        lis.setDetailName("");
+                    } else {
+                        lis.setName(result.getRuleHisName());
+                        lis.setDetailName(result.getRuleHisDetailName());
+                    }
                     lis.setUniqueName(result.getRuleLibName());
                     indicationPushVO.getLis().add(lis);
                 } else if (result.getRuleLibType().equals(LexiconEnum.PacsResult.getKey())) {
                     Pacs pacs = new Pacs();
+                    pacs.setName("胸部CT");
+                    pacs.setUniqueName("胸部CT");
                     pacs.setDesc(result.getRuleLibName());
                     pacs.setResult(result.getRuleLibName());
                     indicationPushVO.getPacs().add(pacs);
@@ -129,6 +165,8 @@ public class MedSearchDataFacade {
                 }
                 if (result.getRuleLibType().equals(LexiconEnum.PacsResult.getKey())) {
                     Pacs pacs = new Pacs();
+                    pacs.setName("胸部CT");
+                    pacs.setUniqueName("胸部CT");
                     String pacsResult = result.getRuleLibName();
                     /*if (result.getHasSubCond().equals(1)
                             && result.getRuleBaseLibType().equals(LexiconEnum.PacsResult.getKey())
@@ -149,7 +187,11 @@ public class MedSearchDataFacade {
                 if (result.getRuleLibType().equals(LexiconEnum.PacsName.getKey())
                         || result.getRuleLibType().equals(LexiconEnum.PacsSubName.getKey())) {
                     Pacs pacs = new Pacs();
-                    pacs.setName(result.getRuleHisName());
+                    if (hospitalId < 0) {
+                        pacs.setName(result.getRuleLibName());
+                    } else {
+                        pacs.setName(result.getRuleHisName());
+                    }
                     pacs.setUniqueName(result.getRuleLibName());
                     pacs.setDateValue(now);
                     indicationPushVO.getPacsOrder().add(pacs);
@@ -161,21 +203,33 @@ public class MedSearchDataFacade {
                 if (result.getRuleBaseLibType().equals(LexiconEnum.Disease.getKey())) {
                     if (result.getRuleBaseType().equals(RuleBaseTypeEnum.Eq.getKey())) {
                         Item diag = new Item();
-                        diag.setName(result.getRuleBaseHisName());
+                        if (hospitalId < 0) {
+                            diag.setName(result.getRuleBaseLibName());
+                        } else {
+                            diag.setName(result.getRuleBaseHisName());
+                        }
                         diag.setUniqueName(result.getRuleBaseLibName());
                         indicationPushVO.getDiag().add(diag);
                     }
                 } else if (result.getRuleBaseLibType().equals(LexiconEnum.Medicine.getKey())) {
                     if (result.getRuleBaseType().equals(RuleBaseTypeEnum.Eq.getKey())) {
-                        indicationPushVO.setSymptom(indicationPushVO.getSymptom() +
-                                (StringUtil.isNotBlank(result.getRuleBaseHisName())
-                                        ? ("一直服用" + result.getRuleBaseHisName() + ",")
-                                        : ""));
+                        if (hospitalId < 0) {
+                            indicationPushVO.setSymptom(indicationPushVO.getSymptom() + "一直服用“" + result.getRuleBaseLibName() + "”,");
+                        } else {
+                            indicationPushVO.setSymptom(indicationPushVO.getSymptom() +
+                                    (StringUtil.isNotBlank(result.getRuleBaseHisName())
+                                            ? ("一直服用“" + result.getRuleBaseHisName() + "”,")
+                                            : ""));
+                        }
                     } else if (result.getRuleBaseType().equals(RuleBaseTypeEnum.Allergen.getKey())) {
-                        indicationPushVO.setPasts(indicationPushVO.getPasts() +
-                                (StringUtil.isNotBlank(result.getRuleBaseHisName())
-                                        ? ("对" + result.getRuleBaseHisName() + "过敏,")
-                                        : ""));
+                        if (hospitalId < 0) {
+                            indicationPushVO.setPasts(indicationPushVO.getPasts() + "对“" + result.getRuleBaseLibName() + "”过敏,");
+                        } else {
+                            indicationPushVO.setPasts(indicationPushVO.getPasts() +
+                                    (StringUtil.isNotBlank(result.getRuleBaseHisName())
+                                            ? ("对“" + result.getRuleBaseHisName() + "”过敏,")
+                                            : ""));
+                        }
                     }
                 } else if (result.getRuleBaseLibType().equals(LexiconEnum.Symptom.getKey())) {
                     if (result.getRuleBaseType().equals(RuleBaseTypeEnum.Eq.getKey())) {
@@ -194,15 +248,24 @@ public class MedSearchDataFacade {
                 } else if (result.getRuleBaseLibType().equals(LexiconEnum.Operation.getKey())) {
                     if (result.getRuleBaseType().equals(RuleBaseTypeEnum.Eq.getKey())) {
                         Item operation = new Item();
-                        operation.setName(result.getRuleBaseHisName());
+                        if (hospitalId < 0) {
+                            operation.setName(result.getRuleBaseLibName());
+                        } else {
+                            operation.setName(result.getRuleBaseHisName());
+                        }
                         operation.setUniqueName(result.getRuleBaseLibName());
                         indicationPushVO.getOperation().add(operation);
                     }
                 } else if (result.getRuleBaseLibType().equals(LexiconEnum.LisSubName.getKey())) {
                     if (result.getRuleBaseType().equals(RuleBaseTypeEnum.Compare.getKey())) {
                         Lis lis = new Lis();
-                        lis.setName(result.getRuleBaseHisName());
-                        lis.setDetailName(result.getRuleBaseHisDetailName());
+                        if (hospitalId < 0) {
+                            lis.setName(result.getRuleBaseLibName());
+                            lis.setDetailName("");
+                        } else {
+                            lis.setName(result.getRuleBaseHisName());
+                            lis.setDetailName(result.getRuleBaseHisDetailName());
+                        }
                         lis.setUniqueName(result.getRuleBaseLibName());
                         lis.setUnits(result.getRuleBaseUnit());
                         Pattern pattern = Pattern.compile("^\\d+(\\.\\d+)?$");
@@ -226,12 +289,20 @@ public class MedSearchDataFacade {
                         || result.getRuleBaseLibType().equals(LexiconEnum.PacsSubName.getKey())) {
                     if (result.getRuleBaseType().equals(RuleBaseTypeEnum.BillItem.getKey())) {
                         Pacs pacs = new Pacs();
-                        pacs.setName(result.getRuleBaseHisName());
+                        if (hospitalId < 0) {
+                            pacs.setName(result.getRuleBaseLibName());
+                        } else {
+                            pacs.setName(result.getRuleBaseHisName());
+                        }
                         pacs.setUniqueName(result.getRuleBaseLibName());
                         indicationPushVO.getPacsOrder().add(pacs);
                     } else if (result.getRuleBaseType().equals(RuleBaseTypeEnum.Regex.getKey())) {
                         Pacs pacs = new Pacs();
-                        pacs.setName(result.getRuleBaseHisName());
+                        if (hospitalId < 0) {
+                            pacs.setName(result.getRuleBaseLibName());
+                        } else {
+                            pacs.setName(result.getRuleBaseHisName());
+                        }
                         pacs.setUniqueName(result.getRuleBaseLibName());
                         pacs.setDesc(result.getRuleBaseInputValue());
                         pacs.setResult(result.getRuleBaseInputValue());
@@ -241,6 +312,8 @@ public class MedSearchDataFacade {
                 } else if (result.getRuleBaseLibType().equals(LexiconEnum.PacsResult.getKey())) {
                     if (result.getRuleBaseType().equals(RuleBaseTypeEnum.Eq.getKey())) {
                         Pacs pacs = new Pacs();
+                        pacs.setName("胸部CT");
+                        pacs.setUniqueName("胸部CT");
                         pacs.setDesc(result.getRuleBaseLibName());
                         pacs.setResult(result.getRuleBaseLibName());
                         indicationPushVO.getPacs().add(pacs);
@@ -260,16 +333,20 @@ public class MedSearchDataFacade {
                     if (result.getRuleBaseType().equals(RuleBaseTypeEnum.Eq.getKey())) {
                         switch (result.getRuleBaseLibName()) {
                             case "新生儿":
-                                indicationPushVO.setAge(result.getRuleBaseInputValue());
+                                indicationPushVO.setAge(result.getRuleBaseInputValue()
+                                        + (StringUtil.isNotBlank(result.getRuleBaseUnit()) ? result.getRuleBaseUnit() : ""));
                                 break;
                             case "幼儿":
-                                indicationPushVO.setAge(result.getRuleBaseInputValue());
+                                indicationPushVO.setAge(result.getRuleBaseInputValue()
+                                        + (StringUtil.isNotBlank(result.getRuleBaseUnit()) ? result.getRuleBaseUnit() : ""));
                                 break;
                             case "儿童":
-                                indicationPushVO.setAge(result.getRuleBaseInputValue());
+                                indicationPushVO.setAge(result.getRuleBaseInputValue()
+                                        + (StringUtil.isNotBlank(result.getRuleBaseUnit()) ? result.getRuleBaseUnit() : ""));
                                 break;
                             case "成人":
-                                indicationPushVO.setAge(result.getRuleBaseInputValue());
+                                indicationPushVO.setAge(result.getRuleBaseInputValue()
+                                        + (StringUtil.isNotBlank(result.getRuleBaseUnit()) ? result.getRuleBaseUnit() : ""));
                                 break;
                             case "月经期":
                                 indicationPushVO.setSymptom(indicationPushVO.getSymptom() +
@@ -286,11 +363,11 @@ public class MedSearchDataFacade {
                     }
                 } else if (result.getRuleBaseLibType().equals(LexiconEnum.Allergen.getKey())) {
                     if (result.getRuleBaseType().equals(RuleBaseTypeEnum.Allergen.getKey())) {
-                        indicationPushVO.setPasts(indicationPushVO.getPasts() + "对" + result.getRuleBaseLibName() + "过敏,");
+                        indicationPushVO.setPasts(indicationPushVO.getPasts() + "对" + result.getRuleBaseLibName() + "过敏,");
                     }
                 } else if (result.getRuleBaseLibType().equals(LexiconEnum.Device.getKey())) {
                     if (result.getRuleBaseType().equals(RuleBaseTypeEnum.Eq.getKey())) {
-                        indicationPushVO.setPasts(indicationPushVO.getPasts() + "有" + result.getRuleBaseLibName() + ",");
+                        indicationPushVO.setPasts(indicationPushVO.getPasts() + "有" + result.getRuleBaseLibName() + ",");
                     }
                 } else if (result.getRuleBaseLibType().equals(LexiconEnum.Age.getKey())) {
                     if (result.getRuleBaseType().equals(RuleBaseTypeEnum.Compare.getKey())) {

+ 100 - 103
cdssman-service/src/main/java/com/diagbot/facade/ResultStaticKnowledgeFacade.java

@@ -1,4 +1,4 @@
-/*
+
 package com.diagbot.facade;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@@ -12,22 +12,21 @@ import com.diagbot.dto.RespDTO;
 import com.diagbot.entity.ConceptInfo;
 import com.diagbot.entity.DiseaseConfig;
 import com.diagbot.entity.DrugConfig;
+import com.diagbot.entity.KlConcept;
+import com.diagbot.entity.KlConceptStatic;
+import com.diagbot.entity.KlRelation;
 import com.diagbot.entity.LisConfig;
 import com.diagbot.entity.OperationConfig;
 import com.diagbot.entity.PacsConfig;
 import com.diagbot.entity.ResultStaticInfo;
 import com.diagbot.entity.ResultStaticKnowledge;
-import com.diagbot.entity.node.LisName;
-import com.diagbot.entity.node.PacsSubName;
-import com.diagbot.entity.relationship.LisNameLisSet;
-import com.diagbot.entity.relationship.PacsNamePacsSubName;
 import com.diagbot.enums.ConceptTypeEnum;
 import com.diagbot.enums.GraphLabelEnum;
 import com.diagbot.enums.IsDeleteEnum;
+import com.diagbot.enums.LexiconEnum;
+import com.diagbot.enums.StatusEnum;
 import com.diagbot.exception.CommonErrorCode;
 import com.diagbot.exception.CommonException;
-import com.diagbot.repository.LisNameRepository;
-import com.diagbot.repository.PacsSubNameRepository;
 import com.diagbot.service.ResultStaticInfoService;
 import com.diagbot.service.ResultStaticKnowledgeService;
 import com.diagbot.service.impl.ResultStaticKnowledgeServiceImpl;
@@ -52,15 +51,14 @@ import javax.servlet.http.HttpServletResponse;
 import java.util.Date;
 import java.util.List;
 import java.util.Map;
-import java.util.Set;
 import java.util.stream.Collectors;
 
-*/
+
 /**
  * @Description:
  * @Author:zhaops
  * @time: 2021/1/21 15:20
- *//*
+ */
 
 @Component
 public class ResultStaticKnowledgeFacade extends ResultStaticKnowledgeServiceImpl {
@@ -69,6 +67,13 @@ public class ResultStaticKnowledgeFacade extends ResultStaticKnowledgeServiceImp
     @Autowired
     private ConceptInfoFacade conceptInfoFacade;
 
+    @Autowired
+    private KlConceptFacade klConceptFacade;
+    @Autowired
+    private KlRelationFacade klRelationFacade;
+    @Autowired
+    private KlConceptStaticFacade klConceptStaticFacade;
+
     @Autowired
     private LisConfigFacade lisConfigFacade;
     @Autowired
@@ -80,17 +85,8 @@ public class ResultStaticKnowledgeFacade extends ResultStaticKnowledgeServiceImp
     @Autowired
     private OperationConfigFacade operationConfigFacade;
     @Autowired
-    private TransfusionConfigFacade transfusionConfigFacade;
-    @Autowired
-    private DictionaryFacade dictionaryFacade;
-    @Autowired
     private RunningInfoFacade runningInfoFacade;
 
-    @Autowired
-    private LisNameRepository lisNameRepository;
-    @Autowired
-    private PacsSubNameRepository pacsSubNameRepository;
-
     @Autowired
     @Qualifier("resultStaticKnowledgeServiceImpl")
     private ResultStaticKnowledgeService resultStaticKnowledgeService;
@@ -99,14 +95,13 @@ public class ResultStaticKnowledgeFacade extends ResultStaticKnowledgeServiceImp
     private ResultStaticInfoService resultStaticInfoService;
 
 
-    */
-/**
+    /**
      * 化验静态知识测试
      *
      * @param file
      * @param testVO
      * @return
-     *//*
+     */
 
     public Boolean lisTest(MultipartFile file, StaticKnowledgeTestVO testVO) {
         RunningInfoVO runningInfoVO = new RunningInfoVO();
@@ -257,32 +252,35 @@ public class ResultStaticKnowledgeFacade extends ResultStaticKnowledgeServiceImp
                     result.setHasStaticKnowledge(1);
                 } else {
                     //查找上级静态知识是否存在
-                    List<LisName> lisNameList = lisNameRepository.findByNameIs(result.getName());
-                    if (ListUtil.isEmpty(lisNameList)) {
+                    KlConcept lisSubName = klConceptFacade.getOne(new QueryWrapper<KlConcept>()
+                            .eq("is_deleted", IsDeleteEnum.N.getKey())
+                            .eq("lib_name", result.getName())
+                            .eq("lib_type", LexiconEnum.LisSubName.getKey()), false);
+                    if (lisSubName == null) {
                         result.setHasStaticKnowledge(0);
                         result.setMessage(result.getMessage() + "缺少静态知识;");
                     } else {
-                        lisNameList.forEach(lisName -> {
-                            Boolean isExist = false;
-                            Set<LisNameLisSet> lisNameLisSetSet = lisName.getLisNamelissets();
-                            if (lisNameLisSetSet != null && lisNameLisSetSet.size() > 0) {
-                                List<String> lisPacks = lisNameLisSetSet.stream().map(i -> i.getLisSet()).collect(Collectors.toList())
-                                        .stream().map(i -> i.getName()).sorted().collect(Collectors.toList());
-                                for (String lisPack : lisPacks) {
-                                    if (lisPackStaticNames.contains(lisPack)) {
-                                        isExist = true;
-                                        result.setMessage(result.getMessage() + "取上级(" + lisPack + ")静态知识;");
-                                        break;
-                                    }
-                                }
-                            }
-                            if (isExist) {
-                                result.setHasStaticKnowledge(1);
-                            } else {
+                        List<KlRelation> relations = klRelationFacade.list(new QueryWrapper<KlRelation>()
+                                .eq("is_deleted", IsDeleteEnum.N.getKey())
+                                .eq("end_id", lisSubName.getId())
+                                .eq("relation_id", 600));
+                        if (ListUtil.isNotEmpty(relations)) {
+                            KlConceptStatic staticInfo = klConceptStaticFacade.getOne(new QueryWrapper<KlConceptStatic>()
+                                    .eq("is_deleted", IsDeleteEnum.N.getKey())
+                                    .in("concept_id", relations.stream().map(i -> i.getStartId()).collect(Collectors.toList()))
+                                    .eq("status", StatusEnum.Enable.getKey()), false);
+                            if (staticInfo == null) {
                                 result.setHasStaticKnowledge(0);
                                 result.setMessage(result.getMessage() + "缺少静态知识;");
+                            } else {
+                                KlConcept lisName = klConceptFacade.getById(staticInfo.getConceptId());
+                                result.setHasStaticKnowledge(1);
+                                result.setMessage(result.getMessage() + "取上级(" + lisName.getLibName() + ")静态知识;");
                             }
-                        });
+                        } else {
+                            result.setHasStaticKnowledge(0);
+                            result.setMessage(result.getMessage() + "缺少静态知识;");
+                        }
                     }
                 }
             }
@@ -294,14 +292,14 @@ public class ResultStaticKnowledgeFacade extends ResultStaticKnowledgeServiceImp
         return true;
     }
 
-    */
-/**
+
+    /**
      * 辅检静态知识测试
      *
      * @param file
      * @param testVO
      * @return
-     *//*
+     */
 
     public Boolean pacsTest(MultipartFile file, StaticKnowledgeTestVO testVO) {
         RunningInfoVO runningInfoVO = new RunningInfoVO();
@@ -349,12 +347,11 @@ public class ResultStaticKnowledgeFacade extends ResultStaticKnowledgeServiceImp
         }
 
         //重复数据过滤
-        */
-/*pacsConfigList = pacsConfigList
+        /*pacsConfigList = pacsConfigList
                 .stream()
                 .distinct()
-                .collect(Collectors.toList());
-*//*
+                .collect(Collectors.toList());*/
+
 
         // 已存在数据
         Map<String, Map<String, List<Long>>> hisConfigMap = pacsConfigFacade.getConfigMap(Long.valueOf(hospitalId), null, null);
@@ -445,32 +442,35 @@ public class ResultStaticKnowledgeFacade extends ResultStaticKnowledgeServiceImp
                     result.setHasStaticKnowledge(1);
                 } else {
                     //查找上级静态知识是否存在
-                    List<PacsSubName> pacsSubNameList = pacsSubNameRepository.findByNameIs(result.getName());
-                    if (ListUtil.isEmpty(pacsSubNameList)) {
+                    KlConcept pacsSubName = klConceptFacade.getOne(new QueryWrapper<KlConcept>()
+                            .eq("is_deleted", IsDeleteEnum.N.getKey())
+                            .eq("lib_name", result.getName())
+                            .eq("lib_type", LexiconEnum.PacsSubName.getKey()), false);
+                    if (pacsSubName == null) {
                         result.setHasStaticKnowledge(0);
                         result.setMessage(result.getMessage() + "缺少静态知识;");
                     } else {
-                        pacsSubNameList.forEach(pacsSubName -> {
-                            Boolean isExist = false;
-                            Set<PacsNamePacsSubName> pacsNamePacsSubNameSet = pacsSubName.getPacsNamePacsSubNames();
-                            if (pacsNamePacsSubNameSet != null && pacsNamePacsSubNameSet.size() > 0) {
-                                List<String> pacsNames = pacsNamePacsSubNameSet.stream().map(i -> i.getPacsName()).collect(Collectors.toList())
-                                        .stream().map(i -> i.getName()).sorted().collect(Collectors.toList());
-                                for (String pacsName : pacsNames) {
-                                    if (pacsStaticNames.contains(pacsName)) {
-                                        isExist = true;
-                                        result.setMessage(result.getMessage() + "取上级(" + pacsName + ")静态知识;");
-                                        break;
-                                    }
-                                }
-                            }
-                            if (isExist) {
-                                result.setHasStaticKnowledge(1);
-                            } else {
+                        List<KlRelation> relations = klRelationFacade.list(new QueryWrapper<KlRelation>()
+                                .eq("is_deleted", IsDeleteEnum.N.getKey())
+                                .eq("end_id", pacsSubName.getId())
+                                .eq("relation_id", 600));
+                        if (ListUtil.isNotEmpty(relations)) {
+                            KlConceptStatic staticInfo = klConceptStaticFacade.getOne(new QueryWrapper<KlConceptStatic>()
+                                    .eq("is_deleted", IsDeleteEnum.N.getKey())
+                                    .in("concept_id", relations.stream().map(i -> i.getStartId()).collect(Collectors.toList()))
+                                    .eq("status", StatusEnum.Enable.getKey()), false);
+                            if (staticInfo == null) {
                                 result.setHasStaticKnowledge(0);
                                 result.setMessage(result.getMessage() + "缺少静态知识;");
+                            } else {
+                                KlConcept pacsName = klConceptFacade.getById(staticInfo.getConceptId());
+                                result.setHasStaticKnowledge(1);
+                                result.setMessage(result.getMessage() + "取上级(" + pacsName.getLibName() + ")静态知识;");
                             }
-                        });
+                        } else {
+                            result.setHasStaticKnowledge(0);
+                            result.setMessage(result.getMessage() + "缺少静态知识;");
+                        }
                     }
                 }
             }
@@ -482,14 +482,14 @@ public class ResultStaticKnowledgeFacade extends ResultStaticKnowledgeServiceImp
         return true;
     }
 
-    */
-/**
+
+    /**
      * 药品静态知识测试
      *
      * @param file
      * @param testVO
      * @return
-     *//*
+     */
 
     public Boolean drugTest(MultipartFile file, StaticKnowledgeTestVO testVO) {
         RunningInfoVO runningInfoVO = new RunningInfoVO();
@@ -537,11 +537,10 @@ public class ResultStaticKnowledgeFacade extends ResultStaticKnowledgeServiceImp
         }
 
         //重复数据过滤
-        */
-/*drugConfigList = drugConfigList
+        /*drugConfigList = drugConfigList
                 .stream()
                 .distinct()
-                .collect(Collectors.toList());*//*
+                .collect(Collectors.toList());*/
 
 
         // 已存在数据
@@ -639,14 +638,14 @@ public class ResultStaticKnowledgeFacade extends ResultStaticKnowledgeServiceImp
         return true;
     }
 
-    */
-/**
+
+    /**
      * 诊断静态知识测试
      *
      * @param file
      * @param testVO
      * @return
-     *//*
+     */
 
     public Boolean diseaseTest(MultipartFile file, StaticKnowledgeTestVO testVO) {
         RunningInfoVO runningInfoVO = new RunningInfoVO();
@@ -694,11 +693,10 @@ public class ResultStaticKnowledgeFacade extends ResultStaticKnowledgeServiceImp
         }
 
         //重复数据过滤
-        */
-/*diseaseConfigList = diseaseConfigList
+        /*diseaseConfigList = diseaseConfigList
                 .stream()
                 .distinct()
-                .collect(Collectors.toList());*//*
+                .collect(Collectors.toList());*/
 
 
         // 已存在数据
@@ -796,14 +794,14 @@ public class ResultStaticKnowledgeFacade extends ResultStaticKnowledgeServiceImp
         return true;
     }
 
-    */
-/**
+
+    /**
      * 手术/操作静态知识测试
      *
      * @param file
      * @param testVO
      * @return
-     *//*
+     */
 
     public Boolean operationTest(MultipartFile file, StaticKnowledgeTestVO testVO) {
         RunningInfoVO runningInfoVO = new RunningInfoVO();
@@ -851,11 +849,10 @@ public class ResultStaticKnowledgeFacade extends ResultStaticKnowledgeServiceImp
         }
 
         //重复数据过滤
-        */
-/*operationConfigList = operationConfigList
+       /* operationConfigList = operationConfigList
                 .stream()
                 .distinct()
-                .collect(Collectors.toList());*//*
+                .collect(Collectors.toList());*/
 
 
         // 已存在数据
@@ -953,14 +950,14 @@ public class ResultStaticKnowledgeFacade extends ResultStaticKnowledgeServiceImp
         return true;
     }
 
-    */
-/**
+
+    /**
      * 保存静态知识测试结果
      *
      * @param list
      * @param testVO
      * @return
-     *//*
+     */
 
     @Transactional
     public Boolean saveResult(List<ResultStaticKnowledge> list, StaticKnowledgeTestVO testVO, Integer totleNum) {
@@ -999,13 +996,13 @@ public class ResultStaticKnowledgeFacade extends ResultStaticKnowledgeServiceImp
 
     //region --------------------------导出------------------------------
 
-    */
-/**
+
+    /**
      * 数据导出
      *
      * @param response
      * @param resultStaticPageVO
-     *//*
+     */
 
     public void exportLisExcel(HttpServletResponse response, ResultStaticPageVO resultStaticPageVO) {
         resultStaticPageVO.setSize(-1L);
@@ -1015,13 +1012,13 @@ public class ResultStaticKnowledgeFacade extends ResultStaticKnowledgeServiceImp
         ExcelUtils.exportExcel(records, null, "sheet1", ExportLisTestDTO.class, fileName, response, 12.8f);
     }
 
-    */
-/**
+
+    /**
      * 数据导出
      *
      * @param response
      * @param resultStaticPageVO
-     *//*
+     */
 
     public void exportLisStaticExcel(HttpServletResponse response, ResultStaticPageVO resultStaticPageVO) {
         resultStaticPageVO.setSize(-1L);
@@ -1031,13 +1028,13 @@ public class ResultStaticKnowledgeFacade extends ResultStaticKnowledgeServiceImp
         ExcelUtils.exportExcel(records, null, "sheet1", ExportLisStaticTestDTO.class, fileName, response, 12.8f);
     }
 
-    */
-/**
+
+    /**
      * 数据导出
      *
      * @param response
      * @param resultStaticPageVO
-     *//*
+     */
 
     public void exportCommonExcel(HttpServletResponse response, ResultStaticPageVO resultStaticPageVO) {
         resultStaticPageVO.setSize(-1L);
@@ -1047,13 +1044,13 @@ public class ResultStaticKnowledgeFacade extends ResultStaticKnowledgeServiceImp
         ExcelUtils.exportExcel(records, null, "sheet1", ExportCommonTestDTO.class, fileName, response, 12.8f);
     }
 
-    */
-/**
+
+    /**
      * 数据导出
      *
      * @param response
      * @param resultStaticPageVO
-     *//*
+     */
 
     public void exportCommonStaticExcel(HttpServletResponse response, ResultStaticPageVO resultStaticPageVO) {
         resultStaticPageVO.setSize(-1L);
@@ -1064,4 +1061,4 @@ public class ResultStaticKnowledgeFacade extends ResultStaticKnowledgeServiceImp
     }
 
     //endregion --------------------------导出------------------------------
-}*/
+}

파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 2265
cdssman-service/src/main/java/com/diagbot/facade/RuleConvertFacade.java


+ 0 - 476
cdssman-service/src/main/java/com/diagbot/facade/SearchDataFacade.java

@@ -1,476 +0,0 @@
-/*
-package com.diagbot.facade;
-
-import com.diagbot.biz.push.entity.Item;
-import com.diagbot.biz.push.entity.Lis;
-import com.diagbot.biz.push.entity.Pacs;
-import com.diagbot.entity.ResultBill;
-import com.diagbot.entity.ResultCritical;
-import com.diagbot.entity.ResultHighriskDrug;
-import com.diagbot.entity.ResultHighriskOperation;
-import com.diagbot.entity.ResultOtherLis;
-import com.diagbot.entity.ResultOtherPacs;
-import com.diagbot.entity.ResultOtherTransfusion;
-import com.diagbot.enums.GraphLabelEnum;
-import com.diagbot.enums.TypeEnum;
-import com.diagbot.util.StringUtil;
-import com.diagbot.vo.Drug;
-import com.diagbot.vo.IndicationPushVO;
-import com.diagbot.vo.ItemExt;
-import org.springframework.stereotype.Component;
-
-import java.util.Random;
-
-*/
-/**
- * @Description:
- * @Author:zhaops
- * @time: 2021/1/11 11:37
- *//*
-
-@Component
-public class SearchDataFacade {
-
-    */
-/**
-     * 生成开单合理性入参
-     *
-     * @param resultBill
-     * @return
-     *//*
-
-    public IndicationPushVO createBillVO(ResultBill resultBill) {
-        IndicationPushVO indicationPushVO = new IndicationPushVO();
-        indicationPushVO.setAge("20");
-        indicationPushVO.setSex(3);
-        indicationPushVO.setRuleType("2");
-
-        //开单项
-        if (resultBill.getBillItemType().equals(GraphLabelEnum.LisSet.getName())) {
-            //检验开单项
-            Lis lis = new Lis();
-            lis.setName(resultBill.getBillItemHisName());
-            lis.setDetailName(resultBill.getBillItemHisDetailName());
-            lis.setUniqueName(resultBill.getBillItemName());
-            indicationPushVO.getLisOrder().add(lis);
-        }
-        if (resultBill.getBillItemType().equals(GraphLabelEnum.PacsName.getName())
-                || resultBill.getBillItemType().equals(GraphLabelEnum.PacsSubName.getName())) {
-            Pacs pacs = new Pacs();
-            pacs.setName(resultBill.getBillItemHisName());
-            pacs.setUniqueName(resultBill.getBillItemName());
-            indicationPushVO.getPacsOrder().add(pacs);
-        }
-        if (resultBill.getBillItemType().equals(GraphLabelEnum.YiBaoOperationName.getName())) {
-            Item operation = new Item();
-            operation.setName(resultBill.getBillItemHisName());
-            operation.setUniqueName(resultBill.getBillItemName());
-            indicationPushVO.getOperationOrder().add(operation);
-        }
-        if (resultBill.getBillItemType().equals(GraphLabelEnum.Medicine.getName())) {
-            Drug drug = new Drug();
-            drug.setName(resultBill.getBillItemHisName());
-            drug.setUniqueName(resultBill.getBillItemName());
-            indicationPushVO.getDrugOrder().add(drug);
-        }
-        if (resultBill.getBillItemType().equals(GraphLabelEnum.TransfusionRemind.getName())) {
-            ItemExt itemExt = new ItemExt();
-            itemExt.setName(resultBill.getBillItemHisName());
-            itemExt.setUniqueName(resultBill.getBillItemName());
-            indicationPushVO.getTransfusionOrder().add(itemExt);
-        }
-
-        //未使用禁忌条件:食物过敏原、手术、给药途径
-        if (resultBill.getConflictItemType().equals(GraphLabelEnum.Gender.getName())) {
-            if (resultBill.getConflictItemName().equals("男")) {
-                indicationPushVO.setSex(1);
-            } else if (resultBill.getConflictItemName().equals("女")) {
-                indicationPushVO.setSex(2);
-            } else {
-                indicationPushVO.setSex(3);
-            }
-        } else if (resultBill.getConflictItemType().equals(GraphLabelEnum.Vital.getName())) {
-            //禁忌年龄特殊处理
-            if (resultBill.getConflictItemName().equals("年龄")) {
-                indicationPushVO.setAge(resultBill.getInputValue());
-            } else if (resultBill.getConflictItemName().equals("体温")) {
-                indicationPushVO.setVital(resultBill.getConflictItemName() + resultBill.getInputValue() + "℃,");
-            } else {
-                indicationPushVO.setVital(resultBill.getConflictItemName() + resultBill.getInputValue() + ",");
-            }
-        } else if (resultBill.getConflictItemType().equals(GraphLabelEnum.ClinicalFinding.getName())) {
-            indicationPushVO.setSymptom(indicationPushVO.getSymptom() +
-                    resultBill.getConflictItemName() +
-                    (resultBill.getInputValue() != null ? resultBill.getInputValue() : "") +
-                    ",");
-        } else if (resultBill.getConflictItemType().equals(GraphLabelEnum.OralMedicine.getName())) {
-            indicationPushVO.setSymptom(indicationPushVO.getSymptom() +
-                    "一直服用" +
-                    (StringUtil.isNotBlank(resultBill.getConflictItemHisName())
-                            ? resultBill.getConflictItemHisName()
-                            : resultBill.getConflictItemName()) +
-                    ",");
-        } else if (resultBill.getConflictItemType().equals(GraphLabelEnum.MedAllergen.getName())
-                || resultBill.getConflictItemType().equals(GraphLabelEnum.Allergen.getName())) {
-            indicationPushVO.setPasts(indicationPushVO.getPasts() +
-                    "对" +
-                    (StringUtil.isNotBlank(resultBill.getConflictItemHisName())
-                            ? resultBill.getConflictItemHisName()
-                            : resultBill.getConflictItemName()) +
-                    "过敏,");
-        } else if (resultBill.getConflictItemType().equals(GraphLabelEnum.PacsDescribe.getName())) {
-            Pacs pacs = new Pacs();
-            pacs.setName("胸部CT");
-            pacs.setUniqueName("胸部CT");
-            pacs.setDesc(resultBill.getConflictItemName());
-            pacs.setResult(resultBill.getConflictItemName());
-            indicationPushVO.getPacs().add(pacs);
-        } else if (resultBill.getConflictItemType().equals(GraphLabelEnum.Lis.getName())
-                || resultBill.getConflictItemType().equals(GraphLabelEnum.LisName.getName())) {
-            Lis lis = new Lis();
-            lis.setName(resultBill.getConflictItemHisName());
-            lis.setDetailName(resultBill.getConflictItemHisDetailName());
-            lis.setUniqueName(resultBill.getConflictItemName());
-            lis.setUnits(resultBill.getUnit());
-            if (resultBill.getMinValue() != null || resultBill.getMaxValue() != null) {
-                lis.setValue(Double.valueOf(resultBill.getInputValue()));
-            } else {
-                lis.setOtherValue(resultBill.getInputValue());
-            }
-            if (resultBill.getMaxValue() != null) {
-                lis.setMaxValue(resultBill.getMaxValue().doubleValue());
-            }
-            if (resultBill.getMinValue() != null) {
-                lis.setMinValue(resultBill.getMinValue().doubleValue());
-            }
-            indicationPushVO.getLis().add(lis);
-        } else if (resultBill.getConflictItemType().equals(GraphLabelEnum.Disease.getName())
-                || resultBill.getConflictItemType().equals(GraphLabelEnum.YiBaoDiseaseName.getName())) {
-            Item diag = new Item();
-            diag.setName(resultBill.getConflictItemHisName());
-            diag.setUniqueName(resultBill.getConflictItemName());
-            indicationPushVO.getDiag().add(diag);
-        } else if (resultBill.getConflictItemType().equals(GraphLabelEnum.Group.getName())) {
-            indicationPushVO.setSymptom(indicationPushVO.getSymptom() +
-                    resultBill.getConflictItemName() +
-                    (resultBill.getInputValue() != null ? resultBill.getInputValue() : "") +
-                    (StringUtil.isNotBlank(resultBill.getUnit()) ? resultBill.getUnit() : "") +
-                    ",");
-        } else if (resultBill.getConflictItemType().equals(GraphLabelEnum.ConflictDevice.getName())) {
-            indicationPushVO.setPasts(indicationPushVO.getPasts() +
-                    "有" + resultBill.getConflictItemName() + ",");
-        } else if (resultBill.getConflictItemType().equals(GraphLabelEnum.BillConflictItem.getName())) {
-            Pacs pacs = new Pacs();
-            pacs.setName(resultBill.getConflictItemHisName());
-            pacs.setUniqueName(resultBill.getConflictItemName());
-            indicationPushVO.getPacsOrder().add(pacs);
-        } else if (resultBill.getConflictItemType().equals(GraphLabelEnum.YiBaoOperationName.getName())) {
-            Item operation = new Item();
-            operation.setName(resultBill.getConflictItemHisName());
-            operation.setUniqueName(resultBill.getConflictItemName());
-            indicationPushVO.getOperation().add(operation);
-        }
-        return indicationPushVO;
-    }
-
-    */
-/**
-     * 生成危急值入参
-     *
-     * @param resultCritical
-     * @return
-     *//*
-
-    public IndicationPushVO createCriticalVO(ResultCritical resultCritical) {
-        IndicationPushVO indicationPushVO = new IndicationPushVO();
-        indicationPushVO.setSex(3);
-        indicationPushVO.setRuleType("1");
-
-        if (resultCritical.getMinAge() != null || resultCritical.getMaxAge() != null) {
-            Random random = new Random(resultCritical.getMinAge() == null ? 0 : resultCritical.getMinAge());
-            Integer inputAge = random.nextInt(resultCritical.getMaxAge() == null ? 200 : resultCritical.getMaxAge());
-            indicationPushVO.setAge(inputAge.toString());
-        } else {
-            indicationPushVO.setAge("20");
-        }
-
-        if (resultCritical.getCriticalItemType().equals(GraphLabelEnum.LisCritical.getName())) {
-            //检验开单项
-            Lis lis = new Lis();
-            lis.setName(resultCritical.getCriticalItemHisName());
-            lis.setDetailName(resultCritical.getCriticalItemHisDetailName());
-            lis.setUniqueName(resultCritical.getCriticalItemName());
-            lis.setUnits(resultCritical.getUnit());
-            if (resultCritical.getMinValue() != null || resultCritical.getMaxValue() != null) {
-                lis.setValue(Double.valueOf(resultCritical.getInputValue()));
-            } else {
-                lis.setOtherValue(resultCritical.getInputValue());
-            }
-            if (resultCritical.getMaxValue() != null) {
-                lis.setMaxValue(resultCritical.getMaxValue().doubleValue());
-            }
-            if (resultCritical.getMinValue() != null) {
-                lis.setMinValue(resultCritical.getMinValue().doubleValue());
-            }
-            indicationPushVO.getLis().add(lis);
-        }
-        if (resultCritical.getCriticalItemType().equals(GraphLabelEnum.PacsCritical.getName())) {
-            Pacs pacs = new Pacs();
-            pacs.setName(resultCritical.getCriticalItemHisName());
-            pacs.setUniqueName(resultCritical.getCriticalItemName());
-            pacs.setResult(resultCritical.getInputValue());
-            indicationPushVO.getPacs().add(pacs);
-        }
-        return indicationPushVO;
-    }
-
-    */
-/**
-     * 生成高危药品入参
-     *
-     * @param result
-     * @return
-     *//*
-
-    public IndicationPushVO createHighriskVO_drug(ResultHighriskDrug result) {
-        IndicationPushVO indicationPushVO = new IndicationPushVO();
-        indicationPushVO.setSex(3);
-        indicationPushVO.setRuleType("3");
-        indicationPushVO.setAge("20");
-
-        Drug drug = new Drug();
-        drug.setName(result.getHighriskItemHisName());
-        drug.setUniqueName(result.getHighriskItemName());
-        drug.setForm(result.getHighriskItemForm());
-        indicationPushVO.getDrugOrder().add(drug);
-
-        return indicationPushVO;
-    }
-
-    */
-/**
-     * 生成高危手术入参
-     *
-     * @param result
-     * @return
-     *//*
-
-    public IndicationPushVO createHighriskVO_operation(ResultHighriskOperation result) {
-        IndicationPushVO indicationPushVO = new IndicationPushVO();
-        indicationPushVO.setSex(3);
-        indicationPushVO.setRuleType("3");
-        indicationPushVO.setAge("20");
-
-        Item item = new Item();
-        item.setName(result.getHighriskItemHisName());
-        item.setUniqueName(result.getHighriskItemName());
-        indicationPushVO.getOperationOrder().add(item);
-
-        if (result.getFactorItemType() != null) {
-
-            if (result.getFactorItemType().equals(TypeEnum.age.getName())) {
-                indicationPushVO.setAge(result.getInputValue());
-            } else if (result.getFactorItemType().equals(TypeEnum.vital.getName())) {
-                */
-/*if (result.getFactorItemName().equals("体温")) {
-                    indicationPushVO.setVital(result.getFactorItemName() + result.getInputValue() + "℃,");
-                } else *//*
-
-                if (result.getFactorItemName().equals("收缩压")) {
-                    indicationPushVO.setVital("血压" + result.getInputValue() + "/80" +
-                            (StringUtil.isNotBlank(result.getFactorItemUnit()) ? result.getFactorItemUnit() : "mmHg")
-                            + ",");
-                } else if (result.getFactorItemName().equals("舒张压")) {
-                    indicationPushVO.setVital("血压120/" + result.getInputValue() +
-                            (StringUtil.isNotBlank(result.getFactorItemUnit()) ? result.getFactorItemUnit() : "mmHg")
-                            + ",");
-                } else {
-                    indicationPushVO.setVital(result.getFactorItemName() +
-                            (StringUtil.isNotBlank(result.getInputValue()) ? result.getInputValue() : "") +
-                            (StringUtil.isNotBlank(result.getFactorItemUnit()) ? result.getFactorItemUnit() : "") +
-                            ",");
-                }
-            } else if (result.getFactorItemType().equals(TypeEnum.disease.getName())) {
-                Item diag = new Item();
-                diag.setName(result.getFactorItemHisName());
-                diag.setUniqueName(result.getFactorItemName());
-                indicationPushVO.getDiag().add(diag);
-
-            } else if (result.getFactorItemType().equals(TypeEnum.lis.getName())) {
-                Lis lis = new Lis();
-                lis.setName(result.getFactorItemHisName());
-                lis.setDetailName(result.getFactorItemHisDetailName());
-                lis.setUniqueName(result.getFactorItemName());
-                lis.setUnits(result.getFactorItemUnit());
-                if (result.getFactorItemMinValue() != null || result.getFactorItemMaxValue() != null) {
-                    lis.setValue(Double.valueOf(result.getInputValue()));
-                } else {
-                    lis.setOtherValue(result.getInputValue());
-                }
-                if (result.getFactorItemMaxValue() != null) {
-                    lis.setMaxValue(result.getFactorItemMaxValue().doubleValue());
-                }
-                if (result.getFactorItemMinValue() != null) {
-                    lis.setMinValue(result.getFactorItemMinValue().doubleValue());
-                }
-                indicationPushVO.getLis().add(lis);
-            } else if (result.getFactorItemType().equals(TypeEnum.pacsDecs.getName())) {
-                Pacs pacs = new Pacs();
-                pacs.setName(result.getFactorItemHisName());
-                pacs.setUniqueName(result.getFactorItemName());
-                pacs.setResult(result.getInputValue());
-                indicationPushVO.getPacs().add(pacs);
-            }
-        }
-
-        return indicationPushVO;
-    }
-
-    */
-/**
-     * 生成其他值提醒(化验)入参
-     *
-     * @param result
-     * @return
-     *//*
-
-    public IndicationPushVO createOther_lis(ResultOtherLis result) {
-        IndicationPushVO indicationPushVO = new IndicationPushVO();
-        indicationPushVO.setSex(3);
-        indicationPushVO.setRuleType("4");
-        indicationPushVO.setAge("20");
-
-        Lis lis = new Lis();
-        lis.setName(result.getOtherItemHisName());
-        lis.setDetailName(result.getOtherItemHisDetailName());
-        lis.setUniqueName(result.getOtherItemName());
-        lis.setUnits(result.getUnit());
-        if (result.getMinValue() != null || result.getMaxValue() != null) {
-            lis.setValue(Double.valueOf(result.getInputValue()));
-        } else {
-            lis.setOtherValue(result.getInputValue());
-        }
-        if (result.getMaxValue() != null) {
-            lis.setMaxValue(result.getMaxValue().doubleValue());
-        }
-        if (result.getMinValue() != null) {
-            lis.setMinValue(result.getMinValue().doubleValue());
-        }
-        indicationPushVO.getLis().add(lis);
-
-        if (result.getRemindItemType().equals(GraphLabelEnum.Medicine.getName())) {
-            Drug drug = new Drug();
-            drug.setName(result.getRemindItemHisName());
-            drug.setUniqueName(result.getRemindItemName());
-            indicationPushVO.getDrug().add(drug);
-        } else if (result.getRemindItemType().equals(GraphLabelEnum.YiBaoDiseaseName.getName())) {
-            Item item = new Item();
-            item.setName(result.getRemindItemHisName());
-            item.setUniqueName(result.getRemindItemName());
-            indicationPushVO.getDiag().add(item);
-        } else if (result.getRemindItemType().equals(GraphLabelEnum.Group.getName())) {
-            indicationPushVO.setSymptom(indicationPushVO.getSymptom() +
-                    result.getRemindItemName() +
-                    (result.getInputValue() != null ? result.getInputValue() : "") +
-                    (StringUtil.isNotBlank(result.getUnit()) ? result.getUnit() : "") +
-                    ",");
-        }
-        return indicationPushVO;
-    }
-
-    */
-/**
-     * 生成其他值提醒(辅检)入参
-     *
-     * @param result
-     * @return
-     *//*
-
-    public IndicationPushVO createOther_pacs(ResultOtherPacs result) {
-        IndicationPushVO indicationPushVO = new IndicationPushVO();
-        indicationPushVO.setSex(3);
-        indicationPushVO.setRuleType("4");
-        indicationPushVO.setAge("20");
-
-        Pacs pacs = new Pacs();
-        pacs.setResult(result.getPacsResult());
-        */
-/*if (StringUtil.isNotBlank(result.getPostoken())) {
-            pacs.setResult(pacs.getResult() + "," + result.getPostoken());
-        }
-        if (StringUtil.isNotBlank(result.getNegtoken())) {
-            pacs.setResult(pacs.getResult() + ",无" + result.getNegtoken());
-        }*//*
-
-        indicationPushVO.getPacs().add(pacs);
-
-        if (StringUtil.isNotBlank(result.getGender())) {
-            if (result.getGender().equals("男")) {
-                indicationPushVO.setSex(1);
-            } else if (result.getGender().equals("女")) {
-                indicationPushVO.setSex(2);
-            }
-        }
-
-        if (StringUtil.isNotBlank(result.getInputAge())) {
-            indicationPushVO.setAge(result.getInputAge());
-        }
-
-        if (StringUtil.isNotBlank(result.getRemindItemType())
-                && result.getRemindItemType().equals(GraphLabelEnum.YiBaoDiseaseName.getName())) {
-            Item diag = new Item();
-            diag.setName(result.getRemindItemHisName());
-            diag.setUniqueName(result.getRemindItemName());
-            indicationPushVO.getDiag().add(diag);
-        }
-        return indicationPushVO;
-    }
-
-    */
-/**
-     * 生成其他值提醒(输血)入参
-     *
-     * @param result
-     * @return
-     *//*
-
-    public IndicationPushVO createOther_transfusion(ResultOtherTransfusion result) {
-        IndicationPushVO indicationPushVO = new IndicationPushVO();
-        indicationPushVO.setSex(3);
-        indicationPushVO.setRuleType("4");
-        indicationPushVO.setAge("20");
-
-        Lis lis = new Lis();
-        lis.setName(result.getOtherItemHisName());
-        lis.setDetailName(result.getOtherItemHisDetailName());
-        lis.setUniqueName(result.getOtherItemName());
-        lis.setUnits(result.getOtherItemUnit());
-        if (result.getOtherItemMinValue() != null || result.getOtherItemMaxValue() != null) {
-            lis.setValue(Double.valueOf(result.getOtherItemInputValue()));
-        } else {
-            lis.setOtherValue(result.getOtherItemInputValue());
-        }
-        if (result.getOtherItemMaxValue() != null) {
-            lis.setMaxValue(result.getOtherItemMaxValue().doubleValue());
-        }
-        if (result.getOtherItemMinValue() != null) {
-            lis.setMinValue(result.getOtherItemMinValue().doubleValue());
-        }
-        indicationPushVO.getLis().add(lis);
-
-        if (StringUtil.isNotBlank(result.getConflictItemType())) {
-            if (result.getConflictItemType().equals(GraphLabelEnum.YiBaoOperationName.getName())) {
-                Item item = new Item();
-                item.setName(result.getConflictItemHisName());
-                item.setUniqueName(result.getConflictItemName());
-                indicationPushVO.getOperation().add(item);
-            } else if (result.getConflictItemType().equals(GraphLabelEnum.YiBaoDiseaseName.getName())) {
-                Item item = new Item();
-                item.setName(result.getConflictItemHisName());
-                item.setUniqueName(result.getConflictItemName());
-                indicationPushVO.getDiag().add(item);
-            }
-        }
-        return indicationPushVO;
-    }
-}*/

+ 16 - 15
cdssman-service/src/main/java/com/diagbot/web/StaticKnowledgeTestController.java

@@ -7,7 +7,7 @@ import com.diagbot.dto.RespDTO;
 import com.diagbot.entity.ResultStaticKnowledge;
 import com.diagbot.enums.StaticKnowledgeEnum;
 import com.diagbot.facade.ResultStaticInfoFacade;
-//import com.diagbot.facade.ResultStaticKnowledgeFacade;
+import com.diagbot.facade.ResultStaticKnowledgeFacade;
 import com.diagbot.facade.RunningInfoFacade;
 import com.diagbot.vo.HospitalIdVO;
 import com.diagbot.vo.ResultStaticPageVO;
@@ -27,6 +27,7 @@ import javax.servlet.http.HttpServletResponse;
 import javax.validation.Valid;
 import java.util.List;
 
+
 /**
  * @Description:
  * @Author:zhaops
@@ -39,8 +40,8 @@ public class StaticKnowledgeTestController {
 
     @Autowired
     private ResultStaticInfoFacade resultStaticInfoFacade;
-    /*@Autowired
-    private ResultStaticKnowledgeFacade resultStaticKnowledgeFacade;*/
+    @Autowired
+    private ResultStaticKnowledgeFacade resultStaticKnowledgeFacade;
     @Autowired
     private RunningInfoFacade runningInfoFacade;
 
@@ -53,7 +54,7 @@ public class StaticKnowledgeTestController {
         return RespDTO.onSuc(data);
     }
 
-    /*@ApiOperation(value = "静态知识测试[zhaops]",
+    @ApiOperation(value = "静态知识测试[zhaops]",
             notes = "hospitalId: 医院Id <br>" +
                     " type:术语类型(1:诊断、2:检验、3:检查、4:药品、5:手术/操作)<br>" +
                     "caseId: 测试用例id<br>")
@@ -89,9 +90,9 @@ public class StaticKnowledgeTestController {
         runningInfoVO.setStatus(0);
         runningInfoFacade.updateStatus(runningInfoVO);
         return RespDTO.onSuc(data);
-    }*/
+    }
 
-    /*@ApiOperation(value = "静态知识测试结果明细列表[zhaops]",
+    @ApiOperation(value = "静态知识测试结果明细列表[zhaops]",
             notes = "resultId: 结果id <br>" +
                     "hasStandName: 是否映射到标准术语(0:否,1:是) <br>" +
                     "hasStaticKnowledge: 是否有静态知识(0:无,1:有) <br>")
@@ -100,11 +101,11 @@ public class StaticKnowledgeTestController {
     public RespDTO<IPage<ResultStaticKnowledge>> getPage(@Valid @RequestBody ResultStaticPageVO resultStaticPageVO) {
         IPage<ResultStaticKnowledge> data = resultStaticKnowledgeFacade.getPage(resultStaticPageVO);
         return RespDTO.onSuc(data);
-    }*/
+    }
 
     //region --------------------------导出------------------------------
 
-    /*@ApiOperation(value = "通用未映射到标准术语测试结果导出[by:zhaops]",
+    @ApiOperation(value = "通用未映射到标准术语测试结果导出[by:zhaops]",
             notes = "resultId: 结果id <br>" +
                     "hasStandName: 是否映射到标准术语(0:否,1:是) <br>" +
                     "hasStaticKnowledge: 是否有静态知识(0:无,1:有) <br>")
@@ -112,9 +113,9 @@ public class StaticKnowledgeTestController {
     @SysLogger("exportCommonExcel")
     public void exportCommonExcel(HttpServletResponse response, @RequestBody @Valid ResultStaticPageVO resultStaticPageVO) {
         resultStaticKnowledgeFacade.exportCommonExcel(response, resultStaticPageVO);
-    }*/
+    }
 
-    /*@ApiOperation(value = "通用缺少静态知识测试结果导出[by:zhaops]",
+    @ApiOperation(value = "通用缺少静态知识测试结果导出[by:zhaops]",
             notes = "resultId: 结果id <br>" +
                     "hasStandName: 是否映射到标准术语(0:否,1:是) <br>" +
                     "hasStaticKnowledge: 是否有静态知识(0:无,1:有) <br>")
@@ -122,9 +123,9 @@ public class StaticKnowledgeTestController {
     @SysLogger("exportCommonStaticExcel")
     public void exportCommonStaticExcel(HttpServletResponse response, @RequestBody @Valid ResultStaticPageVO resultStaticPageVO) {
         resultStaticKnowledgeFacade.exportCommonStaticExcel(response, resultStaticPageVO);
-    }*/
+    }
 
-    /*@ApiOperation(value = "检验未映射到标准术语测试结果导出[by:zhaops]",
+    @ApiOperation(value = "检验未映射到标准术语测试结果导出[by:zhaops]",
             notes = "resultId: 结果id <br>" +
                     "hasStandName: 是否映射到标准术语(0:否,1:是) <br>" +
                     "hasStaticKnowledge: 是否有静态知识(0:无,1:有) <br>")
@@ -132,9 +133,9 @@ public class StaticKnowledgeTestController {
     @SysLogger("exportLisExcel")
     public void exportLisExcel(HttpServletResponse response, @RequestBody @Valid ResultStaticPageVO resultStaticPageVO) {
         resultStaticKnowledgeFacade.exportLisExcel(response, resultStaticPageVO);
-    }*/
+    }
 
-    /*@ApiOperation(value = "检验缺少静态知识测试结果导出[by:zhaops]",
+    @ApiOperation(value = "检验缺少静态知识测试结果导出[by:zhaops]",
             notes = "resultId: 结果id <br>" +
                     "hasStandName: 是否映射到标准术语(0:否,1:是) <br>" +
                     "hasStaticKnowledge: 是否有静态知识(0:无,1:有) <br>")
@@ -142,7 +143,7 @@ public class StaticKnowledgeTestController {
     @SysLogger("exportLisStaticExcel")
     public void exportLisStaticExcel(HttpServletResponse response, @RequestBody @Valid ResultStaticPageVO resultStaticPageVO) {
         resultStaticKnowledgeFacade.exportLisStaticExcel(response, resultStaticPageVO);
-    }*/
+    }
 
     //endregion --------------------------导出------------------------------
 }