# ヘルスケアAPI：概要と仕組み

> ヘルスケアAPIとは何か、APIコールがどのように機能するか、注目すべき点、そして患者の同意、来歴、EUホスティングを備えた無料のFHIR R4ヘルスケアAPIについて、例とFAQを交えて解説します。

Source: https://developers.anpheros.com/ja/guides/healthcare-api

**ヘルスケアAPIとは、ソフトウェアが患者記録、観察結果、診断、投薬、文書などの医療データを読み書きするためのプログラムインターフェースであり、そのデータへのアクセスを承認するためのものです。** Anpheros Platform APIは、患者が管理するHL7 FHIR R4レコード上のヘルスケアAPIです。アプリケーションはこれを使用して、医療データを保存および取得し、患者の同意を得て、変更の通知を受け取ることができます。

<!-- visual: hapi-hero -->

## ヘルスケアAPI呼び出しの仕組み

ベンダーを問わず、ヘルスケアAPI呼び出しは以下のチェックポイントを通過します。誰が呼び出しているか、どの患者とどのデータにアクセスできるか、データはどこに保存されているか、誰がそれを書いたか、そして誰が変更を知る必要があるか。

<!-- visual:hapi-request -->

## ヘルスケアAPIの種類

| 種類 | 交換するもの | 一般的な用途 |
|---|---|---|
| FHIR REST API | HTTP経由のFHIRリソース (`GET /Observation?patient=…`) | 臨床データ交換の最新標準 |
| SMART on FHIR / OAuth | FHIR APIの認可 | ユーザーの許可を得て、サードパーティ製アプリがレコードにアクセスできるようにする |
| HL7 v2 メッセージング | パイプ区切りメッセージ (結果は`ORU^R01`、入院は`ADT`) | 研究所および病院システム、多くの場合HTTPではなくインターフェース経由 |
| ドキュメント交換 | 臨床ドキュメント (PDF、CDA、FHIRドキュメントバンドル) | 要約、退院サマリー、紹介状 |
| プロプライエタリREST API | ベンダー固有のJSON | 単一製品の独自のモバイルアプリまたは統合 |

Anpherosは、最初の2つをコアとして組み合わせ、HL7 v2の検査結果を入力として受け入れ、元のドキュメントとともにドキュメントを保存し、FHIRドキュメントバンドル（国際患者サマリー）を生成します。また、FHIRを直接扱いたくない開発者向けに、同じデータに対するよりシンプルなREST APIも提供します。

## ヘルスケアAPIで確認すべきこと

<!-- visual:hapi-checklist:replace -->

- **標準化されたデータモデル**: システム間でカスタムマッピングなしにデータを移動できるようにします。
- **患者が制御する認可**: アプリケーションが制御する認証情報だけでなく、患者自身が制御できる認可が必要です。
- **来歴 (Provenance)**: 各値が誰によって、誰のために、どのシステムから書き込まれたか。
- **履歴 (History)**: サイレントな上書きではなく、バージョン管理されていること。
- **読み取りの監査可能性 (Auditability)**: 書き込みだけでなく、読み取り操作も監査できること。
- **安全なリトライ (冪等性)** および **予測可能なエラー**: ヘルスケアデータは重複したり失われたりしてはならないため、これらが重要です。
- **インフラストラクチャを共有するアプリケーション間の分離 (Isolation)**。
- **患者の所在地に一致するデータレジデンシー (Data residency)**。

このページの残りの部分では、これらの各項目が Anpheros API でどのように実現されているかを示します。

## Anpheros API の概要

| サーフェス | ベースパス | 目的 |
|---|---|---|
| FHIR R4 | `/fhir/R4` | 26 のリソースタイプ; 読み取り、検索、作成、更新、削除、履歴、トランザクション、`$everything`、`$summary`、`$validate` |
| REST v1 | `/v1` | patients, observations, conditions, medications, documents, timeline, provenance, AI context, lab import, terminology, webhooks |
| OAuth 2.1 | `/oauth` | consent page, tokens (PKCE), revocation, OpenID Connect keys |
| Patient side | `/me` | a person's own records, who has access, access log, revoke |
| Discovery | `/fhir/R4/metadata`, `/fhir/R4/.well-known/smart-configuration`, `/openapi.json` | machine-readable descriptions of the API |

Base URL: `https://platform.anpheros.com`. サンドボックスと本番環境で共有されます。キーがデータプレーンを決定します。

### 認証

- **API keys** (`sk_test_…`, `sk_live_…`): サーバー用。プロジェクトが作成した患者を表示できます。
- **OAuth access tokens** (`at_…`): 同意を得て、患者のために動作するアプリケーション用。

```bash
curl https://platform.anpheros.com/v1/patients -H "Authorization: Bearer $KEY"
```

### 安全な書き込み

`POST` リクエストは `Idempotency-Key` を受け入れます。同じキーで再試行されたリクエストは元のレスポンスを返し、何も作成しません。すべての書き込みには `Provenance` が付与されます。作成者のタイプは、ボディ (`author_type`) またはヘッダー (`X-Anpheros-Author-Type`, `X-Anpheros-Source-System`, `X-Anpheros-Origin-Id`, `X-Anpheros-On-Behalf-Of` など) で送信されます。

