# 医療データAPI

> Anpheros API における各医療データの格納場所、コーディング方法、および書き込み、フィルタリング、追跡、修正、削除の方法について、動作する例とともに説明します。

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

**医療データAPIは、患者記録の内容に構造化されたアクセスをソフトウェアに提供します。患者の作成、血圧測定値の記録、現在処方されている薬剤のリスト表示、検査レポートの添付、誰が何を書いたかの追跡などを行います。** このページでは、Anpheros API のデータ操作について説明します。各医療データがどこに格納され、どのようにコーディングされ、どのように読み戻せるかについて、サンドボックスで動作する例とともに解説します。

アプリケーションは、これらの操作を使用して Anpheros を製品の医療データベースとして扱います。患者記録はプラットフォームの HL7 FHIR R4 ストアに保存され、アプリケーションは独自の医療データテーブルを保持する代わりに、API を介して読み書きします。

より広範な情報（認証、同意、イベント）については、[ヘルスケアAPI](https://developers.anpheros.com/ja/guides/healthcare-api) を参照してください。

## 各種医療データの格納場所

| 医療データ | REST v1 | FHIRリソース | コーディング |
|---|---|---|---|
| 患者情報 | `POST /v1/patients` | `Patient` | name, birth date, gender, identifiers |
| バイタルサイン、検査結果、症状、活動、アンケート | `/v1/patients/{id}/observations` | `Observation` | LOINC (症状: ICD-10 chapter R); UCUM units |
| 診断と問題 | `/v1/patients/{id}/conditions` | `Condition` | ICD-10 |
| 薬剤 | `/v1/patients/{id}/medications` | `MedicationStatement` | ATC, product name kept as text |
| 書類 (PDF, 画像) | `/v1/patients/{id}/documents` | `DocumentReference` | LOINC document kinds |
| 検査レポート全体 | `POST /v1/patients/{id}/labs/import` | `Observation` (laboratory) | LOINC where known, the lab's own code otherwise |
| 服用またはスキップされた用量、予防接種、アレルギー、処置、レポート、ケアプラン、目標、紹介、受診、予約、ケアチーム、家族歴、質問票 | `/fhir/R4/{type}` | `MedicationAdministration`, `Immunization`, `AllergyIntolerance`, `Procedure`, `DiagnosticReport`, `CarePlan`, `Goal`, `ServiceRequest`, `Encounter`, `Appointment`, `CareTeam`, `FamilyMemberHistory`, `QuestionnaireResponse` | per [FHIR code systems](https://developers.anpheros.com/ja/guides/fhir-code-systems) |

REST v1 オブジェクトと FHIR リソースは、同じ ID を持つ同じレコードです。すべての v1 オブジェクトは `fhir` 参照を保持しています。

## 医療データの書き込み

```bash
# a lab result with its reference range, linked to the report it came from
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": "4548-4", "display": "Hemoglobin A1c", "category": "laboratory",
  "value": 6.4, "unit": "%", "effective_at": "2026-09-01T08:00:00Z",
  "reference_range": {"low": 4.0, "high": 5.6},
  "derived_from": ["DocumentReference/'$DOC'"], "author_type": "import"
}'
```

- **観測カテゴリ:** `vital-signs`, `laboratory`, `symptom`, `activity`, `survey`, `exam`, `imaging`, `social-history`。
- **複合測定値**（例：血圧）は、`components`（収縮期 `8480-6`、拡張期 `8462-4` をパネル `85354-9` 内で使用します。
- **作成者タイプ:** `patient`, `practitioner`, `device`, `import`, `ai`。指定しない場合、プラットフォームは `import` を記録します。
- **暗記していないコード:** `GET /v1/terminology/loinc?q=hba1c` はバンドルされた LOINC サブセットを検索し、`GET /v1/search?q=metformin` は症状、病状、薬剤のカタログを検索します。表示名なしで記述された観測値は、自動的に LOINC 名が割り当てられます。

## 医療データの読み取り

```bash
curl "https://platform.anpheros.com/v1/patients/$PID/observations?category=laboratory&code=4548-4&from=2026-01-01" -H "Authorization: Bearer $KEY"
curl "https://platform.anpheros.com/v1/patients/$PID/conditions?clinical_status=active" -H "Authorization: Bearer $KEY"
curl "https://platform.anpheros.com/v1/patients/$PID/medications?status=active" -H "Authorization: Bearer $KEY"
curl "https://platform.anpheros.com/v1/patients/$PID/timeline?from=2026-06-01" -H "Authorization: Bearer $KEY"
```

| エンドポイント | フィルター |
|---|---|
| observations | `category`, `code`, `from`, `to` |
| conditions | `clinical_status` |
| medications | `status` |
| documents | `kind` |
| timeline | `from`, `to`, `types` |

リストは `limit` および `cursor` でページングされます。**timeline** は、観察結果、病状、投薬、文書、受診、予約、予防接種、ケアエピソードを 1 つの時系列リストにマージします。これは、患者履歴画面の自然な入力となります。

REST フィルターでカバーされないものについては、FHIR 検索を使用してください: `GET /fhir/R4/Observation?patient=$PID&code=http://loinc.org|4548-4&_sort=-date` ([FHIR プラットフォーム](https://developers.anpheros.com/ja/guides/fhir))。

## トレーシングとデータの修正

- **作成者:** `GET /v1/patients/{id}/provenance/{type}/{resourceId}` — バージョンごとに1つのエントリ。作成者のタイプ、プロジェクト、組織、ソースシステムが含まれます。
- **すべてのバージョン:** `GET /fhir/R4/{type}/{id}/_history`; 誰かの変更を上書きしないように、`If-Match` で更新してください。
- **所有権:** 同意を得れば、他の組織が作成したものを読み取ることができますが、自分のプロジェクトが作成したもののみを変更または削除できます（それ以外の場合は`403`）。
- **削除:** `DELETE /v1/{observations|conditions|medications}/{id}`; `Patient` を削除すると、レコード全体が削除されます。

## ドキュメント

ドキュメントを作成し（アップロード先を取得）、プラットフォーム経由または直接ストレージにバイトをアップロードしてから、最終化します。最終化後、元のドキュメントは変更不可能となり、そのSHA-256ハッシュとサイズが記録されます。ファイルあたり最大25 MiBです。

## 関連情報

- [医療データの正規化方法](https://developers.anpheros.com/ja/guides/normalize-medical-data): コード、単位、日付、重複、検証
- [医療データ来歴の説明](https://developers.anpheros.com/guides/medical-data-provenance): 誰が何を書き、どのように記録するか
- [Healthcare API](https://developers.anpheros.com/ja/guides/healthcare-api)
- [患者の診療記録](https://developers.anpheros.com/ja/guides/patient-medical-record)
- [ヘルスケアアプリの構築](https://developers.anpheros.com/ja/guides/build-a-healthcare-app)
- [APIリファレンス (OpenAPI)](https://developers.anpheros.com/docs) · [はじめに](https://developers.anpheros.com/ja/guides/getting-started)
