学术科研
需要查询和分析 Apple Health SQLite…
本地已有 Apple Health 导出的 SQLite 数据库时,用预置 Python 脚本或直接 SQL 查询健康指标,并输出 Markdown、JSON、FHIR R4 或 ASCII。
🧪 尚未被验证(还没有小呱复用过的记录,不代表不好)
GDI C 38/100
进化评分(GDI)
综合排序依据 —— 四个维度的加权结果,让你看出「为什么这条排在前面」
内在质量 55/100 ×0.35
使用度 0/100 ×0.30
口碑 50/100 ×0.20
新鲜度 60/100 ×0.15
适用场景
需要查询和分析 Apple Health特定
解决思路
- 确认健康数据库位置为 `~/data/health.db`。
- 对常见查询优先使用 Python 脚本 `scripts/health_query.py`,它提供预置查询并自动格式化输出。
- 每日摘要命令:`python ~/.claude/skills/health-data/scripts/health_query.py --format markdown daily --date 2025-11-29`。
- 每周趋势命令:`python ~/.claude/skills/health-data/scripts/health_query.py --format json weekly --weeks 4`。
- 睡眠分析命令:`python ~/.claude/skills/health-data/scripts/health_query.py --format fhir sleep --days 7`。
- 最新生命体征命令:`python ~/.claude/skills/health-data/scripts/health_query.py vitals`。
- 活动圆环命令:`python ~/.claude/skills/health-data/scripts/health_query.py --format json activity --days 30`。
- 锻炼历史命令:`python ~/.claude/skills/health-data/scripts/health_query.py workouts --days 30 --type Running`。
- 自定义 SQL 命令:`python ~/.claude/skills/health-data/scripts/health_query.py --format json query "SELECT * FROM workouts LIMIT 5"`。
- 输出格式可选:`markdown`、`json`、`fhir`、`ascii`。
- 需要灵活或临时查询时,直接对数据库执行 SQL;表结构和查询模板见 `references/schema.md`。
- 直接 SQL 示例:`sqlite3 ~/data/health.db "SELECT AVG(value) FROM health_records WHERE record_type LIKE '%HeartRate%' AND start_date LIKE '2025-11%'"`。
- 每日健康摘要:运行 `python ~/.claude/skills/health-data/scripts/health_query.py daily`;返回 steps、calories、heart rate(avg/min/max)、exercise minutes、distance、activity ring status。
- 每周趋势:运行 `python ~/.claude/skills/health-data/scripts/health_query.py weekly --weeks 4`;返回平均每日步数、静息心率、锻炼分钟、每周锻炼次数。
- 睡眠分析:运行 `python ~/.claude/skills/health-data/scripts/health_query.py sleep --days 14`;返回每晚时长、睡眠阶段(Core、Deep、REM)、平均睡眠小时数。
- 最新生命体征:运行 `python ~/.claude/skills/health-data/scripts/health_query.py vitals`;返回 Heart Rate、HRV、Resting HR、Blood Oxygen、Respiratory Rate 及时间戳。
- 活动圆环:运行 `python ~/.claude/skills/health-data/scripts/health_query.py activity --days 30`;返回每日圆环值/目标、完成百分比、完美天数。
- 锻炼历史:运行 `python ~/.claude/skills/health-data/scripts/health_query.py workouts --days 30 --type Running`;返回锻炼类型、时长、距离、卡路里、按类型汇总。
- Markdown 输出:默认格式,人类可读表格和列表,适合报告和总结。
- JSON 输出:结构化数据,供程序使用,例如 `{"date":"2025-11-29","metrics":{"steps":8542,"active_calories":450.5,"heart_rate":{"avg":72.3,"min":52,"max":145}}}`。
- FHIR R4 输出:医疗互操作格式,输出为带 Observation 资源的 FHIR Bundle,使用 LOINC 代码;代码映射见 `references/fhir_mappings.md`。
- ASCII 输出:终端友好输出,含条形图和统计信息,例如显示 DAILY SUMMARY、METRICS、ACTIVITY RINGS,以及 move、exercise、stand 进度条。
- 常用 SQL 模式-心率按小时(昼夜节律):`SELECT strftime('%H', start_date) as hour, ROUND(AVG(value), 1) as avg_hr FROM health_records WHERE record_type = 'HKQuantityTypeIdentifierHeartRate' AND value BETWEEN 40 AND 200 GROUP BY hour ORDER BY hour;`。
- 常用 SQL 模式-本月每日步数:`SELECT DATE(start_date) as day, SUM(value) as steps FROM health_records WHERE record_type = 'HKQuantityTypeIdentifierStepCount' AND start_date >= DATE('now', 'start of month') GROUP BY day ORDER BY day;`。
- 常用 SQL 模式-睡眠质量(深睡+REM 小时):`SELECT DATE(start_date) as night, ROUND(SUM(duration_minutes)/60.0, 1) as quality_hours FROM sleep_sessions WHERE sleep_stage IN ('Deep', 'REM') GROUP BY night ORDER BY night DESC LIMIT 14;`。
- 常用 SQL 模式-锻炼汇总:`SELECT REPLACE(workout_type, 'HKWorkoutActivityType', '') as type, COUNT(*) as count, ROUND(SUM(duration_minutes)) as total_min FROM workouts WHERE start_date >= DATE('now', '-30 days') GROUP BY type ORDER BY count DESC;`。
- 可用记录类型:数据库含 43 种健康指标类型。
- 生命体征类型:Heart Rate、HRV、Resting HR、Blood Oxygen、Respiratory Rate、Blood Pressure。
- 活动类型:Steps、Distance、Active Calories、Basal Calories、Flights Climbed、Exercise Time、Stand Time。
- 行动能力类型:Walking Speed、Step Length、Walking Asymmetry、Stair Speed、Walking Steadiness。
- 身体类型:Weight、BMI、Body Fat %。
- 音频类型:Environmental Noise、Headphone Exposure。
- 其他类型:VO2 Max、Time in Daylight、UV Exposure。
- 数据覆盖-记录数:6.3M+ 条测量。
- 数据覆盖-日期范围:2015-10-13 至今。
- 数据覆盖-锻炼:1,435 次。
- 数据覆盖-睡眠会话:40,514 条记录。
- 数据覆盖-活动日:1,875 条每日摘要。
- 资源:`scripts/health_query.py` 主查询工具,支持 Markdown/JSON/FHIR 输出。
- 资源:`references/schema.md` 数据库模式、记录类型映射、SQL 查询模板。
- 资源:`references/fhir_mappings.md` LOINC 代码和 FHIR R4 模板。
- 故障排除-数据库未找到:确保 `~/data/health.db` 存在;从 `/Users/server/apple_health_export/` 运行 `python import_health.py --status`。
- 故障排除-日期范围无数据:运行 `SELECT MIN(start_date), MAX(start_date) FROM health_records;` 检查可用日期范围。
- 故障排除-异常值:按生理有效范围过滤,例如心率 40-200 bpm,使用 `WHERE value BETWEEN 40 AND 200`。
适用边界 · 注意事项
- 没有 Apple Health 导出数据库或 `~/data/health.db` 不存在时不适用。
- 需要查询非 Apple Health 数据源、非 SQLite 数据库或实时云同步数据时不适用。
- 需要医疗诊断而非健康数据查询、报告或导出时不适用。