Files
hms/docs/event-registry.md
iven 30a578ee00
Some checks failed
CI / rust-check (push) Has been cancelled
CI / rust-test (push) Has been cancelled
CI / frontend-build (push) Has been cancelled
CI / security-audit (push) Has been cancelled
fix(health): 客户试用前全局审计修复 — P0 权限旁路 + API 路径 + 事件注册
P0 阻塞修复:
- 修复 PrivateRoute 权限旁路: p.startsWith('auth.') 匹配不到任何权限码,
  改为基于实际权限码的路由级检查 (user.manage/role.manage/organization.manage)
- 修复 deviceReadings API 路径: /patients/{id}/device-readings/daily 改为
  /vital-signs/daily?patient_id=, 消除 404

P1 重要修复:
- 补全事件注册表: 新增 auth(11) + config(8) + workflow(4) + plugin(2) = 25 条
- article_article_tag 联表新增 tenant_id + deleted_at + 审计列 (迁移 107)
- vital_signs_hourly 新增 deleted_at 支持软删除过滤 (迁移 108)
- 6 个页面添加权限守卫 (AlertDashboard/AlertRuleList/DeviceManage/
  AiAnalysisList/AiUsageDashboard)
- DialysisModule 声明 auth 依赖
2026-05-04 11:02:25 +08:00

8.2 KiB
Raw Blame History

HMS 事件注册表

生成日期: 2026-05-04 | 全系统审计后更新

概述

所有模块间通信通过 EventBus + DomainEvent 实现outbox 模式)。本文档记录每个事件类型的发布者、消费者和当前状态。

状态标记

  • OK: 发布者和消费者均正常
  • FIRE-AND-FORGET: 发布者正常,消费者为日志记录(无业务逻辑)
  • PENDING: 常量已定义但功能未实现

事件清单

预约管理

事件类型 发布者 消费者 状态
appointment.created appointment_service.rs erp-message (预约创建通知) OK
appointment.confirmed appointment_service.rs erp-message (预约确认通知患者) OK
appointment.cancelled appointment_service.rs erp-message (预约取消通知) OK
appointment.reminder appointment_service.rs (后台任务) erp-message (预约提醒) OK

咨询管理

事件类型 发布者 消费者 状态
consultation.opened consultation_service.rs erp-message (医生新会话通知) OK
consultation.closed consultation_service.rs erp-message (患者会话结束通知) OK
consultation.new_message consultation_service.rs erp-message (医生新消息通知) OK

随访管理

事件类型 发布者 消费者 状态
follow_up.created follow_up_service.rs erp-message (被分配人新任务通知) OK
follow_up.completed follow_up_service.rs erp-message (患者随访完成通知) OK
follow_up.overdue follow_up_service.rs (后台6h扫描) erp-message (逾期提醒) OK

化验与健康数据

事件类型 发布者 消费者 状态
lab_report.uploaded health_data_service.rs erp-message (审计日志) FIRE-AND-FORGET
lab_report.reviewed health_data_service.rs erp-message (患者审核完成通知) OK
health_data.critical_alert health_data_service.rs erp-message (医生危急值通知) OK
daily_monitoring.created daily_monitoring_service.rs erp-message (审计日志) FIRE-AND-FORGET

患者管理

事件类型 发布者 消费者 状态
patient.created patient_service.rs erp-health event.rs (欢迎通知) OK
patient.updated patient_service.rs erp-message (审计日志) FIRE-AND-FORGET
patient.verified — (功能未实现) PENDING
patient.deceased — (功能未实现) PENDING

积分系统

事件类型 发布者 消费者 状态
points.earned points_service.rs erp-message (患者积分到账通知) OK
points.exchanged points_service.rs erp-message (患者兑换成功通知) OK
points.expired points_service.rs (后台24h清理) erp-message (患者过期提醒) OK

内容管理

事件类型 发布者 消费者 状态
article.published article_service.rs erp-message (审计日志) FIRE-AND-FORGET
article.rejected article_service.rs erp-message (作者审核驳回通知) OK

知情同意

事件类型 发布者 消费者 状态
consent.granted consent_service.rs erp-health event.rs (审计) OK
consent.revoked consent_service.rs erp-health event.rs (审计) OK

