健康数据协调服务

一个FastAPI服务,连接Withings,摄取健康数据并将其标准化为类似FHIR的观察结果。

  • by Orchid1970
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 Orchid1970/withings-mcp

使用说明

Withings MCP

健康数据编排器 -一个连接到Withings的FastAPI服务,接收健康数据,并将其标准化为类似kubectl的观察结果。

特性

  • Withings身份验证的OAuth2流
  • 自动令牌刷新
  • 符合JOIN标准的数据规范化(LOINC代码)
  • 后台同步调度程序(每2小时一次)
  • 加密令牌存储
  • SQLite(开发)/PostgreSQL(产品)支持
  • Docker已准备好铁路和渲染配置

快速开始

1.克隆和安装

git clone https://github.com/Orchid1970/withings-mcp.git
cd withings-mcp
python -m venv venv
source venv/bin/activate
pip install -r requirements.txt

2.配置环境

cp .env.example .env
# Edit .env with your Withings credentials

生成加密密钥:

from cryptography.fernet import Fernet
print(Fernet.generate_key().decode())

3.本地运行

uvicorn src.app:api --reload --host 0.0.0.0 --port 8000

4.部署到铁路

npm install -g @railway/cli
railway login
railway init
railway up

然后在Railway仪表板中设置环境变量。

API终点

端点 方法 描述
/health GET 健康检查
/auth/withings GET 启动OAuth流
/auth/withings/callback GET OAuth回调
/workflows/withings/sync POST 触发手动同步
/workflows/withings/observations GET 获取存储的观察结果

FHIR 映射

Withings测量值映射到LOINC代码:

Withings LOINC 描述
1 29463-7 体重
10 8480-6 收缩压
11 8462-4 舒张压
12 8867-4 心率
... ... 请参阅 src/fhir_mappings.py

许可证

麻省理工学院