HL7 Vietnam VN Core FHIR Implementation Guide

Bộ Hướng dẫn Triển khai Core FHIR cho Việt Nam
0.6.0 - Draft for Community Review Viet Nam cờ

Bộ Hướng dẫn Triển khai Core FHIR cho Việt Nam - Draft for Community Review (v0.6.0) built by the FHIR (HL7® FHIR® Standard) Build Tools. See the Directory of published versions

Playbook Dược

Playbook Dược — Kê đơn điện tử & Cấp phát (Pharmacy)

Hợp đồng tích hợp cho chuỗi kê đơn → (liên thông đơn thuốc quốc gia) → cấp phát → (sử dụng) → thanh toán BHYT, nộp lên FHIR server bằng transaction Bundle atomic.

Cùng bộ playbook: Ngoại trú · Cấp cứu · Nội trú.

Điểm khác biệt VN cốt lõi: đơn thuốc điện tử liên thông Hệ thống đơn thuốc quốc gia (mỗi đơn có mã đơn quốc gia); mã thuốc theo ATC + số đăng ký lưu hành + DM thuốc BHYT; phân biệt hóa dược (TT 26/2025) vs YHCT (TT 27/2025); cấp phát nội trú (khoa Dược) vs ngoại trú/nhà thuốc bán lẻ.

Ca minh họa: Nguyễn Văn An (tăng huyết áp) được kê Amlodipine 5mg × 30 viên, cấp phát BHYT 80% tại BV Chợ Rẫy ngày 22/3/2026. Mọi resource là Example Instance thật.

1. Phạm vi

Kê đơn → liên thông đơn quốc gia → cấp phát → (nội trú: sử dụng) → chi phí thuốc trong Claim. Áp dụng cho ngoại trú/cấp cứu/nội trú và nhà thuốc bán lẻ.

2. Actor & hệ thống

Bác sĩ kê đơn (HIS/EMR), Hệ thống đơn thuốc quốc gia (liên thông), khoa Dược/nhà thuốc (cấp phát), điều dưỡng (sử dụng nội trú), cổng BHXH.

3. Căn cứ pháp lý

TT 26/2025/TT-BYT (kê đơn hóa dược ngoại trú, hiệu lực 01/7/2025; Điều 12 liên thông đơn quốc gia + lĩnh thuốc trong 05 ngày); TT 27/2025/TT-BYT (thuốc dược liệu/YHCT BHYT); Luật Dược 105/2016 + Luật 44/2024; NĐ 163/2025/NĐ-CP; QĐ 3176/QĐ-BYT (MA_THUOC, SO_DANG_KY, NGAY_CAP, NGAY_TH_YL); QĐ 697/QĐ-BYT (chi phí thuốc).

4. Điều kiện tiên quyết

| # | Resource | Profile | Ghi chú VN | |—|—|—|—| | P1 | Bệnh nhân | VNCorePatient | CCCD/VNeID | | P2 | Bác sĩ kê đơn | VNCorePractitioner | CCHN bắt buộc cho kê đơn | | P3 | Cơ sở/nhà thuốc | VNCoreOrganization | mã cơ sở/nhà thuốc | | P4 | Thẻ BHYT (nếu có) | VNCoreCoverage | mức hưởng | | P5 | Danh mục thuốc | VNCoreMedication | ATC + số ĐKLH + mã thuốc BHYT |

5. Cơ chế nộp — Transaction Bundle

Chuỗi kê đơn → cấp phát nộp atomic bằng transaction Bundle. Ví dụ: Bundle-ExampleBundlePharmacyDispenseTransaction (Patient, Coverage, Encounter, MedicationRequest, MedicationDispense — PUT update-as-create). Đơn thuốc điện tử trọn bộ: ExampleBundleEPrescription. Chi tiết pattern xem Playbook Nội trú §5.

6. Sơ đồ luồng

MedicationRequest(kê đơn) ──▶ [Liên thông Hệ thống đơn thuốc quốc gia: gán mã đơn]
        │  identifier (mã đơn quốc gia), requester (CCHN), medicationCodeableConcept (ATC + mã BHYT)
        ▼
MedicationDispense(cấp phát) ── authorizingPrescription ─▶ (lại) MedicationRequest
        │  whenHandedOver (NGAY_CAP), quantity, performer (dược sĩ/khoa/nhà thuốc)
        ▼
(nội trú) MedicationAdministration(sử dụng) ── request ─▶ MedicationRequest
        ▼
