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 org.springframework.web.bind.annotation.PostMapping;

import java.util.List;

public interface CommomMapper {
    /**
     * 查询所有集合
     * */
    List<CommomVo> selectAll(@Param("sql") String sql);
    /**
     * 根据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);
    /**
     * 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 isExistInpatientOrAdmissId(@Param("inpatientNo")String inpatientNo,@Param("admissId")String admissId,@Param("patientId")String patientId);
    /**
     * isExistInpatient 根据条件查询该病案是否存在
     * */
    int 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);

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