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
|
|||
|
|
|
|||
|
|
|