Hướng dẫn triển khai FHIR cốt lõi Việt Nam — VN Core FHIR Implementation Guide
0.9.0 - Draft for Community Review
Hướng dẫn triển khai FHIR cốt lõi Việt Nam — VN Core FHIR Implementation Guide - Draft for Community Review (v0.9.0) built by the FHIR (HL7® FHIR® Standard) Build Tools. See the Directory of published versions
Hướng dẫn tích hợp cho một lượt cấp cứu: tiếp nhận → triage → xử trí → kết cục (ra viện / nhập viện / chuyển tuyến / tử vong). Trang minh họa phương án gửi bằng Bundle.type = transaction khi CapabilityStatement áp dụng cho máy chủ công bố hỗ trợ transaction.
Cùng bộ playbook: Ngoại trú · Nội trú · Dược.
Điểm khác biệt VN cốt lõi: cấp cứu xử lý y tế TRƯỚC, định danh & BHYT SAU. BHYT cấp cứu được hưởng như đúng tuyến tại bất kỳ cơ sở (Luật BHYT 51/2024 Điều 22; NĐ 188/2025/NĐ-CP). Bệnh nhân có thể chưa rõ danh tính lúc tiếp nhận.
Ca minh họa tổng hợp: Nguyễn Văn An vào cấp cứu BV Chợ Rẫy 20/4/2026 sau tai nạn giao thông, gãy cổ xương đùi S72.0, ổn định qua đêm, chuyển khoa Chấn thương–Chỉnh hình. Ca chưa định danh xem ExamplePatientUnknown. Tất cả dữ liệu ví dụ đều là dữ liệu tổng hợp, không phải hồ sơ người bệnh thật.
Tiếp nhận cấp cứu, triage, xử trí ban đầu; kết cục: ra viện / nhập viện (→ Nội trú) / chuyển tuyến / tử vong.
Khoa Cấp cứu (chủ luồng), điều dưỡng triage, LIS/RIS cấp cứu, cổng BHXH (xác minh hồi tố).
TT 13/2025/TT-BYT; QĐ 4210/QĐ-BYT (legacy MA_LYDO_VVIEN=2 cấp cứu); QĐ 3176/QĐ-BYT (KET_QUA_DTRI, MA_LOAI_RV và chuẩn dữ liệu hiện hành); Luật BHYT 51/2024 Điều 22 + NĐ 188/2025/NĐ-CP (cấp cứu hưởng đúng tuyến); QĐ 4469/QĐ-BYT (ICD-10 VN); QĐ 697/QĐ-BYT (chi phí).
| # | Hành động | Ghi chú VN |
|—|—|—|
| P1–P3 | Org / Location / Practitioner | như ngoại trú |
| P4 | Định danh bệnh nhân — 2 nhánh | (a) có CCCD → VNCorePatient chuẩn; VNeID chỉ là ngữ cảnh xác thực/tích hợp; (b) chưa định danh → Patient có định danh tạm theo profile (ExamplePatientUnknown), sau đó cập nhật hoặc liên kết khi xác minh được CCCD |
| P5 | BHYT — hồi tố | tạo/cập nhật VNCoreCoverage SAU xử trí; insuranceVisitType=Cấp cứu |
Để không cản trở cấp cứu, máy chủ có hỗ trợ thao tác
createSHOULD cho phép tạo Patient bằng định danh tạm theo chính sách công bố trongCapabilityStatement; sau khi xác minh, hệ thống cập nhật hoặc liên kết hồ sơ bằngPatient.link. Khi xuất dữ liệu BHYT mà thiếuSO_CCCD, phải có mã lý do bất khả kháng theo VN-RULE-BHYT-001.
Khi máy chủ công bố hỗ trợ transaction, có thể gửi lượt cấp cứu dưới dạng transaction Bundle để áp dụng atomic. Ví dụ tổng hợp: Bundle-ExampleBundleEmergencyTransaction (Patient, Coverage, Encounter EMER, Condition S72.0 — PUT update-as-create). Hệ thống MAY dùng tương tác khác nếu CapabilityStatement và hợp đồng tích hợp cho phép. Chi tiết các pattern Bundle xem Playbook Nội trú §5.
Patient(tạm/CCCD) ─▶ Encounter(EMER, arrived→triaged→in-progress)
▼
Observation(triage: mức ưu tiên + sinh hiệu) ─▶ Condition(S72.0)
▼
ServiceRequest(XN/CĐHA cấp, priority=stat) ▶ Observation/DiagReport
▼
Procedure(xử trí) + MedicationRequest/Dispense(thuốc cấp cứu)
▼
Encounter(finished + treatmentOutcome + dischargeDisposition) ──┬─▶ Ra viện ─▶ Claim(BHYT)
├─▶ Nhập viện ─▶ [Nội trú]
├─▶ Chuyển tuyến ─▶ DocumentReference
└─▶ Tử vong ─▶ Composition(báo tử)
(sau cùng) cập nhật CCCD/BHYT hồi tố nếu lúc đầu định danh tạm
| # | Bước | Profile | Element chính | Example |
|—|—|—|—|—|
| 1 | Tiếp nhận | VNCoreEncounter | class=EMER, status: arrived→…→finished, insuranceVisitType=Cấp cứu, referralMode=Cấp cứu | Emergency |
| 2 | Triage | VNCoreObservationVitalSigns + VNCoreObservationTriageAcuity | sinh hiệu + mức ưu tiên 1–5 (VNTriageAcuityVS — thang đề xuất VN Core tham chiếu ATS; căn cứ nguyên tắc ưu tiên: QĐ 01/2008/QĐ-BYT, văn bản không quy định số mức) | Triage cấp độ 2 |
| 3 | Chẩn đoán | VNCoreConditionDiagnosis | ICD-10 S72.0 | FemurFracture |
| 4 | Cận lâm sàng cấp | ServiceRequest/Specimen/Observation/ImagingStudy/DiagnosticReport | priority=stat | — |
| 5 | Xử trí | VNCoreProcedure | DVKT | — |
| 6 | Thuốc cấp cứu | VNCoreMedicationRequest + VNCoreMedicationDispense | whenHandedOver | — |
| 7 | Kết cục | VNCoreEncounter | treatmentOutcome (KET_QUA_DTRI; xem VNTreatmentOutcomeVS), hospitalization.dischargeDisposition (MA_LOAI_RV) | (trong Encounter) |
treatmentOutcome + dischargeDisposition. Nếu chuyển nhập viện → liên kết sang Encounter nội trú (Encounter.partOf hoặc EpisodeOfCare [GAP P2]). Claim cấp cứu: subType=Cấp cứu để giám định áp đúng mức hưởng. Ca chưa định danh: ExampleBHYTSubmissionEmergencyUnknownIdentity (Patient tạm + Coverage tạm + Claim priority=stat).
ICD-10 VN (QĐ 4469/QĐ-BYT); MA_LYDO_VVIEN legacy (QĐ 4210/QĐ-BYT); KET_QUA_DTRI và MA_LOAI_RV (QĐ 3176/QĐ-BYT); nhóm chi phí (QĐ 697/QĐ-BYT).
class=EMER + thời điểm arrived có mặt.Mã lỗi tra tại Danh mục quy tắc; ví dụ OperationOutcome có sẵn: ExampleOperationOutcomeBHYTClaimReview.
| GAP | Ảnh hưởng | Priority |
|—|—|—|
| Observation triage acuity | ✅ Đã bổ sung VNCoreObservationTriageAcuity + VNTriageAcuityCS (thang 5 mức đề xuất tham chiếu ATS; căn cứ nguyên tắc QĐ 01/2008/QĐ-BYT, văn bản không quy định số mức) | resolved |
| EpisodeOfCare (nối cấp cứu→nội trú) | ✅ Đã bổ sung VNCoreEpisodeOfCare | resolved |
| Quy tắc bệnh nhân chưa định danh + merge | ✅ Đã tài liệu hóa ở Định danh người bệnh & MPI (§3–4) + rule VN-RULE-PAT-004/005 | resolved |
| Nếu cần | Đọc tiếp | |—|—| | Chuyển tiếp nội trú | Playbook Nội trú | | Quy ước OperationOutcome | OperationOutcome & Registry | | Liên thông BHYT | BHYT Submission |
Emergency integration playbook for a synthetic traffic-accident and femoral-neck-fracture (S72.0) scenario. It illustrates an atomic transaction Bundle (ExampleBundleEmergencyTransaction) when the applicable server CapabilityStatement advertises transaction support. The workflow supports temporary local identifiers for initially unidentified patients and later record update or linkage; Patient create/update behavior is declared by the applicable CapabilityStatement. Emergency BHYT processing and the resolved triage/identity guidance are linked to the relevant profiles and VN-RULE registry.