package com.emr.dao;

import com.emr.entity.Archive_Master;
import com.emr.entity.Archive_Master_Vo;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface Archive_MasterMapper {
    /**
     * 根据主键删除记录
     * @param id
     * @return
     */
    int deleteByPrimaryKey(String id);

    /**
     * 插入记录
     * @param record
     * @return
     */
    int insert(Archive_Master record);

    /**
     * 根据可选字段插入记录
     * @param record
     * @return
     */
    int insertSelective(Archive_Master record);

    /**
     * 根据id查询记录
     * @param id
     * @return
     */
    Archive_Master selectById(String id);

    /**
     * 根据字段查询记录
     * @param archiveMaster
     * @return
     */
    List<Archive_Master> selByCol(Archive_Master archiveMaster);

    /**
     * 根据可选字段查询住院相关记录
     * @param record
     * @return
     */
    List<Archive_Master> selectByCol(Archive_Master_Vo record);

    /**
     * 根据可选字段查询查询出院相关记录
     * @param record
     * @return
     */
    List<Archive_Master_Vo> selectByColumn(Archive_Master_Vo record);

    /**
     * 根据可选字段查询查询终审相关记录
     * @param record
     * @return
     */
    List<Archive_Master_Vo> selectByLast(Archive_Master_Vo record);

    /**
     * 根据可选字段查询查询病案示踪相关记录
     * @param record
     * @return
     */
    List<Archive_Master_Vo> selectByUnfile(Archive_Master_Vo record);

    /**
     * 根据可选字段查询查询病案示踪相关记录(不含婴儿即inpNo里有B字母的数据)
     * @param record
     * @return
     */
    List<Archive_Master_Vo> selectByUnfileNew(Archive_Master_Vo record);

    //List<Archive_Master> selectByUnfile2(Archive_Master_Vo record);
    /**
     * 导出超7天的，初审和已归档
     * @param record
     * @return
     */
     //List<Archive_Master> sel7DayByCol(Archive_Master_Vo record);

    /**
     * 根据可选字段查询查询主任审核相关记录
     * @param record
     * @return
     */
    List<Archive_Master_Vo> selectByCmtCol(Archive_Master_Vo record);

    /**
     *
     * @param record
     * @return
     */
    List<Archive_Master> bbSel(Archive_Master_Vo record);

    /**
     *
     * @param record
     * @return
     */
    List<Archive_Master> bbSel2(Archive_Master_Vo record);

    /**
     * 根据可选字段修改记录
     * @param record
     * @return
     */
    int updateByClo(Archive_Master record);

    /**
     * 根据id修改记录
     * @param record
     * @return
     */
    int updateById(Archive_Master record);

    /**
     *
     * @param record
     * @return
     */
    List<Archive_Master> getDoctorInCharge(Archive_Master record);

    /**
     * 查询病案室操作记录
     */
    List<Archive_Master_Vo> selectHandleDetail(Archive_Master_Vo record);

    //查询超期天数列表
    List<Archive_Master_Vo> selectOverdue(Archive_Master_Vo record);

    //封存日志
    List<Archive_Master_Vo> selectByFollowinglog(Archive_Master_Vo record);

    /**
     * 查询病案是否存在
     * */
    List<Archive_Master>  selectByObject(@Param(value = "patientId") String patientId,@Param(value = "visitId")String visitId);
}