Back to Skills
antigravityAI & Agents

health-trend-analyzer

分析一段时间内健康数据的趋势和模式。关联药物、症状、生命体征、化验结果和其他健康指标的变化。识别令人担忧的趋势、改善情况,并提供数据驱动的洞察。当用户询问健康趋势、模式、随时间的变化或"我的健康状况有什么变化?"时使用。支持多维度分析(体重/BMI、症状、药物依从性、化验结果、情绪睡眠),相关性分析,变化检测,以及交互式HTML可视化报告(ECharts图表)。

Documentation

健康趋势分析器

分析一段时间内健康数据的趋势和模式,识别变化、相关性,并提供数据驱动的健康洞察。

When to Use

  • 需要分析一段时间内健康数据的趋势、相关性或显著变化时使用。
  • 任务涉及体重、症状、用药、化验、情绪或睡眠等多维度随时间变化。
  • 用户询问“最近健康状况有什么变化”或需要趋势报告时使用。

核心功能

1. 多维度趋势分析

  • 体重/BMI 趋势:追踪体重和BMI随时间的变化,评估健康趋势
  • 症状模式:识别反复出现的症状、频率变化、潜在诱因
  • 药物依从性:分析用药规律,识别漏服模式和改善空间
  • 化验结果趋势:追踪生化指标变化(胆固醇、血糖、血压等)
  • 情绪与睡眠:关联情绪状态与睡眠质量,识别心理健康趋势

2. 相关性分析引擎

  • 药物-症状相关性:识别新药物是否与症状变化相关
  • 生活方式影响:关联饮食/睡眠与症状和情绪
  • 治疗效果评估:衡量治疗是否导致改善
  • 周期-症状相关性:女性健康追踪中的周期相关性

3. 变化检测

  • 显著变化:警告快速体重变化、新症状、药物变化
  • 恶化模式:早期识别健康状况下降
  • 改善识别:强调积极的健康变化
  • 阈值警报:接近危险水平时警告(辐射、BMI极值)

4. 预测性洞察

  • 风险评估:基于趋势识别风险因素
  • 预防建议:基于模式建议预防措施
  • 早期预警:在问题变得严重之前预测

使用说明

触发条件

当用户提到以下场景时,使用此技能:

通用询问

  • ✅ "过去一段时间我的健康有什么变化?"
  • ✅ "分析我的健康趋势"
  • ✅ "我的身体状况有什么变化?"
  • ✅ "健康状况总结"

具体维度

  • ✅ "我的体重/BMI有什么趋势?"
  • ✅ "分析我的症状模式"
  • ✅ "我的用药依从性怎么样?"
  • ✅ "我的化验指标有什么变化?"
  • ✅ "我的情绪和睡眠趋势"

相关性分析

  • ✅ "我的症状和什么相关?"
  • ✅ "我的药物有效吗?"
  • ✅ "睡眠和我的情绪有什么关系?"

时间范围

  • 默认分析过去3个月的数据
  • 支持:"过去1个月"、"过去6个月"、"过去1年"
  • 支持:"2025年1月至今"、"最近90天"

执行步骤

步骤 1:确定分析时间范围

从用户输入中提取时间范围,或使用默认值(3个月)。

步骤 2:读取健康数据

读取以下数据源:

// 1. 个人档案(BMI、体重)
const profile = readFile('data/profile.json');

// 2. 症状记录
const symptomFiles = glob('data/symptoms/**/*.json');
const symptoms = readAllJson(symptomFiles);

// 3. 情绪记录
const moodFiles = glob('data/mood/**/*.json');
const moods = readAllJson(moodFiles);

// 4. 饮食记录
const dietFiles = glob('data/diet/**/*.json');
const diets = readAllJson(dietFiles);

// 5. 用药日志
const medicationLogs = glob('data/medication-logs/**/*.json');

// 6. 女性健康数据(如适用)
const cycleData = readFile('data/cycle-tracker.json');
const pregnancyData = readFile('data/pregnancy-tracker.json');
const menopauseData = readFile('data/menopause-tracker.json');

// 7. 过敏史
const allergies = readFile('data/allergies.json');

// 8. 辐射记录
const radiation = readFile('data/radiation-records.json');

步骤 3:数据过滤

根据时间范围过滤数据:

function filterByDate(data, startDate, endDate) {
  return data.filter(item => {
    const itemDate = new Date(item.date || item.created_at);
    return itemDate >= startDate && itemDate <= endDate;
  });
}

步骤 4:趋势分析

对每个数据维度进行趋势分析:

4.1 体重/BMI 趋势

  • 提取历史体重数据
  • 计算BMI变化
  • 识别趋势方向(上升/下降/稳定)
  • 评估变化幅度

4.2 症状模式

  • 统计症状频率
  • 识别高频症状
  • 分析症状时间模式
  • 检测症状诱因

4.3 药物依从性

  • 计算总体依从率
  • 分析各药物依从性
  • 识别漏服模式
  • 评估改善建议

4.4 化验结果

  • 追踪多次报告中的生化指标
  • 与参考范围对比
  • 识别改善/恶化
  • 标记异常指标

4.5 情绪与睡眠

  • 关联情绪评分与睡眠时长
  • 识别情绪波动模式
  • 检测压力水平
  • 评估心理健康趋势

步骤 5:相关性分析

使用统计方法识别相关性:

// 皮尔逊相关系数
function pearsonCorrelation(x, y) {
  // 计算相关系数
  // 返回值范围:-1(负相关)到 1(正相关)
}

