Bộ Hướng dẫn Triển khai Core FHIR cho Việt Nam
0.5.0 - Draft for Community Review
Bộ Hướng dẫn Triển khai Core FHIR cho Việt Nam - Draft for Community Review (v0.5.0) built by the FHIR (HL7® FHIR® Standard) Build Tools. See the Directory of published versions
| Draft tại thời điểm 2026-04-28 |
<StructureMap xmlns="http://hl7.org/fhir">
<id value="vn-sm-bhyt-xml1-summary"/>
<language value="vi"/>
<text>
<status value="generated"/>
<div xmlns="http://www.w3.org/1999/xhtml"><p class="res-header-id"><b>Generated Narrative: StructureMap vn-sm-bhyt-xml1-summary</b></p><a name="vn-sm-bhyt-xml1-summary"> </a><a name="hcvn-sm-bhyt-xml1-summary"> </a><pre class="fml">
<b>map</b><span style="color: navy"> "</span>http://fhir.hl7.org.vn/core/StructureMap/vn-sm-bhyt-xml1-summary<span style="color: navy">" = "</span>BHYTXML1SummaryLMStructureMap<span style="color: navy">"
</span><span style="color: navy">// </span><span style="color: green">Generated StructureMap scaffold for Bảng 1 tổng hợp KCB BHYT — Logical Model. Source semantics come from the logical model mapping annotations in `BHYTXML1SummaryLM.fsh` and remain aligned with the Python BHYT round-trip export adapter.</span>
<b>uses</b><span style="color: navy"> "</span><a href="StructureDefinition-vn-core-bhyt-submission-bundle.html" title="Bundle hồ sơ thanh toán BHYT — VN Core BHYT Submission Bundle">http://fhir.hl7.org.vn/core/StructureDefinition/vn-core-bhyt-submission-bundle</a><span style="color: navy">" </span><b>alias </b>BHYTSubmissionBundle <b>as </b><b>source</b> <span style="color: navy">// </span><span style="color: green">FHIR-native source bundle profile used by the repository round-trip adapter.</span>
<b>uses</b><span style="color: navy"> "</span><a href="StructureDefinition-bhytXml1SummaryLm.html" title="Bảng 1 tổng hợp KCB BHYT — Logical Model">http://fhir.hl7.org.vn/core/StructureDefinition/bhytXml1SummaryLm</a><span style="color: navy">" </span><b>alias </b>BHYTXML1SummaryLM <b>as </b><b>target</b> <span style="color: navy">// </span><span style="color: green">Bảng 1 tổng hợp KCB BHYT — Logical Model</span>
<span style="color: navy">// </span><span style="color: green">Full QD 3176 XML1 field catalog. StructureMap/export rules must preserve source field names and financial semantics. Generated from logical-model `^mapping` annotations. Fields still missing a field-level `^mapping.map` entry remain outside this StructureMap and are tracked in `wiki/mappings/bhyt-output-data/machine/structuremap-coverage.json`.</span>
<b>group </b>MapBHYTXML1SummaryLM<span style="color: navy">(</span><b>source</b> <span style="color: maroon">sourceBundle</span><span style="color: navy"> : </span>BHYTSubmissionBundle, <b>target</b> <span style="color: maroon">targetRow</span><span style="color: navy"> : </span>BHYTXML1SummaryLM<span style="color: navy">)</span><span style="color: navy"> {
</span> sourceBundle.entry<b> as </b><span style="color: maroon">maLkSource</span><span style="color: navy"><b> -> </b></span>targetRow.maLk <i>"maLk"</i><span style="color: navy">;</span> <span style="color: navy">// </span><span style="color: green">Target field: MA_LK - Mã liên kết hồ sơ FHIR path: VNCoreClaim.identifier[MALK].value</span>
sourceBundle.entry<b> as </b><span style="color: maroon">sttSource</span><span style="color: navy"><b> -> </b></span>targetRow.stt <i>"stt"</i><span style="color: navy">;</span> <span style="color: navy">// </span><span style="color: green">Target field: STT - Số thứ tự FHIR path: Derived export row order</span>
sourceBundle.entry<b> as </b><span style="color: maroon">maBnSource</span><span style="color: navy"><b> -> </b></span>targetRow.maBn <i>"maBn"</i><span style="color: navy">;</span> <span style="color: navy">// </span><span style="color: green">Target field: MA_BN - Mã người bệnh tại cơ sở FHIR path: VNCorePatient.identifier[MRN].value</span>
sourceBundle.entry<b> as </b><span style="color: maroon">hoTenSource</span><span style="color: navy"><b> -> </b></span>targetRow.hoTen <i>"hoTen"</i><span style="color: navy">;</span> <span style="color: navy">// </span><span style="color: green">Target field: HO_TEN - Họ tên người bệnh FHIR path: VNCorePatient.name.text</span>
sourceBundle.entry<b> as </b><span style="color: maroon">ngaySinhSource</span><span style="color: navy"><b> -> </b></span>targetRow.ngaySinh <i>"ngaySinh"</i><span style="color: navy">;</span> <span style="color: navy">// </span><span style="color: green">Target field: NGAY_SINH - Ngày sinh FHIR path: VNCorePatient.birthDate</span>
sourceBundle.entry<b> as </b><span style="color: maroon">gioiTinhSource</span><span style="color: navy"><b> -> </b></span>targetRow.gioiTinh <i>"gioiTinh"</i><span style="color: navy">;</span> <span style="color: navy">// </span><span style="color: green">Target field: GIOI_TINH - Giới tính FHIR path: VNCorePatient.gender</span>
sourceBundle.entry<b> as </b><span style="color: maroon">maQuocTichSource</span><span style="color: navy"><b> -> </b></span>targetRow.maQuocTich <i>"maQuocTich"</i><span style="color: navy">;</span> <span style="color: navy">// </span><span style="color: green">Target field: MA_QUOCTICH - Mã quốc tịch FHIR path: VNCorePatient.extension[nationality].valueCodeableConcept.coding.code</span>
sourceBundle.entry<b> as </b><span style="color: maroon">maDanTocSource</span><span style="color: navy"><b> -> </b></span>targetRow.maDanToc <i>"maDanToc"</i><span style="color: navy">;</span> <span style="color: navy">// </span><span style="color: green">Target field: MA_DANTOC - Mã dân tộc FHIR path: VNCorePatient.extension[ethnicity].valueCodeableConcept.coding.code</span>
sourceBundle.entry<b> as </b><span style="color: maroon">maNgheNghiepSource</span><span style="color: navy"><b> -> </b></span>targetRow.maNgheNghiep <i>"maNgheNghiep"</i><span style="color: navy">;</span> <span style="color: navy">// </span><span style="color: green">Target field: MA_NGHE_NGHIEP - Mã nghề nghiệp FHIR path: VNCorePatient.extension[occupation].valueCodeableConcept.coding.code</span>
sourceBundle.entry<b> as </b><span style="color: maroon">diaChiSource</span><span style="color: navy"><b> -> </b></span>targetRow.diaChi <i>"diaChi"</i><span style="color: navy">;</span> <span style="color: navy">// </span><span style="color: green">Target field: DIA_CHI - Địa chỉ FHIR path: VNCorePatient.address.text</span>
sourceBundle.entry<b> as </b><span style="color: maroon">maTinhCuTruSource</span><span style="color: navy"><b> -> </b></span>targetRow.maTinhCuTru <i>"maTinhCuTru"</i><span style="color: navy">;</span> <span style="color: navy">// </span><span style="color: green">Target field: MATINH_CU_TRU - Mã tỉnh cư trú FHIR path: VNCorePatient.address.extension[province].valueCodeableConcept.coding.code</span>
sourceBundle.entry<b> as </b><span style="color: maroon">maHuyenCuTruSource</span><span style="color: navy"><b> -> </b></span>targetRow.maHuyenCuTru <i>"maHuyenCuTru"</i><span style="color: navy">;</span> <span style="color: navy">// </span><span style="color: green">Target field: MAHUYEN_CU_TRU - Mã huyện cư trú legacy FHIR path: VNCorePatient.address.district</span>
sourceBundle.entry<b> as </b><span style="color: maroon">maXaCuTruSource</span><span style="color: navy"><b> -> </b></span>targetRow.maXaCuTru <i>"maXaCuTru"</i><span style="color: navy">;</span> <span style="color: navy">// </span><span style="color: green">Target field: MAXA_CU_TRU - Mã xã cư trú FHIR path: VNCorePatient.address.extension[ward].valueCodeableConcept.coding.code</span>
sourceBundle.entry<b> as </b><span style="color: maroon">dienThoaiSource</span><span style="color: navy"><b> -> </b></span>targetRow.dienThoai <i>"dienThoai"</i><span style="color: navy">;</span> <span style="color: navy">// </span><span style="color: green">Target field: DIEN_THOAI - Số điện thoại FHIR path: VNCorePatient.telecom.where(system='phone').value</span>
sourceBundle.entry<b> as </b><span style="color: maroon">maTheBhytSource</span><span style="color: navy"><b> -> </b></span>targetRow.maTheBhyt <i>"maTheBhyt"</i><span style="color: navy">;</span> <span style="color: navy">// </span><span style="color: green">Target field: MA_THE_BHYT - Mã thẻ BHYT FHIR path: VNCoreCoverage.identifier[BHYT].value | VNCorePatient.identifier[BHYT].value Mapping note: OHP/QD3176 export validator permits up to 2 BHYT card values; map repeated cards to focal/supplemental Coverage entries.</span>
sourceBundle.entry<b> as </b><span style="color: maroon">maDkbdSource</span><span style="color: navy"><b> -> </b></span>targetRow.maDkbd <i>"maDkbd"</i><span style="color: navy">;</span> <span style="color: navy">// </span><span style="color: green">Target field: MA_DKBD - Mã nơi đăng ký KCB ban đầu FHIR path: VNCoreCoverage.extension[primaryCareFacility].valueReference.identifier.value Mapping note: OHP/QD3176 export validator permits up to 2 values aligned with multiple BHYT cards; this remains the registered primary care facility, not MA_CSKCB.</span>
sourceBundle.entry<b> as </b><span style="color: maroon">gtTheTuSource</span><span style="color: navy"><b> -> </b></span>targetRow.gtTheTu <i>"gtTheTu"</i><span style="color: navy">;</span> <span style="color: navy">// </span><span style="color: green">Target field: GT_THE_TU - Giá trị thẻ từ ngày FHIR path: VNCoreCoverage.period.start Mapping note: OHP/QD3176 export validator permits up to 2 values aligned with multiple BHYT cards.</span>
sourceBundle.entry<b> as </b><span style="color: maroon">gtTheDenSource</span><span style="color: navy"><b> -> </b></span>targetRow.gtTheDen <i>"gtTheDen"</i><span style="color: navy">;</span> <span style="color: navy">// </span><span style="color: green">Target field: GT_THE_DEN - Giá trị thẻ đến ngày FHIR path: VNCoreCoverage.period.end Mapping note: OHP/QD3176 export validator permits up to 2 values aligned with multiple BHYT cards.</span>
sourceBundle.entry<b> as </b><span style="color: maroon">lyDoVvSource</span><span style="color: navy"><b> -> </b></span>targetRow.lyDoVv <i>"lyDoVv"</i><span style="color: navy">;</span> <span style="color: navy">// </span><span style="color: green">Target field: LY_DO_VV - Lý do vào viện FHIR path: VNCoreEncounter.reasonCode | VNCoreEncounter.reasonReference.resolve().code</span>
sourceBundle.entry<b> as </b><span style="color: maroon">lyDoVntSource</span><span style="color: navy"><b> -> </b></span>targetRow.lyDoVnt <i>"lyDoVnt"</i><span style="color: navy">;</span> <span style="color: navy">// </span><span style="color: green">Target field: LY_DO_VNT - Lý do vào nội trú FHIR path: VNCoreEncounter.hospitalization.admitSource | VNCoreEncounter.reasonCode Mapping note: Conditionally required for selected inpatient/day-treatment MA_LOAI_KCB values.</span>
sourceBundle.entry<b> as </b><span style="color: maroon">maLyDoVntSource</span><span style="color: navy"><b> -> </b></span>targetRow.maLyDoVnt <i>"maLyDoVnt"</i><span style="color: navy">;</span> <span style="color: navy">// </span><span style="color: green">Target field: MA_LY_DO_VNT - Mã lý do vào nội trú FHIR path: VNCoreEncounter.hospitalization.admitSource.coding.code</span>
sourceBundle.entry<b> as </b><span style="color: maroon">chanDoanVaoSource</span><span style="color: navy"><b> -> </b></span>targetRow.chanDoanVao <i>"chanDoanVao"</i><span style="color: navy">;</span> <span style="color: navy">// </span><span style="color: green">Target field: CHAN_DOAN_VAO - Chẩn đoán vào viện FHIR path: VNCoreEncounter.reasonCode | VNCoreComposition.section[chiefComplaint].text</span>
sourceBundle.entry<b> as </b><span style="color: maroon">chanDoanRvSource</span><span style="color: navy"><b> -> </b></span>targetRow.chanDoanRv <i>"chanDoanRv"</i><span style="color: navy">;</span> <span style="color: navy">// </span><span style="color: green">Target field: CHAN_DOAN_RV - Chẩn đoán ra viện FHIR path: VNCoreCondition.code.text | VNCoreComposition.section[diagnosis].text</span>
sourceBundle.entry<b> as </b><span style="color: maroon">maBenhChinhSource</span><span style="color: navy"><b> -> </b></span>targetRow.maBenhChinh <i>"maBenhChinh"</i><span style="color: navy">;</span> <span style="color: navy">// </span><span style="color: green">Target field: MA_BENH_CHINH - Mã bệnh chính FHIR path: VNCoreClaim.diagnosis.where(type='principal').diagnosisCodeableConcept | VNCoreCondition.code</span>
sourceBundle.entry<b> as </b><span style="color: maroon">maBenhKtSource</span><span style="color: navy"><b> -> </b></span>targetRow.maBenhKt <i>"maBenhKt"</i><span style="color: navy">;</span> <span style="color: navy">// </span><span style="color: green">Target field: MA_BENH_KT - Mã bệnh kèm theo FHIR path: VNCoreClaim.diagnosis.where(type!='principal').diagnosisCodeableConcept | VNCoreCondition.code</span>
sourceBundle.entry<b> as </b><span style="color: maroon">maBenhYhctSource</span><span style="color: navy"><b> -> </b></span>targetRow.maBenhYhct <i>"maBenhYhct"</i><span style="color: navy">;</span> <span style="color: navy">// </span><span style="color: green">Target field: MA_BENH_YHCT - Mã bệnh y học cổ truyền FHIR path: VNCoreClaim.diagnosis.diagnosisCodeableConcept.coding[yhct].code | VNCoreCondition.code.coding[yhct].code</span>
sourceBundle.entry<b> as </b><span style="color: maroon">maPtttQtSource</span><span style="color: navy"><b> -> </b></span>targetRow.maPtttQt <i>"maPtttQt"</i><span style="color: navy">;</span> <span style="color: navy">// </span><span style="color: green">Target field: MA_PTTT_QT - Mã phương thức thanh toán FHIR path: VNCoreClaim.extension[paymentMethod].valueCodeableConcept.coding.code</span>
sourceBundle.entry<b> as </b><span style="color: maroon">maDoituongKcbSource</span><span style="color: navy"><b> -> </b></span>targetRow.maDoituongKcb <i>"maDoituongKcb"</i><span style="color: navy">;</span> <span style="color: navy">// </span><span style="color: green">Target field: MA_DOITUONG_KCB - Mã đối tượng đến KCB FHIR path: VNCoreClaim.subType Mapping note: Do not map to Coverage.extension[bhytCardType]; this is visit classification, not the insured/card group.</span>
sourceBundle.entry<b> as </b><span style="color: maroon">maNoiDiSource</span><span style="color: navy"><b> -> </b></span>targetRow.maNoiDi <i>"maNoiDi"</i><span style="color: navy">;</span> <span style="color: navy">// </span><span style="color: green">Target field: MA_NOI_DI - Mã nơi đi FHIR path: VNCoreEncounter.hospitalization.origin.resolve().identifier[CSKCB].value</span>
sourceBundle.entry<b> as </b><span style="color: maroon">maNoiDenSource</span><span style="color: navy"><b> -> </b></span>targetRow.maNoiDen <i>"maNoiDen"</i><span style="color: navy">;</span> <span style="color: navy">// </span><span style="color: green">Target field: MA_NOI_DEN - Mã nơi đến FHIR path: VNCoreEncounter.hospitalization.destination.resolve().identifier[CSKCB].value</span>
sourceBundle.entry<b> as </b><span style="color: maroon">maTaiNanSource</span><span style="color: navy"><b> -> </b></span>targetRow.maTaiNan <i>"maTaiNan"</i><span style="color: navy">;</span> <span style="color: navy">// </span><span style="color: green">Target field: MA_TAI_NAN - Mã tai nạn FHIR path: VNCoreClaim.accident.type</span>
sourceBundle.entry<b> as </b><span style="color: maroon">ngayVaoSource</span><span style="color: navy"><b> -> </b></span>targetRow.ngayVao <i>"ngayVao"</i><span style="color: navy">;</span> <span style="color: navy">// </span><span style="color: green">Target field: NGAY_VAO - Ngày vào theo định dạng yyyyMMddHHmm FHIR path: VNCoreEncounter.period.start | VNCoreClaim.created</span>
sourceBundle.entry<b> as </b><span style="color: maroon">ngayVaoNoiTruSource</span><span style="color: navy"><b> -> </b></span>targetRow.ngayVaoNoiTru <i>"ngayVaoNoiTru"</i><span style="color: navy">;</span> <span style="color: navy">// </span><span style="color: green">Target field: NGAY_VAO_NOI_TRU - Ngày vào nội trú FHIR path: VNCoreEncounter.hospitalization | future admission instant extension</span>
sourceBundle.entry<b> as </b><span style="color: maroon">ngayRaSource</span><span style="color: navy"><b> -> </b></span>targetRow.ngayRa <i>"ngayRa"</i><span style="color: navy">;</span> <span style="color: navy">// </span><span style="color: green">Target field: NGAY_RA - Ngày ra theo định dạng yyyyMMddHHmm FHIR path: VNCoreEncounter.period.end | VNCoreClaim.created</span>
sourceBundle.entry<b> as </b><span style="color: maroon">soNgayDtriSource</span><span style="color: navy"><b> -> </b></span>targetRow.soNgayDtri <i>"soNgayDtri"</i><span style="color: navy">;</span> <span style="color: navy">// </span><span style="color: green">Target field: SO_NGAY_DTRI - Số ngày điều trị FHIR path: Derived from VNCoreEncounter.period.start/end | VNCoreEncounter.length.value</span>
sourceBundle.entry<b> as </b><span style="color: maroon">ketQuaDtriSource</span><span style="color: navy"><b> -> </b></span>targetRow.ketQuaDtri <i>"ketQuaDtri"</i><span style="color: navy">;</span> <span style="color: navy">// </span><span style="color: green">Target field: KET_QUA_DTRI - Kết quả điều trị FHIR path: VNCoreEncounter.extension[treatmentOutcome].valueCodeableConcept</span>
sourceBundle.entry<b> as </b><span style="color: maroon">maLoaiRvSource</span><span style="color: navy"><b> -> </b></span>targetRow.maLoaiRv <i>"maLoaiRv"</i><span style="color: navy">;</span> <span style="color: navy">// </span><span style="color: green">Target field: MA_LOAI_RV - Mã loại ra viện FHIR path: VNCoreEncounter.hospitalization.dischargeDisposition</span>
sourceBundle.entry<b> as </b><span style="color: maroon">ngayTtoanSource</span><span style="color: navy"><b> -> </b></span>targetRow.ngayTtoan <i>"ngayTtoan"</i><span style="color: navy">;</span> <span style="color: navy">// </span><span style="color: green">Target field: NGAY_TTOAN - Ngày thanh toán FHIR path: VNCoreExplanationOfBenefit.created | VNCoreClaimResponse.created</span>
sourceBundle.entry<b> as </b><span style="color: maroon">tThuocSource</span><span style="color: navy"><b> -> </b></span>targetRow.tThuoc <i>"tThuoc"</i><span style="color: navy">;</span> <span style="color: navy">// </span><span style="color: green">Target field: T_THUOC - Tổng tiền thuốc FHIR path: VNCoreClaim.extension[costSummary].extension[totalMedication].valueMoney.value | VNCoreExplanationOfBenefit.extension[costSummary].extension[totalMedication].valueMoney.value</span>
sourceBundle.entry<b> as </b><span style="color: maroon">tVtytSource</span><span style="color: navy"><b> -> </b></span>targetRow.tVtyt <i>"tVtyt"</i><span style="color: navy">;</span> <span style="color: navy">// </span><span style="color: green">Target field: T_VTYT - Tổng tiền vật tư y tế FHIR path: VNCoreClaim.extension[costSummary].extension[totalSupplies].valueMoney.value | VNCoreExplanationOfBenefit.extension[costSummary].extension[totalSupplies].valueMoney.value</span>
sourceBundle.entry<b> as </b><span style="color: maroon">tTongchiBvSource</span><span style="color: navy"><b> -> </b></span>targetRow.tTongchiBv <i>"tTongchiBv"</i><span style="color: navy">;</span> <span style="color: navy">// </span><span style="color: green">Target field: T_TONGCHI_BV - Tổng chi phí bệnh viện FHIR path: VNCoreClaim.total.value | VNCoreExplanationOfBenefit.total.amount</span>
sourceBundle.entry<b> as </b><span style="color: maroon">tTongchiBhSource</span><span style="color: navy"><b> -> </b></span>targetRow.tTongchiBh <i>"tTongchiBh"</i><span style="color: navy">;</span> <span style="color: navy">// </span><span style="color: green">Target field: T_TONGCHI_BH - Tổng chi phí thuộc phạm vi BHYT FHIR path: VNCoreExplanationOfBenefit.total.where(category='eligible').amount.value | VNCoreClaimResponse.total.where(category='eligible').amount.value</span>
sourceBundle.entry<b> as </b><span style="color: maroon">tBnttSource</span><span style="color: navy"><b> -> </b></span>targetRow.tBntt <i>"tBntt"</i><span style="color: navy">;</span> <span style="color: navy">// </span><span style="color: green">Target field: T_BNTT - Người bệnh tự trả FHIR path: VNCoreClaim.extension[costSummary].extension[totalPatientSelfPay].valueMoney.value | Derived from VNCoreClaimResponse.total.where(category='submitted').amount - .where(category='eligible').amount</span>
sourceBundle.entry<b> as </b><span style="color: maroon">tBncctSource</span><span style="color: navy"><b> -> </b></span>targetRow.tBncct <i>"tBncct"</i><span style="color: navy">;</span> <span style="color: navy">// </span><span style="color: green">Target field: T_BNCCT - Người bệnh cùng chi trả FHIR path: VNCoreClaim.extension[costSummary].extension[totalPatientCopay].valueMoney.value | VNCoreClaimResponse.total.where(category='copay').amount.value | VNCoreExplanationOfBenefit.total.where(category='copay').amount.value</span>
sourceBundle.entry<b> as </b><span style="color: maroon">tBhttSource</span><span style="color: navy"><b> -> </b></span>targetRow.tBhtt <i>"tBhtt"</i><span style="color: navy">;</span> <span style="color: navy">// </span><span style="color: green">Target field: T_BHTT - Quỹ BHYT thanh toán FHIR path: VNCoreClaim.extension[costSummary].extension[totalInsurance].valueMoney.value | VNCoreClaimResponse.total.where(category='benefit').amount.value | VNCoreExplanationOfBenefit.total.where(category='benefit').amount.value</span>
sourceBundle.entry<b> as </b><span style="color: maroon">tNguonkhacSource</span><span style="color: navy"><b> -> </b></span>targetRow.tNguonkhac <i>"tNguonkhac"</i><span style="color: navy">;</span> <span style="color: navy">// </span><span style="color: green">Target field: T_NGUONKHAC - Nguồn khác FHIR path: VNCoreClaim.extension[costSummary].extension[totalOtherFund].valueMoney.value | VNCoreExplanationOfBenefit.extension[costSummary].extension[totalOtherFund].valueMoney.value</span>
sourceBundle.entry<b> as </b><span style="color: maroon">namQtSource</span><span style="color: navy"><b> -> </b></span>targetRow.namQt <i>"namQt"</i><span style="color: navy">;</span> <span style="color: navy">// </span><span style="color: green">Target field: NAM_QT - Năm quyết toán FHIR path: VNCoreClaim.extension[paymentPeriod].extension[year]</span>
sourceBundle.entry<b> as </b><span style="color: maroon">thangQtSource</span><span style="color: navy"><b> -> </b></span>targetRow.thangQt <i>"thangQt"</i><span style="color: navy">;</span> <span style="color: navy">// </span><span style="color: green">Target field: THANG_QT - Tháng quyết toán FHIR path: VNCoreClaim.extension[paymentPeriod].extension[month]</span>
sourceBundle.entry<b> as </b><span style="color: maroon">maLoaiKcbSource</span><span style="color: navy"><b> -> </b></span>targetRow.maLoaiKcb <i>"maLoaiKcb"</i><span style="color: navy">;</span> <span style="color: navy">// </span><span style="color: green">Target field: MA_LOAI_KCB - Mã loại khám chữa bệnh FHIR path: VNCoreEncounter.type</span>
sourceBundle.entry<b> as </b><span style="color: maroon">maKhoaSource</span><span style="color: navy"><b> -> </b></span>targetRow.maKhoa <i>"maKhoa"</i><span style="color: navy">;</span> <span style="color: navy">// </span><span style="color: green">Target field: MA_KHOA - Mã khoa FHIR path: VNCoreClaim.item.extension[department].valueCodeableConcept.coding.code | VNCoreEncounter.serviceType</span>
sourceBundle.entry<b> as </b><span style="color: maroon">maCskcbSource</span><span style="color: navy"><b> -> </b></span>targetRow.maCskcb <i>"maCskcb"</i><span style="color: navy">;</span> <span style="color: navy">// </span><span style="color: green">Target field: MA_CSKCB - Mã cơ sở khám chữa bệnh FHIR path: VNCoreEncounter.serviceProvider.resolve().identifier[CSKCB].value | VNCoreClaim.provider.resolve().identifier[CSKCB].value Mapping note: Actual visit/submission provider. Do not fall back to MA_DKBD on Coverage.</span>
sourceBundle.entry<b> as </b><span style="color: maroon">canNangSource</span><span style="color: navy"><b> -> </b></span>targetRow.canNang <i>"canNang"</i><span style="color: navy">;</span> <span style="color: navy">// </span><span style="color: green">Target field: CAN_NANG - Cân nặng FHIR path: VNCoreObservationBodyWeight.valueQuantity.value</span>
sourceBundle.entry<b> as </b><span style="color: maroon">ngayTaiKhamSource</span><span style="color: navy"><b> -> </b></span>targetRow.ngayTaiKham <i>"ngayTaiKham"</i><span style="color: navy">;</span> <span style="color: navy">// </span><span style="color: green">Target field: NGAY_TAI_KHAM - Ngày tái khám FHIR path: VNCoreServiceRequest.occurrenceDateTime | Appointment.start</span>
sourceBundle.entry<b> as </b><span style="color: maroon">maHsbaSource</span><span style="color: navy"><b> -> </b></span>targetRow.maHsba <i>"maHsba"</i><span style="color: navy">;</span> <span style="color: navy">// </span><span style="color: green">Target field: MA_HSBA - Mã hồ sơ bệnh án FHIR path: VNCoreComposition.identifier.value | VNCoreDocumentReference.identifier.value</span>
sourceBundle.entry<b> as </b><span style="color: maroon">maTtdvSource</span><span style="color: navy"><b> -> </b></span>targetRow.maTtdv <i>"maTtdv"</i><span style="color: navy">;</span> <span style="color: navy">// </span><span style="color: green">Target field: MA_TTDV - Mã thủ trưởng đơn vị/người ký FHIR path: VNCoreComposition.author.resolve().identifier.value | VNCoreDocumentReference.author.resolve().identifier.value | VNCoreProvenance.signature.who.resolve().identifier.value</span>
<span style="color: navy">}
</span></pre></div>
</text>
<url
value="http://fhir.hl7.org.vn/core/StructureMap/vn-sm-bhyt-xml1-summary"/>
<version value="0.5.0"/>
<name value="BHYTXML1SummaryLMStructureMap"/>
<title value="Bảng 1 tổng hợp KCB BHYT — Logical Model — StructureMap"/>
<status value="draft"/>
<experimental value="false"/>
<date value="2026-04-28"/>
<publisher value="Omi HealthTech / VN Core FHIR Community Initiative"/>
<contact>
<name value="Omi HealthTech / VN Core FHIR Community Initiative"/>
<telecom>
<system value="url"/>
<value value="https://hl7.org.vn"/>
</telecom>
<telecom>
<system value="email"/>
<value value="[email protected]"/>
</telecom>
</contact>
<contact>
<name value="Omi HealthTech (OmiGroup)"/>
<telecom>
<system value="url"/>
<value value="https://omihealthtech.vn"/>
</telecom>
<telecom>
<system value="url"/>
<value value="https://omigroup.vn"/>
</telecom>
<telecom>
<system value="email"/>
<value value="[email protected]"/>
</telecom>
</contact>
<description
value="Generated StructureMap scaffold for Bảng 1 tổng hợp KCB BHYT — Logical Model. Source semantics come from the logical model mapping annotations in `BHYTXML1SummaryLM.fsh` and remain aligned with the Python BHYT round-trip export adapter."/>
<jurisdiction>
<coding>
<system value="urn:iso:std:iso:3166"/>
<code value="VN"/>
<display value="Viet Nam"/>
</coding>
</jurisdiction>
<purpose
value="Publish canonical, reviewable FHIR-to-BHYT XML mapping artifacts for XML1-XML12 without duplicating field-level mapping semantics across FSH, wiki, and export code."/>
<structure>
<url
value="http://fhir.hl7.org.vn/core/StructureDefinition/vn-core-bhyt-submission-bundle"/>
<mode value="source"/>
<alias value="BHYTSubmissionBundle"/>
<documentation
value="FHIR-native source bundle profile used by the repository round-trip adapter."/>
</structure>
<structure>
<url
value="http://fhir.hl7.org.vn/core/StructureDefinition/bhytXml1SummaryLm"/>
<mode value="target"/>
<alias value="BHYTXML1SummaryLM"/>
<documentation value="Bảng 1 tổng hợp KCB BHYT — Logical Model"/>
</structure>
<group>
<name value="MapBHYTXML1SummaryLM"/>
<typeMode value="none"/>
<documentation
value="Full QD 3176 XML1 field catalog. StructureMap/export rules must preserve source field names and financial semantics. Generated from logical-model `^mapping` annotations. Fields still missing a field-level `^mapping.map` entry remain outside this StructureMap and are tracked in `wiki/mappings/bhyt-output-data/machine/structuremap-coverage.json`."/>
<input>
<name value="sourceBundle"/>
<type value="BHYTSubmissionBundle"/>
<mode value="source"/>
<documentation value="VN Core BHYT submission bundle."/>
</input>
<input>
<name value="targetRow"/>
<type value="BHYTXML1SummaryLM"/>
<mode value="target"/>
<documentation value="Bảng 1 tổng hợp KCB BHYT — Logical Model"/>
</input>
<rule>
<name value="maLk"/>
<source>
<context value="sourceBundle"/>
<min value="0"/>
<max value="*"/>
<element value="entry"/>
<variable value="maLkSource"/>
</source>
<target>
<context value="targetRow"/>
<contextType value="variable"/>
<element value="maLk"/>
</target>
<documentation
value="Target field: MA_LK - Mã liên kết hồ sơ FHIR path: VNCoreClaim.identifier[MALK].value"/>
</rule>
<rule>
<name value="stt"/>
<source>
<context value="sourceBundle"/>
<min value="0"/>
<max value="*"/>
<element value="entry"/>
<variable value="sttSource"/>
</source>
<target>
<context value="targetRow"/>
<contextType value="variable"/>
<element value="stt"/>
</target>
<documentation
value="Target field: STT - Số thứ tự FHIR path: Derived export row order"/>
</rule>
<rule>
<name value="maBn"/>
<source>
<context value="sourceBundle"/>
<min value="0"/>
<max value="*"/>
<element value="entry"/>
<variable value="maBnSource"/>
</source>
<target>
<context value="targetRow"/>
<contextType value="variable"/>
<element value="maBn"/>
</target>
<documentation
value="Target field: MA_BN - Mã người bệnh tại cơ sở FHIR path: VNCorePatient.identifier[MRN].value"/>
</rule>
<rule>
<name value="hoTen"/>
<source>
<context value="sourceBundle"/>
<min value="0"/>
<max value="*"/>
<element value="entry"/>
<variable value="hoTenSource"/>
</source>
<target>
<context value="targetRow"/>
<contextType value="variable"/>
<element value="hoTen"/>
</target>
<documentation
value="Target field: HO_TEN - Họ tên người bệnh FHIR path: VNCorePatient.name.text"/>
</rule>
<rule>
<name value="ngaySinh"/>
<source>
<context value="sourceBundle"/>
<min value="0"/>
<max value="*"/>
<element value="entry"/>
<variable value="ngaySinhSource"/>
</source>
<target>
<context value="targetRow"/>
<contextType value="variable"/>
<element value="ngaySinh"/>
</target>
<documentation
value="Target field: NGAY_SINH - Ngày sinh FHIR path: VNCorePatient.birthDate"/>
</rule>
<rule>
<name value="gioiTinh"/>
<source>
<context value="sourceBundle"/>
<min value="0"/>
<max value="*"/>
<element value="entry"/>
<variable value="gioiTinhSource"/>
</source>
<target>
<context value="targetRow"/>
<contextType value="variable"/>
<element value="gioiTinh"/>
</target>
<documentation
value="Target field: GIOI_TINH - Giới tính FHIR path: VNCorePatient.gender"/>
</rule>
<rule>
<name value="maQuocTich"/>
<source>
<context value="sourceBundle"/>
<min value="0"/>
<max value="*"/>
<element value="entry"/>
<variable value="maQuocTichSource"/>
</source>
<target>
<context value="targetRow"/>
<contextType value="variable"/>
<element value="maQuocTich"/>
</target>
<documentation
value="Target field: MA_QUOCTICH - Mã quốc tịch FHIR path: VNCorePatient.extension[nationality].valueCodeableConcept.coding.code"/>
</rule>
<rule>
<name value="maDanToc"/>
<source>
<context value="sourceBundle"/>
<min value="0"/>
<max value="*"/>
<element value="entry"/>
<variable value="maDanTocSource"/>
</source>
<target>
<context value="targetRow"/>
<contextType value="variable"/>
<element value="maDanToc"/>
</target>
<documentation
value="Target field: MA_DANTOC - Mã dân tộc FHIR path: VNCorePatient.extension[ethnicity].valueCodeableConcept.coding.code"/>
</rule>
<rule>
<name value="maNgheNghiep"/>
<source>
<context value="sourceBundle"/>
<min value="0"/>
<max value="*"/>
<element value="entry"/>
<variable value="maNgheNghiepSource"/>
</source>
<target>
<context value="targetRow"/>
<contextType value="variable"/>
<element value="maNgheNghiep"/>
</target>
<documentation
value="Target field: MA_NGHE_NGHIEP - Mã nghề nghiệp FHIR path: VNCorePatient.extension[occupation].valueCodeableConcept.coding.code"/>
</rule>
<rule>
<name value="diaChi"/>
<source>
<context value="sourceBundle"/>
<min value="0"/>
<max value="*"/>
<element value="entry"/>
<variable value="diaChiSource"/>
</source>
<target>
<context value="targetRow"/>
<contextType value="variable"/>
<element value="diaChi"/>
</target>
<documentation
value="Target field: DIA_CHI - Địa chỉ FHIR path: VNCorePatient.address.text"/>
</rule>
<rule>
<name value="maTinhCuTru"/>
<source>
<context value="sourceBundle"/>
<min value="0"/>
<max value="*"/>
<element value="entry"/>
<variable value="maTinhCuTruSource"/>
</source>
<target>
<context value="targetRow"/>
<contextType value="variable"/>
<element value="maTinhCuTru"/>
</target>
<documentation
value="Target field: MATINH_CU_TRU - Mã tỉnh cư trú FHIR path: VNCorePatient.address.extension[province].valueCodeableConcept.coding.code"/>
</rule>
<rule>
<name value="maHuyenCuTru"/>
<source>
<context value="sourceBundle"/>
<min value="0"/>
<max value="*"/>
<element value="entry"/>
<variable value="maHuyenCuTruSource"/>
</source>
<target>
<context value="targetRow"/>
<contextType value="variable"/>
<element value="maHuyenCuTru"/>
</target>
<documentation
value="Target field: MAHUYEN_CU_TRU - Mã huyện cư trú legacy FHIR path: VNCorePatient.address.district"/>
</rule>
<rule>
<name value="maXaCuTru"/>
<source>
<context value="sourceBundle"/>
<min value="0"/>
<max value="*"/>
<element value="entry"/>
<variable value="maXaCuTruSource"/>
</source>
<target>
<context value="targetRow"/>
<contextType value="variable"/>
<element value="maXaCuTru"/>
</target>
<documentation
value="Target field: MAXA_CU_TRU - Mã xã cư trú FHIR path: VNCorePatient.address.extension[ward].valueCodeableConcept.coding.code"/>
</rule>
<rule>
<name value="dienThoai"/>
<source>
<context value="sourceBundle"/>
<min value="0"/>
<max value="*"/>
<element value="entry"/>
<variable value="dienThoaiSource"/>
</source>
<target>
<context value="targetRow"/>
<contextType value="variable"/>
<element value="dienThoai"/>
</target>
<documentation
value="Target field: DIEN_THOAI - Số điện thoại FHIR path: VNCorePatient.telecom.where(system='phone').value"/>
</rule>
<rule>
<name value="maTheBhyt"/>
<source>
<context value="sourceBundle"/>
<min value="0"/>
<max value="*"/>
<element value="entry"/>
<variable value="maTheBhytSource"/>
</source>
<target>
<context value="targetRow"/>
<contextType value="variable"/>
<element value="maTheBhyt"/>
</target>
<documentation
value="Target field: MA_THE_BHYT - Mã thẻ BHYT FHIR path: VNCoreCoverage.identifier[BHYT].value | VNCorePatient.identifier[BHYT].value Mapping note: OHP/QD3176 export validator permits up to 2 BHYT card values; map repeated cards to focal/supplemental Coverage entries."/>
</rule>
<rule>
<name value="maDkbd"/>
<source>
<context value="sourceBundle"/>
<min value="0"/>
<max value="*"/>
<element value="entry"/>
<variable value="maDkbdSource"/>
</source>
<target>
<context value="targetRow"/>
<contextType value="variable"/>
<element value="maDkbd"/>
</target>
<documentation
value="Target field: MA_DKBD - Mã nơi đăng ký KCB ban đầu FHIR path: VNCoreCoverage.extension[primaryCareFacility].valueReference.identifier.value Mapping note: OHP/QD3176 export validator permits up to 2 values aligned with multiple BHYT cards; this remains the registered primary care facility, not MA_CSKCB."/>
</rule>
<rule>
<name value="gtTheTu"/>
<source>
<context value="sourceBundle"/>
<min value="0"/>
<max value="*"/>
<element value="entry"/>
<variable value="gtTheTuSource"/>
</source>
<target>
<context value="targetRow"/>
<contextType value="variable"/>
<element value="gtTheTu"/>
</target>
<documentation
value="Target field: GT_THE_TU - Giá trị thẻ từ ngày FHIR path: VNCoreCoverage.period.start Mapping note: OHP/QD3176 export validator permits up to 2 values aligned with multiple BHYT cards."/>
</rule>
<rule>
<name value="gtTheDen"/>
<source>
<context value="sourceBundle"/>
<min value="0"/>
<max value="*"/>
<element value="entry"/>
<variable value="gtTheDenSource"/>
</source>
<target>
<context value="targetRow"/>
<contextType value="variable"/>
<element value="gtTheDen"/>
</target>
<documentation
value="Target field: GT_THE_DEN - Giá trị thẻ đến ngày FHIR path: VNCoreCoverage.period.end Mapping note: OHP/QD3176 export validator permits up to 2 values aligned with multiple BHYT cards."/>
</rule>
<rule>
<name value="lyDoVv"/>
<source>
<context value="sourceBundle"/>
<min value="0"/>
<max value="*"/>
<element value="entry"/>
<variable value="lyDoVvSource"/>
</source>
<target>
<context value="targetRow"/>
<contextType value="variable"/>
<element value="lyDoVv"/>
</target>
<documentation
value="Target field: LY_DO_VV - Lý do vào viện FHIR path: VNCoreEncounter.reasonCode | VNCoreEncounter.reasonReference.resolve().code"/>
</rule>
<rule>
<name value="lyDoVnt"/>
<source>
<context value="sourceBundle"/>
<min value="0"/>
<max value="*"/>
<element value="entry"/>
<variable value="lyDoVntSource"/>
</source>
<target>
<context value="targetRow"/>
<contextType value="variable"/>
<element value="lyDoVnt"/>
</target>
<documentation
value="Target field: LY_DO_VNT - Lý do vào nội trú FHIR path: VNCoreEncounter.hospitalization.admitSource | VNCoreEncounter.reasonCode Mapping note: Conditionally required for selected inpatient/day-treatment MA_LOAI_KCB values."/>
</rule>
<rule>
<name value="maLyDoVnt"/>
<source>
<context value="sourceBundle"/>
<min value="0"/>
<max value="*"/>
<element value="entry"/>
<variable value="maLyDoVntSource"/>
</source>
<target>
<context value="targetRow"/>
<contextType value="variable"/>
<element value="maLyDoVnt"/>
</target>
<documentation
value="Target field: MA_LY_DO_VNT - Mã lý do vào nội trú FHIR path: VNCoreEncounter.hospitalization.admitSource.coding.code"/>
</rule>
<rule>
<name value="chanDoanVao"/>
<source>
<context value="sourceBundle"/>
<min value="0"/>
<max value="*"/>
<element value="entry"/>
<variable value="chanDoanVaoSource"/>
</source>
<target>
<context value="targetRow"/>
<contextType value="variable"/>
<element value="chanDoanVao"/>
</target>
<documentation
value="Target field: CHAN_DOAN_VAO - Chẩn đoán vào viện FHIR path: VNCoreEncounter.reasonCode | VNCoreComposition.section[chiefComplaint].text"/>
</rule>
<rule>
<name value="chanDoanRv"/>
<source>
<context value="sourceBundle"/>
<min value="0"/>
<max value="*"/>
<element value="entry"/>
<variable value="chanDoanRvSource"/>
</source>
<target>
<context value="targetRow"/>
<contextType value="variable"/>
<element value="chanDoanRv"/>
</target>
<documentation
value="Target field: CHAN_DOAN_RV - Chẩn đoán ra viện FHIR path: VNCoreCondition.code.text | VNCoreComposition.section[diagnosis].text"/>
</rule>
<rule>
<name value="maBenhChinh"/>
<source>
<context value="sourceBundle"/>
<min value="0"/>
<max value="*"/>
<element value="entry"/>
<variable value="maBenhChinhSource"/>
</source>
<target>
<context value="targetRow"/>
<contextType value="variable"/>
<element value="maBenhChinh"/>
</target>
<documentation
value="Target field: MA_BENH_CHINH - Mã bệnh chính FHIR path: VNCoreClaim.diagnosis.where(type='principal').diagnosisCodeableConcept | VNCoreCondition.code"/>
</rule>
<rule>
<name value="maBenhKt"/>
<source>
<context value="sourceBundle"/>
<min value="0"/>
<max value="*"/>
<element value="entry"/>
<variable value="maBenhKtSource"/>
</source>
<target>
<context value="targetRow"/>
<contextType value="variable"/>
<element value="maBenhKt"/>
</target>
<documentation
value="Target field: MA_BENH_KT - Mã bệnh kèm theo FHIR path: VNCoreClaim.diagnosis.where(type!='principal').diagnosisCodeableConcept | VNCoreCondition.code"/>
</rule>
<rule>
<name value="maBenhYhct"/>
<source>
<context value="sourceBundle"/>
<min value="0"/>
<max value="*"/>
<element value="entry"/>
<variable value="maBenhYhctSource"/>
</source>
<target>
<context value="targetRow"/>
<contextType value="variable"/>
<element value="maBenhYhct"/>
</target>
<documentation
value="Target field: MA_BENH_YHCT - Mã bệnh y học cổ truyền FHIR path: VNCoreClaim.diagnosis.diagnosisCodeableConcept.coding[yhct].code | VNCoreCondition.code.coding[yhct].code"/>
</rule>
<rule>
<name value="maPtttQt"/>
<source>
<context value="sourceBundle"/>
<min value="0"/>
<max value="*"/>
<element value="entry"/>
<variable value="maPtttQtSource"/>
</source>
<target>
<context value="targetRow"/>
<contextType value="variable"/>
<element value="maPtttQt"/>
</target>
<documentation
value="Target field: MA_PTTT_QT - Mã phương thức thanh toán FHIR path: VNCoreClaim.extension[paymentMethod].valueCodeableConcept.coding.code"/>
</rule>
<rule>
<name value="maDoituongKcb"/>
<source>
<context value="sourceBundle"/>
<min value="0"/>
<max value="*"/>
<element value="entry"/>
<variable value="maDoituongKcbSource"/>
</source>
<target>
<context value="targetRow"/>
<contextType value="variable"/>
<element value="maDoituongKcb"/>
</target>
<documentation
value="Target field: MA_DOITUONG_KCB - Mã đối tượng đến KCB FHIR path: VNCoreClaim.subType Mapping note: Do not map to Coverage.extension[bhytCardType]; this is visit classification, not the insured/card group."/>
</rule>
<rule>
<name value="maNoiDi"/>
<source>
<context value="sourceBundle"/>
<min value="0"/>
<max value="*"/>
<element value="entry"/>
<variable value="maNoiDiSource"/>
</source>
<target>
<context value="targetRow"/>
<contextType value="variable"/>
<element value="maNoiDi"/>
</target>
<documentation
value="Target field: MA_NOI_DI - Mã nơi đi FHIR path: VNCoreEncounter.hospitalization.origin.resolve().identifier[CSKCB].value"/>
</rule>
<rule>
<name value="maNoiDen"/>
<source>
<context value="sourceBundle"/>
<min value="0"/>
<max value="*"/>
<element value="entry"/>
<variable value="maNoiDenSource"/>
</source>
<target>
<context value="targetRow"/>
<contextType value="variable"/>
<element value="maNoiDen"/>
</target>
<documentation
value="Target field: MA_NOI_DEN - Mã nơi đến FHIR path: VNCoreEncounter.hospitalization.destination.resolve().identifier[CSKCB].value"/>
</rule>
<rule>
<name value="maTaiNan"/>
<source>
<context value="sourceBundle"/>
<min value="0"/>
<max value="*"/>
<element value="entry"/>
<variable value="maTaiNanSource"/>
</source>
<target>
<context value="targetRow"/>
<contextType value="variable"/>
<element value="maTaiNan"/>
</target>
<documentation
value="Target field: MA_TAI_NAN - Mã tai nạn FHIR path: VNCoreClaim.accident.type"/>
</rule>
<rule>
<name value="ngayVao"/>
<source>
<context value="sourceBundle"/>
<min value="0"/>
<max value="*"/>
<element value="entry"/>
<variable value="ngayVaoSource"/>
</source>
<target>
<context value="targetRow"/>
<contextType value="variable"/>
<element value="ngayVao"/>
</target>
<documentation
value="Target field: NGAY_VAO - Ngày vào theo định dạng yyyyMMddHHmm FHIR path: VNCoreEncounter.period.start | VNCoreClaim.created"/>
</rule>
<rule>
<name value="ngayVaoNoiTru"/>
<source>
<context value="sourceBundle"/>
<min value="0"/>
<max value="*"/>
<element value="entry"/>
<variable value="ngayVaoNoiTruSource"/>
</source>
<target>
<context value="targetRow"/>
<contextType value="variable"/>
<element value="ngayVaoNoiTru"/>
</target>
<documentation
value="Target field: NGAY_VAO_NOI_TRU - Ngày vào nội trú FHIR path: VNCoreEncounter.hospitalization | future admission instant extension"/>
</rule>
<rule>
<name value="ngayRa"/>
<source>
<context value="sourceBundle"/>
<min value="0"/>
<max value="*"/>
<element value="entry"/>
<variable value="ngayRaSource"/>
</source>
<target>
<context value="targetRow"/>
<contextType value="variable"/>
<element value="ngayRa"/>
</target>
<documentation
value="Target field: NGAY_RA - Ngày ra theo định dạng yyyyMMddHHmm FHIR path: VNCoreEncounter.period.end | VNCoreClaim.created"/>
</rule>
<rule>
<name value="soNgayDtri"/>
<source>
<context value="sourceBundle"/>
<min value="0"/>
<max value="*"/>
<element value="entry"/>
<variable value="soNgayDtriSource"/>
</source>
<target>
<context value="targetRow"/>
<contextType value="variable"/>
<element value="soNgayDtri"/>
</target>
<documentation
value="Target field: SO_NGAY_DTRI - Số ngày điều trị FHIR path: Derived from VNCoreEncounter.period.start/end | VNCoreEncounter.length.value"/>
</rule>
<rule>
<name value="ketQuaDtri"/>
<source>
<context value="sourceBundle"/>
<min value="0"/>
<max value="*"/>
<element value="entry"/>
<variable value="ketQuaDtriSource"/>
</source>
<target>
<context value="targetRow"/>
<contextType value="variable"/>
<element value="ketQuaDtri"/>
</target>
<documentation
value="Target field: KET_QUA_DTRI - Kết quả điều trị FHIR path: VNCoreEncounter.extension[treatmentOutcome].valueCodeableConcept"/>
</rule>
<rule>
<name value="maLoaiRv"/>
<source>
<context value="sourceBundle"/>
<min value="0"/>
<max value="*"/>
<element value="entry"/>
<variable value="maLoaiRvSource"/>
</source>
<target>
<context value="targetRow"/>
<contextType value="variable"/>
<element value="maLoaiRv"/>
</target>
<documentation
value="Target field: MA_LOAI_RV - Mã loại ra viện FHIR path: VNCoreEncounter.hospitalization.dischargeDisposition"/>
</rule>
<rule>
<name value="ngayTtoan"/>
<source>
<context value="sourceBundle"/>
<min value="0"/>
<max value="*"/>
<element value="entry"/>
<variable value="ngayTtoanSource"/>
</source>
<target>
<context value="targetRow"/>
<contextType value="variable"/>
<element value="ngayTtoan"/>
</target>
<documentation
value="Target field: NGAY_TTOAN - Ngày thanh toán FHIR path: VNCoreExplanationOfBenefit.created | VNCoreClaimResponse.created"/>
</rule>
<rule>
<name value="tThuoc"/>
<source>
<context value="sourceBundle"/>
<min value="0"/>
<max value="*"/>
<element value="entry"/>
<variable value="tThuocSource"/>
</source>
<target>
<context value="targetRow"/>
<contextType value="variable"/>
<element value="tThuoc"/>
</target>
<documentation
value="Target field: T_THUOC - Tổng tiền thuốc FHIR path: VNCoreClaim.extension[costSummary].extension[totalMedication].valueMoney.value | VNCoreExplanationOfBenefit.extension[costSummary].extension[totalMedication].valueMoney.value"/>
</rule>
<rule>
<name value="tVtyt"/>
<source>
<context value="sourceBundle"/>
<min value="0"/>
<max value="*"/>
<element value="entry"/>
<variable value="tVtytSource"/>
</source>
<target>
<context value="targetRow"/>
<contextType value="variable"/>
<element value="tVtyt"/>
</target>
<documentation
value="Target field: T_VTYT - Tổng tiền vật tư y tế FHIR path: VNCoreClaim.extension[costSummary].extension[totalSupplies].valueMoney.value | VNCoreExplanationOfBenefit.extension[costSummary].extension[totalSupplies].valueMoney.value"/>
</rule>
<rule>
<name value="tTongchiBv"/>
<source>
<context value="sourceBundle"/>
<min value="0"/>
<max value="*"/>
<element value="entry"/>
<variable value="tTongchiBvSource"/>
</source>
<target>
<context value="targetRow"/>
<contextType value="variable"/>
<element value="tTongchiBv"/>
</target>
<documentation
value="Target field: T_TONGCHI_BV - Tổng chi phí bệnh viện FHIR path: VNCoreClaim.total.value | VNCoreExplanationOfBenefit.total.amount"/>
</rule>
<rule>
<name value="tTongchiBh"/>
<source>
<context value="sourceBundle"/>
<min value="0"/>
<max value="*"/>
<element value="entry"/>
<variable value="tTongchiBhSource"/>
</source>
<target>
<context value="targetRow"/>
<contextType value="variable"/>
<element value="tTongchiBh"/>
</target>
<documentation
value="Target field: T_TONGCHI_BH - Tổng chi phí thuộc phạm vi BHYT FHIR path: VNCoreExplanationOfBenefit.total.where(category='eligible').amount.value | VNCoreClaimResponse.total.where(category='eligible').amount.value"/>
</rule>
<rule>
<name value="tBntt"/>
<source>
<context value="sourceBundle"/>
<min value="0"/>
<max value="*"/>
<element value="entry"/>
<variable value="tBnttSource"/>
</source>
<target>
<context value="targetRow"/>
<contextType value="variable"/>
<element value="tBntt"/>
</target>
<documentation
value="Target field: T_BNTT - Người bệnh tự trả FHIR path: VNCoreClaim.extension[costSummary].extension[totalPatientSelfPay].valueMoney.value | Derived from VNCoreClaimResponse.total.where(category='submitted').amount - .where(category='eligible').amount"/>
</rule>
<rule>
<name value="tBncct"/>
<source>
<context value="sourceBundle"/>
<min value="0"/>
<max value="*"/>
<element value="entry"/>
<variable value="tBncctSource"/>
</source>
<target>
<context value="targetRow"/>
<contextType value="variable"/>
<element value="tBncct"/>
</target>
<documentation
value="Target field: T_BNCCT - Người bệnh cùng chi trả FHIR path: VNCoreClaim.extension[costSummary].extension[totalPatientCopay].valueMoney.value | VNCoreClaimResponse.total.where(category='copay').amount.value | VNCoreExplanationOfBenefit.total.where(category='copay').amount.value"/>
</rule>
<rule>
<name value="tBhtt"/>
<source>
<context value="sourceBundle"/>
<min value="0"/>
<max value="*"/>
<element value="entry"/>
<variable value="tBhttSource"/>
</source>
<target>
<context value="targetRow"/>
<contextType value="variable"/>
<element value="tBhtt"/>
</target>
<documentation
value="Target field: T_BHTT - Quỹ BHYT thanh toán FHIR path: VNCoreClaim.extension[costSummary].extension[totalInsurance].valueMoney.value | VNCoreClaimResponse.total.where(category='benefit').amount.value | VNCoreExplanationOfBenefit.total.where(category='benefit').amount.value"/>
</rule>
<rule>
<name value="tNguonkhac"/>
<source>
<context value="sourceBundle"/>
<min value="0"/>
<max value="*"/>
<element value="entry"/>
<variable value="tNguonkhacSource"/>
</source>
<target>
<context value="targetRow"/>
<contextType value="variable"/>
<element value="tNguonkhac"/>
</target>
<documentation
value="Target field: T_NGUONKHAC - Nguồn khác FHIR path: VNCoreClaim.extension[costSummary].extension[totalOtherFund].valueMoney.value | VNCoreExplanationOfBenefit.extension[costSummary].extension[totalOtherFund].valueMoney.value"/>
</rule>
<rule>
<name value="namQt"/>
<source>
<context value="sourceBundle"/>
<min value="0"/>
<max value="*"/>
<element value="entry"/>
<variable value="namQtSource"/>
</source>
<target>
<context value="targetRow"/>
<contextType value="variable"/>
<element value="namQt"/>
</target>
<documentation
value="Target field: NAM_QT - Năm quyết toán FHIR path: VNCoreClaim.extension[paymentPeriod].extension[year]"/>
</rule>
<rule>
<name value="thangQt"/>
<source>
<context value="sourceBundle"/>
<min value="0"/>
<max value="*"/>
<element value="entry"/>
<variable value="thangQtSource"/>
</source>
<target>
<context value="targetRow"/>
<contextType value="variable"/>
<element value="thangQt"/>
</target>
<documentation
value="Target field: THANG_QT - Tháng quyết toán FHIR path: VNCoreClaim.extension[paymentPeriod].extension[month]"/>
</rule>
<rule>
<name value="maLoaiKcb"/>
<source>
<context value="sourceBundle"/>
<min value="0"/>
<max value="*"/>
<element value="entry"/>
<variable value="maLoaiKcbSource"/>
</source>
<target>
<context value="targetRow"/>
<contextType value="variable"/>
<element value="maLoaiKcb"/>
</target>
<documentation
value="Target field: MA_LOAI_KCB - Mã loại khám chữa bệnh FHIR path: VNCoreEncounter.type"/>
</rule>
<rule>
<name value="maKhoa"/>
<source>
<context value="sourceBundle"/>
<min value="0"/>
<max value="*"/>
<element value="entry"/>
<variable value="maKhoaSource"/>
</source>
<target>
<context value="targetRow"/>
<contextType value="variable"/>
<element value="maKhoa"/>
</target>
<documentation
value="Target field: MA_KHOA - Mã khoa FHIR path: VNCoreClaim.item.extension[department].valueCodeableConcept.coding.code | VNCoreEncounter.serviceType"/>
</rule>
<rule>
<name value="maCskcb"/>
<source>
<context value="sourceBundle"/>
<min value="0"/>
<max value="*"/>
<element value="entry"/>
<variable value="maCskcbSource"/>
</source>
<target>
<context value="targetRow"/>
<contextType value="variable"/>
<element value="maCskcb"/>
</target>
<documentation
value="Target field: MA_CSKCB - Mã cơ sở khám chữa bệnh FHIR path: VNCoreEncounter.serviceProvider.resolve().identifier[CSKCB].value | VNCoreClaim.provider.resolve().identifier[CSKCB].value Mapping note: Actual visit/submission provider. Do not fall back to MA_DKBD on Coverage."/>
</rule>
<rule>
<name value="canNang"/>
<source>
<context value="sourceBundle"/>
<min value="0"/>
<max value="*"/>
<element value="entry"/>
<variable value="canNangSource"/>
</source>
<target>
<context value="targetRow"/>
<contextType value="variable"/>
<element value="canNang"/>
</target>
<documentation
value="Target field: CAN_NANG - Cân nặng FHIR path: VNCoreObservationBodyWeight.valueQuantity.value"/>
</rule>
<rule>
<name value="ngayTaiKham"/>
<source>
<context value="sourceBundle"/>
<min value="0"/>
<max value="*"/>
<element value="entry"/>
<variable value="ngayTaiKhamSource"/>
</source>
<target>
<context value="targetRow"/>
<contextType value="variable"/>
<element value="ngayTaiKham"/>
</target>
<documentation
value="Target field: NGAY_TAI_KHAM - Ngày tái khám FHIR path: VNCoreServiceRequest.occurrenceDateTime | Appointment.start"/>
</rule>
<rule>
<name value="maHsba"/>
<source>
<context value="sourceBundle"/>
<min value="0"/>
<max value="*"/>
<element value="entry"/>
<variable value="maHsbaSource"/>
</source>
<target>
<context value="targetRow"/>
<contextType value="variable"/>
<element value="maHsba"/>
</target>
<documentation
value="Target field: MA_HSBA - Mã hồ sơ bệnh án FHIR path: VNCoreComposition.identifier.value | VNCoreDocumentReference.identifier.value"/>
</rule>
<rule>
<name value="maTtdv"/>
<source>
<context value="sourceBundle"/>
<min value="0"/>
<max value="*"/>
<element value="entry"/>
<variable value="maTtdvSource"/>
</source>
<target>
<context value="targetRow"/>
<contextType value="variable"/>
<element value="maTtdv"/>
</target>
<documentation
value="Target field: MA_TTDV - Mã thủ trưởng đơn vị/người ký FHIR path: VNCoreComposition.author.resolve().identifier.value | VNCoreDocumentReference.author.resolve().identifier.value | VNCoreProvenance.signature.who.resolve().identifier.value"/>
</rule>
</group>
</StructureMap>