feat(surgicalschedule): 添加手术单号筛选和详情显示功能 BUG#278
- 在筛选区域添加手术单号输入框支持按手术单号搜索 - 在表格中添加手术单号列并支持点击查看详情 - 修复权限指令使用正确的 v-hasPermi 指令 - 更新查询参数结构体添加 operCode 字段 - 移除冗余的分页重置逻辑 - 优化后端服务层手术安排名称填充逻辑 - 添加系统用户表名称查询作为备选方案 - 修复数据库查询关联条件使用手术单号匹配 - 添加手术单号模糊查询的SQL条件支持
This commit is contained in:
@@ -541,15 +541,33 @@ public class SurgeryAppServiceImpl implements ISurgeryAppService {
|
|||||||
// 收集所有需要查询的ID
|
// 收集所有需要查询的ID
|
||||||
Set<Long> practitionerIds = new HashSet<>();
|
Set<Long> practitionerIds = new HashSet<>();
|
||||||
Set<Long> orgIds = new HashSet<>();
|
Set<Long> orgIds = new HashSet<>();
|
||||||
Set<Long> otherIds = new HashSet<>();
|
Set<Long> userIds = new HashSet<>(); // 用于查询sys_user表
|
||||||
|
|
||||||
// 收集Practitioner IDs
|
// 收集Practitioner IDs (医生相关)
|
||||||
if (surgery.getMainSurgeonId() != null) practitionerIds.add(surgery.getMainSurgeonId());
|
if (surgery.getMainSurgeonId() != null) {
|
||||||
if (surgery.getAnesthetistId() != null) practitionerIds.add(surgery.getAnesthetistId());
|
practitionerIds.add(surgery.getMainSurgeonId());
|
||||||
if (surgery.getAssistant1Id() != null) practitionerIds.add(surgery.getAssistant1Id());
|
userIds.add(surgery.getMainSurgeonId());
|
||||||
if (surgery.getAssistant2Id() != null) practitionerIds.add(surgery.getAssistant2Id());
|
}
|
||||||
if (surgery.getScrubNurseId() != null) practitionerIds.add(surgery.getScrubNurseId());
|
if (surgery.getAnesthetistId() != null) {
|
||||||
if (surgery.getApplyDoctorId() != null) practitionerIds.add(surgery.getApplyDoctorId());
|
practitionerIds.add(surgery.getAnesthetistId());
|
||||||
|
userIds.add(surgery.getAnesthetistId());
|
||||||
|
}
|
||||||
|
if (surgery.getAssistant1Id() != null) {
|
||||||
|
practitionerIds.add(surgery.getAssistant1Id());
|
||||||
|
userIds.add(surgery.getAssistant1Id());
|
||||||
|
}
|
||||||
|
if (surgery.getAssistant2Id() != null) {
|
||||||
|
practitionerIds.add(surgery.getAssistant2Id());
|
||||||
|
userIds.add(surgery.getAssistant2Id());
|
||||||
|
}
|
||||||
|
if (surgery.getScrubNurseId() != null) {
|
||||||
|
practitionerIds.add(surgery.getScrubNurseId());
|
||||||
|
userIds.add(surgery.getScrubNurseId());
|
||||||
|
}
|
||||||
|
if (surgery.getApplyDoctorId() != null) {
|
||||||
|
practitionerIds.add(surgery.getApplyDoctorId());
|
||||||
|
userIds.add(surgery.getApplyDoctorId());
|
||||||
|
}
|
||||||
|
|
||||||
// 收集Organization IDs
|
// 收集Organization IDs
|
||||||
if (surgery.getOrgId() != null) orgIds.add(surgery.getOrgId());
|
if (surgery.getOrgId() != null) orgIds.add(surgery.getOrgId());
|
||||||
@@ -558,69 +576,151 @@ public class SurgeryAppServiceImpl implements ISurgeryAppService {
|
|||||||
// 批量查询并缓存结果
|
// 批量查询并缓存结果
|
||||||
Map<Long, String> practitionerNameMap = new HashMap<>();
|
Map<Long, String> practitionerNameMap = new HashMap<>();
|
||||||
Map<Long, String> orgNameMap = new HashMap<>();
|
Map<Long, String> orgNameMap = new HashMap<>();
|
||||||
|
Map<Long, String> userNameMap = new HashMap<>(); // 从sys_user查询的名称
|
||||||
|
|
||||||
// 批量查询Practitioner
|
// 批量查询Practitioner
|
||||||
if (!practitionerIds.isEmpty()) {
|
if (!practitionerIds.isEmpty()) {
|
||||||
|
try {
|
||||||
List<com.openhis.administration.domain.Practitioner> practitioners = practitionerService.listByIds(practitionerIds);
|
List<com.openhis.administration.domain.Practitioner> practitioners = practitionerService.listByIds(practitionerIds);
|
||||||
for (com.openhis.administration.domain.Practitioner p : practitioners) {
|
for (com.openhis.administration.domain.Practitioner p : practitioners) {
|
||||||
|
if (p.getName() != null && !p.getName().isEmpty()) {
|
||||||
practitionerNameMap.put(p.getId(), p.getName());
|
practitionerNameMap.put(p.getId(), p.getName());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
log.warn("查询Practitioner名称失败: {}", e.getMessage());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 批量查询SysUser (作为备选) - 使用逐个查询
|
||||||
|
if (!userIds.isEmpty()) {
|
||||||
|
try {
|
||||||
|
for (Long userId : userIds) {
|
||||||
|
SysUser u = sysUserService.selectUserById(userId);
|
||||||
|
if (u != null) {
|
||||||
|
String userName = u.getNickName() != null && !u.getNickName().isEmpty()
|
||||||
|
? u.getNickName()
|
||||||
|
: u.getUserName();
|
||||||
|
if (userName != null && !userName.isEmpty()) {
|
||||||
|
userNameMap.put(u.getUserId(), userName);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
log.warn("查询SysUser名称失败: {}", e.getMessage());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// 批量查询Organization
|
// 批量查询Organization
|
||||||
if (!orgIds.isEmpty()) {
|
if (!orgIds.isEmpty()) {
|
||||||
|
try {
|
||||||
List<Organization> orgs = organizationService.listByIds(orgIds);
|
List<Organization> orgs = organizationService.listByIds(orgIds);
|
||||||
for (Organization o : orgs) {
|
for (Organization o : orgs) {
|
||||||
|
if (o.getName() != null && !o.getName().isEmpty()) {
|
||||||
orgNameMap.put(o.getId(), o.getName());
|
orgNameMap.put(o.getId(), o.getName());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
log.warn("查询Organization名称失败: {}", e.getMessage());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// 填充患者姓名
|
// 填充患者姓名
|
||||||
if (surgery.getPatientId() != null && surgery.getPatientName() == null) {
|
if (surgery.getPatientId() != null && surgery.getPatientName() == null) {
|
||||||
|
try {
|
||||||
Patient patient = patientService.getById(surgery.getPatientId());
|
Patient patient = patientService.getById(surgery.getPatientId());
|
||||||
if (patient != null) {
|
if (patient != null) {
|
||||||
surgery.setPatientName(patient.getName());
|
surgery.setPatientName(patient.getName());
|
||||||
}
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
log.warn("查询患者名称失败: {}", e.getMessage());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// 使用缓存填充名称
|
// 填充医生名称 - 优先使用practitioner,如果不存在则使用sys_user
|
||||||
if (surgery.getMainSurgeonId() != null && surgery.getMainSurgeonName() == null) {
|
if (surgery.getMainSurgeonId() != null && surgery.getMainSurgeonName() == null) {
|
||||||
surgery.setMainSurgeonName(practitionerNameMap.get(surgery.getMainSurgeonId()));
|
String name = practitionerNameMap.get(surgery.getMainSurgeonId());
|
||||||
|
if (name == null || name.isEmpty()) {
|
||||||
|
name = userNameMap.get(surgery.getMainSurgeonId());
|
||||||
|
}
|
||||||
|
if (name != null && !name.isEmpty()) {
|
||||||
|
surgery.setMainSurgeonName(name);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (surgery.getAnesthetistId() != null && surgery.getAnesthetistName() == null) {
|
if (surgery.getAnesthetistId() != null && surgery.getAnesthetistName() == null) {
|
||||||
surgery.setAnesthetistName(practitionerNameMap.get(surgery.getAnesthetistId()));
|
String name = practitionerNameMap.get(surgery.getAnesthetistId());
|
||||||
|
if (name == null || name.isEmpty()) {
|
||||||
|
name = userNameMap.get(surgery.getAnesthetistId());
|
||||||
|
}
|
||||||
|
if (name != null && !name.isEmpty()) {
|
||||||
|
surgery.setAnesthetistName(name);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (surgery.getAssistant1Id() != null && surgery.getAssistant1Name() == null) {
|
if (surgery.getAssistant1Id() != null && surgery.getAssistant1Name() == null) {
|
||||||
surgery.setAssistant1Name(practitionerNameMap.get(surgery.getAssistant1Id()));
|
String name = practitionerNameMap.get(surgery.getAssistant1Id());
|
||||||
|
if (name == null || name.isEmpty()) {
|
||||||
|
name = userNameMap.get(surgery.getAssistant1Id());
|
||||||
|
}
|
||||||
|
if (name != null && !name.isEmpty()) {
|
||||||
|
surgery.setAssistant1Name(name);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (surgery.getAssistant2Id() != null && surgery.getAssistant2Name() == null) {
|
if (surgery.getAssistant2Id() != null && surgery.getAssistant2Name() == null) {
|
||||||
surgery.setAssistant2Name(practitionerNameMap.get(surgery.getAssistant2Id()));
|
String name = practitionerNameMap.get(surgery.getAssistant2Id());
|
||||||
|
if (name == null || name.isEmpty()) {
|
||||||
|
name = userNameMap.get(surgery.getAssistant2Id());
|
||||||
|
}
|
||||||
|
if (name != null && !name.isEmpty()) {
|
||||||
|
surgery.setAssistant2Name(name);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (surgery.getScrubNurseId() != null && surgery.getScrubNurseName() == null) {
|
if (surgery.getScrubNurseId() != null && surgery.getScrubNurseName() == null) {
|
||||||
surgery.setScrubNurseName(practitionerNameMap.get(surgery.getScrubNurseId()));
|
String name = practitionerNameMap.get(surgery.getScrubNurseId());
|
||||||
|
if (name == null || name.isEmpty()) {
|
||||||
|
name = userNameMap.get(surgery.getScrubNurseId());
|
||||||
|
}
|
||||||
|
if (name != null && !name.isEmpty()) {
|
||||||
|
surgery.setScrubNurseName(name);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (surgery.getApplyDoctorId() != null && surgery.getApplyDoctorName() == null) {
|
if (surgery.getApplyDoctorId() != null && surgery.getApplyDoctorName() == null) {
|
||||||
surgery.setApplyDoctorName(practitionerNameMap.get(surgery.getApplyDoctorId()));
|
String name = practitionerNameMap.get(surgery.getApplyDoctorId());
|
||||||
|
if (name == null || name.isEmpty()) {
|
||||||
|
name = userNameMap.get(surgery.getApplyDoctorId());
|
||||||
|
}
|
||||||
|
if (name != null && !name.isEmpty()) {
|
||||||
|
surgery.setApplyDoctorName(name);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// 填充手术室名称
|
// 填充手术室名称
|
||||||
if (surgery.getOperatingRoomId() != null && surgery.getOperatingRoomName() == null) {
|
if (surgery.getOperatingRoomId() != null && surgery.getOperatingRoomName() == null) {
|
||||||
|
try {
|
||||||
OperatingRoom operatingRoom = operatingRoomService.getById(surgery.getOperatingRoomId());
|
OperatingRoom operatingRoom = operatingRoomService.getById(surgery.getOperatingRoomId());
|
||||||
if (operatingRoom != null) {
|
if (operatingRoom != null) {
|
||||||
surgery.setOperatingRoomName(operatingRoom.getName());
|
surgery.setOperatingRoomName(operatingRoom.getName());
|
||||||
}
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
log.warn("查询手术室名称失败: {}", e.getMessage());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// 使用缓存填充组织名称
|
// 使用缓存填充组织名称
|
||||||
if (surgery.getOrgId() != null && surgery.getOrgName() == null) {
|
if (surgery.getOrgId() != null && surgery.getOrgName() == null) {
|
||||||
surgery.setOrgName(orgNameMap.get(surgery.getOrgId()));
|
String name = orgNameMap.get(surgery.getOrgId());
|
||||||
|
if (name != null && !name.isEmpty()) {
|
||||||
|
surgery.setOrgName(name);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (surgery.getApplyDeptId() != null && surgery.getApplyDeptName() == null) {
|
if (surgery.getApplyDeptId() != null && surgery.getApplyDeptName() == null) {
|
||||||
surgery.setApplyDeptName(orgNameMap.get(surgery.getApplyDeptId()));
|
String name = orgNameMap.get(surgery.getApplyDeptId());
|
||||||
|
if (name != null && !name.isEmpty()) {
|
||||||
|
surgery.setApplyDeptName(name);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
log.debug("填充手术名称字段完成 - patientName: {}, mainSurgeonName: {}, orgName: {}",
|
log.debug("填充手术名称字段完成 - patientName: {}, mainSurgeonName: {}, applyDeptName: {}",
|
||||||
surgery.getPatientName(), surgery.getMainSurgeonName(), surgery.getOrgName());
|
surgery.getPatientName(), surgery.getMainSurgeonName(), surgery.getApplyDeptName());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ import com.core.common.core.domain.R;
|
|||||||
import com.core.common.core.domain.model.LoginUser;
|
import com.core.common.core.domain.model.LoginUser;
|
||||||
import com.core.common.utils.SecurityUtils;
|
import com.core.common.utils.SecurityUtils;
|
||||||
import com.openhis.administration.domain.Patient;
|
import com.openhis.administration.domain.Patient;
|
||||||
|
import com.openhis.administration.service.IOrganizationService;
|
||||||
import com.openhis.administration.service.IPatientService;
|
import com.openhis.administration.service.IPatientService;
|
||||||
import com.openhis.clinical.domain.Surgery;
|
import com.openhis.clinical.domain.Surgery;
|
||||||
import com.openhis.clinical.service.ISurgeryService;
|
import com.openhis.clinical.service.ISurgeryService;
|
||||||
@@ -55,6 +56,12 @@ public class SurgicalScheduleAppServiceImpl implements ISurgicalScheduleAppServi
|
|||||||
@Resource
|
@Resource
|
||||||
private ISurgeryService surgeryService;
|
private ISurgeryService surgeryService;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private com.openhis.administration.service.IOrganizationService organizationService;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private com.core.system.service.ISysUserService sysUserService;
|
||||||
|
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private RequestFormManageAppMapper requestFormManageAppMapper;
|
private RequestFormManageAppMapper requestFormManageAppMapper;
|
||||||
@@ -206,6 +213,10 @@ public class SurgicalScheduleAppServiceImpl implements ISurgicalScheduleAppServi
|
|||||||
if (surgery != null) {
|
if (surgery != null) {
|
||||||
surgery.setStatusEnum(1); // 1 = 已排期
|
surgery.setStatusEnum(1); // 1 = 已排期
|
||||||
surgery.setUpdateTime(new Date());
|
surgery.setUpdateTime(new Date());
|
||||||
|
|
||||||
|
// 填充缺失的申请科室和主刀医生名称
|
||||||
|
fillSurgeryMissingNames(surgery);
|
||||||
|
|
||||||
surgeryService.updateById(surgery);
|
surgeryService.updateById(surgery);
|
||||||
log.info("更新手术申请单状态为已排期 - surgeryNo: {}, surgeryId: {}", opSchedule.getOperCode(), surgery.getId());
|
log.info("更新手术申请单状态为已排期 - surgeryNo: {}, surgeryId: {}", opSchedule.getOperCode(), surgery.getId());
|
||||||
}
|
}
|
||||||
@@ -419,4 +430,78 @@ public class SurgicalScheduleAppServiceImpl implements ISurgicalScheduleAppServi
|
|||||||
// 格式化为 yyyy-MM-dd HH:mm:ss
|
// 格式化为 yyyy-MM-dd HH:mm:ss
|
||||||
return scheduleDate.format(java.time.format.DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
|
return scheduleDate.format(java.time.format.DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 填充手术申请中缺失的名称字段
|
||||||
|
* 在创建手术安排时调用,确保关联的cli_surgery表中的名称字段有值
|
||||||
|
*
|
||||||
|
* @param surgery 手术申请对象
|
||||||
|
*/
|
||||||
|
private void fillSurgeryMissingNames(com.openhis.clinical.domain.Surgery surgery) {
|
||||||
|
// 填充申请科室名称
|
||||||
|
if ((surgery.getApplyDeptName() == null || surgery.getApplyDeptName().isEmpty())
|
||||||
|
&& surgery.getApplyDeptId() != null) {
|
||||||
|
try {
|
||||||
|
com.openhis.administration.domain.Organization org = organizationService.getById(surgery.getApplyDeptId());
|
||||||
|
if (org != null && org.getName() != null) {
|
||||||
|
surgery.setApplyDeptName(org.getName());
|
||||||
|
log.info("填充申请科室名称 - surgeryId: {}, deptId: {}, deptName: {}",
|
||||||
|
surgery.getId(), surgery.getApplyDeptId(), org.getName());
|
||||||
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
log.warn("查询申请科室名称失败 - deptId: {}, error: {}", surgery.getApplyDeptId(), e.getMessage());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 填充主刀医生名称
|
||||||
|
if ((surgery.getMainSurgeonName() == null || surgery.getMainSurgeonName().isEmpty())
|
||||||
|
&& surgery.getMainSurgeonId() != null) {
|
||||||
|
try {
|
||||||
|
com.core.common.core.domain.entity.SysUser user = sysUserService.selectUserById(surgery.getMainSurgeonId());
|
||||||
|
if (user != null) {
|
||||||
|
String surgeonName = user.getNickName() != null && !user.getNickName().isEmpty()
|
||||||
|
? user.getNickName()
|
||||||
|
: user.getUserName();
|
||||||
|
if (surgeonName != null) {
|
||||||
|
surgery.setMainSurgeonName(surgeonName);
|
||||||
|
log.info("填充主刀医生名称 - surgeryId: {}, surgeonId: {}, surgeonName: {}",
|
||||||
|
surgery.getId(), surgery.getMainSurgeonId(), surgeonName);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
log.warn("查询主刀医生名称失败 - surgeonId: {}, error: {}", surgery.getMainSurgeonId(), e.getMessage());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 填充麻醉医生名称
|
||||||
|
if ((surgery.getAnesthetistName() == null || surgery.getAnesthetistName().isEmpty())
|
||||||
|
&& surgery.getAnesthetistId() != null) {
|
||||||
|
try {
|
||||||
|
com.core.common.core.domain.entity.SysUser user = sysUserService.selectUserById(surgery.getAnesthetistId());
|
||||||
|
if (user != null) {
|
||||||
|
String anesthetistName = user.getNickName() != null && !user.getNickName().isEmpty()
|
||||||
|
? user.getNickName()
|
||||||
|
: user.getUserName();
|
||||||
|
if (anesthetistName != null) {
|
||||||
|
surgery.setAnesthetistName(anesthetistName);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
log.warn("查询麻醉医生名称失败 - anesthetistId: {}, error: {}", surgery.getAnesthetistId(), e.getMessage());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 填充执行科室名称
|
||||||
|
if ((surgery.getOrgName() == null || surgery.getOrgName().isEmpty())
|
||||||
|
&& surgery.getOrgId() != null) {
|
||||||
|
try {
|
||||||
|
com.openhis.administration.domain.Organization org = organizationService.getById(surgery.getOrgId());
|
||||||
|
if (org != null && org.getName() != null) {
|
||||||
|
surgery.setOrgName(org.getName());
|
||||||
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
log.warn("查询执行科室名称失败 - orgId: {}, error: {}", surgery.getOrgId(), e.getMessage());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -33,7 +33,7 @@
|
|||||||
cs.main_surgeon_name AS surgeon_name
|
cs.main_surgeon_name AS surgeon_name
|
||||||
FROM op_schedule os
|
FROM op_schedule os
|
||||||
LEFT JOIN adm_patient ap ON os.patient_id = ap.id
|
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 cli_surgery cs ON os.oper_code = cs.surgery_no AND cs.delete_flag = '0'
|
||||||
LEFT JOIN adm_organization o ON cs.org_id = o.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_tenant st ON st.id = os.tenant_id
|
||||||
LEFT JOIN sys_user su ON su.user_id = os.creator_id
|
LEFT JOIN sys_user su ON su.user_id = os.creator_id
|
||||||
@@ -49,6 +49,9 @@
|
|||||||
</if>
|
</if>
|
||||||
<if test="dto.scheduleDate != null">
|
<if test="dto.scheduleDate != null">
|
||||||
AND os.schedule_date = #{dto.scheduleDate}
|
AND os.schedule_date = #{dto.scheduleDate}
|
||||||
|
</if>
|
||||||
|
<if test="dto.operCode != null and dto.operCode != ''">
|
||||||
|
AND os.oper_code LIKE CONCAT('%', #{dto.operCode}, '%')
|
||||||
</if>
|
</if>
|
||||||
AND os.delete_flag = '0'
|
AND os.delete_flag = '0'
|
||||||
</where>
|
</where>
|
||||||
@@ -72,7 +75,7 @@
|
|||||||
os.surgery_nature AS surgeryType
|
os.surgery_nature AS surgeryType
|
||||||
FROM op_schedule os
|
FROM op_schedule os
|
||||||
LEFT JOIN adm_patient ap ON os.patient_id = ap.id
|
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 cli_surgery cs ON os.oper_code = cs.surgery_no AND cs.delete_flag = '0'
|
||||||
LEFT JOIN adm_organization o ON cs.org_id = o.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
|
LEFT JOIN doc_request_form drf ON drf.prescription_no=cs.surgery_no
|
||||||
WHERE os.schedule_id = #{scheduleId}
|
WHERE os.schedule_id = #{scheduleId}
|
||||||
@@ -120,7 +123,7 @@
|
|||||||
cs.main_surgeon_name AS surgeon_name
|
cs.main_surgeon_name AS surgeon_name
|
||||||
FROM op_schedule os
|
FROM op_schedule os
|
||||||
LEFT JOIN adm_patient ap ON os.patient_id = ap.id
|
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 cli_surgery cs ON os.oper_code = cs.surgery_no AND cs.delete_flag = '0'
|
||||||
LEFT JOIN adm_organization o ON cs.org_id = o.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_tenant st ON st.id = os.tenant_id
|
||||||
LEFT JOIN sys_user su ON su.user_id = os.creator_id
|
LEFT JOIN sys_user su ON su.user_id = os.creator_id
|
||||||
|
|||||||
@@ -2,6 +2,15 @@
|
|||||||
<div class="app-container">
|
<div class="app-container">
|
||||||
<!-- 顶部筛选区 -->
|
<!-- 顶部筛选区 -->
|
||||||
<el-form :model="queryParams" ref="queryRef" :inline="true" v-show="showSearch" class="query-form">
|
<el-form :model="queryParams" ref="queryRef" :inline="true" v-show="showSearch" class="query-form">
|
||||||
|
<el-form-item label="手术单号" prop="operCode">
|
||||||
|
<el-input
|
||||||
|
v-model="queryParams.operCode"
|
||||||
|
placeholder="请输入手术单号"
|
||||||
|
clearable
|
||||||
|
@keyup.enter="handleQuery"
|
||||||
|
style="width: 200px"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
<el-form-item label="安排时间" prop="scheduleDate">
|
<el-form-item label="安排时间" prop="scheduleDate">
|
||||||
<el-tooltip :content="queryParams.scheduleDate" placement="top" :disabled="!queryParams.scheduleDate">
|
<el-tooltip :content="queryParams.scheduleDate" placement="top" :disabled="!queryParams.scheduleDate">
|
||||||
<el-date-picker
|
<el-date-picker
|
||||||
@@ -66,6 +75,13 @@
|
|||||||
|
|
||||||
<!-- 中部表格区 -->
|
<!-- 中部表格区 -->
|
||||||
<el-table v-loading="loading" :data="surgeryList" row-key="scheduleId" :row-class-name="getRowClassName" @current-change="handleCurrentChange">
|
<el-table v-loading="loading" :data="surgeryList" row-key="scheduleId" :row-class-name="getRowClassName" @current-change="handleCurrentChange">
|
||||||
|
<el-table-column label="手术单号" align="center" prop="operCode" width="180" show-overflow-tooltip>
|
||||||
|
<template #default="scope">
|
||||||
|
<el-link type="primary" :underline="false" @click="handleView(scope.row)">
|
||||||
|
{{ scope.row.operCode }}
|
||||||
|
</el-link>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
<el-table-column label="ID" align="center" width="80">
|
<el-table-column label="ID" align="center" width="80">
|
||||||
<template #default="{ $index }">
|
<template #default="{ $index }">
|
||||||
{{ (applyQueryParams.pageNo - 1) * applyQueryParams.pageSize + $index + 1 }}
|
{{ (applyQueryParams.pageNo - 1) * applyQueryParams.pageSize + $index + 1 }}
|
||||||
@@ -74,15 +90,12 @@
|
|||||||
<el-table-column label="卫生机构" align="center" prop="orgName" width="120" show-overflow-tooltip />
|
<el-table-column label="卫生机构" align="center" prop="orgName" width="120" show-overflow-tooltip />
|
||||||
<el-table-column label="姓名" align="center" prop="patientName" width="100" />
|
<el-table-column label="姓名" align="center" prop="patientName" width="100" />
|
||||||
<el-table-column label="就诊卡号" align="center" prop="visitId" width="120" />
|
<el-table-column label="就诊卡号" align="center" prop="visitId" width="120" />
|
||||||
<el-table-column label="手术单号" align="center" prop="operCode" width="180" show-overflow-tooltip>
|
<el-table-column label="手术名称" align="center" prop="operName" min-width="140" show-overflow-tooltip />
|
||||||
|
<el-table-column label="申请科室" align="center" prop="applyDeptName" width="100" show-overflow-tooltip>
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<el-link type="primary" :underline="false" @click="handleView(scope.row)">
|
{{ scope.row.applyDeptName || '-' }}
|
||||||
{{ scope.row.operCode }}
|
|
||||||
</el-link>
|
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="手术名称" align="center" prop="operName" min-width="140" show-overflow-tooltip />
|
|
||||||
<el-table-column label="申请科室" align="center" prop="applyDeptName" width="100" show-overflow-tooltip />
|
|
||||||
<el-table-column label="手术类型" align="center" width="100">
|
<el-table-column label="手术类型" align="center" width="100">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
{{ getSurgeryTypeName(scope.row.surgeryNature) }}
|
{{ getSurgeryTypeName(scope.row.surgeryNature) }}
|
||||||
@@ -109,7 +122,7 @@
|
|||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<el-button link type="primary" @click="handleView(scope.row)">查看</el-button>
|
<el-button link type="primary" @click="handleView(scope.row)">查看</el-button>
|
||||||
<el-button link type="primary" @click="handleEdit(scope.row)">编辑</el-button>
|
<el-button link type="primary" @click="handleEdit(scope.row)">编辑</el-button>
|
||||||
<el-button link type="danger" @click="handleDelete(scope.row)" v-has="['surgicalSchedule:delete']">取消</el-button>
|
<el-button link type="danger" @click="handleDelete(scope.row)" v-hasPermi="['surgicalSchedule:delete']">取消</el-button>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
</el-table>
|
</el-table>
|
||||||
@@ -862,7 +875,8 @@ const queryParams = reactive({
|
|||||||
scheduleDate: undefined,
|
scheduleDate: undefined,
|
||||||
tenantId: undefined,
|
tenantId: undefined,
|
||||||
applyDeptId: undefined,
|
applyDeptId: undefined,
|
||||||
patientName: undefined
|
patientName: undefined,
|
||||||
|
operCode: undefined
|
||||||
})
|
})
|
||||||
const open = ref(false)
|
const open = ref(false)
|
||||||
const isEditMode = ref(false)
|
const isEditMode = ref(false)
|
||||||
@@ -1165,7 +1179,6 @@ function getList() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function getPageList() {
|
function getPageList() {
|
||||||
queryParams.pageNo = 1
|
|
||||||
getList()
|
getList()
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1182,7 +1195,8 @@ function resetQuery() {
|
|||||||
scheduleDate: undefined,
|
scheduleDate: undefined,
|
||||||
tenantId: undefined,
|
tenantId: undefined,
|
||||||
applyDeptId: undefined,
|
applyDeptId: undefined,
|
||||||
patientName: undefined
|
patientName: undefined,
|
||||||
|
operCode: undefined
|
||||||
})
|
})
|
||||||
getList()
|
getList()
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user