Parcourir la source

医学规则测试

zhaops il y a 4 ans
Parent
commit
70c0df8fd6

+ 13 - 0
cdssman-service/src/main/java/com/diagbot/facade/ResultCriticalFacade.java

@@ -0,0 +1,13 @@
+package com.diagbot.facade;
+
+import com.diagbot.service.impl.ResultCriticalServiceImpl;
+import org.springframework.stereotype.Component;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2021/1/14 14:58
+ */
+@Component
+public class ResultCriticalFacade extends ResultCriticalServiceImpl {
+}

+ 13 - 6
cdssman-service/src/main/java/com/diagbot/facade/RuleConvertFacade.java

@@ -6,6 +6,7 @@ import com.diagbot.entity.ResultBill;
 import com.diagbot.entity.ResultCritical;
 import com.diagbot.entity.node.BillItem;
 import com.diagbot.entity.node.LisCritical;
+import com.diagbot.entity.node.LisName;
 import com.diagbot.entity.node.MedNameRegName;
 import com.diagbot.entity.node.PacsCritical;
 import com.diagbot.entity.node.TransfusionRemind;
@@ -421,9 +422,6 @@ public class RuleConvertFacade {
             result.setCriticalType(1);
             result.setCriticalItemType(GraphLabelEnum.LisCritical.getName());
 
-            String uniqueName = item.getName().substring(0, item.getName().length() - 3);
-            result.setCriticalItemName(uniqueName);
-            result.setReferenceValue(item.getName());
             if (StringUtil.isNotBlank(item.getMaxval())) {
                 result.setMaxValue(BigDecimal.valueOf(Double.valueOf(item.getMaxval())));
             }
@@ -445,7 +443,16 @@ public class RuleConvertFacade {
             }
             result.setCriticalItemRange(StringUtil.isBlank(item.getRange()) ? 0 : Integer.valueOf(item.getRange()));
             result.setUnit(item.getUnit());
-            resultList.add(result);
+            result.setReferenceValue(item.getName());
+            if (item.getLisnameLisCriticals() != null && item.getLisnameLisCriticals().size() > 0) {
+                item.getLisnameLisCriticals().forEach(r -> {
+                    LisName lisName = r.getLisName();
+                    ResultCritical resultExt = new ResultCritical();
+                    BeanUtil.copyProperties(result, resultExt);
+                    resultExt.setCriticalItemName(lisName.getName());
+                    resultList.add(resultExt);
+                });
+            }
         }
 
         //医院端映射
@@ -499,7 +506,7 @@ public class RuleConvertFacade {
             //基础属性复制
             ResultCritical result = new ResultCritical();
             result.setCriticalType(2);
-            result.setCriticalItemType(GraphLabelEnum.PacsCatalogue.getName());
+            result.setCriticalItemType(GraphLabelEnum.PacsCritical.getName());
             result.setCriticalItemName(item.getPacsname());
             result.setReferenceValue(item.getName());
             result.setInputValue(item.getVal());
@@ -790,7 +797,7 @@ public class RuleConvertFacade {
             }
             billMsg = MsgUtil.getCommonCriticalMsg(content, TypeEnum.lis.getName());
         } else if (resultCritical.getCriticalItemType().equals(GraphLabelEnum.PacsCritical.getName())) {
-            billMsg = MsgUtil.getCommonCriticalMsg(resultCritical.getCriticalItemHisName(), TypeEnum.pacs.getName());
+            billMsg = MsgUtil.getCommonCriticalMsg(resultCritical.getInputValue(), TypeEnum.pacs.getName());
         }
         return billMsg;
     }

+ 148 - 28
cdssman-service/src/main/java/com/diagbot/facade/RuleTestFacade.java

@@ -25,17 +25,18 @@ import com.diagbot.repository.LisCriticalRepository;
 import com.diagbot.repository.PacsCriticalRepository;
 import com.diagbot.repository.TransfusionRemindRepository;
 import com.diagbot.service.ResultBillService;
+import com.diagbot.service.ResultCriticalService;
 import com.diagbot.service.ResultInfoService;
 import com.diagbot.util.BeanUtil;
 import com.diagbot.util.ExcelUtils;
 import com.diagbot.util.FastJsonUtils;
 import com.diagbot.util.ListUtil;
 import com.diagbot.util.RespDTOUtil;
