From 5c29c0f09e7e789ea159f39bbe1792ead7364c88 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=8D=8E=E4=BD=97?= Date: Fri, 29 May 2026 15:53:36 +0800 Subject: [PATCH] =?UTF-8?q?fix(#613):=20=E5=8C=BB=E7=94=9F=E7=AB=AF?= =?UTF-8?q?=E5=8C=BB=E5=98=B1=E5=88=97=E8=A1=A8=E5=A2=9E=E5=8A=A0=E9=80=80?= =?UTF-8?q?=E5=9B=9E=E5=8E=9F=E5=9B=A0=E5=B1=95=E7=A4=BA=E5=88=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 根因(全链路6环分析): - ① 前端/页面 ❌ 医生端医嘱列表无退回原因列 → 无法展示护士填写的退回原因 - ② Controller ❌ 不涉及 — 纯转发层 - ③ Service ❌ getRequestBaseInfo() 未填充 reasonText 字段 - ④ Mapper/XML ❌ UNION ALL 查询未选取 back_reason/reason_text 字段 - ⑤ DB ✅ med_medication_request.back_reason 列已存在(上一次修复已迁移) - ⑥ 关联模块 ⚠️ wor_service_request.reason_text 已存在但未在查询中暴露 修复: 1. RequestBaseDto.java: 新增 reasonText 字段(映射退回原因) 2. DoctorStationAdviceAppMapper.xml: 5 个 UNION ALL 分支各自选取 reason_text - med_medication_request → T1.back_reason - charge item 回补 → T2.back_reason - device_request(2 处)→ NULL(无退回原因字段) - wor_service_request → T1.reason_text 3. prescriptionlist.vue: 在诊断列前新增退回原因列 全链路状态流转: 护士端弹窗→输入原因→API传backReason→DB保存→医生端列表展示 ↑ 本次修复打通最后一环 ↑ --- .../web/doctorstation/dto/RequestBaseDto.java | 5 +++++ .../doctorstation/DoctorStationAdviceAppMapper.xml | 5 +++++ .../components/prescription/prescriptionlist.vue | 12 ++++++++++++ 3 files changed, 22 insertions(+) diff --git a/openhis-server-new/openhis-application/src/main/java/com/openhis/web/doctorstation/dto/RequestBaseDto.java b/openhis-server-new/openhis-application/src/main/java/com/openhis/web/doctorstation/dto/RequestBaseDto.java index ad9a940d1..41b1cb525 100755 --- a/openhis-server-new/openhis-application/src/main/java/com/openhis/web/doctorstation/dto/RequestBaseDto.java +++ b/openhis-server-new/openhis-application/src/main/java/com/openhis/web/doctorstation/dto/RequestBaseDto.java @@ -127,6 +127,11 @@ public class RequestBaseDto { * 请求状态 */ private Integer statusEnum; + + /** + * 退回原因 + */ + private String reasonText; private String statusEnum_enumText; /** diff --git a/openhis-server-new/openhis-application/src/main/resources/mapper/doctorstation/DoctorStationAdviceAppMapper.xml b/openhis-server-new/openhis-application/src/main/resources/mapper/doctorstation/DoctorStationAdviceAppMapper.xml index 4366dea5e..5bc8fe5b8 100755 --- a/openhis-server-new/openhis-application/src/main/resources/mapper/doctorstation/DoctorStationAdviceAppMapper.xml +++ b/openhis-server-new/openhis-application/src/main/resources/mapper/doctorstation/DoctorStationAdviceAppMapper.xml @@ -517,6 +517,7 @@ 'med_medication_definition' AS advice_table_name, T1.medication_id AS advice_definition_id , T1.content_json::jsonb ->> 'remark' AS remark + , T1.back_reason AS reason_text FROM med_medication_request AS T1 LEFT JOIN med_medication_definition AS T2 ON T2.ID = T1.medication_id AND T2.delete_flag = '0' @@ -579,6 +580,7 @@ 'med_medication_definition' AS advice_table_name, T3.ID AS advice_definition_id , T2.content_json::jsonb ->> 'remark' AS remark + , T2.back_reason AS reason_text FROM adm_charge_item AS T1 INNER JOIN med_medication_request AS T2 ON T2.ID = T1.service_id AND T2.delete_flag = '0' LEFT JOIN med_medication_definition AS T3 ON T3.ID = T2.medication_id AND T3.delete_flag = '0' @@ -643,6 +645,7 @@ 'adm_device_definition' AS advice_table_name, CI.product_id AS advice_definition_id , NULL AS remark + , NULL AS reason_text FROM adm_charge_item AS CI LEFT JOIN adm_charge_item_definition CID ON CID.id = CI.definition_id AND CID.delete_flag = '0' LEFT JOIN wor_device_request DR ON DR.id = CI.service_id AND DR.delete_flag = '0' @@ -698,6 +701,7 @@ 'adm_device_definition' AS advice_table_name, T1.device_def_id AS advice_definition_id , T1.content_json::jsonb ->> 'remark' AS remark + , NULL AS reason_text FROM wor_device_request AS T1 LEFT JOIN adm_device_definition AS T2 ON T2.ID = T1.device_def_id AND T2.delete_flag = '0' @@ -755,6 +759,7 @@ 'wor_activity_definition' AS advice_table_name, T1.activity_id AS advice_definition_id, T1.remark AS remark + , T1.reason_text AS reason_text FROM wor_service_request AS T1 LEFT JOIN wor_activity_definition AS T2 ON T2.ID = T1.activity_id 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 7ab3842bb..28b661fee 100755 --- a/openhis-ui-vue3/src/views/doctorstation/components/prescription/prescriptionlist.vue +++ b/openhis-ui-vue3/src/views/doctorstation/components/prescription/prescriptionlist.vue @@ -1345,6 +1345,18 @@ + + +