diff --git a/openhis-ui-vue3/src/views/doctorstation/components/prescription/prescriptionlist.vue b/openhis-ui-vue3/src/views/doctorstation/components/prescription/prescriptionlist.vue index 31ee811d9..551487cd7 100755 --- a/openhis-ui-vue3/src/views/doctorstation/components/prescription/prescriptionlist.vue +++ b/openhis-ui-vue3/src/views/doctorstation/components/prescription/prescriptionlist.vue @@ -3418,7 +3418,12 @@ async function setValue(row) { console.log('[BugFix] setValue - prescriptionList[rowIndex].adviceType_dictText:', prescriptionList.value[rowIndex.value].adviceType_dictText); // 🔧 Bug #455: 诊疗医嘱(adviceType=3)的执行科室默认使用患者就诊科室, // 不使用positionId(诊疗目录配置的执行科室),避免配置ID不在机构树中导致显示原始ID - if (Number(row.adviceType) != 3) { + if (Number(row.adviceType) == 3) { + // 覆盖 catalog 传来的 positionId/orgId,使用患者就诊科室 + prescriptionList.value[rowIndex.value].orgId = props.patientInfo?.orgId; + prescriptionList.value[rowIndex.value].positionId = props.patientInfo?.orgId; + prescriptionList.value[rowIndex.value].positionName = findOrgNameById(props.patientInfo?.orgId) || props.patientInfo?.orgName || ''; + } else { prescriptionList.value[rowIndex.value].orgId = row.positionId || props.patientInfo?.orgId; } prescriptionList.value[rowIndex.value].dose = row.dose || row.doseQuantity; @@ -3652,7 +3657,10 @@ function handleSaveGroup(orderGroupList) { unitCode_dictText: item.unitCodeName || '', statusEnum: 1, // 🔧 修复执行科室逻辑:优先使用 orgId(所属科室),其次 positionId - orgId: item.orderDetailInfos?.orgId || mergedDetail.orgId || item.positionId || item.orderDetailInfos?.positionId || mergedDetail.positionId, + // 🔧 Bug #455: 诊疗类(adviceType=3)使用患者就诊科室,不使用目录配置的ID + orgId: item.adviceType === 3 + ? props.patientInfo?.orgId + : (item.orderDetailInfos?.orgId || mergedDetail.orgId || item.positionId || item.orderDetailInfos?.positionId || mergedDetail.positionId), dbOpType: prescriptionList.value[rowIndex.value].requestId ? '2' : '1', conditionId: conditionId.value, conditionDefinitionId: conditionDefinitionId.value,