package org.dromara.web.mapper; import org.apache.ibatis.annotations.Select; import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; import org.dromara.web.domain.TreatmentUser; import org.dromara.web.domain.vo.TreatmentUserVo; import org.dromara.web.domain.vo.indexData.PatientOverviewVo; import org.springframework.stereotype.Repository; /** * 【请填写功能名称】Mapper接口 * * @author Lion Li * @date 2025-06-24 */ @Repository public interface TreatmentUserMapper extends BaseMapperPlus { @Select("SELECT COUNT(DISTINCT sp.id) AS total, " + " COUNT(DISTINCT CASE WHEN latest_rec.type = '1' AND latest_rec.medical_type != '2' THEN sp.id END) AS outpatient, " + " COUNT(DISTINCT CASE WHEN latest_rec.type = '0' AND latest_rec.medical_type != '2' AND latest_rec.discharge_date IS NULL THEN sp.id END) AS inpatient " + "FROM sys_patient sp " + "LEFT JOIN ( " + " SELECT pmr1.* " + " FROM patient_medical_record pmr1 " + " INNER JOIN ( " + " SELECT treat_num, MAX(create_time) as max_create_time " + " FROM patient_medical_record " + " WHERE del_flag = '0' " + " GROUP BY treat_num " + " ) pmr2 ON pmr1.treat_num = pmr2.treat_num AND pmr1.create_time = pmr2.max_create_time " + " WHERE pmr1.del_flag = '0' " + ") latest_rec ON sp.treat_num = latest_rec.treat_num " + "WHERE sp.del_flag = '0'") PatientOverviewVo selectCount(); }