{
  "resourceType" : "StructureMap",
  "id" : "vn-sm-bhyt-xml8-treatment-summary",
  "language" : "vi",
  "text" : {
    "status" : "generated",
    "div" : "<div xmlns=\"http://www.w3.org/1999/xhtml\"><p class=\"res-header-id\"><b>Generated Narrative: StructureMap vn-sm-bhyt-xml8-treatment-summary</b></p><a name=\"vn-sm-bhyt-xml8-treatment-summary\"> </a><a name=\"hcvn-sm-bhyt-xml8-treatment-summary\"> </a><pre class=\"fml\">\r\n<b>map</b><span style=\"color: navy\"> &quot;</span>http://fhir.hl7.org.vn/core/StructureMap/vn-sm-bhyt-xml8-treatment-summary<span style=\"color: navy\">&quot; = &quot;</span>BHYTXML8TreatmentSummaryLMStructureMap<span style=\"color: navy\">&quot;\r\n\r\n</span><span style=\"color: navy\">// </span><span style=\"color: green\">Generated StructureMap scaffold for Bảng 8 tóm tắt hồ sơ bệnh án — XML8 Treatment Summary Logical Model. Source semantics come from the logical model mapping annotations in `BHYTXML8TreatmentSummaryLM.fsh` and remain aligned with the Python BHYT round-trip export adapter.</span>\r\n\r\n<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\">FHIR-native source bundle profile used by the repository round-trip adapter.</span>\r\n<b>uses</b><span style=\"color: navy\"> &quot;</span><a href=\"StructureDefinition-bhytXml8TreatmentSummaryLm.html\" title=\"Bảng 8 tóm tắt hồ sơ bệnh án — XML8 Treatment Summary Logical Model\">http://fhir.hl7.org.vn/core/StructureDefinition/bhytXml8TreatmentSummaryLm</a><span style=\"color: navy\">&quot; </span><b>alias </b>BHYTXML8TreatmentSummaryLM <b>as </b><b>target</b> <span style=\"color: navy\">// </span><span style=\"color: green\">Bảng 8 tóm tắt hồ sơ bệnh án — XML8 Treatment Summary Logical Model</span>\r\n\r\n<span style=\"color: navy\">// </span><span style=\"color: green\">Rows are derived from treatment summary Composition/DocumentReference and the linked Encounter, Condition, Patient and guardian 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>\r\n<b>group </b>MapBHYTXML8TreatmentSummaryLM<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>BHYTXML8TreatmentSummaryLM<span style=\"color: navy\">)</span><span style=\"color: navy\"> {\r\n</span>  sourceBundle.entry<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_LK - Mã liên kết hồ sơ FHIR path: VNCoreClaim.identifier[MALK].value</span>\r\n  sourceBundle.entry<b> as </b><span style=\"color: maroon\">maLoaiKcbSource</span><span style=\"color: navy\"><b> -&gt; </b></span>targetRow.maLoaiKcb <i>&quot;maLoaiKcb&quot;</i><span style=\"color: navy\">;</span> <span style=\"color: navy\">// </span><span style=\"color: green\">Target field: MA_LOAI_KCB - Mã loại KCB FHIR path: VNCoreEncounter.type</span>\r\n  sourceBundle.entry<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_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>\r\n  sourceBundle.entry<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: 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>\r\n  sourceBundle.entry<b> as </b><span style=\"color: maroon\">nguoiGiamHoSource</span><span style=\"color: navy\"><b> -&gt; </b></span>targetRow.nguoiGiamHo <i>&quot;nguoiGiamHo&quot;</i><span style=\"color: navy\">;</span> <span style=\"color: navy\">// </span><span style=\"color: green\">Target field: NGUOI_GIAM_HO - Người giám hộ FHIR path: VNCoreRelatedPerson.where(relationship.coding.code='GUARD').name.text | VNCorePatient.contact.name.text</span>\r\n  sourceBundle.entry<b> as </b><span style=\"color: maroon\">donViSource</span><span style=\"color: navy\"><b> -&gt; </b></span>targetRow.donVi <i>&quot;donVi&quot;</i><span style=\"color: navy\">;</span> <span style=\"color: navy\">// </span><span style=\"color: green\">Target field: DON_VI - Đơn vị FHIR path: VNCoreOrganization.name | VNCoreDocumentReference.custodian.resolve().name</span>\r\n  sourceBundle.entry<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_VAO - Ngày vào FHIR path: VNCoreEncounter.period.start</span>\r\n  sourceBundle.entry<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: NGAY_RA - Ngày ra FHIR path: VNCoreEncounter.period.end</span>\r\n  sourceBundle.entry<b> as </b><span style=\"color: maroon\">chanDoanVaoSource</span><span style=\"color: navy\"><b> -&gt; </b></span>targetRow.chanDoanVao <i>&quot;chanDoanVao&quot;</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 FHIR path: VNCoreEncounter.reasonCode | VNCoreComposition.section[chiefComplaint|history].text</span>\r\n  sourceBundle.entry<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: CHAN_DOAN_RV - Chẩn đoán ra viện FHIR path: VNCoreCondition.code | VNCoreComposition.section[diagnosis].entry.resolve().code | section.text</span>\r\n  sourceBundle.entry<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: NGAY_SINHCON - Ngày sinh con FHIR path: VNCorePatient.birthDate | VNCoreComposition.section[delivery].entry.resolve().birthDate</span>\r\n  sourceBundle.entry<b> as </b><span style=\"color: maroon\">ngayConChetSource</span><span style=\"color: navy\"><b> -&gt; </b></span>targetRow.ngayConChet <i>&quot;ngayConChet&quot;</i><span style=\"color: navy\">;</span> <span style=\"color: navy\">// </span><span style=\"color: green\">Target field: NGAY_CONCHET - Ngày con chết FHIR path: VNCoreObservation.effectiveDateTime | VNCoreCondition.onsetDateTime</span>\r\n  sourceBundle.entry<b> as </b><span style=\"color: maroon\">soConChetSource</span><span style=\"color: navy\"><b> -&gt; </b></span>targetRow.soConChet <i>&quot;soConChet&quot;</i><span style=\"color: navy\">;</span> <span style=\"color: navy\">// </span><span style=\"color: green\">Target field: SO_CONCHET - Số con chết FHIR path: VNCoreObservation.valueQuantity</span>\r\n  sourceBundle.entry<b> as </b><span style=\"color: maroon\">ketQuaDtriSource</span><span style=\"color: navy\"><b> -&gt; </b></span>targetRow.ketQuaDtri <i>&quot;ketQuaDtri&quot;</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.hospitalization.dischargeDisposition | VNCoreEncounter.extension[treatmentOutcome].valueCodeableConcept</span>\r\n  sourceBundle.entry<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_TTDV - Mã thủ trưởng đơn vị/người ký FHIR path: VNCoreComposition.attester.party.resolve().identifier.value | VNCoreDocumentReference.authenticator.resolve().identifier.value</span>\r\n  sourceBundle.entry<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: NGAY_CT - Ngày cấp chứng từ FHIR path: VNCoreDocumentReference.date | VNCoreComposition.date</span>\r\n  sourceBundle.entry<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: 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>\r\n<span style=\"color: navy\">}\r\n\r\n</span></pre></div>"
  },
  "url" : "http://fhir.hl7.org.vn/core/StructureMap/vn-sm-bhyt-xml8-treatment-summary",
  "version" : "0.5.0",
  "name" : "BHYTXML8TreatmentSummaryLMStructureMap",
  "title" : "Bảng 8 tóm tắt hồ sơ bệnh án — XML8 Treatment Summary Logical Model — StructureMap",
  "status" : "draft",
  "experimental" : false,
  "date" : "2026-04-28",
  "publisher" : "Omi HealthTech / VN Core FHIR Community Initiative",
  "contact" : [{
    "name" : "Omi HealthTech / VN Core FHIR Community Initiative",
    "telecom" : [{
      "system" : "url",
      "value" : "https://hl7.org.vn"
    },
    {
      "system" : "email",
      "value" : "info@hl7.org.vn"
    }]
  },
  {
    "name" : "Omi HealthTech (OmiGroup)",
    "telecom" : [{
      "system" : "url",
      "value" : "https://omihealthtech.vn"
    },
    {
      "system" : "url",
      "value" : "https://omigroup.vn"
    },
    {
      "system" : "email",
      "value" : "healthtech@omigroup.vn"
    }]
  }],
  "description" : "Generated StructureMap scaffold for Bảng 8 tóm tắt hồ sơ bệnh án — XML8 Treatment Summary Logical Model. Source semantics come from the logical model mapping annotations in `BHYTXML8TreatmentSummaryLM.fsh` and remain aligned with the Python BHYT round-trip export adapter.",
  "jurisdiction" : [{
    "coding" : [{
      "system" : "urn:iso:std:iso:3166",
      "code" : "VN",
      "display" : "Viet Nam"
    }]
  }],
  "purpose" : "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" : "http://fhir.hl7.org.vn/core/StructureDefinition/vn-core-bhyt-submission-bundle",
    "mode" : "source",
    "alias" : "BHYTSubmissionBundle",
    "documentation" : "FHIR-native source bundle profile used by the repository round-trip adapter."
  },
  {
    "url" : "http://fhir.hl7.org.vn/core/StructureDefinition/bhytXml8TreatmentSummaryLm",
    "mode" : "target",
    "alias" : "BHYTXML8TreatmentSummaryLM",
    "documentation" : "Bảng 8 tóm tắt hồ sơ bệnh án — XML8 Treatment Summary Logical Model"
  }],
  "group" : [{
    "name" : "MapBHYTXML8TreatmentSummaryLM",
    "typeMode" : "none",
    "documentation" : "Rows are derived from treatment summary Composition/DocumentReference and the linked Encounter, Condition, Patient and guardian 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" : "sourceBundle",
      "type" : "BHYTSubmissionBundle",
      "mode" : "source",
      "documentation" : "VN Core BHYT submission bundle."
    },
    {
      "name" : "targetRow",
      "type" : "BHYTXML8TreatmentSummaryLM",
      "mode" : "target",
      "documentation" : "Bảng 8 tóm tắt hồ sơ bệnh án — XML8 Treatment Summary Logical Model"
    }],
    "rule" : [{
      "name" : "maLk",
      "source" : [{
        "context" : "sourceBundle",
        "min" : 0,
        "max" : "*",
        "element" : "entry",
        "variable" : "maLkSource"
      }],
      "target" : [{
        "context" : "targetRow",
        "contextType" : "variable",
        "element" : "maLk"
      }],
      "documentation" : "Target field: MA_LK - Mã liên kết hồ sơ FHIR path: VNCoreClaim.identifier[MALK].value"
    },
    {
      "name" : "maLoaiKcb",
      "source" : [{
        "context" : "sourceBundle",
        "min" : 0,
        "max" : "*",
        "element" : "entry",
        "variable" : "maLoaiKcbSource"
      }],
      "target" : [{
        "context" : "targetRow",
        "contextType" : "variable",
        "element" : "maLoaiKcb"
      }],
      "documentation" : "Target field: MA_LOAI_KCB - Mã loại KCB FHIR path: VNCoreEncounter.type"
    },
    {
      "name" : "hoTenCha",
      "source" : [{
        "context" : "sourceBundle",
        "min" : 0,
        "max" : "*",
        "element" : "entry",
        "variable" : "hoTenChaSource"
      }],
      "target" : [{
        "context" : "targetRow",
        "contextType" : "variable",
        "element" : "hoTenCha"
      }],
      "documentation" : "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"
    },
    {
      "name" : "hoTenMe",
      "source" : [{
        "context" : "sourceBundle",
        "min" : 0,
        "max" : "*",
        "element" : "entry",
        "variable" : "hoTenMeSource"
      }],
      "target" : [{
        "context" : "targetRow",
        "contextType" : "variable",
        "element" : "hoTenMe"
      }],
      "documentation" : "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"
    },
    {
      "name" : "nguoiGiamHo",
      "source" : [{
        "context" : "sourceBundle",
        "min" : 0,
        "max" : "*",
        "element" : "entry",
        "variable" : "nguoiGiamHoSource"
      }],
      "target" : [{
        "context" : "targetRow",
        "contextType" : "variable",
        "element" : "nguoiGiamHo"
      }],
      "documentation" : "Target field: NGUOI_GIAM_HO - Người giám hộ FHIR path: VNCoreRelatedPerson.where(relationship.coding.code='GUARD').name.text | VNCorePatient.contact.name.text"
    },
    {
      "name" : "donVi",
      "source" : [{
        "context" : "sourceBundle",
        "min" : 0,
        "max" : "*",
        "element" : "entry",
        "variable" : "donViSource"
      }],
      "target" : [{
        "context" : "targetRow",
        "contextType" : "variable",
        "element" : "donVi"
      }],
      "documentation" : "Target field: DON_VI - Đơn vị FHIR path: VNCoreOrganization.name | VNCoreDocumentReference.custodian.resolve().name"
    },
    {
      "name" : "ngayVao",
      "source" : [{
        "context" : "sourceBundle",
        "min" : 0,
        "max" : "*",
        "element" : "entry",
        "variable" : "ngayVaoSource"
      }],
      "target" : [{
        "context" : "targetRow",
        "contextType" : "variable",
        "element" : "ngayVao"
      }],
      "documentation" : "Target field: NGAY_VAO - Ngày vào FHIR path: VNCoreEncounter.period.start"
    },
    {
      "name" : "ngayRa",
      "source" : [{
        "context" : "sourceBundle",
        "min" : 0,
        "max" : "*",
        "element" : "entry",
        "variable" : "ngayRaSource"
      }],
      "target" : [{
        "context" : "targetRow",
        "contextType" : "variable",
        "element" : "ngayRa"
      }],
      "documentation" : "Target field: NGAY_RA - Ngày ra FHIR path: VNCoreEncounter.period.end"
    },
    {
      "name" : "chanDoanVao",
      "source" : [{
        "context" : "sourceBundle",
        "min" : 0,
        "max" : "*",
        "element" : "entry",
        "variable" : "chanDoanVaoSource"
      }],
      "target" : [{
        "context" : "targetRow",
        "contextType" : "variable",
        "element" : "chanDoanVao"
      }],
      "documentation" : "Target field: CHAN_DOAN_VAO - Chẩn đoán vào FHIR path: VNCoreEncounter.reasonCode | VNCoreComposition.section[chiefComplaint|history].text"
    },
    {
      "name" : "chanDoanRv",
      "source" : [{
        "context" : "sourceBundle",
        "min" : 0,
        "max" : "*",
        "element" : "entry",
        "variable" : "chanDoanRvSource"
      }],
      "target" : [{
        "context" : "targetRow",
        "contextType" : "variable",
        "element" : "chanDoanRv"
      }],
      "documentation" : "Target field: CHAN_DOAN_RV - Chẩn đoán ra viện FHIR path: VNCoreCondition.code | VNCoreComposition.section[diagnosis].entry.resolve().code | section.text"
    },
    {
      "name" : "ngaySinhCon",
      "source" : [{
        "context" : "sourceBundle",
        "min" : 0,
        "max" : "*",
        "element" : "entry",
        "variable" : "ngaySinhConSource"
      }],
      "target" : [{
        "context" : "targetRow",
        "contextType" : "variable",
        "element" : "ngaySinhCon"
      }],
      "documentation" : "Target field: NGAY_SINHCON - Ngày sinh con FHIR path: VNCorePatient.birthDate | VNCoreComposition.section[delivery].entry.resolve().birthDate"
    },
    {
      "name" : "ngayConChet",
      "source" : [{
        "context" : "sourceBundle",
        "min" : 0,
        "max" : "*",
        "element" : "entry",
        "variable" : "ngayConChetSource"
      }],
      "target" : [{
        "context" : "targetRow",
        "contextType" : "variable",
        "element" : "ngayConChet"
      }],
      "documentation" : "Target field: NGAY_CONCHET - Ngày con chết FHIR path: VNCoreObservation.effectiveDateTime | VNCoreCondition.onsetDateTime"
    },
    {
      "name" : "soConChet",
      "source" : [{
        "context" : "sourceBundle",
        "min" : 0,
        "max" : "*",
        "element" : "entry",
        "variable" : "soConChetSource"
      }],
      "target" : [{
        "context" : "targetRow",
        "contextType" : "variable",
        "element" : "soConChet"
      }],
      "documentation" : "Target field: SO_CONCHET - Số con chết FHIR path: VNCoreObservation.valueQuantity"
    },
    {
      "name" : "ketQuaDtri",
      "source" : [{
        "context" : "sourceBundle",
        "min" : 0,
        "max" : "*",
        "element" : "entry",
        "variable" : "ketQuaDtriSource"
      }],
      "target" : [{
        "context" : "targetRow",
        "contextType" : "variable",
        "element" : "ketQuaDtri"
      }],
      "documentation" : "Target field: KET_QUA_DTRI - Kết quả điều trị FHIR path: VNCoreEncounter.hospitalization.dischargeDisposition | VNCoreEncounter.extension[treatmentOutcome].valueCodeableConcept"
    },
    {
      "name" : "maTtdv",
      "source" : [{
        "context" : "sourceBundle",
        "min" : 0,
        "max" : "*",
        "element" : "entry",
        "variable" : "maTtdvSource"
      }],
      "target" : [{
        "context" : "targetRow",
        "contextType" : "variable",
        "element" : "maTtdv"
      }],
      "documentation" : "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"
    },
    {
      "name" : "ngayCt",
      "source" : [{
        "context" : "sourceBundle",
        "min" : 0,
        "max" : "*",
        "element" : "entry",
        "variable" : "ngayCtSource"
      }],
      "target" : [{
        "context" : "targetRow",
        "contextType" : "variable",
        "element" : "ngayCt"
      }],
      "documentation" : "Target field: NGAY_CT - Ngày cấp chứng từ FHIR path: VNCoreDocumentReference.date | VNCoreComposition.date"
    },
    {
      "name" : "maTheTam",
      "source" : [{
        "context" : "sourceBundle",
        "min" : 0,
        "max" : "*",
        "element" : "entry",
        "variable" : "maTheTamSource"
      }],
      "target" : [{
        "context" : "targetRow",
        "contextType" : "variable",
        "element" : "maTheTam"
      }],
      "documentation" : "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."
    }]
  }]
}