123456789101112131415161718192021222324252627282930313233343536 |
- 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<TreatmentUser, TreatmentUserVo> {
- @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();
- }
|