HL7 Vietnam VN Core FHIR Implementation Guide

Bộ Hướng dẫn Triển khai Core FHIR cho Việt Nam
0.8.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.8.0) built by the FHIR (HL7® FHIR® Standard) Build Tools. See the Directory of published versions

: Bảng 9 giấy chứng sinh — XML9 Birth Certificate Logical Model — StructureMap

Draft tại thời điểm 2026-04-28

Bản thô xml | Tải xuống


<StructureMap xmlns="http://hl7.org/fhir">
  <id value="vn-sm-bhyt-xml9-birth-certificate"/>
  <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-xml9-birth-certificate</b></p><a name="vn-sm-bhyt-xml9-birth-certificate"> </a><a name="hcvn-sm-bhyt-xml9-birth-certificate"> </a><pre class="fml">
<b>map</b><span style="color: navy"> &quot;</span>http://fhir.hl7.org.vn/core/StructureMap/vn-sm-bhyt-xml9-birth-certificate<span style="color: navy">&quot; = &quot;</span>BHYTXML9BirthCertificateLMStructureMap<span style="color: navy">&quot;

</span><span style="color: navy">// </span><span style="color: green">Generated StructureMap scaffold for Bảng 9 giấy chứng sinh — XML9 Birth Certificate Logical Model. Source semantics come from the logical model mapping annotations in `BHYTXML9BirthCertificateLM.fsh` and remain aligned with the Python BHYT round-trip export adapter.</span>

<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"> &quot;</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">&quot; </span><b>alias </b>BHYTSubmissionBundle <b>as </b><b>source</b>
<span style="color: navy">// </span><span style="color: green">Bảng 9 giấy chứng sinh — XML9 Birth Certificate Logical Model</span>
<b>uses</b><span style="color: navy"> &quot;</span><a href="StructureDefinition-bhytXml9BirthCertificateLm.html" title="Bảng 9 giấy chứng sinh — XML9 Birth Certificate Logical Model">http://fhir.hl7.org.vn/core/StructureDefinition/bhytXml9BirthCertificateLm</a><span style="color: navy">&quot; </span><b>alias </b>BHYTXML9BirthCertificateLM <b>as </b><b>target</b>

