VN Core FHIR Implementation Guide — Bộ Hướng dẫn Triển khai FHIR Cốt lõi cho Việt Nam
0.1.0 - STU1 Draft
VN Core FHIR Implementation Guide — Bộ Hướng dẫn Triển khai FHIR Cốt lõi cho Việt Nam - Local Development build (v0.1.0) built by the FHIR (HL7® FHIR® Standard) Build Tools. See the Directory of published versions
Hướng dẫn 4 bước để bắt đầu sử dụng VN Core FHIR IG trong hệ thống của bạn.
┌──────────────────────────┐
│ VN Core FHIR IG │
│ (hl7.fhir.vn.core) │
└──────────┬───────────────┘
│
┌────────────────┼────────────────┐
│ │ │
┌────────▼───────┐ ┌─────▼──────┐ ┌───────▼──────┐
│ 23 Profiles │ │ 20 Ext. │ │ Terminology │
│ │ │ │ │ 42 CS + 43 VS│
│ Patient │ │ Ethnicity │ │ │
│ Practitioner │ │ Religion │ │ ICD-10 VN │
│ Organization │ │ Province │ │ SNOMED CT VN │
│ Encounter │ │ Ward │ │ LOINC VN │
│ Condition │ │ BHYT Type │ │ YHCT (10 bộ) │
│ Observation(3) │ │ Org Rank │ │ ĐVHC (34+xã) │
│ Coverage │ │ ... +14 │ │ ... +30 │
│ Claim/EOB │ │ │ │ │
│ ... +14 │ │ │ │ │
└────────────────┘ └────────────┘ └──────────────┘
| Thành phần | Vai trò | Ví dụ |
|---|---|---|
| Profiles | Định nghĩa cấu trúc resource phù hợp VN | VNCorePatient: CCCD, tên tiếng Việt, dân tộc |
| Extensions | Thêm data element đặc thù VN | vn-ext-ethnicity: 54 dân tộc |
| CodeSystems | Bộ mã chuẩn hóa | VNEthnicityCS: mã 01=Kinh, 02=Tày… |
| ValueSets | Tập giá trị cho phép | VNEthnicityVS: bind từ VNEthnicityCS |
| NamingSystems | Định danh identifier | VN-CCCD: http://fhir.hl7.org.vn/core/sid/cccd |
| Examples | Dữ liệu mẫu | Bệnh nhân Nguyễn Văn An, BV Chợ Rẫy |
| Phần mềm | Phiên bản | Mục đích |
|---|---|---|
| Node.js | >= 18 | Chạy SUSHI |
| SUSHI | >= 3.x | Biên dịch FSH → JSON |
| Java JDK | >= 17 | Chạy IG Publisher |
# Clone repository
git clone https://github.com/HL7-org-vn/vncore-ig.git
cd vncore-ig
# Cài SUSHI (nếu chưa có)
npm install -g fsh-sushi
# Biên dịch FSH → JSON
sushi .
# Kết quả: 175 resources, 0 errors, 0 warnings
# Tải IG Publisher (lần đầu, ~200MB)
bash _updatePublisher.sh -y
# Build toàn bộ IG → thư mục output/
bash _genonce.sh
# Xem kết quả
open output/index.html # Website IG
open output/qa.html # Báo cáo QA
Ví dụ JSON — bệnh nhân có CCCD, thẻ BHYT, dân tộc Kinh:
{
"resourceType": "Patient",
"meta": {
"profile": ["http://fhir.hl7.org.vn/core/StructureDefinition/vn-core-patient"]
},
"identifier": [
{
"type": {
"coding": [{
"system": "http://fhir.hl7.org.vn/core/CodeSystem/vn-identifier-type-cs",
"code": "CCCD"
}]
},
"system": "http://fhir.hl7.org.vn/core/sid/cccd",
"value": "001099012345"
},
{
"type": {
"coding": [{
"system": "http://fhir.hl7.org.vn/core/CodeSystem/vn-identifier-type-cs",
"code": "BHYT"
}]
},
"system": "http://fhir.hl7.org.vn/core/sid/bhyt",
"value": "DN4010199012345"
}
],
"name": [{
"use": "official",
"text": "Nguyen Van An",
"family": "Nguyen",
"given": ["Van", "An"]
}],
"gender": "male",
"birthDate": "1990-05-15",
"address": [{
"use": "home",
"text": "123 Nguyen Hue, Phuong Ngoc Ha, Ha Noi",
"state": "Ha Noi",
"extension": [
{
"url": "http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-province",
"valueCoding": {
"system": "http://fhir.hl7.org.vn/core/CodeSystem/vn-province-cs",
"code": "01",
"display": "Ha Noi"
}
},
{
"url": "http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-ward",
"valueCoding": {
"system": "http://fhir.hl7.org.vn/core/CodeSystem/vn-ward-cs",
"code": "00008",
"display": "Phuong Ngoc Ha"
}
}
]
}],
"extension": [
{
"url": "http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-ethnicity",
"valueCodeableConcept": {
"coding": [{
"system": "http://fhir.hl7.org.vn/core/CodeSystem/vn-ethnicity-cs",
"code": "01",
"display": "Kinh"
}]
}
}
]
}
Sử dụng FHIR Validator:
# Tải validator (lần đầu)
wget https://github.com/hapifhir/org.hl7.fhir.core/releases/latest/download/validator_cli.jar
# Validate
java -jar validator_cli.jar patient.json \
-ig hl7.fhir.vn.core#0.1.0 \
-profile http://fhir.hl7.org.vn/core/StructureDefinition/vn-core-patient
Các FHIR server phổ biến hỗ trợ custom IG:
| Server | Ngôn ngữ | Hỗ trợ VN Core |
|---|---|---|
| HAPI FHIR | Java | Upload package hl7.fhir.vn.core qua $upload-external-code-system |
| Firely Server | .NET | Import NPM package |
| IBM FHIR Server | Java | Custom profiles via config |
# Sử dụng NPM package (khi đã publish)
npm --registry https://packages.fhir.org install [email protected]
# Hoặc build từ source
sushi .
# Package tạo tại: fsh-generated/resources/
┌─────────────┐ ┌──────────────┐ ┌─────────────┐
│ HIS/EMR │ JSON │ FHIR Server │ FHIR │ Bên nhận │
│ (nội bộ) │────────▶│ + VN Core │────────▶│ (BHXH, │
│ │ │ profiles │ │ Sở Y tế, │
│ DB nội bộ │ │ validation │ │ VNeID) │
└─────────────┘ └──────────────┘ └─────────────┘
│ │
│ Mapping layer │ CapabilityStatement
│ (HIS fields → FHIR) │ (VNCoreServer)
▼ ▼
- Mã BN → Patient.identifier - 20 resource types
- Mã CCCD → identifier[CCCD] - Search parameters
- Mã BHYT → identifier[BHYT] - SMART-on-FHIR auth
- Họ tên → name.text/family/given
- ICD-10 → Condition.code
| Tài nguyên | Liên kết |
|---|---|
| FHIR R4 Specification | hl7.org/fhir/R4/ |
| FSH School | fshschool.org — học viết FSH |
| FHIR Validator | confluence.hl7.org |
| SUSHI Documentation | fshschool.org/docs/sushi/ |
| VN Core Issues | github.com/HL7-org-vn/vncore-ig/issues |
| Hướng dẫn Validation | validation-guidance.html |
| Tình huống lâm sàng | clinical-scenarios.html |
This Getting Started guide provides a 4-step path to using VN Core FHIR IG: (1) Understand the architecture — 23 profiles, 20 extensions, 42 CodeSystems, 43 ValueSets covering Vietnamese healthcare; (2) Install prerequisites (Node.js, SUSHI, Java) and compile the IG; (3) Create your first FHIR resource using VN Core profiles with Vietnamese-specific identifiers (CCCD, BHYT), address structure (province + ward per NQ 202/2025), and extensions (ethnicity, religion); (4) Integrate with your HIS/EMR by deploying a FHIR server with VN Core package, mapping internal data to FHIR resources, and validating against VN Core profiles. The guide includes a complete JSON example for a Vietnamese patient and an integration checklist.