173 lines
5.5 KiB
Markdown
173 lines
5.5 KiB
Markdown
# DCX医疗设备界面系统
|
||
|
||

|
||

|
||

|
||
|
||
> 基于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个脉冲@500Hz,3秒重复 | 红底白字 |
|
||
| 🟡 **中优先级** | 黄灯闪烁(500ms) | 3个脉冲@500Hz,3秒重复 | 黄底白字 |
|
||
| 🟡 **低优先级** | 黄灯常亮 | 2个脉冲@500Hz,18秒重复 | 黄底白字 |
|
||
|
||
### 报警触发条件
|
||
- **电池电量 < 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
|
||
|
||
|