package org.dromara.business.mapper;

import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.apache.ibatis.annotations.Param;
import org.dromara.business.domain.CaseBaseInfo;
import org.dromara.business.domain.vo.CaseBaseInfoVo;
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
import org.dromara.system.domain.SysUser;

import java.util.List;

/**
 * 病例基础信息Mapper接口
 *
 * @author wuzhigang
 * @date 2023-11-27
 */
public interface CaseBaseInfoMapper extends BaseMapperPlus<CaseBaseInfo, CaseBaseInfoVo> {

    /**
     * 获取病例数据中审核状态
     *
     * @return
     */
    List<String> selectCaseReviewStatus();

    /**
     * 病例审核列表分页查询
     *
     * @param build
     * @param caseCheckLqw
     * @return
     */
    Page<CaseBaseInfoVo> queryCheckPageList(@Param("page") Page<CaseBaseInfo> build, @Param(Constants.WRAPPER) Wrapper<CaseBaseInfo> caseCheckLqw);

    /**
     * 病例点评列表分页查询
     *
     * @param build
     * @param caseCommentLqw
     * @return
     */
    Page<CaseBaseInfoVo> queryCommentPageList(@Param("page") Page<CaseBaseInfo> build, @Param(Constants.WRAPPER) Wrapper<CaseBaseInfo> caseCommentLqw);

    /**
     * 病例点评审核列表分页查询
     *
     * @param build
     * @param caseCommentLqw
     * @return
     */
    Page<CaseBaseInfoVo> queryCommentAuditList(@Param("page") Page<CaseBaseInfo> build, @Param(Constants.WRAPPER) Wrapper<CaseBaseInfo> caseCommentLqw);

    /**
     * 病例解析审核分页列表查询
     *
     * @param build
     * @param caseAnalysisLqw
     * @return
     */
    Page<CaseBaseInfoVo> queryAnalysisList(@Param("page") Page<CaseBaseInfo> build, @Param(Constants.WRAPPER) Wrapper<CaseBaseInfo> caseAnalysisLqw);

    /**
     * 获取病例数据中点评审核状态
     *
     * @return
     */
    List<String> commentAuditStatus();

    /**
     * 获取病例数据中解析审核状态
     *
     * @return
     */
    List<String> caseAnalysisStatus();

    /**
     * 获取病例数据中点评状态
     *
     * @return
     */
    List<String> commentStatus();

    /**
     * 点评自动分配专家
     *
     * @return
     */
    SysUser commentDistributionExpert();
}
