diff --git a/healthlink-his-server/healthlink-his-application/src/main/resources/db/migration/V105__add_patient_info_to_emr_search_index_hisdev.sql b/healthlink-his-server/healthlink-his-application/src/main/resources/db/migration/V105__add_patient_info_to_emr_search_index_hisdev.sql deleted file mode 100644 index ee8c1418d..000000000 --- a/healthlink-his-server/healthlink-his-application/src/main/resources/db/migration/V105__add_patient_info_to_emr_search_index_hisdev.sql +++ /dev/null @@ -1,8 +0,0 @@ --- V104__add_patient_info_to_emr_search_index_hisdev.sql --- 在 healthlink_his schema 上添加患者信息字段 - -ALTER TABLE emr_search_index ADD COLUMN IF NOT EXISTS patient_gender VARCHAR(10); -ALTER TABLE emr_search_index ADD COLUMN IF NOT EXISTS patient_age VARCHAR(10); -ALTER TABLE emr_search_index ADD COLUMN IF NOT EXISTS patient_phone VARCHAR(20); -ALTER TABLE emr_search_index ADD COLUMN IF NOT EXISTS patient_id_card VARCHAR(20); -ALTER TABLE emr_search_index ADD COLUMN IF NOT EXISTS encounter_no VARCHAR(50); diff --git a/healthlink-his-server/healthlink-his-application/src/main/resources/db/migration/V107__fix_role_permission_alignment.sql b/healthlink-his-server/healthlink-his-application/src/main/resources/db/migration/V107__fix_role_permission_alignment.sql deleted file mode 100644 index 2a215f1ca..000000000 --- a/healthlink-his-server/healthlink-his-application/src/main/resources/db/migration/V107__fix_role_permission_alignment.sql +++ /dev/null @@ -1,264 +0,0 @@ --- V107__fix_role_permission_alignment.sql --- 全面修复角色-权限匹配问题:菜单展示但API报403 - --- ============================================================ --- 第一部分:修复权限前缀不一致(历史遗留的infection:前缀) --- ============================================================ - --- 修复EMR相关菜单权限(infection:emr → emr) -UPDATE sys_menu SET perms = 'emr:list' WHERE perms = 'infection:emr:list'; -UPDATE sys_menu SET perms = 'emr:edit' WHERE perms = 'infection:emr:edit'; -UPDATE sys_menu SET perms = 'emr:sync:list' WHERE perms = 'infection:emr:sync:list'; - --- 修复病案统计明细(infection:mrhomepage → mrhomepage:mrhomepage) -UPDATE sys_menu SET perms = 'mrhomepage:mrhomepage:list' WHERE perms = 'infection:mrhomepage:list'; - --- 修复报表维度(infection:report → reportmanage:report) -UPDATE sys_menu SET perms = 'reportmanage:report:list' WHERE perms = 'infection:report:list'; -UPDATE sys_menu SET perms = 'reportmanage:report:edit' WHERE perms = 'infection:report:edit'; - --- 修复inpatient相关(inpatient:emr → emr,已由V101处理,此处兜底) -UPDATE sys_menu SET perms = 'emr:list' WHERE perms = 'inpatient:emr:list'; -UPDATE sys_menu SET perms = 'emr:edit' WHERE perms = 'inpatient:emr:edit'; - --- ============================================================ --- 第二部分:确保所有Controller需要的权限在sys_menu中存在 --- ============================================================ - --- 检查并插入缺失的菜单权限(如果菜单不存在则创建) --- 这些是后端Controller @PreAuthorize使用的权限,但菜单表中可能缺失 - --- administration模块 -INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) -SELECT '医务人员患者管理', - (SELECT menu_id FROM sys_menu WHERE menu_name = '系统管理' AND menu_type = 'M' LIMIT 1), - 99, 'practitioner-patient', 'administration/practitioner-patient/index', 'C', '0', '0', - 'administration:practitionerPatient:list', 'user', 'admin', NOW(), 'admin', NOW(), - '医务人员患者管理菜单' -WHERE NOT EXISTS (SELECT 1 FROM sys_menu WHERE perms = 'administration:practitionerPatient:list'); - --- basicmanage模块 -INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) -SELECT '电子健康卡', - (SELECT menu_id FROM sys_menu WHERE menu_name = '基础管理' AND menu_type = 'M' LIMIT 1), - 10, 'ehcard', 'basicmanage/ehcard/index', 'C', '0', '0', - 'basicmanage:ehcard:list', 'card', 'admin', NOW(), 'admin', NOW(), - '电子健康卡管理' -WHERE NOT EXISTS (SELECT 1 FROM sys_menu WHERE perms = 'basicmanage:ehcard:list'); - -INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) -SELECT '电子发票', - (SELECT menu_id FROM sys_menu WHERE menu_name = '基础管理' AND menu_type = 'M' LIMIT 1), - 20, 'einvoice', 'basicmanage/einvoice/index', 'C', '0', '0', - 'basicmanage:invoice:list', 'invoice', 'admin', NOW(), 'admin', NOW(), - '电子发票管理' -WHERE NOT EXISTS (SELECT 1 FROM sys_menu WHERE perms = 'basicmanage:invoice:list'); - --- document模块(病程记录) -INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) -SELECT '病程记录', - (SELECT menu_id FROM sys_menu WHERE menu_name = '电子病历管理' AND menu_type = 'M' LIMIT 1), - 50, 'progress-note', 'document/progress-note/index', 'C', '0', '0', - 'document:progressnote:list', 'note', 'admin', NOW(), 'admin', NOW(), - '病程记录管理' -WHERE NOT EXISTS (SELECT 1 FROM sys_menu WHERE perms = 'document:progressnote:list'); - --- epidemic模块(传染病报卡) -INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) -SELECT '传染病报卡', - (SELECT menu_id FROM sys_menu WHERE menu_name = '医院感染管理' AND menu_type = 'M' LIMIT 1), - 10, 'epidemic', 'infection/epidemic/index', 'C', '0', '0', - 'epidemic:list', 'alert', 'admin', NOW(), 'admin', NOW(), - '传染病报卡管理' -WHERE NOT EXISTS (SELECT 1 FROM sys_menu WHERE perms = 'epidemic:list'); - --- flowable模块(工作流表单) -INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) -SELECT '流程表单', - (SELECT menu_id FROM sys_menu WHERE menu_name = '系统管理' AND menu_type = 'M' LIMIT 1), - 98, 'flowable-form', 'flowable/form/index', 'C', '0', '0', - 'flowable:form:list', 'form', 'admin', NOW(), 'admin', NOW(), - '流程表单管理' -WHERE NOT EXISTS (SELECT 1 FROM sys_menu WHERE perms = 'flowable:form:list'); - --- tcm模块(中医) -INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) -SELECT '中医诊断', - (SELECT menu_id FROM sys_menu WHERE menu_name = '门诊医生工作站' AND menu_type = 'M' LIMIT 1), - 99, 'tcm', 'tcm/diagnosis/index', 'C', '0', '0', - 'tcm:list', '中医', 'admin', NOW(), 'admin', NOW(), - '中医诊断管理' -WHERE NOT EXISTS (SELECT 1 FROM sys_menu WHERE perms = 'tcm:list'); - --- surgery模块(手术安全核查) -INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) -SELECT '手术安全核查', - (SELECT menu_id FROM sys_menu WHERE menu_name = '手术管理' AND menu_type = 'M' LIMIT 1), - 50, 'surgery-safety', 'surgery/safety-check/index', 'C', '0', '0', - 'surgery:schedule:list', 'safety', 'admin', NOW(), 'admin', NOW(), - '手术安全核查管理' -WHERE NOT EXISTS (SELECT 1 FROM sys_menu WHERE perms = 'surgery:schedule:list'); - --- ============================================================ --- 第三部分:为所有角色授予基础查看权限 --- ============================================================ - --- 获取所有非管理员角色ID --- 为每个角色授予关键模块的查看权限 - --- 授予所有活跃角色emr:list权限(电子病历查看) -INSERT INTO sys_role_menu (role_id, menu_id) -SELECT r.role_id, m.menu_id -FROM sys_role r -CROSS JOIN sys_menu m -WHERE r.status = '0' - AND m.perms IN ( - 'emr:list', - 'emr:edit', - 'infection:cdss:list', - 'infection:regional:list', - 'reportmanage:report:list', - 'mrhomepage:mrhomepage:list', - 'epidemic:list', - 'document:progressnote:list', - 'basicmanage:ehcard:list', - 'basicmanage:invoice:list', - 'surgery:schedule:list', - 'tcm:list' - ) - AND NOT EXISTS ( - SELECT 1 FROM sys_role_menu rm - WHERE rm.role_id = r.role_id AND rm.menu_id = m.menu_id - ); - --- ============================================================ --- 第四部分:为医生角色授予专属权限 --- ============================================================ - --- 医生角色:授予门诊医生工作站、住院医生工作站相关权限 -INSERT INTO sys_role_menu (role_id, menu_id) -SELECT r.role_id, m.menu_id -FROM sys_role r -CROSS JOIN sys_menu m -WHERE r.status = '0' - AND r.role_name IN ('医生', 'doctor', '门诊医生', '住院医生', '主任医师', '副主任医师') - AND m.perms IN ( - 'emr:list', - 'emr:edit', - 'infection:cdss:list', - 'infection:cdss:edit', - 'infection:check:list', - 'infection:check:edit', - 'document:progressnote:list', - 'document:progressnote:add', - 'document:progressnote:edit', - 'tcm:list', - 'tcm:edit', - 'surgery:schedule:list', - 'surgery:schedule:edit', - 'epidemic:list', - 'epidemic:edit', - 'nursing:nursing:list', - 'outpatient:telehealth:list', - 'outpatient:telehealth:edit' - ) - AND NOT EXISTS ( - SELECT 1 FROM sys_role_menu rm - WHERE rm.role_id = r.role_id AND rm.menu_id = m.menu_id - ); - --- ============================================================ --- 第五部分:为护士角色授予专属权限 --- ============================================================ - -INSERT INTO sys_role_menu (role_id, menu_id) -SELECT r.role_id, m.menu_id -FROM sys_role r -CROSS JOIN sys_menu m -WHERE r.status = '0' - AND r.role_name IN ('护士', 'nurse', '护士长') - AND m.perms IN ( - 'nursing:nursing:list', - 'nursing:nursing:edit', - 'nursing:execution:list', - 'nursing:execution:add', - 'nursing:execution:edit', - 'nursing:record:list', - 'nursing:record:add', - 'nursing:record:edit', - 'inpatient:anesthesia:list', - 'inpatient:anesthesia:edit', - 'inpatient:clinical:list', - 'inpatient:clinical:edit', - 'inpatient:criticalvalue:list', - 'inpatient:criticalvalue:edit', - 'inpatient:bloodtransfusion:list', - 'inpatient:bloodtransfusion:edit', - 'emr:list', - 'emr:edit' - ) - AND NOT EXISTS ( - SELECT 1 FROM sys_role_menu rm - WHERE rm.role_id = r.role_id AND rm.menu_id = m.menu_id - ); - --- ============================================================ --- 第六部分:为药房角色授予专属权限 --- ============================================================ - -INSERT INTO sys_role_menu (role_id, menu_id) -SELECT r.role_id, m.menu_id -FROM sys_role r -CROSS JOIN sys_menu m -WHERE r.status = '0' - AND r.role_name IN ('药房', 'pharmacy', '药师', '药剂师') - AND m.perms IN ( - 'infection:rationaldrug:edit', - 'inpatient:clinical:list', - 'inpatient:clinical:edit', - 'inpatient:criticalvalue:list', - 'emr:list' - ) - AND NOT EXISTS ( - SELECT 1 FROM sys_role_menu rm - WHERE rm.role_id = r.role_id AND rm.menu_id = m.menu_id - ); - --- ============================================================ --- 第七部分:为管理员角色授予所有权限 --- ============================================================ - --- 管理员角色获取所有菜单权限(通过admin用户已有的 *:*:* 权限) --- 但确保管理员角色在sys_role_menu中有所有菜单的关联 -INSERT INTO sys_role_menu (role_id, menu_id) -SELECT 1, m.menu_id -FROM sys_menu m -WHERE m.status = '0' - AND NOT EXISTS ( - SELECT 1 FROM sys_role_menu rm - WHERE rm.role_id = 1 AND rm.menu_id = m.menu_id - ); - --- ============================================================ --- 第八部分:修复doctor_enhanced菜单的重复问题(V66/V76遗留) --- ============================================================ - --- 删除可能存在的重复菜单(保留perms正确的那个) -DELETE FROM sys_menu -WHERE menu_name = '门诊医生增强' - AND perms = 'infection:emr:list' - AND menu_id IN ( - SELECT menu_id FROM ( - SELECT menu_id FROM sys_menu - WHERE menu_name = '门诊医生增强' - ORDER BY menu_id DESC - LIMIT 1 OFFSET 1 - ) t - ); - --- ============================================================ --- 完成:刷新菜单缓存的提示 --- ============================================================ --- 执行完此脚本后,需要: --- 1. 重启应用或调用 /system/menu/refreshCache 刷新菜单缓存 --- 2. 用户重新登录以加载最新权限 diff --git a/healthlink-his-ui/src/components/TableLayout/Table.vue b/healthlink-his-ui/src/components/TableLayout/Table.vue index f621ab9c8..3c8fea560 100755 --- a/healthlink-his-ui/src/components/TableLayout/Table.vue +++ b/healthlink-his-ui/src/components/TableLayout/Table.vue @@ -147,7 +147,7 @@ const props = withDefaults(defineProps(), { showPagination: false, total: 0, pageNo: 1, - pageSize: 20, + pageSize: 10, isAllData: false, paginationLeftText: '', paginationProps: () => ({}), diff --git a/healthlink-his-ui/src/components/TableLayout/index.vue b/healthlink-his-ui/src/components/TableLayout/index.vue index d281f197a..3d42201f7 100755 --- a/healthlink-his-ui/src/components/TableLayout/index.vue +++ b/healthlink-his-ui/src/components/TableLayout/index.vue @@ -1,4 +1,4 @@ -