# バージョニングと非推奨化

> FHIR R4 および REST v1 インターフェース、Webhook ペイロード、SDK の変更方法、および破壊的変更の通知方法について。

Source: https://developers.anpheros.com/ja/guides/versioning

- `/fhir/R4` の **FHIR R4** および `/v1` の **REST v1** は安定したインターフェースです。追加的な変更（新しいフィールド、新しいリソースタイプ、新しいエンドポイント、新しいイベントタイプ）は通知なしでリリースされます。SDK および `docs/openapi.json` は同じコミットで再生成され、そうでない場合はテストが失敗します。
- **破壊的変更**には新しいプレフィックス（`/v2`）が付けられ、少なくとも **6ヶ月間** 並行稼働します。古いプレフィックスはこの期間中、`Deprecation` および `Sunset` ヘッダーで応答します。
- **Webhook ペイロード**は `type` を持ちます。新しいタイプは追加的なものです。`*` を購読しているユーザーは、不明なタイプを無視する必要があります。
- **SDK** は semver に従います。メジャーな SDK バージョンでは、廃止された API プレフィックスが削除される場合があります。
- **セキュリティ修正**は、バージョンアップなしで検証（例：バリューセット）を厳格化する場合があります。このような厳格化は、アクティブな脆弱性をクローズしない限り、30日間の通知をもって変更履歴に記載されます。

## Changelog

### 2026年10月14日 (追加: 同意画面のブランディング、チームのシングルサインオン)

- チームのシングルサインオン: 組織をSAMLまたはOIDCプロバイダーおよびそのメールドメイン (`PUT /admin/organizations/{id}/sso`、プラットフォーム管理者) にリンクでき、メンバーにシングルサインオンを必須にできます。`GET /admin/sso/discover?email=` (認証なし) は、職場メールのプロバイダーを返します。`OrganizationOut` は `sso_provider_id`、`sso_domains`、`sso_required` を取得します。[チームのシングルサインオン](https://developers.anpheros.com/ja/guides/team-sso) を参照してください。

- `PUT /admin/applications/{id}/branding` は、アプリケーションのロゴ (PNG/JPEG/WebP データ URI、最大64 KB) およびアクセントカラー (白文字とのコントラストが4.5:1以上) を設定します。これはホストされた同意画面に表示されます。`ApplicationOut` は `logo` および `brand_color` を取得します。[認証とOAuth](auth-and-oauth.md#your-brand-on-the-consent-page) を参照してください。
- 価格ページおよび[価格](https://developers.anpheros.com/ja/guides/pricing): プライベートベータに関する注記。本番環境は、検証と署名済みDPAの後に開始され、プランはメールで請求され、割り当てはまだ自動的に強制されません。

### 2026年10月14日 (エラー形式と検査結果のマッピング修正)
- 検査結果のインポート: *Uree* / *Urea* は、*BUN* / *Urea nitrogen* (mmol/L単位の`14937-7`) に保持される尿素窒素 (`3094-0`) ではなく、尿素 (`3091-6`; mmol/L単位の`22664-7`) にマッピングされます。値は変換されません。古いマッピングを使用していた本番データはありません。
- 検査結果のインポート: レポートにメソッドがあるLDLは、計算LDL (`13457-7`) または直接LDL (`18262-6`) にマッピングされます。メソッドがない場合は `2089-1` のままです。*Direct* は現在修飾子であるため、*Bilirubina directa* はもはや総ビリルビン (`1975-2`) にマッピングされません。検査結果のコードが保持されます。古いマッピングを使用していた本番データはありません。
- `/v1` の下にある不明なエンドポイントとメソッドは、`{"detail": "Not Found"}` の代わりに、文書化されたエラー形式 (`404 not-found`、`405 not-supported`) で応答します。無効なクエリパラメータと `/v1` の下のIPあたりのレート制限は、`/fhir/R4` の下で (変更なし) `OperationOutcome` の代わりに `{"error": …}` を使用します。`/v1` の下の予期しない `500` は `error.type = "exception"` を運びます (以前は `error.code` を運んでいました)。
- 検査結果のインポート: ローカルまたは非LOINCコーディングシステムを持つHL7 v2の結果は、`urn:anpheros:lab-code` (以前は`urn:hl7:<system>`、例: `urn:hl7:l`) の下で検査結果のコードを保持します。既に保存されている結果は変更されません。
- 検査結果のインポート: 英語のLOINC名と同義語が認識されます (*Hemoglobin A1c*, *Glycated hemoglobin*, *HDL cholesterol*, *LDL cholesterol*, *Haemoglobin*)。単独の *Glucose* は、*Glicemie* のように血清または血漿 (2345-7) にマッピングされます。修飾子を持つ名前で、コンセプトが欠落しているもの (*urine*, *non-HDL*…) は、関連するテストにマッチしなくなりました。この変更前は、LOINCコードなしで送信された *HDL cholesterol* および *LDL cholesterol* は総コレステロール (2093-3) として保存されていました。
- 検査結果のインポート: レポートの再送信は、LOINCマッピングが変更された場合に結果を重複しなくなりました。新しい結果は、レポート (レポートID、レポート上の名前とコード、日付、値、単位) から構築された2番目の識別子、`urn:anpheros:lab-import:v2` を運びます。既存の識別子は変更されず、以前の結果は名前、日付、値、単位、レポートIDによって認識されます。レポート上で名前が異なるがLOINCコード、日付、値が同じ2つの結果 (*Glucose* と *Glicemie* の例) は、もはや1つにマージされません。

### 2026年10月13日 (追加、契約変更なし)
- 同意は、1つの共有ルールで、すべての派生ビュー (`/v1/context`、`/v1/patients/{id}/timeline`、ポータル、`$everything`) で強制されます。要求されたがカバーされていないセクションは、コンテキストの`omitted` に表示されます。
- OpenAPIは、操作ごとの`security` およびすべての操作のレスポンススキーマに加えて、`servers`、`securitySchemes` (`bearer`、`apiKey`、`oauth2`、`firebase`) を宣言するようになりました。生成されたクライアントは型指定されたレスポンスを取得します。
- すべての`401` は `WWW-Authenticate: Bearer` を運びます。
- CapabilityStatement は、SMART (`oauth-uris` 拡張、`SMART-on-FHIR` サービス) および IPS 実装ガイドを広告します。
- プロキシの背後にあるリダイレクトは `https://` を保持します。
- `python-multipart` 0.0.20 → 0.0.32; `pip-audit` は既知の脆弱性でビルドをブロックします。
- Webhook URL は公開 HTTPS である必要があります。ローカルホスト (以前はサンドボックスで受け入れられていましたが、配信されませんでした)、プライベートおよび予約済みアドレス、およびそれらに解決する名前は、`url` で 400 を返して登録時に拒否されます。配信は、チェックしたばかりのIPアドレスにのみ接続します (DNSリバインディング)。

## 適合性強制 (2026年9月23日発表)

IPS / HL7 Europe の検査要件を満たさない書き込みは、現在 `201`/`200` を `Anpheros-Conformance` ヘッダーと共に返します。観察期間 (予定: この通知から60〜90日) の後、プラットフォームは**ブロック**モードに切り替わります。そのような書き込みは、すべてのギャップをリストした `OperationOutcome` を持つ `422` で応答します。より多くの時間が必要なインテグレーターは、移行期間中にプロジェクトごとに免除を受けることができます。2026年9月23日にリソースタイプが追加されました: `Procedure`, `DiagnosticReport`, `CarePlan`, `FamilyMemberHistory`, `ServiceRequest`, `Goal` (追加)。
