Merge remote-tracking branch 'origin/develop' into develop
This commit is contained in:
@@ -459,10 +459,15 @@ function handleGetPrescription(skipAutoSelectAll = false) {
|
|||||||
// 执行
|
// 执行
|
||||||
function handleExecute() {
|
function handleExecute() {
|
||||||
let list = getSelectRows();
|
let list = getSelectRows();
|
||||||
|
if (list.length === 0) {
|
||||||
|
proxy.$modal.msgWarning('请选择需要执行的医嘱');
|
||||||
|
return;
|
||||||
|
}
|
||||||
let encounterIds = patientInfoList.value.map((i) => i.encounterId).join(',');
|
let encounterIds = patientInfoList.value.map((i) => i.encounterId).join(',');
|
||||||
list = list.map((item) => {
|
list = list.map((item) => {
|
||||||
return {
|
return {
|
||||||
requestId: item.requestId,
|
requestId: item.requestId,
|
||||||
|
encounterId: item.encounterId,
|
||||||
accountId: item.accountId,
|
accountId: item.accountId,
|
||||||
adviceTable: item.adviceTable,
|
adviceTable: item.adviceTable,
|
||||||
executeTimes: item.executeTimes,
|
executeTimes: item.executeTimes,
|
||||||
@@ -473,14 +478,23 @@ function handleExecute() {
|
|||||||
if (res.code == 200) {
|
if (res.code == 200) {
|
||||||
// 仅当选中医嘱中包含诊疗类医嘱(可能绑定耗材)时,才调用耗材批号匹配
|
// 仅当选中医嘱中包含诊疗类医嘱(可能绑定耗材)时,才调用耗材批号匹配
|
||||||
// adviceTable 取值为 med_medication_request(药品)或 wor_service_request(诊疗/耗材)
|
// adviceTable 取值为 med_medication_request(药品)或 wor_service_request(诊疗/耗材)
|
||||||
// 原代码用 includes('device') 判断有误,两个表名均不含 "device" 字符串
|
|
||||||
const hasServiceRequest = list.some((item) =>
|
const hasServiceRequest = list.some((item) =>
|
||||||
String(item.adviceTable || '') === 'wor_service_request',
|
String(item.adviceTable || '') === 'wor_service_request',
|
||||||
);
|
);
|
||||||
if (hasServiceRequest) {
|
if (hasServiceRequest) {
|
||||||
lotNumberMatch({ encounterIdList: encounterIds }, { skipErrorMsg: true }).catch((error) => {
|
// 仅传入选中医嘱对应的 encounterId,避免其他患者的耗材记录干扰
|
||||||
console.warn('lotNumberMatch failed after adviceExecute:', error);
|
const selectedEncounterIds = [...new Set(list.map((item) => item.encounterId).filter(Boolean))];
|
||||||
});
|
if (selectedEncounterIds.length > 0) {
|
||||||
|
lotNumberMatch({ encounterIdList: selectedEncounterIds }, { skipErrorMsg: true })
|
||||||
|
.then((matchRes) => {
|
||||||
|
if (matchRes && matchRes.code !== 200) {
|
||||||
|
console.warn('lotNumberMatch returned error:', matchRes.msg);
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.catch((error) => {
|
||||||
|
console.warn('lotNumberMatch failed after adviceExecute:', error);
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
// 刷新列表(不自动全选,保持用户操作前的选择状态)
|
// 刷新列表(不自动全选,保持用户操作前的选择状态)
|
||||||
handleGetPrescription(true);
|
handleGetPrescription(true);
|
||||||
@@ -488,6 +502,9 @@ function handleExecute() {
|
|||||||
} else {
|
} else {
|
||||||
proxy.$modal.msgError(res.msg || '医嘱执行失败');
|
proxy.$modal.msgError(res.msg || '医嘱执行失败');
|
||||||
}
|
}
|
||||||
|
}).catch((error) => {
|
||||||
|
console.error('医嘱执行接口调用失败:', error);
|
||||||
|
proxy.$modal.msgError('医嘱执行失败,请稍后重试');
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user