(BHYT) Claim.item.category = "thuốc" ─▶ ClaimResponse/EOB

7. Các bước gửi dữ liệu

| # | Bước | Profile | Element chính | Example | |—|—|—|—|—| | 1 | Thuốc (danh mục) | VNCoreMedication | code (ATC + số ĐKLH + mã BHYT), dạng bào chế | Amlodipine | | 2 | Kê đơn | VNCoreMedicationRequest | medicationCodeableConcept, dosageInstruction, requester (CCHN), intent=order | Hypertension · YHCT: YHCT | | 3 | Mã đơn quốc gia | MedicationRequest.identifier | system = http://fhir.hl7.org.vn/core/sid/don-thuoc-quoc-gia (14 ký tự — VNPrescriptionCode NamingSystem) | QĐ 808/2022 | | 4 | Cấp phát | VNCoreMedicationDispense | authorizingPrescription→MedicationRequest, whenHandedOver, quantity, performer.actor | OutpatientBHYT · Nội trú | | 5 | Sử dụng (nội trú) | VNCoreMedicationAdministration | effective[x] (NGAY_TH_YL), request→MedicationRequest | Nội trú | | 6 | BHYT | VNCoreClaim | item.category = thuốc (QĐ 697) | BHYTSubmission |

8. Phụ lục terminology

ATC; số đăng ký lưu hành (VD/VS/QLĐB); DM thuốc BHYT; đơn vị UCUM; đường dùng (vn-medication-route-vs); YHCT vị thuốc/bài thuốc (QĐ 2552/3080, TT 27/2025).

9. Validation checklist + lỗi thường gặp

  • MedicationRequest có requester là Practitioner có CCHN.
  • MedicationDispense.authorizingPrescription trỏ đúng MedicationRequest — không "cấp phát mồ côi" cho cấp phát ngoại trú/bán lẻ (VN-RULE-MED-002); nội trú gắn y lệnh khi có.
  • MedicationAdministration nên có request khép chuỗi (VN-RULE-MED-003).
  • quantity cấp phát ≤ số lượng kê (trừ quy tắc riêng).
  • Thuốc BHYT có mã DM thuốc BHYT hợp lệ khi đưa vào Claim.

Ví dụ OperationOutcome — cấp phát mồ côi:

{"resourceType":"OperationOutcome","issue":[{"severity":"error","code":"required",
"details":{"coding":[{"system":"http://fhir.hl7.org.vn/core/CodeSystem/vn-validation-rule-cs","code":"VN-RULE-MED-002"}],
"text":"MedicationDispense.authorizingPrescription là bắt buộc cho cấp phát ngoại trú/bán lẻ để bảo toàn chuỗi BHYT"},
"expression":["Bundle.entry[4].resource.authorizingPrescription"]}]}

10. Khoảng trống profile (GAP)

| GAP | Ảnh hưởng | Priority | |—|—|—| | Medication.batch (số lô/hạn dùng) | ✅ Đã đánh dấu MS trong VNCoreMedication (batch.lotNumber, batch.expirationDate) | resolved | | System mã đơn thuốc quốc gia | ✅ Đã bổ sung VNPrescriptionCode NamingSystem (QĐ 808/2022) | resolved | | MedicationStatement (tiền sử dùng thuốc) | ✅ Đã bổ sung VNCoreMedicationStatement | resolved |

MedicationAdministration (sử dụng thuốc nội trú) đã có — VNCoreMedicationAdministration.

Liên hệ với các trang khác

| Nếu cần | Đọc tiếp | |—|—| | Sử dụng thuốc nội trú | Playbook Nội trú | | Quy ước OperationOutcome | OperationOutcome & Registry | | Danh mục định danh | Registry định danh |

English Summary

Pharmacy integration playbook covering the prescribe → (national ePrescription interoperability) → dispense → administer → BHYT chain, submitted as an atomic transaction Bundle (ExampleBundlePharmacyDispenseTransaction) over a real hypertension Amlodipine case. Key Vietnamese specifics: national ePrescription linkage with a national prescription code, drug coding by ATC + marketing-authorization number + BHYT drug list, and hóa dược (TT 26/2025) vs YHCT (TT 27/2025). The dispense→prescription link (authorizingPrescription) is enforced for outpatient/retail dispensing (VN-RULE-MED-002) to keep the reimbursement chain intact; inpatient administration is covered by VNCoreMedicationAdministration. All previously noted gaps (Medication.batch, national prescription-code system, MedicationStatement) are now resolved.