DCS/ruiyiweiUX/README.md

173 lines
5.5 KiB
Markdown
Raw Permalink Normal View History

2026-06-09 13:59:11 +08:00
# DCX医疗设备界面系统
![Unity](https://img.shields.io/badge/Unity-2021.3%2B-blue)
![C#](https://img.shields.io/badge/C%23-9.0-green)
![Platform](https://img.shields.io/badge/Platform-Windows-lightgrey)
> 基于Unity开发的医疗设备用户界面系统实现了完整的用户交互、数据可视化、报警管理等功能。
## 🎯 项目概述
DCX界面系统是一个专为医疗设备设计的用户界面提供了
- 🔐 **用户认证系统** - 管理员/普通用户权限管理
- 📊 **实时数据可视化** - BFI和血流指数折线图
- 🚨 **多级报警系统** - 高/中/低优先级报警,视觉听觉双重信号
- 👥 **用户管理** - 用户添加、删除、密码修改
- 🏥 **病人信息管理** - 完整的病人档案系统
- 📱 **响应式界面** - 适配不同屏幕尺寸
- 💾 **数据导出** - 支持USB导出功能
## 🚀 快速开始
### 环境要求
- Unity 2021.3 或更高版本
- TextMeshPro 包
- Windows 平台
### 安装步骤
1. **克隆项目**
```bash
git clone [项目地址]
cd ruiyiweiUX
```
2. **打开Unity项目**
- 启动Unity Hub
- 点击"添加项目从磁盘"
- 选择项目文件夹
## 📋 界面功能列表
### ✅ 已实现功能
| 功能模块 | 实现状态 | 说明 |
|---------|---------|------|
| 🔑 登录界面 | ✅ 完成 | 用户名密码认证,用户类型区分 |
| 🏠 主界面 | ✅ 完成 | 完整的监控界面,包含所有必要信息 |
| 📊 BFI折线图 | ✅ 完成 | 实时数据绘制,动态更新 |
| 🩸 血流指数图表 | ✅ 完成 | 实时数据监控,超限报警 |
| 🚨 报警系统 | ✅ 完成 | 三级报警,视觉听觉信号 |
| 🔇 报警静音 | ✅ 完成 | 智能静音,异常自动恢复 |
| 🔋 电量监控 | ✅ 完成 | 1%精度显示,低电量报警 |
| 👥 用户管理 | ✅ 完成 | 增删改用户,权限控制 |
| 🏥 病人信息 | ✅ 完成 | 完整档案管理 |
| 📜 报警记录 | ✅ 完成 | 历史报警查询 |
| ⚙️ 系统设置 | ⚠️ 部分 | 框架完成,详细设置待开发 |
| 💾 数据导出 | ⚠️ 部分 | 接口完成,需硬件集成 |
### 🎨 界面截图展示
#### 主界面布局
```
┌─────────────────────────────────────────────────┐
│ 病人信息 │ 报警信息栏 │ 电量显示 │
├─────────────────────────────────────────────────┤
│ BFI折线图 │ 血流指数图表 │
│ │ │
├─────────────────────────────────────────────────┤
│ 主界面│病人设置│设置│静音│启停│记录│导出│时间 │
└─────────────────────────────────────────────────┘
```
## 🏗️ 架构设计
### 设计模式
- **MVVM模式** - 分离界面逻辑和业务逻辑
- **服务定位器** - 统一管理依赖注入
- **观察者模式** - 事件驱动的数据更新
- **单例模式** - 全局状态管理
## 🔧 开发指南
### 添加新功能
1. **创建数据模型**
```csharp
public class NewFeature
{
public string Name { get; set; }
public DateTime CreatedAt { get; set; }
}
```
2. **创建服务接口**
```csharp
public interface INewFeatureService : IService
{
event Action<NewFeature> OnFeatureUpdated;
void ProcessFeature(NewFeature feature);
}
```
3. **实现View和ViewModel**
```csharp
public class NewFeatureView : MonoBehaviour
{
private NewFeatureViewModel _viewModel;
// 界面逻辑
}
```
4. **注册服务**
```csharp
// 在DCXManager.cs的BootstrapServices()中添加
ServiceLocator.Register<INewFeatureService>(new NewFeatureService());
```
### 自定义图表
```csharp
var chart = GetComponent<ChartComponent>();
chart.SetTitle("自定义图表");
chart.maxValue = 100f;
chart.minValue = 0f;
chart.unit = "单位";
// 实时添加数据
chart.AddDataPoint(currentValue);
```
### 触发报警
```csharp
var alarmService = ServiceLocator.Get<IAlarmService>();
alarmService.RaiseAlarm(AlarmPriority.High, "自定义报警消息");
```
## 📊 报警级别规范
| 优先级 | 视觉信号 | 听觉信号 | 显示效果 |
|--------|----------|----------|----------|
| 🔴 **高优先级** | 红灯闪烁(500ms) | 10个脉冲@500Hz3秒重复 | 红底白字 |
| 🟡 **中优先级** | 黄灯闪烁(500ms) | 3个脉冲@500Hz3秒重复 | 黄底白字 |
| 🟡 **低优先级** | 黄灯常亮 | 2个脉冲@500Hz18秒重复 | 黄底白字 |
### 报警触发条件
- **电池电量 < 20%** 高优先级
- **电池电量 < 40%** 低优先级
- **BFI数值超限** → 高优先级
- **血流指数超限** → 中优先级
## 🛠️ 测试指南
### 功能测试
```csharp
// 测试登录功能
LoginViewModel vm = new LoginViewModel();
vm.TryLogin("admin", "admin");
// 测试报警系统
IAlarmService alarm = ServiceLocator.Get<IAlarmService>();
alarm.RaiseAlarm(AlarmPriority.High, "测试报警");
// 测试数据更新
IDataService data = ServiceLocator.Get<IDataService>();
data.StartDataCollection();
```
### 性能测试
- 图表渲染50个数据点 < 16ms
- UI响应时间< 100ms
- 内存占用:< 500MB