From 864bf55025e7052cb0738725a3696f2acbe1dd5a Mon Sep 17 00:00:00 2001 From: wzk <2438381872@qq.com> Date: Wed, 26 Nov 2025 13:34:41 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E9=97=A8=E8=AF=8A=E5=8C=BB?= =?UTF-8?q?=E7=94=9F=E7=AB=99->=E3=80=90=E5=A4=84=E6=96=B9=E5=8D=95?= =?UTF-8?q?=E3=80=91=E6=8C=89=E9=92=AE=EF=BC=8C=E7=82=B9=E5=87=BB=E3=80=90?= =?UTF-8?q?=E5=A4=84=E6=96=B9=E5=8D=95=E3=80=91=E6=8C=89=E9=92=AE=E6=97=A0?= =?UTF-8?q?=E5=93=8D=E5=BA=94=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../components/eprescriptiondialog.vue | 34 ++++++++-- .../components/eprescriptionlist.vue | 2 +- .../prescription/prescriptionlist.vue | 49 +++++++++++++- .../src/views/doctorstation/index.vue | 65 +++++++++++++++++-- 4 files changed, 136 insertions(+), 14 deletions(-) diff --git a/openhis-ui-vue3/src/views/doctorstation/components/eprescriptiondialog.vue b/openhis-ui-vue3/src/views/doctorstation/components/eprescriptiondialog.vue index 92d7e858..dc943b53 100644 --- a/openhis-ui-vue3/src/views/doctorstation/components/eprescriptiondialog.vue +++ b/openhis-ui-vue3/src/views/doctorstation/components/eprescriptiondialog.vue @@ -594,15 +594,22 @@ function getPrescriptionNoInit() { form.rxTypeCode = props.prescriptionData.rxTypeCode; infoForm.prescriptionNo = props.prescriptionData.prescriptionNo; } - console.log(infoForm.prescriptionNo, 'infoForm.prescriptionNo', props.prescriptionData); + console.log('infoForm.prescriptionNo (初始值):', infoForm.prescriptionNo, 'props.prescriptionData:', props.prescriptionData); // prescriptionInfo.value = props.prescriptionData; if (title.value === '新增处方') { prescriptionNoInit().then((res) => { infoForm.prescriptionNo = res.data; - console.log(props, 'props', res, 'res', 'form', form.value); + console.log('处方号初始化成功:', { + prescriptionNo: infoForm.prescriptionNo, + form: form, + medicationInfoListLength: form.medicationInfoList.length + }); + }).catch((error) => { + console.error('处方号初始化失败:', error); + proxy.$modal.msgError('获取处方号失败,请重试'); }); } - form.medicationInfoList = props.medicationInfo; + form.medicationInfoList = props.medicationInfo || []; } function getDiagnosisInfo() { @@ -611,13 +618,26 @@ function getDiagnosisInfo() { let diagnosisInfo = diagnosisList.value.filter((item) => { return item.maindiseFlag == 1; }); - diagnosisInfo.value = diagnosisInfo[0]; - if (title.value === '新增处方') { - conditionId.value = diagnosisInfo[0].id; + if (diagnosisInfo.length > 0) { + diagnosisInfo.value = diagnosisInfo[0]; + if (title.value === '新增处方') { + conditionId.value = diagnosisInfo[0].id; + } } + }).catch((error) => { + console.error('获取诊断信息失败:', error); }); + + // 获取慢性病诊断信息,如果医保未连接则静默跳过 getChronicDisease({ encounterId: props.patient.encounterId }).then((res) => { - speDiagnosisList.value = res.data; + speDiagnosisList.value = res.data || []; + }).catch((error) => { + // 医保未连接时,静默处理,不显示错误信息 + // 只在开发环境下记录日志,生产环境不输出 + if (import.meta.env.DEV) { + console.debug('获取慢性病诊断信息失败(医保未连接,已静默处理):', error.message); + } + speDiagnosisList.value = []; }); } diff --git a/openhis-ui-vue3/src/views/doctorstation/components/eprescriptionlist.vue b/openhis-ui-vue3/src/views/doctorstation/components/eprescriptionlist.vue index 89e7aa12..2ef152ea 100644 --- a/openhis-ui-vue3/src/views/doctorstation/components/eprescriptionlist.vue +++ b/openhis-ui-vue3/src/views/doctorstation/components/eprescriptionlist.vue @@ -331,7 +331,7 @@ function getRowDisabled(row) { * 新增处方按钮操作 */ function handleAddPrescription() { - console.log('handleAddPrescription新增处方按钮操作', prescriptionNoTemp.value); + console.log('新增处方按钮操作 - 打开新增处方弹窗'); title.value = '新增处方'; openPrescriptionDialog(); } 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 bb4d1f1e..c4a91a4c 100644 --- a/openhis-ui-vue3/src/views/doctorstation/components/prescription/prescriptionlist.vue +++ b/openhis-ui-vue3/src/views/doctorstation/components/prescription/prescriptionlist.vue @@ -3212,7 +3212,54 @@ function getPrescriptionTotalAmount(prescriptionId) { } -defineExpose({ getListInfo, getDiagnosisInfo }); +/** + * 获取已签发的处方单信息(用于处方单预览) + * 返回已签发的药品处方单数据(statusEnum == 2 且 adviceType == 1 或 2) + */ +function getSignedPrescriptionInfo() { + const signedPrescriptions = []; + + // 遍历所有处方 + Object.keys(allPrescriptionsData.value).forEach(prescriptionId => { + const prescriptionData = allPrescriptionsData.value[prescriptionId] || []; + const prescription = westernPrescriptions.value.find(p => p.id === prescriptionId); + + if (!prescription) return; + + // 筛选已签发的药品(西药和中成药) + const signedMedicines = prescriptionData.filter(item => + item.statusEnum === 2 && (item.adviceType === 1 || item.adviceType === 2) + ); + + if (signedMedicines.length > 0) { + // 构建处方单信息 + const prescriptionInfo = { + prescriptionNo: prescription.name || `处方${prescriptionId}`, + patientName: props.patientInfo?.patientName || '', + requestTime: new Date().toISOString(), + conditionDefinitionName: diagnosisName.value || '', + prescriptionInfoDetail: signedMedicines.map(item => ({ + requestId: item.requestId, + adviceName: item.adviceName || '', + volume: item.volume || '', + quantity: item.quantity || '', + unitCode_dictText: item.unitCode_dictText || '', + lotNumber: item.lotNumber || '', + methodCode_dictText: item.methodCode_dictText || '', + dose: item.dose || '', + doseUnitCode_dictText: item.doseUnitCode_dictText || '', + rateCode_dictText: item.rateCode_dictText || '' + })) + }; + + signedPrescriptions.push(prescriptionInfo); + } + }); + + return signedPrescriptions; +} + +defineExpose({ getListInfo, getDiagnosisInfo, getSignedPrescriptionInfo });