package org.example.service; import org.example.entity.Patient; import org.example.mapper.PatientMapper; import org.example.util.PatientDataConverter; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.List; @Service public class PatientService { @Autowired private PatientMapper patientMapper; /** * 获取所有患者列表 * @return 患者列表 */ public List findAll() { return patientMapper.findAll(); } /** * 获取所有不同的护理级别 * @return 护理级别列表 */ public List findDistinctNurseLevels() { return patientMapper.findDistinctNurseLevels(); } /** * 获取所有不同的在院状态 * @return 在院状态列表 */ public List findDistinctInpatientStatuses() { return patientMapper.findDistinctInpatientStatuses(); } /** * 根据条件查询患者 * @return 患者列表 */ public List findWithConditions(String name, String department, String ward, String roomNo, String bedNo, String inpatientNo, String nurseLevel, String status, String admissionDateTime) { // 如果护理级别是中文描述,则转换为代码再查询 String nurseLevelCode = null; if (nurseLevel != null && !nurseLevel.isEmpty()) { nurseLevelCode = PatientDataConverter.convertNurseLevelToCode(nurseLevel); } // 如果在院状态是中文描述,则转换为代码再查询 String statusCode = null; if (status != null && !status.isEmpty()) { statusCode = PatientDataConverter.convertInpatientStatusToCode(status); } return patientMapper.findWithConditions(name, department, ward, roomNo, bedNo, inpatientNo, nurseLevelCode, statusCode, admissionDateTime); } /** * 根据住院号查询患者 * @param inpatientNo 住院号 * @return 患者信息 */ public Patient findByInpatientNo(String inpatientNo) { return patientMapper.findByInpatientNo(inpatientNo); } /** * 添加新患者 * @param patient 患者信息 */ public void addPatient(Patient patient) { patientMapper.insert(patient); } /** * 更新患者信息 * @param patient 患者信息 */ public void updatePatient(Patient patient) { patientMapper.update(patient); } /** * 删除患者 * @param inpatientNo 住院号 */ public void deletePatient(String inpatientNo) { patientMapper.deleteByInpatientNo(inpatientNo); } }