From 7e76083c376f725389adcad3b3262b0351a81783 Mon Sep 17 00:00:00 2001 From: chenqi Date: Mon, 19 Jan 2026 11:39:29 +0800 Subject: [PATCH] =?UTF-8?q?feat(doctorstation):=20=E4=BC=98=E5=8C=96?= =?UTF-8?q?=E5=8C=BB=E7=94=9F=E5=B7=A5=E4=BD=9C=E7=AB=99=E5=A4=84=E6=96=B9?= =?UTF-8?q?=E5=88=97=E8=A1=A8=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 调整诊疗定义表结构,添加序号和服务范围字段 - 修改费用项目查询逻辑,使用INNER JOIN替代LEFT JOIN并优化排序 - 增加批处理批次大小从500到1000,提升查询性能 - 修复处方类型筛选中的诊疗和耗材顺序错误 - 优化处方行数据重置逻辑,避免残留数据问题 - 移除不必要的README标题元素 --- openhis-server-new/README.md | 2 -- .../add_fields_to_activity_definition.sql | 12 --------- .../DoctorStationAdviceAppServiceImpl.java | 4 +-- .../DoctorStationAdviceAppMapper.xml | 14 +++++----- .../prescription/prescriptionlist.vue | 27 ++++++++++++------- 5 files changed, 26 insertions(+), 33 deletions(-) delete mode 100644 openhis-server-new/README.md delete mode 100644 openhis-server-new/add_fields_to_activity_definition.sql diff --git a/openhis-server-new/README.md b/openhis-server-new/README.md deleted file mode 100644 index 1d5661d8..00000000 --- a/openhis-server-new/README.md +++ /dev/null @@ -1,2 +0,0 @@ -

OpenHis v0.0.1

- diff --git a/openhis-server-new/add_fields_to_activity_definition.sql b/openhis-server-new/add_fields_to_activity_definition.sql deleted file mode 100644 index 41fb35f1..00000000 --- a/openhis-server-new/add_fields_to_activity_definition.sql +++ /dev/null @@ -1,12 +0,0 @@ --- 为诊疗定义表添加序号和服务范围字段 --- 执行前请先备份数据库 - -ALTER TABLE wor_activity_definition ADD COLUMN IF NOT EXISTS sort_order INTEGER DEFAULT NULL; -ALTER TABLE wor_activity_definition ADD COLUMN IF NOT EXISTS service_range VARCHAR(50) DEFAULT '全部'; - --- 添加注释 -COMMENT ON COLUMN wor_activity_definition.sort_order IS '序号'; -COMMENT ON COLUMN wor_activity_definition.service_range IS '服务范围'; - --- 为现有数据设置默认值 -UPDATE wor_activity_definition SET service_range = '全部' WHERE service_range IS NULL; diff --git a/openhis-server-new/openhis-application/src/main/java/com/openhis/web/doctorstation/appservice/impl/DoctorStationAdviceAppServiceImpl.java b/openhis-server-new/openhis-application/src/main/java/com/openhis/web/doctorstation/appservice/impl/DoctorStationAdviceAppServiceImpl.java index 2f3924aa..78f0b1d6 100644 --- a/openhis-server-new/openhis-application/src/main/java/com/openhis/web/doctorstation/appservice/impl/DoctorStationAdviceAppServiceImpl.java +++ b/openhis-server-new/openhis-application/src/main/java/com/openhis/web/doctorstation/appservice/impl/DoctorStationAdviceAppServiceImpl.java @@ -191,8 +191,8 @@ public class DoctorStationAdviceAppServiceImpl implements IDoctorStationAdviceAp // 费用定价子表信息 - 使用分批处理避免大量参数问题 List childCharge = new ArrayList<>(); if (chargeItemDefinitionIdList != null && !chargeItemDefinitionIdList.isEmpty()) { - // 分批处理,每批最多500个ID - int batchSize = 500; + // 分批处理,每批最多1000个ID,增加批次大小以减少查询次数 + int batchSize = 1000; for (int i = 0; i < chargeItemDefinitionIdList.size(); i += batchSize) { int endIndex = Math.min(i + batchSize, chargeItemDefinitionIdList.size()); List batch = chargeItemDefinitionIdList.subList(i, endIndex); 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 31e63278..6c3d5c7d 100644 --- 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 @@ -395,20 +395,18 @@ T1.condition_value, T1.condition_code, T1.amount AS price - FROM - adm_charge_item_def_detail AS T1 - LEFT JOIN adm_charge_item_definition AS T2 ON T2.ID = T1.definition_id - AND T2.delete_flag = '0' - WHERE - T1.delete_flag = '0' - AND T1.condition_code = #{conditionCode} + FROM adm_charge_item_def_detail AS T1 + INNER JOIN adm_charge_item_definition AS T2 ON T2.ID = T1.definition_id + WHERE T1.delete_flag = '0' + AND T2.delete_flag = '0' + AND T1.condition_code = #{conditionCode} AND T1.definition_id IN #{itemId} - ORDER BY T1.priority DESC + ORDER BY T1.priority DESC, T1.definition_id