# pulse **Repository Path**: gucb/pulse ## Basic Information - **Project Name**: pulse - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-05-15 - **Last Updated**: 2026-05-15 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # CloudPulse Flow | 云脉导诊系统 **CloudPulse Flow** 是一款专为现代化医院设计的高性能、高可用叫号分诊系统。系统采用 **“Redis 实时排序 + DB 分区持久化 + MQ 异步信令”** 的核心架构。 --- ## 🏗 核心架构模块 ### 1. Pulse-Core (内核计算引擎) - *NEW* * **职责**:**算法层 (Algorithm Layer)**。 * **功能**:负责所有关于“权重”和“分值”的计算逻辑。 * **核心逻辑**: * **权重模型**:定义预约、优先、普通患者的分值计算公式。 * **插队算法**:计算目标位置的逻辑 Score。 * **状态机**:管理从 `Waiting` 到 `Calling` 再到 `Finished` 的原子转换。 * **价值**:它是系统中最纯粹的逻辑层,不涉及 IO,只负责将业务需求翻译成 Redis 能识别的分值。 ### 2. Pulse-Link (接入层) * **职责**:流量入口,负责签到与取号。 * **交互**:调用 `Pulse-Core` 计算初始 Score,写入 **DB 分区表**,加载至 **Redis ZSet**。 ### 3. Pulse-Station (业务交互层) * **职责**:业务中枢,提供医生叫号与护士插队的 HTTP 接口。 * **交互**: * 调用 `Pulse-Core` 进行实时重排(如插队时的权重计算)。 * 更新 **DB** 状态,并调用 `Pulse-Bus` 发送广播信令。 ### 4. Pulse-Bus (信号逻辑总线) * **职责**:**基础设施抽象层**。 * **定位**:封装具体 MQ(RabbitMQ/RocketMQ)的操作,提供语义化 API,实现信令的 1:N 广播。 ### 5. Pulse-Vision (推送展示层) * **职责**:终端触达。 * **功能**:订阅 `Pulse-Bus` 信号,通过 WebSocket 实时驱动大屏渲染与语音播报。 --- ## 🔄 核心业务流转:护士插队 (Priority Insert) 1. **UI 发起**:护士在 `Pulse-Station` 发起插队请求。 2. **内核重算**:`Pulse-Station` 调用 **`Pulse-Core`** 计算出插队位置对应的逻辑 Score。 3. **双写落库**:`Pulse-Station` 更新 DB 的 `offset_score` 记录,并同步修改 Redis ZSet。 4. **信令分发**:`Pulse-Station` 通过 **`Pulse-Bus`** 投递队列变更信号。 5. **瞬时反馈**:`Pulse-Vision` 消费信号,大屏序列实现无缝位移。 --- ## 🛠 技术栈概览 * **调度核心**:Redis 7.x (ZSet) + **Pulse-Core (逻辑内核)** * **持久化**:MySQL 8.0 (Daily Partitioning) * **通讯/信令**:Pulse-Bus (MQ Abstraction) + WebSocket * **框架**:Spring Boot 3.x --- ## 📂 工程目录参考 ```text cloudpulse-flow ├── pulse-core # 核心算法与权重计算模型 (POJO/Service) ├── pulse-bus # 信号总线 SDK (MQ 抽象层) ├── pulse-link # 接入服务 (依赖 core/bus) ├── pulse-station # 业务交互中心 (依赖 core/bus) └── pulse-vision # 展示服务 (依赖 bus) ``` --- ## 🚀 系统哲学 * **Core 为魂**:所有的排队规则收缩在 Core 模块,便于规则的快速迭代和灰度测试。 * **Bus 为脉**:信令化的通讯机制,让系统具备极强的横向扩展能力。 * **分区为基**:DB 按天分区,解决医疗历史数据臃肿带来的性能退化。 --- ### 💡 开发提示 在实现 `Pulse-Core` 时,建议采用无状态(Stateless)设计。它只接收参数并返回计算后的 Score 或状态,真正的状态存储交给 Redis 和 DB。 部署架构概览 Pulse-Station (业务交互中枢):提供 RESTful API,处理所有写操作(签到、叫号、插队)。它是整个系统的“心脏”,直接与数据库和 Redis 交互。 Pulse-Vision (推送展示层):作为 MQ 消费者,维护 WebSocket 长连接。它是系统的“感官”,只负责把后端发生的变动实时告诉屏幕和音箱。