+import com.diagbot.vo.CriticalRuleVO;
 import com.diagbot.vo.HospitalIdVO;
 import com.diagbot.vo.IndicationPushVO;
-import com.diagbot.vo.RuleTestVO;
+import com.diagbot.vo.BillRuleVO;
 import com.google.common.collect.Lists;
-import com.sun.org.apache.xpath.internal.operations.Bool;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Qualifier;
 import org.springframework.stereotype.Component;
@@ -62,6 +63,9 @@ public class RuleTestFacade {
     @Autowired
     @Qualifier("resultInfoServiceImpl")
     private ResultInfoService resultInfoService;
+    @Autowired
+    @Qualifier("resultCriticalServiceImpl")
+    private ResultCriticalService resultCriticalService;
 
     @Autowired
     private LisConfigFacade lisConfigFacade;
@@ -97,13 +101,19 @@ public class RuleTestFacade {
     /**
      * 全规则测试
      *
-     * @param ruleTestVO
+     * @param hospitalIdVO
      */
-    public Boolean ruleTest(RuleTestVO ruleTestVO) {
+    public Boolean ruleTest(HospitalIdVO hospitalIdVO) {
         //开单合理性规则-通用
-        billRuleTest(ruleTestVO);
+        BillRuleVO billRuleVO = new BillRuleVO();
+        billRuleVO.setHospitalId(hospitalIdVO.getHospitalId());
+        billRuleVO.setBillType(1);
+        billRuleVO.setCaseId(1l);
+        billRuleTest(billRuleVO);
         //开单合理性规则-输血
-        billTransfusionRuleTest(ruleTestVO);
+        billRuleVO.setBillType(2);
+        billRuleVO.setCaseId(2l);
+        billTransfusionRuleTest(billRuleVO);
         //危急值规则-检验
         //危急值规则-检查
         //高危药品
@@ -114,10 +124,10 @@ public class RuleTestFacade {
     /**
      * 开单合理性测试
      *
-     * @param ruleTestVO
+     * @param billRuleVO
      */
-    public Boolean billRuleTest(RuleTestVO ruleTestVO) {
-        Long hospitalId = ruleTestVO.getHospitalId();
+    public Boolean billRuleTest(BillRuleVO billRuleVO) {
+        Long hospitalId = billRuleVO.getHospitalId();
 
         List<BillItem> billRules = billManRepository.getAllRules();
         //生成测试规则
@@ -128,17 +138,17 @@ public class RuleTestFacade {
         //远程调用推理
         List<ResultBill> saveList = callBill(resultList, hospitalId);
         //保存测试结果
-        saveResultBill(saveList, ruleTestVO, 1);
+        saveResultBill(saveList, billRuleVO);
         return true;
     }
 
     /**
      * 开单合理性测试-输血
      *
-     * @param ruleTestVO
+     * @param billRuleVO
      */
-    public Boolean billTransfusionRuleTest(RuleTestVO ruleTestVO) {
-        Long hospitalId = ruleTestVO.getHospitalId();
+    public Boolean billTransfusionRuleTest(BillRuleVO billRuleVO) {
+        Long hospitalId = billRuleVO.getHospitalId();
         List<TransfusionRemind> billRules_transfusion = transfusionRemindRepository.findByStatus(StatusEnum.Enable.getKey());
         //生成测试规则
         List<ResultBill> resultList = ruleConvertFacade.billRuleConvert_transfusion(billRules_transfusion, hospitalId);
@@ -148,34 +158,45 @@ public class RuleTestFacade {
         //远程调用推理
         List<ResultBill> saveList = callBill(resultList, hospitalId);
         //保存测试结果
-        saveResultBill(saveList, ruleTestVO, 2);
+        saveResultBill(saveList, billRuleVO);
         return true;
     }
 
     /**
      * 危急值规则测试-检验
      *
-     * @param ruleTestVO
+     * @param criticalRuleVO
      */
-    public void criticalLisRuleTest(RuleTestVO ruleTestVO) {
-        Long hospitalId = ruleTestVO.getHospitalId();
+    public Boolean criticalLisRuleTest(CriticalRuleVO criticalRuleVO) {
+        Long hospitalId = criticalRuleVO.getHospitalId();
         List<LisCritical> criticalRules_lis = lisCriticalRepository.findCustomByStatus(StatusEnum.Enable.getKey());
         //生成测试规则
         List<ResultCritical> resultList = ruleConvertFacade.criticalRuleConvert_lis(criticalRules_lis, hospitalId);
+        //远程调用推理
+        List<ResultCritical> saveList = callCritical(resultList, hospitalId);
+        //保存测试结果
+        saveResultCritical(saveList, criticalRuleVO);
+        return true;
     }
 
     /**
      * 危急值规则测试-检查
      *
-     * @param ruleTestVO
+     * @param criticalRuleVO
      */
-    public void criticalPacsRuleTest(RuleTestVO ruleTestVO) {
-        Long hospitalId = ruleTestVO.getHospitalId();
+    public Boolean criticalPacsRuleTest(CriticalRuleVO criticalRuleVO) {
+        Long hospitalId = criticalRuleVO.getHospitalId();
         List<PacsCritical> criticalRules_pacs = pacsCriticalRepository.findByStatus(StatusEnum.Enable.getKey());
         //生成测试规则
         List<ResultCritical> resultList = ruleConvertFacade.criticalRuleConvert_pacs(criticalRules_pacs, hospitalId);
+        //远程调用推理
+        List<ResultCritical> saveList = callCritical(resultList, hospitalId);
+        //保存测试结果
+        saveResultCritical(saveList, criticalRuleVO);
+        return true;
     }
 
+
     /**
      * 数据导出
      *
@@ -295,14 +316,68 @@ public class RuleTestFacade {
         return retList;
     }
 
+    /**
+     * 危急值远程调用接口
+     *
+     * @param list
+     * @param hospitalId
+     * @return
+     */
+    public List<ResultCritical> callCritical(List<ResultCritical> list, Long hospitalId) {
+        List<ResultCritical> retList = Lists.newLinkedList();
+        if (ListUtil.isEmpty(list)) {
+            return retList;
+        }
+        for (ResultCritical result : list) {
+            if (result.getSuccess() != null
+                    && result.getSuccess().equals(0)) {
+                retList.add(result);
+                continue;
+            }
+            IndicationPushVO indicationPushVO = searchDataFacade.creatCriticalVO(result);
+            indicationPushVO.setHospitalId(hospitalId);
+
+            result.setInputParams(FastJsonUtils.getBeanToJson(indicationPushVO));
+
+            RespDTO<IndicationDTO> respDTO = cdssCoreClient.indication(indicationPushVO);
+            if (RespDTOUtil.respIsOK(respDTO)) {
+                IndicationDTO data = respDTO.data;
+                List<BillMsg> billMsgList = data.getCriticalValList();
+                if (ListUtil.isEmpty(billMsgList)) {
+                    result.setSuccess(0);
+                    result.setMessage("未提示开单项");
+                    retList.add(result);
+                } else {
+                    for (BillMsg billMsg : billMsgList) {
+                        ResultCritical saveResult = new ResultCritical();
+                        BeanUtil.copyProperties(result, saveResult);
+                        saveResult.setOutput(billMsg.getMsg());
+                        if (saveResult.getOutput().equals(saveResult.getExpectedOutput())) {
+                            saveResult.setSuccess(1);
+                        } else {
+                            saveResult.setSuccess(0);
+                            saveResult.setMessage("提示内容与预期不符");
+                        }
+                        retList.add(saveResult);
+                    }
+                }
+            } else {
+                result.setSuccess(0);
+                result.setMessage("远程调用推理接口失败");
+                retList.add(result);
+            }
+        }
+        return retList;
+    }
+
     /**
      * 保存开单合理性测试结果
+     *
      * @param list
-     * @param ruleTestVO
-     * @param billType
+     * @param billRuleVO
      * @return
      */
-    public Boolean saveResultBill(List<ResultBill> list, RuleTestVO ruleTestVO, Integer billType) {
+    public Boolean saveResultBill(List<ResultBill> list, BillRuleVO billRuleVO) {
         //保存测试结果
         Date now = new Date();
         Integer totleNum = list.size();
@@ -310,13 +385,13 @@ public class RuleTestFacade {
         Integer failedNum = list.stream().filter(i -> i.getSuccess().equals(0)).collect(Collectors.toList()).size();
         QueryWrapper<ResultInfo> resultInfoQueryWrapper = new QueryWrapper<>();
         resultInfoQueryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey())
-                .eq("hospital_id", ruleTestVO.getHospitalId())
-                .eq("case_id", ruleTestVO.getCaseId());
+                .eq("hospital_id", billRuleVO.getHospitalId())
+                .eq("case_id", billRuleVO.getCaseId());
         ResultInfo resultInfo = resultInfoService.getOne(resultInfoQueryWrapper, false);
         if (resultInfo == null) {
             resultInfo = new ResultInfo();
-            resultInfo.setHospitalId(ruleTestVO.getHospitalId());
-            resultInfo.setCaseId(ruleTestVO.getCaseId());
+            resultInfo.setHospitalId(billRuleVO.getHospitalId());
+            resultInfo.setCaseId(billRuleVO.getCaseId());
             resultInfo.setGmtCreate(now);
         }
         resultInfo.setGmtModified(now);
@@ -330,7 +405,7 @@ public class RuleTestFacade {
         resultBillService.remove(resultBillQueryWrapper);
 
         for (ResultBill resultBill : list) {
-            resultBill.setBillType(billType);
+            resultBill.setBillType(billRuleVO.getBillType());
             resultBill.setGmtCreate(now);
             resultBill.setGmtModified(now);
             resultBill.setResultId(resultInfo.getId());
@@ -339,4 +414,49 @@ public class RuleTestFacade {
         resultBillService.saveOrUpdateBatch(list);
         return true;
     }
+
+    /**
+     * 保存危急值测试结果
+     *
+     * @param list
+     * @param criticalRuleVO
+     * @return
+     */
+    public Boolean saveResultCritical(List<ResultCritical> list, CriticalRuleVO criticalRuleVO) {
+        //保存测试结果
+        Date now = new Date();
+        Integer totleNum = list.size();
+        Integer successNum = list.stream().filter(i -> i.getSuccess().equals(1)).collect(Collectors.toList()).size();
+        Integer failedNum = list.stream().filter(i -> i.getSuccess().equals(0)).collect(Collectors.toList()).size();
+        QueryWrapper<ResultInfo> resultInfoQueryWrapper = new QueryWrapper<>();
+        resultInfoQueryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey())
+                .eq("hospital_id", criticalRuleVO.getHospitalId())
+                .eq("case_id", criticalRuleVO.getCaseId());
+        ResultInfo resultInfo = resultInfoService.getOne(resultInfoQueryWrapper, false);
+        if (resultInfo == null) {
+            resultInfo = new ResultInfo();
+            resultInfo.setHospitalId(criticalRuleVO.getHospitalId());
+            resultInfo.setCaseId(criticalRuleVO.getCaseId());
+            resultInfo.setGmtCreate(now);
+        }
+        resultInfo.setGmtModified(now);
+        resultInfo.setRuleNum(totleNum);
+        resultInfo.setRuleSuccessNum(successNum);
+        resultInfo.setRuleFailedNum(failedNum);
+        resultInfoService.saveOrUpdate(resultInfo);
+
+        QueryWrapper<ResultCritical> resultCriticalQueryWrapper = new QueryWrapper<>();
+        resultCriticalQueryWrapper.eq("result_id", resultInfo.getId());
+        resultCriticalService.remove(resultCriticalQueryWrapper);
+
+        for (ResultCritical result : list) {
+            result.setCriticalType(criticalRuleVO.getCriticalType());
+            result.setGmtCreate(now);
+            result.setGmtModified(now);
+            result.setResultId(resultInfo.getId());
+        }
+
+        resultCriticalService.saveOrUpdateBatch(list);
+        return true;
+    }
 }

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

@@ -199,13 +199,14 @@ public class SearchDataFacade {
             if (resultCritical.getMinValue() != null) {
                 lis.setMinValue(resultCritical.getMinValue().doubleValue());
             }
-            indicationPushVO.getLisOrder().add(lis);
+            indicationPushVO.getLis().add(lis);
         }
         if (resultCritical.getCriticalItemType().equals(GraphLabelEnum.PacsCritical.getName())) {
             Pacs pacs = new Pacs();
             pacs.setName(resultCritical.getCriticalItemHisName());
             pacs.setUniqueName(resultCritical.getCriticalItemName());
-            indicationPushVO.getPacsOrder().add(pacs);
+            pacs.setResult(resultCritical.getInputValue());
+            indicationPushVO.getPacs().add(pacs);
         }
         return indicationPushVO;
     }

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

@@ -1,7 +1,10 @@
 package com.diagbot.mapper;
 
-import com.diagbot.entity.ResultCritical;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.diagbot.entity.ResultCritical;
+import com.diagbot.vo.ResultCriticalPageVO;
+import org.apache.ibatis.annotations.Param;
 
 /**
  * <p>
@@ -12,5 +15,5 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  * @since 2021-01-08
  */
 public interface ResultCriticalMapper extends BaseMapper<ResultCritical> {
-
+    IPage<ResultCritical> getPage(@Param("resultCriticalPageVO") ResultCriticalPageVO resultCriticalPageVO);
 }

+ 1 - 1
cdssman-service/src/main/java/com/diagbot/repository/LisCriticalRepository.java

@@ -11,7 +11,7 @@ import java.util.List;
 
 public interface LisCriticalRepository extends Neo4jRepository<LisCritical, Long> {
 
-    @Query("match(n:实验室检查危急值)<-[r:实验室检查名称相关实验室检查危急值]-(m)  where n.状态 = {status} return  n,[ (n)-[r]->(m) | [ r, m ] ], ID(n)")
+    @Query("match(n:实验室检查危急值)<-[r:实验室检查名称相关实验室检查危急值]-(m:实验室检查名称)  where n.状态 = {status} return  n,[ (n)<-[r]-(m) | [ r, m ] ], ID(n)")
     List<LisCritical> findCustomByStatus(@Param("status") Integer status);
 
     List<LisCritical> findByNameIs(String name);

+ 6 - 3
cdssman-service/src/main/java/com/diagbot/service/ResultCriticalService.java

@@ -1,7 +1,10 @@
 package com.diagbot.service;
 
-import com.diagbot.entity.ResultCritical;
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.diagbot.entity.ResultCritical;
+import com.diagbot.vo.ResultCriticalPageVO;
+import org.apache.ibatis.annotations.Param;
 
 /**
  * <p>
@@ -12,5 +15,5 @@ import com.baomidou.mybatisplus.extension.service.IService;
  * @since 2021-01-08
  */
 public interface ResultCriticalService extends IService<ResultCritical> {
-
-}
+    IPage<ResultCritical> getPage(@Param("resultCriticalPageVO") ResultCriticalPageVO resultCriticalPageVO);
+}

+ 6 - 1
cdssman-service/src/main/java/com/diagbot/service/impl/ResultCriticalServiceImpl.java

@@ -1,9 +1,12 @@
 package com.diagbot.service.impl;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.diagbot.entity.ResultCritical;
 import com.diagbot.mapper.ResultCriticalMapper;
 import com.diagbot.service.ResultCriticalService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.diagbot.vo.ResultCriticalPageVO;
+import org.apache.ibatis.annotations.Param;
 import org.springframework.stereotype.Service;
 
 /**
@@ -16,5 +19,7 @@ import org.springframework.stereotype.Service;
  */
 @Service
 public class ResultCriticalServiceImpl extends ServiceImpl<ResultCriticalMapper, ResultCritical> implements ResultCriticalService {
-
+    public IPage<ResultCritical> getPage(@Param("resultCriticalPageVO") ResultCriticalPageVO resultCriticalPageVO) {
+        return baseMapper.getPage(resultCriticalPageVO);
+    }
 }

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

@@ -12,7 +12,7 @@ import javax.validation.constraints.NotNull;
  */
 @Getter
 @Setter
-public class RuleTestVO extends HospitalIdVO {
+public class BillRuleVO extends HospitalIdVO {
     /**
      * 测试类型
      */

+ 26 - 0
cdssman-service/src/main/java/com/diagbot/vo/CriticalRuleVO.java

@@ -0,0 +1,26 @@
+package com.diagbot.vo;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import javax.validation.constraints.NotNull;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2021/1/14 14:33
+ */
+@Getter
+@Setter
+public class CriticalRuleVO extends HospitalIdVO {
+    /**
+     * 测试类型
+     */
+    @NotNull(message = "请输入测试案例id")
+    private Long caseId;
+    /**
+     * 危急值测试类型(1:检验,2:检查)
+     */
+    @NotNull(message = "请输入危急值测试类型(1:检验,2:检查)")
+    private Integer criticalType;
+}

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

@@ -0,0 +1,18 @@
+package com.diagbot.vo;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2021/1/14 14:54
+ */
+@Getter
+@Setter
+public class ResultCriticalPageVO extends Page {
+    private Integer success;
+    private Long resultId;
+    private Integer criticalType;
+}

+ 61 - 28
cdssman-service/src/main/java/com/diagbot/web/RuleTestController.java

@@ -5,12 +5,16 @@ import com.diagbot.annotation.SysLogger;
 import com.diagbot.dto.CaseResultDTO;
 import com.diagbot.dto.RespDTO;
 import com.diagbot.entity.ResultBill;
+import com.diagbot.entity.ResultCritical;
 import com.diagbot.facade.ResultBillFacade;
+import com.diagbot.facade.ResultCriticalFacade;
 import com.diagbot.facade.ResultInfoFacade;
 import com.diagbot.facade.RuleTestFacade;
+import com.diagbot.vo.BillRuleVO;
+import com.diagbot.vo.CriticalRuleVO;
 import com.diagbot.vo.HospitalIdVO;
 import com.diagbot.vo.ResultBillPageVO;
-import com.diagbot.vo.RuleTestVO;
+import com.diagbot.vo.ResultCriticalPageVO;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -38,26 +42,8 @@ public class RuleTestController {
     private ResultInfoFacade resultInfoFacade;
     @Autowired
     private ResultBillFacade resultBillFacade;
-
-    @ApiOperation(value = "开单合理性测试列表[zhaops]",
-            notes = "success: 成功标志(0:失败,1:成功) <br>" +
-                    "resultId: 结果id <br>" +
-                    "billType: 开单项类型(1:通用,2:输血) <br>")
-    @PostMapping("/getResultBillPage")
-    @SysLogger("getResultBillPage")
-    public RespDTO<IPage<ResultBill>> getResultBillPage(@Valid @RequestBody ResultBillPageVO resultBillPageVO) {
-        IPage<ResultBill> data = resultBillFacade.getPage(resultBillPageVO);
-        return RespDTO.onSuc(data);
-    }
-
-    @ApiOperation(value = "医院规则测试结果列表[zhaops]",
-            notes = "hospitalId: 医院Id <br>")
-    @PostMapping("/getCaseResultList")
-    @SysLogger("getCaseResultList")
-    public RespDTO<List<CaseResultDTO>> getCaseResultList(@Valid @RequestBody HospitalIdVO hospitalIdVO) {
-        List<CaseResultDTO> data = resultInfoFacade.getCaseResultList(hospitalIdVO);
-        return RespDTO.onSuc(data);
-    }
+    @Autowired
+    private ResultCriticalFacade resultCriticalFacade;
 
     /**
      * 数据导出
@@ -78,8 +64,28 @@ public class RuleTestController {
                     "caseId: 测试用例id<br>")
     @PostMapping("/ruleTest")
     @SysLogger("ruleTest")
-    public RespDTO<Boolean> ruleTest(@Valid @RequestBody RuleTestVO ruleTestVO) {
-        Boolean data = ruleTestFacade.ruleTest(ruleTestVO);
+    public RespDTO<Boolean> ruleTest(@Valid @RequestBody HospitalIdVO hospitalIdVO) {
+        Boolean data = ruleTestFacade.ruleTest(hospitalIdVO);
+        return RespDTO.onSuc(data);
+    }
+
+    @ApiOperation(value = "医院规则测试结果列表[zhaops]",
+            notes = "hospitalId: 医院Id <br>")
+    @PostMapping("/getCaseResultList")
+    @SysLogger("getCaseResultList")
+    public RespDTO<List<CaseResultDTO>> getCaseResultList(@Valid @RequestBody HospitalIdVO hospitalIdVO) {
+        List<CaseResultDTO> data = resultInfoFacade.getCaseResultList(hospitalIdVO);
+        return RespDTO.onSuc(data);
+    }
+
+    @ApiOperation(value = "开单合理性测试列表[zhaops]",
+            notes = "success: 成功标志(0:失败,1:成功) <br>" +
+                    "resultId: 结果id <br>" +
+                    "billType: 开单项类型(1:通用,2:输血) <br>")
+    @PostMapping("/getResultBillPage")
+    @SysLogger("getResultBillPage")
+    public RespDTO<IPage<ResultBill>> getResultBillPage(@Valid @RequestBody ResultBillPageVO resultBillPageVO) {
+        IPage<ResultBill> data = resultBillFacade.getPage(resultBillPageVO);
         return RespDTO.onSuc(data);
     }
 
@@ -89,12 +95,39 @@ public class RuleTestController {
                     "billType: 开单项测试规则类型(1:通用,2:输血) <br>")
     @PostMapping("/billRuleTest")
     @SysLogger("billRuleTest")
-    public RespDTO<Boolean> billRuleTest(@Valid @RequestBody RuleTestVO ruleTestVO) {
+    public RespDTO<Boolean> billRuleTest(@Valid @RequestBody BillRuleVO billRuleVO) {
+        Boolean data = false;
+        if (billRuleVO.getBillType().equals(1)) {
+            data = ruleTestFacade.billRuleTest(billRuleVO);
+        } else if (billRuleVO.getBillType().equals(2)) {
+            data = ruleTestFacade.billTransfusionRuleTest(billRuleVO);
+        }
+        return RespDTO.onSuc(data);
+    }
+
+    @ApiOperation(value = "危急值测试列表[zhaops]",
+            notes = "success: 成功标志(0:失败,1:成功) <br>" +
+                    "resultId: 结果id <br>" +
+                    "criticalType: 危急值测试规则类型(1:检验,2:检查) <br>")
+    @PostMapping("/getResultCriticalPage")
+    @SysLogger("getResultCriticalPage")
+    public RespDTO<IPage<ResultCritical>> getResultCriticalPage(@Valid @RequestBody ResultCriticalPageVO resultCriticalPageVO) {
+        IPage<ResultCritical> data = resultCriticalFacade.getPage(resultCriticalPageVO);
+        return RespDTO.onSuc(data);
+    }
+
+    @ApiOperation(value = "危急值规则测试[zhaops]",
+            notes = "hospitalId: 医院Id <br>" +
+                    "caseId: 测试用例id<br>" +
+                    "criticalType: 危急值测试规则类型(1:检验,2:检查) <br>")
+    @PostMapping("/criticalRuleTest")
+    @SysLogger("criticalRuleTest")
+    public RespDTO<Boolean> criticalRuleTest(@Valid @RequestBody CriticalRuleVO criticalRuleVO) {
         Boolean data = false;
-        if (ruleTestVO.getBillType().equals(1)) {
-            data = ruleTestFacade.billRuleTest(ruleTestVO);
-        } else if (ruleTestVO.getBillType().equals(2)) {
-            data = ruleTestFacade.billTransfusionRuleTest(ruleTestVO);
+        if (criticalRuleVO.getCriticalType().equals(1)) {
+            data = ruleTestFacade.criticalLisRuleTest(criticalRuleVO);
+        } else if (criticalRuleVO.getCriticalType().equals(2)) {
+            data = ruleTestFacade.criticalPacsRuleTest(criticalRuleVO);
         }
         return RespDTO.onSuc(data);
     }

+ 15 - 0
cdssman-service/src/main/resources/mapper/ResultCriticalMapper.xml

@@ -31,4 +31,19 @@
         <result column="input_params" property="inputParams" />
     </resultMap>
 
+    <!-- 分页查询 -->
+    <select id="getPage" resultType="com.diagbot.entity.ResultCritical">
+        select a.*
+        from test_result_critical a
+        where a.is_deleted='N'
+        <if test="resultCriticalPageVO.success != null">
+            and a.success = #{resultCriticalPageVO.success}
+        </if>
+        <if test="resultCriticalPageVO.resultId != null">
+            and a.result_id = #{resultCriticalPageVO.resultId}
+        </if>
+        <if test="resultCriticalPageVO.criticalType != null">
+            and a.criticalType = #{resultCriticalPageVO.criticalType}
+        </if>
+    </select>
 </mapper>