# 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 |