1.FHIR R6路線圖
FHIR R5 (2023) 是目前的標準版本。 R6 正在開發中,並進行了許多改進。
| 版本 | 年份 | 狀態 |
|---|---|---|
| DSTU 1 | 2014年 | 遺產 |
| DSTU 2 | 2015年 | 遺產 |
| STU 3 | 2017年 | 遺產 |
| R4 | 2019年 | 規範(最廣泛使用) |
| R4B | 2022年 | 規範性 |
| R5 | 2023年 | 規範(當前) |
| R6 | ~2026 | 發展中 |
預計R6上市
- 改進的訂閱 — 以主題為基礎的訂閱更完整
- 增強搜尋 — 複合搜尋參數、GraphQL 改進
- 人工智慧/機器學習集成 — 用於模型推理的標準化資源
- 設備/物聯網 — 改善医疗设备和可穿戴设备的资源
- 跨版本相容性 — 工具更適合版本遷移
- 效能 — 二進位資源流、分頁改進
2.FHIR 和人工智慧/機器學習
CDS Hooks + 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. 適用於物聯網和穿戴式裝置的 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. 智能健康卡
智慧健康卡 (SHC) — 可验证的医疗保健凭证(疫苗、测试)。
- 在 JWT 中使用 FHIR Bundle(JWS 緊湊型)
- 二維碼包含標籤-可離線驗證
- 广泛用于 COVID-19 疫苗记录(智能健康卡框架)
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 |
| 處方 | 藥物請求?患者=X |
| 預約時間表 | 預約?患者=X |
| 與新BS分享 | IPS文檔 |
| 來自穿戴式裝置 | 術後觀察(生命徵象) |
7.新趨勢
| 趨勢 | 描述 | FHIR 支持 |
|---|---|---|
| AI臨床副駕駛 | 法學碩士支援醫師決策 | CDS Hooks + SMART 應用程式 |
| 精準醫療 | 基於遺傳學的個人化治療 | 基因組學資源 |
| 遠距醫療 | 遠距醫療檢查 | 相遇(虛擬)、交流 |
| 聯邦學習 | 使用本地非集中資料訓練人工智慧 | 海量資料+本地推理 |
| 區塊鏈+FHIR | 不可變的審計跟踪 | AuditEvent + 鏈上哈希 |
| FHIR 簡寫 (FSH) | IG 創作民主化 | SUSHI、GoFSH 工具 |
| FHIR 的 GraphQL | 靈活查詢取代 REST | $graphql操作 |
8. 系列結束
透過25堂課,我們已經走完了整個FHIR歷程:
- 第 1 部分 — 平台:HL7歷史、FHIR R5概述、開發環境
- 第2部分 — 核心資源:病人、遭遇、病情、觀察、藥物治療…
- 第三部分 — RESTful API:CRUD、搜尋、捆綁、事務
- 第 4 部分 — 資料類型、術語、設定檔、擴充、IG
- 第五部分 — 文件、訊息傳遞、訂閱、FHIR 上的 SMART、安全性
- 第 6 部分 — 實踐:HAPI FHIR 伺服器、客戶端、VN Core IG、EMR/HIS 集成
- 第7部分 — 製作:表演、越南背景、案例研究、未來
FHIR 正在改變世界交換醫療資料的方式。有了這個知識庫,您就可以為越南醫療保健建立一個可互通的系統。
9. 總結
FHIR R6 — 改進的訂閱、人工智慧整合、物聯網資源
人工智慧/機器學習 + FHIR — 用於臨床決策支援的 CDS Hooks、來自 FHIR 資料的 ML 管道
基因組學 — 精準醫學的分子序列、基因觀察
物聯網/穿戴設備 — Apple Watch、Mi Band → 觀察 → FHIR 伺服器
智慧健康卡 — 可驗證的健康憑證(疫苗、測試)
PHR — 用於健康記錄自我管理的病患存取 API