From 0d3451cb5b1f859440176ea2eccb409f899e6362 Mon Sep 17 00:00:00 2001 From: root <13910913995@163.com> Date: Thu, 31 Jul 2025 10:39:17 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E7=9B=AE=E5=BD=95=E7=BB=93?= =?UTF-8?q?=E6=9E=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 220 --------------- CONTRIBUTING.md | 680 ---------------------------------------------- init_test_data.py | 105 ------- package.json | 5 +- 4 files changed, 4 insertions(+), 1006 deletions(-) delete mode 100644 CHANGELOG.md delete mode 100644 CONTRIBUTING.md delete mode 100644 init_test_data.py diff --git a/CHANGELOG.md b/CHANGELOG.md deleted file mode 100644 index 426ded07..00000000 --- a/CHANGELOG.md +++ /dev/null @@ -1,220 +0,0 @@ -# 更新日志 - -本文档记录了身体平衡评估系统的所有重要更改。 - -格式基于 [Keep a Changelog](https://keepachangelog.com/zh-CN/1.0.0/), -并且本项目遵循 [语义化版本](https://semver.org/lang/zh-CN/)。 - -## [未发布] - -### 计划新增 -- [ ] 多语言支持(英文、日文) -- [ ] 云端数据同步功能 -- [ ] 移动端应用支持 -- [ ] AI辅助诊断建议 -- [ ] 3D姿态可视化 -- [ ] 报告模板自定义 -- [ ] 批量数据分析 -- [ ] 设备校准向导 - -### 计划改进 -- [ ] 优化实时数据处理性能 -- [ ] 增强数据可视化效果 -- [ ] 改进用户界面交互体验 -- [ ] 扩展设备兼容性 - -## [1.0.0] - 2024-01-15 - -### 新增 -- ✅ 完整的身体平衡评估系统架构 -- ✅ 基于Vue 3 + Electron的现代化前端界面 -- ✅ 基于Flask的RESTful API后端服务 -- ✅ 多传感器数据融合(摄像头、IMU、压力传感器) -- ✅ 实时姿态检测和平衡分析 -- ✅ 患者信息管理系统 -- ✅ 检测会话管理和历史记录 -- ✅ 数据分析和可视化图表 -- ✅ PDF报告生成和导出功能 -- ✅ 系统设置和设备配置 -- ✅ 完整的日志记录系统 -- ✅ 数据备份和恢复功能 - -### 技术特性 -- ✅ 基于MediaPipe的实时姿态检测 -- ✅ WebSocket实时数据传输 -- ✅ SQLite数据库存储 -- ✅ 模块化架构设计 -- ✅ 跨平台支持(Windows、macOS、Linux) -- ✅ 响应式UI设计 -- ✅ 国际化支持框架 - -### 核心功能模块 - -#### 前端界面 -- ✅ 现代化的用户界面设计 -- ✅ 实时数据可视化 -- ✅ 响应式布局适配 -- ✅ 深色/浅色主题切换 -- ✅ 多语言界面支持 - -#### 后端服务 -- ✅ RESTful API设计 -- ✅ 实时数据处理引擎 -- ✅ 设备管理和通信 -- ✅ 数据分析算法 -- ✅ 报告生成服务 - -#### 数据管理 -- ✅ 患者信息CRUD操作 -- ✅ 检测会话管理 -- ✅ 历史数据查询和分析 -- ✅ 数据导出和备份 -- ✅ 数据安全和隐私保护 - -#### 设备集成 -- ✅ 摄像头视频采集和处理 -- ✅ IMU传感器数据采集 -- ✅ 压力传感器数据采集 -- ✅ 设备状态监控 -- ✅ 设备校准功能 - -#### 分析算法 -- ✅ 重心轨迹分析 -- ✅ 姿态稳定性评估 -- ✅ 平衡能力评分 -- ✅ 异常检测和预警 -- ✅ 趋势分析和对比 - -### 文件结构 -``` -BodyBalanceEvaluation/ -├── backend/ # 后端服务 -│ ├── app.py # 主应用入口 -│ ├── database.py # 数据库管理 -│ ├── device_manager.py # 设备管理 -│ ├── detection_engine.py # 检测引擎 -│ ├── data_processor.py # 数据处理 -│ ├── utils.py # 工具函数 -│ ├── requirements.txt # Python依赖 -│ └── tests/ # 测试文件 -├── src/ -│ ├── main/ # Electron主进程 -│ └── renderer/ # Vue前端应用 -│ ├── src/ -│ │ ├── views/ # 页面组件 -│ │ ├── stores/ # 状态管理 -│ │ └── services/ # API服务 -│ └── package.json -├── data/ # 数据目录 -├── logs/ # 日志目录 -├── temp/ # 临时文件 -├── main.py # 启动脚本 -├── config.json # 配置文件 -├── package.json # 项目配置 -├── README.md # 项目说明 -├── LICENSE # 许可证 -├── .gitignore # Git忽略规则 -├── install.bat # 安装脚本 -├── start_dev.bat # 开发环境启动 -├── start_prod.bat # 生产环境启动 -└── CHANGELOG.md # 更新日志 -``` - -### 系统要求 -- **操作系统**: Windows 10/11, macOS 10.15+, Ubuntu 18.04+ -- **Python**: 3.8 或更高版本 -- **Node.js**: 16.0 或更高版本 -- **内存**: 最少 4GB RAM,推荐 8GB+ -- **存储**: 最少 2GB 可用空间 -- **摄像头**: USB摄像头或内置摄像头 -- **串口设备**: IMU和压力传感器(可选) - -### 安装和使用 -1. 运行 `install.bat` 安装所有依赖 -2. 运行 `start_dev.bat` 启动开发环境 -3. 或运行 `start_prod.bat` 启动生产环境 -4. 访问 http://localhost:5173 使用应用 - -### 已知问题 -- 在某些低配置设备上可能出现实时处理延迟 -- 部分USB摄像头可能需要额外驱动 -- IMU传感器需要正确的串口配置 - -### 性能优化 -- 实时数据处理采用多线程架构 -- 图像处理使用GPU加速(如可用) -- 数据库查询优化和索引 -- 前端虚拟滚动和懒加载 - -### 安全特性 -- 本地数据存储,保护隐私 -- 数据传输加密 -- 用户会话管理 -- 输入数据验证和清理 - ---- - -## 版本说明 - -### 版本号格式 -本项目使用语义化版本号:`主版本号.次版本号.修订号` - -- **主版本号**: 不兼容的API修改 -- **次版本号**: 向下兼容的功能性新增 -- **修订号**: 向下兼容的问题修正 - -### 更新类型 -- **新增 (Added)**: 新功能 -- **更改 (Changed)**: 对现有功能的更改 -- **弃用 (Deprecated)**: 即将移除的功能 -- **移除 (Removed)**: 已移除的功能 -- **修复 (Fixed)**: 错误修复 -- **安全 (Security)**: 安全相关的修复 - -### 发布周期 -- **主版本**: 每年1-2次重大更新 -- **次版本**: 每季度功能更新 -- **修订版**: 每月bug修复和小改进 - ---- - -## 贡献指南 - -如果您想为本项目贡献代码,请: - -1. Fork 本仓库 -2. 创建功能分支 (`git checkout -b feature/AmazingFeature`) -3. 提交更改 (`git commit -m 'Add some AmazingFeature'`) -4. 推送到分支 (`git push origin feature/AmazingFeature`) -5. 创建 Pull Request - -### 提交信息格式 -``` -type(scope): description - -[optional body] - -[optional footer] -``` - -类型包括: -- `feat`: 新功能 -- `fix`: 修复bug -- `docs`: 文档更新 -- `style`: 代码格式化 -- `refactor`: 代码重构 -- `test`: 测试相关 -- `chore`: 构建过程或辅助工具的变动 - ---- - -## 支持和反馈 - -- **问题报告**: [GitHub Issues](https://github.com/example/body-balance-evaluation/issues) -- **功能请求**: [GitHub Discussions](https://github.com/example/body-balance-evaluation/discussions) -- **邮件支持**: dev@example.com -- **文档**: [项目Wiki](https://github.com/example/body-balance-evaluation/wiki) - ---- - -*最后更新: 2024-01-15* \ No newline at end of file diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md deleted file mode 100644 index 229d9026..00000000 --- a/CONTRIBUTING.md +++ /dev/null @@ -1,680 +0,0 @@ -# 贡献指南 - -感谢您对身体平衡评估系统项目的关注!我们欢迎所有形式的贡献,包括但不限于代码、文档、测试、问题报告和功能建议。 - -## 目录 - -- [行为准则](#行为准则) -- [如何贡献](#如何贡献) -- [开发环境设置](#开发环境设置) -- [代码规范](#代码规范) -- [提交规范](#提交规范) -- [Pull Request 流程](#pull-request-流程) -- [问题报告](#问题报告) -- [功能请求](#功能请求) -- [文档贡献](#文档贡献) -- [测试指南](#测试指南) - -## 行为准则 - -### 我们的承诺 - -为了营造一个开放和友好的环境,我们作为贡献者和维护者承诺,无论年龄、体型、残疾、种族、性别认同和表达、经验水平、国籍、个人形象、种族、宗教或性取向如何,参与我们项目和社区的每个人都能获得无骚扰的体验。 - -### 我们的标准 - -有助于创造积极环境的行为包括: - -- 使用友好和包容的语言 -- 尊重不同的观点和经验 -- 优雅地接受建设性批评 -- 关注对社区最有利的事情 -- 对其他社区成员表示同理心 - -不可接受的行为包括: - -- 使用性化的语言或图像,以及不受欢迎的性关注或性骚扰 -- 恶意评论、侮辱/贬损评论,以及个人或政治攻击 -- 公开或私下骚扰 -- 未经明确许可,发布他人的私人信息,如物理或电子地址 -- 在专业环境中可能被合理认为不适当的其他行为 - -## 如何贡献 - -### 贡献类型 - -我们欢迎以下类型的贡献: - -1. **代码贡献** - - 新功能开发 - - Bug 修复 - - 性能优化 - - 代码重构 - -2. **文档贡献** - - API 文档 - - 用户指南 - - 开发者文档 - - 代码注释 - -3. **测试贡献** - - 单元测试 - - 集成测试 - - 端到端测试 - - 性能测试 - -4. **设计贡献** - - UI/UX 设计 - - 图标设计 - - 用户体验改进 - -5. **其他贡献** - - 问题报告 - - 功能建议 - - 社区支持 - - 翻译工作 - -## 开发环境设置 - -### 前置要求 - -- Python 3.8+ -- Node.js 16.0+ -- Git -- 代码编辑器(推荐 VS Code) - -### 环境配置 - -1. **克隆仓库** - ```bash - git clone https://github.com/example/body-balance-evaluation.git - cd body-balance-evaluation - ``` - -2. **安装依赖** - ```bash - # Windows - install.bat - - # 或手动安装 - python -m venv venv - venv\Scripts\activate # Windows - # source venv/bin/activate # macOS/Linux - - pip install -r backend/requirements.txt - cd src/renderer && npm install - ``` - -3. **配置开发环境** - ```bash - # 复制配置文件 - cp config.json config.local.json - - # 编辑本地配置(可选) - # 修改 config.local.json 中的设置 - ``` - -4. **启动开发服务器** - ```bash - # Windows - start_dev.bat - - # 或手动启动 - python main.py --mode development - ``` - -### 开发工具推荐 - -#### VS Code 扩展 -- Python -- Pylance -- Vue Language Features (Volar) -- TypeScript Vue Plugin (Volar) -- ESLint -- Prettier -- GitLens - -#### 浏览器扩展 -- Vue.js devtools -- React Developer Tools(如果使用) - -## 代码规范 - -### Python 代码规范 - -我们遵循 [PEP 8](https://www.python.org/dev/peps/pep-0008/) 规范: - -```python -# 好的示例 -class PatientManager: - """患者管理器类""" - - def __init__(self, database_path: str): - self.db_path = database_path - self.logger = logging.getLogger(__name__) - - def create_patient(self, patient_data: dict) -> int: - """创建新患者 - - Args: - patient_data: 患者信息字典 - - Returns: - 患者ID - - Raises: - ValueError: 当患者数据无效时 - """ - if not self._validate_patient_data(patient_data): - raise ValueError("Invalid patient data") - - # 实现逻辑... - return patient_id -``` - -#### 代码格式化 -使用 Black 进行代码格式化: -```bash -black . --line-length=88 -``` - -#### 代码检查 -使用 flake8 进行代码检查: -```bash -flake8 . --max-line-length=88 --exclude=venv,__pycache__ -``` - -### JavaScript/Vue 代码规范 - -我们遵循 [Vue.js 风格指南](https://vuejs.org/style-guide/): - -```javascript -// 好的示例 -export default { - name: 'PatientList', - - props: { - patients: { - type: Array, - required: true - }, - loading: { - type: Boolean, - default: false - } - }, - - emits: ['patient-selected', 'patient-deleted'], - - setup(props, { emit }) { - const selectedPatient = ref(null) - - const handlePatientClick = (patient) => { - selectedPatient.value = patient - emit('patient-selected', patient) - } - - return { - selectedPatient, - handlePatientClick - } - } -} -``` - -#### 代码格式化 -使用 Prettier 进行代码格式化: -```bash -npm run format -``` - -#### 代码检查 -使用 ESLint 进行代码检查: -```bash -npm run lint -``` - -### 通用规范 - -1. **命名规范** - - 使用有意义的变量和函数名 - - Python: snake_case - - JavaScript: camelCase - - 常量: UPPER_CASE - - 类名: PascalCase - -2. **注释规范** - - 为复杂逻辑添加注释 - - 使用文档字符串描述函数和类 - - 注释应该解释"为什么"而不是"是什么" - -3. **文件组织** - - 保持文件结构清晰 - - 相关功能放在同一模块 - - 避免循环导入 - -## 提交规范 - -我们使用 [Conventional Commits](https://www.conventionalcommits.org/) 规范: - -### 提交消息格式 - -``` -type(scope): description - -[optional body] - -[optional footer(s)] -``` - -### 类型 (type) - -- `feat`: 新功能 -- `fix`: 修复 bug -- `docs`: 文档更新 -- `style`: 代码格式化(不影响代码运行的变动) -- `refactor`: 重构(既不是新增功能,也不是修复 bug 的代码变动) -- `perf`: 性能优化 -- `test`: 增加测试 -- `chore`: 构建过程或辅助工具的变动 -- `ci`: CI 配置文件和脚本的变动 -- `revert`: 回滚之前的提交 - -### 范围 (scope) - -- `frontend`: 前端相关 -- `backend`: 后端相关 -- `database`: 数据库相关 -- `device`: 设备管理相关 -- `analysis`: 数据分析相关 -- `ui`: 用户界面相关 -- `api`: API 相关 -- `config`: 配置相关 -- `docs`: 文档相关 -- `test`: 测试相关 - -### 示例 - -```bash -# 新功能 -git commit -m "feat(frontend): add patient search functionality" - -# Bug 修复 -git commit -m "fix(backend): resolve database connection timeout issue" - -# 文档更新 -git commit -m "docs(api): update patient management API documentation" - -# 重构 -git commit -m "refactor(device): simplify camera initialization logic" -``` - -## Pull Request 流程 - -### 创建 Pull Request - -1. **Fork 仓库** - - 点击 GitHub 页面右上角的 "Fork" 按钮 - -2. **创建功能分支** - ```bash - git checkout -b feature/your-feature-name - # 或 - git checkout -b fix/your-bug-fix - ``` - -3. **进行开发** - - 编写代码 - - 添加测试 - - 更新文档 - -4. **提交更改** - ```bash - git add . - git commit -m "feat(scope): your commit message" - ``` - -5. **推送分支** - ```bash - git push origin feature/your-feature-name - ``` - -6. **创建 Pull Request** - - 在 GitHub 上创建 Pull Request - - 填写详细的描述 - -### Pull Request 模板 - -```markdown -## 描述 -简要描述这个 PR 的目的和内容。 - -## 更改类型 -- [ ] Bug 修复 -- [ ] 新功能 -- [ ] 重构 -- [ ] 文档更新 -- [ ] 性能优化 -- [ ] 其他(请说明) - -## 测试 -- [ ] 已添加单元测试 -- [ ] 已添加集成测试 -- [ ] 已手动测试 -- [ ] 所有测试通过 - -## 检查清单 -- [ ] 代码遵循项目规范 -- [ ] 已添加必要的注释 -- [ ] 已更新相关文档 -- [ ] 没有引入新的警告 -- [ ] 已测试在不同环境下的兼容性 - -## 相关问题 -关闭 #issue_number - -## 截图(如适用) -添加截图来帮助解释你的更改。 - -## 额外说明 -添加任何其他相关信息。 -``` - -### 代码审查 - -所有 Pull Request 都需要经过代码审查: - -1. **自动检查** - - CI/CD 流水线检查 - - 代码格式检查 - - 测试覆盖率检查 - -2. **人工审查** - - 代码质量 - - 设计合理性 - - 测试完整性 - - 文档完整性 - -3. **审查标准** - - 代码可读性 - - 性能影响 - - 安全性考虑 - - 向后兼容性 - -## 问题报告 - -### 报告 Bug - -使用 [Bug 报告模板](https://github.com/example/body-balance-evaluation/issues/new?template=bug_report.md): - -```markdown -**描述 Bug** -清晰简洁地描述 bug 是什么。 - -**重现步骤** -重现行为的步骤: -1. 转到 '...' -2. 点击 '....' -3. 滚动到 '....' -4. 看到错误 - -**预期行为** -清晰简洁地描述你期望发生什么。 - -**截图** -如果适用,添加截图来帮助解释你的问题。 - -**环境信息** - - 操作系统: [例如 Windows 10] - - Python 版本: [例如 3.9.0] - - Node.js 版本: [例如 16.14.0] - - 应用版本: [例如 1.0.0] - -**额外信息** -添加任何其他关于问题的信息。 -``` - -### 报告安全问题 - -如果发现安全漏洞,请不要在公开的 issue 中报告。请发送邮件到 security@example.com。 - -## 功能请求 - -使用 [功能请求模板](https://github.com/example/body-balance-evaluation/issues/new?template=feature_request.md): - -```markdown -**功能描述** -清晰简洁地描述你想要的功能。 - -**问题描述** -清晰简洁地描述问题是什么。例如:我总是感到沫丧当 [...] - -**解决方案** -清晰简洁地描述你想要发生什么。 - -**替代方案** -清晰简洁地描述你考虑过的任何替代解决方案或功能。 - -**额外信息** -添加任何其他关于功能请求的信息或截图。 -``` - -## 文档贡献 - -### 文档类型 - -1. **用户文档** - - 安装指南 - - 使用教程 - - 常见问题 - - 故障排除 - -2. **开发者文档** - - API 文档 - - 架构说明 - - 贡献指南 - - 代码注释 - -3. **项目文档** - - README - - CHANGELOG - - LICENSE - - 项目规划 - -### 文档规范 - -1. **Markdown 格式** - - 使用标准 Markdown 语法 - - 保持一致的格式 - - 使用有意义的标题 - -2. **内容要求** - - 清晰准确 - - 及时更新 - - 包含示例 - - 考虑不同用户水平 - -3. **图片和媒体** - - 使用 SVG 格式(如可能) - - 优化文件大小 - - 提供替代文本 - -## 测试指南 - -### 测试类型 - -1. **单元测试** - - 测试单个函数或方法 - - 使用 pytest(Python)或 Jest(JavaScript) - - 目标覆盖率 > 80% - -2. **集成测试** - - 测试模块间交互 - - 测试 API 端点 - - 测试数据库操作 - -3. **端到端测试** - - 测试完整用户流程 - - 使用 Playwright 或 Cypress - - 测试关键业务场景 - -### 测试规范 - -```python -# Python 测试示例 -import pytest -from unittest.mock import Mock, patch - -class TestPatientManager: - """患者管理器测试类""" - - @pytest.fixture - def patient_manager(self): - """测试夹具""" - return PatientManager(":memory:") - - def test_create_patient_success(self, patient_manager): - """测试成功创建患者""" - patient_data = { - "name": "测试患者", - "age": 30, - "gender": "male" - } - - patient_id = patient_manager.create_patient(patient_data) - - assert patient_id is not None - assert isinstance(patient_id, int) - - def test_create_patient_invalid_data(self, patient_manager): - """测试无效数据创建患者""" - invalid_data = {"name": ""} - - with pytest.raises(ValueError): - patient_manager.create_patient(invalid_data) -``` - -```javascript -// JavaScript 测试示例 -import { describe, it, expect, vi } from 'vitest' -import { mount } from '@vue/test-utils' -import PatientList from '@/components/PatientList.vue' - -describe('PatientList', () => { - it('renders patient list correctly', () => { - const patients = [ - { id: 1, name: '患者1', age: 30 }, - { id: 2, name: '患者2', age: 25 } - ] - - const wrapper = mount(PatientList, { - props: { patients } - }) - - expect(wrapper.findAll('.patient-item')).toHaveLength(2) - expect(wrapper.text()).toContain('患者1') - expect(wrapper.text()).toContain('患者2') - }) - - it('emits patient-selected event when patient is clicked', async () => { - const patients = [{ id: 1, name: '患者1', age: 30 }] - - const wrapper = mount(PatientList, { - props: { patients } - }) - - await wrapper.find('.patient-item').trigger('click') - - expect(wrapper.emitted('patient-selected')).toBeTruthy() - expect(wrapper.emitted('patient-selected')[0]).toEqual([patients[0]]) - }) -}) -``` - -### 运行测试 - -```bash -# Python 测试 -cd backend -python -m pytest tests/ -v --cov=. - -# JavaScript 测试 -cd src/renderer -npm run test - -# 所有测试 -npm run test -``` - -## 发布流程 - -### 版本管理 - -我们使用语义化版本控制: - -- **主版本号**: 不兼容的 API 修改 -- **次版本号**: 向下兼容的功能性新增 -- **修订号**: 向下兼容的问题修正 - -### 发布步骤 - -1. **更新版本号** - ```bash - # 更新 package.json 中的版本号 - npm version patch|minor|major - ``` - -2. **更新 CHANGELOG** - - 记录所有重要更改 - - 按类型分组(新增、更改、修复等) - -3. **创建发布标签** - ```bash - git tag -a v1.0.0 -m "Release version 1.0.0" - git push origin v1.0.0 - ``` - -4. **构建和测试** - ```bash - npm run build - npm run test - ``` - -5. **发布** - - 创建 GitHub Release - - 上传构建产物 - - 发布到包管理器(如需要) - -## 社区支持 - -### 获取帮助 - -- **GitHub Discussions**: 一般讨论和问题 -- **GitHub Issues**: Bug 报告和功能请求 -- **邮件**: dev@example.com -- **文档**: 项目 Wiki - -### 参与社区 - -- 回答其他用户的问题 -- 参与功能讨论 -- 分享使用经验 -- 推广项目 - -## 致谢 - -感谢所有为这个项目做出贡献的开发者! - -### 贡献者 - -- [贡献者列表](https://github.com/example/body-balance-evaluation/contributors) - -### 特别感谢 - -- 感谢所有提供反馈和建议的用户 -- 感谢开源社区提供的优秀工具和库 -- 感谢医疗专业人士提供的专业指导 - ---- - -再次感谢您的贡献!如果您有任何问题,请随时联系我们。 \ No newline at end of file diff --git a/init_test_data.py b/init_test_data.py deleted file mode 100644 index cec9bcc3..00000000 --- a/init_test_data.py +++ /dev/null @@ -1,105 +0,0 @@ -#!/usr/bin/env python3 -# -*- coding: utf-8 -*- -""" -初始化测试数据脚本 -""" - -import sys -import os -sys.path.append(os.path.join(os.path.dirname(__file__), 'backend')) - -from backend.database import DatabaseManager -import uuid -from datetime import datetime - -def init_test_data(): - """初始化测试数据""" - # 初始化数据库 - db_manager = DatabaseManager('backend/data/body_balance.db') - db_manager.init_database() - - print("数据库初始化完成") - - # 检查是否已有患者数据 - patients_count = db_manager.get_patients_count() - print(f"当前患者数量: {patients_count}") - - if patients_count > 0: - print("数据库中已有患者数据,跳过插入") - return - - # 插入测试患者数据 - test_patients = [ - { - 'name': '张三', - 'gender': 'male', - 'age': 35, - 'height': 175, - 'weight': 70, - 'phone': '13800138001', - 'medical_history': '无特殊病史', - 'notes': '测试患者1' - }, - { - 'name': '李四', - 'gender': 'female', - 'age': 28, - 'height': 165, - 'weight': 55, - 'phone': '13800138002', - 'medical_history': '轻微腰椎间盘突出', - 'notes': '测试患者2' - }, - { - 'name': '王五', - 'gender': 'male', - 'age': 42, - 'height': 180, - 'weight': 80, - 'phone': '13800138003', - 'medical_history': '高血压', - 'notes': '测试患者3' - }, - { - 'name': '赵六', - 'gender': 'female', - 'age': 31, - 'height': 160, - 'weight': 50, - 'phone': '13800138004', - 'medical_history': '无', - 'notes': '测试患者4' - }, - { - 'name': '钱七', - 'gender': 'male', - 'age': 55, - 'height': 170, - 'weight': 75, - 'phone': '13800138005', - 'medical_history': '糖尿病', - 'notes': '测试患者5' - } - ] - - print("开始插入测试患者数据...") - - for i, patient_data in enumerate(test_patients, 1): - try: - patient_id = db_manager.create_patient(patient_data) - print(f"插入患者 {i}: {patient_data['name']} (ID: {patient_id})") - except Exception as e: - print(f"插入患者 {i} 失败: {e}") - - # 验证插入结果 - final_count = db_manager.get_patients_count() - print(f"\n插入完成,当前患者总数: {final_count}") - - # 显示患者列表 - patients = db_manager.get_patients(page=1, size=10) - print("\n患者列表:") - for patient in patients: - print(f"- {patient['name']} ({patient['gender']}, {patient['age']}岁) - {patient['phone']}") - -if __name__ == '__main__': - init_test_data() \ No newline at end of file diff --git a/package.json b/package.json index 69aca52b..4323e686 100644 --- a/package.json +++ b/package.json @@ -70,7 +70,10 @@ "dependencies": { "axios": "^1.5.0", "electron-log": "^4.4.8", - "socket.io-client": "^4.8.1" + "element-plus": "^2.10.4", + "html2canvas": "^1.4.1", + "socket.io-client": "^4.8.1", + "vue-router": "^4.5.1" }, "config": { "backend_host": "0.0.0.0",