1. FHIR R6 ロードマップ
FHIR R5 (2023) が現在の標準バージョンです。 R6 は多くの改良を加えて開発されています。
| バージョン | 年 | ステータス |
|---|---|---|
| DSTU1 | 2014年 | レガシー |
| DSTU2 | 2015年 | レガシー |
| STU3 | 2017年 | レガシー |
| R4 | 2019年 | 標準(最も広く使用されている) |
| R4B | 2022年 | 規範的 |
| R5 | 2023年 | 規範(現在) |
| R6 | ~2026年 | 開発中 |
R6が利用可能になる予定です
- サブスクリプションの改善 — トピックベースのサブスクリプションはより完全です
- 強化された検索 — 複合検索パラメータ、GraphQL の改善
- AI/MLの統合 — モデル推論用の標準化されたリソース
- デバイス/IoT — 医療機器とウェアラブルのリソースを改善する
- バージョン間の互換性 — ツールはバージョンの移行に適しています
- パフォーマンス — バイナリリソースのストリーミング、ページネーションの改善
2. FHIR と AI/ML
CDS フック + AI — 臨床意思決定のサポート
┌──────────┐ CDS Hook ┌──────────────┐ ┌──────────┐
│ EHR │───────────────▶│ CDS Server │────▶│ AI/ML │
│ (trigger │ prefetch │ (mediator) │ │ Model │
│ event) │◀───────────────│ │◀────│(TF/PyTorch)│
└──────────┘ CDS Card └──────────────┘ └──────────┘
// CDS Hook request: patient-view → AI risk prediction
{
"hook": "patient-view",
"hookInstance": "abc-123",
"context": {
"userId": "Practitioner/practitioner-001",
"patientId": "patient-001"
},
"prefetch": {
"patient": {
"resourceType": "Patient",
"id": "patient-001",
"gender": "male",
"birthDate": "1960-05-15"
},
"conditions": {
"resourceType": "Bundle",
"entry": [
{
"resource": {
"resourceType": "Condition",
"code": {"coding": [{"system": "http://snomed.info/sct", "code": "44054006", "display": "Diabetes mellitus type 2"}]}
}
}
]
},
"observations": {
"resourceType": "Bundle",
"entry": [
{
"resource": {
"resourceType": "Observation",
"code": {"coding": [{"system": "http://loinc.org", "code": "4548-4", "display": "HbA1c"}]},
"valueQuantity": {"value": 8.5, "unit": "%"}
}
}
]
}
}
}
// CDS Response: AI prediction card
{
"cards": [
{
"summary": "Nguy cơ biến chứng tim mạch cao",
"detail": "AI model dự đoán nguy cơ biến chứng tim mạch trong 5 năm: **42%** (dựa trên HbA1c 8.5%, ĐTĐ type 2, nam, 64 tuổi). Khuyến nghị tăng cường kiểm soát HbA1c < 7%.",
"indicator": "warning",
"source": {
"label": "Cardiovascular Risk AI Model v2.1",
"url": "https://ai.hospital.vn/models/cv-risk"
},
"suggestions": [
{
"label": "Tạo y lệnh xét nghiệm Lipid Panel",
"actions": [
{
"type": "create",
"resource": {
"resourceType": "ServiceRequest",
"status": "draft",
"intent": "proposal",
"code": {"coding": [{"system": "http://loinc.org", "code": "24331-1", "display": "Lipid Panel"}]},
"subject": {"reference": "Patient/patient-001"}
}
}
]
}
]
}
]
}
FHIR → ML パイプライン
# Extract FHIR data → Train ML model
import requests
import pandas as pd
from sklearn.ensemble import GradientBoostingClassifier
FHIR_BASE = "http://localhost:8080/fhir"
def extract_training_data():
"""Trích xuất dữ liệu từ FHIR Server cho ML training"""
# Bulk export
patients_bundle = requests.get(
f"{FHIR_BASE}/Patient?_count=1000"
).json()
records = []
for entry in patients_bundle.get("entry", []):
patient = entry["resource"]
pid = patient["id"]
# Lấy Observations
obs_bundle = requests.get(
f"{FHIR_BASE}/Observation?subject=Patient/{pid}&code=4548-4"
).json()
# Lấy Conditions
cond_bundle = requests.get(
f"{FHIR_BASE}/Condition?subject=Patient/{pid}"
).json()
record = {
"patient_id": pid,
"age": calculate_age(patient.get("birthDate")),
"gender": 1 if patient.get("gender") == "male" else 0,
"hba1c": extract_latest_value(obs_bundle),
"diabetes": has_condition(cond_bundle, "44054006"),
"hypertension": has_condition(cond_bundle, "38341003"),
}
records.append(record)
return pd.DataFrame(records)
# Train model
df = extract_training_data()
X = df[["age", "gender", "hba1c", "diabetes", "hypertension"]]
y = df["cv_event_5yr"] # label từ follow-up data
model = GradientBoostingClassifier()
model.fit(X, y)
3. FHIR ゲノミクス
FHIR は、専門リソースを通じてゲノミクス データをサポートします。
| リソース | 目的 |
|---|---|
| 分子配列 | DNA/RNA/タンパク質配列 |
| 観察(遺伝学) | 遺伝子検査結果 |
| 診断レポート (遺伝学) | 遺伝子検査報告書 |
| リスク評価 | 遺伝的リスクを評価する |
{
"resourceType": "Observation",
"meta": {
"profile": ["http://hl7.org/fhir/StructureDefinition/observation-genetics"]
},
"status": "final",
"category": [
{
"coding": [
{"system": "http://terminology.hl7.org/CodeSystem/observation-category", "code": "laboratory"}
]
}
],
"code": {
"coding": [
{
"system": "http://loinc.org",
"code": "69548-6",
"display": "Genetic variant assessment"
}
]
},
"subject": {"reference": "Patient/patient-001"},
"valueCodeableConcept": {
"coding": [
{
"system": "http://loinc.org",
"code": "LA6703-8",
"display": "Heterozygous"
}
]
},
"component": [
{
"code": {
"coding": [{"system": "http://loinc.org", "code": "48018-6", "display": "Gene studied"}]
},
"valueCodeableConcept": {
"coding": [
{"system": "http://www.genenames.org", "code": "HGNC:1100", "display": "BRCA1"}
]
}
},
{
"code": {
"coding": [{"system": "http://loinc.org", "code": "81252-9", "display": "Discrete genetic variant"}]
},
"valueCodeableConcept": {
"coding": [
{"system": "http://www.ncbi.nlm.nih.gov/clinvar", "code": "37153", "display": "NM_007294.4(BRCA1):c.5266dupC"}
]
}
}
]
}
4. IoT およびウェアラブル向け FHIR
┌──────────────┐ BLE/WiFi ┌──────────────┐ FHIR API ┌──────────────┐
│ Wearable │──────────────▶│ Mobile App │──────────────▶│ FHIR Server │
│ (Apple Watch│ │ (HealthKit) │ │ │
│ Mi Band) │ │ │ │ │
└──────────────┘ └──────────────┘ └──────────────┘
{
"resourceType": "Observation",
"status": "final",
"category": [
{
"coding": [
{"system": "http://terminology.hl7.org/CodeSystem/observation-category", "code": "vital-signs"}
]
}
],
"code": {
"coding": [
{"system": "http://loinc.org", "code": "8867-4", "display": "Heart rate"}
]
},
"subject": {"reference": "Patient/patient-001"},
"effectiveDateTime": "2025-01-15T10:30:00+07:00",
"valueQuantity": {
"value": 72,
"unit": "beats/minute",
"system": "http://unitsofmeasure.org",
"code": "/min"
},
"device": {
"reference": "Device/apple-watch-001",
"display": "Apple Watch Series 9"
},
"method": {
"coding": [
{"system": "http://snomed.info/sct", "code": "258104002", "display": "Measured"}
]
}
}
5. SMART ヘルスカード
SMART ヘルス カード (SHC) — 医療(ワクチン、検査)の検証可能な資格情報。
- JWT 内での FHIR バンドルの使用 (JWS コンパクト)
- QR コードにはタグが含まれています - オフラインで検証可能
- COVID-19 ワクチン記録に広く使用されています (SMART Health Cards Framework)
SHC QR Code → JWT → FHIR Bundle:
{
"resourceType": "Bundle",
"type": "collection",
"entry": [
{
"resource": {
"resourceType": "Patient",
"name": [{"family": "Nguyen", "given": ["Van A"]}],
"birthDate": "1990-05-15"
}
},
{
"resource": {
"resourceType": "Immunization",
"status": "completed",
"vaccineCode": {
"coding": [{"system": "http://hl7.org/fhir/sid/cvx", "code": "208", "display": "COVID-19 mRNA"}]
},
"occurrenceDateTime": "2024-03-15",
"lotNumber": "EN6207",
"performer": [{"actor": {"display": "TTYT Quận 1"}}]
}
}
]
}
6. 個人健康記録 (PHR)
PHR により患者は 自己管理 健康記録。 FHIR 患者アクセス API が基盤です。
| PHR機能 | FHIR API |
|---|---|
| 医療記録を見る | 患者/$すべて |
| 試験結果 | 観察?患者=X |
| 処方箋 | MedicationRequest?patient=X |
| 予約スケジュール | 予約?患者=X |
| 新しい BS と共有する | IPSドキュメント |
| ウェアラブルから | ポスト観察(バイタルサイン) |
7. 新しいトレンド
| トレンド | 説明 | FHIRのサポート |
|---|---|---|
| AI 臨床副操縦士 | LLM は医師の意思決定をサポートします | CDS フック + SMART アプリ |
| 精密医療 | 遺伝学に基づいた個別治療 | ゲノミクスリソース |
| 遠隔医療 | 遠隔診療 | 出会い(バーチャル)、コミュニケーション |
| フェデレーテッド ラーニング | ローカルの非集中型データで AI をトレーニングする | バルクデータ + ローカル推論 |
| ブロックチェーン + FHIR | 不変の監査証跡 | AuditEvent + オンチェーンハッシュ |
| FHIR 略記法 (FSH) | IG作成を民主化する | SUSHI、GoFSHツール |
| FHIR 用の GraphQL | REST に代わる柔軟なクエリ | $graphql オペレーション |
8. シリーズの終了
25 のレッスンを通じて、FHIR の旅全体を体験しました。
- パート 1 — プラットフォーム: HL7 の歴史、FHIR R5 の概要、開発環境
- パート 2 — コアリソース: 患者、遭遇、状態、観察、投薬...
- パート 3 — RESTful API: CRUD、検索、バンドル、トランザクション
- パート 4 — データ型、用語、プロファイル、拡張子、IG
- パート 5 — ドキュメント、メッセージング、サブスクリプション、SMART on FHIR、セキュリティ
- パート6 — ハンズオン: HAPI FHIR サーバー、クライアント、VN コア IG、EMR/HIS 統合
- パート 7 — 制作: パフォーマンス、VN コンテキスト、ケーススタディ、将来
FHIR は、世界が医療データを交換する方法を変えています。この知識ベースを使用すると、ベトナムの医療用の相互運用可能なシステムを構築する準備が整います。
9. まとめ
FHIR R6 — サブスクリプション、AI 統合、IoT リソースの改善
AI/ML + FHIR — 臨床意思決定サポートのための CDS フック、FHIR データからの ML パイプライン
ゲノミクス — MolecularSequence、精密医療のための遺伝子観察
IoT/ウェアラブル — Apple Watch、Mi Band → 観測 → FHIR サーバー
SMART ヘルスカード — 検証可能な健康証明書(ワクチン、検査)
PHR — 医療記録を自己管理するための患者アクセス API