完成93需求
This commit is contained in:
@@ -21,9 +21,11 @@ public interface ISurgeryAppService {
|
|||||||
* @param surgeryDto 查询条件
|
* @param surgeryDto 查询条件
|
||||||
* @param pageNo 当前页
|
* @param pageNo 当前页
|
||||||
* @param pageSize 每页条数
|
* @param pageSize 每页条数
|
||||||
|
* @param plannedTimeStart 计划开始时间
|
||||||
|
* @param plannedTimeEnd 计划结束时间
|
||||||
* @return 手术列表
|
* @return 手术列表
|
||||||
*/
|
*/
|
||||||
IPage<SurgeryDto> getSurgeryPage(SurgeryDto surgeryDto, Integer pageNo, Integer pageSize);
|
IPage<SurgeryDto> getSurgeryPage(SurgeryDto surgeryDto, Integer pageNo, Integer pageSize, String plannedTimeStart, String plannedTimeEnd);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 根据ID查询手术详情
|
* 根据ID查询手术详情
|
||||||
|
|||||||
@@ -0,0 +1,69 @@
|
|||||||
|
package com.openhis.web.clinicalmanage.appservice;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
|
import com.core.common.core.domain.R;
|
||||||
|
import com.openhis.web.clinicalmanage.dto.OpCreateScheduleDto;
|
||||||
|
import com.openhis.web.clinicalmanage.dto.OpScheduleDto;
|
||||||
|
|
||||||
|
import javax.servlet.http.HttpServletResponse;
|
||||||
|
import java.io.IOException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 手术安排业务层接口
|
||||||
|
*
|
||||||
|
* @author system
|
||||||
|
* @date 2026-01-28
|
||||||
|
*/
|
||||||
|
public interface ISurgicalScheduleAppService {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 分页查询手术安排列表
|
||||||
|
*
|
||||||
|
* @param opScheduleDto 查询条件
|
||||||
|
* @param pageNo 当前页
|
||||||
|
* @param pageSize 每页条数
|
||||||
|
* @return 手术安排列表
|
||||||
|
*/
|
||||||
|
IPage<OpScheduleDto> getSurgerySchedulePage(OpScheduleDto opScheduleDto, Integer pageNo, Integer pageSize);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据ID查询手术安排详情
|
||||||
|
*
|
||||||
|
* @param scheduleId 手术安排ID
|
||||||
|
* @return 手术安排详情
|
||||||
|
*/
|
||||||
|
R<OpScheduleDto> getSurgeryScheduleDetail(Long scheduleId);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增手术安排
|
||||||
|
*
|
||||||
|
* @param opCreateScheduleDto 手术安排信息
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
R<?> addSurgerySchedule(OpCreateScheduleDto opCreateScheduleDto);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改手术安排
|
||||||
|
*
|
||||||
|
* @param opScheduleDto 手术安排信息
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
R<?> updateSurgerySchedule(OpScheduleDto opScheduleDto);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除手术安排
|
||||||
|
*
|
||||||
|
* @param scheduleId 手术安排ID
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
R<?> deleteSurgerySchedule(Long scheduleId);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 导出手术安排列表
|
||||||
|
*
|
||||||
|
* @param opScheduleDto 查询条件
|
||||||
|
* @param response 响应对象
|
||||||
|
* @throws IOException 异常
|
||||||
|
*/
|
||||||
|
void exportSurgerySchedule(OpScheduleDto opScheduleDto, HttpServletResponse response) throws IOException;
|
||||||
|
}
|
||||||
@@ -47,8 +47,9 @@ import org.springframework.transaction.annotation.Transactional;
|
|||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
import java.time.format.DateTimeFormatter;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.stream.Collectors;
|
|
||||||
|
|
||||||
import static com.core.framework.datasource.DynamicDataSourceContextHolder.log;
|
import static com.core.framework.datasource.DynamicDataSourceContextHolder.log;
|
||||||
|
|
||||||
@@ -102,10 +103,12 @@ public class SurgeryAppServiceImpl implements ISurgeryAppService {
|
|||||||
* @param surgeryDto 查询条件
|
* @param surgeryDto 查询条件
|
||||||
* @param pageNo 当前页
|
* @param pageNo 当前页
|
||||||
* @param pageSize 每页条数
|
* @param pageSize 每页条数
|
||||||
|
* @param plannedTimeStart 计划开始时间
|
||||||
|
* @param plannedTimeEnd 计划结束时间
|
||||||
* @return 手术列表
|
* @return 手术列表
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public IPage<SurgeryDto> getSurgeryPage(SurgeryDto surgeryDto, Integer pageNo, Integer pageSize) {
|
public IPage<SurgeryDto> getSurgeryPage(SurgeryDto surgeryDto, Integer pageNo, Integer pageSize, String plannedTimeStart, String plannedTimeEnd) {
|
||||||
QueryWrapper<SurgeryDto> queryWrapper = HisQueryUtils.buildQueryWrapper(surgeryDto, null,
|
QueryWrapper<SurgeryDto> queryWrapper = HisQueryUtils.buildQueryWrapper(surgeryDto, null,
|
||||||
new HashSet<String>() {{
|
new HashSet<String>() {{
|
||||||
add("surgery_no");
|
add("surgery_no");
|
||||||
@@ -115,6 +118,37 @@ public class SurgeryAppServiceImpl implements ISurgeryAppService {
|
|||||||
add("anesthetist_name");
|
add("anesthetist_name");
|
||||||
add("org_name");
|
add("org_name");
|
||||||
}}, null);
|
}}, null);
|
||||||
|
|
||||||
|
// 添加计划时间范围查询
|
||||||
|
if (plannedTimeStart != null && !plannedTimeStart.isEmpty()) {
|
||||||
|
try {
|
||||||
|
LocalDateTime startDateTime = LocalDateTime.parse(plannedTimeStart, DateTimeFormatter.ISO_DATE_TIME);
|
||||||
|
queryWrapper.ge("planned_time", startDateTime);
|
||||||
|
} catch (Exception e) {
|
||||||
|
// 如果解析失败,尝试使用日期格式解析
|
||||||
|
try {
|
||||||
|
LocalDateTime startDateTime = LocalDateTime.parse(plannedTimeStart + "T00:00:00", DateTimeFormatter.ISO_DATE_TIME);
|
||||||
|
queryWrapper.ge("planned_time", startDateTime);
|
||||||
|
} catch (Exception ex) {
|
||||||
|
log.error("解析计划开始时间失败: {}", plannedTimeStart, ex);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (plannedTimeEnd != null && !plannedTimeEnd.isEmpty()) {
|
||||||
|
try {
|
||||||
|
LocalDateTime endDateTime = LocalDateTime.parse(plannedTimeEnd, DateTimeFormatter.ISO_DATE_TIME);
|
||||||
|
queryWrapper.le("planned_time", endDateTime);
|
||||||
|
} catch (Exception e) {
|
||||||
|
// 如果解析失败,尝试使用日期格式解析
|
||||||
|
try {
|
||||||
|
LocalDateTime endDateTime = LocalDateTime.parse(plannedTimeEnd + "T23:59:59", DateTimeFormatter.ISO_DATE_TIME);
|
||||||
|
queryWrapper.le("planned_time", endDateTime);
|
||||||
|
} catch (Exception ex) {
|
||||||
|
log.error("解析计划结束时间失败: {}", plannedTimeEnd, ex);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
queryWrapper.orderByDesc("create_time");
|
queryWrapper.orderByDesc("create_time");
|
||||||
return surgeryAppMapper.getSurgeryPage(new Page<>(pageNo, pageSize), queryWrapper);
|
return surgeryAppMapper.getSurgeryPage(new Page<>(pageNo, pageSize), queryWrapper);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,302 @@
|
|||||||
|
package com.openhis.web.clinicalmanage.appservice.impl;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
|
import com.core.common.core.domain.R;
|
||||||
|
import com.core.common.core.domain.model.LoginUser;
|
||||||
|
import com.core.common.utils.SecurityUtils;
|
||||||
|
import com.openhis.administration.domain.Patient;
|
||||||
|
import com.openhis.administration.service.IPatientService;
|
||||||
|
import com.openhis.surgicalschedule.domain.OpSchedule;
|
||||||
|
import com.openhis.surgicalschedule.service.IOpScheduleService;
|
||||||
|
import com.openhis.web.clinicalmanage.appservice.ISurgicalScheduleAppService;
|
||||||
|
import com.openhis.web.clinicalmanage.dto.OpCreateScheduleDto;
|
||||||
|
import com.openhis.web.clinicalmanage.dto.OpScheduleDto;
|
||||||
|
import com.openhis.web.clinicalmanage.mapper.SurgicalScheduleAppMapper;
|
||||||
|
import com.openhis.web.regdoctorstation.mapper.RequestFormManageAppMapper;
|
||||||
|
import org.springframework.beans.BeanUtils;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
|
import javax.annotation.Resource;
|
||||||
|
import javax.servlet.http.HttpServletResponse;
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.io.OutputStream;
|
||||||
|
import java.io.PrintWriter;
|
||||||
|
import java.net.URLEncoder;
|
||||||
|
import java.time.LocalDate;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
import java.util.Date;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 手术安排业务层实现类
|
||||||
|
*
|
||||||
|
* @author system
|
||||||
|
* @date 2026-01-28
|
||||||
|
*/
|
||||||
|
@Service
|
||||||
|
public class SurgicalScheduleAppServiceImpl implements ISurgicalScheduleAppService {
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private IOpScheduleService opScheduleService;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private IPatientService patientService;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private SurgicalScheduleAppMapper surgicalScheduleAppMapper;
|
||||||
|
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private RequestFormManageAppMapper requestFormManageAppMapper;
|
||||||
|
/**
|
||||||
|
* 分页查询手术安排列表
|
||||||
|
*
|
||||||
|
* @param opScheduleDto 查询条件
|
||||||
|
* @param pageNo 当前页
|
||||||
|
* @param pageSize 每页条数
|
||||||
|
* @return 手术安排列表
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public IPage<OpScheduleDto> getSurgerySchedulePage(OpScheduleDto opScheduleDto, Integer pageNo, Integer pageSize) {
|
||||||
|
return surgicalScheduleAppMapper.getSurgerySchedulePage(new Page<>(pageNo, pageSize), opScheduleDto);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据ID查询手术安排详情
|
||||||
|
*
|
||||||
|
* @param scheduleId 手术安排ID
|
||||||
|
* @return 手术安排详情
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public R<OpScheduleDto> getSurgeryScheduleDetail(Long scheduleId) {
|
||||||
|
OpScheduleDto opScheduleDto = surgicalScheduleAppMapper.getSurgeryScheduleDetail(scheduleId);
|
||||||
|
if (opScheduleDto == null) {
|
||||||
|
return R.fail("手术安排信息不存在");
|
||||||
|
}
|
||||||
|
return R.ok(opScheduleDto);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增手术安排
|
||||||
|
*
|
||||||
|
* @param opCreateScheduleDto 手术安排信息
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
@Transactional(rollbackFor = Exception.class)
|
||||||
|
public R<?> addSurgerySchedule(OpCreateScheduleDto opCreateScheduleDto) {
|
||||||
|
// 校验患者是否存在
|
||||||
|
if (opCreateScheduleDto.getPatientId() != null) {
|
||||||
|
Patient patient = patientService.getById(opCreateScheduleDto.getPatientId());
|
||||||
|
if (patient == null) {
|
||||||
|
return R.fail("患者信息不存在");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//校验该时段内手术间是否被占用
|
||||||
|
LocalDateTime scheduleDate = opCreateScheduleDto.getEntryTime();//入室时间
|
||||||
|
String roomCode = opCreateScheduleDto.getRoomCode();//手术室编号
|
||||||
|
LocalDateTime endTime = opCreateScheduleDto.getEndTime();//手术结束时间
|
||||||
|
Boolean scheduleConflict = surgicalScheduleAppMapper.isScheduleConflict(scheduleDate, endTime, roomCode);
|
||||||
|
if (scheduleConflict) {
|
||||||
|
return R.fail("该时段内手术间被占用");
|
||||||
|
}
|
||||||
|
|
||||||
|
LoginUser loginUser = new LoginUser();
|
||||||
|
//获取当前登录用户信息
|
||||||
|
loginUser = SecurityUtils.getLoginUser();
|
||||||
|
// 当前登录用户ID
|
||||||
|
Long userId = loginUser.getUserId();
|
||||||
|
|
||||||
|
// 转换为实体对象
|
||||||
|
OpSchedule opSchedule = new OpSchedule();
|
||||||
|
BeanUtils.copyProperties(opCreateScheduleDto, opSchedule);
|
||||||
|
|
||||||
|
// 设置创建者ID
|
||||||
|
opSchedule.setCreatorId(userId);
|
||||||
|
//设置创建人名称
|
||||||
|
opSchedule.setCreateBy(loginUser.getUsername());
|
||||||
|
//设置创建时间
|
||||||
|
opSchedule.setCreateTime(new Date());
|
||||||
|
// 设置租户ID
|
||||||
|
opSchedule.setTenantId(loginUser.getTenantId());
|
||||||
|
//设置手术状态
|
||||||
|
opSchedule.setOperStatus(0);
|
||||||
|
//修改申请表状态为已排期
|
||||||
|
|
||||||
|
// 保存手术安排
|
||||||
|
boolean saved = opScheduleService.save(opSchedule);
|
||||||
|
//修改申请单状态为已排期
|
||||||
|
|
||||||
|
if (!saved) {
|
||||||
|
return R.fail("新增手术安排失败");
|
||||||
|
}
|
||||||
|
|
||||||
|
return R.ok("新增手术安排成功");
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改手术安排
|
||||||
|
*
|
||||||
|
* @param opScheduleDto 手术安排信息
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
@Transactional(rollbackFor = Exception.class)
|
||||||
|
public R<?> updateSurgerySchedule(OpScheduleDto opScheduleDto) {
|
||||||
|
// 校验手术安排是否存在
|
||||||
|
if (opScheduleDto.getScheduleId() == null) {
|
||||||
|
return R.fail("排程号不能为空");
|
||||||
|
}
|
||||||
|
OpSchedule existSchedule = opScheduleService.getById(opScheduleDto.getScheduleId());
|
||||||
|
if (existSchedule == null) {
|
||||||
|
return R.fail("手术安排信息不存在");
|
||||||
|
}
|
||||||
|
|
||||||
|
// 转换为实体对象
|
||||||
|
OpSchedule opSchedule = new OpSchedule();
|
||||||
|
BeanUtils.copyProperties(opScheduleDto, opSchedule);
|
||||||
|
|
||||||
|
// 更新时间
|
||||||
|
opSchedule.setUpdateTime(new Date());
|
||||||
|
|
||||||
|
// 更新手术安排
|
||||||
|
boolean updated = opScheduleService.updateById(opSchedule);
|
||||||
|
if (!updated) {
|
||||||
|
return R.fail("修改手术安排失败");
|
||||||
|
}
|
||||||
|
|
||||||
|
return R.ok("修改手术安排成功");
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除手术安排
|
||||||
|
*
|
||||||
|
* @param scheduleId 手术安排ID
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
@Transactional(rollbackFor = Exception.class)
|
||||||
|
public R<?> deleteSurgerySchedule(Long scheduleId) {
|
||||||
|
// 校验手术安排是否存在
|
||||||
|
OpSchedule existSchedule = opScheduleService.getById(scheduleId);
|
||||||
|
if (existSchedule == null) {
|
||||||
|
return R.fail("手术安排信息不存在");
|
||||||
|
}
|
||||||
|
|
||||||
|
// 逻辑删除手术安排
|
||||||
|
boolean deleted = opScheduleService.removeById(scheduleId);
|
||||||
|
if (!deleted) {
|
||||||
|
return R.fail("删除手术安排失败");
|
||||||
|
}
|
||||||
|
|
||||||
|
return R.ok(null, "删除手术安排成功");
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 导出手术安排列表
|
||||||
|
*
|
||||||
|
* @param opScheduleDto 查询条件
|
||||||
|
* @param response 响应对象
|
||||||
|
* @throws IOException 异常
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public void exportSurgerySchedule(OpScheduleDto opScheduleDto, HttpServletResponse response) throws IOException {
|
||||||
|
// 查询所有符合条件的手术安排
|
||||||
|
List<OpScheduleDto> scheduleList = surgicalScheduleAppMapper.getSurgeryScheduleList(opScheduleDto);
|
||||||
|
|
||||||
|
// 设置响应头
|
||||||
|
response.setContentType("text/csv; charset=utf-8");
|
||||||
|
response.setHeader("Content-Disposition", "attachment; filename=" + URLEncoder.encode("手术安排列表.csv", "UTF-8"));
|
||||||
|
|
||||||
|
// 写入CSV文件
|
||||||
|
try (OutputStream outputStream = response.getOutputStream();
|
||||||
|
PrintWriter writer = new PrintWriter(outputStream)) {
|
||||||
|
|
||||||
|
// 写入UTF-8 BOM,解决Excel乱码问题
|
||||||
|
outputStream.write(0xEF);
|
||||||
|
outputStream.write(0xBB);
|
||||||
|
outputStream.write(0xBF);
|
||||||
|
|
||||||
|
// 写入表头(与前端表格完全一致)
|
||||||
|
writer.println("ID,卫生机构,姓名,就诊卡号,手术单号,手术名称,申请科室,手术类型,手术性质,主刀医生,麻醉方法,安排时间,操作人");
|
||||||
|
|
||||||
|
// 写入数据
|
||||||
|
int index = 0;
|
||||||
|
for (OpScheduleDto schedule : scheduleList) {
|
||||||
|
index++;
|
||||||
|
|
||||||
|
// 转换手术类型
|
||||||
|
String surgeryType = convertSurgeryNature(schedule.getSurgeryNature());
|
||||||
|
|
||||||
|
// 转换麻醉方法
|
||||||
|
String anesthesiaMethod = convertAnesMethod(schedule.getAnesMethod());
|
||||||
|
|
||||||
|
// 格式化安排时间
|
||||||
|
String formattedDate = formatScheduleDate(schedule.getScheduleDate());
|
||||||
|
|
||||||
|
writer.printf("%d,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s\n",
|
||||||
|
index, // 序号从1开始
|
||||||
|
schedule.getOrgName() != null ? schedule.getOrgName() : "",
|
||||||
|
schedule.getPatientName() != null ? schedule.getPatientName() : "",
|
||||||
|
schedule.getVisitId() != null ? schedule.getVisitId().toString() : "",
|
||||||
|
schedule.getOperCode() != null ? schedule.getOperCode() : "",
|
||||||
|
schedule.getOperName() != null ? schedule.getOperName() : "",
|
||||||
|
schedule.getApplyDeptName() != null ? schedule.getApplyDeptName() : "",
|
||||||
|
surgeryType,
|
||||||
|
surgeryType, // 手术性质和手术类型使用相同的转换
|
||||||
|
schedule.getSurgeonName() != null ? schedule.getSurgeonName() : "",
|
||||||
|
anesthesiaMethod,
|
||||||
|
formattedDate,
|
||||||
|
schedule.getCreateByName() != null ? schedule.getCreateByName() : ""
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
writer.flush();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 转换手术性质/类型
|
||||||
|
*/
|
||||||
|
private String convertSurgeryNature(String surgeryNature) {
|
||||||
|
if (surgeryNature == null) return "";
|
||||||
|
|
||||||
|
switch (surgeryNature) {
|
||||||
|
case "1": return "择期手术";
|
||||||
|
case "2": return "急诊手术";
|
||||||
|
case "3": return "限期手术";
|
||||||
|
case "4": return "日间手术";
|
||||||
|
default: return surgeryNature;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 转换麻醉方法
|
||||||
|
*/
|
||||||
|
private String convertAnesMethod(String anesMethod) {
|
||||||
|
if (anesMethod == null) return "";
|
||||||
|
|
||||||
|
switch (anesMethod) {
|
||||||
|
case "1": return "全身麻醉";
|
||||||
|
case "2": return "椎管内麻醉";
|
||||||
|
case "3": return "神经阻滞麻醉";
|
||||||
|
case "4": return "局部浸润麻醉";
|
||||||
|
case "5": return "表面麻醉";
|
||||||
|
case "6": return "复合麻醉";
|
||||||
|
case "7": return "基础麻醉";
|
||||||
|
default: return anesMethod;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 格式化安排时间
|
||||||
|
*/
|
||||||
|
private String formatScheduleDate(LocalDate scheduleDate) {
|
||||||
|
if (scheduleDate == null) return "";
|
||||||
|
|
||||||
|
// 格式化为 yyyy-MM-dd
|
||||||
|
return scheduleDate.format(java.time.format.DateTimeFormatter.ofPattern("yyyy-MM-dd"));
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -31,13 +31,18 @@ public class SurgeryController {
|
|||||||
* @param surgeryDto 查询条件
|
* @param surgeryDto 查询条件
|
||||||
* @param pageNo 当前页
|
* @param pageNo 当前页
|
||||||
* @param pageSize 每页条数
|
* @param pageSize 每页条数
|
||||||
|
* @param plannedTimeStart 计划开始时间
|
||||||
|
* @param plannedTimeEnd 计划结束时间
|
||||||
* @return 手术列表
|
* @return 手术列表
|
||||||
*/
|
*/
|
||||||
@GetMapping(value = "/surgery-page")
|
@GetMapping(value = "/surgery-page")
|
||||||
public R<IPage<SurgeryDto>> getSurgeryPage(SurgeryDto surgeryDto,
|
public R<IPage<SurgeryDto>> getSurgeryPage(SurgeryDto surgeryDto,
|
||||||
@RequestParam(value = "pageNo", defaultValue = "1") Integer pageNo,
|
@RequestParam(value = "pageNo", defaultValue = "1") Integer pageNo,
|
||||||
@RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize) {
|
@RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize,
|
||||||
IPage<SurgeryDto> page = surgeryAppService.getSurgeryPage(surgeryDto, pageNo, pageSize);
|
@RequestParam(value = "plannedTimeStart", required = false) String plannedTimeStart,
|
||||||
|
@RequestParam(value = "plannedTimeEnd", required = false) String plannedTimeEnd) {
|
||||||
|
// 将时间范围参数传递给服务层
|
||||||
|
IPage<SurgeryDto> page = surgeryAppService.getSurgeryPage(surgeryDto, pageNo, pageSize, plannedTimeStart, plannedTimeEnd);
|
||||||
return R.ok(page);
|
return R.ok(page);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,101 @@
|
|||||||
|
package com.openhis.web.clinicalmanage.controller;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
|
import com.core.common.core.domain.R;
|
||||||
|
import com.openhis.web.clinicalmanage.appservice.ISurgicalScheduleAppService;
|
||||||
|
import com.openhis.web.clinicalmanage.dto.OpCreateScheduleDto;
|
||||||
|
import com.openhis.web.clinicalmanage.dto.OpScheduleDto;
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
|
import javax.servlet.http.HttpServletResponse;
|
||||||
|
import java.io.IOException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 手术安排Controller
|
||||||
|
*
|
||||||
|
* @author system
|
||||||
|
* @date 2026-01-28
|
||||||
|
*/
|
||||||
|
@RestController
|
||||||
|
@RequestMapping("/clinical-manage/surgery-schedule")
|
||||||
|
@Slf4j
|
||||||
|
@AllArgsConstructor
|
||||||
|
public class SurgicalScheduleController {
|
||||||
|
|
||||||
|
private final ISurgicalScheduleAppService surgicalScheduleAppService;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 分页查询手术安排列表
|
||||||
|
*
|
||||||
|
* @param opScheduleDto 查询条件
|
||||||
|
* @param pageNo 当前页
|
||||||
|
* @param pageSize 每页条数
|
||||||
|
* @return 手术安排列表
|
||||||
|
*/
|
||||||
|
@GetMapping(value = "/page")
|
||||||
|
public R<IPage<OpScheduleDto>> getSurgerySchedulePage(OpScheduleDto opScheduleDto,
|
||||||
|
@RequestParam(value = "pageNo", defaultValue = "1") Integer pageNo,
|
||||||
|
@RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize) {
|
||||||
|
IPage<OpScheduleDto> page = surgicalScheduleAppService.getSurgerySchedulePage(opScheduleDto, pageNo, pageSize);
|
||||||
|
return R.ok(page);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据ID查询手术安排详情
|
||||||
|
*
|
||||||
|
* @param scheduleId 手术安排ID
|
||||||
|
* @return 手术安排详情
|
||||||
|
*/
|
||||||
|
@GetMapping(value = "/{scheduleId}")
|
||||||
|
public R<OpScheduleDto> getSurgeryScheduleDetail(@PathVariable Long scheduleId) {
|
||||||
|
return surgicalScheduleAppService.getSurgeryScheduleDetail(scheduleId);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增手术安排
|
||||||
|
*
|
||||||
|
* @param opCreateScheduleDto 手术安排信息
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
@PostMapping(value = "/create")
|
||||||
|
public R<?> addSurgerySchedule(@RequestBody OpCreateScheduleDto opCreateScheduleDto) {
|
||||||
|
return surgicalScheduleAppService.addSurgerySchedule(opCreateScheduleDto);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改手术安排
|
||||||
|
*
|
||||||
|
* @param opScheduleDto 手术安排信息
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
@PutMapping(value = "/update")
|
||||||
|
public R<?> updateSurgerySchedule(@RequestBody OpScheduleDto opScheduleDto) {
|
||||||
|
return surgicalScheduleAppService.updateSurgerySchedule(opScheduleDto);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除手术安排
|
||||||
|
*
|
||||||
|
* @param scheduleId 手术安排ID
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
@DeleteMapping(value = "/{scheduleId}")
|
||||||
|
public R<?> deleteSurgerySchedule(@PathVariable Long scheduleId) {
|
||||||
|
return surgicalScheduleAppService.deleteSurgerySchedule(scheduleId);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 导出手术安排列表
|
||||||
|
*
|
||||||
|
* @param opScheduleDto 查询条件
|
||||||
|
* @param response 响应对象
|
||||||
|
* @throws IOException 异常
|
||||||
|
*/
|
||||||
|
@GetMapping(value = "/export")
|
||||||
|
public void exportSurgerySchedule(OpScheduleDto opScheduleDto, HttpServletResponse response) throws IOException {
|
||||||
|
surgicalScheduleAppService.exportSurgerySchedule(opScheduleDto, response);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,268 @@
|
|||||||
|
package com.openhis.web.clinicalmanage.dto;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import java.time.LocalDate;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class OpCreateScheduleDto {
|
||||||
|
/**
|
||||||
|
* 申请单ID
|
||||||
|
*/
|
||||||
|
private Long applyId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 患者ID
|
||||||
|
*/
|
||||||
|
private Long patientId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 就诊ID
|
||||||
|
*/
|
||||||
|
private Long visitId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 手术编码
|
||||||
|
*/
|
||||||
|
private String operCode;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 手术名称
|
||||||
|
*/
|
||||||
|
private String operName;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 术前诊断
|
||||||
|
*/
|
||||||
|
private String preoperativeDiagnosis;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 术后诊断
|
||||||
|
*/
|
||||||
|
private String postoperativeDiagnosis;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 手术安排日期
|
||||||
|
*/
|
||||||
|
private LocalDate scheduleDate;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 手术台次序号
|
||||||
|
*/
|
||||||
|
private Integer sequenceNo;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 是否首台手术 1-是 0-否
|
||||||
|
*/
|
||||||
|
private Integer isFirstSurgery;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 是否有药物过敏 1-是 0-否
|
||||||
|
*/
|
||||||
|
private Integer isAllergyMedication;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 过敏备注
|
||||||
|
*/
|
||||||
|
private String allergyRemark;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 手术性质
|
||||||
|
*/
|
||||||
|
private String surgeryNature;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 手术部位
|
||||||
|
*/
|
||||||
|
private String surgerySite;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 入院时间
|
||||||
|
*/
|
||||||
|
private LocalDateTime admissionTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 入手术室时间
|
||||||
|
*/
|
||||||
|
private LocalDateTime entryTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 手术室编码
|
||||||
|
*/
|
||||||
|
private String roomCode;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 手术台号
|
||||||
|
*/
|
||||||
|
private String tableNo;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 麻醉方式
|
||||||
|
*/
|
||||||
|
private String anesMethod;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 麻醉医生1编码
|
||||||
|
*/
|
||||||
|
private String anesDoctor1Code;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 麻醉医生2编码
|
||||||
|
*/
|
||||||
|
private String anesDoctor2Code;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 麻醉医生3编码
|
||||||
|
*/
|
||||||
|
private String anesDoctor3Code;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 洗手护士编码
|
||||||
|
*/
|
||||||
|
private String scrubNurseCode;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 巡回护士1编码
|
||||||
|
*/
|
||||||
|
private String circuNurse1Code;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 巡回护士2编码
|
||||||
|
*/
|
||||||
|
private String circuNurse2Code;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 洗手护士1编码
|
||||||
|
*/
|
||||||
|
private String scrubNurse1Code;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 洗手护士2编码
|
||||||
|
*/
|
||||||
|
private String scrubNurse2Code;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 主刀医生编码
|
||||||
|
*/
|
||||||
|
private String surgeonCode;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 助手1编码
|
||||||
|
*/
|
||||||
|
private String assistant1Code;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 助手2编码
|
||||||
|
*/
|
||||||
|
private String assistant2Code;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 助手3编码
|
||||||
|
*/
|
||||||
|
private String assistant3Code;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 手术开始时间
|
||||||
|
*/
|
||||||
|
private LocalDateTime startTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 手术结束时间
|
||||||
|
*/
|
||||||
|
private LocalDateTime endTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 麻醉开始时间
|
||||||
|
*/
|
||||||
|
private LocalDateTime anesStart;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 麻醉结束时间
|
||||||
|
*/
|
||||||
|
private LocalDateTime anesEnd;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 手术状态
|
||||||
|
*/
|
||||||
|
private Integer operStatus;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 是否植入耗材 1-是 0-否
|
||||||
|
*/
|
||||||
|
private Integer implantFlag;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 植入物序列号
|
||||||
|
*/
|
||||||
|
private String implantSerial;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 失血量(ml)
|
||||||
|
*/
|
||||||
|
private Integer bloodLoss;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 输血量(ml)
|
||||||
|
*/
|
||||||
|
private Integer bloodTrans;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 感染诊断
|
||||||
|
*/
|
||||||
|
private String infectionDiagnosis;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 隔离类型
|
||||||
|
*/
|
||||||
|
private String isolationType;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 患者体重(kg)
|
||||||
|
*/
|
||||||
|
private BigDecimal patientWeight;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 患者身高(cm)
|
||||||
|
*/
|
||||||
|
private BigDecimal patientHeight;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 沟通信息
|
||||||
|
*/
|
||||||
|
private String communicationInfo;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 备注
|
||||||
|
*/
|
||||||
|
private String remark;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 创建时间
|
||||||
|
*/
|
||||||
|
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||||
|
private LocalDateTime createTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 创建人ID
|
||||||
|
*/
|
||||||
|
private String creatorId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 更新时间
|
||||||
|
*/
|
||||||
|
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||||
|
private LocalDateTime updateTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 租户id
|
||||||
|
*/
|
||||||
|
private Integer tenantId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 是否删除(默认为0,1表示删除)
|
||||||
|
*/
|
||||||
|
private Integer deleteFlag;
|
||||||
|
}
|
||||||
@@ -1,6 +1,7 @@
|
|||||||
package com.openhis.web.clinicalmanage.mapper;
|
package com.openhis.web.clinicalmanage.mapper;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
import com.baomidou.mybatisplus.core.toolkit.Constants;
|
import com.baomidou.mybatisplus.core.toolkit.Constants;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
@@ -12,7 +13,7 @@ import org.springframework.stereotype.Repository;
|
|||||||
* 手术管理应用Mapper
|
* 手术管理应用Mapper
|
||||||
*/
|
*/
|
||||||
@Repository
|
@Repository
|
||||||
public interface SurgeryAppMapper {
|
public interface SurgeryAppMapper extends BaseMapper<SurgeryDto> {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 分页查询手术列表
|
* 分页查询手术列表
|
||||||
|
|||||||
@@ -0,0 +1,61 @@
|
|||||||
|
package com.openhis.web.clinicalmanage.mapper;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
|
import com.openhis.web.clinicalmanage.dto.OpScheduleDto;
|
||||||
|
import org.apache.ibatis.annotations.Param;
|
||||||
|
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 手术安排Mapper接口
|
||||||
|
*
|
||||||
|
* @author system
|
||||||
|
* @date 2026-01-28
|
||||||
|
*/
|
||||||
|
public interface SurgicalScheduleAppMapper {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 分页查询手术安排列表
|
||||||
|
*
|
||||||
|
* @param page 分页参数
|
||||||
|
* @param opScheduleDto 查询条件
|
||||||
|
* @return 手术安排列表
|
||||||
|
*/
|
||||||
|
IPage<OpScheduleDto> getSurgerySchedulePage(Page<OpScheduleDto> page, @Param("dto") OpScheduleDto opScheduleDto);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增手术安排
|
||||||
|
*
|
||||||
|
* @param opScheduleDto 手术安排信息
|
||||||
|
* @return 添加结果
|
||||||
|
*/
|
||||||
|
void addSurgerySchedule(@Param("opScheduleDto") OpScheduleDto opScheduleDto);
|
||||||
|
/**
|
||||||
|
* 根据ID查询手术安排详情
|
||||||
|
*
|
||||||
|
* @param scheduleId 手术安排ID
|
||||||
|
* @return 手术安排详情
|
||||||
|
*/
|
||||||
|
OpScheduleDto getSurgeryScheduleDetail(Long scheduleId);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询所有符合条件的手术安排列表(用于导出)
|
||||||
|
*
|
||||||
|
* @param opScheduleDto 查询条件
|
||||||
|
* @return 手术安排列表
|
||||||
|
*/
|
||||||
|
List<OpScheduleDto> getSurgeryScheduleList(@Param("dto") OpScheduleDto opScheduleDto);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询手术间在该时段是否被占用
|
||||||
|
*
|
||||||
|
* @param startTime 手术开始时间
|
||||||
|
* @param endTime 手术结束时间
|
||||||
|
* @param surgeryRoomId 手术间ID
|
||||||
|
* @return 是否存在冲突的手术安排
|
||||||
|
*/
|
||||||
|
Boolean isScheduleConflict(LocalDateTime startTime, LocalDateTime endTime, String surgeryRoomId);
|
||||||
|
}
|
||||||
@@ -1,6 +1,9 @@
|
|||||||
package com.openhis.web.regdoctorstation.appservice;
|
package com.openhis.web.regdoctorstation.appservice;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
import com.core.common.core.domain.R;
|
import com.core.common.core.domain.R;
|
||||||
|
import com.openhis.web.regdoctorstation.dto.RequestFormDto;
|
||||||
|
import com.openhis.web.regdoctorstation.dto.RequestFormPageDto;
|
||||||
import com.openhis.web.regdoctorstation.dto.RequestFormQueryDto;
|
import com.openhis.web.regdoctorstation.dto.RequestFormQueryDto;
|
||||||
import com.openhis.web.regdoctorstation.dto.RequestFormSaveDto;
|
import com.openhis.web.regdoctorstation.dto.RequestFormSaveDto;
|
||||||
|
|
||||||
@@ -29,4 +32,11 @@ public interface IRequestFormManageAppService {
|
|||||||
*/
|
*/
|
||||||
List<RequestFormQueryDto> getRequestForm(Long encounterId, String typeCode);
|
List<RequestFormQueryDto> getRequestForm(Long encounterId, String typeCode);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 分页查询申请单
|
||||||
|
*
|
||||||
|
* @param requestFormDto 查询条件
|
||||||
|
* @return 申请单
|
||||||
|
*/
|
||||||
|
IPage<RequestFormPageDto> getRequestFormPage(RequestFormDto requestFormDto);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,8 @@
|
|||||||
package com.openhis.web.regdoctorstation.appservice.impl;
|
package com.openhis.web.regdoctorstation.appservice.impl;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import com.core.common.core.domain.R;
|
import com.core.common.core.domain.R;
|
||||||
import com.core.common.exception.ServiceException;
|
import com.core.common.exception.ServiceException;
|
||||||
import com.core.common.utils.AssignSeqUtil;
|
import com.core.common.utils.AssignSeqUtil;
|
||||||
@@ -236,4 +238,16 @@ public class RequestFormManageAppServiceImpl implements IRequestFormManageAppSer
|
|||||||
return requestFormList;
|
return requestFormList;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询申请单分页
|
||||||
|
*
|
||||||
|
* @param requestFormDto 查询参数
|
||||||
|
* @return 申请单分页列表
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public IPage<RequestFormPageDto> getRequestFormPage(RequestFormDto requestFormDto) {
|
||||||
|
Page<RequestFormPageDto> page = new Page<>(requestFormDto.getPageNo(), requestFormDto.getPageSize());
|
||||||
|
return requestFormManageAppMapper.getRequestFormPage(requestFormDto, page);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,14 +3,21 @@
|
|||||||
*/
|
*/
|
||||||
package com.openhis.web.regdoctorstation.controller;
|
package com.openhis.web.regdoctorstation.controller;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
import com.core.common.core.domain.R;
|
import com.core.common.core.domain.R;
|
||||||
import com.openhis.common.enums.ActivityDefCategory;
|
import com.openhis.common.enums.ActivityDefCategory;
|
||||||
|
import com.openhis.document.domain.RequestForm;
|
||||||
|
import com.openhis.web.inventorymanage.appservice.impl.ProductStocktakingAppServiceImpl;
|
||||||
import com.openhis.web.regdoctorstation.appservice.IRequestFormManageAppService;
|
import com.openhis.web.regdoctorstation.appservice.IRequestFormManageAppService;
|
||||||
|
import com.openhis.web.regdoctorstation.dto.RequestFormDto;
|
||||||
|
import com.openhis.web.regdoctorstation.dto.RequestFormPageDto;
|
||||||
import com.openhis.web.regdoctorstation.dto.RequestFormSaveDto;
|
import com.openhis.web.regdoctorstation.dto.RequestFormSaveDto;
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 申请单管理 controller
|
* 申请单管理 controller
|
||||||
*/
|
*/
|
||||||
@@ -21,6 +28,7 @@ import org.springframework.web.bind.annotation.*;
|
|||||||
public class RequestFormManageController {
|
public class RequestFormManageController {
|
||||||
|
|
||||||
private final IRequestFormManageAppService iRequestFormManageAppService;
|
private final IRequestFormManageAppService iRequestFormManageAppService;
|
||||||
|
private final ProductStocktakingAppServiceImpl productStocktakingAppServiceImpl;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 保存检查申请单
|
* 保存检查申请单
|
||||||
@@ -123,5 +131,12 @@ public class RequestFormManageController {
|
|||||||
}
|
}
|
||||||
return R.ok(iRequestFormManageAppService.getRequestForm(encounterId, ActivityDefCategory.PROCEDURE.getCode()));
|
return R.ok(iRequestFormManageAppService.getRequestForm(encounterId, ActivityDefCategory.PROCEDURE.getCode()));
|
||||||
}
|
}
|
||||||
|
/**
|
||||||
|
* 分页查询申请单
|
||||||
|
* @return 申请单
|
||||||
|
*/
|
||||||
|
@RequestMapping(value = "/get-page")
|
||||||
|
public R<IPage<RequestFormPageDto>> getRequestFormPage(@RequestBody RequestFormDto requestFormDto) {
|
||||||
|
return R.ok(iRequestFormManageAppService.getRequestFormPage(requestFormDto));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,37 @@
|
|||||||
|
package com.openhis.web.regdoctorstation.dto;
|
||||||
|
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
import java.time.LocalDate;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@AllArgsConstructor
|
||||||
|
@NoArgsConstructor
|
||||||
|
public class RequestFormDto {
|
||||||
|
/**
|
||||||
|
* 申请时间开始
|
||||||
|
*/
|
||||||
|
private LocalDate applyTimeStart;
|
||||||
|
/**
|
||||||
|
* 申请时间结束
|
||||||
|
*/
|
||||||
|
private LocalDate applyTimeEnd;
|
||||||
|
/**
|
||||||
|
* 主刀医生ID
|
||||||
|
*/
|
||||||
|
private Long mainDoctorId;
|
||||||
|
/**
|
||||||
|
* 申请科室ID
|
||||||
|
*/
|
||||||
|
private Long applyDeptId;
|
||||||
|
/**
|
||||||
|
* 当前页码
|
||||||
|
*/
|
||||||
|
private Integer pageNo;
|
||||||
|
/**
|
||||||
|
* 每页数量
|
||||||
|
*/
|
||||||
|
private Integer pageSize;
|
||||||
|
}
|
||||||
@@ -0,0 +1,80 @@
|
|||||||
|
package com.openhis.web.regdoctorstation.dto;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableField;
|
||||||
|
import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class RequestFormPageDto {
|
||||||
|
/**
|
||||||
|
* 姓名
|
||||||
|
*/
|
||||||
|
private String name;
|
||||||
|
/**
|
||||||
|
* 性别
|
||||||
|
*/
|
||||||
|
private String gender;
|
||||||
|
/**
|
||||||
|
* 病人id
|
||||||
|
*/
|
||||||
|
private String patientId;
|
||||||
|
/**
|
||||||
|
* 出生日期
|
||||||
|
*/
|
||||||
|
private String birthDay;
|
||||||
|
/**
|
||||||
|
* 就诊id
|
||||||
|
*/
|
||||||
|
private String encounterId;
|
||||||
|
/**
|
||||||
|
* 手术单号
|
||||||
|
*/
|
||||||
|
private String surgeryNo;
|
||||||
|
/**
|
||||||
|
* 描述JSON
|
||||||
|
*/
|
||||||
|
@TableField(value = "desc_json", typeHandler = JacksonTypeHandler.class)
|
||||||
|
private Map<String,Object> descJson;
|
||||||
|
/**
|
||||||
|
* 申请单id
|
||||||
|
*/
|
||||||
|
private String applyId;
|
||||||
|
/**
|
||||||
|
* 申请科室
|
||||||
|
*/
|
||||||
|
private String applyDeptId;
|
||||||
|
/**
|
||||||
|
* 申请科室名称
|
||||||
|
*/
|
||||||
|
private String applyDeptName;
|
||||||
|
/**
|
||||||
|
* 申请医生ID
|
||||||
|
*/
|
||||||
|
private String applyDoctorId;
|
||||||
|
/**
|
||||||
|
* 申请医生名称
|
||||||
|
*/
|
||||||
|
private String applyDoctorName;
|
||||||
|
/**
|
||||||
|
* 手术类型
|
||||||
|
*/
|
||||||
|
private Integer surgeryType;
|
||||||
|
/**
|
||||||
|
* 主刀医生ID
|
||||||
|
*/
|
||||||
|
private String mainSurgeonId;
|
||||||
|
/**
|
||||||
|
* 主刀医生名称
|
||||||
|
*/
|
||||||
|
private String mainSurgeonName;
|
||||||
|
/**
|
||||||
|
* 手术类型
|
||||||
|
*/
|
||||||
|
private String surgeryTypeEnum;
|
||||||
|
/**
|
||||||
|
* 申请时间
|
||||||
|
*/
|
||||||
|
private String applyTime;
|
||||||
|
}
|
||||||
@@ -1,7 +1,12 @@
|
|||||||
package com.openhis.web.regdoctorstation.mapper;
|
package com.openhis.web.regdoctorstation.mapper;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
|
import com.openhis.document.domain.RequestForm;
|
||||||
import com.openhis.web.regdoctorstation.dto.ActivityOrganizationConfigDto;
|
import com.openhis.web.regdoctorstation.dto.ActivityOrganizationConfigDto;
|
||||||
import com.openhis.web.regdoctorstation.dto.RequestFormDetailQueryDto;
|
import com.openhis.web.regdoctorstation.dto.RequestFormDetailQueryDto;
|
||||||
|
import com.openhis.web.regdoctorstation.dto.RequestFormDto;
|
||||||
|
import com.openhis.web.regdoctorstation.dto.RequestFormPageDto;
|
||||||
import com.openhis.web.regdoctorstation.dto.RequestFormQueryDto;
|
import com.openhis.web.regdoctorstation.dto.RequestFormQueryDto;
|
||||||
import org.apache.ibatis.annotations.Param;
|
import org.apache.ibatis.annotations.Param;
|
||||||
import org.springframework.stereotype.Repository;
|
import org.springframework.stereotype.Repository;
|
||||||
@@ -41,4 +46,12 @@ public interface RequestFormManageAppMapper {
|
|||||||
List<ActivityOrganizationConfigDto>
|
List<ActivityOrganizationConfigDto>
|
||||||
getActivityOrganizationConfig(@Param("activityCategoryCode") String activityCategoryCode);
|
getActivityOrganizationConfig(@Param("activityCategoryCode") String activityCategoryCode);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取申请单分页数据
|
||||||
|
*
|
||||||
|
* @param requestFormDto 申请单参数
|
||||||
|
* @return 申请单分页列表
|
||||||
|
*/
|
||||||
|
IPage<RequestFormPageDto> getRequestFormPage(
|
||||||
|
@Param("requestFormDto") RequestFormDto requestFormDto,@Param("page") IPage<RequestFormPageDto> page);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -75,7 +75,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||||||
s.surgery_no,
|
s.surgery_no,
|
||||||
s.patient_id,
|
s.patient_id,
|
||||||
p.name as patient_name,
|
p.name as patient_name,
|
||||||
CASE p.gender_enum WHEN 1 THEN '男' WHEN 2 THEN '女' ELSE '未知' END as patient_gender,
|
CASE p.gender_enum WHEN 0 THEN '男' WHEN 1 THEN '女' ELSE '未知' END as patient_gender,
|
||||||
EXTRACT(YEAR FROM AGE(p.birth_date)) as patient_age,
|
EXTRACT(YEAR FROM AGE(p.birth_date)) as patient_age,
|
||||||
s.encounter_id,
|
s.encounter_id,
|
||||||
e.bus_no as encounter_no,
|
e.bus_no as encounter_no,
|
||||||
@@ -194,7 +194,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||||||
<where>
|
<where>
|
||||||
s.delete_flag = '0'
|
s.delete_flag = '0'
|
||||||
<if test="ew.sqlSegment != null and ew.sqlSegment != ''">
|
<if test="ew.sqlSegment != null and ew.sqlSegment != ''">
|
||||||
AND ${ew.sqlSegment.replace('tenant_id', 's.tenant_id').replace('create_time', 's.create_time').replace('surgery_no', 's.surgery_no').replace('surgery_name', 's.surgery_name').replace('patient_name', 'p.name').replace('main_surgeon_name', 's.main_surgeon_name').replace('anesthetist_name', 's.anesthetist_name').replace('org_name', 'o.name')}
|
<![CDATA[
|
||||||
|
AND ${ew.sqlSegment.replace('tenant_id', 's.tenant_id').replace('create_time', 's.create_time').replace('surgery_no', 's.surgery_no').replace('surgery_name', 's.surgery_name').replace('patient_name', 'p.name').replace('main_surgeon_name', 's.main_surgeon_name').replace('anesthetist_name', 's.anesthetist_name').replace('org_name', 'o.name').replace('status_enum', 's.status_enum').replace('planned_time', 's.planned_time')}
|
||||||
|
]]>
|
||||||
</if>
|
</if>
|
||||||
</where>
|
</where>
|
||||||
</select>
|
</select>
|
||||||
|
|||||||
@@ -0,0 +1,146 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
|
<!DOCTYPE mapper
|
||||||
|
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
|
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||||
|
<mapper namespace="com.openhis.web.clinicalmanage.mapper.SurgicalScheduleAppMapper">
|
||||||
|
<!-- 分页查询手术安排-->
|
||||||
|
<select id="getSurgerySchedulePage" resultType="com.openhis.web.clinicalmanage.dto.OpScheduleDto">
|
||||||
|
SELECT
|
||||||
|
os.schedule_id,
|
||||||
|
os.tenant_id,
|
||||||
|
st.tenant_name AS orgName,
|
||||||
|
os.apply_id,
|
||||||
|
os.patient_id,
|
||||||
|
os.visit_id,
|
||||||
|
os.oper_code,
|
||||||
|
os.oper_name,
|
||||||
|
os.surgery_nature,
|
||||||
|
os.anes_method,
|
||||||
|
os.schedule_date,
|
||||||
|
os.sequence_no,
|
||||||
|
os.room_code,
|
||||||
|
os.table_no,
|
||||||
|
su.nick_name AS createByName,
|
||||||
|
os.create_time,
|
||||||
|
os.update_time,
|
||||||
|
ap.name AS patient_name,
|
||||||
|
CASE ap.gender_enum WHEN 0 THEN '男' WHEN 1 THEN '女' ELSE '未知' END AS gender,
|
||||||
|
EXTRACT(YEAR FROM AGE(ap.birth_date)) AS age,
|
||||||
|
cs.apply_dept_id,
|
||||||
|
cs.apply_dept_name,
|
||||||
|
cs.org_id,
|
||||||
|
o.name AS org_name,
|
||||||
|
cs.main_surgeon_name AS surgeon_name
|
||||||
|
FROM op_schedule os
|
||||||
|
LEFT JOIN adm_patient ap ON os.patient_id = ap.id
|
||||||
|
LEFT JOIN cli_surgery cs ON os.patient_id = cs.patient_id
|
||||||
|
LEFT JOIN adm_organization o ON cs.org_id = o.id
|
||||||
|
LEFT JOIN sys_tenant st ON st.id = os.tenant_id
|
||||||
|
LEFT JOIN sys_user su ON su.user_id = os.creator_id
|
||||||
|
<where>
|
||||||
|
<if test="dto.tenantId != null">
|
||||||
|
AND os.tenant_id = #{dto.tenantId}
|
||||||
|
</if>
|
||||||
|
<if test="dto.patientName != null and dto.patientName != ''">
|
||||||
|
AND ap.name LIKE CONCAT('%', #{dto.patientName}, '%')
|
||||||
|
</if>
|
||||||
|
<if test="dto.applyDeptId != null and dto.applyDeptId != ''">
|
||||||
|
AND cs.apply_dept_id = #{dto.applyDeptId}
|
||||||
|
</if>
|
||||||
|
<if test="dto.scheduleDate != null">
|
||||||
|
AND os.schedule_date = #{dto.scheduleDate}
|
||||||
|
</if>
|
||||||
|
AND os.delete_flag = '0'
|
||||||
|
</where>
|
||||||
|
ORDER BY os.create_time DESC
|
||||||
|
</select>
|
||||||
|
<!-- 根据ID查询手术安排详情-->
|
||||||
|
<select id="getSurgeryScheduleDetail" resultType="com.openhis.web.clinicalmanage.dto.OpScheduleDto">
|
||||||
|
SELECT
|
||||||
|
os.*,
|
||||||
|
os.oper_code AS surgeryNo,
|
||||||
|
ap.name AS patient_name,
|
||||||
|
CASE ap.gender_enum WHEN 0 THEN '男' WHEN 1 THEN '女' ELSE '未知' END AS gender,
|
||||||
|
EXTRACT(YEAR FROM AGE(ap.birth_date)) AS age,
|
||||||
|
cs.apply_dept_id,
|
||||||
|
cs.apply_dept_name,
|
||||||
|
cs.org_id,
|
||||||
|
o.name AS org_name,
|
||||||
|
cs.main_surgeon_name AS surgeon_name,
|
||||||
|
cs.apply_doctor_name AS apply_doctor_name,
|
||||||
|
drf.create_time AS apply_time,
|
||||||
|
os.surgery_nature AS surgeryType
|
||||||
|
FROM op_schedule os
|
||||||
|
LEFT JOIN adm_patient ap ON os.patient_id = ap.id
|
||||||
|
LEFT JOIN cli_surgery cs ON os.patient_id = cs.patient_id
|
||||||
|
LEFT JOIN adm_organization o ON cs.org_id = o.id
|
||||||
|
LEFT JOIN doc_request_form drf ON drf.prescription_no=cs.surgery_no
|
||||||
|
WHERE os.schedule_id = #{scheduleId}
|
||||||
|
</select>
|
||||||
|
<!-- 新增手术安排-->
|
||||||
|
<insert id="addSurgerySchedule" useGeneratedKeys="true" keyProperty="scheduleId">
|
||||||
|
insert into op_schedule(patient_id, doctor_id, schedule_time, schedule_status, create_time, update_time)
|
||||||
|
values(#{patientId}, #{doctorId}, #{scheduleTime}, #{scheduleStatus}, #{createTime}, #{updateTime})
|
||||||
|
</insert>
|
||||||
|
<!-- 修改手术安排-->
|
||||||
|
<update id="updateSurgerySchedule">
|
||||||
|
update op_schedule set patient_id = #{patientId}, doctor_id = #{doctorId}, schedule_time = #{scheduleTime},
|
||||||
|
schedule_status = #{scheduleStatus}, create_time = #{createTime}, update_time = #{updateTime}
|
||||||
|
where schedule_id = #{scheduleId}
|
||||||
|
</update>
|
||||||
|
|
||||||
|
<!-- 查询所有符合条件的手术安排列表(用于导出) -->
|
||||||
|
<select id="getSurgeryScheduleList" resultType="com.openhis.web.clinicalmanage.dto.OpScheduleDto">
|
||||||
|
SELECT
|
||||||
|
os.schedule_id,
|
||||||
|
os.tenant_id,
|
||||||
|
st.tenant_name AS orgName,
|
||||||
|
os.apply_id,
|
||||||
|
os.patient_id,
|
||||||
|
os.visit_id,
|
||||||
|
os.oper_code,
|
||||||
|
os.oper_name,
|
||||||
|
os.surgery_nature,
|
||||||
|
os.anes_method,
|
||||||
|
os.schedule_date,
|
||||||
|
os.sequence_no,
|
||||||
|
os.room_code,
|
||||||
|
os.table_no,
|
||||||
|
su.nick_name AS createByName,
|
||||||
|
os.create_time,
|
||||||
|
os.update_time,
|
||||||
|
ap.name AS patient_name,
|
||||||
|
CASE ap.gender_enum WHEN 0 THEN '男' WHEN 1 THEN '女' ELSE '未知' END AS gender,
|
||||||
|
EXTRACT(YEAR FROM AGE(ap.birth_date)) AS age,
|
||||||
|
cs.apply_dept_id,
|
||||||
|
cs.apply_dept_name,
|
||||||
|
cs.org_id,
|
||||||
|
o.name AS org_name,
|
||||||
|
cs.main_surgeon_name AS surgeon_name
|
||||||
|
FROM op_schedule os
|
||||||
|
LEFT JOIN adm_patient ap ON os.patient_id = ap.id
|
||||||
|
LEFT JOIN cli_surgery cs ON os.patient_id = cs.patient_id
|
||||||
|
LEFT JOIN adm_organization o ON cs.org_id = o.id
|
||||||
|
LEFT JOIN sys_tenant st ON st.id = os.tenant_id
|
||||||
|
LEFT JOIN sys_user su ON su.user_id = os.creator_id
|
||||||
|
<where>
|
||||||
|
AND os.delete_flag = '0'
|
||||||
|
<if test="dto.patientId != null"> AND os.patient_id = #{dto.patientId}</if>
|
||||||
|
<if test="dto.visitId != null"> AND os.visit_id = #{dto.visitId}</if>
|
||||||
|
<if test="dto.applyId != null"> AND os.apply_id = #{dto.applyId}</if>
|
||||||
|
<if test="dto.operCode != null and dto.operCode != ''"> AND os.oper_code = #{dto.operCode}</if>
|
||||||
|
<if test="dto.operName != null and dto.operName != ''"> AND os.oper_name LIKE CONCAT('%', #{dto.operName}, '%')</if>
|
||||||
|
<if test="dto.scheduleDate != null"> AND os.schedule_date = #{dto.scheduleDate}</if>
|
||||||
|
<if test="dto.orgId != null and dto.orgId != ''"> AND cs.org_id = #{dto.orgId}</if>
|
||||||
|
<if test="dto.applyDeptId != null and dto.applyDeptId != ''"> AND cs.apply_dept_id = #{dto.applyDeptId}</if>
|
||||||
|
<if test="dto.patientName != null and dto.patientName != ''"> AND ap.name LIKE CONCAT('%', #{dto.patientName}, '%')</if>
|
||||||
|
</where>
|
||||||
|
ORDER BY os.create_time DESC
|
||||||
|
</select>
|
||||||
|
<!-- 查询时间段内该手术室是否被占用-->
|
||||||
|
<select id="isScheduleConflict" resultType="java.lang.Boolean">
|
||||||
|
SELECT COUNT(*) > 0 FROM op_schedule WHERE room_code = #{surgeryRoomId}
|
||||||
|
AND entry_time >= #{startTime}
|
||||||
|
AND end_time < #{endTime}
|
||||||
|
</select>
|
||||||
|
</mapper>
|
||||||
@@ -47,4 +47,62 @@
|
|||||||
AND activity_category_code = #{activityCategoryCode}
|
AND activity_category_code = #{activityCategoryCode}
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
<!-- 结果映射 -->
|
||||||
|
<resultMap id="RequestFormPageDtoMap" type="com.openhis.web.regdoctorstation.dto.RequestFormPageDto">
|
||||||
|
<result column="surgery_no" property="surgeryNo"/>
|
||||||
|
<result column="desc_json" property="descJson" typeHandler="com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler"/>
|
||||||
|
<result column="name" property="name"/>
|
||||||
|
<result column="gender_enum" property="gender"/>
|
||||||
|
<result column="birth_date" property="birthDay"/>
|
||||||
|
<result column="main_surgeon_id" property="mainSurgeonId"/>
|
||||||
|
<result column="main_surgeon_name" property="mainSurgeonName"/>
|
||||||
|
<result column="surgery_type" property="surgeryType"/>
|
||||||
|
<result column="apply_time" property="applyTime"/>
|
||||||
|
<result column="apply_id" property="applyId"/>
|
||||||
|
<result column="apply_dept_id" property="applyDeptId"/>
|
||||||
|
<result column="apply_dept_name" property="applyDeptName"/>
|
||||||
|
<result column="encounter_id" property="encounterId"/>
|
||||||
|
<result column="surgery_type_enum" property="surgeryTypeEnum"/>
|
||||||
|
</resultMap>
|
||||||
|
|
||||||
|
<!-- 分页查询申请单 -->
|
||||||
|
<select id="getRequestFormPage" resultMap="RequestFormPageDtoMap">
|
||||||
|
SELECT
|
||||||
|
drf.prescription_no AS surgery_no,
|
||||||
|
drf.desc_json,
|
||||||
|
drf.create_by AS apply_doctor_name,
|
||||||
|
drf.create_time AS apply_time,
|
||||||
|
drf.id AS apply_id,
|
||||||
|
ae.id AS encounter_id,
|
||||||
|
ap.id AS patient_id,
|
||||||
|
ap.name,
|
||||||
|
ap.gender_enum,
|
||||||
|
ap.birth_date,
|
||||||
|
cs.main_surgeon_id,
|
||||||
|
cs.surgery_type_enum AS surgery_type,
|
||||||
|
cs.main_surgeon_name,
|
||||||
|
cs.apply_dept_id,
|
||||||
|
cs.apply_dept_name,
|
||||||
|
cs.surgery_type_enum
|
||||||
|
FROM doc_request_form drf
|
||||||
|
LEFT JOIN cli_surgery cs ON cs.surgery_no = drf.prescription_no
|
||||||
|
LEFT JOIN adm_patient ap ON ap.id = cs.patient_id
|
||||||
|
LEFT JOIN adm_encounter ae ON ae.id = cs.encounter_id
|
||||||
|
<where>
|
||||||
|
<if test="requestFormDto.applyTimeStart != null">
|
||||||
|
AND drf.create_time >= #{requestFormDto.applyTimeStart}
|
||||||
|
</if>
|
||||||
|
<if test="requestFormDto.applyTimeEnd != null">
|
||||||
|
AND drf.create_time <= #{requestFormDto.applyTimeEnd}
|
||||||
|
</if>
|
||||||
|
<if test="requestFormDto.mainDoctorId != null">
|
||||||
|
AND cs.main_surgeon_id = #{requestFormDto.mainDoctorId}
|
||||||
|
</if>
|
||||||
|
<if test="requestFormDto.applyDeptId != null">
|
||||||
|
AND cs.apply_dept_id = #{requestFormDto.applyDeptId}
|
||||||
|
</if>
|
||||||
|
AND drf.delete_flag = '0'
|
||||||
|
</where>
|
||||||
|
ORDER BY drf.create_time DESC
|
||||||
|
</select>
|
||||||
</mapper>
|
</mapper>
|
||||||
@@ -0,0 +1,191 @@
|
|||||||
|
package com.openhis.surgicalschedule.domain;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import java.time.LocalDate;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.*;
|
||||||
|
|
||||||
|
import com.core.common.core.domain.HisBaseEntity;
|
||||||
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
import lombok.experimental.Accessors;
|
||||||
|
import org.springframework.format.annotation.DateTimeFormat;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 手术安排Entity实体
|
||||||
|
*
|
||||||
|
* @author system
|
||||||
|
* @date 2026-01-28
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@TableName("op_schedule")
|
||||||
|
@Accessors(chain = true)
|
||||||
|
@EqualsAndHashCode(callSuper = false)
|
||||||
|
public class OpSchedule extends HisBaseEntity {
|
||||||
|
|
||||||
|
/** 排程号(主键) */
|
||||||
|
@TableId(type = IdType.ASSIGN_ID)
|
||||||
|
private Long scheduleId;
|
||||||
|
|
||||||
|
/** 申请单ID */
|
||||||
|
private Long applyId;
|
||||||
|
|
||||||
|
/** 患者ID */
|
||||||
|
private Long patientId;
|
||||||
|
|
||||||
|
/** 就诊ID */
|
||||||
|
private Long visitId;
|
||||||
|
|
||||||
|
/** 手术编码 */
|
||||||
|
private String operCode;
|
||||||
|
|
||||||
|
/** 手术名称 */
|
||||||
|
private String operName;
|
||||||
|
|
||||||
|
/** 术前诊断 */
|
||||||
|
private String preoperativeDiagnosis;
|
||||||
|
|
||||||
|
/** 术后诊断 */
|
||||||
|
private String postoperativeDiagnosis;
|
||||||
|
|
||||||
|
/** 手术安排日期 */
|
||||||
|
@DateTimeFormat(pattern = "yyyy-MM-dd")
|
||||||
|
private LocalDate scheduleDate;
|
||||||
|
|
||||||
|
/** 手术台次序号 */
|
||||||
|
private Integer sequenceNo;
|
||||||
|
|
||||||
|
/** 是否首台手术 1-是 0-否 */
|
||||||
|
private Integer isFirstSurgery;
|
||||||
|
|
||||||
|
/** 是否有药物过敏 1-是 0-否 */
|
||||||
|
private Integer isAllergyMedication;
|
||||||
|
|
||||||
|
/** 过敏备注 */
|
||||||
|
private String allergyRemark;
|
||||||
|
|
||||||
|
/** 手术性质 */
|
||||||
|
private String surgeryNature;
|
||||||
|
|
||||||
|
/** 手术部位 */
|
||||||
|
private String surgerySite;
|
||||||
|
|
||||||
|
/** 入院时间 */
|
||||||
|
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||||
|
private LocalDateTime admissionTime;
|
||||||
|
|
||||||
|
/** 入手术室时间 */
|
||||||
|
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||||
|
private LocalDateTime entryTime;
|
||||||
|
|
||||||
|
/** 手术室编码 */
|
||||||
|
private String roomCode;
|
||||||
|
|
||||||
|
/** 手术台号 */
|
||||||
|
private String tableNo;
|
||||||
|
|
||||||
|
/** 麻醉方式 */
|
||||||
|
private String anesMethod;
|
||||||
|
|
||||||
|
/** 麻醉医生1编码 */
|
||||||
|
private String anesDoctor1Code;
|
||||||
|
|
||||||
|
/** 麻醉医生2编码 */
|
||||||
|
private String anesDoctor2Code;
|
||||||
|
|
||||||
|
/** 麻醉医生3编码 */
|
||||||
|
private String anesDoctor3Code;
|
||||||
|
|
||||||
|
/** 洗手护士编码 */
|
||||||
|
private String scrubNurseCode;
|
||||||
|
|
||||||
|
/** 巡回护士1编码 */
|
||||||
|
private String circuNurse1Code;
|
||||||
|
|
||||||
|
/** 巡回护士2编码 */
|
||||||
|
private String circuNurse2Code;
|
||||||
|
|
||||||
|
/** 器械护士1编码 */
|
||||||
|
private String scrubNurse1Code;
|
||||||
|
|
||||||
|
/** 器械护士2编码 */
|
||||||
|
private String scrubNurse2Code;
|
||||||
|
|
||||||
|
/** 主刀医生编码 */
|
||||||
|
private String surgeonCode;
|
||||||
|
|
||||||
|
/** 助手1编码 */
|
||||||
|
private String assistant1Code;
|
||||||
|
|
||||||
|
/** 助手2编码 */
|
||||||
|
private String assistant2Code;
|
||||||
|
|
||||||
|
/** 助手3编码 */
|
||||||
|
private String assistant3Code;
|
||||||
|
|
||||||
|
/** 手术开始时间 */
|
||||||
|
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||||
|
private LocalDateTime startTime;
|
||||||
|
|
||||||
|
/** 手术结束时间 */
|
||||||
|
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||||
|
private LocalDateTime endTime;
|
||||||
|
|
||||||
|
/** 麻醉开始时间 */
|
||||||
|
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||||
|
private LocalDateTime anesStart;
|
||||||
|
|
||||||
|
/** 麻醉结束时间 */
|
||||||
|
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||||
|
private LocalDateTime anesEnd;
|
||||||
|
|
||||||
|
/** 手术状态 */
|
||||||
|
private Integer operStatus;
|
||||||
|
|
||||||
|
/** 是否植入耗材 1-是 0-否 */
|
||||||
|
private Integer implantFlag;
|
||||||
|
|
||||||
|
/** 植入物序列号 */
|
||||||
|
private String implantSerial;
|
||||||
|
|
||||||
|
/** 失血量(ml) */
|
||||||
|
private Integer bloodLoss;
|
||||||
|
|
||||||
|
/** 输血量(ml) */
|
||||||
|
private Integer bloodTrans;
|
||||||
|
|
||||||
|
/** 感染诊断 */
|
||||||
|
private String infectionDiagnosis;
|
||||||
|
|
||||||
|
/** 隔离类型 */
|
||||||
|
private String isolationType;
|
||||||
|
|
||||||
|
/** 患者体重(kg) */
|
||||||
|
private BigDecimal patientWeight;
|
||||||
|
|
||||||
|
/** 患者身高(cm) */
|
||||||
|
private BigDecimal patientHeight;
|
||||||
|
|
||||||
|
/** 沟通信息 */
|
||||||
|
private String communicationInfo;
|
||||||
|
|
||||||
|
/** 备注信息 */
|
||||||
|
private String remark;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 创建人id
|
||||||
|
*/
|
||||||
|
private Long creatorId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 更新人id
|
||||||
|
*/
|
||||||
|
private Long updaterId;
|
||||||
|
/**
|
||||||
|
* 租户id
|
||||||
|
*/
|
||||||
|
private Integer tenantId;
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
package com.openhis.surgicalschedule.mapper;
|
||||||
|
|
||||||
|
import com.openhis.surgicalschedule.domain.OpSchedule;
|
||||||
|
import org.springframework.stereotype.Repository;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 手术安排Mapper接口
|
||||||
|
*
|
||||||
|
* @author system
|
||||||
|
* @date 2026-01-28
|
||||||
|
*/
|
||||||
|
@Repository
|
||||||
|
public interface OpScheduleMapper extends BaseMapper<OpSchedule> {
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,14 @@
|
|||||||
|
package com.openhis.surgicalschedule.service;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
|
import com.openhis.surgicalschedule.domain.OpSchedule;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 手术安排Service接口
|
||||||
|
*
|
||||||
|
* @author system
|
||||||
|
* @date 2026-01-28
|
||||||
|
*/
|
||||||
|
public interface IOpScheduleService extends IService<OpSchedule> {
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
package com.openhis.surgicalschedule.service.impl;
|
||||||
|
|
||||||
|
import com.openhis.surgicalschedule.domain.OpSchedule;
|
||||||
|
import com.openhis.surgicalschedule.mapper.OpScheduleMapper;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
|
import com.openhis.surgicalschedule.service.IOpScheduleService;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 手术安排Service业务层处理
|
||||||
|
*
|
||||||
|
* @author system
|
||||||
|
* @date 2026-01-28
|
||||||
|
*/
|
||||||
|
@Service
|
||||||
|
public class OpScheduleServiceImpl extends ServiceImpl<OpScheduleMapper, OpSchedule> implements IOpScheduleService {
|
||||||
|
|
||||||
|
}
|
||||||
19
openhis-ui-vue3/package-lock.json
generated
19
openhis-ui-vue3/package-lock.json
generated
@@ -25,6 +25,7 @@
|
|||||||
"html2pdf.js": "^0.10.3",
|
"html2pdf.js": "^0.10.3",
|
||||||
"js-cookie": "^3.0.5",
|
"js-cookie": "^3.0.5",
|
||||||
"jsencrypt": "^3.3.2",
|
"jsencrypt": "^3.3.2",
|
||||||
|
"json-bigint": "^1.0.0",
|
||||||
"lodash": "^4.17.21",
|
"lodash": "^4.17.21",
|
||||||
"lodash-es": "^4.17.21",
|
"lodash-es": "^4.17.21",
|
||||||
"moment": "^2.30.1",
|
"moment": "^2.30.1",
|
||||||
@@ -2419,6 +2420,15 @@
|
|||||||
"node": "*"
|
"node": "*"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/bignumber.js": {
|
||||||
|
"version": "9.3.1",
|
||||||
|
"resolved": "https://registry.npmmirror.com/bignumber.js/-/bignumber.js-9.3.1.tgz",
|
||||||
|
"integrity": "sha512-Ko0uX15oIUS7wJ3Rb30Fs6SkVbLmPBAKdlm7q9+ak9bbIeFf0MwuBsQV6z7+X768/cHsfg+WlysDWJcmthjsjQ==",
|
||||||
|
"license": "MIT",
|
||||||
|
"engines": {
|
||||||
|
"node": "*"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/binary-extensions": {
|
"node_modules/binary-extensions": {
|
||||||
"version": "2.3.0",
|
"version": "2.3.0",
|
||||||
"resolved": "https://registry.npmmirror.com/binary-extensions/-/binary-extensions-2.3.0.tgz",
|
"resolved": "https://registry.npmmirror.com/binary-extensions/-/binary-extensions-2.3.0.tgz",
|
||||||
@@ -5456,6 +5466,15 @@
|
|||||||
"integrity": "sha512-arQR1R1ESGdAxY7ZheWr12wCaF2yF47v5qpB76TtV64H1pyGudk9Hvw8Y9tb/FiTIaaTRUyaSnm5T/Y53Ghm/A==",
|
"integrity": "sha512-arQR1R1ESGdAxY7ZheWr12wCaF2yF47v5qpB76TtV64H1pyGudk9Hvw8Y9tb/FiTIaaTRUyaSnm5T/Y53Ghm/A==",
|
||||||
"license": "MIT"
|
"license": "MIT"
|
||||||
},
|
},
|
||||||
|
"node_modules/json-bigint": {
|
||||||
|
"version": "1.0.0",
|
||||||
|
"resolved": "https://registry.npmmirror.com/json-bigint/-/json-bigint-1.0.0.tgz",
|
||||||
|
"integrity": "sha512-SiPv/8VpZuWbvLSMtTDU8hEfrZWg/mH/nV/b4o0CYbSxu1UIQPLdwKOCIyLQX+VIPO5vrLX3i8qtqFyhdPSUSQ==",
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"bignumber.js": "^9.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/json-parse-even-better-errors": {
|
"node_modules/json-parse-even-better-errors": {
|
||||||
"version": "2.3.1",
|
"version": "2.3.1",
|
||||||
"resolved": "https://registry.npmmirror.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz",
|
"resolved": "https://registry.npmmirror.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz",
|
||||||
|
|||||||
@@ -35,6 +35,7 @@
|
|||||||
"html2pdf.js": "^0.10.3",
|
"html2pdf.js": "^0.10.3",
|
||||||
"js-cookie": "^3.0.5",
|
"js-cookie": "^3.0.5",
|
||||||
"jsencrypt": "^3.3.2",
|
"jsencrypt": "^3.3.2",
|
||||||
|
"json-bigint": "^1.0.0",
|
||||||
"lodash": "^4.17.21",
|
"lodash": "^4.17.21",
|
||||||
"lodash-es": "^4.17.21",
|
"lodash-es": "^4.17.21",
|
||||||
"moment": "^2.30.1",
|
"moment": "^2.30.1",
|
||||||
|
|||||||
62
openhis-ui-vue3/src/api/surgicalschedule.js
Normal file
62
openhis-ui-vue3/src/api/surgicalschedule.js
Normal file
@@ -0,0 +1,62 @@
|
|||||||
|
import request from '@/utils/request'
|
||||||
|
|
||||||
|
// 查询手术安排列表
|
||||||
|
export function getSurgerySchedulePage(query) {
|
||||||
|
return request({
|
||||||
|
url: '/clinical-manage/surgery-schedule/page',
|
||||||
|
method: 'get',
|
||||||
|
params: query
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// 查询手术安排详情
|
||||||
|
export function getSurgeryScheduleDetail(scheduleId) {
|
||||||
|
return request({
|
||||||
|
url: `/clinical-manage/surgery-schedule/${scheduleId}`,
|
||||||
|
method: 'get'
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// 新增手术安排
|
||||||
|
export function addSurgerySchedule(data) {
|
||||||
|
return request({
|
||||||
|
url: '/clinical-manage/surgery-schedule/create',
|
||||||
|
method: 'post',
|
||||||
|
data: data
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// 修改手术安排
|
||||||
|
export function updateSurgerySchedule(data) {
|
||||||
|
return request({
|
||||||
|
url: '/clinical-manage/surgery-schedule/update',
|
||||||
|
method: 'put',
|
||||||
|
data: data
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// 删除手术安排
|
||||||
|
export function deleteSurgerySchedule(scheduleId) {
|
||||||
|
return request({
|
||||||
|
url: `/clinical-manage/surgery-schedule/${scheduleId}`,
|
||||||
|
method: 'delete'
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// 查询手术申请列表
|
||||||
|
export function getSurgeryApplyList(query) {
|
||||||
|
return request({
|
||||||
|
url: '/clinical-manage/surgery-schedule/apply-list',
|
||||||
|
method: 'post',
|
||||||
|
data: query
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// 导出手术安排列表
|
||||||
|
export function exportSurgerySchedule(query) {
|
||||||
|
return request({
|
||||||
|
url: '/clinical-manage/surgery-schedule/export',
|
||||||
|
method: 'get',
|
||||||
|
params: query
|
||||||
|
})
|
||||||
|
}
|
||||||
@@ -6,6 +6,10 @@ import {blobValidate, tansParams} from '@/utils/openhis'
|
|||||||
import cache from '@/plugins/cache'
|
import cache from '@/plugins/cache'
|
||||||
import {saveAs} from 'file-saver'
|
import {saveAs} from 'file-saver'
|
||||||
import useUserStore from '@/store/modules/user'
|
import useUserStore from '@/store/modules/user'
|
||||||
|
import JSONBig from 'json-bigint'
|
||||||
|
|
||||||
|
// 初始化json-bigint,配置大数字转字符串(关键:storeAsString: true)
|
||||||
|
const jsonBig = JSONBig({ storeAsString: true })
|
||||||
|
|
||||||
let downloadLoadingInstance;
|
let downloadLoadingInstance;
|
||||||
// 是否显示重新登录
|
// 是否显示重新登录
|
||||||
@@ -17,10 +21,26 @@ axios.defaults.headers['X-Tenant-ID'] = import.meta.env.VITE_APP_TENANT_ID || '1
|
|||||||
axios.defaults.headers['Request-Method-Name'] = 'login'
|
axios.defaults.headers['Request-Method-Name'] = 'login'
|
||||||
// 创建axios实例
|
// 创建axios实例
|
||||||
const service = axios.create({
|
const service = axios.create({
|
||||||
// axios中请求配置有baseURL选项,表示请求URL公共部分
|
|
||||||
baseURL: import.meta.env.VITE_APP_BASE_API,
|
baseURL: import.meta.env.VITE_APP_BASE_API,
|
||||||
// 超时
|
timeout: 60000,
|
||||||
timeout: 60000
|
// 新增:重写响应解析逻辑,大数字自动转字符串(移到这里!)
|
||||||
|
transformResponse: [
|
||||||
|
function (data) {
|
||||||
|
if (!data) return {} // 空数据直接返回,避免解析报错
|
||||||
|
try {
|
||||||
|
return jsonBig.parse(data)
|
||||||
|
} catch (err) {
|
||||||
|
// 解析失败时用默认方式,兼容特殊情况
|
||||||
|
return JSON.parse(data)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
// 可选:请求体序列化,无需额外处理,默认即可(保留也不影响)
|
||||||
|
transformRequest: [
|
||||||
|
function (data) {
|
||||||
|
return JSON.stringify(data)
|
||||||
|
}
|
||||||
|
]
|
||||||
})
|
})
|
||||||
|
|
||||||
// request拦截器
|
// request拦截器
|
||||||
|
|||||||
@@ -18,7 +18,7 @@
|
|||||||
v-loading="loading"
|
v-loading="loading"
|
||||||
:data="surgeryList"
|
:data="surgeryList"
|
||||||
border
|
border
|
||||||
row-key="id"
|
row-key="surgeryNo"
|
||||||
:row-class-name="getRowClassName"
|
:row-class-name="getRowClassName"
|
||||||
height="calc(100vh - 250px)"
|
height="calc(100vh - 250px)"
|
||||||
style="width: 100%"
|
style="width: 100%"
|
||||||
@@ -758,7 +758,7 @@ function handleEdit(row) {
|
|||||||
loadDoctorList()
|
loadDoctorList()
|
||||||
}
|
}
|
||||||
|
|
||||||
getSurgeryDetail(row.id).then(res => {
|
getSurgeryDetail(row.surgeryNo).then(res => {
|
||||||
if (res.code === 200) {
|
if (res.code === 200) {
|
||||||
console.log('【编辑手术】完整返回数据:', res.data)
|
console.log('【编辑手术】完整返回数据:', res.data)
|
||||||
console.log('【编辑手术】手术指征字段值:', res.data.surgeryIndication)
|
console.log('【编辑手术】手术指征字段值:', res.data.surgeryIndication)
|
||||||
@@ -796,7 +796,7 @@ function handleEdit(row) {
|
|||||||
// 查看
|
// 查看
|
||||||
function handleView(row) {
|
function handleView(row) {
|
||||||
viewOpen.value = true
|
viewOpen.value = true
|
||||||
getSurgeryDetail(row.id).then(res => {
|
getSurgeryDetail(row.surgeryNo).then(res => {
|
||||||
if (res.code === 200) {
|
if (res.code === 200) {
|
||||||
console.log('【手术详情】完整返回数据:', res.data)
|
console.log('【手术详情】完整返回数据:', res.data)
|
||||||
console.log('【手术详情】手术指征字段值:', res.data.surgeryIndication)
|
console.log('【手术详情】手术指征字段值:', res.data.surgeryIndication)
|
||||||
@@ -822,7 +822,7 @@ function handleDelete(row) {
|
|||||||
if (row.statusEnum === 0) {
|
if (row.statusEnum === 0) {
|
||||||
// 新开状态 - 直接删除
|
// 新开状态 - 直接删除
|
||||||
proxy.$modal.confirm('是否确认删除手术"' + row.surgeryName + '"?').then(() => {
|
proxy.$modal.confirm('是否确认删除手术"' + row.surgeryName + '"?').then(() => {
|
||||||
return deleteSurgery(row.id)
|
return deleteSurgery(row.surgeryNo)
|
||||||
}).then(() => {
|
}).then(() => {
|
||||||
getList()
|
getList()
|
||||||
proxy.$modal.msgSuccess('删除成功')
|
proxy.$modal.msgSuccess('删除成功')
|
||||||
@@ -833,7 +833,7 @@ function handleDelete(row) {
|
|||||||
} else if (row.statusEnum === 1) {
|
} else if (row.statusEnum === 1) {
|
||||||
// 已安排状态 - 更新为已取消
|
// 已安排状态 - 更新为已取消
|
||||||
proxy.$modal.confirm('是否确认取消手术"' + row.surgeryName + '"?').then(() => {
|
proxy.$modal.confirm('是否确认取消手术"' + row.surgeryName + '"?').then(() => {
|
||||||
return updateSurgeryStatus(row.id, 4) // 4 = 已取消
|
return updateSurgeryStatus(row.surgeryNo, 4) // 4 = 已取消
|
||||||
}).then(() => {
|
}).then(() => {
|
||||||
getList()
|
getList()
|
||||||
proxy.$modal.msgSuccess('手术已取消')
|
proxy.$modal.msgSuccess('手术已取消')
|
||||||
|
|||||||
@@ -106,3 +106,17 @@ export function getTestResult(queryParams) {
|
|||||||
params: queryParams,
|
params: queryParams,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 分页查询检查报告
|
||||||
|
*/
|
||||||
|
/**
|
||||||
|
* 分页查询检查报告
|
||||||
|
*/
|
||||||
|
export function getTestResultPage(queryParams) {
|
||||||
|
return request({
|
||||||
|
url: '/reg-doctorstation/request-form/get-page',
|
||||||
|
method: 'POST',
|
||||||
|
data: queryParams,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|||||||
@@ -705,7 +705,13 @@ function getList() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function getPageList() {
|
function getPageList() {
|
||||||
queryParams.value.pageNo = 1
|
getList()
|
||||||
|
}
|
||||||
|
|
||||||
|
// 处理分页参数
|
||||||
|
function handlePagination(pagination) {
|
||||||
|
queryParams.value.pageNo = pagination.page
|
||||||
|
queryParams.value.pageSize = pagination.limit
|
||||||
getList()
|
getList()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
1505
openhis-ui-vue3/src/views/surgicalschedule/index.vue
Normal file
1505
openhis-ui-vue3/src/views/surgicalschedule/index.vue
Normal file
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user