// 应用场景
- 药物开始日期 vs 症状频率
- 睡眠时长 vs 情绪评分
- 体重变化 vs 饮食记录
- 运动量 vs 情绪状态

步骤 6:变化检测

识别显著变化:

// 变化点检测
function detectChangePoints(timeSeries) {
  // 使用统计方法检测显著变化点
  // 例如:体重突然下降、症状突然增加
}

// 阈值警报
function checkThresholds(value, thresholds) {
  // 检查是否接近或超过危险阈值
  // 例如:BMI > 30、辐射剂量 > 安全限
}

步骤 7:生成洞察

基于分析结果生成预测性洞察:

// 风险评估
function assessRisks(trends) {
  // 识别高风险趋势
  // 例如:快速体重下降、频繁症状
}

// 预防建议
function generateRecommendations(trends, correlations) {
  // 基于模式建议预防措施
  // 例如:改善睡眠、提高用药依从性
}

// 早期预警
function earlyWarnings(trends) {
  // 在问题变得严重之前预测
  // 例如:症状频率上升、情绪持续低落
}

步骤 8:生成可视化报告

生成交互式HTML报告:

  1. 数据汇总:生成JSON格式的分析结果
  2. HTML模板渲染:将数据注入HTML模板
  3. ECharts图表配置:配置6种交互式图表
  4. 保存文件:保存为独立HTML文件

详细输出格式参见:数据源说明

输出格式

文本报告(简洁版)

健康趋势分析报告
━━━━━━━━━━━━━━━━━━━━━━━━━━
生成时间: 2025-12-31
分析周期: 过去3个月 (2025-10-01 至 2025-12-31)

📊 总体评估
━━━━━━━━━━━━━━━━━━━━━━━━━━
改善中: 体重管理、胆固醇水平
稳定: 血糖控制、情绪状态
需关注: 用药依从性、睡眠质量

📊 体重/BMI 趋势
├─ 当前体重: 68.5 kg
├─ 当前 BMI: 23.1(正常范围)
├─ 3个月变化: -2.3 kg(-3.2%)
├─ 趋势: 📉 逐渐减重
└─ 评估: ✅ 积极趋势,在健康范围内

💊 药物依从性
├─ 当前药物: 3种
├─ 总体依从率: 78%
├─ 漏服次数: 8次
├─ 最好: 阿司匹林 (95%)
└─ 需改进: 氨氯地平 (65%)

⚠️ 症状模式
├─ 最频繁: 头痛(过去3个月 12次)
├─ 趋势: 📉 频率下降(较上期减少4次)
├─ 潜在诱因: 与睡眠质量识别出中等相关(r=0.62)
└─ 建议: 继续改善睡眠模式

🧪 化验结果趋势
├─ 胆固醇: 240 → 210 mg/dL(改善 ✅)
├─ 血糖: 5.6 → 5.4 mmol/L(稳定)
├─ 上次检查: 30天前
└─ 建议: 3个月后复查

😊 情绪与睡眠
├─ 平均情绪评分: 6.8/10
├─ 平均睡眠时长: 6.5小时
├─ 趋势: 情绪稳定,睡眠略有改善
└─ 相关性: 睡眠时长与情绪评分强相关(r=0.78)

🔗 相关性分析
━━━━━━━━━━━━━━━━━━━━━━━━━━
• 睡眠时长 ↔ 情绪评分: 强正相关 (r=0.78)
• 体重变化 ↔ 饮食记录: 中等相关 (r=0.55)
• 用药依从性 ↔ 症状频率: 中等负相关 (r=-0.62)

💡 风险评估与建议
━━━━━━━━━━━━━━━━━━━━━━━━━━

🟢 继续保持
• 当前体重管理方法有效
• 胆固醇水平改善明显

🟡 需要关注
• 提高氨氯地平依从性(设置提醒)
• 增加睡眠时长至7-8小时

📅 复查计划
• 3个月后复查血脂四项
• 1个月后评估用药依从性改善

━━━━━━━━━━━━━━━━━━━━━━━━━━
⚠️ 免责声明
本分析仅供参考,不替代专业医疗诊断。
请咨询医生获取专业建议。

HTML可视化报告(完整版)

生成包含ECharts交互式图表的独立HTML文件,包含:

  1. 总体评估卡片:关键指标一目了然
  2. 体重/BMI趋势图:双Y轴折线图(体重 + BMI)
  3. 症状频率图:颜色编码的柱状图(高频红/中频黄/低频绿)
  4. 药物依从性仪表盘:总体依从率 + 各药物详情
  5. 化验结果趋势图:多系列折线图 + 参考线
  6. 相关性热图:热力图展示变量间相关性
  7. 情绪与睡眠面积图:双Y轴面积图

HTML文件特点

  • ✅ 完全独立(所有依赖通过CDN)
  • ✅ 交互式图表(缩放、导出、图例切换)
  • ✅ 响应式设计(移动端适配)
  • ✅ 可打印(打印优化样式)
  • ✅ 可分享(发送给医生)

数据源

主要数据源

数据源文件路径数据内容
个人档案data/profile.json体重、身高、BMI历史
症状记录data/symptoms/**/*.json症状名称、严重程度、持续时间

Use Cases

  • 需要分析一段时间内健康数据的趋势、相关性或显著变化时使用。
  • 任务涉及体重、症状、用药、化验、情绪或睡眠等多维度随时间变化。
  • 用户询问“最近健康状况有什么变化”或需要趋势报告时使用。