@@ -1571,17 +1571,21 @@ function handleSaveGroup(orderGroupList) {
// 🔥 新版组件已经预处理了数据,优先使用 mergedDetail
const mergedDetail = item . mergedDetail || {
... ( item . orderDetailInfos || { } ) ,
adviceName : item . orderDetailInfos ? . advice Name || item . orderDefinition Name || '未知项目' ,
adviceName : item . orderDefinition Name || item . orderDetailInfos ? . advice Name || '未知项目' ,
adviceType : item . orderDetailInfos ? . adviceType ,
adviceDefinitionId : item . orderDefinitionId || item . orderDetailInfos ? . adviceDefinitionId ,
quantity : item . quantity ,
unitCode : item . unitCode || item . orderDetailInfos ? . unitCode ,
unitCodeName : item . unitCodeName ,
dose : item . dose || item . orderDetailInfos ? . dose ,
// 🔧 Bug #403 修复: dose/doseQuantity/dispensePerDuration 需用 null 检查,
// 避免组套中值为 null 时回退到医嘱库的 orderDetailInfos
dose : item . dose !== undefined && item . dose !== null ? item . dose : item . orderDetailInfos ? . dose ,
rateCode : item . rateCode || item . orderDetailInfos ? . rateCode ,
methodCode : item . methodCode || item . orderDetailInfos ? . methodCode ,
dispensePerDuration : item . dispensePerDuration || item . orderDetailInfos ? . dispensePerDuration ,
doseQuantity : item . doseQuantity ,
dispensePerDuration : item . dispensePerDuration !== undefined && item . dispensePerDuration !== null
? item . dispensePerDuration : item . orderDetailInfos ? . dispensePerDuration ,
doseQuantity : item . doseQuantity !== undefined && item . doseQuantity !== null
? item . doseQuantity : item . orderDetailInfos ? . doseQuantity ,
inventoryList : item . orderDetailInfos ? . inventoryList || [ ] ,
priceList : item . orderDetailInfos ? . priceList || [ ] ,
partPercent : item . orderDetailInfos ? . partPercent || 1 ,
@@ -1600,20 +1604,21 @@ function handleSaveGroup(orderGroupList) {
setValue ( mergedDetail ) ;
// 创建新的处方项目
// 🔧 Bug #403 修复:关键字段使用 null-safe 回退到 mergedDetail( 已由 setValue 填充完整数据)
const newRow = {
... prescriptionList . value [ rowIndex . value ] ,
patientId : patientInfo . value . patientId ,
encounterId : patientInfo . value . encounterId ,
accountId : accountId . value ,
quantity : item . quantity ,
methodCode : item . methodCode ,
rateCode : item . rateCode ,
dispensePerDuration : item . dispensePerDuration ,
dose : item . dose ,
doseQuantity : item . doseQuantity ,
quantity : item . quantity ? ? mergedDetail . quantity ,
methodCode : item . methodCode ? ? mergedDetail . methodCode ,
rateCode : item . rateCode ? ? mergedDetail . rateCode ,
dispensePerDuration : item . dispensePerDuration ? ? mergedDetail . dispensePerDuration ,
dose : item . dose ? ? mergedDetail . dose ,
doseQuantity : item . doseQuantity ? ? mergedDetail . doseQuantity ,
executeNum : 1 ,
unitCode : item . unitCode ,
unitCode _dictText : item . unitCodeName || '' ,
unitCode : item . unitCode ? ? mergedDetail . unitCode ,
unitCode _dictText : item . unitCodeName || mergedDetail . unitCodeName || '' ,
statusEnum : 1 ,
orgId : resolveOrgId ( item . orderDetailInfos ? . orgId || mergedDetail . orgId || patientInfo . value ? . inHospitalOrgId ) || '' ,
// 🔧 修复:同时保存 orgName, 确保树匹配不到时仍有中文名称可显示