docs(event): 创建事件注册表文档 — 28 个事件类型全量记录
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

This commit is contained in:
iven
2026-04-30 08:35:32 +08:00
parent d2dfac82e3
commit 22e35ad233

131
docs/event-registry.md Normal file
View File

@@ -0,0 +1,131 @@
# HMS 事件注册表
> 生成日期: 2026-04-30 | 审计后状态
## 概述
所有模块间通信通过 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 |
### 医生管理
| 事件类型 | 发布者 | 消费者 | 状态 |
|---------|--------|--------|------|
| `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 |
---
## 统计
| 指标 | 数量 |
|------|------|
| 事件类型总数 | 28 |
| OK完整链路 | 20 |
| FIRE-AND-FORGET仅日志 | 6 |
| PENDING未实现 | 2 |
---
## 后台任务
| 任务 | 间隔 | 模块 | 说明 |
|------|------|------|------|
| 随访逾期扫描 | 6h | erp-health | 标记过期任务并发布 follow_up.overdue |
| 积分过期清理 | 24h | erp-health | 批量过期积分并发布 points.expired |
| 预约提醒 | 1h | erp-health | 扫描明天预约并发布 appointment.reminder |