LOG · 日志

IoMT

DATE 日期
2026-10-23
SOURCE 源码
开发/IoMT.md
READ 阅读
~4 min

IoMT Digital Twin Platform(IoMT 数字孪生平台)

给居家与机构养老场景搭建健康数据后台的开发者:把可穿戴、床垫与环境设备的多源数据经 MQTT/HTTP 接入,统一存储并由管理台展示患者、设备与健康指标,同时通过 WebSocket 向看板推送实时状态。

状态:归档(GitHub cognitive-health-screen 已 archived;后端与管理台可运行,用户端前端另仓维护);入口:python run.py(后端 :8000)+ cd web && npm run dev;仓库:本地归档,原仓 fire-disposal/cognitive-health-screen

本质

把多源健康设备数据接入、解析校验与数字孪生管理台收敛为一套 FastAPI + Vue 的后台平台。

选型

基于 FastAPI + Vue 3 的前后端分离平台,后端 Tortoise ORM,数据落 PostgreSQL,设备接入走 MQTT 与 WebSocket,管理台基于 vue-fastapi-admin 二次开发。

  • 运行时
    • Python 3.11+ / Node 18+
  • 前端
    • Vue 3
      • Vite
      • Naive UI
      • Pinia
  • 后端
    • FastAPI 0.111
      • Tortoise ORM
      • Aerich 迁移
      • MQTT 客户端
      • WebSocket
  • 数据
    • PostgreSQL
  • 部署
    • Docker Compose + Nginx

功能

  • 多源健康数据接入:MQTT 主题订阅与 HTTP 上报并行,按设备类型归一化后落库。
  • 健康数据解析验证:对心率、呼吸、体动等指标做范围校验与异常标记,保留原始报文。
  • 数字孪生管理台:患者、设备、绑定关系、健康指标与告警的统一管理页面。
  • 实时推送:WebSocket 将设备状态与指标变化推送到前端看板。
  • 初始化与迁移:INIT_MODE 支持 skip/auto/force/rebuild,Aerich 管理表结构版本。
  • 未完成:用户端(家属/患者)页面;多租户隔离。

启动流程

uv sync
cp .env.example .env          # 填数据库与 MQTT 连接
python run.py                 # 后端 :8000

cd web
npm install
npm run dev                   # 管理台 :5173

前置:PostgreSQL 与 MQTT Broker 可用;.env 为唯一配置入口,首次启动按 INIT_MODE 建表并写入初始数据;生产用 docker compose 启动。

边界与已知问题

  • 结构假设:单实例部署,MQTT 消费者与 WebSocket 连接均驻留进程内,多副本会重复消费。
  • 前端边界:仓库只含后端与管理台;用户端由 threejstest(three.js 看板)与 datavue(Vue 展示页)另仓维护。
  • 上游派生:基于 vue-fastapi-admin 二次开发,认证与菜单体系沿用上游约定,升级需比对差异。
  • 文档漂移:根 README 仍以二次开发说明为主,后端分层细节以 docs/backend_architecture.md 为准。
  • 密钥:.env.example 仅含占位值,真实连接信息不得提交。

文档索引