diff --git a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/emr/controller/EmrCompletenessController.java b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/emr/controller/EmrCompletenessController.java index 322b55279..dd6d66792 100644 --- a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/emr/controller/EmrCompletenessController.java +++ b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/emr/controller/EmrCompletenessController.java @@ -21,7 +21,7 @@ public class EmrCompletenessController { private final IEmrCompletenessAppService emrCompletenessAppService; @PostMapping("/check") - @PreAuthorize("@ss.hasPermi('inpatient:emr:edit')") + @PreAuthorize("@ss.hasPermi('emr:edit')") @Operation(summary = "执行病历完整性检查") public R> checkCompleteness( @RequestParam("emrId") Long emrId, @@ -30,7 +30,7 @@ public class EmrCompletenessController { } @GetMapping("/results/{emrId}") - @PreAuthorize("@ss.hasPermi('inpatient:emr:list')") + @PreAuthorize("@ss.hasPermi('emr:list')") @Operation(summary = "获取完整性检查结果") public R getCheckResults(@PathVariable Long emrId) { return R.ok(emrCompletenessAppService.getCheckResults(emrId)); diff --git a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/emr/controller/EmrDataWarehouseController.java b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/emr/controller/EmrDataWarehouseController.java index f33183ad7..af600ae81 100644 --- a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/emr/controller/EmrDataWarehouseController.java +++ b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/emr/controller/EmrDataWarehouseController.java @@ -23,28 +23,28 @@ public class EmrDataWarehouseController { private final IEmrDataWarehouseAppService emrDataWarehouseAppService; @PostMapping("/extract") - @PreAuthorize("@ss.hasPermi('infection:emr:edit')") + @PreAuthorize("@ss.hasPermi('emr:edit')") @Operation(summary = "提取结构化数据") public R> extractStructuredData(@RequestParam("emrId") Long emrId) { return R.ok(emrDataWarehouseAppService.extractStructuredData(emrId)); } @GetMapping("/data/{encounterId}") - @PreAuthorize("@ss.hasPermi('infection:emr:list')") + @PreAuthorize("@ss.hasPermi('emr:list')") @Operation(summary = "查询结构化数据") public R> getStructuredData(@PathVariable Long encounterId) { return R.ok(emrDataWarehouseAppService.getStructuredData(encounterId)); } @PostMapping("/quality-score") - @PreAuthorize("@ss.hasPermi('infection:emr:edit')") + @PreAuthorize("@ss.hasPermi('emr:edit')") @Operation(summary = "计算质控评分") public R calculateQualityScore(@RequestParam("encounterId") Long encounterId) { return R.ok(emrDataWarehouseAppService.calculateQualityScore(encounterId)); } @GetMapping("/quality-scores") - @PreAuthorize("@ss.hasPermi('infection:emr:list')") + @PreAuthorize("@ss.hasPermi('emr:list')") @Operation(summary = "查询质控评分列表") public R> getQualityScores(@RequestParam("encounterId") Long encounterId) { return R.ok(emrDataWarehouseAppService.getQualityScores(encounterId)); diff --git a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/emr/controller/EmrRevisionController.java b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/emr/controller/EmrRevisionController.java index dac0678a4..4a8be59c1 100644 --- a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/emr/controller/EmrRevisionController.java +++ b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/emr/controller/EmrRevisionController.java @@ -30,21 +30,21 @@ public class EmrRevisionController { private final IEmrRevisionAppService emrRevisionAppService; @PostMapping("/record") - @PreAuthorize("@ss.hasPermi('inpatient:emr:edit')") + @PreAuthorize("@ss.hasPermi('emr:edit')") @Operation(summary = "记录修改留痕") public R recordRevision(@RequestBody EmrRevision revision) { return R.ok(emrRevisionAppService.recordRevision(revision)); } @GetMapping("/list/{emrId}") - @PreAuthorize("@ss.hasPermi('inpatient:emr:list')") + @PreAuthorize("@ss.hasPermi('emr:list')") @Operation(summary = "获取修改历史列表") public R getRevisions(@PathVariable Long emrId) { return R.ok(emrRevisionAppService.getRevisions(emrId)); } @GetMapping("/page") - @PreAuthorize("@ss.hasPermi('inpatient:emr:list')") + @PreAuthorize("@ss.hasPermi('emr:list')") @Operation(summary = "分页查询修改留痕") public R getPage( @RequestParam(value = "emrId", required = false) Long emrId, @@ -61,14 +61,14 @@ public class EmrRevisionController { } @GetMapping("/{id}") - @PreAuthorize("@ss.hasPermi('inpatient:emr:list')") + @PreAuthorize("@ss.hasPermi('emr:list')") @Operation(summary = "获取修订详情") public R getById(@PathVariable Long id) { return R.ok(emrRevisionAppService.getRevisionDetail(id)); } @GetMapping("/compare") - @PreAuthorize("@ss.hasPermi('inpatient:emr:list')") + @PreAuthorize("@ss.hasPermi('emr:list')") @Operation(summary = "对比两个修订版本") public R compareRevisions( @RequestParam("revisionId1") Long id1, diff --git a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/emr/controller/EmrTimelinessController.java b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/emr/controller/EmrTimelinessController.java index 8fba25ac1..063e8fe98 100644 --- a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/emr/controller/EmrTimelinessController.java +++ b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/emr/controller/EmrTimelinessController.java @@ -23,7 +23,7 @@ public class EmrTimelinessController { private final IEmrTimelinessAppService emrTimelinessAppService; @PostMapping("/check") - @PreAuthorize("@ss.hasPermi('inpatient:emr:edit')") + @PreAuthorize("@ss.hasPermi('emr:edit')") @Operation(summary = "执行病历时限检查") public R checkTimeliness( @RequestParam(value = "encounterId", required = false) Long encounterId) { @@ -31,7 +31,7 @@ public class EmrTimelinessController { } @GetMapping("/alerts") - @PreAuthorize("@ss.hasPermi('inpatient:emr:list')") + @PreAuthorize("@ss.hasPermi('emr:list')") @Operation(summary = "获取病历时限提醒列表") public R> getTimelinessAlerts( @RequestParam(value = "emrType", required = false) String emrType, diff --git a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/emr/controller/EmrVersionController.java b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/emr/controller/EmrVersionController.java index 780f420ad..7c6de7eeb 100644 --- a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/emr/controller/EmrVersionController.java +++ b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/emr/controller/EmrVersionController.java @@ -20,21 +20,21 @@ public class EmrVersionController { private final IEmrVersionAppService emrVersionAppService; @PostMapping("/save") - @PreAuthorize("@ss.hasPermi('inpatient:emr:edit')") + @PreAuthorize("@ss.hasPermi('emr:edit')") @Operation(summary = "保存病历版本") public R saveVersion(@RequestBody EmrVersion version) { return R.ok(emrVersionAppService.saveVersion(version)); } @GetMapping("/list/{emrId}") - @PreAuthorize("@ss.hasPermi('inpatient:emr:list')") + @PreAuthorize("@ss.hasPermi('emr:list')") @Operation(summary = "获取病历版本列表") public R getVersions(@PathVariable Long emrId) { return R.ok(emrVersionAppService.getVersions(emrId)); } @GetMapping("/compare") - @PreAuthorize("@ss.hasPermi('inpatient:emr:list')") + @PreAuthorize("@ss.hasPermi('emr:list')") @Operation(summary = "对比两个版本") public R compareVersions( @RequestParam("versionId1") Long versionId1, diff --git a/healthlink-his-server/healthlink-his-application/src/main/resources/db/migration/V101__add_emr_sync_menu_and_permissions.sql b/healthlink-his-server/healthlink-his-application/src/main/resources/db/migration/V101__add_emr_sync_menu_and_permissions.sql new file mode 100644 index 000000000..786b05b00 --- /dev/null +++ b/healthlink-his-server/healthlink-his-application/src/main/resources/db/migration/V101__add_emr_sync_menu_and_permissions.sql @@ -0,0 +1,47 @@ +-- V101__add_emr_sync_menu_and_permissions.sql +-- 添加EMR数据同步菜单和医生权限 + +-- 1. 添加EMR数据同步菜单(在电子病历管理下) +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) +VALUES ( + 'EMR数据同步', + (SELECT menu_id FROM sys_menu WHERE menu_name = '电子病历管理' LIMIT 1), + 99, + 'sync', + 'emr/sync/index', + 'C', + '0', + '0', + 'emr:sync:list', + 'upload', + 'admin', + NOW(), + 'admin', + NOW(), + 'EMR数据同步 - 从病历表同步数据到修订历史和搜索索引' +); + +-- 2. 为医生角色添加EMR权限 +-- 获取医生角色ID(假设角色名为'医生'或'doctor') +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', '门诊医生', '住院医生') + AND m.perms IN ( + 'emr:list', + 'emr:edit', + 'emr:sync: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 + ); + +-- 3. 更新EMR相关菜单的权限(将inpatient:emr改为emr) +UPDATE sys_menu SET perms = 'emr:list' WHERE perms = 'inpatient:emr:list'; +UPDATE sys_menu SET perms = 'emr:edit' WHERE perms = 'inpatient:emr:edit'; +UPDATE sys_menu SET perms = 'emr:list' WHERE perms = 'infection:emr:list'; +UPDATE sys_menu SET perms = 'emr:edit' WHERE perms = 'infection:emr:edit';