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 7 giấy ra viện — XML7 Discharge Paper 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-xml7-discharge-paper"/>
  <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-xml7-discharge-paper</b></p><a name="vn-sm-bhyt-xml7-discharge-paper"> </a><a name="hcvn-sm-bhyt-xml7-discharge-paper"> </a><pre class="fml">
<b>map</b><span style="color: navy"> &quot;</span>http://fhir.hl7.org.vn/core/StructureMap/vn-sm-bhyt-xml7-discharge-paper<span style="color: navy">&quot; = &quot;</span>BHYTXML7DischargePaperLMStructureMap<span style="color: navy">&quot;

</span><span style="color: navy">// </span><span style="color: green">Generated StructureMap scaffold for Bảng 7 giấy ra viện — XML7 Discharge Paper Logical Model. Source semantics come from the logical model mapping annotations in `BHYTXML7DischargePaperLM.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 7 giấy ra viện — XML7 Discharge Paper Logical Model</span>
<b>uses</b><span style="color: navy"> &quot;</span><a href="StructureDefinition-bhytXml7DischargePaperLm.html" title="Bảng 7 giấy ra viện — XML7 Discharge Paper Logical Model">http://fhir.hl7.org.vn/core/StructureDefinition/bhytXml7DischargePaperLm</a><span style="color: navy">&quot; </span><b>alias </b>BHYTXML7DischargePaperLM <b>as </b><b>target</b>

