1. FHIRの全体的なアーキテクチャ
FHIR は 1 つとして設計されています プラットフォーム。プラットフォーム — 単なるデータ標準ではなく、健康情報交換のための完全なエコシステムです。 FHIR アーキテクチャには次の層が含まれています。
建築床
┌─────────────────────────────────────────┐
│ Implementation Guides (IGs) │ ← Tùy chỉnh cho ngữ cảnh
├─────────────────────────────────────────┤
│ Profiles / Extensions / Terminologies │ ← Ràng buộc & mở rộng
├─────────────────────────────────────────┤
│ Exchange (REST / Messaging / Docs) │ ← Cách trao đổi dữ liệu
├─────────────────────────────────────────┤
│ Resources (~157 loại) │ ← Đơn vị dữ liệu
├─────────────────────────────────────────┤
│ Data Types (Primitive/Complex) │ ← Kiểu dữ liệu
├─────────────────────────────────────────┤
│ Foundation (Infrastructure) │ ← Nền tảng chung
└─────────────────────────────────────────┘
2. リソース — FHIR の基本単位
FHIR では、すべては次のように表現されます。 リソース。リソースは、リレーショナル データベースの「テーブル」のような基本的な構成要素ですが、はるかに柔軟です。
すべてのリソースの共通の特徴
すべてのリソースには次のものが含まれます。
ID — サーバー内で一意の論理識別子
メタ。メタ — メタデータ (versionId、lastUpdated、プロファイル、セキュリティ、タグ)
暗黙的なルール — 特別な処理ルールへの参照 (めったに使用されない)
言語。言語 — リソースの言語
ほとんどのリソースは、 ドメインリソース (リソースから継承)、以下を追加します。
テキスト。テキスト — ナラティブ (人間が読める HTML 部分)
含まれています。含まれている — 内部に埋め込まれたリソース
拡張子 — 拡張データ
修飾子拡張子 — 拡張機能はリソースのセマンティクスを変更します
例: 患者リソース (JSON)
{
"resourceType": "Patient",
"id": "example-vn",
"meta": {
"versionId": "1",
"lastUpdated": "2026-03-30T10:00:00Z"
},
"text": {
"status": "generated",
"div": "<div xmlns=\"http://www.w3.org/1999/xhtml\">Nguyễn Văn A, Nam, 15/03/1985</div>"
},
"identifier": [
{
"system": "urn:oid:2.16.840.1.113883.4.56.10",
"value": "001085012345"
}
],
"active": true,
"name": [
{
"use": "official",
"family": "Nguyễn",
"given": ["Văn", "A"]
}
],
"gender": "male",
"birthDate": "1985-03-15",
"address": [
{
"use": "home",
"line": ["123 Lê Lợi"],
"city": "Thành phố Hồ Chí Minh",
"country": "VN"
}
]
}
157 リソースはモジュールごとに分類されています
FHIR R5 には、 157 種類のリソース、モジュールに編成されています:
| モジュール | 説明 | 代表的なリソース |
|---|---|---|
| 財団 | 基本インフラ | バンドル、OperationOutcome、バイナリ、パラメータ |
| 適合性 | 適合仕様 | CapabilityStatement、StructureDefinition、SearchParameter |
| 用語 | 用語 | コードシステム、バリューセット、コンセプトマップ |
| セキュリティ | セキュリティ | 来歴、監査イベント、同意、許可 |
| 管理 | 管理 | 患者、開業医、組織、場所、出会い |
| 臨床 | 臨床 | 状態、観察、アレルギー不耐症、手順 |
| 診断 | 診断 | 診断レポート、標本、画像研究 |
| 薬 | 医学 | 投薬、投薬要請、予防接種 |
| ワークフロー | プロセス | タスク、予定、スケジュール、サービスリクエスト |
| 財務 | 金融 | 請求、補償範囲、特典の説明 |
3. 80/20 設計原則
FHIR は次の哲学を適用します。 基本標準で一般的なユースケースの 80% に対応し、拡張機能とプロファイルを通じて残りの 20% を許可します。。
これは次のことを意味します:
基本的なリソースは非常にシンプルです — あらゆる特殊なケースを詰め込もうとしないでください
拡張機構 — さらに多くのデータが必要な場合は、標準の変更ではなく拡張機能を使用します
プロフィール — より厳しい制約が必要な場合は、StructureDefinition を使用します。
たとえば、基本的なリソース患者には「CCCD 番号」フィールドがありません (ベトナムでのみ使用されます) が、内線番号を使用して追加するか、次のコマンドを使用します。 識別子 適切なシステムで。
4. 3 つのデータ交換パラダイム
FHIR は、さまざまな状況に適した 3 つのデータ交換方法をサポートしています。
4.1. RESTful API
HTTP メソッドに基づく最も一般的な方法は次のとおりです。
# Đọc thông tin bệnh nhân
GET /Patient/123
# Tạo bệnh nhân mới
POST /Patient
Content-Type: application/fhir+json
{...}
# Cập nhật
PUT /Patient/123
{...}
# Tìm kiếm
GET /Patient?family=Nguyen&birthdate=1985-03-15
# Xóa
DELETE /Patient/123
次の場合に使用します。 Web/モバイル アプリケーション、患者ポータル、データ クエリ、SMART アプリ。
4.2.メッセージング
システム間でのメッセージの送信 (HL7 v2 に似ていますが、FHIR リソースを使用します):
{
"resourceType": "Bundle",
"type": "message",
"entry": [
{
"resource": {
"resourceType": "MessageHeader",
"eventCoding": {
"system": "http://example.org/events",
"code": "admit-notification"
},
"source": { "endpoint": "http://hospital-a.vn/fhir" }
}
},
{
"resource": {
"resourceType": "Patient",
"id": "123"
}
}
]
}
次の場合に使用します。 イベント駆動型の交換 (入院、退院、検査結果)、レガシー システムとの統合。
4.3.書類
構造化された医療文書を作成します (CDA に似ていますが、FHIR を使用します)。
{
"resourceType": "Bundle",
"type": "document",
"entry": [
{
"resource": {
"resourceType": "Composition",
"title": "Tóm tắt xuất viện",
"type": {
"coding": [{
"system": "http://loinc.org",
"code": "18842-5",
"display": "Discharge summary"
}]
},
"section": [...]
}
}
]
}
次の場合に使用します。 退院書類、病歴概要、紹介状、国際患者概要。
5. FHIR 成熟度モデル (FMM)
FHIR の各リソースには、0 から標準 (N) までの成熟度レベル (FMM) があります。
| FMM | レベル | 意味 |
|---|---|---|
| 0 | 草案 | 提案されたばかりでまだ実装されていない |
| 1 | ドラフト (テスト済み) | 少なくとも 1 つの実装があります |
| 2 | 試用 | コネクタソンでテスト済み |
| 3 | トライアル使用(検証済み) | 実践的な事例も多数あります |
| 4 | 試用(同意) | 品質基準を満たし、標準の準備 |
| 5 | トライアルユース(公開済み) | 2 回以上の投票サイクルで公開 |
| N | 規範的 | 安定した下位互換性 - 変更なし |
いくつかのリソースに到達しました 規範的 R5:
患者 (N)、 観察 (N)、 バンドル (N)、 能力に関する声明 (ん)
構造定義 (N)、 値セット (N)、 コードシステム (ん)
作戦結果 (N)、 バイナリ (N)、 パラメータ (ん)
プロジェクトのリソースを選択する場合、安定性を確保するために、FMM ≥ 3 または Normal のリソースを優先する必要があります。
6. FHIR R4 と R5 — 重要な変更点
R4 は依然として最もよく使用されているバージョンです (米国の多くの義務が R4 に基づいているため)。 R5 には多くの改善が加えられています。
| 特長 | R4 | R5 |
|---|---|---|
| 定期購入 | 条件ベースのサブスクリプション | トピックベースの購読 (サブスクリプショントピック) |
| ワークフロー | 基本的なタスク | 新しいトランスポート リソース、改善されたワークフロー パターン |
| 科学的根拠に基づいた医学 | 制限事項 | 新しい証拠、証拠変数、アーティファクト評価 |
| 新しいリソース | — | 許可、在庫項目、在庫レポート、栄養摂取量 |
| 観察 | コンポーネントベースの | 改善がトリガーされ、Canonical がインスタンス化されます |
| 検索 | 標準 | _filter、_sort の機能強化 |
| 種類 | — | CodeableReference(新規)、整数64 |
推奨事項:
米国の新しいプロジェクト: を使用する R4 (米国の中核的義務のため)
新しい拘束力のないプロジェクト: 考慮事項 R5 (より新しく、より多くの機能)
ベトナムでのプロジェクト: R4 または R5 すべて適切です(具体的な義務はまだありません)
7. FHIR仕様のモジュール
FHIR 仕様は主要モジュールで構成されています。
基礎モジュール
技術的基盤: リソース定義、データ型、拡張機能、REST API、メッセージング、ドキュメント、ナラティブ、コンパートメント。
実装者サポートモジュール
導入サポート: ダウンロード、テストツール、導入ガイドレジストリ、検証。
セキュリティ&プライバシーモジュール
セキュリティ: 認可、認証、セキュリティラベル、監査、同意、来歴。
適合モジュール
準拠仕様: CapabilityStatement、StructureDefinition、OperationDefinition、SearchParameter、実装ガイド。
用語モジュール
用語: CodeSystem、ValueSet、ConceptMap、NamingSystem、用語操作 ($validate-code、$expand、$lookup、$translate)。
管理モジュール
管理管理: 患者、医師、組織、場所、HealthcareService、エンドポイント、デバイス。
臨床モジュール
臨床モジュールには、臨床概要 (状態、アレルギー不耐症、手順)、診断 (観察、診断レポート)、投薬、ケア提供 (ケアプラン、目標)、ワークフロー (タスク、予約) が含まれます。
財務モジュール
医療金融: 補償範囲、請求、給付金の説明、アカウント、請求書。
8. リソース参照 — リソース間のリンク
FHIR 内のリソースは相互にリンクされています 参考文献。これは医療データ ネットワークを構築するための最も重要なメカニズムです。
{
"resourceType": "Observation",
"id": "blood-pressure",
"status": "final",
"code": {
"coding": [{
"system": "http://loinc.org",
"code": "85354-9",
"display": "Blood pressure panel"
}]
},
"subject": {
"reference": "Patient/example-vn",
"display": "Nguyễn Văn A"
},
"encounter": {
"reference": "Encounter/visit-2026-03-30"
},
"performer": [{
"reference": "Practitioner/dr-tran"
}],
"effectiveDateTime": "2026-03-30T09:00:00+07:00",
"component": [
{
"code": {
"coding": [{
"system": "http://loinc.org",
"code": "8480-6",
"display": "Systolic blood pressure"
}]
},
"valueQuantity": {
"value": 120,
"unit": "mmHg",
"system": "http://unitsofmeasure.org",
"code": "mm[Hg]"
}
},
{
"code": {
"coding": [{
"system": "http://loinc.org",
"code": "8462-4",
"display": "Diastolic blood pressure"
}]
},
"valueQuantity": {
"value": 80,
"unit": "mmHg",
"system": "http://unitsofmeasure.org",
"code": "mm[Hg]"
}
}
]
}
上の例では:
主題。件名→ へのリンク 患者出会い。出会い→ へのリンク 出会い (訪問)出演者→ へのリンク 開業医 (医師の措置)
9. 物語 — 人間が読める部分
各 DomainResource にはセクションを含めることができます 物語 — HTML は、人間が読むことができるリソース コンテンツを表します。これは重要な機能です 臨床安全性:
{
"text": {
"status": "generated",
"div": "<div xmlns='http://www.w3.org/1999/xhtml'><p>Huyết áp: 120/80 mmHg</p><p>Bệnh nhân: Nguyễn Văn A</p><p>Ngày đo: 30/03/2026</p></div>"
}
}
ナラティブステータスは次のとおりです。
生成された— 構造化データから作成拡張子— 拡張機能からの情報が含まれています追加。追加の— 構造化データには含まれていない追加情報が含まれています空の— コンテンツなし (含まれるリソース内)
10. 拡張性 — FHIR の拡張性メカニズム
これは FHIR の最も強力な機能の 1 つです。標準にない追加データが必要な場合は、それを使用します 拡張機能:
{
"resourceType": "Patient",
"id": "vn-patient",
"extension": [
{
"url": "http://fhir.vn/StructureDefinition/patient-ethnicity",
"valueCodeableConcept": {
"coding": [{
"system": "http://fhir.vn/CodeSystem/vn-ethnicity",
"code": "01",
"display": "Kinh"
}]
}
},
{
"url": "http://fhir.vn/StructureDefinition/patient-cccd",
"valueString": "001085012345"
}
],
"name": [{"family": "Nguyễn", "given": ["Văn", "A"]}]
}
2 つの重要なルール:
受信側システムはリソースを読み取ることができなければなりません 拡張機能がわからなくても(丁寧な対応)
拡張機能はセマンティクスを変更してはなりません 基本要素 (modifierExtension を除く)
11. まとめ
この記事では、次のことを学びました。
FHIR アーキテクチャ 多くのレイヤーが含まれています: Foundation → Data Type → Resources → Exchange → Profile → IG
リソース 基本ユニットとして、FHIR R5 には 157 のリソース タイプがあります。
80/20 ルール: 基本標準で 80% 解決、拡張機能で 20%
3つのパラダイム: REST (最も人気のある)、メッセージング、ドキュメント
FMM: 成熟度レベルを評価し、リソースの優先順位を付けます。
R4 対 R5: R4 はより安定しており、R5 には多くの新機能があります
参考文献: リソースをデータ ネットワークにリンクする方法
物語: 臨床安全のための人が読める HTML セクション
拡張性: 標準を壊すことなく柔軟な拡張メカニズム
次回のレッスンでは、 環境構築の練習をする: HAPI FHIR サーバー、Postman、FHIR ツール - 最初の CRUD 操作をテストします。