```bash
curl -X POST https://platform.anpheros.com/v1/patients/$PID/observations \
     -H "Authorization: Bearer $KEY" -H 'content-type: application/json' -H "Idempotency-Key: $(uuidgen)" \
     -d '{"code": "29463-7", "display": "Body weight", "category": "vital-signs",
          "value": 71.4, "unit": "kg", "effective_at": "2026-09-28T07:30:00Z", "author_type": "patient"}'
```

### エラーと制限

FHIR エンドポイントは `OperationOutcome` で応答し、その他は `{"error": {"type", "message", "field"}}` で応答します。すべてのレスポンスには `Anpheros-Request-Id` が含まれます。デフォルトの制限は、キーおよび IP ごとに 1 分あたり 600 リクエストです。[Errors](https://developers.anpheros.com/ja/guides/errors) · [Limits](https://developers.anpheros.com/ja/guides/limits)

### イベント

`resource.created`、`resource.updated`、`resource.deleted`、`consent.granted`、`consent.revoked`、`document.finalized`、`ping` のための署名付き Webhook。[Webhooks](https://developers.anpheros.com/ja/guides/webhooks)

## FHIR と REST v1 の選択

**FHIR** は、既に FHIR を利用している場合、`/v1` がカバーしていないリソースタイプ（例：`Immunization`、`Procedure`、`CarePlan`）が必要な場合、または他の FHIR システムとデータを交換する場合に使用します。**REST v1** は、一般的なケースでフラットな JSON を必要とするアプリケーションコードに使用します。どちらも同じリソースを同じ ID で読み書きするため、プロジェクトで混在させることが可能です。[Medical data API](https://developers.anpheros.com/ja/guides/medical-data-api) にデータ操作の詳細が記載されています。

## よくある質問

### ヘルスケアAPIとは何ですか？
ソフトウェアが患者記録、観察結果、診断、投薬、ドキュメントなどの医療データを読み書きするためのプログラムインターフェースであり、そのデータへのアクセスを承認するためのものです。最新のヘルスケアAPIは、データにはHL7 FHIR R4を、承認にはOAuth 2.0または2.1とSMART on FHIRを使用しています。

### ヘルスケアAPIとFHIR APIの違いは何ですか？
FHIRは、ヘルスケアAPIが従うことができる標準の1つです。FHIR APIはREST over FHIRリソースを交換しますが、ヘルスケアAPIはHL7 v2メッセージ、ドキュメント、または独自のJSONも受け入れる場合があります。Anpherosは、FHIR R4 APIと、同じデータに対するよりシンプルなREST APIを提供しています。

### 開発者向けの無料ヘルスケアAPIはありますか？
はい。Anpherosサンドボックスは無料でセルフサービスです。Googleでサインインし、APIキーを取得して、FHIR R4またはRESTで30人の合成患者を操作できます。本番環境は月額€99からで、最初の月は無料です。

### 患者はヘルスケアAPIへの同意をどのように提供しますか？
OAuth 2.1とPKCEを介して行われます。アプリケーションはユーザーをSMART on FHIRスコープ付きの同意ページに誘導します。ユーザーは、何をどれくらいの期間共有するかを選択し、アクセスログを確認し、いつでもアクセスを取り消すことができます。

### データはどこに保存されますか？
欧州連合内です。サービスとそのデータベースは、Google Cloud `europe-west4`（オランダ）で実行されます。

### どのヘルスケアAPIを選択すべきですか？
データ標準、アクセスを承認する主体、出所と監査、データの居住地、リトライとエラーの動作、そしてリアルなデータで無料でテストできるかどうかを比較してください。[ヘルスケアAPIプラットフォーム：内容と選び方](https://developers.anpheros.com/ja/guides/healthcare-api-platform)では、これらをベンダーに尋ねるべき質問にまとめています。

<!-- visual:cta-hapi -->

## 関連情報

- [EHR API および医療記録 API](https://developers.anpheros.com/ja/guides/ehr-api)
- [ヘルスケア API プラットフォーム：構成要素と選択方法](https://developers.anpheros.com/ja/guides/healthcare-api-platform)
- [TypeScript でヘルスケア API を構築する方法](https://developers.anpheros.com/ja/guides/healthcare-api-typescript)：Express を使用したステップバイステップチュートリアル
- [FHIR R4 を使用して医療記録を保存する方法](https://developers.anpheros.com/ja/guides/store-medical-records-fhir)：curl を使用したステップバイステップチュートリアル
- [患者同意を得たヘルスケア API](https://developers.anpheros.com/ja/guides/healthcare-api-patient-consent)
- [SMART on FHIR バックエンド](https://developers.anpheros.com/ja/guides/smart-on-fhir-backend)
- [医療データ API](https://developers.anpheros.com/ja/guides/medical-data-api)
- [FHIR プラットフォーム](https://developers.anpheros.com/ja/guides/fhir)
- [ヘルスケアデータ相互運用性](https://developers.anpheros.com/ja/guides/interoperability)
- [ヘルスケア連携](https://developers.anpheros.com/ja/guides/healthcare-integrations)
- [API リファレンス (OpenAPI)](https://developers.anpheros.com/docs) · [認証と OAuth](https://developers.anpheros.com/ja/guides/authentication)
