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 + );