跳转到主要内容

数据流概览

健康数据会经历多个处理阶段,以保证在不同 providers 之间的一致性、质量与标准化。

完整流程

1

数据采集

Provider 使用 OAuth 认证的请求从 vendor API 拉取 raw 数据。
raw_data = await provider.pull_from_vendor_api(
    access_token, refresh_token, days=2
)
2

Raw 存储

原始数据会存入数据库,用于审计追溯与后续重处理(reprocessing)。
await provider.save_raw_data_to_db(raw_data)
3

转换(Transformation)

将 vendor 特定的数据转换为标准化格式。
formatted_data = await provider.format_data(raw_data)
4

上传到平台

标准化数据会上传到 Mirobody platform。
await push_service.push_data(platform="theta", data=formatted_data)
5

可用性(Availability)

数据现在可以用于查询、分析与 AI 处理。

数据转换

转换阶段会将 vendor 特定格式转换为标准化的 StandardPulseData
StandardPulseData(
    metaInfo=StandardPulseMetaInfo(
        userId="user_123",
        requestId="req_abc",
        source="theta",
        timezone="America/Los_Angeles"
    ),
    healthData=[
        StandardPulseRecord(
            source="garmin",
            type="HEART_RATE",
            timestamp=1705276800000,
            unit="count/min",
            value=72.0,
            timezone="America/Los_Angeles"
        )
    ]
)
更多关于数据映射(data mapping)的细节请参见数据映射指南