# FHIR 平台：支持患者同意的托管 FHIR R4

> 一个托管的 FHIR R4 平台：26 种资源类型、搜索、历史记录、事务、$everything、IPS、Inferno 测试的 SMART 启动、同意和来源证明，以及一个简单的 REST API。免费沙盒。

Source: https://developers.anpheros.com/zh/guides/fhir

**Anpheros 是一个 FHIR 平台 — 一个托管的 FHIR 数据库（数据存储），应用程序将其用作 FHIR 后端：它将每个患者记录原生存储为 HL7 FHIR R4 (4.0.1) 资源，并在 `https://platform.anpheros.com/fhir/R4` 上公开它们，** 在标准之上增加了同意、来源证明和审计功能。已经支持 FHIR 的应用程序可以直接使用它；不支持 FHIR 的应用程序可以使用更简单的 REST API (`/v1`)，该 API 使用相同的 ID 读取和写入相同的资源。

对于 AI 应用程序，这使得 Anpheros 成为模型上下文的 FHIR 后端：请参阅 [LLM 应用程序和医疗保健数据](https://developers.anpheros.com/zh/guides/llm-healthcare-data)。

<!-- visual:fhir-hero -->

## 什么是 HL7 FHIR？

FHIR (Fast Healthcare Interoperability Resources) 是 HL7 用于在 Web 上交换健康数据的标准。它定义了：

- **资源 (resources)** — 用于表示每个临床概念的小型、类型化的 JSON（或 XML）文档：例如 `Patient`、`Observation`、`Condition`、`MedicationStatement`；
- **资源之间的引用 (references)** (`"subject": {"reference": "Patient/123"}`)，因此一个记录就是一个围绕患者的资源图；
- **REST API**，用于读取、搜索、创建、更新和删除资源，并提供标准的搜索参数；
- **捆绑包 (bundles)**，用于一次发送多个资源（事务）或作为文档（例如患者摘要）；
- **术语绑定 (terminology bindings)**，以便值携带来自 LOINC 或 ICD-10 等系统的代码；
- **配置文件 (profiles)** — 用于特定用例或国家的约束，例如 International Patient Summary。

R4 (版本 4.0.1) 是目前实施最广泛的版本。将 FHIR 用作存储模型——而不仅仅是导出格式——意味着应用程序写入的内容与另一个 FHIR 系统读取的内容之间没有翻译层。

```json
{
  "resourceType": "Observation",
  "status": "final",
  "category": [{"coding": [{"system": "http://terminology.hl7.org/CodeSystem/observation-category", "code": "laboratory"}]}],
  "code": {"coding": [{"system": "http://loinc.org", "code": "4548-4", "display": "Hemoglobin A1c"}]},
  "subject": {"reference": "Patient/…"},
  "effectiveDateTime": "2026-09-01T08:00:00Z",
  "valueQuantity": {"value": 6.4, "unit": "%", "system": "http://unitsofmeasure.org", "code": "%"}
}
```

## 能力声明

`GET /fhir/R4/metadata` 返回 CapabilityStatement：支持的资源类型、它们的搜索参数和操作。它是公开的且是权威列表；下表反映了截至 2026 年 9 月 28 日的情况。

## 26 种资源类型

<!-- visual:fhir-map:replace -->

| 领域 | 资源类型 |
|---|---|
| 患者与人员 | `Patient`, `RelatedPerson` |
| 测量与结果 | `Observation` (生命体征、实验室检查、症状、健康状况、日常活动和睡眠), `DiagnosticReport` |
| 问题与护理 | `Condition`, `EpisodeOfCare`, `Procedure`, `CarePlan`, `Goal`, `ServiceRequest`, `CareTeam`, `FamilyMemberHistory` |
| 药物与预防 | `MedicationStatement`, `MedicationAdministration`, `Immunization`, `AllergyIntolerance` |
| 文档与问卷 | `DocumentReference`, `QuestionnaireResponse` |
| 就诊 | `Encounter`, `Appointment` |
| 目录 | `Organization`, `Practitioner`, `PractitionerRole` |
| 管理 | `Consent`, `Provenance` |
| 扩展点 | `Basic` |

每种患者范围的类型都属于患者隔间，因此 `Patient/{id}/$everything`、患者级别的 OAuth 范围和同意过滤器适用于所有这些类型。目录资源 (`Organization`, `Practitioner`, `PractitionerRole`) 没有患者；它们可以在同一环境中的项目之间读取，并且只能由创建它们的项目进行更改。

## 交互和操作

<!-- visual:fhir-ops -->

- 对每种支持的类型进行 **Read, search, create, update, delete** 操作；每种类型的搜索参数在 CapabilityStatement 中列出。未知搜索参数将返回 `400` 而不是被静默忽略。
- **History**: `GET /fhir/R4/{type}/{id}/_history` 返回每个版本；更新可以有条件地进行，使用 `If-Match`（版本不匹配将返回 `412`）。
- **Transactions and batches**: `POST /fhir/R4`，使用类型为 `transaction` 或 `batch` 的 `Bundle`。
- **`Patient/{id}/$everything`**: 一个患者的整个 compartment。
- **`Patient/{id}/$summary`**: 一个 International Patient Summary (IPS) 文档 `Bundle`，支持英语或罗马尼亚语（`?lang=`）。
- **`Observation/$validate?profile=eu-lab`**: 报告实验室结果如何符合 HL7 Europe 实验室报告规则。
- **Paging**: `_count` 最多支持 200 条；`_revinclude` 最多返回 1 000 个资源。
- **Idempotency**: `POST` 请求接受一个 `Idempotency-Key`；使用相同密钥重复请求将返回相同答案且不会创建任何内容。

```bash
# latest HbA1c results of one patient, strict FHIR
curl "https://platform.anpheros.com/fhir/R4/Observation?patient=$PID&code=http://loinc.org|4548-4&_sort=-date" \
     -H "Authorization: Bearer $KEY"

# the patient's International Patient Summary
curl "https://platform.anpheros.com/fhir/R4/Patient/$PID/\$summary?lang=en" -H "Authorization: Bearer $KEY"
```

## FHIR 和更简单的 REST API

`/v1` 专为不想直接处理 FHIR 资源的开发者而设计。它涵盖了患者、观察结果、病情、药物、文档、时间线以及来源信息，此外还包括平台功能（上下文、实验室导入、Webhooks、术语）。每个 `/v1` 对象都带有其 `fhir` 引用，因此应用程序可以从 `/v1` 开始，并在需要完整模型的部分切换到 FHIR。

## FHIR 相关标准

`$summary` 生成的国际患者摘要通过了 HL7 官方验证器（0 个错误）；实验室结果根据 HL7 Europe 实验室规则进行检查（目前为咨询性）；第三方应用程序通过 SMART on FHIR 独立启动连接；HL7 v2 `ORU^R01` 实验室消息可作为输入。格式、级别和交换模式在 [医疗数据互操作性](https://developers.anpheros.com/zh/guides/interoperability) 中进行了描述；每个资源类型的代码系统在 [FHIR 代码系统](https://developers.anpheros.com/zh/guides/fhir-code-systems) 中进行了描述。

## 常见问题解答

### 什么是 FHIR 平台？
一种服务，它将健康数据存储为 HL7 FHIR 资源，并通过标准的 FHIR REST API 暴露这些数据，同时添加应用程序围绕标准所需的功能：授权、同意、审计、历史记录以及诸如 `$everything` 和 `$summary` 等操作。Anpheros 是一个托管的 FHIR R4 平台：您调用它而不是运行 FHIR 服务器。

### FHIR 服务器和 FHIR 平台之间有什么区别？
FHIR 服务器在数据库之上实现 FHIR API。FHIR 平台为您运行它，并添加了围绕它的层——患者同意、来源、访问日志、SDK、Webhooks、实验室导入和沙箱——因此应用程序不必构建这些部分。

### Anpheros 支持哪个 FHIR 版本？
FHIR R4 (4.0.1)，在公开的 CapabilityStatement `/fhir/R4/metadata` 中列出了 26 种资源类型。

### Anpheros FHIR 平台是否经过独立测试？
开源 Inferno 测试套件的 SMART App Launch STU2 "Standalone Launch" 组在 22 项测试中通过了全部 22 项（截至 2026 年 9 月 28 日的运行），并且国际患者摘要 (International Patient Summary) 在官方 HL7 验证器中验证时没有错误。EHR 启动和批量数据导出尚不支持。

### 我可以免费使用 FHIR 平台吗？
可以。沙箱是免费的，每个项目包含 30 名合成患者；生产环境起价为每月 49 欧元，第一个月免费。

### 我必须使用 FHIR 才能使用 Anpheros 吗？
否。一个更简单的 REST API (`/v1`) 以相同的 ID 读取和写入相同的资源，因此应用程序可以从扁平的 JSON 开始，并在需要完整模型时切换到 FHIR。

<!-- visual:cta-fhir -->

## 相关资源

- [FHIR 沙盒](https://developers.anpheros.com/zh/guides/fhir-sandbox)：一个免费的私有 FHIR R4 测试服务器
- [FHIR 中的国际患者摘要 (IPS)](https://developers.anpheros.com/zh/guides/international-patient-summary-fhir)
- [医疗数据溯源详解](https://developers.anpheros.com/zh/guides/medical-data-provenance)：谁写了什么，以及如何记录
- [如何使用 FHIR R4 存储医疗记录](https://developers.anpheros.com/zh/guides/store-medical-records-fhir)：使用 curl 的分步教程
- [FHIR 与自定义医疗数据库](https://developers.anpheros.com/zh/guides/fhir-vs-custom-database)：何时设计自己的表，何时使用 FHIR
- [免费 FHIR 数据库和沙盒](https://developers.anpheros.com/zh/guides/free-fhir-database)
- [Anpheros 与其他 FHIR 服务器的比较](https://developers.anpheros.com/zh/guides/fhir-server-comparison)
- [医疗数据互操作性](https://developers.anpheros.com/zh/guides/interoperability)
- [FHIR 代码系统](https://developers.anpheros.com/zh/guides/fhir-code-systems)
- [医疗数据 API](https://developers.anpheros.com/zh/guides/medical-data-api)
- [构建医疗应用程序](https://developers.anpheros.com/zh/guides/build-a-healthcare-app)
- [API 参考 (OpenAPI)](https://developers.anpheros.com/docs)
- [DICOM 与 FHIR](https://developers.anpheros.com/zh/guides/dicom-vs-fhir)：FHIR 的界限在哪里，医学影像从何开始
