BodyBalanceEvaluation/document/软件开发技术方案.md
2025-07-28 11:59:56 +08:00

151 lines
4.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 平衡体态检测系统 - 软件开发技术方案Electron + PythonWindows单机版
## 一、项目目标
构建一套适用于康复医学、运动健康等场景的 **单机本地运行型体态检测系统**,具备图形界面、设备数据采集、实时可视化、视频记录、数据管理与导出等能力。用户可在 Windows 系统中一键安装、双击运行,无需联网与额外配置。
---
## 二、系统架构与技术栈
### 2.1 总体架构图
```
+---------------------------+
| Electron 桌面客户端 |
| +----------------------+ |
| | Vue3/React 前端界面 | |
| +----------------------+ |
| ⇅ API调用 |
| +----------------------+ |
| | Python 后端服务Flask|
| +----------------------+ |
+---------------------------+
⇅ 硬件通信
+---------------------------+
| 深度相机 / IMU / 足底压力板 |
+---------------------------+
```
### 2.2 技术选型
| 层级 | 技术选型 | 说明 |
|------|----------|------|
| 前端界面 | Electron + Vue3 / React | 构建跨平台 GUI 桌面应用 |
| 后端服务 | Python Flask / FastAPI | 提供设备控制、数据处理、本地API |
| 本地数据库 | SQLite | 嵌入式数据库,无需独立部署 |
| 视频处理 | FFmpeg | 实现屏幕与摄像视频录制 |
| 打包工具 | electron-builder | 生成 Windows `.exe` 安装包 |
| Python打包 | PyInstaller | 将 Python 服务打包为 `.exe` 可执行程序 |
---
## 三、模块功能与实现
### 3.1 Electron 主程序
- 负责显示用户界面(患者档案、检测流程、视频回放)
- 在启动时自动调用后端 Python `.exe` 服务
- 与本地后端通信HTTP API
- 控制设备数据展示与交互逻辑
### 3.2 Python 后端服务
- 使用 Flask/FastAPI 提供本地接口127.0.0.1:5000
- 管理设备连接、数据采集、滤波处理、存储与导出
- 可扩展实现深度图处理、压力图分析、IMU姿态分析等功能
### 3.3 视频录制模块
- 利用 FFmpeg 实现屏幕+外部摄像头录制
- 支持时间戳叠加、截图保存、同步回放
- 可打包进 Electron 安装目录中统一调用
---
## 四、部署方式与启动流程
### 4.1 打包流程
1. 将 Python 服务使用 PyInstaller 打包:
```bash
pyinstaller -F -n app backend/app.py
```
2. Electron 主进程中启动 Python 服务:
```js
const { spawn } = require("child_process");
const scriptPath = path.join(__dirname, "backend", "app.exe");
const pythonProcess = spawn(scriptPath, { detached: true, stdio: 'ignore' });
pythonProcess.unref();
```
3. 使用 electron-builder 打包为安装包:
```bash
npm run build
electron-builder --win --x64
```
### 4.2 安装后运行流程(用户视角)
- 用户双击安装包 `.exe` 安装程序;
- 桌面自动生成快捷方式;
- 双击运行程序:
- 启动 Electron 界面;
- 自动后台启动 Python 服务;
- 自动检测设备连接;
- 进入检测界面,开始数据采集。
---
## 五、目录结构(部署后)
```
体态检测系统/
├─ main.exe # 主程序Electron 打包)
├─ backend/
│ ├─ app.exe # Python 后端打包文件
│ └─ model/ # AI模型文件可选
├─ ffmpeg/ # 视频录制工具
├─ resources/ # 前端界面构建产物
├─ logs/ # 日志输出目录
└─ uninstall.exe # 卸载程序
```
---
## 六、安全性与稳定性设计
| 项目 | 说明 |
|------|------|
| 端口限制 | 后端服务仅监听 127.0.0.1,防止外部访问 |
| 自动重启 | Electron 检测后端未启动可尝试自动重启 |
| 日志记录 | 所有错误输出写入 logs 目录,便于故障排查 |
| 安全存储 | 用户/患者数据保存至 SQLite本地隔离存储 |
| 进程管理 | Python 服务进程随 Electron 一起退出或独立运行 |
---
## 七、后续拓展建议
| 版本 | 升级方向 |
|------|----------|
| V2.0 | 加入关键点识别、自动评估报告导出、双次记录对比 |
| V3.0 | 云端同步、在线远程管理、多终端协同 |
| V4.0 | 移动版Android/iOS测量与数据同步 |
---
## 八、推荐工具与资源
- Electron 官网:[https://www.electronjs.org/](https://www.electronjs.org/)
- electron-builder[https://www.electron.build/](https://www.electron.build/)
- Flask[https://flask.palletsprojects.com/](https://flask.palletsprojects.com/)
- PyInstaller[https://pyinstaller.org/](https://pyinstaller.org/)
- FFmpeg[https://ffmpeg.org/](https://ffmpeg.org/)
---
> 本技术方案支持通过 AI 代码生成平台辅助开发,可作为 ChatGPT Copilot、CodeWhisperer 等平台的 Prompt 基础文件。