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<PatMedInhosp> selectPatMedInhosp(PatMedInhosp patMedInhosp);
|
|
/**
|
* 按患者编号 + 出院日期查询出院记录(出院时间只比较到天,不比较时分秒)
|
*
|
* @param patno 患者编号
|
* @param dayStart 查询日期(当天 00:00:00)
|
* @param dayEnd 查询日期的次日 00:00:00
|
* @return 出院记录集合,按 inhospid 倒序
|
*/
|
public List<PatMedInhosp> 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<Map<String, Object>> getTagnameByPatids(@Param("patids") List<Long> patids);
|
|
/**
|
* 查询患者住院记录列表
|
*
|
* @param patMedInhosp 患者住院记录
|
* @return 患者住院记录集合
|
*/
|
public List<PatMedInhosp> selectPatMedInhospList(PatMedInhosp patMedInhosp);
|
|
public List<PatMedInhosp> selectPatMedInhospListBySerialnum(PatMedInhosp patMedInhosp);
|
|
public List<PatMedInhosp> selectPatMedInhospListByCondition(PatMedInhospVO patMedInhospVO);
|
|
/**
|
* 查询某机构下全部在院记录的"刷新候选"(供在院信息刷新按患者逐条核对位置)。
|
* <p>
|
* 与 {@link #selectPatMedInhospList} 的区别是刻意的:
|
* <ul>
|
* <li>不 join {@code pat_archive}、不做 GROUP BY —— 本用途只看 {@code pat_med_inhosp} 自身;
|
* <li>不带 {@code a.idcardno IS NOT NULL} 这类过滤(那会让"证件号还没补上的新入院患者"
|
* 静默漏刷新 —— 采集链路最怕的就是静默少数据);
|
* <li>只 select 刷新用得到的列(inhospid / serialnum / patname / orgid / campusid /
|
* 科室三列 / 病区三列 / bed_no),3000 行量级的每日全量扫描足够轻。</li>
|
* </ul>
|
*
|
* @param orgid 机构ID(如 20001001)
|
* @return 在院({@code inhospstate='0' and del_flag='0'})记录集合,按 inhospid 升序
|
*/
|
public List<PatMedInhosp> selectInhospRefreshCandidates(@Param("orgid") String orgid);
|
|
/**
|
* 新增患者住院记录
|
*
|
* @param patMedInhosp 患者住院记录
|
* @return 结果
|
*/
|
public int insertPatMedInhosp(PatMedInhosp patMedInhosp);
|
|
public int insertPatMedInhospBatch(@Param("list") List<PatMedInhosp> 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<PatMedInhosp> selectNeedProcessList();
|
}
|