> ## Documentation Index
> Fetch the complete documentation index at: https://docs.mirobody.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Provider 概览

> Mirobody 可连接的健康数据源，按四大 vendor 类别组织。

## 什么是 provider

一个 **provider**（代码中的 `vendor::Vendor`）是针对某个健康数据源、已编译进程序的 C++ 客户端。每个 provider 都实现同一套 `authorize / fetch / webhook` 契约，并在运行时按 **id** 解析。关于其架构 —— 契约、诚实的桩、注册表 —— 参见 [Vendor 系统](/zh/concepts/providers)。

本页列出 `src/health/vendor/` 中实际发布的数据源，分为四大类别。

## 聚合平台（`platform/`）

15 家 B2B 健康数据聚合器，以同一套契约中转可穿戴、检验和/或临床数据。每家都携带真实的 `VendorInfo` 元数据（市场定位、地区、合规、数据域），无需凭据即可查询；传输层针对各平台的**公开** API 实现，无文档的操作保留为显式的桩。

| Vendor (id)                             | 地区          | 备注                           |
| --------------------------------------- | ----------- | ---------------------------- |
| **Terra** (`terra`)                     | Global      | 连接组件 + HMAC webhook；广泛的可穿戴覆盖 |
| **Validic** (`validic`)                 | US          | 企业级 PGHD；EHR 写回受门控           |
| **Human API** (`human_api`)             | US          | 临床 + 可穿戴聚合                   |
| **Junction** (`junction`)               | US          | 可穿戴 + 美国检验网络                 |
| **Metriport** (`metriport`)             | US          | 开源；整合的 FHIR + 设备             |
| **Rook** (`rook`)                       | Global      | 可穿戴 API；按源撤销                 |
| **Spike** (`spike`)                     | Global      | 可穿戴 + Nutrition-AI           |
| **Thryve** (`thryve`)                   | EU          | 欧盟托管的医疗级可穿戴 API              |
| **WeFitter** (`wefitter`)               | EU          | 游戏化；按 profile 连接             |
| **Vitalera** (`vitalera`)               | Global      | 支持 FHIR；HMAC webhook         |
| **Open Wearables** (`open_wearables`)   | Self-hosted | 开源；`base_url` 必填             |
| **Redox** (`redox`)                     | US          | EHR 互操作；FHIR R4              |
| **Particle Health** (`particle_health`) | US          | 经 FHIR `$everything` 获取临床记录  |
| **HealthConnect** (`healthconnect`)     | US          | EHR + 可穿戴；FHIR `Observation` |
| **LexisNexis** (`lexisnexis`)           | US          | 人寿保险核保；需销售授权                 |

<Info>
  实现深度**因操作而异** —— 某些 vendor 实现了 `fetch` + `authorize_url` + `handle_webhook` + `revoke`，另一些只实现了 `fetch`。逐 vendor 的状态表位于 [`src/health/vendor/README.md`](https://github.com/thetahealth/mirobody/blob/main/src/health/vendor/README.md)。
</Info>

## 设备品牌（`device/`）

针对消费级可穿戴品牌的直连客户端，供希望直接对话品牌、而不经聚合器的部署使用：

<CardGroup cols={3}>
  <Card title="Fitbit" icon="watch">
    `fitbit` —— Fitbit Web API，OAuth 2.0。`fetch`（按域的时间序列）、`authorize_url`、`revoke` 以及带签名的 `handle_webhook`（`X-Fitbit-Signature`）均已实现。
  </Card>

  <Card title="Withings" icon="watch">
    `withings` —— Health Mate API，OAuth 2.0。已实现 `fetch`（表单 `action` 服务）与 `authorize_url`；webhook / revoke 为桩。
  </Card>

  <Card title="Garmin" icon="watch">
    `garmin` —— Garmin Health API。需合作方授权且为**推送式**；仅 `revoke` 已接通。参见 [Garmin 示例](/zh/examples/garmin-provider)。
  </Card>
</CardGroup>

<Warning>
  **Fitbit、Garmin 与 Withings 是仅有的、拥有第一方客户端的设备品牌。** 其他品牌 —— **Oura、Polar、Whoop、Dexcom 等** —— 需**通过聚合器**接入（Terra、Validic、Thryve、Rook、Spike）；除非专门添加一个客户端以刻意绕过聚合器，否则它们没有专属客户端。
</Warning>

## 临床 EHR（`ehr/`）—— SMART on FHIR

由于美国 ONC Cures Act 强制每个认证 EHR 采用 **SMART App Launch + FHIR R4** 标准，一个**单一的通用客户端**（`ehr`）便覆盖了所有 EHR —— Epic、Oracle Health / Cerner、athenahealth、MEDITECH、Veradigm 等 —— 以各租户的 FHIR base URL 参数化。

* `base_url` **必填且按租户而定**（每家医院有各自的 FHIR 服务 base URL）；客户端拒绝猜测它。
* 认证采用 SMART-on-FHIR OAuth 2.0 bearer token；`fetch` 发起标准的 FHIR R4 `Observation` 搜索（`patient` + `category` + `date` 区间）并返回 FHIR JSON。
* 租户的 base URL 通过 `EhrDirectory`（[`ehr/directory.hpp`](https://github.com/thetahealth/mirobody/blob/main/src/health/vendor/ehr/directory.hpp)）从公开的 **Service Base URL** 目录发现：**ONC Lantern**（全国聚合目录）与 **Oracle Health / Cerner** 发布的清单。

浏览器驱动的连接流程位于 `/health/ehr/*` —— 参见[使用 Provider](/zh/providers/using-providers)。

## 手机健康存储（`phone/`）

| Vendor (id)           | 备注                                                                                                               |
| --------------------- | ---------------------------------------------------------------------------------------------------------------- |
| **Huawei** (`huawei`) | 华为 Health Kit **Cloud** REST API（Account Kit OAuth）。经 `sampleSet:polymerize` 实现 `fetch`；同意 OAuth 与订阅 webhook 为桩。 |

<Note>
  **Apple Health、Samsung Health、Google Health Connect 以及小米 / Mi Fitness 仅设备本地可用** —— 它们不暴露服务端 API，因此不是 vendor 客户端。宿主 App 在设备本地读取它们，并把 FHIR `Observation` POST 到内嵌的 FHIR 端点。参见[数据流](/zh/concepts/data-flow)。
</Note>

## 数据域

每个 vendor 都声明它中转哪些归一化的 `DataDomain`，`fetch` 接收其中之一：

`Activity` · `Sleep` · `HeartRate` · `Glucose` · `Nutrition` · `BodyMetrics`（体重、BMI、血压、SpO2 等） · `Labs` · `Clinical`

## 下一步

<CardGroup cols={2}>
  <Card title="使用 Provider" icon="link" href="/zh/providers/using-providers">
    配置凭据并关联账号
  </Card>

  <Card title="Vendor 系统" icon="plug" href="/zh/concepts/providers">
    深入了解 `vendor::Vendor` 契约
  </Card>

  <Card title="Garmin 示例" icon="watch" href="/zh/examples/garmin-provider">
    一个对照契约的设备品牌客户端
  </Card>

  <Card title="Provider 集成" icon="code" href="/zh/development/provider-integration">
    添加一个新数据源
  </Card>
</CardGroup>
