病人管理 格式化代码
This commit is contained in:
@@ -31,26 +31,16 @@ public interface IOutpatientSkinTestRecordService {
|
||||
* @param outpatientSkinTestRecordSearchParam 查询条件
|
||||
* @param pageNo 页码(默认为1)
|
||||
* @param pageSize 每页大小(默认为10)
|
||||
* @return 获取门诊皮试记录列表
|
||||
*/
|
||||
Page<OutpatientSkinTestRecordDto> getSkinTestRecords(
|
||||
OutpatientSkinTestRecordSearchParam outpatientSkinTestRecordSearchParam, Integer pageNo, Integer pageSize);
|
||||
|
||||
/**
|
||||
* 获取门诊皮试记录列表
|
||||
*
|
||||
* @param outpatientSkinTestRecordSearchParam 门诊皮试记录查询参数
|
||||
* @param pageSize 页面大小
|
||||
* @param offset 跳过条数
|
||||
* @return 分页查询
|
||||
*/
|
||||
List<OutpatientSkinTestRecordDto> getOutpatientSkinTestRecord(
|
||||
@Param("OutpatientSkinTestRecordSearchParam") OutpatientSkinTestRecordSearchParam outpatientSkinTestRecordSearchParam,
|
||||
@Param("pageSize") Integer pageSize, @Param("offset") Integer offset);
|
||||
|
||||
/**
|
||||
* 护士确认执行皮试后,更新皮试记录信息(服务申请管理与过敏与不耐受的相关字段更新)
|
||||
*
|
||||
* @param outpatientSkinTestRecordDto 皮试记录信息
|
||||
* @return 更新结果
|
||||
*/
|
||||
boolean editSkinTestRecord(OutpatientSkinTestRecordDto outpatientSkinTestRecordDto);
|
||||
|
||||
@@ -58,8 +48,8 @@ public interface IOutpatientSkinTestRecordService {
|
||||
* 护士核对皮试结果后,确认签名(服务申请管理与过敏与不耐受的相关字段更新)
|
||||
*
|
||||
* @param outpatientSkinTestRecordDto 皮试记录信息
|
||||
* @return 更新结果
|
||||
*/
|
||||
boolean nurseSignChkPs(OutpatientSkinTestRecordDto outpatientSkinTestRecordDto);
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -132,21 +132,6 @@ public class OutpatientSkinTestRecordServiceImpl implements IOutpatientSkinTestR
|
||||
return outpatientSkinTestRecordPage;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取门诊皮试记录列表
|
||||
*
|
||||
* @param outpatientSkinTestRecordSearchParam 门诊皮试记录查询参数
|
||||
* @param pageSize 页面大小
|
||||
* @param offset 跳过条数
|
||||
* @return 分页查询
|
||||
*/
|
||||
@Override
|
||||
public List<OutpatientSkinTestRecordDto> getOutpatientSkinTestRecord(
|
||||
OutpatientSkinTestRecordSearchParam outpatientSkinTestRecordSearchParam, Integer pageSize, Integer offset) {
|
||||
return outpatientManageMapper.getOutpatientSkinTestRecord(outpatientSkinTestRecordSearchParam, pageSize,
|
||||
offset);
|
||||
}
|
||||
|
||||
/**
|
||||
* 护士确认执行皮试后,更新皮试记录信息(服务申请管理与过敏与不耐受的相关字段更新)
|
||||
*
|
||||
|
||||
@@ -1,11 +1,17 @@
|
||||
package com.openhis.web.patientmanage.appservice;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.core.common.core.domain.R;
|
||||
import com.openhis.web.outpatientmanage.dto.OutpatientSkinTestRecordDto;
|
||||
import com.openhis.web.patientmanage.dto.PatientInfoInitDto;
|
||||
import com.openhis.web.patientmanage.dto.PatientInformationDto;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
|
||||
/**
|
||||
* 病人管理——病人信息
|
||||
*
|
||||
* @author Wuser
|
||||
* @author liuhr
|
||||
* @date 2025/3/15
|
||||
*/
|
||||
public interface IPatientInformationService {
|
||||
@@ -16,4 +22,39 @@ public interface IPatientInformationService {
|
||||
* @return 病人信息记录初期数据列表
|
||||
*/
|
||||
PatientInfoInitDto getPatientInfoInit();
|
||||
|
||||
/**
|
||||
* 分页查询病人信息
|
||||
*
|
||||
* @param busNo 病人ID(可选)
|
||||
* @param name 病人姓名(可选)
|
||||
* @param pageNo 页码(默认为1)
|
||||
* @param pageSize 每页大小(默认为10))
|
||||
* @return 分页查询
|
||||
*/
|
||||
Page<PatientInformationDto> getPatient(String busNo, String name, Integer pageNo, Integer pageSize);
|
||||
|
||||
/**
|
||||
* 修改病人信息
|
||||
*
|
||||
* @param patientInformationDto 病人信息
|
||||
* @return 更新结果
|
||||
*/
|
||||
R<?> editPatient(PatientInformationDto patientInformationDto);
|
||||
|
||||
/**
|
||||
* 添加病人信息
|
||||
*
|
||||
* @param patientInformationDto 病人信息
|
||||
*/
|
||||
R<?> addPatient(PatientInformationDto patientInformationDto);
|
||||
|
||||
/**
|
||||
* 判断身份证号是否存在
|
||||
*
|
||||
* @param idCard 身份证号
|
||||
* @return 是/否
|
||||
*/
|
||||
boolean existsByIdCard(String idCard);
|
||||
|
||||
}
|
||||
|
||||
@@ -4,10 +4,28 @@ import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
import com.core.common.utils.MessageUtils;
|
||||
import com.openhis.common.constant.PromptMsgConstant;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.core.common.core.domain.R;
|
||||
import com.core.common.enums.AssignSeqEnum;
|
||||
import com.core.common.utils.AssignSeqUtil;
|
||||
import com.core.common.utils.ChineseConvertUtils;
|
||||
import com.core.common.utils.DateUtils;
|
||||
import com.core.common.utils.bean.BeanUtils;
|
||||
import com.openhis.administration.domain.Patient;
|
||||
import com.openhis.administration.mapper.PatientMapper;
|
||||
import com.openhis.administration.service.IPatientService;
|
||||
import com.openhis.common.enums.*;
|
||||
import com.openhis.common.utils.EnumUtils;
|
||||
import com.openhis.web.patientmanage.appservice.IPatientInformationService;
|
||||
import com.openhis.web.patientmanage.dto.PatientInfoInitDto;
|
||||
import org.springframework.stereotype.Service;
|
||||
import com.openhis.web.patientmanage.dto.PatientInformationDto;
|
||||
import com.openhis.web.patientmanage.mapper.PatientManageMapper;
|
||||
|
||||
/**
|
||||
* 门诊患者
|
||||
@@ -18,6 +36,21 @@ import org.springframework.stereotype.Service;
|
||||
@Service
|
||||
public class PatientInformationServiceImpl implements IPatientInformationService {
|
||||
|
||||
@Autowired
|
||||
PatientManageMapper patientManageMapper;
|
||||
|
||||
@Autowired
|
||||
PatientMapper patientMapper;
|
||||
|
||||
@Autowired
|
||||
IPatientService patientService;
|
||||
|
||||
@Autowired(required = false)
|
||||
AssignSeqUtil assignSeqUtil;
|
||||
|
||||
// todo 暂且机构ID写死,后续从登录里取得
|
||||
private final Long organizationId = 91L;
|
||||
|
||||
/**
|
||||
* 获取病人信息记录初期数据列表
|
||||
*
|
||||
@@ -65,4 +98,135 @@ public class PatientInformationServiceImpl implements IPatientInformationService
|
||||
return initDto;
|
||||
}
|
||||
|
||||
/**
|
||||
* 分页查询病人信息
|
||||
*
|
||||
* @param busNo 病人ID(可选)
|
||||
* @param name 病人姓名(可选)
|
||||
* @param pageNo 页码(默认为1)
|
||||
* @param pageSize 每页大小(默认为10))
|
||||
* @return 分页查询
|
||||
*/
|
||||
@Override
|
||||
public Page<PatientInformationDto> getPatient(String busNo, String name, Integer pageNo, Integer pageSize) {
|
||||
// 跳过的记录数
|
||||
Integer offset = (pageNo - 1) * pageSize;
|
||||
// 连表查询患者信息
|
||||
List<PatientInformationDto> listPatients = patientManageMapper.getPatientPage(busNo, name, pageSize, offset);
|
||||
// 查询总记录数
|
||||
long total = patientManageMapper.countPatients(busNo, name);
|
||||
// 创建Page对象并设置属性
|
||||
Page<PatientInformationDto> patientInformationPage = new Page<>(pageNo, pageSize, total);
|
||||
patientInformationPage.setRecords(listPatients);
|
||||
patientInformationPage.getRecords().forEach(e -> {
|
||||
// 性别枚举类回显赋值
|
||||
e.setGenderEnum_enumText(EnumUtils.getInfoByValue(AdministrativeGender.class, e.getGenderEnum()));
|
||||
// 婚姻状态枚举类回显赋值
|
||||
e.setMaritalStatusEnum_enumText(EnumUtils.getInfoByValue(MaritalStatus.class, e.getMaritalStatusEnum()));
|
||||
// 职业编码枚举类回显赋值
|
||||
e.setPrfsEnum_enumText(EnumUtils.getInfoByValue(OccupationType.class, e.getPrfsEnum()));
|
||||
// 血型ABO枚举类回显赋值
|
||||
e.setBloodAbo_enumText(EnumUtils.getInfoByValue(BloodTypeABO.class, e.getBloodAbo()));
|
||||
// 血型RH枚举类回显赋值
|
||||
e.setBloodRh_enumText(EnumUtils.getInfoByValue(BloodTypeRH.class, e.getBloodRh()));
|
||||
// 家庭关系枚举类回显赋值
|
||||
e.setLinkRelationCode_enumText(
|
||||
EnumUtils.getInfoByValue(FamilyRelationshipType.class, e.getLinkRelationCode()));
|
||||
});
|
||||
return patientInformationPage;
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改病人信息
|
||||
*
|
||||
* @param patientInformationDto 病人信息
|
||||
* @return 更新结果
|
||||
*/
|
||||
@Override
|
||||
public R<?> editPatient(PatientInformationDto patientInformationDto) {
|
||||
|
||||
Patient patient = new Patient();
|
||||
BeanUtils.copyProperties(patientInformationDto, patient);
|
||||
|
||||
// 设置生日
|
||||
patient.setBirthDate(DateUtils.extractBirthday(patient.getIdCard()));
|
||||
// 设置拼音首拼
|
||||
patient.setPyStr(ChineseConvertUtils.toPinyinFirstLetter(patient.getName()));
|
||||
// 设置五笔首拼
|
||||
patient.setWbStr(ChineseConvertUtils.toWBFirstLetter(patient.getName()));
|
||||
// 设置死亡时间,死亡时间未来时报错
|
||||
if (DateUtils.isFuture(patientInformationDto.getDeceasedDate())) {
|
||||
return R.fail("死亡时间未来时间是未来时间!");
|
||||
}
|
||||
patient.setDeceasedDate(DateUtils.parseDate(patientInformationDto.getDeceasedDate()));
|
||||
|
||||
// 调用服务层更新病人信息
|
||||
boolean result = patientService.updateById(patient);
|
||||
if (result) {
|
||||
return R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00001, new Object[] {"病人信息"}));
|
||||
} else {
|
||||
return R.fail(MessageUtils.createMessage(PromptMsgConstant.Common.M00007, null));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 添加病人信息
|
||||
*
|
||||
* @param patientInformationDto 病人信息
|
||||
*/
|
||||
@Override
|
||||
public R<?> addPatient(PatientInformationDto patientInformationDto) {
|
||||
|
||||
Patient patient = new Patient();
|
||||
BeanUtils.copyProperties(patientInformationDto, patient);
|
||||
|
||||
// 使用基础采番,设置病人ID
|
||||
String code = assignSeqUtil.getSeq(AssignSeqEnum.PATIENT_NUM.getPrefix());
|
||||
patient.setBusNo(code);
|
||||
|
||||
// 设置机构ID
|
||||
patient.setOrganizationId(organizationId);
|
||||
// 设置生日
|
||||
patient.setBirthDate(DateUtils.extractBirthday(patient.getIdCard()));
|
||||
// 设置拼音首拼
|
||||
patient.setPyStr(ChineseConvertUtils.toPinyinFirstLetter(patient.getName()));
|
||||
// 设置五笔首拼
|
||||
patient.setWbStr(ChineseConvertUtils.toWBFirstLetter(patient.getName()));
|
||||
// 设置死亡时间,死亡时间未来时报错
|
||||
if (DateUtils.isFuture(patientInformationDto.getDeceasedDate())) {
|
||||
return R.fail("死亡时间未来时间是未来时间!");
|
||||
}
|
||||
// 身份证号存在check
|
||||
if (existsByIdCard(patientInformationDto.getIdCard())) {
|
||||
// 身份证号存在
|
||||
return R.fail("身份证号已存在!");
|
||||
}
|
||||
patient.setDeceasedDate(DateUtils.parseDate(patientInformationDto.getDeceasedDate()));
|
||||
|
||||
// 调用服务层保存病人信息
|
||||
boolean result = patientService.save(patient);
|
||||
if (result) {
|
||||
return R.ok("病人信息添加成功!");
|
||||
} else {
|
||||
return R.fail("病人信息添加失败!");
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 判断身份证号是否存在
|
||||
*
|
||||
* @param idCard 身份证号
|
||||
* @return 是/否
|
||||
*/
|
||||
public boolean existsByIdCard(String idCard) {
|
||||
// 构造查询条件
|
||||
LambdaQueryWrapper<Patient> queryWrapper = new LambdaQueryWrapper<>();
|
||||
queryWrapper.eq(Patient::getIdCard, idCard);
|
||||
if (patientMapper.selectOne(queryWrapper) == null) {
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1,29 +1,16 @@
|
||||
package com.openhis.web.patientmanage.controller;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
import com.openhis.web.patientmanage.appservice.IPatientInformationService;
|
||||
import lombok.AllArgsConstructor;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.core.common.core.domain.R;
|
||||
import com.core.common.enums.AssignSeqEnum;
|
||||
import com.core.common.utils.*;
|
||||
import com.core.common.utils.bean.BeanUtils;
|
||||
import com.openhis.administration.domain.Patient;
|
||||
import com.openhis.administration.service.IPatientService;
|
||||
import com.core.common.utils.MessageUtils;
|
||||
import com.openhis.common.constant.PromptMsgConstant;
|
||||
import com.openhis.common.enums.*;
|
||||
import com.openhis.common.utils.EnumUtils;
|
||||
import com.openhis.web.patientmanage.appservice.IPatientInformationService;
|
||||
import com.openhis.web.patientmanage.dto.PatientInformationDto;
|
||||
import com.openhis.web.patientmanage.dto.PatientInfoInitDto;
|
||||
import com.openhis.web.patientmanage.mapper.PatientManageMapper;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
/**
|
||||
@@ -38,24 +25,9 @@ import lombok.extern.slf4j.Slf4j;
|
||||
@AllArgsConstructor
|
||||
public class PatientInformationController {
|
||||
|
||||
@Autowired
|
||||
private IPatientService patientService;
|
||||
|
||||
@Autowired(required = false)
|
||||
private AssignSeqUtil assignSeqUtil;
|
||||
|
||||
@Autowired(required = false)
|
||||
PatientManageMapper patientManageMapper;
|
||||
//
|
||||
// @Autowired(required = false)
|
||||
// StringUtils stringUtils;
|
||||
|
||||
@Autowired
|
||||
IPatientInformationService patientInformationService;
|
||||
|
||||
// todo 暂且机构ID写死,后续从登录里取得
|
||||
private final Long organizationId = 91L;
|
||||
|
||||
/**
|
||||
* 病人信息记录初期数据列表
|
||||
*
|
||||
@@ -72,38 +44,10 @@ public class PatientInformationController {
|
||||
*
|
||||
* @param patientInformationDto 病人信息
|
||||
*/
|
||||
// @PostMapping("/patient-information")
|
||||
// public R<?> addPatient(@Validated @RequestBody PatientInformationDto patientInformationDto) {
|
||||
//
|
||||
// Patient patient = new Patient();
|
||||
// BeanUtils.copyProperties(patientInformationDto, patient);
|
||||
//
|
||||
// // 使用基础采番,设置病人ID
|
||||
// String code = assignSeqUtil.getSeq(AssignSeqEnum.PATIENT_NUM.getPrefix());
|
||||
// patient.setBusNo(code);
|
||||
//
|
||||
// // 设置机构ID
|
||||
// patient.setOrganizationId(organizationId);
|
||||
// // 设置生日
|
||||
// patient.setBirthDate(patientService.extractBirthday(patient.getIdCard()));
|
||||
// // 设置拼音首拼
|
||||
// patient.setPyStr(ChineseConvertUtils.toPinyinFirstLetter(patient.getName()));
|
||||
// // 设置五笔首拼
|
||||
// patient.setWbStr(ChineseConvertUtils.toWBFirstLetter(patient.getName()));
|
||||
// // 设置死亡时间
|
||||
// if (patientService.isFuture(patientInformationDto.getDeceasedDate())) {
|
||||
// return R.fail(MessageUtils.createMessage(PromptMsgConstant.Common.M00003, new Object[] {"死亡时间未来时"}));
|
||||
// }
|
||||
// patient.setDeceasedDate(DateUtils.parseDate(patientInformationDto.getDeceasedDate()));
|
||||
// // 调用服务层保存病人信息
|
||||
// boolean savePatientSuccess = patientService.save(patient);
|
||||
//
|
||||
// if (!savePatientSuccess) {
|
||||
// return R.fail(MessageUtils.createMessage(PromptMsgConstant.Common.M00003, null));
|
||||
// }
|
||||
//
|
||||
// return R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00001, new Object[] {"病人信息"}));
|
||||
// }
|
||||
@PostMapping("/patient-information")
|
||||
public R<?> addPatient(@Validated @RequestBody PatientInformationDto patientInformationDto) {
|
||||
return patientInformationService.addPatient(patientInformationDto);
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改病人信息
|
||||
@@ -112,26 +56,8 @@ public class PatientInformationController {
|
||||
*/
|
||||
@PutMapping("/patient-information")
|
||||
public R<?> editPatient(@Validated @RequestBody PatientInformationDto patientInformationDto) {
|
||||
|
||||
Patient patient = new Patient();
|
||||
BeanUtils.copyProperties(patientInformationDto, patient);
|
||||
|
||||
// 设置生日
|
||||
patient.setBirthDate(patientService.extractBirthday(patient.getIdCard()));
|
||||
// 设置拼音首拼
|
||||
patient.setPyStr(ChineseConvertUtils.toPinyinFirstLetter(patient.getName()));
|
||||
// 设置五笔首拼
|
||||
patient.setWbStr(ChineseConvertUtils.toWBFirstLetter(patient.getName()));
|
||||
// 设置死亡时间
|
||||
if (patientService.isFuture(patientInformationDto.getDeceasedDate())) {
|
||||
return R.fail(MessageUtils.createMessage(PromptMsgConstant.Common.M00007, new Object[] {"死亡时间未来时"}));
|
||||
}
|
||||
patient.setDeceasedDate(DateUtils.parseDate(patientInformationDto.getDeceasedDate()));
|
||||
|
||||
// 调用服务层更新病人信息
|
||||
return patientService.updateById(patient)
|
||||
? R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00001, new Object[] {"病人信息"}))
|
||||
: R.fail(MessageUtils.createMessage(PromptMsgConstant.Common.M00007, null));
|
||||
return patientInformationService.editPatient(patientInformationDto);
|
||||
|
||||
}
|
||||
|
||||
@@ -148,31 +74,7 @@ public class PatientInformationController {
|
||||
@RequestParam(value = "pageNo", defaultValue = "1") Integer pageNo,
|
||||
@RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize) {
|
||||
|
||||
// 跳过的记录数
|
||||
Integer offset = (pageNo - 1) * pageSize;
|
||||
// 连表查询患者信息
|
||||
List<PatientInformationDto> listPatients = patientManageMapper.getPatientPage(busNo, name, pageSize, offset);
|
||||
// 查询总记录数
|
||||
long total = patientManageMapper.countPatients(busNo, name);
|
||||
// 创建Page对象并设置属性
|
||||
Page<PatientInformationDto> patientInformationPage = new Page<>(pageNo, pageSize, total);
|
||||
patientInformationPage.setRecords(listPatients);
|
||||
patientInformationPage.getRecords().forEach(e -> {
|
||||
// 性别枚举类回显赋值
|
||||
e.setGenderEnum_enumText(EnumUtils.getInfoByValue(AdministrativeGender.class, e.getGenderEnum()));
|
||||
// 婚姻状态枚举类回显赋值
|
||||
e.setMaritalStatusEnum_enumText(EnumUtils.getInfoByValue(MaritalStatus.class, e.getMaritalStatusEnum()));
|
||||
// 职业编码枚举类回显赋值
|
||||
e.setPrfsEnum_enumText(EnumUtils.getInfoByValue(OccupationType.class, e.getPrfsEnum()));
|
||||
// 血型ABO枚举类回显赋值
|
||||
e.setBloodAbo_enumText(EnumUtils.getInfoByValue(BloodTypeABO.class, e.getBloodAbo()));
|
||||
// 血型RH枚举类回显赋值
|
||||
e.setBloodRh_enumText(EnumUtils.getInfoByValue(BloodTypeRH.class, e.getBloodRh()));
|
||||
// 家庭关系枚举类回显赋值
|
||||
e.setLinkRelationCode_enumText(
|
||||
EnumUtils.getInfoByValue(FamilyRelationshipType.class, e.getLinkRelationCode()));
|
||||
});
|
||||
return R.ok(patientInformationPage);
|
||||
return R.ok(patientInformationService.getPatient(busNo, name, pageNo, pageSize));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
<mapper namespace="com.openhis.web.outpatientmanage.mapper.OutpatientManageMapper">
|
||||
|
||||
<!-- 门诊皮试记录相关查询-->
|
||||
<select id="getOutpatientSkinTestRecord"
|
||||
<select id="getSkinTestRecords"
|
||||
parameterType="com.openhis.web.outpatientmanage.dto.OutpatientSkinTestRecordSearchParam"
|
||||
resultType="com.openhis.web.outpatientmanage.dto.OutpatientSkinTestRecordDto">
|
||||
SELECT
|
||||
|
||||
Reference in New Issue
Block a user