/**   
* @Title: IHospitalBaseService.java 
* @Package com.platform.service.prereg
* @Description: TODO(医院基础信息查询接口类) 
* @author kiosk
* @date 2017年12月5日 下午5:10:48 
* @version V1.0   
*/
package com.platform.service;

import java.util.List;

import com.platform.pojo.*;

/**
 * @ClassName: IHospitalBaseService
 * @Description: TODO(医院基础信息查询接口)
 * @author kiosk
 * @date 2017年12月5日 下午5:10:48
 * 
 */
public interface IPreregService {

	/**
	 * 
	* @Title: selectVendorList 
	* @Description: TODO(查询厂商列表接口方法) 
	* @param @param example
	* @param @return    设定文件 
	* @return List<VendorInfo>    返回类型 
	* @throws
	 */
	public List<VendorInfo> selectVendorList(VendorInfoExample example);

	/**
	 * 
	* @Title: selectSecions 
	* @Description: TODO(查询排班科室列表接口方法) 
	* @param @param startDate
	* @param @param endDate
	* @param @param timeInterval
	* @param @return    设定文件 
	* @return List<ResponseParameter>    返回类型 
	* @throws
	 */
	public List<Section> selectSecions(String startDate, String endDate, String timeInterval,String sectionType);
	
	/**
	 * 
	* @Title: selectDoctors 
	* @Description: TODO(查询某科室下的医生排班信息) 
	* @param @param startDate
	* @param @param endDate
	* @param @param timeInterval
	* @param @param sectionNo
	* @param @return    设定文件 
	* @return List<Doctor>    返回类型 
	* @throws
	 */
	public List<Doctor> selectDoctors(String startDate, String endDate, String timeInterval,String sectionNo);
	
	/**
	 * 
	* @Title: selectTicketsAll 
	* @Description: TODO(查询全部可用号表明细) 
	* @param @param startDate
	* @param @param endDate
	* @param @param timeInterval
	* @param @param sectionNo
	* @param @param doctorNo
	* @param @return    设定文件 
	* @return List<Ticket>    返回类型 
	* @throws
	 */
	public List<Ticket> selectTicketsAll(String startDate, String endDate, String timeInterval,String sectionNo,String doctorNo);
	
	/**
	 * 
	* @Title: selectTicketsNoRetain 
	* @Description: TODO(查询除保留号外全部可用号源明细) 
	* @param @param startDate
	* @param @param endDate
	* @param @param timeInterval
	* @param @param sectionNo
	* @param @param doctorNo
	* @param @return    设定文件 
	* @return List<Ticket>    返回类型 
	* @throws
	 */
	public List<Ticket> selectTicketsNoRetain(String startDate, String endDate, String timeInterval,String sectionNo,String doctorNo);
	
	/**
	 * 
	* @Title: insertAndUpdate 
	* @Description: TODO(插入预约记录，并更新原号表记录为已预约) 
	* @param @param orderReg
	* @param @return    设定文件 
	* @return int    返回类型 
	* @throws
	 */
	public int insertAndUpdate(OrderReg orderReg);
	
	/**
	 * 
	* @Title: selectTicketsByRegTime 
	* @Description: TODO(根据挂号时间查询可预约的号表记录) 
	* @param @param regTime
	* @param @param timeInterval
	* @param @param sectionNo
	* @param @param doctorNo
	* @param @return    设定文件 
	* @return List<Ticket>    返回类型 
	* @throws
	 */
	public List<Ticket> selectTicketsByRegTime(String regTime, String timeInterval,String sectionNo,String doctorNo);
	
	/**
	 * 
	* @Title: selectAllSectionTypes 
	* @Description: TODO(这里用一句话描述这个方法的作用) 
	* @param @return    设定文件 
	* @return List<SectionType>    返回类型 
	* @throws
	 */
	public List<SectionType> selectAllSectionTypes();


	/**
	 *查询我的预约信息
	 * @param cardNo
	 * @param visitDate
	 * @return
	 */
	public List<OrderTicket> selectPreregedTickets(String cardNo,String visitDate);

	/**
	 *
	 * @param planId
	 * @return
	 */
	public int updateStatusFlag(String planId);

	/**
	 * 查询某医生的预约病人信息
	 */
	public List<PreregedPatient> selectPreregedPatients(String doctorNo,String startDate,String endDate);

	/**
	 * 根据主键更新锁号状态
	 * @param id
	 * @param statusId
	 * @return
	 */
	public int updateSchedulesPlanByPrimaryKey(String id, String statusId);
}
