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