DCS/ruiyiweiUX/README.md

173 lines
5.5 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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