# eeg_warning **Repository Path**: kyuia/eeg_warning ## Basic Information - **Project Name**: eeg_warning - **Description**: No description available - **Primary Language**: Python - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-03-18 - **Last Updated**: 2026-03-28 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # EEG Warning System (脑电预警系统) 这是一个基于 Python 的多模态脑电信号分析与预警系统。它提供了一套 RESTful API 服务,用于触发 EEG 数据处理任务(ERP、ERD/ERS、地形图分析)并获取分析结果(可视化图片和 JSON 报告)。 ## 软件架构 * **后端服务**: FastAPI (Python) * **数据处理**: MNE-Python, NumPy, SciPy * **可视化**: Matplotlib * **运行环境**: Python 3.8+ ## 环境配置 ### 1. 克隆项目 ```bash git clone https://gitee.com/kyuia/eeg_warning.git cd eeg_warning ``` ### 2. 创建并激活虚拟环境 建议使用 Python 3.8 或更高版本。 **Windows (PowerShell):** ```powershell python -m venv eeg-venv .\eeg-venv\Scripts\Activate.ps1 ``` **Linux/Mac:** ```bash python3 -m venv eeg-venv source eeg-venv/bin/activate ``` ### 3. 安装依赖 ```bash pip install -r requirements.txt ``` ### 4. 数据配置 (重要) 由于 EEG 数据体积过大,本项目已配置 `.gitignore` 忽略数据文件。您需要在本地手动准备数据。 请在项目根目录下创建 `data` 文件夹,并按照以下结构放置 `.mat` 数据文件(支持 sub-01 到 sub-50): ```text eeg_warning/ ├── data/ │ ├── sub-01/ │ │ └── sub-01_task-motor-imagery_eeg.mat │ ├── sub-02/ │ │ └── sub-02_task-motor-imagery_eeg.mat │ └── ... ├── server.py └── ... ``` ## 启动方法 确保虚拟环境已激活,然后在终端运行: ```bash python server.py ``` 启动成功后,控制台会输出如下信息,显示本机 IP 地址供局域网访问: ```text ================================================== EEG Warning System API is starting... Server is listening on 0.0.0.0:8001 Access URLs: - Local: http://127.0.0.1:8001 - Network: http://x.x.x.x:8001 ================================================== ``` ## API 接口文档 ### 1. 服务状态检查 * **URL**: `/` * **Method**: `GET` * **描述**: 检查服务是否正常运行。 * **成功响应**: ```json { "message": "EEG Warning System API is running. Use /docs for documentation." } ``` ### 2. 执行分析任务 * **URL**: `/api/execute` * **Method**: `POST` * **Query Parameters**: * `id` (int): 被试编号,范围 `1` 到 `50`。 * **示例**: `POST /api/execute?id=1` * **逻辑**: 该接口会清空旧的 `results` 目录,验证指定 ID 的数据是否存在,并触发 `run_analysis.py` 进行分析。 * **成功响应 (200 OK)**: ```json { "status": "success", "message": "Analysis executed successfully", "data": { ...详细分析结果摘要... } } ``` * **失败响应**: * `404 Not Found`: 指定 ID 的数据文件不存在。 * `500 Internal Server Error`: 分析过程中发生异常(如格式错误、计算失败)。 ### 3. 获取结果图片列表 * **URL**: `/api/results/images` * **Method**: `GET` * **描述**: 获取分析生成的图片(如 ERP 波形图、脑地形图)的访问链接列表。 * **成功响应**: ```json { "count": 1, "figures": [ "http://192.168.1.5:8001/results/figures/sub-01_report.png" ] } ``` > **注意**: 返回的 URL 会自动使用服务器的局域网 IP,确保在其他电脑的前端应用中可以直接通过 `` 标签加载。 ### 4. 获取详细报告数据 * **URL**: `/api/results/data` * **Method**: `GET` * **描述**: 获取分析生成的详细 JSON 报告内容。 * **成功响应**: ```json { "count": 1, "reports": { "sub-01_analysis.json": { "subject_id": "sub-01", "summary": { ... }, "warnings": [ ... ] } } } ``` ### 5. 获取医生端训练评估报告 * **URL**: `/doctor-report` * **Method**: `GET` * **描述**: 获取医生端脑机接口训练评估报告 HTML 页面,包含患者信息、风险评估、诊断建议等专业医学内容。 * **成功响应**: 返回完整的 HTML 页面 * **页面内容**: * 患者基本信息(姓名、ID、评估日期、主治医生) * 风险评估摘要(综合风险评分、风险等级、具体风险指标) * 脑电频段功能连接分析(附带 patient_report1.png 图表说明) * 不同频段训练康复效果(附带 patient_report2.png 图表说明) * 任务态脑网络恢复程度分析(附带 patient_report3.png 图表说明) * 核心训练指标评估(准确率、Kappa系数、灵敏度、精确度) * 专业诊断与建议(主要诊断、治疗建议、康复训练方案) * 预后评估(短期、中期、长期) * 医生签名区 * **访问示例**: `http://localhost:8001/doctor-report` * **注意事项**: * 该页面基于 Bootstrap 5 构建,已使用国内 CDN 确保加载速度 * 支持响应式布局,可在 PC 和移动设备上查看 * 支持打印功能,可直接打印为 PDF 报告 * 页面包含专业的医学解释和诊断建议,供医生参考 ## 访问验证 ### 什么样的访问算是成功? 1. **启动成功**: 终端没有报错,且打印出了 "Server is listening on 0.0.0.0:8001"。 2. **API 调用成功**: * 使用浏览器或 Postman 访问 `http://localhost:8001/docs` 能看到 Swagger UI 界面。 * 调用 `/api/execute?id=1` 返回 `status: success`。 * 调用 `/api/results/images` 返回的图片链接,复制到浏览器地址栏能直接看到图片。 ### 什么样的访问算是失败? 1. **连接被拒绝**: 浏览器提示 "ERR_CONNECTION_REFUSED"。 * *原因*: 服务未启动,或端口被占用,或防火墙拦截了 8001 端口。 2. **404 Not Found**: * *原因*: 请求了错误的 URL 路径,或者请求了不存在的被试 ID 数据(如 `id=99`)。 3. **图片无法加载 (Broken Image)**: * *原因*: 前端设备无法ping通服务器IP,或者服务器生成图片失败(检查 `/api/execute` 是否报错)。 当前训练的报告(准确率提高,大脑的变化), 纵向比较的报告(相比于之前的变化)。 手抓握,旋转。 静态数据。 http://123.56.18.164:17997/c48caabf#token=7dce2c4eb0b0d6f58ed9cf9cd6f2f12f 1. 患者名称, 最新评估日期, 基准评估日期 2. 综合恢复评分(从多少到多少), 预估评分 3. 运动康复核心表现对比 4. 大脑功能变化&神经可塑性指标 5. 脑电频段功能连接分析 6. 不同频段训练康复效果 7. 任务态脑网络恢复程度分析 8. 核心指标对比(当前 vs基线) 9. 近五次训练准确率趋势