<span style="color: navy">// </span><span style="color: green">Rows are derived from discharge Composition/DocumentReference, the linked Encounter, Condition, Practitioner and guardian/temporary card data. 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>MapBHYTXML7DischargePaperLM<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>BHYTXML7DischargePaperLM<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: SO_LUU_TRU - Số lưu trữ/số hồ sơ bệnh án FHIR path: VNCoreComposition.identifier.value | VNCoreDocumentReference.identifier.value</span>
  sourceBundle.entry 0<span style="color: navy">..</span>*<b> as </b><span style="color: maroon">soLuuTruSource</span><span style="color: navy"><b> -&gt; </b></span>targetRow.soLuuTru <i>&quot;soLuuTru&quot;</i><span style="color: navy">;</span>
  <span style="color: navy">// </span><span style="color: green">Target field: MA_YTE - Mã y tế/mã người bệnh FHIR path: VNCorePatient.identifier[MRN].value</span>
  sourceBundle.entry 0<span style="color: navy">..</span>*<b> as </b><span style="color: maroon">maYteSource</span><span style="color: navy"><b> -&gt; </b></span>targetRow.maYte <i>&quot;maYte&quot;</i><span style="color: navy">;</span>
  <span style="color: navy">// </span><span style="color: green">Target field: MA_KHOA_RV - Mã khoa ra viện/tổng kết FHIR path: VNCoreEncounter.location.location.resolve().identifier.value | VNCoreOrganizationDepartment.identifier.value</span>
  sourceBundle.entry 0<span style="color: navy">..</span>*<b> as </b><span style="color: maroon">maKhoaRvSource</span><span style="color: navy"><b> -&gt; </b></span>targetRow.maKhoaRv <i>&quot;maKhoaRv&quot;</i><span style="color: navy">;</span>
  <span style="color: navy">// </span><span style="color: green">Target field: NGAY_VAO - Ngày vào viện FHIR path: VNCoreEncounter.period.start</span>
  sourceBundle.entry 0<span style="color: navy">..</span>*<b> as </b><span style="color: maroon">ngayVaoSource</span><span style="color: navy"><b> -&gt; </b></span>targetRow.ngayVao <i>&quot;ngayVao&quot;</i><span style="color: navy">;</span>
  <span style="color: navy">// </span><span style="color: green">Target field: NGAY_RA - Ngày ra viện FHIR path: VNCoreEncounter.period.end | VNCoreComposition.date</span>
  sourceBundle.entry 0<span style="color: navy">..</span>*<b> as </b><span style="color: maroon">ngayRaSource</span><span style="color: navy"><b> -&gt; </b></span>targetRow.ngayRa <i>&quot;ngayRa&quot;</i><span style="color: navy">;</span>
  <span style="color: navy">// </span><span style="color: green">Target field: MA_DINH_CHI_THAI - Mã đình chỉ thai FHIR path: VNCoreProcedure.code | VNCoreCondition.code Mapping note: MA_DINH_CHI_THAI='1' (đình chỉ thai nghén) tương ứng với sự tồn tại một VNCoreProcedure đình chỉ thai nghén (termination of pregnancy); '0' là không đình chỉ. Chưa có slice/mã cố định cho thủ thuật đình chỉ thai nên dùng Procedure.code; quan hệ điều kiện với 3 trường chi tiết theo invariant bhyt-xml7-abortion-fields-required (nhất quán nhóm đình chỉ thai với BHYTXML11SickLeaveLM).</span>
  sourceBundle.entry 0<span style="color: navy">..</span>*<b> as </b><span style="color: maroon">maDinhChiThaiSource</span><span style="color: navy"><b> -&gt; </b></span>targetRow.maDinhChiThai <i>&quot;maDinhChiThai&quot;</i><span style="color: navy">;</span>
  <span style="color: navy">// </span><span style="color: green">Target field: NGUYENNHAN_DINHCHI - Nguyên nhân đình chỉ thai FHIR path: VNCoreProcedure.reasonCode.text | VNCoreProcedure.reasonReference.resolve().code | VNCoreCondition.code Mapping note: Nguyên nhân đình chỉ thai nghén — ghi dạng text hoặc mã ICD-10 chẩn đoán liên quan (VNCoreCondition); trường hợp bất thường/bệnh lý thai nhi tham chiếu danh mục VNFetalSexDisclosureDiseaseVS (căn cứ TT 11/2026/TT-BYT). Bắt buộc khi MA_DINH_CHI_THAI='1' (invariant bhyt-xml7-abortion-fields-required).</span>
  sourceBundle.entry 0<span style="color: navy">..</span>*<b> as </b><span style="color: maroon">nguyenNhanDinhChiSource</span><span style="color: navy"><b> -&gt; </b></span>targetRow.nguyenNhanDinhChi <i>&quot;nguyenNhanDinhChi&quot;</i><span style="color: navy">;</span>
  <span style="color: navy">// </span><span style="color: green">Target field: THOIGIAN_DINHCHI - Thời gian đình chỉ thai FHIR path: VNCoreProcedure.performedDateTime Mapping note: Thời điểm thực hiện đình chỉ thai nghén (định dạng yyyymmddHHMM). Bắt buộc khi MA_DINH_CHI_THAI='1' (invariant bhyt-xml7-abortion-fields-required).</span>
  sourceBundle.entry 0<span style="color: navy">..</span>*<b> as </b><span style="color: maroon">thoiGianDinhChiSource</span><span style="color: navy"><b> -&gt; </b></span>targetRow.thoiGianDinhChi <i>&quot;thoiGianDinhChi&quot;</i><span style="color: navy">;</span>
  <span style="color: navy">// </span><span style="color: green">Target field: TUOI_THAI - Tuổi thai FHIR path: VNCoreProcedure | future tuổi-thai gestational-age extension Mapping note: Tuần tuổi thai thực tế (1–42 tuần) tại thời điểm đình chỉ. FHIR base không có phần tử tuổi thai trên Procedure nên đích mã hoá qua extension gestational-age để future (hoặc Observation LOINC 18185-9). Bắt buộc khi MA_DINH_CHI_THAI='1' (invariant bhyt-xml7-abortion-fields-required).</span>
  sourceBundle.entry 0<span style="color: navy">..</span>*<b> as </b><span style="color: maroon">tuoiThaiSource</span><span style="color: navy"><b> -&gt; </b></span>targetRow.tuoiThai <i>&quot;tuoiThai&quot;</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: VNCoreComposition.section[diagnosis].entry.resolve().code | VNCoreCondition.code | section.text</span>
  sourceBundle.entry 0<span style="color: navy">..</span>*<b> as </b><span style="color: maroon">chanDoanRvSource</span><span style="color: navy"><b> -&gt; </b></span>targetRow.chanDoanRv <i>&quot;chanDoanRv&quot;</i><span style="color: navy">;</span>
  <span style="color: navy">// </span><span style="color: green">Target field: PP_DIEUTRI - Phương pháp điều trị (nội khoa, ngoại khoa, xạ trị, hoá trị hoặc kết hợp) FHIR path: VNCoreComposition.section[dischargeSummary].text | VNCoreProcedure.category | future phương-pháp-điều-trị extension Mapping note: Ghi phương pháp điều trị (nội khoa, ngoại khoa, xạ trị, hoá trị hoặc xạ trị kết hợp nội khoa) theo hướng dẫn TT 18/2022/TT-BYT. QĐ 4750/QĐ-BYT (trong chuẩn QĐ 3176/QĐ-BYT) sửa đổi toàn bộ diễn giải và tăng kích thước tối đa lên n ký tự. Chưa có code system phương pháp điều trị riêng nên đích mã hoá tạm để future extension.</span>
  sourceBundle.entry 0<span style="color: navy">..</span>*<b> as </b><span style="color: maroon">ppDieuTriSource</span><span style="color: navy"><b> -&gt; </b></span>targetRow.ppDieuTri <i>&quot;ppDieuTri&quot;</i><span style="color: navy">;</span>
  <span style="color: navy">// </span><span style="color: green">Target field: GHI_CHU - Ghi chú FHIR path: VNCoreDocumentReference.description | VNCoreComposition.section.text</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: MA_TTDV - Mã thủ trưởng đơn vị/người ký FHIR path: VNCoreComposition.attester.party.resolve().identifier.value | VNCoreDocumentReference.authenticator.resolve().identifier.value</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><span style="color: green">Target field: MA_BS - Mã bác sĩ 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">maBsSource</span><span style="color: navy"><b> -&gt; </b></span>targetRow.maBs <i>&quot;maBs&quot;</i><span style="color: navy">;</span>
  <span style="color: navy">// </span><span style="color: green">Target field: TEN_BS - Tên bác sĩ FHIR path: VNCoreComposition.author.display | VNCorePractitioner.name.text</span>
  sourceBundle.entry 0<span style="color: navy">..</span>*<b> as </b><span style="color: maroon">tenBsSource</span><span style="color: navy"><b> -&gt; </b></span>targetRow.tenBs <i>&quot;tenBs&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: MA_CHA - Mã cha FHIR path: VNCoreRelatedPerson.where(relationship.coding.code='FTH').identifier[CCCD].value | VNCorePatient.contact.where(relationship.coding.code='FTH').name</span>
  sourceBundle.entry 0<span style="color: navy">..</span>*<b> as </b><span style="color: maroon">maChaSource</span><span style="color: navy"><b> -&gt; </b></span>targetRow.maCha <i>&quot;maCha&quot;</i><span style="color: navy">;</span>
  <span style="color: navy">// </span><span style="color: green">Target field: MA_ME - Mã mẹ FHIR path: VNCoreRelatedPerson.where(relationship.coding.code='MTH').identifier[CCCD].value | VNCorePatient.contact.where(relationship.coding.code='MTH').name</span>
  sourceBundle.entry 0<span style="color: navy">..</span>*<b> as </b><span style="color: maroon">maMeSource</span><span style="color: navy"><b> -&gt; </b></span>targetRow.maMe <i>&quot;maMe&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_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: HO_TEN_ME - Họ tên mẹ FHIR path: VNCoreRelatedPerson.where(relationship.coding.code='MTH').name.text | VNCorePatient.contact.where(relationship.coding.code='MTH').name.text</span>
  sourceBundle.entry 0<span style="color: navy">..</span>*<b> as </b><span style="color: maroon">hoTenMeSource</span><span style="color: navy"><b> -&gt; </b></span>targetRow.hoTenMe <i>&quot;hoTenMe&quot;</i><span style="color: navy">;</span>
  <span style="color: navy">// </span><span style="color: green">Target field: SO_NGAY_NGHI - Số ngày nghỉ FHIR path: Derived from VNCoreDocumentReference.context.period | VNCoreComposition.event.period</span>
  sourceBundle.entry 0<span style="color: navy">..</span>*<b> as </b><span style="color: maroon">soNgayNghiSource</span><span style="color: navy"><b> -&gt; </b></span>targetRow.soNgayNghi <i>&quot;soNgayNghi&quot;</i><span style="color: navy">;</span>
  <span style="color: navy">// </span><span style="color: green">Target field: NGOAITRU_TUNGAY - Ngoại trú từ ngày FHIR path: VNCoreDocumentReference.context.period.start | VNCoreComposition.event.period.start</span>
  sourceBundle.entry 0<span style="color: navy">..</span>*<b> as </b><span style="color: maroon">ngoaiTruTuNgaySource</span><span style="color: navy"><b> -&gt; </b></span>targetRow.ngoaiTruTuNgay <i>&quot;ngoaiTruTuNgay&quot;</i><span style="color: navy">;</span>
  <span style="color: navy">// </span><span style="color: green">Target field: NGOAITRU_DENNGAY - Ngoại trú đến ngày FHIR path: VNCoreDocumentReference.context.period.end | VNCoreComposition.event.period.end</span>
  sourceBundle.entry 0<span style="color: navy">..</span>*<b> as </b><span style="color: maroon">ngoaiTruDenNgaySource</span><span style="color: navy"><b> -&gt; </b></span>targetRow.ngoaiTruDenNgay <i>&quot;ngoaiTruDenNgay&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-xml7-discharge-paper"/>
  <identifier>
    <system value="urn:ietf:rfc:3986"/>
    <value
           value="urn:oid:2.25.161089673617632664299011809196868855799.43.10"/>
  </identifier>
  <version value="0.8.0"/>
  <name value="BHYTXML7DischargePaperLMStructureMap"/>
  <title
         value="Bảng 7 giấy ra viện — XML7 Discharge Paper 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 7 giấy ra viện — XML7 Discharge Paper Logical Model. Source semantics come from the logical model mapping annotations in `BHYTXML7DischargePaperLM.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/bhytXml7DischargePaperLm"/>
    <mode value="target"/>
    <alias value="BHYTXML7DischargePaperLM"/>
    <documentation
                   value="Bảng 7 giấy ra viện — XML7 Discharge Paper Logical Model"/>
  </structure>
  <group>
    <name value="MapBHYTXML7DischargePaperLM"/>
    <typeMode value="none"/>
    <documentation
                   value="Rows are derived from discharge Composition/DocumentReference, the linked Encounter, Condition, Practitioner and guardian/temporary card data. 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="BHYTXML7DischargePaperLM"/>
      <mode value="target"/>
      <documentation
                     value="Bảng 7 giấy ra viện — XML7 Discharge Paper 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="soLuuTru"/>
      <source>
        <context value="sourceBundle"/>
        <min value="0"/>
        <max value="*"/>
        <element value="entry"/>
        <variable value="soLuuTruSource"/>
      </source>
      <target>
        <context value="targetRow"/>
        <contextType value="variable"/>
        <element value="soLuuTru"/>
      </target>
      <documentation
                     value="Target field: SO_LUU_TRU - Số lưu trữ/số hồ sơ bệnh án FHIR path: VNCoreComposition.identifier.value | VNCoreDocumentReference.identifier.value"/>
    </rule>
    <rule>
      <name value="maYte"/>
      <source>
        <context value="sourceBundle"/>
        <min value="0"/>
        <max value="*"/>
        <element value="entry"/>
        <variable value="maYteSource"/>
      </source>
      <target>
        <context value="targetRow"/>
        <contextType value="variable"/>
        <element value="maYte"/>
      </target>
      <documentation
                     value="Target field: MA_YTE - Mã y tế/mã người bệnh FHIR path: VNCorePatient.identifier[MRN].value"/>
    </rule>
    <rule>
      <name value="maKhoaRv"/>
      <source>
        <context value="sourceBundle"/>
        <min value="0"/>
        <max value="*"/>
        <element value="entry"/>
        <variable value="maKhoaRvSource"/>
      </source>
      <target>
        <context value="targetRow"/>
        <contextType value="variable"/>
        <element value="maKhoaRv"/>
      </target>
      <documentation
                     value="Target field: MA_KHOA_RV - Mã khoa ra viện/tổng kết FHIR path: VNCoreEncounter.location.location.resolve().identifier.value | VNCoreOrganizationDepartment.identifier.value"/>
    </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 viện FHIR path: VNCoreEncounter.period.start"/>
    </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 viện FHIR path: VNCoreEncounter.period.end | VNCoreComposition.date"/>
    </rule>
    <rule>
      <name value="maDinhChiThai"/>
      <source>
        <context value="sourceBundle"/>
        <min value="0"/>
        <max value="*"/>
        <element value="entry"/>
        <variable value="maDinhChiThaiSource"/>
      </source>
      <target>
        <context value="targetRow"/>
        <contextType value="variable"/>
        <element value="maDinhChiThai"/>
      </target>
      <documentation
                     value="Target field: MA_DINH_CHI_THAI - Mã đình chỉ thai FHIR path: VNCoreProcedure.code | VNCoreCondition.code Mapping note: MA_DINH_CHI_THAI='1' (đình chỉ thai nghén) tương ứng với sự tồn tại một VNCoreProcedure đình chỉ thai nghén (termination of pregnancy); '0' là không đình chỉ. Chưa có slice/mã cố định cho thủ thuật đình chỉ thai nên dùng Procedure.code; quan hệ điều kiện với 3 trường chi tiết theo invariant bhyt-xml7-abortion-fields-required (nhất quán nhóm đình chỉ thai với BHYTXML11SickLeaveLM)."/>
    </rule>
    <rule>
      <name value="nguyenNhanDinhChi"/>
      <source>
        <context value="sourceBundle"/>
        <min value="0"/>
        <max value="*"/>
        <element value="entry"/>
        <variable value="nguyenNhanDinhChiSource"/>
      </source>
      <target>
        <context value="targetRow"/>
        <contextType value="variable"/>
        <element value="nguyenNhanDinhChi"/>
      </target>
      <documentation
                     value="Target field: NGUYENNHAN_DINHCHI - Nguyên nhân đình chỉ thai FHIR path: VNCoreProcedure.reasonCode.text | VNCoreProcedure.reasonReference.resolve().code | VNCoreCondition.code Mapping note: Nguyên nhân đình chỉ thai nghén — ghi dạng text hoặc mã ICD-10 chẩn đoán liên quan (VNCoreCondition); trường hợp bất thường/bệnh lý thai nhi tham chiếu danh mục VNFetalSexDisclosureDiseaseVS (căn cứ TT 11/2026/TT-BYT). Bắt buộc khi MA_DINH_CHI_THAI='1' (invariant bhyt-xml7-abortion-fields-required)."/>
    </rule>
    <rule>
      <name value="thoiGianDinhChi"/>
      <source>
        <context value="sourceBundle"/>
        <min value="0"/>
        <max value="*"/>
        <element value="entry"/>
        <variable value="thoiGianDinhChiSource"/>
      </source>
      <target>
        <context value="targetRow"/>
        <contextType value="variable"/>
        <element value="thoiGianDinhChi"/>
      </target>
      <documentation
                     value="Target field: THOIGIAN_DINHCHI - Thời gian đình chỉ thai FHIR path: VNCoreProcedure.performedDateTime Mapping note: Thời điểm thực hiện đình chỉ thai nghén (định dạng yyyymmddHHMM). Bắt buộc khi MA_DINH_CHI_THAI='1' (invariant bhyt-xml7-abortion-fields-required)."/>
    </rule>
    <rule>
      <name value="tuoiThai"/>
      <source>
        <context value="sourceBundle"/>
        <min value="0"/>
        <max value="*"/>
        <element value="entry"/>
        <variable value="tuoiThaiSource"/>
      </source>
      <target>
        <context value="targetRow"/>
        <contextType value="variable"/>
        <element value="tuoiThai"/>
      </target>
      <documentation
                     value="Target field: TUOI_THAI - Tuổi thai FHIR path: VNCoreProcedure | future tuổi-thai gestational-age extension Mapping note: Tuần tuổi thai thực tế (1–42 tuần) tại thời điểm đình chỉ. FHIR base không có phần tử tuổi thai trên Procedure nên đích mã hoá qua extension gestational-age để future (hoặc Observation LOINC 18185-9). Bắt buộc khi MA_DINH_CHI_THAI='1' (invariant bhyt-xml7-abortion-fields-required)."/>
    </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: VNCoreComposition.section[diagnosis].entry.resolve().code | VNCoreCondition.code | section.text"/>
    </rule>
    <rule>
      <name value="ppDieuTri"/>
      <source>
        <context value="sourceBundle"/>
        <min value="0"/>
        <max value="*"/>
        <element value="entry"/>
        <variable value="ppDieuTriSource"/>
      </source>
      <target>
        <context value="targetRow"/>
        <contextType value="variable"/>
        <element value="ppDieuTri"/>
      </target>
      <documentation
                     value="Target field: PP_DIEUTRI - Phương pháp điều trị (nội khoa, ngoại khoa, xạ trị, hoá trị hoặc kết hợp) FHIR path: VNCoreComposition.section[dischargeSummary].text | VNCoreProcedure.category | future phương-pháp-điều-trị extension Mapping note: Ghi phương pháp điều trị (nội khoa, ngoại khoa, xạ trị, hoá trị hoặc xạ trị kết hợp nội khoa) theo hướng dẫn TT 18/2022/TT-BYT. QĐ 4750/QĐ-BYT (trong chuẩn QĐ 3176/QĐ-BYT) sửa đổi toàn bộ diễn giải và tăng kích thước tối đa lên n ký tự. Chưa có code system phương pháp điều trị riêng nên đích mã hoá tạm để future extension."/>
    </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ú FHIR path: VNCoreDocumentReference.description | VNCoreComposition.section.text"/>
    </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.attester.party.resolve().identifier.value | VNCoreDocumentReference.authenticator.resolve().identifier.value"/>
    </rule>
    <rule>
      <name value="maBs"/>
      <source>
        <context value="sourceBundle"/>
        <min value="0"/>
        <max value="*"/>
        <element value="entry"/>
        <variable value="maBsSource"/>
      </source>
      <target>
        <context value="targetRow"/>
        <contextType value="variable"/>
        <element value="maBs"/>
      </target>
      <documentation
                     value="Target field: MA_BS - Mã bác sĩ FHIR path: VNCoreComposition.author.resolve().identifier.value | VNCorePractitioner.identifier.value"/>
    </rule>
    <rule>
      <name value="tenBs"/>
      <source>
        <context value="sourceBundle"/>
        <min value="0"/>
        <max value="*"/>
        <element value="entry"/>
        <variable value="tenBsSource"/>
      </source>
      <target>
        <context value="targetRow"/>
        <contextType value="variable"/>
        <element value="tenBs"/>
      </target>
      <documentation
                     value="Target field: TEN_BS - Tên bác sĩ FHIR path: VNCoreComposition.author.display | VNCorePractitioner.name.text"/>
    </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="maCha"/>
      <source>
        <context value="sourceBundle"/>
        <min value="0"/>
        <max value="*"/>
        <element value="entry"/>
        <variable value="maChaSource"/>
      </source>
      <target>
        <context value="targetRow"/>
        <contextType value="variable"/>
        <element value="maCha"/>
      </target>
      <documentation
                     value="Target field: MA_CHA - Mã cha FHIR path: VNCoreRelatedPerson.where(relationship.coding.code='FTH').identifier[CCCD].value | VNCorePatient.contact.where(relationship.coding.code='FTH').name"/>
    </rule>
    <rule>
      <name value="maMe"/>
      <source>
        <context value="sourceBundle"/>
        <min value="0"/>
        <max value="*"/>
        <element value="entry"/>
        <variable value="maMeSource"/>
      </source>
      <target>
        <context value="targetRow"/>
        <contextType value="variable"/>
        <element value="maMe"/>
      </target>
      <documentation
                     value="Target field: MA_ME - Mã mẹ FHIR path: VNCoreRelatedPerson.where(relationship.coding.code='MTH').identifier[CCCD].value | VNCorePatient.contact.where(relationship.coding.code='MTH').name"/>
    </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="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="hoTenMe"/>
      <source>
        <context value="sourceBundle"/>
        <min value="0"/>
        <max value="*"/>
        <element value="entry"/>
        <variable value="hoTenMeSource"/>
      </source>
      <target>
        <context value="targetRow"/>
        <contextType value="variable"/>
        <element value="hoTenMe"/>
      </target>
      <documentation
                     value="Target field: HO_TEN_ME - Họ tên mẹ FHIR path: VNCoreRelatedPerson.where(relationship.coding.code='MTH').name.text | VNCorePatient.contact.where(relationship.coding.code='MTH').name.text"/>
    </rule>
    <rule>
      <name value="soNgayNghi"/>
      <source>
        <context value="sourceBundle"/>
        <min value="0"/>
        <max value="*"/>
        <element value="entry"/>
        <variable value="soNgayNghiSource"/>
      </source>
      <target>
        <context value="targetRow"/>
        <contextType value="variable"/>
        <element value="soNgayNghi"/>
      </target>
      <documentation
                     value="Target field: SO_NGAY_NGHI - Số ngày nghỉ FHIR path: Derived from VNCoreDocumentReference.context.period | VNCoreComposition.event.period"/>
    </rule>
    <rule>
      <name value="ngoaiTruTuNgay"/>
      <source>
        <context value="sourceBundle"/>
        <min value="0"/>
        <max value="*"/>
        <element value="entry"/>
        <variable value="ngoaiTruTuNgaySource"/>
      </source>
      <target>
        <context value="targetRow"/>
        <contextType value="variable"/>
        <element value="ngoaiTruTuNgay"/>
      </target>
      <documentation
                     value="Target field: NGOAITRU_TUNGAY - Ngoại trú từ ngày FHIR path: VNCoreDocumentReference.context.period.start | VNCoreComposition.event.period.start"/>
    </rule>
    <rule>
      <name value="ngoaiTruDenNgay"/>
      <source>
        <context value="sourceBundle"/>
        <min value="0"/>
        <max value="*"/>
        <element value="entry"/>
        <variable value="ngoaiTruDenNgaySource"/>
      </source>
      <target>
        <context value="targetRow"/>
        <contextType value="variable"/>
        <element value="ngoaiTruDenNgay"/>
      </target>
      <documentation
                     value="Target field: NGOAITRU_DENNGAY - Ngoại trú đến ngày FHIR path: VNCoreDocumentReference.context.period.end | VNCoreComposition.event.period.end"/>
    </rule>
  </group>
</StructureMap>