<span style="color: navy">// </span><span style="color: green">Rows are derived from birth-certificate DocumentReference/Composition, newborn Patient, mother/caregiver RelatedPerson and certifying Practitioner. 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>MapBHYTXML9BirthCertificateLM<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>BHYTXML9BirthCertificateLM<span style="color: navy">)</span><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 0<span style="color: navy">..</span>*<b> as </b><span style="color: maroon">maLkSource</span><span style="color: navy"><b> -&gt; </b></span>targetRow.maLk <i>&quot;maLk&quot;</i><span style="color: navy">;</span>
  <span style="color: navy">// </span><span style="color: green">Target field: MA_BHXH_NND - Mã BHXH người nuôi dưỡng FHIR path: VNCoreRelatedPerson.identifier[BHXH].value | VNCorePatient.contact.identifier.value</span>
  sourceBundle.entry 0<span style="color: navy">..</span>*<b> as </b><span style="color: maroon">maBhxhNndSource</span><span style="color: navy"><b> -&gt; </b></span>targetRow.maBhxhNnd <i>&quot;maBhxhNnd&quot;</i><span style="color: navy">;</span>
  <span style="color: navy">// </span><span style="color: green">Target field: MA_THE_NND - Mã thẻ người nuôi dưỡng FHIR path: VNCoreCoverage.subscriber.resolve().identifier[BHYT].value | VNCoreRelatedPerson.identifier.value</span>
  sourceBundle.entry 0<span style="color: navy">..</span>*<b> as </b><span style="color: maroon">maTheNndSource</span><span style="color: navy"><b> -&gt; </b></span>targetRow.maTheNnd <i>&quot;maTheNnd&quot;</i><span style="color: navy">;</span>
  <span style="color: navy">// </span><span style="color: green">Target field: HO_TEN_NND - Họ tên người nuôi dưỡng FHIR path: VNCoreRelatedPerson.name.text | VNCorePatient.contact.name.text</span>
  sourceBundle.entry 0<span style="color: navy">..</span>*<b> as </b><span style="color: maroon">hoTenNndSource</span><span style="color: navy"><b> -&gt; </b></span>targetRow.hoTenNnd <i>&quot;hoTenNnd&quot;</i><span style="color: navy">;</span>
  <span style="color: navy">// </span><span style="color: green">Target field: NGAYSINH_NND - Ngày sinh người nuôi dưỡng FHIR path: VNCoreRelatedPerson.birthDate</span>
  sourceBundle.entry 0<span style="color: navy">..</span>*<b> as </b><span style="color: maroon">ngaySinhNndSource</span><span style="color: navy"><b> -&gt; </b></span>targetRow.ngaySinhNnd <i>&quot;ngaySinhNnd&quot;</i><span style="color: navy">;</span>
  <span style="color: navy">// </span><span style="color: green">Target field: MA_DANTOC_NND - Mã dân tộc người nuôi dưỡng FHIR path: VNCoreRelatedPerson.extension[ethnicity].valueCodeableConcept.coding.code | VNCorePatient.contact.extension[ethnicity].valueCodeableConcept.coding.code</span>
  sourceBundle.entry 0<span style="color: navy">..</span>*<b> as </b><span style="color: maroon">maDanTocNndSource</span><span style="color: navy"><b> -&gt; </b></span>targetRow.maDanTocNnd <i>&quot;maDanTocNnd&quot;</i><span style="color: navy">;</span>
  <span style="color: navy">// </span><span style="color: green">Target field: SO_CCCD_NND - Số CCCD/định danh cá nhân (hoặc số hộ chiếu nếu là người nước ngoài) của người nuôi dưỡng FHIR path: VNCoreRelatedPerson.identifier[CCCD].value | VNCoreRelatedPerson.identifier[HC].value Mapping note: Ghi số căn cước công dân hoặc số định danh cá nhân trên thẻ căn cước của mẹ hoặc người nuôi dưỡng; trường hợp người nuôi dưỡng là người nước ngoài thì ghi số hộ chiếu (slice identifier[HC]). Diễn giải sửa đổi toàn bộ, đổi kiểu dữ liệu sang chuỗi và kích thước tối đa n ký tự theo QĐ 3176/QĐ-BYT (kế thừa QĐ 130/QĐ-BYT, sửa đổi bởi QĐ 4750/QĐ-BYT).</span>
  sourceBundle.entry 0<span style="color: navy">..</span>*<b> as </b><span style="color: maroon">soCccdNndSource</span><span style="color: navy"><b> -&gt; </b></span>targetRow.soCccdNnd <i>&quot;soCccdNnd&quot;</i><span style="color: navy">;</span>
  <span style="color: navy">// </span><span style="color: green">Target field: NGAYCAP_CCCD_NND - Ngày cấp CCCD người nuôi dưỡng FHIR path: VNCoreRelatedPerson.identifier[CCCD].period.start</span>
  sourceBundle.entry 0<span style="color: navy">..</span>*<b> as </b><span style="color: maroon">ngayCapCccdNndSource</span><span style="color: navy"><b> -&gt; </b></span>targetRow.ngayCapCccdNnd <i>&quot;ngayCapCccdNnd&quot;</i><span style="color: navy">;</span>
  <span style="color: navy">// </span><span style="color: green">Target field: NOICAP_CCCD_NND - Nơi cấp CCCD người nuôi dưỡng FHIR path: VNCoreRelatedPerson.identifier[CCCD].assigner.display</span>
  sourceBundle.entry 0<span style="color: navy">..</span>*<b> as </b><span style="color: maroon">noiCapCccdNndSource</span><span style="color: navy"><b> -&gt; </b></span>targetRow.noiCapCccdNnd <i>&quot;noiCapCccdNnd&quot;</i><span style="color: navy">;</span>
  <span style="color: navy">// </span><span style="color: green">Target field: NOI_CU_TRU_NND - Nơi cư trú người nuôi dưỡng FHIR path: VNCoreRelatedPerson.address.text | VNCorePatient.contact.address.text</span>
  sourceBundle.entry 0<span style="color: navy">..</span>*<b> as </b><span style="color: maroon">noiCuTruNndSource</span><span style="color: navy"><b> -&gt; </b></span>targetRow.noiCuTruNnd <i>&quot;noiCuTruNnd&quot;</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[citizenship].extension[code].valueCodeableConcept.coding.code</span>
  sourceBundle.entry 0<span style="color: navy">..</span>*<b> as </b><span style="color: maroon">maQuocTichSource</span><span style="color: navy"><b> -&gt; </b></span>targetRow.maQuocTich <i>&quot;maQuocTich&quot;</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: VNCoreRelatedPerson.address.extension[province].valueCoding.code | VNCorePatient.address.extension[province].valueCoding.code</span>
  sourceBundle.entry 0<span style="color: navy">..</span>*<b> as </b><span style="color: maroon">maTinhCuTruSource</span><span style="color: navy"><b> -&gt; </b></span>targetRow.maTinhCuTru <i>&quot;maTinhCuTru&quot;</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: VNCoreRelatedPerson.address.district | VNCorePatient.address.district</span>
  sourceBundle.entry 0<span style="color: navy">..</span>*<b> as </b><span style="color: maroon">maHuyenCuTruSource</span><span style="color: navy"><b> -&gt; </b></span>targetRow.maHuyenCuTru <i>&quot;maHuyenCuTru&quot;</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: VNCoreRelatedPerson.address.extension[ward].valueCoding.code | VNCorePatient.address.extension[ward].valueCoding.code</span>
  sourceBundle.entry 0<span style="color: navy">..</span>*<b> as </b><span style="color: maroon">maXaCuTruSource</span><span style="color: navy"><b> -&gt; </b></span>targetRow.maXaCuTru <i>&quot;maXaCuTru&quot;</i><span style="color: navy">;</span>
  <span style="color: navy">// </span><span style="color: green">Target field: HO_TEN_CHA - Họ tên cha FHIR path: VNCoreRelatedPerson.where(relationship.coding.code='FTH').name.text | VNCorePatient.contact.where(relationship.coding.code='FTH').name.text</span>
  sourceBundle.entry 0<span style="color: navy">..</span>*<b> as </b><span style="color: maroon">hoTenChaSource</span><span style="color: navy"><b> -&gt; </b></span>targetRow.hoTenCha <i>&quot;hoTenCha&quot;</i><span style="color: navy">;</span>
  <span style="color: navy">// </span><span style="color: green">Target field: MA_THE_TAM - Mã thẻ tạm FHIR path: VNCoreCoverage.identifier.value Mapping note: Temporary card identifiers are kept as Coverage.identifier until a dedicated temporary-card slice is profiled.</span>
  sourceBundle.entry 0<span style="color: navy">..</span>*<b> as </b><span style="color: maroon">maTheTamSource</span><span style="color: navy"><b> -&gt; </b></span>targetRow.maTheTam <i>&quot;maTheTam&quot;</i><span style="color: navy">;</span>
  <span style="color: navy">// </span><span style="color: green">Target field: HO_TEN_CON - Họ tên con FHIR path: VNCorePatient.name.text</span>
  sourceBundle.entry 0<span style="color: navy">..</span>*<b> as </b><span style="color: maroon">hoTenConSource</span><span style="color: navy"><b> -&gt; </b></span>targetRow.hoTenCon <i>&quot;hoTenCon&quot;</i><span style="color: navy">;</span>
  <span style="color: navy">// </span><span style="color: green">Target field: GIOI_TINH_CON - Giới tính con FHIR path: VNCorePatient.gender</span>
  sourceBundle.entry 0<span style="color: navy">..</span>*<b> as </b><span style="color: maroon">gioiTinhConSource</span><span style="color: navy"><b> -&gt; </b></span>targetRow.gioiTinhCon <i>&quot;gioiTinhCon&quot;</i><span style="color: navy">;</span>
  <span style="color: navy">// </span><span style="color: green">Target field: SO_CON - Số con FHIR path: VNCoreObservation.valueQuantity</span>
  sourceBundle.entry 0<span style="color: navy">..</span>*<b> as </b><span style="color: maroon">soConSource</span><span style="color: navy"><b> -&gt; </b></span>targetRow.soCon <i>&quot;soCon&quot;</i><span style="color: navy">;</span>
  <span style="color: navy">// </span><span style="color: green">Target field: LAN_SINH - Lần sinh FHIR path: VNCoreObservation.valueInteger</span>
  sourceBundle.entry 0<span style="color: navy">..</span>*<b> as </b><span style="color: maroon">lanSinhSource</span><span style="color: navy"><b> -&gt; </b></span>targetRow.lanSinh <i>&quot;lanSinh&quot;</i><span style="color: navy">;</span>
  <span style="color: navy">// </span><span style="color: green">Target field: SO_CON_SONG - Số con sống FHIR path: VNCoreObservation.valueQuantity</span>
  sourceBundle.entry 0<span style="color: navy">..</span>*<b> as </b><span style="color: maroon">soConSongSource</span><span style="color: navy"><b> -&gt; </b></span>targetRow.soConSong <i>&quot;soConSong&quot;</i><span style="color: navy">;</span>
  <span style="color: navy">// </span><span style="color: green">Target field: CAN_NANG_CON - Cân nặng con FHIR path: VNCoreObservation.valueQuantity | VNCorePatient.extension[birthWeight].valueQuantity</span>
  sourceBundle.entry 0<span style="color: navy">..</span>*<b> as </b><span style="color: maroon">canNangConSource</span><span style="color: navy"><b> -&gt; </b></span>targetRow.canNangCon <i>&quot;canNangCon&quot;</i><span style="color: navy">;</span>
  <span style="color: navy">// </span><span style="color: green">Target field: NGAY_SINH_CON - Ngày sinh con FHIR path: VNCoreDocumentReference.date | content.attachment.creation | VNCorePatient.birthDate</span>
  sourceBundle.entry 0<span style="color: navy">..</span>*<b> as </b><span style="color: maroon">ngaySinhConSource</span><span style="color: navy"><b> -&gt; </b></span>targetRow.ngaySinhCon <i>&quot;ngaySinhCon&quot;</i><span style="color: navy">;</span>
  <span style="color: navy">// </span><span style="color: green">Target field: NOI_SINH_CON - Nơi sinh con FHIR path: VNCorePatient.extension[birthPlace].valueAddress.text | VNCoreEncounter.location.location.resolve().name</span>
  sourceBundle.entry 0<span style="color: navy">..</span>*<b> as </b><span style="color: maroon">noiSinhConSource</span><span style="color: navy"><b> -&gt; </b></span>targetRow.noiSinhCon <i>&quot;noiSinhCon&quot;</i><span style="color: navy">;</span>
  <span style="color: navy">// </span><span style="color: green">Target field: TINH_TRANG_CON - Tình trạng của trẻ tại thời điểm cấp Giấy chứng sinh FHIR path: VNCoreObservation.valueString | VNCoreCondition.code.text Mapping note: Ghi rõ tình trạng của trẻ tại thời điểm làm Giấy chứng sinh — các giá trị diễn giải theo QĐ 3176/QĐ-BYT: 'khỏe mạnh', 'yếu', 'dị tật' hoặc các biểu hiện liên quan đến sức khỏe khác (nếu có). Nếu trẻ bị dị dạng, dị tật thì ghi cụ thể loại dị dạng, dị tật, kể cả khuyết tật về hình thái nếu phát hiện được — dị tật bẩm sinh ánh xạ VNCoreCondition.code, narrative tổng quát ghi vào Observation.valueString. Kiểu chuỗi n ký tự.</span>
  sourceBundle.entry 0<span style="color: navy">..</span>*<b> as </b><span style="color: maroon">tinhTrangConSource</span><span style="color: navy"><b> -&gt; </b></span>targetRow.tinhTrangCon <i>&quot;tinhTrangCon&quot;</i><span style="color: navy">;</span>
  <span style="color: navy">// </span><span style="color: green">Target field: SINHCON_PHAUTHUAT - Sinh con phẫu thuật FHIR path: VNCoreProcedure.code | VNCoreObservation.valueBoolean</span>
  sourceBundle.entry 0<span style="color: navy">..</span>*<b> as </b><span style="color: maroon">sinhConPhauThuatSource</span><span style="color: navy"><b> -&gt; </b></span>targetRow.sinhConPhauThuat <i>&quot;sinhConPhauThuat&quot;</i><span style="color: navy">;</span>
  <span style="color: navy">// </span><span style="color: green">Target field: SINHCON_DUOI32TUAN - Sinh con dưới 32 tuần FHIR path: VNCoreObservation.valueBoolean</span>
  sourceBundle.entry 0<span style="color: navy">..</span>*<b> as </b><span style="color: maroon">sinhConDuoi32TuanSource</span><span style="color: navy"><b> -&gt; </b></span>targetRow.sinhConDuoi32Tuan <i>&quot;sinhConDuoi32Tuan&quot;</i><span style="color: navy">;</span>
  <span style="color: navy">// </span><span style="color: green">Target field: GHI_CHU - Ghi chú (bắt buộc khi sinh con phải phẫu thuật và/hoặc sinh con dưới 32 tuần tuổi) FHIR path: VNCoreDocumentReference.description | VNCoreComposition.section.text Mapping note: Theo QĐ 3176/QĐ-BYT: bắt buộc ghi khi SINHCON_PHAUTHUAT=1 hoặc SINHCON_DUOI32TUAN=1 (hoặc cả hai); nội dung phải đúng 1 trong 3 giá trị cố định: 'Sinh con phải phẫu thuật', 'Sinh con dưới 32 tuần tuổi', hoặc 'Phẫu thuật, sinh con dưới 32 tuần tuổi'. Kiểu chuỗi n ký tự.</span>
  sourceBundle.entry 0<span style="color: navy">..</span>*<b> as </b><span style="color: maroon">ghiChuSource</span><span style="color: navy"><b> -&gt; </b></span>targetRow.ghiChu <i>&quot;ghiChu&quot;</i><span style="color: navy">;</span>
  <span style="color: navy">// </span><span style="color: green">Target field: NGUOI_DO_DE - Người đỡ đẻ FHIR path: VNCoreComposition.author.resolve().identifier.value | VNCorePractitioner.identifier.value</span>
  sourceBundle.entry 0<span style="color: navy">..</span>*<b> as </b><span style="color: maroon">nguoiDoDeSource</span><span style="color: navy"><b> -&gt; </b></span>targetRow.nguoiDoDe <i>&quot;nguoiDoDe&quot;</i><span style="color: navy">;</span>
  <span style="color: navy">// </span><span style="color: green">Target field: NGUOI_GHI_PHIEU - Người ghi phiếu FHIR path: VNCoreDocumentReference.author.resolve().identifier.value | VNCorePractitioner.identifier.value</span>
  sourceBundle.entry 0<span style="color: navy">..</span>*<b> as </b><span style="color: maroon">nguoiGhiPhieuSource</span><span style="color: navy"><b> -&gt; </b></span>targetRow.nguoiGhiPhieu <i>&quot;nguoiGhiPhieu&quot;</i><span style="color: navy">;</span>
  <span style="color: navy">// </span><span style="color: green">Target field: NGAY_CT - Ngày cấp chứng từ FHIR path: VNCoreDocumentReference.date | VNCoreComposition.date</span>
  sourceBundle.entry 0<span style="color: navy">..</span>*<b> as </b><span style="color: maroon">ngayCtSource</span><span style="color: navy"><b> -&gt; </b></span>targetRow.ngayCt <i>&quot;ngayCt&quot;</i><span style="color: navy">;</span>
  <span style="color: navy">// </span><span style="color: green">Target field: SO - Số chứng từ FHIR path: VNCoreDocumentReference.identifier.value | VNCoreComposition.identifier.value</span>
  sourceBundle.entry 0<span style="color: navy">..</span>*<b> as </b><span style="color: maroon">soSource</span><span style="color: navy"><b> -&gt; </b></span>targetRow.so <i>&quot;so&quot;</i><span style="color: navy">;</span>
  <span style="color: navy">// </span><span style="color: green">Target field: QUYEN_SO - Quyển số FHIR path: VNCoreDocumentReference.identifier.value</span>
  sourceBundle.entry 0<span style="color: navy">..</span>*<b> as </b><span style="color: maroon">quyenSoSource</span><span style="color: navy"><b> -&gt; </b></span>targetRow.quyenSo <i>&quot;quyenSo&quot;</i><span style="color: navy">;</span>
  <span style="color: navy">// </span><span style="color: green">Target field: MA_TTDV - Mã người đứng đầu CSKCB (hoặc người được ủy quyền) ký giấy chứng sinh, ưu tiên GPHN FHIR path: VNCorePractitioner.identifier[GPHN].value | VNCorePractitioner.identifier[CCCD].value (fallback khi không có GPHN) Mapping note: QĐ 3176/QĐ-BYT ưu tiên mã hóa theo GPHN; nếu không có GPHN thì ghi số CCCD hoặc số định danh cá nhân của người ký. Đổi kiểu dữ liệu sang chuỗi, tăng kích thước tối đa 255 ký tự (trước đây là mã số định danh y tế/mã số BHXH của Thủ trưởng CSKCB).</span>
  sourceBundle.entry 0<span style="color: navy">..</span>*<b> as </b><span style="color: maroon">maTtdvSource</span><span style="color: navy"><b> -&gt; </b></span>targetRow.maTtdv <i>&quot;maTtdv&quot;</i><span style="color: navy">;</span>
