Chuyển đến nội dung chính

レッスン 2: FHIR R5 の概要 - アーキテクチャと設計原則

FHIR アーキテクチャ (リソース、データ型、拡張性、RESTful API、メッセージング、ドキュメント)、80/20 設計原則、FHIR 成熟度モデル (FMM)、FHIR R4 と R5 の比較、仕様内のモジュール。

🏗️ アーキテクチャ — レッスン 2 レッスン 2: FHIR R5 の概要 - アーキテクチャと 設計原則

HL7 FHIR - 基本から高度な医療データ標準

パート 1: HL7 と FHIR プラットフォーム

xdev.asia

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 には多くの改善が加えられています。

特長R4R5
定期購入条件ベースのサブスクリプショントピックベースの購読 (サブスクリプショントピック)
ワークフロー基本的なタスク新しいトランスポート リソース、改善されたワークフロー パターン
科学的根拠に基づいた医学制限事項新しい証拠、証拠変数、アーティファクト評価
新しいリソース—許可、在庫項目、在庫レポート、栄養摂取量
観察コンポーネントベースの改善がトリガーされ、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 つの重要なルール:

  1. 受信側システムはリソースを読み取ることができなければなりません 拡張機能がわからなくても(丁寧な対応)

  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 操作をテストします。