Hướng dẫn triển khai FHIR cốt lõi Việt Nam — VN Core FHIR Implementation Guide
0.10.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.10.0) built by the FHIR (HL7® FHIR® Standard) Build Tools. See the Directory of published versions
| Draft tại thời điểm 2026-09-22 |
Ánh xạ cho bhytXml1SummaryLm mô hình logic.
No Mappings Found
No Mappings Found
| Name | VN Core FHIR mapping![]() |
|---|---|
![]() |
|
![]() ![]() |
VNCoreClaim.identifier[MALK].value |
![]() ![]() |
Derived export row order |
![]() ![]() |
VNCorePatient.identifier[MRN].value |
![]() ![]() |
VNCorePatient.name.text |
![]() ![]() |
VNCorePatient.identifier[CCCD].value | VNCorePatient.identifier[HC].value | VNCorePatient.identifier[GKS].value Ghi số CCCD/số định danh cá nhân trên thẻ căn cước hoặc giấy khai sinh; người nước ngoài ghi số hộ chiếu (identifier[HC]); trẻ sơ sinh dùng số trên giấy khai sinh (identifier[GKS]); để trống trong trường hợp bất khả kháng (trẻ sơ sinh, người mất ý thức/tâm thần không lấy được số định danh). Đổi kiểu chuỗi và kích thước n theo QĐ 4750/QĐ-BYT. |
![]() ![]() |
VNCorePatient.birthDate |
![]() ![]() |
VNCorePatient.gender Mã nguồn là 1/2/3 (nam/nữ/chưa xác định) theo QĐ 130/QĐ-BYT, KHÔNG phải mã của AdministrativeGender. Phải chuyển qua ConceptMap/vn-cm-gender-to-administrative-gender trước khi ghi vào Patient.gender. |
![]() ![]() |
future blood-group Observation (LOINC 883-9 ABO group; 10331-7 Rh) Nhóm máu của người bệnh, tối đa 5 ký tự, chỉ ghi khi có thông tin (bổ sung theo QĐ 4750/QĐ-BYT). VN Core chưa có profile Observation nhóm máu chuyên biệt nên đánh dấu future. |
![]() ![]() |
VNCorePatient.extension[citizenship].valueCodeableConcept.coding.code Mã nguồn là mã quốc tịch 3 chữ số do Bộ Công an ban hành, KHÔNG phải ISO 3166. Phải chuyển sang hệ mã mà extension[citizenship] bind, hoặc ghi kèm đúng system của mã nguồn. |
![]() ![]() |
VNCorePatient.extension[ethnicity].valueCodeableConcept.coding.code |
![]() ![]() |
VNCorePatient.extension[occupation].valueCodeableConcept.coding.code |
![]() ![]() |
VNCorePatient.address.text |
![]() ![]() |
VNCorePatient.address.extension[province].valueCoding.code Giữ mã tỉnh nguồn và ngày hồ sơ. Sau khi xác định hệ mã nhà nước, dùng vn-province-cs; binding history hỗ trợ mã đã thu nhận. Không tự đổi mã lịch sử sang tỉnh hiện hành. Tên/hiệu lực theo ngày cần giai đoạn đã xác minh; thiếu căn cứ giữ địa chỉ text và báo không đủ căn cứ. |
![]() ![]() |
VNCorePatient.address.district Address.district là tên huyện dạng string. Nếu nguồn dùng mã TMS hoặc mã ghép tỉnh+huyện năm chữ số, chỉ chuyển qua registry có scheme và edition tường minh sang mã nhà nước ba chữ số. Tra tên trong vn-district-cs theo ngày hồ sơ khi có bằng chứng; thiếu căn cứ giữ text nguồn, không lấy display hiện hành làm tên lịch sử. Việc đổi cách biểu diễn mã không chứng minh hiệu lực hoặc địa giới. |
![]() ![]() |
VNCorePatient.address.extension[ward].valueCoding.code Giữ mã xã nguồn gồm năm chữ số và ngày hồ sơ; dùng vn-ward-cs sau khi xác định đúng hệ mã. Binding history không buộc đổi mã xã cũ sang xã mới. Tra tên/tỉnh quản lý theo giai đoạn có bằng chứng; thiếu căn cứ giữ text nguồn, không tự suy từ tên hoặc mã hiện hành. |
![]() ![]() |
VNCorePatient.telecom.where(system='phone').value |
![]() ![]() |
VNCoreCoverage.identifier[BHYT].value | VNCorePatient.identifier[BHYT].value OHP/QD3176 export validator permits up to 2 BHYT card values; map repeated cards to focal/supplemental Coverage entries. |
![]() ![]() |
VNCoreCoverage.extension[primaryCareFacility].valueReference.identifier.value OHP/QD3176 export validator permits up to 2 values aligned with multiple BHYT cards; this remains the registered primary care facility, not MA_CSKCB. |
![]() ![]() |
VNCoreCoverage.period.start OHP/QD3176 export validator permits up to 2 values aligned with multiple BHYT cards. |
![]() ![]() |
VNCoreCoverage.period.end OHP/QD3176 export validator permits up to 2 values aligned with multiple BHYT cards. |
![]() ![]() |
VNCoreCoverage | future copay-exemption-start-date extension Thời điểm người bệnh đủ điều kiện hưởng chế độ miễn cùng chi trả: 8 ký tự yyyymmdd nếu đã cấp giấy miễn cùng chi trả, 12 ký tự yyyymmddHHMM nếu chưa cấp giấy; để trống nếu không đủ cơ sở xác định. Liên quan trần cùng chi trả luỹ kế theo NĐ 188/2025/NĐ-CP; VN Core chưa có extension ngày miễn cùng chi trả trên Coverage. |
![]() ![]() |
VNCoreEncounter.reasonCode | VNCoreEncounter.reasonReference.resolve().code |
![]() ![]() |
VNCoreEncounter.hospitalization.admitSource | VNCoreEncounter.reasonCode Conditionally required for selected inpatient/day-treatment MA_LOAI_KCB values. |
![]() ![]() |
VNCoreEncounter.hospitalization.admitSource.coding.code |
![]() ![]() |
VNCoreEncounter.reasonCode | VNCoreComposition.section[chiefComplaint].text |
![]() ![]() |
VNCoreCondition.code.text | VNCoreComposition.section[diagnosis].text |
![]() ![]() |
VNCoreClaim.diagnosis.where(type='principal').diagnosisCodeableConcept | VNCoreCondition.code [MULTI-INSTANCE] Bệnh chính và bệnh kèm theo là HAI Condition khác nhau. Bệnh chính và bệnh kèm theo là HAI Condition riêng, phân biệt bằng Encounter.diagnosis.rank (rank=1 cho bệnh chính); không dồn vào một Condition.code. |
![]() ![]() |
VNCoreClaim.diagnosis.where(type!='principal').diagnosisCodeableConcept | VNCoreCondition.code [MULTI-INSTANCE] Bệnh chính và bệnh kèm theo là HAI Condition khác nhau. Bệnh chính và bệnh kèm theo là HAI Condition riêng, phân biệt bằng Encounter.diagnosis.rank (rank=1 cho bệnh chính); không dồn vào một Condition.code. |
![]() ![]() |
VNCoreClaim.diagnosis.diagnosisCodeableConcept.coding.code | VNCoreConditionDiagnosis.code.coding[yhct].code |
![]() ![]() |
VNCoreProcedure.code.coding.code Mã ICD-9-CM (VNICD9CMCS; QĐ 4440/QĐ-BYT, nay thay bằng QĐ 387/QĐ-BYT). Nhiều PT/TT thì các mã phân cách bằng ';'; chỉ ghi khi người bệnh có thực hiện phẫu thuật, thủ thuật. KHÔNG nhầm với MA_PTTT (mã phương thức thanh toán, Bảng 2/3 STT 36/40). |
![]() ![]() |
VNCoreClaim.subType Do not map to Coverage.extension[bhytCardType]; this is visit classification, not the insured/card group. |
![]() ![]() |
VNCoreEncounter.hospitalization.origin.resolve().identifier[CSKCB].value |
![]() ![]() |
VNCoreEncounter.hospitalization.destination.resolve().identifier[CSKCB].value |
![]() ![]() |
VNCoreClaim.accident.type |
![]() ![]() |
VNCoreEncounter.period.start | VNCoreClaim.billablePeriod.start Đính chính 16/08/2026: trước đây ngayVao và ngayRa CÙNG trỏ VNCoreClaim.created. Claim.created là ngày LẬP hồ sơ yêu cầu (1..1) nên không thể mang cả hai mốc; kỳ khám chữa bệnh thuộc Claim.billablePeriod. |
![]() ![]() |
VNCoreEncounter.hospitalization | future admission instant extension |
![]() ![]() |
VNCoreEncounter.period.end | VNCoreClaim.billablePeriod.end Xem ghi chú tại NGAY_VAO: kỳ KCB đi vào Claim.billablePeriod, không phải Claim.created. |
![]() ![]() |
VNCoreServiceRequest.identifier.value | VNCoreDocumentReference.identifier.value Số giấy chuyển tuyến/chuyển cơ sở KBCB nơi chuyển người bệnh đi hoặc số giấy hẹn khám lại (nếu có). Ghi theo trường GIAY_CHUYEN_TUYEN Bảng 13 (BHYTXML13ReferralLM) — liên kết phiếu chuyển tuyến ServiceRequest. |
![]() ![]() |
Derived from VNCoreEncounter.period.start/end | VNCoreEncounter.length.value |
![]() ![]() |
VNCoreProcedure.category | future treatment-method (PP_DIEU_TRI) extension Ghi phương pháp điều trị theo TT 18/2022/TT-BYT (nội khoa, ngoại khoa, xạ trị, hoá trị hoặc xạ trị + nội khoa). VN Core chưa có slice/extension chuyên biệt ở cấp đợt điều trị nên đánh dấu future. |
![]() ![]() |
VNCoreEncounter.extension[treatmentOutcome].valueCodeableConcept |
![]() ![]() |
VNCoreEncounter.hospitalization.dischargeDisposition |
![]() ![]() |
VNCoreComposition.section[dischargeSummary].text Lời dặn của bác sĩ hoặc nhân viên y tế đối với người bệnh sau khi kết thúc lần KBCB; ghi vào phần tóm tắt ra viện/hướng điều trị tiếp của bệnh án điện tử (TT 13/2025/TT-BYT). |
![]() ![]() |
VNCoreExplanationOfBenefit.created | VNCoreClaimResponse.created |
![]() ![]() |
VNCoreClaim.extension[costSummary].extension[totalMedication].valueMoney.value | VNCoreExplanationOfBenefit.total.where(category='medication-subtotal').amount.value |
![]() ![]() |
VNCoreClaim.extension[costSummary].extension[totalSupplies].valueMoney.value | VNCoreExplanationOfBenefit.total.where(category='supplies-subtotal').amount.value |
![]() ![]() |
VNCoreClaim.total.value | VNCoreExplanationOfBenefit.total.amount |
![]() ![]() |
VNCoreExplanationOfBenefit.total.where(category='eligible').amount.value | VNCoreClaimResponse.total.where(category='eligible').amount.value |
![]() ![]() |
VNCoreClaim.extension[costSummary].extension[totalPatientSelfPay].valueMoney.value | Derived from VNCoreClaimResponse.total.where(category='submitted').amount - .where(category='eligible').amount |
![]() ![]() |
VNCoreClaim.extension[costSummary].extension[totalPatientCopay].valueMoney.value | VNCoreClaimResponse.total.where(category='copay').amount.value | VNCoreExplanationOfBenefit.total.where(category='copay').amount.value |
![]() ![]() |
VNCoreClaim.extension[costSummary].extension[totalInsurance].valueMoney.value | VNCoreClaimResponse.total.where(category='benefit').amount.value | VNCoreExplanationOfBenefit.total.where(category='benefit').amount.value |
![]() ![]() |
VNCoreClaim.extension[costSummary].extension[totalOtherFund].valueMoney.value | VNCoreExplanationOfBenefit.total.where(category='other-fund').amount.value |
![]() ![]() |
VNCoreClaim.extension[costSummary] | future totalInsuranceFeeForService sub-extension Số tiền quỹ BHYT thanh toán đối với các khoản chi ngoài định suất hoặc ngoài DRG (là T_BHTT tại Bảng 2, Bảng 3 đối với chi phí có MA_PTTT = '1' — Phí dịch vụ). VNCoreExtClaimCostSummary chưa có sub-extension chuyên biệt cho khoản này nên đánh dấu future. |
![]() ![]() |
VNCoreClaim.extension[paymentPeriod].extension[year] |
![]() ![]() |
VNCoreClaim.extension[paymentPeriod].extension[month] |
![]() ![]() |
VNCoreEncounter.type |
![]() ![]() |
VNCoreClaim.item.extension[department].valueCodeableConcept.coding.code | VNCoreEncounter.serviceType |
![]() ![]() |
VNCoreEncounter.serviceProvider.resolve().identifier[CSKCB].value | VNCoreClaim.provider.resolve().identifier[CSKCB].value Actual visit/submission provider. Do not fall back to MA_DKBD on Coverage. |
![]() ![]() |
VNCoreCoverage | future BHYT living-area (K1/K2/K3) extension Mã nơi sinh sống của người bệnh ghi trên thẻ BHYT (danh mục mã cố định K1/K2/K3). VN Core chưa có extension mã khu vực sinh sống trên Coverage. |
![]() ![]() |
VNCoreObservationBodyWeight.value[x] [MULTI-INSTANCE] Cân nặng NGƯỜI BỆNH và cân nặng CON là hai Observation trên hai chủ thể khác nhau, không phải hai giá trị của một Observation: `subject` của chỉ tiêu này là người bệnh, còn của CAN_NANG_CON là trẻ mới sinh. Token thêm 07/09/2026 khi đích ánh xạ đổi từ `valueQuantity.value` sang `value[x]` — cách viết cũ không phân giải được nên cổng LM MAPPING TARGETS chưa từng thấy cặp tranh chấp này. |
![]() ![]() |
VNCoreObservationBodyWeight.value[x] | future newborn-birth-weight extension [MULTI-INSTANCE] Cân nặng người bệnh và cân nặng con là hai Observation trên hai chủ thể khác nhau. Cân nặng con mới sinh, đơn vị gram; subject là trẻ mới sinh (RelatedPerson/Patient liên kết), không phải người bệnh mẹ. Chỉ ghi khi sinh con; sinh từ 2 con trở lên ghi lần lượt, phân cách bằng dấu chấm phẩy ';'. |
![]() ![]() |
VNCoreCoverage | future five-year-continuous-participation date extension Thời điểm người bệnh tham gia BHYT đủ 05 năm liên tục, 8 ký tự yyyymmdd (mốc hưởng quyền lợi 5 năm liên tục). VN Core chưa có extension mốc 5 năm liên tục trên Coverage. |
![]() ![]() |
VNCoreServiceRequest.occurrenceDateTime | Appointment.start |
![]() ![]() |
VNCoreComposition.identifier.value | VNCoreDocumentReference.identifier.value |
![]() ![]() |
VNCoreComposition.author.resolve().identifier.value | VNCoreDocumentReference.author.resolve().identifier.value | VNCoreProvenance.signature.who.resolve().identifier.value |
![]() ![]() |
VNCoreObservationBodyHeight.value[x] Theo bản sửa đổi, bổ sung QĐ 4750/QĐ-BYT: trường dự phòng Bảng 1 dùng để ghi chiều cao người bệnh (đơn vị cm), bắt buộc trong trường hợp sử dụng chỉ số này để chẩn đoán, điều trị. Riêng Bảng 1 khác các bảng khác (DU_PHONG thường dùng cho dữ liệu chữ ký số theo QĐ 3176/QĐ-BYT). |
Documentation for this format | |