# AIエージェント向けヘルスパターン（ベータ版）

> 患者の記録で何が変更され、何が再発したかを、固定された統計的ルールによって計算します。個人の通常のレベルからのトレンド、逸脱、および症状の再発。それぞれに期間、証拠、および制限があります。診断ではありません。

Source: https://developers.anpheros.com/ja/guides/health-patterns

**Anpherosは、固定された統計的ルールによって、患者の記録で何が変更され、何が再発したかを計算し、各所見を期間、その背後にあるリソース、メソッドバージョン、および制限とともにアプリケーションまたはAIエージェントに提供します。** モデルは、少数の数値からトレンドを推測する必要はもうありません。トレンド、その周囲の不確実性、および引用するためのデータが得られます。

ベータ版。サンドボックスでは、任意のサンドボックス認証情報（`sk_test_…`キーおよびサンドボックスOAuth接続）で機能します。本番環境のレコードでは、個人のOAuth同意の下でのみ実行され、これには個別の`anpheros/patterns`権限が含まれます。本番環境APIキーは403エラーになります。

## 何を検出するか

| タイプ | 答える質問 | メソッド |
|---|---|---|
| `trend` | 測定値はウィンドウ内で上昇または下降していますか？ | Theil–Sen スロープと Mann–Kendall を 1 日あたり 1 つの値に適用 (密な監視データの場合は週次中央値)、隣接する日が類似している場合は補正 |
| `trend` (`change_between_results`) | 2 回から 5 回の結果がある検査はどのように変化しましたか？ | 最初と最後の結果。最新の結果とレポートの参照範囲を比較。テストではなく記述 |
| `trend` (`event_rate_change`) | 症状はより頻繁またはまれに記録されていますか？ | 症状があった日数 / その人が何かを記録した日数 (過去 30 日間対その前の 90 日間)、正確確率検定 |
| `baseline_deviation` | この人にとって先週は異常ですか？ | 過去 7 日間対 8～60 日目、Mann–Whitney 検定または自己相関調整済み平均差 |
| `recurrence` | 症状のエピソードは定期的な間隔で再発しますか？ | エピソード開始間の間隔、モンテカルロ法によるシミュレーション対ランダムに配置されたエピソード |
| `association` (`around_medication_start`, sandbox) | 薬の開始から、症状はより頻繁またはまれに記録されていますか？ | 薬の開始から 30 日間の症状があった日数 / 薬が有効だった日数 (最大 90 日前の期間と比較)、正確確率検定 |
| `association` (`after_short_sleep`, sandbox) | 睡眠時間が 6 時間未満だった日に症状はより頻繁に記録されていますか？ | 睡眠が測定され、その人が記録した日。短い夜対長い夜、Fisher の正確確率検定 |
| `convergence` (`recent_changes_together`, sandbox) | 最近の同じ期間にいくつかのことが変化しましたか？ | 新しいテストなし: 統計的に裏付けられた少なくとも 2 つの最近の変化 (異常な週、症状の頻度の増減) をグループ化します。それらが一緒に発生したことのみを示します |

1 回の実行におけるすべてのテストは一緒に補正されます (Benjamini–Hochberg)。検出は、補正された q 値が 0.05 未満 **かつ** 変化がその測定値のしきい値以上である場合にのみ `statistically_supported` となります。

## これは何かではない

- **診断ではありません。** 検出結果は記録を記述するものであり、病名を付けたり治療法の変更を推奨したりすることはありません。すべての検出結果には `safety.not_a_diagnosis = true` と `safety.causal_claim = false` が含まれます。
- **原因ではありません。** 新しい薬剤の後に発生した変化や、一緒に記録された2つの事象は、一方の原因が他方である証拠にはなりません。関連性は、2つの事象がほぼ同時に発生したことを示すだけであり、それぞれに `confounding_possible` と `not_causal` が含まれます。また、症状に対してテストされるのは薬剤開始と睡眠のみであり、すべてのペアがテストされるわけではありません。現時点ではサンドボックス認証情報のみを使用します。
- **AIモデルではなく、臨床レビューもまだ行われていません。** すべての数値は、固定されたバージョン管理された統計ルールから来ており、AIモデルがデータを分析することはありません。意味のある変化のしきい値はAIの支援を受けて設定されており、まだ臨床医によるレビューは行われていません。各検出結果には `review.thresholds_reviewed_by_clinician` でその旨が記載されています。エンジンは、既知のパターンが埋め込まれた合成患者で検証されており、埋め込まれたパターンを見つけ、何もなかった場合は沈黙を保ちます。これは臨床的検証ではありません。

## 試してみる

各サンドボックスプロジェクトには30人の合成患者がおり、そのうち6人には意図的にパターンが埋め込まれています。`GET /fhir/R4/Patient?identifier=https://anpheros.com/fhir/sid/sandbox-persona|<key>` を持つ患者を見つけてください。

| 患者 | 埋め込まれた内容 | エンジンが報告するもの |
|---|---|---|
| p01 Andrei Popescu | 毎日の自宅血圧、6ヶ月で約8/5 mmHg低下 | 収縮期 (8480-6) および拡張期 (8462-4) の`trend.decreasing` |
| p06 Giulia Rossi | 7日ごとに頭痛（±1日） | 頭痛 (R51) の`recurrence.intervals` |
| p17 Ciarán Murphy | 過去30日の約半分の日に倦怠感、それ以前は12日に1日程度 | 倦怠感 (R53) の`frequency.increased` |
| p19 Felix Gruber | 過去1週間、時計からの安静時心拍数が通常より約9 bpm高い | 安静時心拍数 (40443-4) の`baseline.higher` |
| p20 Ivana Horvat | 時計からの安静時心拍数、6ヶ月で約16 bpm低下 | 安静時心拍数 (40443-4) の`trend.decreasing` |
| p30 Jan Kowalczyk | 密な時計と自宅のデータで何も埋め込まれていない | サポートされていない所見: エンジンは沈黙したまま |

