package com.emr.dao;

import com.emr.vo.commomSearch.CommomTree;
import com.emr.vo.commomSearch.CommomVo;
import com.emr.vo.FontVo.FontCommom;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface CommomMapper {
    /**
     * 查询所有集合
     * */
    List<CommomVo> selectAll(@Param("sql") String sql);

    /**
     * 查询所有集合
     * */
    List<CommomVo> selectFilePath(@Param("patientId") String patientId);
    /**
     * 根据patientIds查询所有集合
     * */
    List<CommomVo> selectAllByPatients(@Param("patientIds") String patientIds);
    /**
     * 根据住院次数和病案号和姓名查询patientId
     * */
    List<String> selectPatientIdByAdmissTimesAndInpatientNoAndName(
            @Param("admissTimes") Short admissTimes,@Param("inpatientNo") String inpatientNo,
            @Param("name")String name,@Param("startTime2")String startTime2,@Param("endTime2")String endTime2);
    /**
     * 根据patientId查询病案分类个数
     * */
    List<CommomTree> selectScanCountByPatientId(@Param("patientId") String patientId,@Param("roleId")Integer roleId,
                                                @Param("userId")Integer userId);
    /**
     * 脐血库根据patientId查询病案
     * */
    List<CommomTree> selectScanPathByPatientId(@Param("patientId") String patientId,@Param("roleId")Integer roleId,
                                                @Param("userId")Integer userId);
    /**
     * 根据patientId查询归档病案分类个数
     * */
    List<CommomTree> selectScanCountByMedicalPatientId(@Param("patientId") String patientId,@Param("roleId")Integer roleId,
                                                @Param("userId")Integer userId);
    /**
     * 根据patientId查询其他诊断
     * */
    List<CommomVo> selectOtherDiagByPatientId(@Param("patientId") String patientId,@Param("flag")String flag);
    /**
     * selectAdmissTimesByNameAndNo
     * */
    List<CommomVo> selectAdmissTimesByNameAndNo(@Param("name") String name,@Param("inpatientNo") String inpatientNo);
    /**
     * getInpatientNosByName,根据姓名模糊查询病案号
     * */
    List<CommomVo> getInpatientNosByName(@Param("inpatientNo") String inpatientNo,@Param("name")String name);
    /**
     * getInpatientList 查询病案记录
     * */
    List<FontCommom> getInpatientList(FontCommom record);
    /**
     * isExistInpatientOrAdmissId 根据病案号或住院号查询该病案是否存在
     * */
    int isExistInpatientOrAdmissIdOridCard(@Param("inpatientNo")String inpatientNo,@Param("idCard")String idCard,@Param("admissId")String admissId,@Param("patientId")String patientId);
    int isExistInpatientOrAdmissId(@Param("inpatientNo")String inpatientNo,@Param("admissId")String admissId,@Param("patientId")String patientId);
    /**
     * isExistInpatient 根据条件查询该病案是否存在
     * */
    List<FontCommom> isExistInpatient(FontCommom record);

    int insertSelective(CommomVo record);

    CommomVo selectByPrimaryKey(@Param("patientId") String patientId);

    CommomVo selectByPrimaryKeyPath(String patientId);

    int updateByPrimaryKeySelective(CommomVo record);

    int insertSelective1(CommomVo record);

    CommomVo selectByPrimaryKey1(String patientId);

    int updateByPrimaryKeySelective1(CommomVo record);
    /**
     * 查询表列数个数
     * */
    int selectColByTableName(@Param("tableName")String tableName);

    //commomtable1表的肿瘤信息
    CommomVo selectTumourByPatientId(@Param("patientId")String patientId);

    /**
     * 按病案号查询patientId,name,admissId
     * */
    List<CommomVo> selectCommomByInpatientNo(@Param("inpatientNo")String inpatientNo);
    /**
     * 按病案号查询patientId,name,admissId
     * */
    List<CommomVo> selectCommomByInpatientNo2(@Param("inpatientNo")String inpatientNo,@Param("idCard")String idCard);

    List<CommomVo> selectMasterByInpatientNo(@Param("inpatientNo")String inpatientNo,@Param("idCard")String idCard);

    List<CommomVo> selectMasterByPatientId(@Param("patientId")String patientId);

    /**
     * 查询病案信息的病案号和病人名称
     * @return
     */
    List<CommomVo> selectAllInfo();

    /**
     * 查询病案记录数
     * @return
     */
    int selectCommomCount();

    int selectCountByPatients(String inpatientNo);

    /**
     * 修改病案备注
     */
    int updateRecordReMark(CommomVo commomVo);

    void SimpleInsert(@Param("list")List list);


    /**
     * 查询所有集合
     * */
    List<CommomVo> selectAllAndPatientId(@Param("patientId")String patientId);

    /**
     * @description: 根据病案主键查文件路径
     * @params:  patientId
     * @author linjj
     * @date: 2023/7/5 17:42
     */
    List<String> selectPathLIst(@Param("patientId")String patientId);


    int selectAllMaster(@Param("inpatientNo")String inpatientNo,@Param("idCard")String idCar);

    String getPatientIdByInpNoAndVisitId(@Param("inpNo")String inpNo,@Param("visitId")String visitId);

}