fix(emr): 为医生角色授予电子病历管理菜单权限

- 授予医生、门诊医生、住院医生、管理员EMR菜单访问权限
- 包括:修订历史、病历检索、病程记录等
This commit is contained in:
2026-06-21 14:10:12 +08:00
parent ac7c611261
commit fde29104ab

View File

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