# 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 OnFeatureUpdated; void ProcessFeature(NewFeature feature); } ``` 3. **实现View和ViewModel** ```csharp public class NewFeatureView : MonoBehaviour { private NewFeatureViewModel _viewModel; // 界面逻辑 } ``` 4. **注册服务** ```csharp // 在DCXManager.cs的BootstrapServices()中添加 ServiceLocator.Register(new NewFeatureService()); ``` ### 自定义图表 ```csharp var chart = GetComponent(); chart.SetTitle("自定义图表"); chart.maxValue = 100f; chart.minValue = 0f; chart.unit = "单位"; // 实时添加数据 chart.AddDataPoint(currentValue); ``` ### 触发报警 ```csharp var alarmService = ServiceLocator.Get(); 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(); alarm.RaiseAlarm(AlarmPriority.High, "测试报警"); // 测试数据更新 IDataService data = ServiceLocator.Get(); data.StartDataCollection(); ``` ### 性能测试 - 图表渲染:50个数据点 < 16ms - UI响应时间:< 100ms - 内存占用:< 500MB