DCS/ruiyiweiUX/README.md

5.5 KiB
Raw Permalink Blame History

DCX医疗设备界面系统

Unity C# Platform

基于Unity开发的医疗设备用户界面系统实现了完整的用户交互、数据可视化、报警管理等功能。

🎯 项目概述

DCX界面系统是一个专为医疗设备设计的用户界面提供了

  • 🔐 用户认证系统 - 管理员/普通用户权限管理
  • 📊 实时数据可视化 - BFI和血流指数折线图
  • 🚨 多级报警系统 - 高/中/低优先级报警,视觉听觉双重信号
  • 👥 用户管理 - 用户添加、删除、密码修改
  • 🏥 病人信息管理 - 完整的病人档案系统
  • 📱 响应式界面 - 适配不同屏幕尺寸
  • 💾 数据导出 - 支持USB导出功能

🚀 快速开始

环境要求

  • Unity 2021.3 或更高版本
  • TextMeshPro 包
  • Windows 平台

安装步骤

  1. 克隆项目

    git clone [项目地址]
    cd ruiyiweiUX
    
  2. 打开Unity项目

    • 启动Unity Hub
    • 点击"添加项目从磁盘"
    • 选择项目文件夹

📋 界面功能列表

已实现功能

功能模块 实现状态 说明
🔑 登录界面 完成 用户名密码认证,用户类型区分
🏠 主界面 完成 完整的监控界面,包含所有必要信息
📊 BFI折线图 完成 实时数据绘制,动态更新
🩸 血流指数图表 完成 实时数据监控,超限报警
🚨 报警系统 完成 三级报警,视觉听觉信号
🔇 报警静音 完成 智能静音,异常自动恢复
🔋 电量监控 完成 1%精度显示,低电量报警
👥 用户管理 完成 增删改用户,权限控制
🏥 病人信息 完成 完整档案管理
📜 报警记录 完成 历史报警查询
⚙️ 系统设置 ⚠️ 部分 框架完成,详细设置待开发
💾 数据导出 ⚠️ 部分 接口完成,需硬件集成

🎨 界面截图展示

主界面布局

┌─────────────────────────────────────────────────┐
│  病人信息    │    报警信息栏    │    电量显示      │
├─────────────────────────────────────────────────┤
│              BFI折线图      │   血流指数图表     │
│                            │                   │
├─────────────────────────────────────────────────┤
│ 主界面│病人设置│设置│静音│启停│记录│导出│时间    │
└─────────────────────────────────────────────────┘

🏗️ 架构设计

设计模式

  • MVVM模式 - 分离界面逻辑和业务逻辑
  • 服务定位器 - 统一管理依赖注入
  • 观察者模式 - 事件驱动的数据更新
  • 单例模式 - 全局状态管理

🔧 开发指南

添加新功能

  1. 创建数据模型

    public class NewFeature
    {
        public string Name { get; set; }
        public DateTime CreatedAt { get; set; }
    }
    
  2. 创建服务接口

    public interface INewFeatureService : IService
    {
        event Action<NewFeature> OnFeatureUpdated;
        void ProcessFeature(NewFeature feature);
    }
    
  3. 实现View和ViewModel

    public class NewFeatureView : MonoBehaviour
    {
        private NewFeatureViewModel _viewModel;
        // 界面逻辑
    }
    
  4. 注册服务

    // 在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个脉冲@500Hz3秒重复 红底白字
🟡 中优先级 黄灯闪烁(500ms) 3个脉冲@500Hz3秒重复 黄底白字
🟡 低优先级 黄灯常亮 2个脉冲@500Hz18秒重复 黄底白字

报警触发条件

  • 电池电量 < 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