设备数据

事件类型 发布者 消费者 状态
device.readings.synced device_reading_service.rs erp-health event.rs (告警引擎评估) OK

告警系统

事件类型 发布者 消费者 状态
alert.triggered alert_engine.rs erp-health (告警通知) + alert_aggregator (聚合检测) OK
alert.aggregated alert_aggregator SSE 推送 (聚合通知) OK

医生管理

事件类型 发布者 消费者 状态
doctor.online_status_changed doctor_service.rs erp-message (审计日志) FIRE-AND-FORGET

AI 模块

事件类型 发布者 消费者 状态
ai.analysis.completed erp-ai/handler erp-health event.rs (透析统计联动) OK
ai.analysis.failed erp-ai/handler erp-message (医生失败通知) OK
dialysis.record.created erp-dialysis/service erp-health event.rs (透析统计) OK

基础设施事件(非健康模块)

事件类型 发布者 消费者 状态
workflow.task.completed erp-workflow erp-health event.rs OK
message.sent erp-message erp-health event.rs (日志) FIRE-AND-FORGET
message.send (内部命令) erp-health event.rs erp-message (消息发送触发) OK

用户与认证erp-auth

事件类型 发布者 消费者 状态
user.login auth_service.rs:161 FIRE-AND-FORGET
user.created user_service.rs:94 FIRE-AND-FORGET
user.deleted user_service.rs:284 erp-workflow (终止用户流程实例) OK
role.created role_service.rs:129 FIRE-AND-FORGET
role.deleted role_service.rs:250 FIRE-AND-FORGET
organization.created org_service.rs:123 FIRE-AND-FORGET
organization.deleted org_service.rs:310 FIRE-AND-FORGET
department.created dept_service.rs:141 FIRE-AND-FORGET
department.deleted dept_service.rs:350 FIRE-AND-FORGET
position.created position_service.rs:109 FIRE-AND-FORGET
position.deleted position_service.rs:240 FIRE-AND-FORGET

系统配置erp-config

事件类型 发布者 消费者 状态
setting.updated setting_service.rs:117 FIRE-AND-FORGET
setting.created setting_service.rs:163 FIRE-AND-FORGET
dictionary.created dictionary_service.rs:121 FIRE-AND-FORGET
dictionary.deleted dictionary_service.rs:240 FIRE-AND-FORGET
menu.created menu_service.rs:148 FIRE-AND-FORGET
menu.deleted menu_service.rs:284 FIRE-AND-FORGET
numbering_rule.created numbering_service.rs:142 FIRE-AND-FORGET
numbering_rule.deleted numbering_service.rs:276 FIRE-AND-FORGET

工作流引擎erp-workflow

事件类型 发布者 消费者 状态
process_definition.created definition_service.rs:103 FIRE-AND-FORGET
process_definition.published definition_service.rs:266 FIRE-AND-FORGET
process_definition.deprecated definition_service.rs:325 FIRE-AND-FORGET
process_instance.started instance_service.rs:126 FIRE-AND-FORGET
task.completed task_service.rs:231 erp-health (匹配 workflow.task.completed) OK
task.timeout module.rs:115 FIRE-AND-FORGET

插件系统erp-plugin

事件类型 发布者 消费者 状态
plugin.trigger.{manifest_id}.{trigger_name} data_service.rs:79 notification.rs (管理通知) OK
plugin.config.updated service.rs:477 FIRE-AND-FORGET
(WASM 动态事件) engine.rs:817 动态订阅manifest 声明) OK

统计

指标 数量
事件类型总数 51
OK完整链路 24
FIRE-AND-FORGET仅日志/审计) 25
PENDING未实现 2
erp-health 域事件 26
erp-auth 域事件 11
erp-config 域事件 8
erp-workflow 域事件 6
erp-plugin 域事件 2+(含动态)

后台任务

任务 间隔 模块 说明
随访逾期扫描 6h erp-health 标记过期任务并发布 follow_up.overdue
积分过期清理 24h erp-health 批量过期积分并发布 points.expired
预约提醒 1h erp-health 扫描明天预约并发布 appointment.reminder