package com.ruoyi.inhospvisit.mapper; import java.util.Date; import java.util.List; import java.util.Map; import com.ruoyi.inhospvisit.domain.PatMedInhosp; import com.ruoyi.inhospvisit.domain.PatMedInhospVO; import com.ruoyi.common.core.service.dto.PatMedReq; import com.ruoyi.common.core.service.dto.PatMedRes; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; /** * 患者住院记录Mapper接口 * * @author smartor * @date 2023-03-04 */ @Mapper public interface PatMedInhospMapper { /** * 查询患者住院记录 * * @param inhospid 患者住院记录主键 * @return 患者住院记录 */ public PatMedInhosp selectPatMedInhospByInhospid(Long inhospid); public List selectPatMedInhosp(PatMedInhosp patMedInhosp); /** * 按患者编号 + 出院日期查询出院记录(出院时间只比较到天,不比较时分秒) * * @param patno 患者编号 * @param dayStart 查询日期(当天 00:00:00) * @param dayEnd 查询日期的次日 00:00:00 * @return 出院记录集合,按 inhospid 倒序 */ public List selectOutInhospByPatnoAndOutDate(@Param("patno") String patno, @Param("dayStart") Date dayStart, @Param("dayEnd") Date dayEnd); public String getTagnameBypatid(Long patid); /** * 批量查询患者标签(GROUP_CONCAT 拼接后的标签串) * * @param patids 患者档案id集合,调用方须保证非空且已去重 * @return 每行含 patid、tagname 两个 key */ public List> getTagnameByPatids(@Param("patids") List patids); /** * 查询患者住院记录列表 * * @param patMedInhosp 患者住院记录 * @return 患者住院记录集合 */ public List selectPatMedInhospList(PatMedInhosp patMedInhosp); public List selectPatMedInhospListBySerialnum(PatMedInhosp patMedInhosp); public List selectPatMedInhospListByCondition(PatMedInhospVO patMedInhospVO); /** * 查询某机构下全部在院记录的"刷新候选"(供在院信息刷新按患者逐条核对位置)。 *

* 与 {@link #selectPatMedInhospList} 的区别是刻意的: *

    *
  • 不 join {@code pat_archive}、不做 GROUP BY —— 本用途只看 {@code pat_med_inhosp} 自身; *
  • 不带 {@code a.idcardno IS NOT NULL} 这类过滤(那会让"证件号还没补上的新入院患者" * 静默漏刷新 —— 采集链路最怕的就是静默少数据); *
  • 只 select 刷新用得到的列(inhospid / serialnum / patname / orgid / campusid / * 科室三列 / 病区三列 / bed_no),3000 行量级的每日全量扫描足够轻。
  • *
* * @param orgid 机构ID(如 20001001) * @return 在院({@code inhospstate='0' and del_flag='0'})记录集合,按 inhospid 升序 */ public List selectInhospRefreshCandidates(@Param("orgid") String orgid); /** * 新增患者住院记录 * * @param patMedInhosp 患者住院记录 * @return 结果 */ public int insertPatMedInhosp(PatMedInhosp patMedInhosp); public int insertPatMedInhospBatch(@Param("list") List list); /** * 修改患者住院记录 * * @param patMedInhosp 患者住院记录 * @return 结果 */ public int updatePatMedInhosp(PatMedInhosp patMedInhosp); /** * 删除患者住院记录 * * @param inhospid 患者住院记录主键 * @return 结果 */ public int deletePatMedInhospByInhospid(Long inhospid); /** * 删除患者住院记录 * * @param inhospno 患者住院编码 * @return 结果 */ public int deletePatMedInhospByInhospno(String inhospno); /** * 批量删除患者住院记录 * * @param inhospids 需要删除的数据主键集合 * @return 结果 */ public int deletePatMedInhospByInhospids(Long[] inhospids); /** * 出院、入院人数 * * @param patMedReq * @return */ public PatMedRes selectPatMedInhospCount(PatMedReq patMedReq); /** * 查询三个维度任意一个未处理的出院患者 * * @return */ public List selectNeedProcessList(); }