/**
 * Copyright (C), 2015-2019
 * Author:   HJL
 * Date:     2019/7/19 15:27
 * Description:患者住院信息主索引表
 */
package com.emr.service;

import com.emr.entity.Archive_Master;
import com.emr.entity.Archive_Master_Vo;
import com.emr.entity.OffsetLimitPage;

import java.util.List;

public interface Archive_MasterService {
    /**
     * 根据id查询
     * @param id
     * @return
     */
    Archive_Master selectById(String id);
    /**
     * 根据字段查询记录
     * @param archiveMaster
     * @return
     */
    List<Archive_Master> selByCol(Archive_Master archiveMaster);
    /**
     * 根据条件查找病案在院列表分页
     * @param archiveMasterVo
     * @return
     */
    OffsetLimitPage selectByCol(Archive_Master_Vo archiveMasterVo, Integer offset, Integer limit);

    /**
     * 根据条件查找在院病案列表
     * @param archiveMasterVo
     * @return
     */
    List<Archive_Master> selectByCol(Archive_Master_Vo archiveMasterVo);

    /**
     * 根据条件查找病案终审列表分页
     *
     * @param archiveMasterVo
     * @return
     */
    List<Archive_Master_Vo> selectByLast(Archive_Master_Vo archiveMasterVo);

    /**
     * 根据条件查找'归档中','复审退回'病案列表
     *
     * @param archiveMasterVo
     * @return
     */
    List<Archive_Master_Vo> selectByColumn(Archive_Master_Vo archiveMasterVo);


    /**
     * 根据条件查找病案未归档列表分页
     *
     * @param archiveMasterVo
     * @return
     */
    List<Archive_Master_Vo> selectByUnfile(Archive_Master_Vo archiveMasterVo);
    /**
     * 根据条件查找病案未归档列表分页，除了已归档状态的记录
     *
     * @param archiveMasterVo
     * @return
     */
    //List<Archive_Master> selectByUnfile2(Archive_Master_Vo archiveMasterVo);
    /**
     * 导出超7天的，初审和已归档
     * @param record
     * @return
     */
   // List<Archive_Master> sel7DayByCol(Archive_Master_Vo record);

    /**
     * 根据条件查找'归档中','主任复审退回'病案列表
     *
     * @param archiveMasterVo
     * @return
     */
    List<Archive_Master_Vo> selectByCmtCol(Archive_Master_Vo archiveMasterVo);

    /**
     * 根据条件查找病案'归档中','审核退回'列表分页
     *
     * @param archiveMasterVo
     * @return
     */
    OffsetLimitPage selectByColumn(Archive_Master_Vo archiveMasterVo, Integer offset, Integer limit);


    /**
     * 根据条件查找未归档列表分页
     *
     * @param archiveMasterVo
     * @return
     */
    OffsetLimitPage selectByUnfile(Archive_Master_Vo archiveMasterVo, Integer offset, Integer limit);

    /**
     * 根据条件查找病案终审列表分页
     *
     * @param archiveMasterVo
     * @return
     */
    OffsetLimitPage selectByLast(Archive_Master_Vo archiveMasterVo, Integer offset, Integer limit);

    /**
     * 根据条件查找病案'归档中','主任审核退回'列表分页
     *
     * @param archiveMasterVo
     * @return
     */
    OffsetLimitPage selectByCmtCol(Archive_Master_Vo archiveMasterVo, Integer offset, Integer limit);

    /**
     * 根据条件查询记录
     * @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);

    /**
     * 当前科室归档情况报表
     * @param record
     * @return
     */
    List<Archive_Master> bbSel(Archive_Master_Vo record);

    /**
     * 当前科室归档情况报表
     *
     * @param archiveMasterVo
     * @return
     */
    OffsetLimitPage bbSel(Archive_Master_Vo archiveMasterVo, Integer offset, Integer limit);


    /**
     * 当前科室超期病历详情
     * @param record
     * @return
     */
    List<Archive_Master> bbSel2(Archive_Master_Vo record);

    /**
     * 当前科室超期病历详情
     *
     * @param archiveMasterVo
     * @return
     */
    OffsetLimitPage bbSel2(Archive_Master_Vo archiveMasterVo, Integer offset, Integer limit);

    /**
     * 根据条件查找案室操作记录
     *
     * @param archiveMasterVo
     * @return
     */
    List<Archive_Master_Vo> selectHandleDetail(Archive_Master_Vo archiveMasterVo);

    /**
     * 根据条件查找病案室操作记录
     *
     * @param archiveMasterVo
     * @return
     */
    OffsetLimitPage selectHandleDetail(Archive_Master_Vo archiveMasterVo, Integer offset, Integer limit);

    /**
     * 根据条件查找超期天数列表
     *
     * @param archiveMasterVo
     * @return
     */
    List<Archive_Master_Vo> selectOverdue(Archive_Master_Vo archiveMasterVo);

    /**
     * 根据条件查找超期天数列表
     *
     * @param archiveMasterVo
     * @return
     */
    OffsetLimitPage selectOverdue(Archive_Master_Vo archiveMasterVo, Integer offset, Integer limit);

    //封存日志
    OffsetLimitPage selectByFollowinglog(Archive_Master_Vo record, Integer offset, Integer limit);

    /**
     * 封存日志
     *
     * @param record
     * @return
     */
    List<Archive_Master_Vo> selectByFollowinglog(Archive_Master_Vo archiveMasterVo);

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

