using PoJun.Dapper.IRepository;
using ASHermed.SinoInterface.Entity.Test;
using System;
using System.Collections.Generic;
using System.Text;
using System.Threading.Tasks;
using ASHermed.SinoInterface.Repository.MySql;
using ASHermed.SinoInterface.Api.ContractModel.App;
using ASHermed.SinoInterface.Api.ContractModel;

namespace ASHermed.SinoInterface.Api.IRepository
{

    public interface IDicDoctorRepository : IBaseRepositoryToASHermed_SinoInterface<Dic_Doctor>
    {
        List<Dic_Doctor> GetAllDoctor();
        List<DoctorWithHosDeptByLanguage> SelectDetailByLanguage(int hosId, int deptId, int language, int source);
        List<AptDoctorByLanguage> SelectDeptDoctor(int hosId, int deptId, int language);
        List<VideoDoctor> GetVideoDoctorByDept(int deptId, int docId, int language, string key);
        List<RevisitDoctor> GetReVisitDoctorByDept(int deptId, int docId, int language, string key);

        List<VideoDoctor> GetAllWorkDoctorByDept(int deptId, int language);
        List<AllDoctorInfo> GetAllOnlineDoctors(int language);
        Dic_Doctor SelectByPrimaryKey(int doctorId);
        Dic_Doctor SelectById(int id, int language);
        List<DocDept> GetAllOnlineDeptDocInfo();
        List<DocDept> GetAllOnlineDeptInfo();
        int GetDocHisCareProvId(int doctorId);
        string GetAptDocPhone(int docId);

        List<Online_Doctor_Slot> GetDocSlot(int docId);

        Pub_Doctor_User_Info SelectDocListByHealthClub();
        Sys_User GetSysUserByHealthClub();
        List<InsurDoctor> GetInsurDocList(int type, int deptId, int language, string searchWords);
        List<RevisitDoctor> GetInsurDoctorByDept(int type, int deptId, int docId, int language, string key);
        DoctorUserInfoResp SelectDoctorWithStatusByImId(string docImId);
        OutMapDocPat SelectByDocIdWithPatId(int userId, int Id);
        Pub_Doctor_User_Info GetDoctorUserInfo(int doctorId);
        Sys_User GetSysUserById(int doctorId);
        Task<AptDocInfo> GetAptDocInfo(int docId, int language);
        List<Dic_Doctor> GetDocForHisDocId(List<string> hisDocIds, int deptId, int hosId);
        List<DicDoc> GetDocForHisDocIds(List<string> hisDocIds, int deptId, int language, int hosId);
        Task<List<DocHosDept>> GetDocDepts(int doctorId, int deptId, int language);
        List<AptDocList> GetAllConditionDoctor(int hosId, int language);
    }
}
