bug 573 578 584
This commit is contained in:
@@ -10,8 +10,11 @@ import com.openhis.administration.domain.Patient;
|
|||||||
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;
|
||||||
|
import com.openhis.common.enums.SurgeryAppStatusEnum;
|
||||||
import com.openhis.surgicalschedule.domain.OpSchedule;
|
import com.openhis.surgicalschedule.domain.OpSchedule;
|
||||||
import com.openhis.surgicalschedule.service.IOpScheduleService;
|
import com.openhis.surgicalschedule.service.IOpScheduleService;
|
||||||
|
import com.openhis.workflow.domain.ServiceRequest;
|
||||||
|
import com.openhis.workflow.service.IServiceRequestService;
|
||||||
import com.openhis.web.clinicalmanage.appservice.ISurgicalScheduleAppService;
|
import com.openhis.web.clinicalmanage.appservice.ISurgicalScheduleAppService;
|
||||||
import com.openhis.web.clinicalmanage.dto.OpCreateScheduleDto;
|
import com.openhis.web.clinicalmanage.dto.OpCreateScheduleDto;
|
||||||
import com.openhis.web.clinicalmanage.dto.OpScheduleDto;
|
import com.openhis.web.clinicalmanage.dto.OpScheduleDto;
|
||||||
@@ -63,6 +66,9 @@ public class SurgicalScheduleAppServiceImpl implements ISurgicalScheduleAppServi
|
|||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private RequestFormManageAppMapper requestFormManageAppMapper;
|
private RequestFormManageAppMapper requestFormManageAppMapper;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private IServiceRequestService iServiceRequestService;
|
||||||
/**
|
/**
|
||||||
* 分页查询手术安排列表
|
* 分页查询手术安排列表
|
||||||
*
|
*
|
||||||
@@ -221,8 +227,26 @@ public class SurgicalScheduleAppServiceImpl implements ISurgicalScheduleAppServi
|
|||||||
|
|
||||||
// 填充缺失的申请科室和主刀医生名称
|
// 填充缺失的申请科室和主刀医生名称
|
||||||
fillSurgeryMissingNames(surgery);
|
fillSurgeryMissingNames(surgery);
|
||||||
|
|
||||||
surgeryService.updateById(surgery);
|
surgeryService.updateById(surgery);
|
||||||
|
|
||||||
|
// 更新 wor_service_request 状态为已安排(5),使住院医生站手术申请tab状态同步
|
||||||
|
try {
|
||||||
|
List<ServiceRequest> serviceRequests = iServiceRequestService.list(
|
||||||
|
new LambdaQueryWrapper<ServiceRequest>()
|
||||||
|
.eq(ServiceRequest::getPrescriptionNo, opSchedule.getOperCode())
|
||||||
|
.eq(ServiceRequest::getCategoryEnum, 24)
|
||||||
|
.eq(ServiceRequest::getDeleteFlag, "0"));
|
||||||
|
if (serviceRequests != null && !serviceRequests.isEmpty()) {
|
||||||
|
List<Long> srIds = serviceRequests.stream()
|
||||||
|
.map(ServiceRequest::getId)
|
||||||
|
.collect(java.util.stream.Collectors.toList());
|
||||||
|
iServiceRequestService.updateSurgeryAppStatus(srIds, SurgeryAppStatusEnum.SCHEDULED.getCode());
|
||||||
|
log.info("更新wor_service_request状态为已安排 - operCode: {}, 更新{}条记录", opSchedule.getOperCode(), srIds.size());
|
||||||
|
}
|
||||||
|
} catch (Exception ex) {
|
||||||
|
log.error("更新wor_service_request状态失败 - operCode: {}", opSchedule.getOperCode(), ex);
|
||||||
|
}
|
||||||
log.info("更新手术申请单状态为已排期 - surgeryNo: {}, surgeryId: {}", opSchedule.getOperCode(), surgery.getId());
|
log.info("更新手术申请单状态为已排期 - surgeryNo: {}, surgeryId: {}", opSchedule.getOperCode(), surgery.getId());
|
||||||
}
|
}
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
|
|||||||
@@ -12,7 +12,14 @@ import com.core.common.utils.MessageUtils;
|
|||||||
import com.core.common.utils.SecurityUtils;
|
import com.core.common.utils.SecurityUtils;
|
||||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||||
import com.openhis.administration.domain.ChargeItem;
|
import com.openhis.administration.domain.ChargeItem;
|
||||||
|
import com.openhis.administration.domain.Organization;
|
||||||
import com.openhis.administration.service.IChargeItemService;
|
import com.openhis.administration.service.IChargeItemService;
|
||||||
|
import com.openhis.administration.service.IOrganizationService;
|
||||||
|
import com.openhis.administration.service.IPatientService;
|
||||||
|
import com.openhis.administration.service.IPractitionerService;
|
||||||
|
import com.openhis.administration.domain.Practitioner;
|
||||||
|
import com.openhis.clinical.domain.Surgery;
|
||||||
|
import com.openhis.clinical.service.ISurgeryService;
|
||||||
import com.openhis.common.constant.CommonConstants;
|
import com.openhis.common.constant.CommonConstants;
|
||||||
import com.openhis.common.constant.PromptMsgConstant;
|
import com.openhis.common.constant.PromptMsgConstant;
|
||||||
import com.openhis.common.enums.*;
|
import com.openhis.common.enums.*;
|
||||||
@@ -73,6 +80,18 @@ public class RequestFormManageAppServiceImpl implements IRequestFormManageAppSer
|
|||||||
@Resource
|
@Resource
|
||||||
ISpecimenService iSpecimenService;
|
ISpecimenService iSpecimenService;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
ISurgeryService iSurgeryService;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
IOrganizationService iOrganizationService;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
IPatientService iPatientService;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
IPractitionerService iPractitionerService;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 校验当前用户是否有权操作该申请单(申请者本人或管理员)
|
* 校验当前用户是否有权操作该申请单(申请者本人或管理员)
|
||||||
*/
|
*/
|
||||||
@@ -419,6 +438,106 @@ public class RequestFormManageAppServiceImpl implements IRequestFormManageAppSer
|
|||||||
throw new ServiceException("保存手术医嘱失败: " + e.getMessage());
|
throw new ServiceException("保存手术医嘱失败: " + e.getMessage());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 🩹 BugFix: 创建 cli_surgery 手术记录,使住院手术申请在门诊手术安排搜索中可见
|
||||||
|
try {
|
||||||
|
// 获取申请医生和科室名称
|
||||||
|
String applyDoctorName = SecurityUtils.getLoginUser().getUser().getNickName();
|
||||||
|
String applyDeptName = null;
|
||||||
|
if (SecurityUtils.getLoginUser().getUser().getDept() != null) {
|
||||||
|
applyDeptName = SecurityUtils.getLoginUser().getUser().getDept().getDeptName();
|
||||||
|
}
|
||||||
|
if (applyDeptName == null && orgId != null) {
|
||||||
|
Organization org = iOrganizationService.getById(orgId);
|
||||||
|
if (org != null) {
|
||||||
|
applyDeptName = org.getName();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Surgery surgery = new Surgery();
|
||||||
|
surgery.setSurgeryNo(prescriptionNo); // 关键:与 doc_request_form.prescription_no 一致,确保 INNER JOIN 能关联
|
||||||
|
surgery.setPatientId(patientId);
|
||||||
|
surgery.setEncounterId(encounterId);
|
||||||
|
surgery.setApplyDoctorId(practitionerId);
|
||||||
|
surgery.setApplyDoctorName(applyDoctorName);
|
||||||
|
surgery.setApplyDeptId(orgId);
|
||||||
|
surgery.setApplyDeptName(applyDeptName);
|
||||||
|
surgery.setOrgId(orgId);
|
||||||
|
surgery.setStatusEnum(0); // 0 = 待排期(新开)
|
||||||
|
surgery.setDeleteFlag("0");
|
||||||
|
|
||||||
|
// 从 descJson 解析主刀医生ID,查 adm_practitioner 填充姓名
|
||||||
|
String mainSurgeonIdStr = descMap != null ? (String) descMap.get("mainSurgeonId") : null;
|
||||||
|
if (mainSurgeonIdStr != null && !mainSurgeonIdStr.isEmpty()) {
|
||||||
|
try {
|
||||||
|
Long mainSurgeonId = Long.parseLong(mainSurgeonIdStr);
|
||||||
|
surgery.setMainSurgeonId(mainSurgeonId);
|
||||||
|
Practitioner surgeon = iPractitionerService.getById(mainSurgeonId);
|
||||||
|
if (surgeon != null && surgeon.getName() != null) {
|
||||||
|
surgery.setMainSurgeonName(surgeon.getName());
|
||||||
|
}
|
||||||
|
} catch (NumberFormatException ignored) {}
|
||||||
|
}
|
||||||
|
// 从 descJson 解析手术等级、麻醉方式
|
||||||
|
String surgeryLevelStr = descMap != null ? (String) descMap.get("surgeryLevel") : null;
|
||||||
|
if (surgeryLevelStr != null && !surgeryLevelStr.isEmpty()) {
|
||||||
|
try { surgery.setSurgeryLevel(Integer.parseInt(surgeryLevelStr)); } catch (NumberFormatException ignored) {}
|
||||||
|
}
|
||||||
|
String anesthesiaTypeStr = descMap != null ? (String) descMap.get("anesthesiaType") : null;
|
||||||
|
if (anesthesiaTypeStr != null && !anesthesiaTypeStr.isEmpty()) {
|
||||||
|
try { surgery.setAnesthesiaTypeEnum(Integer.parseInt(anesthesiaTypeStr)); } catch (NumberFormatException ignored) {}
|
||||||
|
}
|
||||||
|
// 填充患者姓名(从 adm_patient 查询)
|
||||||
|
if (patientId != null) {
|
||||||
|
try {
|
||||||
|
com.openhis.administration.domain.Patient patient = iPatientService.getById(patientId);
|
||||||
|
if (patient != null) {
|
||||||
|
surgery.setPatientName(patient.getName());
|
||||||
|
}
|
||||||
|
} catch (Exception ignored) {}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 从 descJson 解析手术信息
|
||||||
|
if (descMap != null) {
|
||||||
|
surgery.setSurgeryName(surgeryName);
|
||||||
|
surgery.setSurgeryCode(surgeryCode);
|
||||||
|
surgery.setSurgeryIndication(surgeryIndication);
|
||||||
|
surgery.setPreoperativeDiagnosis(preoperativeDiagnosis);
|
||||||
|
// 解析费用
|
||||||
|
if (surgeryFee != null && !surgeryFee.isEmpty()) {
|
||||||
|
try { surgery.setSurgeryFee(new BigDecimal(surgeryFee)); } catch (NumberFormatException ignored) {}
|
||||||
|
}
|
||||||
|
if (anesthesiaFee != null && !anesthesiaFee.isEmpty()) {
|
||||||
|
try { surgery.setAnesthesiaFee(new BigDecimal(anesthesiaFee)); } catch (NumberFormatException ignored) {}
|
||||||
|
}
|
||||||
|
// 解析计划手术时间
|
||||||
|
if (plannedTime != null && !plannedTime.isEmpty()) {
|
||||||
|
try {
|
||||||
|
surgery.setPlannedTime(new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(plannedTime));
|
||||||
|
} catch (Exception ignored) {}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// 兜底:若 descJson 解析为空,从 activityList 获取手术名称
|
||||||
|
if ((surgery.getSurgeryName() == null || surgery.getSurgeryName().isEmpty()) && adviceDefinitionName != null) {
|
||||||
|
surgery.setSurgeryName(adviceDefinitionName);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 编辑场景:更新已有的 cli_surgery 记录;不存在则新建
|
||||||
|
Surgery existingSurgery = iSurgeryService.getOne(
|
||||||
|
new LambdaQueryWrapper<Surgery>().eq(Surgery::getSurgeryNo, prescriptionNo)
|
||||||
|
.eq(Surgery::getDeleteFlag, "0").last("LIMIT 1"));
|
||||||
|
if (existingSurgery != null) {
|
||||||
|
surgery.setId(existingSurgery.getId());
|
||||||
|
iSurgeryService.updateById(surgery);
|
||||||
|
log.info("住院手术申请 cli_surgery 记录更新成功,surgeryNo={}", prescriptionNo);
|
||||||
|
} else {
|
||||||
|
iSurgeryService.save(surgery);
|
||||||
|
log.info("住院手术申请 cli_surgery 记录创建成功,surgeryNo={}, surgeryId={}", prescriptionNo, surgery.getId());
|
||||||
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
log.error("创建 cli_surgery 手术记录失败,prescriptionNo={}", prescriptionNo, e);
|
||||||
|
// 不中断主流程,手术安排搜索可见性不影响申请单保存
|
||||||
|
}
|
||||||
|
|
||||||
// 生成手术收费项目
|
// 生成手术收费项目
|
||||||
try {
|
try {
|
||||||
ChargeItem surgeryChargeItem = new ChargeItem();
|
ChargeItem surgeryChargeItem = new ChargeItem();
|
||||||
|
|||||||
@@ -98,4 +98,12 @@ public class RequestFormPageDto {
|
|||||||
* 就诊卡号
|
* 就诊卡号
|
||||||
*/
|
*/
|
||||||
private String identifierNo;
|
private String identifierNo;
|
||||||
|
/**
|
||||||
|
* 手术名称(来自 cli_surgery.surgery_name)
|
||||||
|
*/
|
||||||
|
private String surgeryName;
|
||||||
|
/**
|
||||||
|
* 术前诊断(来自 cli_surgery.preoperative_diagnosis)
|
||||||
|
*/
|
||||||
|
private String preoperativeDiagnosis;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -186,11 +186,13 @@
|
|||||||
<result column="incision_level" property="incisionLevel"/>
|
<result column="incision_level" property="incisionLevel"/>
|
||||||
<result column="surgery_level" property="surgeryLevel"/>
|
<result column="surgery_level" property="surgeryLevel"/>
|
||||||
<result column="identifier_no" property="identifierNo"/>
|
<result column="identifier_no" property="identifierNo"/>
|
||||||
|
<result column="surgery_name" property="surgeryName"/>
|
||||||
|
<result column="preoperative_diagnosis" property="preoperativeDiagnosis"/>
|
||||||
</resultMap>
|
</resultMap>
|
||||||
|
|
||||||
<!-- 分页查询申请单 -->
|
<!-- 分页查询申请单 -->
|
||||||
<select id="getRequestFormPage" resultMap="RequestFormPageDtoMap">
|
<select id="getRequestFormPage" resultMap="RequestFormPageDtoMap">
|
||||||
SELECT
|
SELECT DISTINCT
|
||||||
drf.prescription_no AS surgery_no,
|
drf.prescription_no AS surgery_no,
|
||||||
drf.desc_json,
|
drf.desc_json,
|
||||||
drf.create_by AS apply_doctor_name,
|
drf.create_by AS apply_doctor_name,
|
||||||
@@ -210,6 +212,8 @@
|
|||||||
cs.anesthesia_type_enum,
|
cs.anesthesia_type_enum,
|
||||||
cs.incision_level,
|
cs.incision_level,
|
||||||
cs.surgery_level,
|
cs.surgery_level,
|
||||||
|
cs.surgery_name,
|
||||||
|
cs.preoperative_diagnosis,
|
||||||
fc.contract_name AS fee_type,
|
fc.contract_name AS fee_type,
|
||||||
COALESCE(pi.identifier_no, ap.bus_no, '') AS identifier_no
|
COALESCE(pi.identifier_no, ap.bus_no, '') AS identifier_no
|
||||||
FROM doc_request_form drf
|
FROM doc_request_form drf
|
||||||
|
|||||||
@@ -48,11 +48,11 @@ public class OpSchedule extends HisBaseEntity {
|
|||||||
private String operName;
|
private String operName;
|
||||||
|
|
||||||
/** 术前诊断 */
|
/** 术前诊断 */
|
||||||
@TableField(value = "preoperative_diagnosis", insertStrategy = FieldStrategy.NEVER)
|
@TableField(value = "preoperative_diagnosis")
|
||||||
private String preoperativeDiagnosis;
|
private String preoperativeDiagnosis;
|
||||||
|
|
||||||
/** 术后诊断 */
|
/** 术后诊断 */
|
||||||
@TableField(value = "postoperative_diagnosis", insertStrategy = FieldStrategy.NEVER)
|
@TableField(value = "postoperative_diagnosis")
|
||||||
private String postoperativeDiagnosis;
|
private String postoperativeDiagnosis;
|
||||||
|
|
||||||
/** 手术安排日期时间 */
|
/** 手术安排日期时间 */
|
||||||
@@ -95,43 +95,43 @@ public class OpSchedule extends HisBaseEntity {
|
|||||||
private String tableNo;
|
private String tableNo;
|
||||||
|
|
||||||
/** 麻醉方式 */
|
/** 麻醉方式 */
|
||||||
@TableField(value = "anes_method", insertStrategy = FieldStrategy.NEVER)
|
@TableField(value = "anes_method")
|
||||||
private String anesMethod;
|
private String anesMethod;
|
||||||
|
|
||||||
/** 麻醉医生1编码 */
|
/** 麻醉医生1编码 */
|
||||||
@TableField(value = "anes_doctor1_code", insertStrategy = FieldStrategy.NEVER)
|
@TableField(value = "anes_doctor1_code")
|
||||||
private String anesDoctor1Code;
|
private String anesDoctor1Code;
|
||||||
|
|
||||||
/** 麻醉医生2编码 */
|
/** 麻醉医生2编码 */
|
||||||
@TableField(value = "anes_doctor2_code", insertStrategy = FieldStrategy.NEVER)
|
@TableField(value = "anes_doctor2_code")
|
||||||
private String anesDoctor2Code;
|
private String anesDoctor2Code;
|
||||||
|
|
||||||
/** 麻醉医生3编码 */
|
/** 麻醉医生3编码 */
|
||||||
@TableField(value = "anes_doctor3_code", insertStrategy = FieldStrategy.NEVER)
|
@TableField(value = "anes_doctor3_code")
|
||||||
private String anesDoctor3Code;
|
private String anesDoctor3Code;
|
||||||
|
|
||||||
/** 洗手护士编码 */
|
/** 洗手护士编码 */
|
||||||
@TableField(value = "scrub_nurse_code", insertStrategy = FieldStrategy.NEVER)
|
@TableField(value = "scrub_nurse_code")
|
||||||
private String scrubNurseCode;
|
private String scrubNurseCode;
|
||||||
|
|
||||||
/** 巡回护士1编码 */
|
/** 巡回护士1编码 */
|
||||||
@TableField(value = "circu_nurse1_code", insertStrategy = FieldStrategy.NEVER)
|
@TableField(value = "circu_nurse1_code")
|
||||||
private String circuNurse1Code;
|
private String circuNurse1Code;
|
||||||
|
|
||||||
/** 巡回护士2编码 */
|
/** 巡回护士2编码 */
|
||||||
@TableField(value = "circu_nurse2_code", insertStrategy = FieldStrategy.NEVER)
|
@TableField(value = "circu_nurse2_code")
|
||||||
private String circuNurse2Code;
|
private String circuNurse2Code;
|
||||||
|
|
||||||
/** 器械护士1编码 */
|
/** 器械护士1编码 */
|
||||||
@TableField(value = "scrub_nurse1_code", insertStrategy = FieldStrategy.NEVER)
|
@TableField(value = "scrub_nurse1_code")
|
||||||
private String scrubNurse1Code;
|
private String scrubNurse1Code;
|
||||||
|
|
||||||
/** 器械护士2编码 */
|
/** 器械护士2编码 */
|
||||||
@TableField(value = "scrub_nurse2_code", insertStrategy = FieldStrategy.NEVER)
|
@TableField(value = "scrub_nurse2_code")
|
||||||
private String scrubNurse2Code;
|
private String scrubNurse2Code;
|
||||||
|
|
||||||
/** 主刀医生编码 */
|
/** 主刀医生编码 */
|
||||||
@TableField(value = "surgeon_code", insertStrategy = FieldStrategy.NEVER)
|
@TableField(value = "surgeon_code")
|
||||||
private String surgeonCode;
|
private String surgeonCode;
|
||||||
|
|
||||||
/** 助手1编码 */
|
/** 助手1编码 */
|
||||||
|
|||||||
@@ -1509,12 +1509,13 @@ function submitForm() {
|
|||||||
if (!form.value.identifierNo) {
|
if (!form.value.identifierNo) {
|
||||||
form.value.typeCode = undefined;
|
form.value.typeCode = undefined;
|
||||||
}
|
}
|
||||||
form.value.address = getAddress(form);
|
// 拼接完整地址用于提交,但不覆写表单字段(避免弹窗关闭前显示全地址)
|
||||||
|
const submitData = { ...form.value, address: getAddress(form) };
|
||||||
|
|
||||||
// 判断是修改还是新增
|
// 判断是修改还是新增
|
||||||
if (form.value.busNo != undefined) {
|
if (form.value.busNo != undefined) {
|
||||||
// 修改患者
|
// 修改患者
|
||||||
updatePatient(form.value).then((response) => {
|
updatePatient(submitData).then((response) => {
|
||||||
proxy.$modal.msgSuccess('修改成功');
|
proxy.$modal.msgSuccess('修改成功');
|
||||||
visible.value = false;
|
visible.value = false;
|
||||||
// 触发提交成功事件,让父组件刷新列表
|
// 触发提交成功事件,让父组件刷新列表
|
||||||
@@ -1524,7 +1525,7 @@ function submitForm() {
|
|||||||
// console.log('患者就诊卡号:', form.value.identifierNo)
|
// console.log('患者就诊卡号:', form.value.identifierNo)
|
||||||
// console.log('患者就诊信息:', form.value.patientIdInfoList)
|
// console.log('患者就诊信息:', form.value.patientIdInfoList)
|
||||||
// 新增患者
|
// 新增患者
|
||||||
addPatient(form.value).then((response) => {
|
addPatient(submitData).then((response) => {
|
||||||
proxy.$modal.msgSuccess('新增成功');
|
proxy.$modal.msgSuccess('新增成功');
|
||||||
getPatientInfo(response.data.idCard);
|
getPatientInfo(response.data.idCard);
|
||||||
visible.value = false;
|
visible.value = false;
|
||||||
|
|||||||
@@ -137,8 +137,8 @@ function close() {
|
|||||||
emit('close');
|
emit('close');
|
||||||
}
|
}
|
||||||
|
|
||||||
function clickRow(row) {
|
function clickRow(params) {
|
||||||
selectRow.value = row;
|
selectRow.value = params.row;
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|||||||
@@ -124,8 +124,8 @@ function handlePageChange(page) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 点击行选择诊断
|
// 点击行选择诊断
|
||||||
function clickRow(row) {
|
function clickRow(params) {
|
||||||
emit('selectDiagnosis', row);
|
emit('selectDiagnosis', params.row);
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|||||||
@@ -166,19 +166,79 @@
|
|||||||
</vxe-column>
|
</vxe-column>
|
||||||
<vxe-column
|
<vxe-column
|
||||||
title="操作"
|
title="操作"
|
||||||
min-width="100"
|
min-width="220"
|
||||||
align="center"
|
align="center"
|
||||||
fixed="right"
|
fixed="right"
|
||||||
>
|
>
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<el-button
|
<!-- 待签发:编辑 + 详情 + 删除 -->
|
||||||
link
|
<template v-if="canManageRow(scope.row) && isPendingStatus(scope.row)">
|
||||||
type="primary"
|
<el-button
|
||||||
icon="View"
|
link
|
||||||
@click="handleViewDetail(scope.row)"
|
type="primary"
|
||||||
>
|
@click="handleEdit(scope.row)"
|
||||||
详情
|
>
|
||||||
</el-button>
|
编辑
|
||||||
|
</el-button>
|
||||||
|
<el-button
|
||||||
|
link
|
||||||
|
type="primary"
|
||||||
|
@click="handleViewDetail(scope.row)"
|
||||||
|
>
|
||||||
|
详情
|
||||||
|
</el-button>
|
||||||
|
<el-button
|
||||||
|
link
|
||||||
|
type="danger"
|
||||||
|
@click="handleDelete(scope.row)"
|
||||||
|
>
|
||||||
|
删除
|
||||||
|
</el-button>
|
||||||
|
</template>
|
||||||
|
<!-- 已签发:撤回 + 详情 -->
|
||||||
|
<template v-else-if="canManageRow(scope.row) && isWithdrawableStatus(scope.row)">
|
||||||
|
<el-button
|
||||||
|
link
|
||||||
|
type="warning"
|
||||||
|
@click="handleWithdraw(scope.row)"
|
||||||
|
>
|
||||||
|
撤回
|
||||||
|
</el-button>
|
||||||
|
<el-button
|
||||||
|
link
|
||||||
|
type="primary"
|
||||||
|
@click="handleViewDetail(scope.row)"
|
||||||
|
>
|
||||||
|
详情
|
||||||
|
</el-button>
|
||||||
|
</template>
|
||||||
|
<!-- 已校对/已执行/已安排/已完成:详情 + 打印 -->
|
||||||
|
<template v-else-if="isPrintableStatus(scope.row)">
|
||||||
|
<el-button
|
||||||
|
link
|
||||||
|
type="primary"
|
||||||
|
@click="handleViewDetail(scope.row)"
|
||||||
|
>
|
||||||
|
详情
|
||||||
|
</el-button>
|
||||||
|
<el-button
|
||||||
|
link
|
||||||
|
type="success"
|
||||||
|
@click="handlePrint(scope.row)"
|
||||||
|
>
|
||||||
|
打印
|
||||||
|
</el-button>
|
||||||
|
</template>
|
||||||
|
<!-- 已作废/其他状态:仅详情 -->
|
||||||
|
<template v-else>
|
||||||
|
<el-button
|
||||||
|
link
|
||||||
|
type="primary"
|
||||||
|
@click="handleViewDetail(scope.row)"
|
||||||
|
>
|
||||||
|
详情
|
||||||
|
</el-button>
|
||||||
|
</template>
|
||||||
</template>
|
</template>
|
||||||
</vxe-column>
|
</vxe-column>
|
||||||
</vxe-table>
|
</vxe-table>
|
||||||
@@ -256,7 +316,7 @@
|
|||||||
v-if="isFieldMatched(key)"
|
v-if="isFieldMatched(key)"
|
||||||
:label="getFieldLabel(key)"
|
:label="getFieldLabel(key)"
|
||||||
>
|
>
|
||||||
{{ value || '-' }}
|
{{ getFieldValue(key, value) }}
|
||||||
</el-descriptions-item>
|
</el-descriptions-item>
|
||||||
</template>
|
</template>
|
||||||
</el-descriptions>
|
</el-descriptions>
|
||||||
@@ -309,17 +369,45 @@
|
|||||||
</el-button>
|
</el-button>
|
||||||
</template>
|
</template>
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
|
<!-- 编辑弹窗 -->
|
||||||
|
<el-dialog
|
||||||
|
v-model="editDialogVisible"
|
||||||
|
title="编辑手术申请单"
|
||||||
|
width="1200px"
|
||||||
|
destroy-on-close
|
||||||
|
:close-on-click-modal="false"
|
||||||
|
@closed="editRowData = null"
|
||||||
|
>
|
||||||
|
<SurgeryForm
|
||||||
|
ref="editFormRef"
|
||||||
|
:edit-data="editRowData"
|
||||||
|
@submit-ok="handleEditSubmitOk"
|
||||||
|
/>
|
||||||
|
<template #footer>
|
||||||
|
<el-button @click="editDialogVisible = false">取消</el-button>
|
||||||
|
<el-button
|
||||||
|
type="primary"
|
||||||
|
@click="submitEditForm"
|
||||||
|
>
|
||||||
|
确认修改
|
||||||
|
</el-button>
|
||||||
|
</template>
|
||||||
|
</el-dialog>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
import {computed, getCurrentInstance, ref, watch} from 'vue';
|
import {computed, getCurrentInstance, nextTick, ref, watch} from 'vue';
|
||||||
import {Refresh, Search} from '@element-plus/icons-vue';
|
import {Refresh, Search} from '@element-plus/icons-vue';
|
||||||
import {patientInfo} from '../../store/patient.js';
|
import {patientInfo} from '../../store/patient.js';
|
||||||
import {getSurgery} from './api';
|
import {getSurgery, deleteRequestForm, withdrawRequestForm} from './api';
|
||||||
import {getDepartmentList} from '@/api/public.js';
|
import {getDepartmentList} from '@/api/public.js';
|
||||||
|
import SurgeryForm from '../order/applicationForm/surgery.vue';
|
||||||
|
import useUserStore from '@/store/modules/user';
|
||||||
|
import auth from '@/plugins/auth';
|
||||||
|
|
||||||
const { proxy } = getCurrentInstance();
|
const { proxy } = getCurrentInstance();
|
||||||
|
const userStore = useUserStore();
|
||||||
|
|
||||||
const tableData = ref([]);
|
const tableData = ref([]);
|
||||||
const loading = ref(false);
|
const loading = ref(false);
|
||||||
@@ -327,6 +415,9 @@ const detailDialogVisible = ref(false);
|
|||||||
const currentDetail = ref(null);
|
const currentDetail = ref(null);
|
||||||
const descJsonData = ref(null);
|
const descJsonData = ref(null);
|
||||||
const orgOptions = ref([]);
|
const orgOptions = ref([]);
|
||||||
|
const editDialogVisible = ref(false);
|
||||||
|
const editRowData = ref(null);
|
||||||
|
const editFormRef = ref(null);
|
||||||
|
|
||||||
// 获取默认日期范围(近7天)
|
// 获取默认日期范围(近7天)
|
||||||
const getDefaultDateRange = () => {
|
const getDefaultDateRange = () => {
|
||||||
@@ -412,6 +503,101 @@ const handleRefresh = async () => {
|
|||||||
await fetchData();
|
await fetchData();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/** 待签发 */
|
||||||
|
const isPendingStatus = (row) => row.status === 1;
|
||||||
|
/** 已签发(可撤回) */
|
||||||
|
const isWithdrawableStatus = (row) => row.status === 2;
|
||||||
|
/** 已校对/已执行/已安排/已完成(可打印) */
|
||||||
|
const isPrintableStatus = (row) => [3, 4, 5, 6].includes(row.status);
|
||||||
|
/** 是否可管理该申请单:申请者本人或管理员 */
|
||||||
|
const canManageRow = (row) => {
|
||||||
|
if (auth.hasRole('admin')) return true;
|
||||||
|
const currentPractitionerId = userStore.practitionerId;
|
||||||
|
const requesterId = row?.requesterId;
|
||||||
|
if (!currentPractitionerId || !requesterId) return false;
|
||||||
|
return String(currentPractitionerId) === String(requesterId);
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 编辑手术申请单(待签发状态)
|
||||||
|
*/
|
||||||
|
const handleEdit = async (row) => {
|
||||||
|
editRowData.value = row;
|
||||||
|
editDialogVisible.value = true;
|
||||||
|
await nextTick();
|
||||||
|
editFormRef.value?.getLocationInfo?.();
|
||||||
|
editFormRef.value?.getDiagnosisList?.();
|
||||||
|
editFormRef.value?.loadDoctorOptions?.();
|
||||||
|
if (row.requestFormDetailList?.length > 0) {
|
||||||
|
editFormRef.value?.fillForm?.(
|
||||||
|
JSON.parse(row.descJson || '{}'),
|
||||||
|
row.requestFormDetailList,
|
||||||
|
row.requestFormId
|
||||||
|
);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
const handleEditSubmitOk = async () => {
|
||||||
|
editDialogVisible.value = false;
|
||||||
|
editRowData.value = null;
|
||||||
|
proxy.$modal?.msgSuccess?.('修改成功');
|
||||||
|
await fetchData();
|
||||||
|
};
|
||||||
|
|
||||||
|
const submitEditForm = () => {
|
||||||
|
if (editFormRef.value?.submit) {
|
||||||
|
editFormRef.value.submit();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除手术申请单(仅待签发状态可删除)
|
||||||
|
*/
|
||||||
|
const handleDelete = async (row) => {
|
||||||
|
try {
|
||||||
|
await proxy.$modal?.confirm?.('确认删除该笔手术申请单吗?删除后数据将无法恢复。');
|
||||||
|
} catch { return; }
|
||||||
|
try {
|
||||||
|
const res = await deleteRequestForm({ requestFormId: row.requestFormId });
|
||||||
|
if (res?.code === 200) {
|
||||||
|
proxy.$modal?.msgSuccess?.('删除成功');
|
||||||
|
await fetchData();
|
||||||
|
} else {
|
||||||
|
proxy.$modal?.msgError?.(res?.msg || '删除失败');
|
||||||
|
}
|
||||||
|
} catch { /* 响应拦截器已处理错误提示 */ }
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 撤回手术申请单(已签发状态可撤回)
|
||||||
|
*/
|
||||||
|
const handleWithdraw = async (row) => {
|
||||||
|
try {
|
||||||
|
await proxy.$modal?.confirm?.(
|
||||||
|
'确认撤回该手术申请吗?撤回后将恢复为待签发状态,护士站医嘱校对将同步更新。'
|
||||||
|
);
|
||||||
|
} catch { return; }
|
||||||
|
try {
|
||||||
|
const res = await withdrawRequestForm({ requestFormId: row.requestFormId });
|
||||||
|
if (res?.code === 200) {
|
||||||
|
proxy.$modal?.msgSuccess?.('撤回成功');
|
||||||
|
await fetchData();
|
||||||
|
} else {
|
||||||
|
proxy.$modal?.msgError?.(res?.msg || '撤回失败');
|
||||||
|
}
|
||||||
|
} catch { /* 响应拦截器已处理错误提示 */ }
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 打印手术申请单:打开详情弹窗后触发浏览器打印
|
||||||
|
*/
|
||||||
|
const handlePrint = async (row) => {
|
||||||
|
await handleViewDetail(row);
|
||||||
|
nextTick(() => {
|
||||||
|
window.print();
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
/** 手术申请单状态映射 (与后端 SurgeryAppStatusEnum 对齐) */
|
/** 手术申请单状态映射 (与后端 SurgeryAppStatusEnum 对齐) */
|
||||||
const statusMap = {
|
const statusMap = {
|
||||||
1: { text: '待签发', type: 'info' },
|
1: { text: '待签发', type: 'info' },
|
||||||
@@ -459,6 +645,20 @@ const getFieldLabel = (key) => {
|
|||||||
return labelMap[key] || key;
|
return labelMap[key] || key;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const getFieldValue = (key, value) => {
|
||||||
|
// 主刀医生/助手:优先显示姓名,兜底显示ID
|
||||||
|
if (key === 'mainSurgeonId' && descJsonData.value?.mainSurgeonName) {
|
||||||
|
return descJsonData.value.mainSurgeonName;
|
||||||
|
}
|
||||||
|
if (key === 'assistant1Id' && descJsonData.value?.assistant1Name) {
|
||||||
|
return descJsonData.value.assistant1Name;
|
||||||
|
}
|
||||||
|
if (key === 'assistant2Id' && descJsonData.value?.assistant2Name) {
|
||||||
|
return descJsonData.value.assistant2Name;
|
||||||
|
}
|
||||||
|
return value || '-';
|
||||||
|
};
|
||||||
|
|
||||||
const hasMatchedFields = computed(() => {
|
const hasMatchedFields = computed(() => {
|
||||||
if (!descJsonData.value) return false;
|
if (!descJsonData.value) return false;
|
||||||
return Object.keys(descJsonData.value).some((key) => isFieldMatched(key));
|
return Object.keys(descJsonData.value).some((key) => isFieldMatched(key));
|
||||||
|
|||||||
@@ -79,8 +79,8 @@ function getList() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function clickRow(row) {
|
function clickRow(params) {
|
||||||
emit('selectDiagnosis', row);
|
emit('selectDiagnosis', params.row);
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|||||||
@@ -343,6 +343,14 @@ import useUserStore from '@/store/modules/user';
|
|||||||
const { proxy } = getCurrentInstance();
|
const { proxy } = getCurrentInstance();
|
||||||
const emits = defineEmits(['submitOk']);
|
const emits = defineEmits(['submitOk']);
|
||||||
const userStore = useUserStore();
|
const userStore = useUserStore();
|
||||||
|
const props = defineProps({
|
||||||
|
editData: {
|
||||||
|
type: Object,
|
||||||
|
default: null,
|
||||||
|
},
|
||||||
|
});
|
||||||
|
// 当前编辑的申请单ID(编辑模式时有值,用于覆盖保存)
|
||||||
|
const editingRequestFormId = ref('');
|
||||||
// 模块级缓存:避免每次打开弹窗都重新请求
|
// 模块级缓存:避免每次打开弹窗都重新请求
|
||||||
let surgeryRecordsCache = null; // 原始 API 记录
|
let surgeryRecordsCache = null; // 原始 API 记录
|
||||||
let surgeryMappedCache = null; // 映射后的 el-transfer 数据
|
let surgeryMappedCache = null; // 映射后的 el-transfer 数据
|
||||||
@@ -454,6 +462,27 @@ const mapToTransferItem = (item) => ({
|
|||||||
disabled: false,
|
disabled: false,
|
||||||
});
|
});
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 填充编辑表单数据(父组件调用)
|
||||||
|
* @param {Object} descJson - row.descJson 解析后的对象
|
||||||
|
* @param {Array} details - row.requestFormDetailList
|
||||||
|
* @param {string} formId - row.requestFormId
|
||||||
|
*/
|
||||||
|
const fillForm = (descJson, details, formId) => {
|
||||||
|
editingRequestFormId.value = formId || '';
|
||||||
|
// 回填已选手术项目到穿梭框
|
||||||
|
const ids = (details || []).map((d) => String(d.adviceDefinitionId));
|
||||||
|
transferValue.value = ids;
|
||||||
|
// 回填表单字段
|
||||||
|
if (descJson) {
|
||||||
|
Object.keys(form).forEach((key) => {
|
||||||
|
if (descJson[key] !== undefined && key !== 'primaryDiagnosisList' && key !== 'otherDiagnosisList') {
|
||||||
|
form[key] = descJson[key];
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
const transferValue = ref([]);
|
const transferValue = ref([]);
|
||||||
const form = reactive({
|
const form = reactive({
|
||||||
// categoryType: '', // 项目类别
|
// categoryType: '', // 项目类别
|
||||||
@@ -613,12 +642,21 @@ const submit = () => {
|
|||||||
accountId: patientInfo.value.accountId,
|
accountId: patientInfo.value.accountId,
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// 解析主刀医生、助手姓名,确保 descJson 中存有名称而非纯ID
|
||||||
|
const surgeonDoc = doctorOptions.value.find(d => d.id === form.mainSurgeonId);
|
||||||
|
form.mainSurgeonName = surgeonDoc ? surgeonDoc.name : '';
|
||||||
|
const assistant1Doc = doctorOptions.value.find(d => d.id === form.assistant1Id);
|
||||||
|
form.assistant1Name = assistant1Doc ? assistant1Doc.name : '';
|
||||||
|
const assistant2Doc = doctorOptions.value.find(d => d.id === form.assistant2Id);
|
||||||
|
form.assistant2Name = assistant2Doc ? assistant2Doc.name : '';
|
||||||
|
|
||||||
saveSurgery({
|
saveSurgery({
|
||||||
activityList: applicationListAllFilter,
|
activityList: applicationListAllFilter,
|
||||||
patientId: patientInfo.value.patientId, //患者ID
|
patientId: patientInfo.value.patientId, //患者ID
|
||||||
encounterId: patientInfo.value.encounterId, // 就诊ID
|
encounterId: patientInfo.value.encounterId, // 就诊ID
|
||||||
organizationId: patientInfo.value.inHospitalOrgId, // 医疗机构ID
|
organizationId: patientInfo.value.inHospitalOrgId, // 医疗机构ID
|
||||||
requestFormId: '', // 申请单ID
|
requestFormId: editingRequestFormId.value || '', // 编辑时传已有ID,新建时为空
|
||||||
name: '手术申请单',
|
name: '手术申请单',
|
||||||
descJson: JSON.stringify(form),
|
descJson: JSON.stringify(form),
|
||||||
categoryEnum: '24', // 21 检验 22 检查 23 输血 24 手术(避开 adviceType 1-6 碰撞)
|
categoryEnum: '24', // 21 检验 22 检查 23 输血 24 手术(避开 adviceType 1-6 碰撞)
|
||||||
@@ -626,6 +664,7 @@ const submit = () => {
|
|||||||
if (res.code === 200) {
|
if (res.code === 200) {
|
||||||
proxy.$message.success(res.msg);
|
proxy.$message.success(res.msg);
|
||||||
applicationList.value = [];
|
applicationList.value = [];
|
||||||
|
editingRequestFormId.value = '';
|
||||||
emits('submitOk');
|
emits('submitOk');
|
||||||
} else {
|
} else {
|
||||||
proxy.$message.error(res.message);
|
proxy.$message.error(res.message);
|
||||||
@@ -681,7 +720,7 @@ function getDiagnosisList() {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
defineExpose({ state, submit, getLocationInfo, getDiagnosisList, getList, loadDoctorOptions });
|
defineExpose({ state, submit, fillForm, getLocationInfo, getDiagnosisList, getList, loadDoctorOptions });
|
||||||
</script>
|
</script>
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
.surgery-container {
|
.surgery-container {
|
||||||
|
|||||||
@@ -1467,7 +1467,7 @@
|
|||||||
<vxe-column
|
<vxe-column
|
||||||
title="手术名称"
|
title="手术名称"
|
||||||
align="center"
|
align="center"
|
||||||
field="descJson.surgeryName"
|
field="surgeryName"
|
||||||
min-width="140"
|
min-width="140"
|
||||||
show-overflow
|
show-overflow
|
||||||
/>
|
/>
|
||||||
@@ -1823,6 +1823,9 @@ const rules = reactive({
|
|||||||
anesMethod: [
|
anesMethod: [
|
||||||
{ required: true, message: '请选择麻醉方法', trigger: 'change' }
|
{ required: true, message: '请选择麻醉方法', trigger: 'change' }
|
||||||
],
|
],
|
||||||
|
preoperativeDiagnosis: [
|
||||||
|
{ required: true, message: '请输入术前诊断', trigger: 'blur' }
|
||||||
|
],
|
||||||
surgeonCode: [
|
surgeonCode: [
|
||||||
{ required: true, message: '请选择主刀医生', trigger: 'change' }
|
{ required: true, message: '请选择主刀医生', trigger: 'change' }
|
||||||
]
|
]
|
||||||
@@ -2915,7 +2918,9 @@ function submitForm() {
|
|||||||
const submitData = {
|
const submitData = {
|
||||||
...form,
|
...form,
|
||||||
orgId: userStore.orgId,
|
orgId: userStore.orgId,
|
||||||
incisionLevel: form.incisionType
|
incisionLevel: form.incisionType,
|
||||||
|
preoperativeDiagnosis: form.preoperativeDiagnosis || '',
|
||||||
|
postoperativeDiagnosis: form.postoperativeDiagnosis || ''
|
||||||
}
|
}
|
||||||
delete submitData.incisionType
|
delete submitData.incisionType
|
||||||
if (!form.scheduleId) {
|
if (!form.scheduleId) {
|
||||||
@@ -3028,7 +3033,7 @@ function cancelApplyDialog() {
|
|||||||
|
|
||||||
// 行点击事件处理
|
// 行点击事件处理
|
||||||
function handleApplyRowClick(row) {
|
function handleApplyRowClick(row) {
|
||||||
const selectedRows = applyTableRef.value?.getSelectionRows ? applyTableRef.value.getSelectionRows() : []
|
const selectedRows = applyTableRef.value?.getCheckboxRecords ? applyTableRef.value.getCheckboxRecords() : []
|
||||||
// 如果已经有选中的行,先清除所有选择
|
// 如果已经有选中的行,先清除所有选择
|
||||||
if (selectedRows.length > 0) {
|
if (selectedRows.length > 0) {
|
||||||
applyTableRef.value.clearCheckboxRow()
|
applyTableRef.value.clearCheckboxRow()
|
||||||
@@ -3040,14 +3045,14 @@ function handleApplyRowClick(row) {
|
|||||||
// 表格行样式
|
// 表格行样式
|
||||||
function tableRowClassName({ row, rowIndex }) {
|
function tableRowClassName({ row, rowIndex }) {
|
||||||
// 检查当前行是否被选中
|
// 检查当前行是否被选中
|
||||||
const selectedRows = applyTableRef.value?.getSelectionRows ? applyTableRef.value.getSelectionRows() : []
|
const selectedRows = applyTableRef.value?.getCheckboxRecords ? applyTableRef.value.getCheckboxRecords() : []
|
||||||
const isSelected = selectedRows.some(selectedRow => selectedRow.surgeryNo === row.surgeryNo)
|
const isSelected = selectedRows.some(selectedRow => selectedRow.surgeryNo === row.surgeryNo)
|
||||||
return isSelected ? 'selected-row' : ''
|
return isSelected ? 'selected-row' : ''
|
||||||
}
|
}
|
||||||
|
|
||||||
// 控制表格只能单选
|
// 控制表格只能单选
|
||||||
function handleSelectable(row, rowIndex) {
|
function handleSelectable(row, rowIndex) {
|
||||||
const selectedRows = applyTableRef.value?.getSelectionRows ? applyTableRef.value.getSelectionRows() : []
|
const selectedRows = applyTableRef.value?.getCheckboxRecords ? applyTableRef.value.getCheckboxRecords() : []
|
||||||
// 如果还没有选中的行,或者当前行就是已经选中的行,则允许选择
|
// 如果还没有选中的行,或者当前行就是已经选中的行,则允许选择
|
||||||
return selectedRows.length === 0 || selectedRows.some(selectedRow => selectedRow.surgeryNo === row.surgeryNo)
|
return selectedRows.length === 0 || selectedRows.some(selectedRow => selectedRow.surgeryNo === row.surgeryNo)
|
||||||
}
|
}
|
||||||
@@ -3099,7 +3104,7 @@ const formattedApplyTime = computed(() => {
|
|||||||
|
|
||||||
// 确认手术申请
|
// 确认手术申请
|
||||||
function confirmApply() {
|
function confirmApply() {
|
||||||
const selectedRows = applyTableRef.value?.getSelectionRows ? applyTableRef.value.getSelectionRows() : []
|
const selectedRows = applyTableRef.value?.getCheckboxRecords ? applyTableRef.value.getCheckboxRecords() : []
|
||||||
if (!selectedRows || selectedRows.length === 0) {
|
if (!selectedRows || selectedRows.length === 0) {
|
||||||
proxy.$modal.msgWarning('请先选择一条手术申请记录')
|
proxy.$modal.msgWarning('请先选择一条手术申请记录')
|
||||||
return
|
return
|
||||||
@@ -3112,8 +3117,8 @@ function confirmApply() {
|
|||||||
form.visitId = selectedRow.encounterId // id对应填入就诊id
|
form.visitId = selectedRow.encounterId // id对应填入就诊id
|
||||||
form.identifierNo = selectedRow.identifierNo || '' // 就诊卡号
|
form.identifierNo = selectedRow.identifierNo || '' // 就诊卡号
|
||||||
form.operCode = selectedRow.surgeryNo // 手术单号作为手术编码
|
form.operCode = selectedRow.surgeryNo // 手术单号作为手术编码
|
||||||
form.operName = selectedRow.descJson?.surgeryName//手术名称
|
form.operName = selectedRow.surgeryName || selectedRow.descJson?.surgeryName//手术名称
|
||||||
form.preoperativeDiagnosis = selectedRow.preoperativeDiagnosis || selectedRow.descJson?.preoperativeDiagnosis
|
form.preoperativeDiagnosis = selectedRow.preoperativeDiagnosis || selectedRow.descJson?.preoperativeDiagnosis || ''
|
||||||
form.patientName = selectedRow.name// 患者姓名对应填入患者姓名
|
form.patientName = selectedRow.name// 患者姓名对应填入患者姓名
|
||||||
form.gender = selectedRow.gender//患者性别
|
form.gender = selectedRow.gender//患者性别
|
||||||
form.birthDay = selectedRow.birthDay//患者出生日期
|
form.birthDay = selectedRow.birthDay//患者出生日期
|
||||||
|
|||||||
Reference in New Issue
Block a user