<span style="color: navy">}

</span></pre></div>
  </text>
  <url
       value="http://fhir.hl7.org.vn/core/StructureMap/vn-sm-bhyt-xml9-birth-certificate"/>
  <identifier>
    <system value="urn:ietf:rfc:3986"/>
    <value
           value="urn:oid:2.25.161089673617632664299011809196868855799.43.12"/>
  </identifier>
  <version value="0.8.0"/>
  <name value="BHYTXML9BirthCertificateLMStructureMap"/>
  <title
         value="Bảng 9 giấy chứng sinh — XML9 Birth Certificate 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="info@hl7.org.vn"/>
    </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="info@hl7.org.vn"/>
    </telecom>
  </contact>
  <description
               value="Generated StructureMap scaffold for Bảng 9 giấy chứng sinh — XML9 Birth Certificate Logical Model. Source semantics come from the logical model mapping annotations in `BHYTXML9BirthCertificateLM.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/bhytXml9BirthCertificateLm"/>
    <mode value="target"/>
    <alias value="BHYTXML9BirthCertificateLM"/>
    <documentation
                   value="Bảng 9 giấy chứng sinh — XML9 Birth Certificate Logical Model"/>
  </structure>
  <group>
    <name value="MapBHYTXML9BirthCertificateLM"/>
    <typeMode value="none"/>
    <documentation
                   value="Rows are derived from birth-certificate DocumentReference/Composition, newborn Patient, mother/caregiver RelatedPerson and certifying Practitioner. 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="BHYTXML9BirthCertificateLM"/>
      <mode value="target"/>
      <documentation
                     value="Bảng 9 giấy chứng sinh — XML9 Birth Certificate 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="maBhxhNnd"/>
      <source>
        <context value="sourceBundle"/>
        <min value="0"/>
        <max value="*"/>
        <element value="entry"/>
        <variable value="maBhxhNndSource"/>
      </source>
      <target>
        <context value="targetRow"/>
        <contextType value="variable"/>
        <element value="maBhxhNnd"/>
      </target>
      <documentation
                     value="Target field: MA_BHXH_NND - Mã BHXH người nuôi dưỡng FHIR path: VNCoreRelatedPerson.identifier[BHXH].value | VNCorePatient.contact.identifier.value"/>
    </rule>
    <rule>
      <name value="maTheNnd"/>
      <source>
        <context value="sourceBundle"/>
        <min value="0"/>
        <max value="*"/>
        <element value="entry"/>
        <variable value="maTheNndSource"/>
      </source>
      <target>
        <context value="targetRow"/>
        <contextType value="variable"/>
        <element value="maTheNnd"/>
      </target>
      <documentation
                     value="Target field: MA_THE_NND - Mã thẻ người nuôi dưỡng FHIR path: VNCoreCoverage.subscriber.resolve().identifier[BHYT].value | VNCoreRelatedPerson.identifier.value"/>
    </rule>
    <rule>
      <name value="hoTenNnd"/>
      <source>
        <context value="sourceBundle"/>
        <min value="0"/>
        <max value="*"/>
        <element value="entry"/>
        <variable value="hoTenNndSource"/>
      </source>
      <target>
        <context value="targetRow"/>
        <contextType value="variable"/>
        <element value="hoTenNnd"/>
      </target>
      <documentation
                     value="Target field: HO_TEN_NND - Họ tên người nuôi dưỡng FHIR path: VNCoreRelatedPerson.name.text | VNCorePatient.contact.name.text"/>
    </rule>
    <rule>
      <name value="ngaySinhNnd"/>
      <source>
        <context value="sourceBundle"/>
        <min value="0"/>
        <max value="*"/>
        <element value="entry"/>
        <variable value="ngaySinhNndSource"/>
      </source>
      <target>
        <context value="targetRow"/>
        <contextType value="variable"/>
        <element value="ngaySinhNnd"/>
      </target>
      <documentation
                     value="Target field: NGAYSINH_NND - Ngày sinh người nuôi dưỡng FHIR path: VNCoreRelatedPerson.birthDate"/>
    </rule>
    <rule>
      <name value="maDanTocNnd"/>
      <source>
        <context value="sourceBundle"/>
        <min value="0"/>
        <max value="*"/>
        <element value="entry"/>
        <variable value="maDanTocNndSource"/>
      </source>
      <target>
        <context value="targetRow"/>
        <contextType value="variable"/>
        <element value="maDanTocNnd"/>
      </target>
      <documentation
                     value="Target field: MA_DANTOC_NND - Mã dân tộc người nuôi dưỡng FHIR path: VNCoreRelatedPerson.extension[ethnicity].valueCodeableConcept.coding.code | VNCorePatient.contact.extension[ethnicity].valueCodeableConcept.coding.code"/>
    </rule>
    <rule>
      <name value="soCccdNnd"/>
      <source>
        <context value="sourceBundle"/>
        <min value="0"/>
        <max value="*"/>
        <element value="entry"/>
        <variable value="soCccdNndSource"/>
      </source>
      <target>
        <context value="targetRow"/>
        <contextType value="variable"/>
        <element value="soCccdNnd"/>
      </target>
      <documentation
                     value="Target field: SO_CCCD_NND - Số CCCD/định danh cá nhân (hoặc số hộ chiếu nếu là người nước ngoài) của người nuôi dưỡng FHIR path: VNCoreRelatedPerson.identifier[CCCD].value | VNCoreRelatedPerson.identifier[HC].value Mapping note: Ghi số căn cước công dân hoặc số định danh cá nhân trên thẻ căn cước của mẹ hoặc người nuôi dưỡng; trường hợp người nuôi dưỡng là người nước ngoài thì ghi số hộ chiếu (slice identifier[HC]). Diễn giải sửa đổi toàn bộ, đổi kiểu dữ liệu sang chuỗi và kích thước tối đa n ký tự theo QĐ 3176/QĐ-BYT (kế thừa QĐ 130/QĐ-BYT, sửa đổi bởi QĐ 4750/QĐ-BYT)."/>
    </rule>
    <rule>
      <name value="ngayCapCccdNnd"/>
      <source>
        <context value="sourceBundle"/>
        <min value="0"/>
        <max value="*"/>
        <element value="entry"/>
        <variable value="ngayCapCccdNndSource"/>
      </source>
      <target>
        <context value="targetRow"/>
        <contextType value="variable"/>
        <element value="ngayCapCccdNnd"/>
      </target>
      <documentation
                     value="Target field: NGAYCAP_CCCD_NND - Ngày cấp CCCD người nuôi dưỡng FHIR path: VNCoreRelatedPerson.identifier[CCCD].period.start"/>
    </rule>
    <rule>
      <name value="noiCapCccdNnd"/>
      <source>
        <context value="sourceBundle"/>
        <min value="0"/>
        <max value="*"/>
        <element value="entry"/>
        <variable value="noiCapCccdNndSource"/>
      </source>
      <target>
        <context value="targetRow"/>
        <contextType value="variable"/>
        <element value="noiCapCccdNnd"/>
      </target>
      <documentation
                     value="Target field: NOICAP_CCCD_NND - Nơi cấp CCCD người nuôi dưỡng FHIR path: VNCoreRelatedPerson.identifier[CCCD].assigner.display"/>
    </rule>
    <rule>
      <name value="noiCuTruNnd"/>
      <source>
        <context value="sourceBundle"/>
        <min value="0"/>
        <max value="*"/>
        <element value="entry"/>
        <variable value="noiCuTruNndSource"/>
      </source>
      <target>
        <context value="targetRow"/>
        <contextType value="variable"/>
        <element value="noiCuTruNnd"/>
      </target>
      <documentation
                     value="Target field: NOI_CU_TRU_NND - Nơi cư trú người nuôi dưỡng FHIR path: VNCoreRelatedPerson.address.text | VNCorePatient.contact.address.text"/>
    </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[citizenship].extension[code].valueCodeableConcept.coding.code"/>
    </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: VNCoreRelatedPerson.address.extension[province].valueCoding.code | VNCorePatient.address.extension[province].valueCoding.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: VNCoreRelatedPerson.address.district | 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: VNCoreRelatedPerson.address.extension[ward].valueCoding.code | VNCorePatient.address.extension[ward].valueCoding.code"/>
    </rule>
    <rule>
      <name value="hoTenCha"/>
      <source>
        <context value="sourceBundle"/>
        <min value="0"/>
        <max value="*"/>
        <element value="entry"/>
        <variable value="hoTenChaSource"/>
      </source>
      <target>
        <context value="targetRow"/>
        <contextType value="variable"/>
        <element value="hoTenCha"/>
      </target>
      <documentation
                     value="Target field: HO_TEN_CHA - Họ tên cha FHIR path: VNCoreRelatedPerson.where(relationship.coding.code='FTH').name.text | VNCorePatient.contact.where(relationship.coding.code='FTH').name.text"/>
    </rule>
    <rule>
      <name value="maTheTam"/>
      <source>
        <context value="sourceBundle"/>
        <min value="0"/>
        <max value="*"/>
        <element value="entry"/>
        <variable value="maTheTamSource"/>
      </source>
      <target>
        <context value="targetRow"/>
        <contextType value="variable"/>
        <element value="maTheTam"/>
      </target>
      <documentation
                     value="Target field: MA_THE_TAM - Mã thẻ tạm FHIR path: VNCoreCoverage.identifier.value Mapping note: Temporary card identifiers are kept as Coverage.identifier until a dedicated temporary-card slice is profiled."/>
    </rule>
    <rule>
      <name value="hoTenCon"/>
      <source>
        <context value="sourceBundle"/>
        <min value="0"/>
        <max value="*"/>
        <element value="entry"/>
        <variable value="hoTenConSource"/>
      </source>
      <target>
        <context value="targetRow"/>
        <contextType value="variable"/>
        <element value="hoTenCon"/>
      </target>
      <documentation
                     value="Target field: HO_TEN_CON - Họ tên con FHIR path: VNCorePatient.name.text"/>
    </rule>
    <rule>
      <name value="gioiTinhCon"/>
      <source>
        <context value="sourceBundle"/>
        <min value="0"/>
        <max value="*"/>
        <element value="entry"/>
        <variable value="gioiTinhConSource"/>
      </source>
      <target>
        <context value="targetRow"/>
        <contextType value="variable"/>
        <element value="gioiTinhCon"/>
      </target>
      <documentation
                     value="Target field: GIOI_TINH_CON - Giới tính con FHIR path: VNCorePatient.gender"/>
    </rule>
    <rule>
      <name value="soCon"/>
      <source>
        <context value="sourceBundle"/>
        <min value="0"/>
        <max value="*"/>
        <element value="entry"/>
        <variable value="soConSource"/>
      </source>
      <target>
        <context value="targetRow"/>
        <contextType value="variable"/>
        <element value="soCon"/>
      </target>
      <documentation
                     value="Target field: SO_CON - Số con FHIR path: VNCoreObservation.valueQuantity"/>
    </rule>
    <rule>
      <name value="lanSinh"/>
      <source>
        <context value="sourceBundle"/>
        <min value="0"/>
        <max value="*"/>
        <element value="entry"/>
        <variable value="lanSinhSource"/>
      </source>
      <target>
        <context value="targetRow"/>
        <contextType value="variable"/>
        <element value="lanSinh"/>
      </target>
      <documentation
                     value="Target field: LAN_SINH - Lần sinh FHIR path: VNCoreObservation.valueInteger"/>
    </rule>
    <rule>
      <name value="soConSong"/>
      <source>
        <context value="sourceBundle"/>
        <min value="0"/>
        <max value="*"/>
        <element value="entry"/>
        <variable value="soConSongSource"/>
      </source>
      <target>
        <context value="targetRow"/>
        <contextType value="variable"/>
        <element value="soConSong"/>
      </target>
      <documentation
                     value="Target field: SO_CON_SONG - Số con sống FHIR path: VNCoreObservation.valueQuantity"/>
    </rule>
    <rule>
      <name value="canNangCon"/>
      <source>
        <context value="sourceBundle"/>
        <min value="0"/>
        <max value="*"/>
        <element value="entry"/>
        <variable value="canNangConSource"/>
      </source>
      <target>
        <context value="targetRow"/>
        <contextType value="variable"/>
        <element value="canNangCon"/>
      </target>
      <documentation
                     value="Target field: CAN_NANG_CON - Cân nặng con FHIR path: VNCoreObservation.valueQuantity | VNCorePatient.extension[birthWeight].valueQuantity"/>
    </rule>
    <rule>
      <name value="ngaySinhCon"/>
      <source>
        <context value="sourceBundle"/>
        <min value="0"/>
        <max value="*"/>
        <element value="entry"/>
        <variable value="ngaySinhConSource"/>
      </source>
      <target>
        <context value="targetRow"/>
        <contextType value="variable"/>
        <element value="ngaySinhCon"/>
      </target>
      <documentation
                     value="Target field: NGAY_SINH_CON - Ngày sinh con FHIR path: VNCoreDocumentReference.date | content.attachment.creation | VNCorePatient.birthDate"/>
    </rule>
    <rule>
      <name value="noiSinhCon"/>
      <source>
        <context value="sourceBundle"/>
        <min value="0"/>
        <max value="*"/>
        <element value="entry"/>
        <variable value="noiSinhConSource"/>
      </source>
      <target>
        <context value="targetRow"/>
        <contextType value="variable"/>
        <element value="noiSinhCon"/>
      </target>
      <documentation
                     value="Target field: NOI_SINH_CON - Nơi sinh con FHIR path: VNCorePatient.extension[birthPlace].valueAddress.text | VNCoreEncounter.location.location.resolve().name"/>
    </rule>
    <rule>
      <name value="tinhTrangCon"/>
      <source>
        <context value="sourceBundle"/>
        <min value="0"/>
        <max value="*"/>
        <element value="entry"/>
        <variable value="tinhTrangConSource"/>
      </source>
      <target>
        <context value="targetRow"/>
        <contextType value="variable"/>
        <element value="tinhTrangCon"/>
      </target>
      <documentation
                     value="Target field: TINH_TRANG_CON - Tình trạng của trẻ tại thời điểm cấp Giấy chứng sinh FHIR path: VNCoreObservation.valueString | VNCoreCondition.code.text Mapping note: Ghi rõ tình trạng của trẻ tại thời điểm làm Giấy chứng sinh — các giá trị diễn giải theo QĐ 3176/QĐ-BYT: 'khỏe mạnh', 'yếu', 'dị tật' hoặc các biểu hiện liên quan đến sức khỏe khác (nếu có). Nếu trẻ bị dị dạng, dị tật thì ghi cụ thể loại dị dạng, dị tật, kể cả khuyết tật về hình thái nếu phát hiện được — dị tật bẩm sinh ánh xạ VNCoreCondition.code, narrative tổng quát ghi vào Observation.valueString. Kiểu chuỗi n ký tự."/>
    </rule>
    <rule>
      <name value="sinhConPhauThuat"/>
      <source>
        <context value="sourceBundle"/>
        <min value="0"/>
        <max value="*"/>
        <element value="entry"/>
        <variable value="sinhConPhauThuatSource"/>
      </source>
      <target>
        <context value="targetRow"/>
        <contextType value="variable"/>
        <element value="sinhConPhauThuat"/>
      </target>
      <documentation
                     value="Target field: SINHCON_PHAUTHUAT - Sinh con phẫu thuật FHIR path: VNCoreProcedure.code | VNCoreObservation.valueBoolean"/>
    </rule>
    <rule>
      <name value="sinhConDuoi32Tuan"/>
      <source>
        <context value="sourceBundle"/>
        <min value="0"/>
        <max value="*"/>
        <element value="entry"/>
        <variable value="sinhConDuoi32TuanSource"/>
      </source>
      <target>
        <context value="targetRow"/>
        <contextType value="variable"/>
        <element value="sinhConDuoi32Tuan"/>
      </target>
      <documentation
                     value="Target field: SINHCON_DUOI32TUAN - Sinh con dưới 32 tuần FHIR path: VNCoreObservation.valueBoolean"/>
    </rule>
    <rule>
      <name value="ghiChu"/>
      <source>
        <context value="sourceBundle"/>
        <min value="0"/>
        <max value="*"/>
        <element value="entry"/>
        <variable value="ghiChuSource"/>
      </source>
      <target>
        <context value="targetRow"/>
        <contextType value="variable"/>
        <element value="ghiChu"/>
      </target>
      <documentation
                     value="Target field: GHI_CHU - Ghi chú (bắt buộc khi sinh con phải phẫu thuật và/hoặc sinh con dưới 32 tuần tuổi) FHIR path: VNCoreDocumentReference.description | VNCoreComposition.section.text Mapping note: Theo QĐ 3176/QĐ-BYT: bắt buộc ghi khi SINHCON_PHAUTHUAT=1 hoặc SINHCON_DUOI32TUAN=1 (hoặc cả hai); nội dung phải đúng 1 trong 3 giá trị cố định: 'Sinh con phải phẫu thuật', 'Sinh con dưới 32 tuần tuổi', hoặc 'Phẫu thuật, sinh con dưới 32 tuần tuổi'. Kiểu chuỗi n ký tự."/>
    </rule>
    <rule>
      <name value="nguoiDoDe"/>
      <source>
        <context value="sourceBundle"/>
        <min value="0"/>
        <max value="*"/>
        <element value="entry"/>
        <variable value="nguoiDoDeSource"/>
      </source>
      <target>
        <context value="targetRow"/>
        <contextType value="variable"/>
        <element value="nguoiDoDe"/>
      </target>
      <documentation
                     value="Target field: NGUOI_DO_DE - Người đỡ đẻ FHIR path: VNCoreComposition.author.resolve().identifier.value | VNCorePractitioner.identifier.value"/>
    </rule>
    <rule>
      <name value="nguoiGhiPhieu"/>
      <source>
        <context value="sourceBundle"/>
        <min value="0"/>
        <max value="*"/>
        <element value="entry"/>
        <variable value="nguoiGhiPhieuSource"/>
      </source>
      <target>
        <context value="targetRow"/>
        <contextType value="variable"/>
        <element value="nguoiGhiPhieu"/>
      </target>
      <documentation
                     value="Target field: NGUOI_GHI_PHIEU - Người ghi phiếu FHIR path: VNCoreDocumentReference.author.resolve().identifier.value | VNCorePractitioner.identifier.value"/>
    </rule>
    <rule>
      <name value="ngayCt"/>
      <source>
        <context value="sourceBundle"/>
        <min value="0"/>
        <max value="*"/>
        <element value="entry"/>
        <variable value="ngayCtSource"/>
      </source>
      <target>
        <context value="targetRow"/>
        <contextType value="variable"/>
        <element value="ngayCt"/>
      </target>
      <documentation
                     value="Target field: NGAY_CT - Ngày cấp chứng từ FHIR path: VNCoreDocumentReference.date | VNCoreComposition.date"/>
    </rule>
    <rule>
      <name value="so"/>
      <source>
        <context value="sourceBundle"/>
        <min value="0"/>
        <max value="*"/>
        <element value="entry"/>
        <variable value="soSource"/>
      </source>
      <target>
        <context value="targetRow"/>
        <contextType value="variable"/>
        <element value="so"/>
      </target>
      <documentation
                     value="Target field: SO - Số chứng từ FHIR path: VNCoreDocumentReference.identifier.value | VNCoreComposition.identifier.value"/>
    </rule>
    <rule>
      <name value="quyenSo"/>
      <source>
        <context value="sourceBundle"/>
        <min value="0"/>
        <max value="*"/>
        <element value="entry"/>
        <variable value="quyenSoSource"/>
      </source>
      <target>
        <context value="targetRow"/>
        <contextType value="variable"/>
        <element value="quyenSo"/>
      </target>
      <documentation
                     value="Target field: QUYEN_SO - Quyển số FHIR path: 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ã người đứng đầu CSKCB (hoặc người được ủy quyền) ký giấy chứng sinh, ưu tiên GPHN FHIR path: VNCorePractitioner.identifier[GPHN].value | VNCorePractitioner.identifier[CCCD].value (fallback khi không có GPHN) Mapping note: QĐ 3176/QĐ-BYT ưu tiên mã hóa theo GPHN; nếu không có GPHN thì ghi số CCCD hoặc số định danh cá nhân của người ký. Đổi kiểu dữ liệu sang chuỗi, tăng kích thước tối đa 255 ký tự (trước đây là mã số định danh y tế/mã số BHXH của Thủ trưởng CSKCB)."/>
    </rule>
  </group>
</StructureMap>