2026年10月16日より前に作成されたプロジェクトは、ダッシュボードから合成患者をリセットするとこれらのパターンが適用されます。リセットは、患者に対して行われたすべての変更を上書きします。

```bash
curl -s https://platform.anpheros.com/v1/patients/$PATIENT/patterns?window_days=180 \
  -H "Authorization: Bearer $ANPHEROS_KEY"
```

TypeScript SDK (`@anpheros/sdk` 0.2.0 以降) を使用する場合:

```ts
const run = await anpheros.patterns.run(patientId, { window_days: 180, min_strength: 'moderate' });
for (const f of run.findings) console.log(f.summary_text, f.strength, f.limitations.map(l => l.code));
```

MCPサーバーを使用する場合、エージェントに「過去6ヶ月間でこの患者の記録に何が変更されましたか？」と尋ねてください。これにより`get_health_patterns`が呼び出され、その後`get_pattern_evidence`、`get_series`、`compare_periods`に続くことができます。`POST /v1/context`は、変更や関係に関する質問、または`patterns`の必要性を尋ねた場合に、`patterns`セクションを追加します。

## エンドポイント

| エンドポイント | 返却されるもの |
|---|---|
| `GET /v1/patients/{id}/patterns` | 実行結果：算出された所見、算出できなかった理由、除外された同意事項、フィルタ `window_days` (30–730)、`end`、`types`、`min_strength` |
| `GET /v1/patients/{id}/patterns/{finding_id}` | 1つの所見（同じウィンドウで再計算されたもの） |
| `GET /v1/patients/{id}/patterns/{finding_id}/evidence` | ページングされた、すべてのサポートリソース |
| `GET /v1/patients/{id}/series?code=…` | 1日あたりの値としての1つの測定値（カバレッジ、ギャップ、ソース変更を含む） |
| `POST /v1/patients/{id}/patterns/compare` | 選択した2つの期間における1つの測定値 |

## 所見の読み取り

- `summary_text`: 表示または引用しても安全な、プレーンな1文です。
- `strength`: `strong`、`moderate`、`weak`、または`not_tested`。弱く、テストされていない所見は、証拠ではなく説明です。
- `window`、`comparison_window`: 分析された期間。
- `evidence` (最大20件、期間中に分散) および `evidence_total`: 所見の背後にあるリソース。バージョン、日付、値、および作成者タイプが含まれます。
- `limitations`: コード化されており、テキストが付随します。所見とともに表示してください。
- `review`: 臨床医がしきい値 (現時点では`false`) をレビューしたかどうか、およびそれらがどこから来たか。
- `method`、`engine_version`、`input_fingerprint`: 同じデータ、構成、およびバージョンは、同じ結果とIDをもたらします。

## 知っておくべきルール

- **まず同意。** OAuthグラントの下では、エンジンはグラントが許可したもののみを読み取ります。読み取れなかったものは`omitted`にリストされますが、コンテンツはありません。
- **ID。** 患者はプロジェクト固有のペアワイズIDで表示されます。検索IDはプロジェクトごとに導出されます。レコードが変更されると、所見には新しいIDが付与され、古いIDは404を返します。
- **時間。** 読み取り時間に含まれる明示的なオフセット（`2026-10-16T00:30:00+03:00`）は、その人の現地時間としてカウントされます。UTC（`Z`）またはオフセットなしの時間は、UTCの日として扱われます。各所見は、`time_basis`（`record_offsets`、`partly_local`または`local_time_unknown`）でどちらであるかを示します。ローカル時間はサンドボックスおよび本番環境のレコードで使用されます。現時点では、時刻パターンは計算されていません。
- **除外。** AIによって記述された値、entered-in-errorとマークされた結果、および月のみが判明している日付は使用されず、カウントされます。
- **制限。** 1分あたりのパターン実行数は、資格情報ごとに30回です。これは、通常の1分あたり600リクエストに加えて適用されます。

## よくある質問

### 言語モデルを使用していますか？
いいえ。すべての数値は、固定されたバージョン管理された統計的手法から取得されます。ホスト型またはローカルのいずれかのモデルで結果を読むことができます。

### データにおける明確な変更が「弱い」とマークされるのはなぜですか？
証拠が、実行中のすべてのテストの補正を生き残らなかった場合、系列が短いかノイズが多い場合、または変更がその測定値のしきい値を下回っている場合です。この所見は、記録が示す内容を依然として記述しています。

### 本番稼働中のレコードで動作しますか？
はい、2026年10月16日から動作しますが、患者のOAuth同意が必要であり、それには個別の`anpheros/patterns`権限が含まれている必要があります。この権限は、同意画面に独自の行として表示されます。`patient/…`スコープの隣にこのスコープをリクエストしてください。これがない同意、および本番稼働中のAPIキーは403エラーとなります。

## 関連情報

- [AIエージェント向けFHIR MCPサーバー](https://developers.anpheros.com/ja/guides/mcp)
- [LLMアプリケーションとヘルスケアデータ](https://developers.anpheros.com/ja/guides/llm-healthcare-data)
- [AIエージェントと医療データ](https://developers.anpheros.com/ja/guides/ai-agents-medical-data)
- [患者同意に基づくヘルスケアAPI](https://developers.anpheros.com/ja/guides/healthcare-api-patient-consent)
