HL7 Vietnam VN Core FHIR Implementation Guide

Bộ Hướng dẫn Triển khai Core FHIR cho Việt Nam
0.7.0 - Draft for Community Review Viet Nam cờ

Bộ Hướng dẫn Triển khai Core FHIR cho Việt Nam - Local Development build (v0.7.0) built by the FHIR (HL7® FHIR® Standard) Build Tools. See the Directory of published versions

Mô hình logic: Bản tin BHXH → TTDLQG (dịch vụ G12) — Logical Model (Phụ lục 03) - Hồ sơ TTL

Draft tại thời điểm 2026-07-14

Biểu diễn TTL của vnHealthCheckupG12EnvelopeLm mô hình logic.

Raw ttl | Download

@prefix fhir: <http://hl7.org/fhir/> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

# - resource -------------------------------------------------------------------

<http://hl7.org/fhir/StructureDefinition/vnHealthCheckupG12EnvelopeLm> a fhir:StructureDefinition ;
  fhir:nodeRole fhir:treeRoot ;
  fhir:Resource.id [ fhir:value "vnHealthCheckupG12EnvelopeLm"] ;
  fhir:Resource.language [ fhir:value "vi"] ;
  fhir:DomainResource.text [
     fhir:Narrative.status [ fhir:value "extensions" ] ;
     fhir:Narrative.div "<div xmlns=\"http://www.w3.org/1999/xhtml\"><p class=\"res-header-id\"><b>Generated Narrative: StructureDefinition vnHealthCheckupG12EnvelopeLm</b></p><table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" style=\"border: 0px #F0F0F0 solid; font-size: 11px; font-family: verdana; vertical-align: top;\"><tr style=\"border: 1px #F0F0F0 solid; font-size: 11px; font-family: verdana; vertical-align: top\"><th style=\"vertical-align: top; text-align : var(--ig-left,left); background-color: white; border: 0px #F0F0F0 solid; padding:0px 4px 0px 4px; padding-top: 3px; padding-bottom: 3px\" class=\"hierarchy\"><a href=\"https://build.fhir.org/ig/FHIR/ig-guidance/readingIgs.html#table-views\" title=\"The logical name of the element\">Name</a></th><th style=\"vertical-align: top; text-align : var(--ig-left,left); background-color: white; border: 0px #F0F0F0 solid; padding:0px 4px 0px 4px; padding-top: 3px; padding-bottom: 3px\" class=\"hierarchy\"><a href=\"https://build.fhir.org/ig/FHIR/ig-guidance/readingIgs.html#table-views\" title=\"Information about the use of the element\">Flags</a></th><th style=\"vertical-align: top; text-align : var(--ig-left,left); background-color: white; border: 0px #F0F0F0 solid; padding:0px 4px 0px 4px; padding-top: 3px; padding-bottom: 3px\" class=\"hierarchy\"><a href=\"https://build.fhir.org/ig/FHIR/ig-guidance/readingIgs.html#table-views\" title=\"Minimum and Maximum # of times the element can appear in the instance\">Card.</a></th><th style=\"vertical-align: top; text-align : var(--ig-left,left); background-color: white; border: 0px #F0F0F0 solid; padding:0px 4px 0px 4px; padding-top: 3px; padding-bottom: 3px; width: 100px\" class=\"hierarchy\"><a href=\"https://build.fhir.org/ig/FHIR/ig-guidance/readingIgs.html#table-views\" title=\"Reference to the type of the element\">Type</a></th><th style=\"vertical-align: top; text-align : var(--ig-left,left); background-color: white; border: 0px #F0F0F0 solid; padding:0px 4px 0px 4px; padding-top: 3px; padding-bottom: 3px\" class=\"hierarchy\"><a href=\"https://build.fhir.org/ig/FHIR/ig-guidance/readingIgs.html#table-views\" title=\"Additional information about the element\">Description &amp; Constraints</a><span style=\"float: right\"><a href=\"https://build.fhir.org/ig/FHIR/ig-guidance/readingIgs.html#table-views\" title=\"Legend for this format\"><img src=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH3goXBCwdPqAP0wAAAldJREFUOMuNk0tIlFEYhp9z/vE2jHkhxXA0zJCMitrUQlq4lnSltEqCFhFG2MJFhIvIFpkEWaTQqjaWZRkp0g26URZkTpbaaOJkDqk10szoODP//7XIMUe0elcfnPd9zsfLOYplGrpRwZaqTtw3K7PtGem7Q6FoidbGgqHVy/HRb669R+56zx7eRV1L31JGxYbBtjKK93cxeqfyQHbehkZbUkK20goELEuIzEd+dHS+qz/Y8PTSif0FnGkbiwcAjHaU1+QWOptFiyCLp/LnKptpqIuXHx6rbR26kJcBX3yLgBfnd7CxwJmflpP2wUg0HIAoUUpZBmKzELGWcN8nAr6Gpu7tLU/CkwAaoKTWRSQyt89Q8w6J+oVQkKnBoblH7V0PPvUOvDYXfopE/SJmALsxnVm6LbkotrUtNowMeIrVrBcBpaMmdS0j9df7abpSuy7HWehwJdt1lhVwi/J58U5beXGAF6c3UXLycw1wdFklArBn87xdh0ZsZtArghBdAA3+OEDVubG4UEzP6x1FOWneHh2VDAHBAt80IbdXDcesNoCvs3E5AFyNSU5nbrDPZpcUEQQTFZiEVx+51fxMhhyJEAgvlriadIJZZksRuwBYMOPBbO3hePVVqgEJhFeUuFLhIPkRP6BQLIBrmMenujm/3g4zc398awIe90Zb5A1vREALqneMcYgP/xVQWlG+Ncu5vgwwlaUNx+3799rfe96u9K0JSDXcOzOTJg4B6IgmXfsygc7/Bvg9g9E58/cDVmGIBOP/zT8Bz1zqWqpbXIsd0O9hajXfL6u4BaOS6SeWAAAAAElFTkSuQmCC\" alt=\"doco\" style=\"background-color: inherit\"/></a></span></th></tr><tr style=\"border: 0px #F0F0F0 solid; padding:0px; vertical-align: top; background-color: white\"><td style=\"vertical-align: top; text-align : var(--ig-left,left); background-color: white; border: 0px #F0F0F0 solid; padding:0px 4px 0px 4px; white-space: nowrap; background-image: url(tbl_bck1.png)\" class=\"hierarchy\"><img src=\"tbl_spacer.png\" alt=\".\" style=\"background-color: inherit\" class=\"hierarchy\"/><img src=\"icon_element.gif\" alt=\".\" style=\"background-color: white; background-color: inherit\" title=\"Element\" class=\"hierarchy\"/> <a href=\"StructureDefinition-vnHealthCheckupG12EnvelopeLm-definitions.html#vnHealthCheckupG12EnvelopeLm\" title=\"Logical model cho bản tin tiếp nhận dữ liệu khám bệnh từ Bảo hiểm xã hội Việt Nam, đồng bộ qua Trung tâm Dữ liệu Quốc gia (TTDLQG / NDOP — CP.NET) về CSDL sức khỏe Bộ Y tế. API: POST /api/integrate/v1/G12.#xA;Luồng: BHXH tạo XML (cấu trúc do TTDLQG cung cấp) → base64 → ký số (dịch vụ Ban Cơ yếu) → gửi qua AgentNode. Xác thực: API Key do TTDLQG cấp. X-Service = G12.#xA;KHÁC với BHYT Gateway thanh toán (gdbhyt.baohiemxahoi.gov.vn, XML 4210) — đây là surface đồng bộ dữ liệu khám bệnh BHXH → CSDL sức khỏe cá nhân.#xA;**INFORMATIVE / non-normative**: mô hình ánh xạ transport envelope NDOP G12 (không phải FHIR resource normative) — mapping aid cho implementer.#xA;Căn cứ: QĐ 1551/QĐ-BYT (31/5/2026) — Phụ lục 03 đặc tả API.\">vnHealthCheckupG12EnvelopeLm</a><a name=\"vnHealthCheckupG12EnvelopeLm\"> </a></td><td style=\"vertical-align: top; text-align : var(--ig-left,left); background-color: white; border: 0px #F0F0F0 solid; padding:0px 4px 0px 4px\" class=\"hierarchy\"/><td style=\"vertical-align: top; text-align : var(--ig-left,left); background-color: white; border: 0px #F0F0F0 solid; padding:0px 4px 0px 4px\" class=\"hierarchy\"><span style=\"opacity: 0.5\">0</span><span style=\"opacity: 0.5\">..</span><span style=\"opacity: 0.5\">*</span></td><td style=\"vertical-align: top; text-align : var(--ig-left,left); background-color: white; border: 0px #F0F0F0 solid; padding:0px 4px 0px 4px\" class=\"hierarchy\"><a href=\"http://build.fhir.org/types.html#Base\">Base</a></td><td style=\"vertical-align: top; text-align : var(--ig-left,left); background-color: white; border: 0px #F0F0F0 solid; padding:0px 4px 0px 4px\" class=\"hierarchy\">Bản tin BHXH → TTDLQG (dịch vụ G12) — Logical Model (Phụ lục 03)</td></tr>#xD;\n<tr style=\"border: 0px #F0F0F0 solid; padding:0px; vertical-align: top; background-color: #F7F7F7\"><td style=\"vertical-align: top; text-align : var(--ig-left,left); background-color: #F7F7F7; border: 0px #F0F0F0 solid; padding:0px 4px 0px 4px; white-space: nowrap; background-image: url(tbl_bck10.png)\" class=\"hierarchy\"><img src=\"tbl_spacer.png\" alt=\".\" style=\"background-color: inherit\" class=\"hierarchy\"/><img src=\"tbl_vjoin.png\" alt=\".\" style=\"background-color: inherit\" class=\"hierarchy\"/><img src=\"icon_primitive.png\" alt=\".\" style=\"background-color: #F7F7F7; background-color: inherit\" title=\"Primitive Data Type\" class=\"hierarchy\"/> <a href=\"StructureDefinition-vnHealthCheckupG12EnvelopeLm-definitions.html#vnHealthCheckupG12EnvelopeLm.contentType\" title=\"content-type - application/json\">contentType</a><a name=\"vnHealthCheckupG12EnvelopeLm.contentType\"> </a></td><td style=\"vertical-align: top; text-align : var(--ig-left,left); background-color: #F7F7F7; border: 0px #F0F0F0 solid; padding:0px 4px 0px 4px\" class=\"hierarchy\"/><td style=\"vertical-align: top; text-align : var(--ig-left,left); background-color: #F7F7F7; border: 0px #F0F0F0 solid; padding:0px 4px 0px 4px\" class=\"hierarchy\">1..1</td><td style=\"vertical-align: top; text-align : var(--ig-left,left); background-color: #F7F7F7; border: 0px #F0F0F0 solid; padding:0px 4px 0px 4px\" class=\"hierarchy\"><a href=\"http://hl7.org/fhir/R4/datatypes.html#string\">string</a></td><td style=\"vertical-align: top; text-align : var(--ig-left,left); background-color: #F7F7F7; border: 0px #F0F0F0 solid; padding:0px 4px 0px 4px\" class=\"hierarchy\">content-type - application/json</td></tr>#xD;\n<tr style=\"border: 0px #F0F0F0 solid; padding:0px; vertical-align: top; background-color: white\"><td style=\"vertical-align: top; text-align : var(--ig-left,left); background-color: white; border: 0px #F0F0F0 solid; padding:0px 4px 0px 4px; white-space: nowrap; background-image: url(tbl_bck10.png)\" class=\"hierarchy\"><img src=\"tbl_spacer.png\" alt=\".\" style=\"background-color: inherit\" class=\"hierarchy\"/><img src=\"tbl_vjoin.png\" alt=\".\" style=\"background-color: inherit\" class=\"hierarchy\"/><img src=\"icon_primitive.png\" alt=\".\" style=\"background-color: white; background-color: inherit\" title=\"Primitive Data Type\" class=\"hierarchy\"/> <a href=\"StructureDefinition-vnHealthCheckupG12EnvelopeLm-definitions.html#vnHealthCheckupG12EnvelopeLm.authorization\" title=\"authorization - API Key do TTDLQG cấp\">authorization</a><a name=\"vnHealthCheckupG12EnvelopeLm.authorization\"> </a></td><td style=\"vertical-align: top; text-align : var(--ig-left,left); background-color: white; border: 0px #F0F0F0 solid; padding:0px 4px 0px 4px\" class=\"hierarchy\"/><td style=\"vertical-align: top; text-align : var(--ig-left,left); background-color: white; border: 0px #F0F0F0 solid; padding:0px 4px 0px 4px\" class=\"hierarchy\">1..1</td><td style=\"vertical-align: top; text-align : var(--ig-left,left); background-color: white; border: 0px #F0F0F0 solid; padding:0px 4px 0px 4px\" class=\"hierarchy\"><a href=\"http://hl7.org/fhir/R4/datatypes.html#string\">string</a></td><td style=\"vertical-align: top; text-align : var(--ig-left,left); background-color: white; border: 0px #F0F0F0 solid; padding:0px 4px 0px 4px\" class=\"hierarchy\">authorization - API Key do TTDLQG cấp</td></tr>#xD;\n<tr style=\"border: 0px #F0F0F0 solid; padding:0px; vertical-align: top; background-color: #F7F7F7\"><td style=\"vertical-align: top; text-align : var(--ig-left,left); background-color: #F7F7F7; border: 0px #F0F0F0 solid; padding:0px 4px 0px 4px; white-space: nowrap; background-image: url(tbl_bck10.png)\" class=\"hierarchy\"><img src=\"tbl_spacer.png\" alt=\".\" style=\"background-color: inherit\" class=\"hierarchy\"/><img src=\"tbl_vjoin.png\" alt=\".\" style=\"background-color: inherit\" class=\"hierarchy\"/><img src=\"icon_primitive.png\" alt=\".\" style=\"background-color: #F7F7F7; background-color: inherit\" title=\"Primitive Data Type\" class=\"hierarchy\"/> <a href=\"StructureDefinition-vnHealthCheckupG12EnvelopeLm-definitions.html#vnHealthCheckupG12EnvelopeLm.dataType\" title=\"data-type - Mã dịch vụ/loại dữ liệu (tham chiếu mục mã dịch vụ)\">dataType</a><a name=\"vnHealthCheckupG12EnvelopeLm.dataType\"> </a></td><td style=\"vertical-align: top; text-align : var(--ig-left,left); background-color: #F7F7F7; border: 0px #F0F0F0 solid; padding:0px 4px 0px 4px\" class=\"hierarchy\"/><td style=\"vertical-align: top; text-align : var(--ig-left,left); background-color: #F7F7F7; border: 0px #F0F0F0 solid; padding:0px 4px 0px 4px\" class=\"hierarchy\">1..1</td><td style=\"vertical-align: top; text-align : var(--ig-left,left); background-color: #F7F7F7; border: 0px #F0F0F0 solid; padding:0px 4px 0px 4px\" class=\"hierarchy\"><a href=\"http://hl7.org/fhir/R4/datatypes.html#string\">string</a></td><td style=\"vertical-align: top; text-align : var(--ig-left,left); background-color: #F7F7F7; border: 0px #F0F0F0 solid; padding:0px 4px 0px 4px\" class=\"hierarchy\">data-type - Mã dịch vụ/loại dữ liệu (tham chiếu mục mã dịch vụ)</td></tr>#xD;\n<tr style=\"border: 0px #F0F0F0 solid; padding:0px; vertical-align: top; background-color: white\"><td style=\"vertical-align: top; text-align : var(--ig-left,left); background-color: white; border: 0px #F0F0F0 solid; padding:0px 4px 0px 4px; white-space: nowrap; background-image: url(tbl_bck10.png)\" class=\"hierarchy\"><img src=\"tbl_spacer.png\" alt=\".\" style=\"background-color: inherit\" class=\"hierarchy\"/><img src=\"tbl_vjoin.png\" alt=\".\" style=\"background-color: inherit\" class=\"hierarchy\"/><img src=\"icon_primitive.png\" alt=\".\" style=\"background-color: white; background-color: inherit\" title=\"Primitive Data Type\" class=\"hierarchy\"/> <a href=\"StructureDefinition-vnHealthCheckupG12EnvelopeLm-definitions.html#vnHealthCheckupG12EnvelopeLm.requestId\" title=\"request-id - Mã yêu cầu do hệ thống bộ/ngành tự sinh, duy nhất trên hệ thống\">requestId</a><a name=\"vnHealthCheckupG12EnvelopeLm.requestId\"> </a></td><td style=\"vertical-align: top; text-align : var(--ig-left,left); background-color: white; border: 0px #F0F0F0 solid; padding:0px 4px 0px 4px\" class=\"hierarchy\"/><td style=\"vertical-align: top; text-align : var(--ig-left,left); background-color: white; border: 0px #F0F0F0 solid; padding:0px 4px 0px 4px\" class=\"hierarchy\">1..1</td><td style=\"vertical-align: top; text-align : var(--ig-left,left); background-color: white; border: 0px #F0F0F0 solid; padding:0px 4px 0px 4px\" class=\"hierarchy\"><a href=\"http://hl7.org/fhir/R4/datatypes.html#string\">string</a></td><td style=\"vertical-align: top; text-align : var(--ig-left,left); background-color: white; border: 0px #F0F0F0 solid; padding:0px 4px 0px 4px\" class=\"hierarchy\">request-id - Mã yêu cầu do hệ thống bộ/ngành tự sinh, duy nhất trên hệ thống</td></tr>#xD;\n<tr style=\"border: 0px #F0F0F0 solid; padding:0px; vertical-align: top; background-color: #F7F7F7\"><td style=\"vertical-align: top; text-align : var(--ig-left,left); background-color: #F7F7F7; border: 0px #F0F0F0 solid; padding:0px 4px 0px 4px; white-space: nowrap; background-image: url(tbl_bck10.png)\" class=\"hierarchy\"><img src=\"tbl_spacer.png\" alt=\".\" style=\"background-color: inherit\" class=\"hierarchy\"/><img src=\"tbl_vjoin.png\" alt=\".\" style=\"background-color: inherit\" class=\"hierarchy\"/><img src=\"icon_primitive.png\" alt=\".\" style=\"background-color: #F7F7F7; background-color: inherit\" title=\"Primitive Data Type\" class=\"hierarchy\"/> <a href=\"StructureDefinition-vnHealthCheckupG12EnvelopeLm-definitions.html#vnHealthCheckupG12EnvelopeLm.requestTime\" title=\"request-time - Thời gian yêu cầu (ddMMyyyyHHmmss); lệch >2 phút so với hệ thống nền tảng coi là timeout\">requestTime</a><a name=\"vnHealthCheckupG12EnvelopeLm.requestTime\"> </a></td><td style=\"vertical-align: top; text-align : var(--ig-left,left); background-color: #F7F7F7; border: 0px #F0F0F0 solid; padding:0px 4px 0px 4px\" class=\"hierarchy\"/><td style=\"vertical-align: top; text-align : var(--ig-left,left); background-color: #F7F7F7; border: 0px #F0F0F0 solid; padding:0px 4px 0px 4px\" class=\"hierarchy\">1..1</td><td style=\"vertical-align: top; text-align : var(--ig-left,left); background-color: #F7F7F7; border: 0px #F0F0F0 solid; padding:0px 4px 0px 4px\" class=\"hierarchy\"><a href=\"http://hl7.org/fhir/R4/datatypes.html#string\">string</a></td><td style=\"vertical-align: top; text-align : var(--ig-left,left); background-color: #F7F7F7; border: 0px #F0F0F0 solid; padding:0px 4px 0px 4px\" class=\"hierarchy\">request-time - Thời gian yêu cầu (ddMMyyyyHHmmss); lệch &gt;2 phút so với hệ thống nền tảng coi là timeout</td></tr>#xD;\n<tr style=\"border: 0px #F0F0F0 solid; padding:0px; vertical-align: top; background-color: white\"><td style=\"vertical-align: top; text-align : var(--ig-left,left); background-color: white; border: 0px #F0F0F0 solid; padding:0px 4px 0px 4px; white-space: nowrap; background-image: url(tbl_bck10.png)\" class=\"hierarchy\"><img src=\"tbl_spacer.png\" alt=\".\" style=\"background-color: inherit\" class=\"hierarchy\"/><img src=\"tbl_vjoin.png\" alt=\".\" style=\"background-color: inherit\" class=\"hierarchy\"/><img src=\"icon_primitive.png\" alt=\".\" style=\"background-color: white; background-color: inherit\" title=\"Primitive Data Type\" class=\"hierarchy\"/> <a href=\"StructureDefinition-vnHealthCheckupG12EnvelopeLm-definitions.html#vnHealthCheckupG12EnvelopeLm.xService\" title=\"X-Service - Mã định danh điện tử bộ/ngành. Đối với BHXH: G12\">xService</a><a name=\"vnHealthCheckupG12EnvelopeLm.xService\"> </a></td><td style=\"vertical-align: top; text-align : var(--ig-left,left); background-color: white; border: 0px #F0F0F0 solid; padding:0px 4px 0px 4px\" class=\"hierarchy\"/><td style=\"vertical-align: top; text-align : var(--ig-left,left); background-color: white; border: 0px #F0F0F0 solid; padding:0px 4px 0px 4px\" class=\"hierarchy\">1..1</td><td style=\"vertical-align: top; text-align : var(--ig-left,left); background-color: white; border: 0px #F0F0F0 solid; padding:0px 4px 0px 4px\" class=\"hierarchy\"><a href=\"http://hl7.org/fhir/R4/datatypes.html#string\">string</a></td><td style=\"vertical-align: top; text-align : var(--ig-left,left); background-color: white; border: 0px #F0F0F0 solid; padding:0px 4px 0px 4px\" class=\"hierarchy\">X-Service - Mã định danh điện tử bộ/ngành. Đối với BHXH: G12</td></tr>#xD;\n<tr style=\"border: 0px #F0F0F0 solid; padding:0px; vertical-align: top; background-color: #F7F7F7\"><td style=\"vertical-align: top; text-align : var(--ig-left,left); background-color: #F7F7F7; border: 0px #F0F0F0 solid; padding:0px 4px 0px 4px; white-space: nowrap; background-image: url(tbl_bck10.png)\" class=\"hierarchy\"><img src=\"tbl_spacer.png\" alt=\".\" style=\"background-color: inherit\" class=\"hierarchy\"/><img src=\"tbl_vjoin.png\" alt=\".\" style=\"background-color: inherit\" class=\"hierarchy\"/><img src=\"icon_primitive.png\" alt=\".\" style=\"background-color: #F7F7F7; background-color: inherit\" title=\"Primitive Data Type\" class=\"hierarchy\"/> <a href=\"StructureDefinition-vnHealthCheckupG12EnvelopeLm-definitions.html#vnHealthCheckupG12EnvelopeLm.fileName\" title=\"fileName - Tên bản tin đã ký số\">fileName</a><a name=\"vnHealthCheckupG12EnvelopeLm.fileName\"> </a></td><td style=\"vertical-align: top; text-align : var(--ig-left,left); background-color: #F7F7F7; border: 0px #F0F0F0 solid; padding:0px 4px 0px 4px\" class=\"hierarchy\"/><td style=\"vertical-align: top; text-align : var(--ig-left,left); background-color: #F7F7F7; border: 0px #F0F0F0 solid; padding:0px 4px 0px 4px\" class=\"hierarchy\">1..1</td><td style=\"vertical-align: top; text-align : var(--ig-left,left); background-color: #F7F7F7; border: 0px #F0F0F0 solid; padding:0px 4px 0px 4px\" class=\"hierarchy\"><a href=\"http://hl7.org/fhir/R4/datatypes.html#string\">string</a></td><td style=\"vertical-align: top; text-align : var(--ig-left,left); background-color: #F7F7F7; border: 0px #F0F0F0 solid; padding:0px 4px 0px 4px\" class=\"hierarchy\">fileName - Tên bản tin đã ký số</td></tr>#xD;\n<tr style=\"border: 0px #F0F0F0 solid; padding:0px; vertical-align: top; background-color: white\"><td style=\"vertical-align: top; text-align : var(--ig-left,left); background-color: white; border: 0px #F0F0F0 solid; padding:0px 4px 0px 4px; white-space: nowrap; background-image: url(tbl_bck10.png)\" class=\"hierarchy\"><img src=\"tbl_spacer.png\" alt=\".\" style=\"background-color: inherit\" class=\"hierarchy\"/><img src=\"tbl_vjoin.png\" alt=\".\" style=\"background-color: inherit\" class=\"hierarchy\"/><img src=\"icon_primitive.png\" alt=\".\" style=\"background-color: white; background-color: inherit\" title=\"Primitive Data Type\" class=\"hierarchy\"/> <a href=\"StructureDefinition-vnHealthCheckupG12EnvelopeLm-definitions.html#vnHealthCheckupG12EnvelopeLm.fileContent\" title=\"fileContent - Giá trị base64 của dữ liệu XML đã ký số (bản tin khám bệnh)\">fileContent</a><a name=\"vnHealthCheckupG12EnvelopeLm.fileContent\"> </a></td><td style=\"vertical-align: top; text-align : var(--ig-left,left); background-color: white; border: 0px #F0F0F0 solid; padding:0px 4px 0px 4px\" class=\"hierarchy\"/><td style=\"vertical-align: top; text-align : var(--ig-left,left); background-color: white; border: 0px #F0F0F0 solid; padding:0px 4px 0px 4px\" class=\"hierarchy\">1..1</td><td style=\"vertical-align: top; text-align : var(--ig-left,left); background-color: white; border: 0px #F0F0F0 solid; padding:0px 4px 0px 4px\" class=\"hierarchy\"><a href=\"http://hl7.org/fhir/R4/datatypes.html#string\">string</a></td><td style=\"vertical-align: top; text-align : var(--ig-left,left); background-color: white; border: 0px #F0F0F0 solid; padding:0px 4px 0px 4px\" class=\"hierarchy\">fileContent - Giá trị base64 của dữ liệu XML đã ký số (bản tin khám bệnh)</td></tr>#xD;\n<tr style=\"border: 0px #F0F0F0 solid; padding:0px; vertical-align: top; background-color: #F7F7F7\"><td style=\"vertical-align: top; text-align : var(--ig-left,left); background-color: #F7F7F7; border: 0px #F0F0F0 solid; padding:0px 4px 0px 4px; white-space: nowrap; background-image: url(tbl_bck10.png)\" class=\"hierarchy\"><img src=\"tbl_spacer.png\" alt=\".\" style=\"background-color: inherit\" class=\"hierarchy\"/><img src=\"tbl_vjoin.png\" alt=\".\" style=\"background-color: inherit\" class=\"hierarchy\"/><img src=\"icon_primitive.png\" alt=\".\" style=\"background-color: #F7F7F7; background-color: inherit\" title=\"Primitive Data Type\" class=\"hierarchy\"/> <a href=\"StructureDefinition-vnHealthCheckupG12EnvelopeLm-definitions.html#vnHealthCheckupG12EnvelopeLm.statusCode\" title=\"statusCode (response) - 200 Thành công | 400 Lỗi (XML từ TTDLQG)\">statusCode</a><a name=\"vnHealthCheckupG12EnvelopeLm.statusCode\"> </a></td><td style=\"vertical-align: top; text-align : var(--ig-left,left); background-color: #F7F7F7; border: 0px #F0F0F0 solid; padding:0px 4px 0px 4px\" class=\"hierarchy\"/><td style=\"vertical-align: top; text-align : var(--ig-left,left); background-color: #F7F7F7; border: 0px #F0F0F0 solid; padding:0px 4px 0px 4px\" class=\"hierarchy\">0..1</td><td style=\"vertical-align: top; text-align : var(--ig-left,left); background-color: #F7F7F7; border: 0px #F0F0F0 solid; padding:0px 4px 0px 4px\" class=\"hierarchy\"><a href=\"http://hl7.org/fhir/R4/datatypes.html#string\">string</a></td><td style=\"vertical-align: top; text-align : var(--ig-left,left); background-color: #F7F7F7; border: 0px #F0F0F0 solid; padding:0px 4px 0px 4px\" class=\"hierarchy\">statusCode (response) - 200 Thành công | 400 Lỗi (XML từ TTDLQG)</td></tr>#xD;\n<tr style=\"border: 0px #F0F0F0 solid; padding:0px; vertical-align: top; background-color: white\"><td style=\"vertical-align: top; text-align : var(--ig-left,left); background-color: white; border: 0px #F0F0F0 solid; padding:0px 4px 0px 4px; white-space: nowrap; background-image: url(tbl_bck10.png)\" class=\"hierarchy\"><img src=\"tbl_spacer.png\" alt=\".\" style=\"background-color: inherit\" class=\"hierarchy\"/><img src=\"tbl_vjoin.png\" alt=\".\" style=\"background-color: inherit\" class=\"hierarchy\"/><img src=\"icon_primitive.png\" alt=\".\" style=\"background-color: white; background-color: inherit\" title=\"Primitive Data Type\" class=\"hierarchy\"/> <a href=\"StructureDefinition-vnHealthCheckupG12EnvelopeLm-definitions.html#vnHealthCheckupG12EnvelopeLm.errorCode\" title=\"errorCode (response) - Bỏ trống nếu thành công; mã lỗi nếu thất bại\">errorCode</a><a name=\"vnHealthCheckupG12EnvelopeLm.errorCode\"> </a></td><td style=\"vertical-align: top; text-align : var(--ig-left,left); background-color: white; border: 0px #F0F0F0 solid; padding:0px 4px 0px 4px\" class=\"hierarchy\"/><td style=\"vertical-align: top; text-align : var(--ig-left,left); background-color: white; border: 0px #F0F0F0 solid; padding:0px 4px 0px 4px\" class=\"hierarchy\">0..1</td><td style=\"vertical-align: top; text-align : var(--ig-left,left); background-color: white; border: 0px #F0F0F0 solid; padding:0px 4px 0px 4px\" class=\"hierarchy\"><a href=\"http://hl7.org/fhir/R4/datatypes.html#string\">string</a></td><td style=\"vertical-align: top; text-align : var(--ig-left,left); background-color: white; border: 0px #F0F0F0 solid; padding:0px 4px 0px 4px\" class=\"hierarchy\">errorCode (response) - Bỏ trống nếu thành công; mã lỗi nếu thất bại</td></tr>#xD;\n<tr style=\"border: 0px #F0F0F0 solid; padding:0px; vertical-align: top; background-color: #F7F7F7\"><td style=\"vertical-align: top; text-align : var(--ig-left,left); background-color: #F7F7F7; border: 0px #F0F0F0 solid; padding:0px 4px 0px 4px; white-space: nowrap; background-image: url(tbl_bck00.png)\" class=\"hierarchy\"><img src=\"tbl_spacer.png\" alt=\".\" style=\"background-color: inherit\" class=\"hierarchy\"/><img src=\"tbl_vjoin_end.png\" alt=\".\" style=\"background-color: inherit\" class=\"hierarchy\"/><img src=\"icon_primitive.png\" alt=\".\" style=\"background-color: #F7F7F7; background-color: inherit\" title=\"Primitive Data Type\" class=\"hierarchy\"/> <a href=\"StructureDefinition-vnHealthCheckupG12EnvelopeLm-definitions.html#vnHealthCheckupG12EnvelopeLm.responseTime\" title=\"responseTime (response) - Thời điểm phản hồi (ISO 8601 YYYY-MM-DDTHH:mm:ss)\">responseTime</a><a name=\"vnHealthCheckupG12EnvelopeLm.responseTime\"> </a></td><td style=\"vertical-align: top; text-align : var(--ig-left,left); background-color: #F7F7F7; border: 0px #F0F0F0 solid; padding:0px 4px 0px 4px\" class=\"hierarchy\"/><td style=\"vertical-align: top; text-align : var(--ig-left,left); background-color: #F7F7F7; border: 0px #F0F0F0 solid; padding:0px 4px 0px 4px\" class=\"hierarchy\">0..1</td><td style=\"vertical-align: top; text-align : var(--ig-left,left); background-color: #F7F7F7; border: 0px #F0F0F0 solid; padding:0px 4px 0px 4px\" class=\"hierarchy\"><a href=\"http://hl7.org/fhir/R4/datatypes.html#string\">string</a></td><td style=\"vertical-align: top; text-align : var(--ig-left,left); background-color: #F7F7F7; border: 0px #F0F0F0 solid; padding:0px 4px 0px 4px\" class=\"hierarchy\">responseTime (response) - Thời điểm phản hồi (ISO 8601 YYYY-MM-DDTHH:mm:ss)</td></tr>#xD;\n<tr><td colspan=\"5\" class=\"hierarchy\"><br/><a href=\"https://build.fhir.org/ig/FHIR/ig-guidance/readingIgs.html#table-views\" title=\"Legend for this format\"><img src=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH3goXBCwdPqAP0wAAAldJREFUOMuNk0tIlFEYhp9z/vE2jHkhxXA0zJCMitrUQlq4lnSltEqCFhFG2MJFhIvIFpkEWaTQqjaWZRkp0g26URZkTpbaaOJkDqk10szoODP//7XIMUe0elcfnPd9zsfLOYplGrpRwZaqTtw3K7PtGem7Q6FoidbGgqHVy/HRb669R+56zx7eRV1L31JGxYbBtjKK93cxeqfyQHbehkZbUkK20goELEuIzEd+dHS+qz/Y8PTSif0FnGkbiwcAjHaU1+QWOptFiyCLp/LnKptpqIuXHx6rbR26kJcBX3yLgBfnd7CxwJmflpP2wUg0HIAoUUpZBmKzELGWcN8nAr6Gpu7tLU/CkwAaoKTWRSQyt89Q8w6J+oVQkKnBoblH7V0PPvUOvDYXfopE/SJmALsxnVm6LbkotrUtNowMeIrVrBcBpaMmdS0j9df7abpSuy7HWehwJdt1lhVwi/J58U5beXGAF6c3UXLycw1wdFklArBn87xdh0ZsZtArghBdAA3+OEDVubG4UEzP6x1FOWneHh2VDAHBAt80IbdXDcesNoCvs3E5AFyNSU5nbrDPZpcUEQQTFZiEVx+51fxMhhyJEAgvlriadIJZZksRuwBYMOPBbO3hePVVqgEJhFeUuFLhIPkRP6BQLIBrmMenujm/3g4zc398awIe90Zb5A1vREALqneMcYgP/xVQWlG+Ncu5vgwwlaUNx+3799rfe96u9K0JSDXcOzOTJg4B6IgmXfsygc7/Bvg9g9E58/cDVmGIBOP/zT8Bz1zqWqpbXIsd0O9hajXfL6u4BaOS6SeWAAAAAElFTkSuQmCC\" alt=\"doco\" style=\"background-color: inherit\"/> Documentation for this format</a></td></tr></table></div>"
  ] ;
  fhir:StructureDefinition.url [ fhir:value "http://fhir.hl7.org.vn/core/StructureDefinition/vnHealthCheckupG12EnvelopeLm"] ;
  fhir:StructureDefinition.identifier [
     fhir:index -1 ;
     fhir:Identifier.system [ fhir:value "urn:ietf:rfc:3986" ] ;
     fhir:Identifier.value [ fhir:value "urn:oid:2.25.161089673617632664299011809196868855799.42.141" ]
  ] ;
  fhir:StructureDefinition.version [ fhir:value "0.7.0"] ;
  fhir:StructureDefinition.name [ fhir:value "VNHealthCheckupG12EnvelopeLM"] ;
  fhir:StructureDefinition.title [ fhir:value "Bản tin BHXH → TTDLQG (dịch vụ G12) — Logical Model (Phụ lục 03)"] ;
  fhir:StructureDefinition.status [ fhir:value "draft"] ;
  fhir:StructureDefinition.date [ fhir:value "2026-07-14T14:23:51+07:00"^^xsd:dateTime] ;
  fhir:StructureDefinition.publisher [ fhir:value "Omi HealthTech / VN Core FHIR Community Initiative"] ;
  fhir:StructureDefinition.contact [
     fhir:index -1 ;
     fhir:ContactDetail.name [ fhir:value "Omi HealthTech / VN Core FHIR Community Initiative" ] ;
     fhir:ContactDetail.telecom [
       fhir:index -1 ;
       fhir:ContactPoint.system [ fhir:value "url" ] ;
       fhir:ContactPoint.value [ fhir:value "https://hl7.org.vn" ]
     ], [
       fhir:index -1 ;
       fhir:ContactPoint.system [ fhir:value "email" ] ;
       fhir:ContactPoint.value [ fhir:value "info@hl7.org.vn" ]
     ]
  ], [
     fhir:index -1 ;
     fhir:ContactDetail.name [ fhir:value "Omi HealthTech (OmiGroup)" ] ;
     fhir:ContactDetail.telecom [
       fhir:index -1 ;
       fhir:ContactPoint.system [ fhir:value "url" ] ;
       fhir:ContactPoint.value [ fhir:value "https://omihealthtech.vn" ]
     ], [
       fhir:index -1 ;
       fhir:ContactPoint.system [ fhir:value "url" ] ;
       fhir:ContactPoint.value [ fhir:value "https://omigroup.vn" ]
     ], [
       fhir:index -1 ;
       fhir:ContactPoint.system [ fhir:value "email" ] ;
       fhir:ContactPoint.value [ fhir:value "info@hl7.org.vn" ]
     ]
  ] ;
  fhir:StructureDefinition.description [ fhir:value "Logical model cho bản tin tiếp nhận dữ liệu khám bệnh từ Bảo hiểm xã hội Việt Nam, đồng bộ qua Trung tâm Dữ liệu Quốc gia (TTDLQG / NDOP — CP.NET) về CSDL sức khỏe Bộ Y tế. API: POST /api/integrate/v1/G12.\nLuồng: BHXH tạo XML (cấu trúc do TTDLQG cung cấp) → base64 → ký số (dịch vụ Ban Cơ yếu) → gửi qua AgentNode. Xác thực: API Key do TTDLQG cấp. X-Service = G12.\nKHÁC với BHYT Gateway thanh toán (gdbhyt.baohiemxahoi.gov.vn, XML 4210) — đây là surface đồng bộ dữ liệu khám bệnh BHXH → CSDL sức khỏe cá nhân.\n**INFORMATIVE / non-normative**: mô hình ánh xạ transport envelope NDOP G12 (không phải FHIR resource normative) — mapping aid cho implementer.\nCăn cứ: QĐ 1551/QĐ-BYT (31/5/2026) — Phụ lục 03 đặc tả API."] ;
  fhir:StructureDefinition.jurisdiction [
     fhir:index -1 ;
     fhir:CodeableConcept.coding [
       fhir:index -1 ;
       fhir:Coding.system [ fhir:value "urn:iso:std:iso:3166" ] ;
       fhir:Coding.code [ fhir:value "VN" ] ;
       fhir:Coding.display [ fhir:value "Viet Nam" ]
     ]
  ] ;
  fhir:StructureDefinition.fhirVersion [ fhir:value "4.0.1"] ;
  fhir:StructureDefinition.mapping [
     fhir:index -1 ;
     fhir:StructureDefinition.mapping.identity [ fhir:value "vn-fhir" ] ;
     fhir:StructureDefinition.mapping.uri [ fhir:value "http://fhir.hl7.org.vn/core/mapping/health-checkup-g12-fhir" ] ;
     fhir:StructureDefinition.mapping.name [ fhir:value "VN Core FHIR mapping" ] ;
     fhir:StructureDefinition.mapping.comment [ fhir:value "Envelope vận chuyển NDOP G12; fileContent (base64) là XML dữ liệu khám bệnh đã ký số. Export rules phải bảo toàn tên header và trường nguồn." ]
  ] ;
  fhir:StructureDefinition.kind [ fhir:value "logical"] ;
  fhir:StructureDefinition.abstract [ fhir:value "false"^^xsd:boolean] ;
  fhir:StructureDefinition.type [ fhir:value "http://fhir.hl7.org.vn/core/StructureDefinition/vnHealthCheckupG12EnvelopeLm"] ;
  fhir:StructureDefinition.baseDefinition [
     fhir:value "http://hl7.org/fhir/StructureDefinition/Base" ;
     fhir:link <http://hl7.org/fhir/StructureDefinition/Base>
  ] ;
  fhir:StructureDefinition.derivation [ fhir:value "specialization"] ;
  fhir:StructureDefinition.snapshot [
     fhir:Element.extension [
       fhir:index -1 ;
       fhir:Extension.url [ fhir:value "http://hl7.org/fhir/tools/StructureDefinition/snapshot-base-version" ] ;
       fhir:Extension.valueString [ fhir:value "4.0.1" ]
     ] ;
     fhir:StructureDefinition.snapshot.element [
       fhir:index -1 ;
       fhir:Element.id [ fhir:value "vnHealthCheckupG12EnvelopeLm" ] ;
       fhir:ElementDefinition.path [ fhir:value "vnHealthCheckupG12EnvelopeLm" ] ;
       fhir:ElementDefinition.short [ fhir:value "Bản tin BHXH → TTDLQG (dịch vụ G12) — Logical Model (Phụ lục 03)" ] ;
       fhir:ElementDefinition.definition [ fhir:value "Logical model cho bản tin tiếp nhận dữ liệu khám bệnh từ Bảo hiểm xã hội Việt Nam, đồng bộ qua Trung tâm Dữ liệu Quốc gia (TTDLQG / NDOP — CP.NET) về CSDL sức khỏe Bộ Y tế. API: POST /api/integrate/v1/G12.\nLuồng: BHXH tạo XML (cấu trúc do TTDLQG cung cấp) → base64 → ký số (dịch vụ Ban Cơ yếu) → gửi qua AgentNode. Xác thực: API Key do TTDLQG cấp. X-Service = G12.\nKHÁC với BHYT Gateway thanh toán (gdbhyt.baohiemxahoi.gov.vn, XML 4210) — đây là surface đồng bộ dữ liệu khám bệnh BHXH → CSDL sức khỏe cá nhân.\n**INFORMATIVE / non-normative**: mô hình ánh xạ transport envelope NDOP G12 (không phải FHIR resource normative) — mapping aid cho implementer.\nCăn cứ: QĐ 1551/QĐ-BYT (31/5/2026) — Phụ lục 03 đặc tả API." ] ;
       fhir:ElementDefinition.min [ fhir:value "0"^^xsd:nonNegativeInteger ] ;
       fhir:ElementDefinition.max [ fhir:value "*" ] ;
       fhir:ElementDefinition.base [
         fhir:ElementDefinition.base.path [ fhir:value "Base" ] ;
         fhir:ElementDefinition.base.min [ fhir:value "0"^^xsd:nonNegativeInteger ] ;
         fhir:ElementDefinition.base.max [ fhir:value "*" ]
       ] ;
       fhir:ElementDefinition.isModifier [ fhir:value "false"^^xsd:boolean ]
     ], [
       fhir:index -1 ;
       fhir:Element.id [ fhir:value "vnHealthCheckupG12EnvelopeLm.contentType" ] ;
       fhir:ElementDefinition.path [ fhir:value "vnHealthCheckupG12EnvelopeLm.contentType" ] ;
       fhir:ElementDefinition.short [ fhir:value "content-type - application/json" ] ;
       fhir:ElementDefinition.definition [ fhir:value "content-type - application/json" ] ;
       fhir:ElementDefinition.min [ fhir:value "1"^^xsd:nonNegativeInteger ] ;
       fhir:ElementDefinition.max [ fhir:value "1" ] ;
       fhir:ElementDefinition.base [
         fhir:ElementDefinition.base.path [ fhir:value "vnHealthCheckupG12EnvelopeLm.contentType" ] ;
         fhir:ElementDefinition.base.min [ fhir:value "1"^^xsd:nonNegativeInteger ] ;
         fhir:ElementDefinition.base.max [ fhir:value "1" ]
       ] ;
       fhir:ElementDefinition.type [
         fhir:index -1 ;
         fhir:ElementDefinition.type.code [ fhir:value "string" ]
       ]
     ], [
       fhir:index -1 ;
       fhir:Element.id [ fhir:value "vnHealthCheckupG12EnvelopeLm.authorization" ] ;
       fhir:ElementDefinition.path [ fhir:value "vnHealthCheckupG12EnvelopeLm.authorization" ] ;
       fhir:ElementDefinition.short [ fhir:value "authorization - API Key do TTDLQG cấp" ] ;
       fhir:ElementDefinition.definition [ fhir:value "authorization - API Key do TTDLQG cấp" ] ;
       fhir:ElementDefinition.min [ fhir:value "1"^^xsd:nonNegativeInteger ] ;
       fhir:ElementDefinition.max [ fhir:value "1" ] ;
       fhir:ElementDefinition.base [
         fhir:ElementDefinition.base.path [ fhir:value "vnHealthCheckupG12EnvelopeLm.authorization" ] ;
         fhir:ElementDefinition.base.min [ fhir:value "1"^^xsd:nonNegativeInteger ] ;
         fhir:ElementDefinition.base.max [ fhir:value "1" ]
       ] ;
       fhir:ElementDefinition.type [
         fhir:index -1 ;
         fhir:ElementDefinition.type.code [ fhir:value "string" ]
       ]
     ], [
       fhir:index -1 ;
       fhir:Element.id [ fhir:value "vnHealthCheckupG12EnvelopeLm.dataType" ] ;
       fhir:ElementDefinition.path [ fhir:value "vnHealthCheckupG12EnvelopeLm.dataType" ] ;
       fhir:ElementDefinition.short [ fhir:value "data-type - Mã dịch vụ/loại dữ liệu (tham chiếu mục mã dịch vụ)" ] ;
       fhir:ElementDefinition.definition [ fhir:value "data-type - Mã dịch vụ/loại dữ liệu (tham chiếu mục mã dịch vụ)" ] ;
       fhir:ElementDefinition.min [ fhir:value "1"^^xsd:nonNegativeInteger ] ;
       fhir:ElementDefinition.max [ fhir:value "1" ] ;
       fhir:ElementDefinition.base [
         fhir:ElementDefinition.base.path [ fhir:value "vnHealthCheckupG12EnvelopeLm.dataType" ] ;
         fhir:ElementDefinition.base.min [ fhir:value "1"^^xsd:nonNegativeInteger ] ;
         fhir:ElementDefinition.base.max [ fhir:value "1" ]
       ] ;
       fhir:ElementDefinition.type [
         fhir:index -1 ;
         fhir:ElementDefinition.type.code [ fhir:value "string" ]
       ]
     ], [
       fhir:index -1 ;
       fhir:Element.id [ fhir:value "vnHealthCheckupG12EnvelopeLm.requestId" ] ;
       fhir:ElementDefinition.path [ fhir:value "vnHealthCheckupG12EnvelopeLm.requestId" ] ;
       fhir:ElementDefinition.short [ fhir:value "request-id - Mã yêu cầu do hệ thống bộ/ngành tự sinh, duy nhất trên hệ thống" ] ;
       fhir:ElementDefinition.definition [ fhir:value "request-id - Mã yêu cầu do hệ thống bộ/ngành tự sinh, duy nhất trên hệ thống" ] ;
       fhir:ElementDefinition.min [ fhir:value "1"^^xsd:nonNegativeInteger ] ;
       fhir:ElementDefinition.max [ fhir:value "1" ] ;
       fhir:ElementDefinition.base [
         fhir:ElementDefinition.base.path [ fhir:value "vnHealthCheckupG12EnvelopeLm.requestId" ] ;
         fhir:ElementDefinition.base.min [ fhir:value "1"^^xsd:nonNegativeInteger ] ;
         fhir:ElementDefinition.base.max [ fhir:value "1" ]
       ] ;
       fhir:ElementDefinition.type [
         fhir:index -1 ;
         fhir:ElementDefinition.type.code [ fhir:value "string" ]
       ]
     ], [
       fhir:index -1 ;
       fhir:Element.id [ fhir:value "vnHealthCheckupG12EnvelopeLm.requestTime" ] ;
       fhir:ElementDefinition.path [ fhir:value "vnHealthCheckupG12EnvelopeLm.requestTime" ] ;
       fhir:ElementDefinition.short [ fhir:value "request-time - Thời gian yêu cầu (ddMMyyyyHHmmss); lệch >2 phút so với hệ thống nền tảng coi là timeout" ] ;
       fhir:ElementDefinition.definition [ fhir:value "request-time - Thời gian yêu cầu (ddMMyyyyHHmmss); lệch >2 phút so với hệ thống nền tảng coi là timeout" ] ;
       fhir:ElementDefinition.min [ fhir:value "1"^^xsd:nonNegativeInteger ] ;
       fhir:ElementDefinition.max [ fhir:value "1" ] ;
       fhir:ElementDefinition.base [
         fhir:ElementDefinition.base.path [ fhir:value "vnHealthCheckupG12EnvelopeLm.requestTime" ] ;
         fhir:ElementDefinition.base.min [ fhir:value "1"^^xsd:nonNegativeInteger ] ;
         fhir:ElementDefinition.base.max [ fhir:value "1" ]
       ] ;
       fhir:ElementDefinition.type [
         fhir:index -1 ;
         fhir:ElementDefinition.type.code [ fhir:value "string" ]
       ]
     ], [
       fhir:index -1 ;
       fhir:Element.id [ fhir:value "vnHealthCheckupG12EnvelopeLm.xService" ] ;
       fhir:ElementDefinition.path [ fhir:value "vnHealthCheckupG12EnvelopeLm.xService" ] ;
       fhir:ElementDefinition.short [ fhir:value "X-Service - Mã định danh điện tử bộ/ngành. Đối với BHXH: G12" ] ;
       fhir:ElementDefinition.definition [ fhir:value "X-Service - Mã định danh điện tử bộ/ngành. Đối với BHXH: G12" ] ;
       fhir:ElementDefinition.min [ fhir:value "1"^^xsd:nonNegativeInteger ] ;
       fhir:ElementDefinition.max [ fhir:value "1" ] ;
       fhir:ElementDefinition.base [
         fhir:ElementDefinition.base.path [ fhir:value "vnHealthCheckupG12EnvelopeLm.xService" ] ;
         fhir:ElementDefinition.base.min [ fhir:value "1"^^xsd:nonNegativeInteger ] ;
         fhir:ElementDefinition.base.max [ fhir:value "1" ]
       ] ;
       fhir:ElementDefinition.type [
         fhir:index -1 ;
         fhir:ElementDefinition.type.code [ fhir:value "string" ]
       ]
     ], [
       fhir:index -1 ;
       fhir:Element.id [ fhir:value "vnHealthCheckupG12EnvelopeLm.fileName" ] ;
       fhir:ElementDefinition.path [ fhir:value "vnHealthCheckupG12EnvelopeLm.fileName" ] ;
       fhir:ElementDefinition.short [ fhir:value "fileName - Tên bản tin đã ký số" ] ;
       fhir:ElementDefinition.definition [ fhir:value "fileName - Tên bản tin đã ký số" ] ;
       fhir:ElementDefinition.min [ fhir:value "1"^^xsd:nonNegativeInteger ] ;
       fhir:ElementDefinition.max [ fhir:value "1" ] ;
       fhir:ElementDefinition.base [
         fhir:ElementDefinition.base.path [ fhir:value "vnHealthCheckupG12EnvelopeLm.fileName" ] ;
         fhir:ElementDefinition.base.min [ fhir:value "1"^^xsd:nonNegativeInteger ] ;
         fhir:ElementDefinition.base.max [ fhir:value "1" ]
       ] ;
       fhir:ElementDefinition.type [
         fhir:index -1 ;
         fhir:ElementDefinition.type.code [ fhir:value "string" ]
       ]
     ], [
       fhir:index -1 ;
       fhir:Element.id [ fhir:value "vnHealthCheckupG12EnvelopeLm.fileContent" ] ;
       fhir:ElementDefinition.path [ fhir:value "vnHealthCheckupG12EnvelopeLm.fileContent" ] ;
       fhir:ElementDefinition.short [ fhir:value "fileContent - Giá trị base64 của dữ liệu XML đã ký số (bản tin khám bệnh)" ] ;
       fhir:ElementDefinition.definition [ fhir:value "fileContent - Giá trị base64 của dữ liệu XML đã ký số (bản tin khám bệnh)" ] ;
       fhir:ElementDefinition.min [ fhir:value "1"^^xsd:nonNegativeInteger ] ;
       fhir:ElementDefinition.max [ fhir:value "1" ] ;
       fhir:ElementDefinition.base [
         fhir:ElementDefinition.base.path [ fhir:value "vnHealthCheckupG12EnvelopeLm.fileContent" ] ;
         fhir:ElementDefinition.base.min [ fhir:value "1"^^xsd:nonNegativeInteger ] ;
         fhir:ElementDefinition.base.max [ fhir:value "1" ]
       ] ;
       fhir:ElementDefinition.type [
         fhir:index -1 ;
         fhir:ElementDefinition.type.code [ fhir:value "string" ]
       ] ;
       fhir:ElementDefinition.mapping [
         fhir:index -1 ;
         fhir:ElementDefinition.mapping.identity [ fhir:value "vn-fhir" ] ;
         fhir:ElementDefinition.mapping.map [ fhir:value "Bundle (document/collection) khám bệnh BHXH; hoặc payload XML 4210/3176 gốc base64" ]
       ]
     ], [
       fhir:index -1 ;
       fhir:Element.id [ fhir:value "vnHealthCheckupG12EnvelopeLm.statusCode" ] ;
       fhir:ElementDefinition.path [ fhir:value "vnHealthCheckupG12EnvelopeLm.statusCode" ] ;
       fhir:ElementDefinition.short [ fhir:value "statusCode (response) - 200 Thành công | 400 Lỗi (XML từ TTDLQG)" ] ;
       fhir:ElementDefinition.definition [ fhir:value "statusCode (response) - 200 Thành công | 400 Lỗi (XML từ TTDLQG)" ] ;
       fhir:ElementDefinition.min [ fhir:value "0"^^xsd:nonNegativeInteger ] ;
       fhir:ElementDefinition.max [ fhir:value "1" ] ;
       fhir:ElementDefinition.base [
         fhir:ElementDefinition.base.path [ fhir:value "vnHealthCheckupG12EnvelopeLm.statusCode" ] ;
         fhir:ElementDefinition.base.min [ fhir:value "0"^^xsd:nonNegativeInteger ] ;
         fhir:ElementDefinition.base.max [ fhir:value "1" ]
       ] ;
       fhir:ElementDefinition.type [
         fhir:index -1 ;
         fhir:ElementDefinition.type.code [ fhir:value "string" ]
       ]
     ], [
       fhir:index -1 ;
       fhir:Element.id [ fhir:value "vnHealthCheckupG12EnvelopeLm.errorCode" ] ;
       fhir:ElementDefinition.path [ fhir:value "vnHealthCheckupG12EnvelopeLm.errorCode" ] ;
       fhir:ElementDefinition.short [ fhir:value "errorCode (response) - Bỏ trống nếu thành công; mã lỗi nếu thất bại" ] ;
       fhir:ElementDefinition.definition [ fhir:value "errorCode (response) - Bỏ trống nếu thành công; mã lỗi nếu thất bại" ] ;
       fhir:ElementDefinition.min [ fhir:value "0"^^xsd:nonNegativeInteger ] ;
       fhir:ElementDefinition.max [ fhir:value "1" ] ;
       fhir:ElementDefinition.base [
         fhir:ElementDefinition.base.path [ fhir:value "vnHealthCheckupG12EnvelopeLm.errorCode" ] ;
         fhir:ElementDefinition.base.min [ fhir:value "0"^^xsd:nonNegativeInteger ] ;
         fhir:ElementDefinition.base.max [ fhir:value "1" ]
       ] ;
       fhir:ElementDefinition.type [
         fhir:index -1 ;
         fhir:ElementDefinition.type.code [ fhir:value "string" ]
       ]
     ], [
       fhir:index -1 ;
       fhir:Element.id [ fhir:value "vnHealthCheckupG12EnvelopeLm.responseTime" ] ;
       fhir:ElementDefinition.path [ fhir:value "vnHealthCheckupG12EnvelopeLm.responseTime" ] ;
       fhir:ElementDefinition.short [ fhir:value "responseTime (response) - Thời điểm phản hồi (ISO 8601 YYYY-MM-DDTHH:mm:ss)" ] ;
       fhir:ElementDefinition.definition [ fhir:value "responseTime (response) - Thời điểm phản hồi (ISO 8601 YYYY-MM-DDTHH:mm:ss)" ] ;
       fhir:ElementDefinition.min [ fhir:value "0"^^xsd:nonNegativeInteger ] ;
       fhir:ElementDefinition.max [ fhir:value "1" ] ;
       fhir:ElementDefinition.base [
         fhir:ElementDefinition.base.path [ fhir:value "vnHealthCheckupG12EnvelopeLm.responseTime" ] ;
         fhir:ElementDefinition.base.min [ fhir:value "0"^^xsd:nonNegativeInteger ] ;
         fhir:ElementDefinition.base.max [ fhir:value "1" ]
       ] ;
       fhir:ElementDefinition.type [
         fhir:index -1 ;
         fhir:ElementDefinition.type.code [ fhir:value "string" ]
       ]
     ]
  ] ;
  fhir:StructureDefinition.differential [
     fhir:StructureDefinition.differential.element [
       fhir:index -1 ;
       fhir:Element.id [ fhir:value "vnHealthCheckupG12EnvelopeLm" ] ;
       fhir:ElementDefinition.path [ fhir:value "vnHealthCheckupG12EnvelopeLm" ] ;
       fhir:ElementDefinition.short [ fhir:value "Bản tin BHXH → TTDLQG (dịch vụ G12) — Logical Model (Phụ lục 03)" ] ;
       fhir:ElementDefinition.definition [ fhir:value "Logical model cho bản tin tiếp nhận dữ liệu khám bệnh từ Bảo hiểm xã hội Việt Nam, đồng bộ qua Trung tâm Dữ liệu Quốc gia (TTDLQG / NDOP — CP.NET) về CSDL sức khỏe Bộ Y tế. API: POST /api/integrate/v1/G12.\nLuồng: BHXH tạo XML (cấu trúc do TTDLQG cung cấp) → base64 → ký số (dịch vụ Ban Cơ yếu) → gửi qua AgentNode. Xác thực: API Key do TTDLQG cấp. X-Service = G12.\nKHÁC với BHYT Gateway thanh toán (gdbhyt.baohiemxahoi.gov.vn, XML 4210) — đây là surface đồng bộ dữ liệu khám bệnh BHXH → CSDL sức khỏe cá nhân.\n**INFORMATIVE / non-normative**: mô hình ánh xạ transport envelope NDOP G12 (không phải FHIR resource normative) — mapping aid cho implementer.\nCăn cứ: QĐ 1551/QĐ-BYT (31/5/2026) — Phụ lục 03 đặc tả API." ]
     ], [
       fhir:index -1 ;
       fhir:Element.id [ fhir:value "vnHealthCheckupG12EnvelopeLm.contentType" ] ;
       fhir:ElementDefinition.path [ fhir:value "vnHealthCheckupG12EnvelopeLm.contentType" ] ;
       fhir:ElementDefinition.short [ fhir:value "content-type - application/json" ] ;
       fhir:ElementDefinition.definition [ fhir:value "content-type - application/json" ] ;
       fhir:ElementDefinition.min [ fhir:value "1"^^xsd:nonNegativeInteger ] ;
       fhir:ElementDefinition.max [ fhir:value "1" ] ;
       fhir:ElementDefinition.type [
         fhir:index -1 ;
         fhir:ElementDefinition.type.code [ fhir:value "string" ]
       ]
     ], [
       fhir:index -1 ;
       fhir:Element.id [ fhir:value "vnHealthCheckupG12EnvelopeLm.authorization" ] ;
       fhir:ElementDefinition.path [ fhir:value "vnHealthCheckupG12EnvelopeLm.authorization" ] ;
       fhir:ElementDefinition.short [ fhir:value "authorization - API Key do TTDLQG cấp" ] ;
       fhir:ElementDefinition.definition [ fhir:value "authorization - API Key do TTDLQG cấp" ] ;
       fhir:ElementDefinition.min [ fhir:value "1"^^xsd:nonNegativeInteger ] ;
       fhir:ElementDefinition.max [ fhir:value "1" ] ;
       fhir:ElementDefinition.type [
         fhir:index -1 ;
         fhir:ElementDefinition.type.code [ fhir:value "string" ]
       ]
     ], [
       fhir:index -1 ;
       fhir:Element.id [ fhir:value "vnHealthCheckupG12EnvelopeLm.dataType" ] ;
       fhir:ElementDefinition.path [ fhir:value "vnHealthCheckupG12EnvelopeLm.dataType" ] ;
       fhir:ElementDefinition.short [ fhir:value "data-type - Mã dịch vụ/loại dữ liệu (tham chiếu mục mã dịch vụ)" ] ;
       fhir:ElementDefinition.definition [ fhir:value "data-type - Mã dịch vụ/loại dữ liệu (tham chiếu mục mã dịch vụ)" ] ;
       fhir:ElementDefinition.min [ fhir:value "1"^^xsd:nonNegativeInteger ] ;
       fhir:ElementDefinition.max [ fhir:value "1" ] ;
       fhir:ElementDefinition.type [
         fhir:index -1 ;
         fhir:ElementDefinition.type.code [ fhir:value "string" ]
       ]
     ], [
       fhir:index -1 ;
       fhir:Element.id [ fhir:value "vnHealthCheckupG12EnvelopeLm.requestId" ] ;
       fhir:ElementDefinition.path [ fhir:value "vnHealthCheckupG12EnvelopeLm.requestId" ] ;
       fhir:ElementDefinition.short [ fhir:value "request-id - Mã yêu cầu do hệ thống bộ/ngành tự sinh, duy nhất trên hệ thống" ] ;
       fhir:ElementDefinition.definition [ fhir:value "request-id - Mã yêu cầu do hệ thống bộ/ngành tự sinh, duy nhất trên hệ thống" ] ;
       fhir:ElementDefinition.min [ fhir:value "1"^^xsd:nonNegativeInteger ] ;
       fhir:ElementDefinition.max [ fhir:value "1" ] ;
       fhir:ElementDefinition.type [
         fhir:index -1 ;
         fhir:ElementDefinition.type.code [ fhir:value "string" ]
       ]
     ], [
       fhir:index -1 ;
       fhir:Element.id [ fhir:value "vnHealthCheckupG12EnvelopeLm.requestTime" ] ;
       fhir:ElementDefinition.path [ fhir:value "vnHealthCheckupG12EnvelopeLm.requestTime" ] ;
       fhir:ElementDefinition.short [ fhir:value "request-time - Thời gian yêu cầu (ddMMyyyyHHmmss); lệch >2 phút so với hệ thống nền tảng coi là timeout" ] ;
       fhir:ElementDefinition.definition [ fhir:value "request-time - Thời gian yêu cầu (ddMMyyyyHHmmss); lệch >2 phút so với hệ thống nền tảng coi là timeout" ] ;
       fhir:ElementDefinition.min [ fhir:value "1"^^xsd:nonNegativeInteger ] ;
       fhir:ElementDefinition.max [ fhir:value "1" ] ;
       fhir:ElementDefinition.type [
         fhir:index -1 ;
         fhir:ElementDefinition.type.code [ fhir:value "string" ]
       ]
     ], [
       fhir:index -1 ;
       fhir:Element.id [ fhir:value "vnHealthCheckupG12EnvelopeLm.xService" ] ;
       fhir:ElementDefinition.path [ fhir:value "vnHealthCheckupG12EnvelopeLm.xService" ] ;
       fhir:ElementDefinition.short [ fhir:value "X-Service - Mã định danh điện tử bộ/ngành. Đối với BHXH: G12" ] ;
       fhir:ElementDefinition.definition [ fhir:value "X-Service - Mã định danh điện tử bộ/ngành. Đối với BHXH: G12" ] ;
       fhir:ElementDefinition.min [ fhir:value "1"^^xsd:nonNegativeInteger ] ;
       fhir:ElementDefinition.max [ fhir:value "1" ] ;
       fhir:ElementDefinition.type [
         fhir:index -1 ;
         fhir:ElementDefinition.type.code [ fhir:value "string" ]
       ]
     ], [
       fhir:index -1 ;
       fhir:Element.id [ fhir:value "vnHealthCheckupG12EnvelopeLm.fileName" ] ;
       fhir:ElementDefinition.path [ fhir:value "vnHealthCheckupG12EnvelopeLm.fileName" ] ;
       fhir:ElementDefinition.short [ fhir:value "fileName - Tên bản tin đã ký số" ] ;
       fhir:ElementDefinition.definition [ fhir:value "fileName - Tên bản tin đã ký số" ] ;
       fhir:ElementDefinition.min [ fhir:value "1"^^xsd:nonNegativeInteger ] ;
       fhir:ElementDefinition.max [ fhir:value "1" ] ;
       fhir:ElementDefinition.type [
         fhir:index -1 ;
         fhir:ElementDefinition.type.code [ fhir:value "string" ]
       ]
     ], [
       fhir:index -1 ;
       fhir:Element.id [ fhir:value "vnHealthCheckupG12EnvelopeLm.fileContent" ] ;
       fhir:ElementDefinition.path [ fhir:value "vnHealthCheckupG12EnvelopeLm.fileContent" ] ;
       fhir:ElementDefinition.short [ fhir:value "fileContent - Giá trị base64 của dữ liệu XML đã ký số (bản tin khám bệnh)" ] ;
       fhir:ElementDefinition.definition [ fhir:value "fileContent - Giá trị base64 của dữ liệu XML đã ký số (bản tin khám bệnh)" ] ;
       fhir:ElementDefinition.min [ fhir:value "1"^^xsd:nonNegativeInteger ] ;
       fhir:ElementDefinition.max [ fhir:value "1" ] ;
       fhir:ElementDefinition.type [
         fhir:index -1 ;
         fhir:ElementDefinition.type.code [ fhir:value "string" ]
       ] ;
       fhir:ElementDefinition.mapping [
         fhir:index -1 ;
         fhir:ElementDefinition.mapping.identity [ fhir:value "vn-fhir" ] ;
         fhir:ElementDefinition.mapping.map [ fhir:value "Bundle (document/collection) khám bệnh BHXH; hoặc payload XML 4210/3176 gốc base64" ]
       ]
     ], [
       fhir:index -1 ;
       fhir:Element.id [ fhir:value "vnHealthCheckupG12EnvelopeLm.statusCode" ] ;
       fhir:ElementDefinition.path [ fhir:value "vnHealthCheckupG12EnvelopeLm.statusCode" ] ;
       fhir:ElementDefinition.short [ fhir:value "statusCode (response) - 200 Thành công | 400 Lỗi (XML từ TTDLQG)" ] ;
       fhir:ElementDefinition.definition [ fhir:value "statusCode (response) - 200 Thành công | 400 Lỗi (XML từ TTDLQG)" ] ;
       fhir:ElementDefinition.min [ fhir:value "0"^^xsd:nonNegativeInteger ] ;
       fhir:ElementDefinition.max [ fhir:value "1" ] ;
       fhir:ElementDefinition.type [
         fhir:index -1 ;
         fhir:ElementDefinition.type.code [ fhir:value "string" ]
       ]
     ], [
       fhir:index -1 ;
       fhir:Element.id [ fhir:value "vnHealthCheckupG12EnvelopeLm.errorCode" ] ;
       fhir:ElementDefinition.path [ fhir:value "vnHealthCheckupG12EnvelopeLm.errorCode" ] ;
       fhir:ElementDefinition.short [ fhir:value "errorCode (response) - Bỏ trống nếu thành công; mã lỗi nếu thất bại" ] ;
       fhir:ElementDefinition.definition [ fhir:value "errorCode (response) - Bỏ trống nếu thành công; mã lỗi nếu thất bại" ] ;
       fhir:ElementDefinition.min [ fhir:value "0"^^xsd:nonNegativeInteger ] ;
       fhir:ElementDefinition.max [ fhir:value "1" ] ;
       fhir:ElementDefinition.type [
         fhir:index -1 ;
         fhir:ElementDefinition.type.code [ fhir:value "string" ]
       ]
     ], [
       fhir:index -1 ;
       fhir:Element.id [ fhir:value "vnHealthCheckupG12EnvelopeLm.responseTime" ] ;
       fhir:ElementDefinition.path [ fhir:value "vnHealthCheckupG12EnvelopeLm.responseTime" ] ;
       fhir:ElementDefinition.short [ fhir:value "responseTime (response) - Thời điểm phản hồi (ISO 8601 YYYY-MM-DDTHH:mm:ss)" ] ;
       fhir:ElementDefinition.definition [ fhir:value "responseTime (response) - Thời điểm phản hồi (ISO 8601 YYYY-MM-DDTHH:mm:ss)" ] ;
       fhir:ElementDefinition.min [ fhir:value "0"^^xsd:nonNegativeInteger ] ;
       fhir:ElementDefinition.max [ fhir:value "1" ] ;
       fhir:ElementDefinition.type [
         fhir:index -1 ;
         fhir:ElementDefinition.type.code [ fhir:value "string" ]
       ]
     ]
  ] .

# - ontology header ------------------------------------------------------------

<http://hl7.org/fhir/StructureDefinition/vnHealthCheckupG12EnvelopeLm.ttl> a owl:Ontology ;
  owl:imports fhir:fhir.ttl ;
  owl:versionIRI <http://build.fhir.org/StructureDefinition/vnHealthCheckupG12EnvelopeLm.ttl> .