package cn.hnthyy.thmz.service.his.mz;

import cn.hnthyy.thmz.entity.MzException;
import cn.hnthyy.thmz.entity.his.mz.MzPatientMi;
import java.util.List;

public interface MzPatientMiService {
    /**
     * 按照卡号 或者病人ID 查询病人信息
     * @param icCardNo
     * @return
     */
    MzPatientMi queryByIcCardNo(String icCardNo);


    /**
     * 分页按照病人姓名模糊查询病人信息
     * @param name
     * @return
     */
    List<MzPatientMi> queryByNameFuzzy(String name,Integer pageIndex,Integer pageSize);


    /**
     * 按照id查询病人信息
     * @param patientId
     * @return
     */
    MzPatientMi queryByPatientId(String patientId);

    /**
     * 保存病人信息
     * @param mzPatientMi
     * @return
     */
    int saveMzPatientMi(MzPatientMi mzPatientMi) throws MzException;

    /**
     * 更新病人信息
     * @param mzPatientMi
     * @return
     */
    int modifyMzPatientMi(MzPatientMi mzPatientMi);

    /**
     * 按照身份证号码查询病人信息 ,如果病人id参数不为空，则是查询是否存在除当前编号以外的相同身份证号码
     * @param socialNo
     * @param patientId
     * @return
     */
    List<MzPatientMi> queryBySocialNo(String socialNo,String patientId);

    /**
     * 根据病人id集合查询病人信息
     * @param patientIds
     * @return
     */
    List<MzPatientMi> queryByPatientIds(List<String> patientIds);

    /**
     * 按照手机号查询病人信息
     * @param phoneNo
     * @return
     */
    List<MzPatientMi> queryByPhoneNo(String phoneNo);


    /**
     * 销卡
     * @param patientId
     * @return
     */
    int clearIcCardNo(String patientId);


    /**
     * 按照病人姓名模糊查询病人信息
     * @param name
     * @return
     */
    List<MzPatientMi> queryByName(String name);


    /**
     * 按照卡号 或者病人ID 或者病人姓名 模糊 查询病人信息
     * @param commonParams
     * @return
     */
    List<MzPatientMi> queryByCommonParams(String commonParams);
}
