From fde29104abae07c60f88cb5e8bde471162ed6fdb Mon Sep 17 00:00:00 2001 From: chenqi Date: Sun, 21 Jun 2026 14:10:12 +0800 Subject: [PATCH] =?UTF-8?q?fix(emr):=20=E4=B8=BA=E5=8C=BB=E7=94=9F?= =?UTF-8?q?=E8=A7=92=E8=89=B2=E6=8E=88=E4=BA=88=E7=94=B5=E5=AD=90=E7=97=85?= =?UTF-8?q?=E5=8E=86=E7=AE=A1=E7=90=86=E8=8F=9C=E5=8D=95=E6=9D=83=E9=99=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 授予医生、门诊医生、住院医生、管理员EMR菜单访问权限 - 包括:修订历史、病历检索、病程记录等 --- .../V102__grant_emr_menu_to_doctor.sql | 44 +++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 healthlink-his-server/healthlink-his-application/src/main/resources/db/migration/V102__grant_emr_menu_to_doctor.sql diff --git a/healthlink-his-server/healthlink-his-application/src/main/resources/db/migration/V102__grant_emr_menu_to_doctor.sql b/healthlink-his-server/healthlink-his-application/src/main/resources/db/migration/V102__grant_emr_menu_to_doctor.sql new file mode 100644 index 000000000..d921184a5 --- /dev/null +++ b/healthlink-his-server/healthlink-his-application/src/main/resources/db/migration/V102__grant_emr_menu_to_doctor.sql @@ -0,0 +1,44 @@ +-- V102__grant_emr_menu_to_doctor.sql +-- 为医生角色授予电子病历管理相关菜单权限 + +-- 1. 获取医生角色ID并授予EMR菜单权限 +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.role_name IN ('医生', 'doctor', '门诊医生', '住院医生', '管理员', 'admin') + AND m.menu_id IN ( + 20201, -- 电子病历管理 + 20202, -- 病案归档 + 20203, -- 修订历史 + 20204, -- 病历时效 + 20205, -- 病历检索 + 20206, -- 进程记录 + 20207 -- 知识库 + ) + AND NOT EXISTS ( + SELECT 1 FROM sys_role_menu rm + WHERE rm.role_id = r.role_id AND rm.menu_id = m.menu_id + ); + +-- 2. 为医生角色授予EMR相关权限 +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.role_name IN ('医生', 'doctor', '门诊医生', '住院医生', '管理员', 'admin') + AND m.perms IN ( + 'emr:list', + 'emr:edit', + 'document:progressnote:list', + 'document:progressnote:add', + 'document:progressnote: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 + );