HL7 Vietnam VN Core FHIR Implementation Guide

Hướng dẫn triển khai FHIR cốt lõi Việt Nam — VN Core FHIR Implementation Guide
0.9.0 - Draft for Community Review Viet Nam cờ

Hướng dẫn triển khai FHIR cốt lõi Việt Nam — VN Core FHIR Implementation Guide - Local Development build (v0.9.0) built by the FHIR (HL7® FHIR® Standard) Build Tools. See the Directory of published versions

Mô hình logic: Bản tin đồng bộ dữ liệu KSK lên Trục dữ liệu BYT — Logical Model (Phụ lục 02) - Mô tả chi tiết

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

Các định nghĩa cho vnHealthCheckupDataSyncEnvelopeLm mô hình logic

Guidance on how to interpret the contents of this table can be foundhere

0. vnHealthCheckupDataSyncEnvelopeLm
Definition

Logical model cho bản tin (envelope) đồng bộ tự động tập dữ liệu khám sức khỏe định kỳ từ cơ sở KCB lên Cổng/Trục dữ liệu sức khỏe Bộ Y tế (api.emrhub.vn). API: POST /api/platform/data-sync/push. Xác thực: OAuth2 + Bearer Token (lấy từ /api/auth/login). Định dạng JSON (UTF-8). KHÁC với luồng BHYT Gateway (gdbhyt.baohiemxahoi.gov.vn, XML 4210) — đây là surface liên thông KSK quốc gia. INFORMATIVE / non-normative: đây là mô hình ánh xạ transport envelope (không phải FHIR resource normative). Các National Core IG (KR/JP) chỉ chuẩn hóa profile/search/capability RESTful; envelope được giữ làm mapping aid để implementer ánh xạ payload FHIR ↔ bản tin đồng bộ. Môi trường (PL02 mục 2): Cổng dữ liệu sức khỏe BYT — admin https://csdlksk.vn (sandbox https://sandbox.csdlksk.vn); Trục dữ liệu BYT — admin https://admin.emrhub.vn (sandbox https://admin-sandbox.emrhub.vn), API https://api.emrhub.vn (sandbox https://api-sandbox.emrhub.vn). Căn cứ: QĐ 2062/QĐ-BYT (07/7/2026) Phụ lục 02 (Hướng dẫn kết nối, liên thông dữ liệu) — THAY Phụ lục 02 QĐ 1551/QĐ-BYT (31/5/2026); đọc hợp nhất. API OAuth2 + Bearer, POST /api/platform/data-sync/push (service-type=100, msg_type=101/102, txn_type=sync_checkup), checksum RSASHA256. ĐÃ ĐỐI CHIẾU TOÀN VĂN PL02 ngày 23/07/2026 (file 'Phu luc 2-5.pdf' nhúng trong bản docx user cung cấp).

ShortBản tin đồng bộ dữ liệu KSK lên Trục dữ liệu BYT — Logical Model (Phụ lục 02)
Control0..*
Is Modifierfalse
Logical ModelInstances of this logical model are not marked to be the target of a Reference
2. vnHealthCheckupDataSyncEnvelopeLm.httpHeader
Definition

HTTP headers của request

ShortHTTP headers của request
Control1..1
TypeBackboneElement
Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
4. vnHealthCheckupDataSyncEnvelopeLm.httpHeader.id
Definition

Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.

ShortUnique id for inter-element referencing
Control0..1
Typestring
Is Modifierfalse
XML FormatIn the XML format, this property is represented as an attribute.
Summaryfalse
6. vnHealthCheckupDataSyncEnvelopeLm.httpHeader.extension
Definition

May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.

ShortAdditional content defined by implementations
Comments

There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

Control0..*
TypeExtension
Is Modifierfalse
Summaryfalse
Alternate Namesextensions, user content
Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
SlicingThis element introduces a set of slices on vnHealthCheckupDataSyncEnvelopeLm.httpHeader.extension. The slices areUnordered and Open, and can be differentiated using the following discriminators:
  • value @ url
  • 8. vnHealthCheckupDataSyncEnvelopeLm.httpHeader.modifierExtension
    Definition

    May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.

    Modifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).

    ShortExtensions that cannot be ignored even if unrecognized
    Comments

    There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

    Control0..*
    TypeExtension
    Is Modifiertrue because Modifier extensions are expected to modify the meaning or interpretation of the element that contains them
    Summarytrue
    Requirements

    Modifier extensions allow for extensions that cannot be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the definition of modifier extensions.

    Alternate Namesextensions, user content, modifiers
    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
    ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
    10. vnHealthCheckupDataSyncEnvelopeLm.httpHeader.contentType
    Definition

    Content-Type = application/json

    ShortContent-Type = application/json
    Control1..1
    Typestring
    Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
    12. vnHealthCheckupDataSyncEnvelopeLm.httpHeader.accept
    Definition

    Accept = /

    ShortAccept = */*
    Control1..1
    Typestring
    Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
    14. vnHealthCheckupDataSyncEnvelopeLm.httpHeader.acceptEncoding
    Definition

    Accept-Encoding = gzip,deflate,br

    ShortAccept-Encoding = gzip,deflate,br
    Control1..1
    Typestring
    Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
    16. vnHealthCheckupDataSyncEnvelopeLm.httpHeader.authorization
    Definition

    Authorization = Bearer + Authorization Token (văn bản gọi 'Authorization Token'; lấy từ POST /api/auth/login — response cấp token/refresh_token/duration giây/role: facility=Cơ sở KCB, doh=Sở Y tế)

    ShortAuthorization = Bearer + Authorization Token (văn bản gọi 'Authorization Token'; lấy từ POST /api/auth/login — response cấp token/refresh_token/duration giây/role: facility=Cơ sở KCB, doh=Sở Y tế)
    Control1..1
    Typestring
    Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
    18. vnHealthCheckupDataSyncEnvelopeLm.httpHeader.serviceType
    Definition

    service-type = 100 (Dịch vụ data sync vào Trục dữ liệu Bộ Y tế)

    Shortservice-type = 100 (Dịch vụ data sync vào Trục dữ liệu Bộ Y tế)
    Control1..1
    Typestring
    Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
    20. vnHealthCheckupDataSyncEnvelopeLm.header
    Definition

    header - Thông tin header bản tin (JSON Object)

    Shortheader - Thông tin header bản tin (JSON Object)
    Control1..1
    TypeBackboneElement
    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
    22. vnHealthCheckupDataSyncEnvelopeLm.header.id
    Definition

    Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.

    ShortUnique id for inter-element referencing
    Control0..1
    Typestring
    Is Modifierfalse
    XML FormatIn the XML format, this property is represented as an attribute.
    Summaryfalse
    24. vnHealthCheckupDataSyncEnvelopeLm.header.extension
    Definition

    May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.

    ShortAdditional content defined by implementations
    Comments

    There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

    Control0..*
    TypeExtension
    Is Modifierfalse
    Summaryfalse
    Alternate Namesextensions, user content
    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
    ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
    SlicingThis element introduces a set of slices on vnHealthCheckupDataSyncEnvelopeLm.header.extension. The slices areUnordered and Open, and can be differentiated using the following discriminators:
    • value @ url
    • 26. vnHealthCheckupDataSyncEnvelopeLm.header.modifierExtension
      Definition

      May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.

      Modifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).

      ShortExtensions that cannot be ignored even if unrecognized
      Comments

      There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

      Control0..*
      TypeExtension
      Is Modifiertrue because Modifier extensions are expected to modify the meaning or interpretation of the element that contains them
      Summarytrue
      Requirements

      Modifier extensions allow for extensions that cannot be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the definition of modifier extensions.

      Alternate Namesextensions, user content, modifiers
      Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
      ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
      28. vnHealthCheckupDataSyncEnvelopeLm.header.version
      Definition

      version - Phiên bản hệ thống Trục dữ liệu BYT

      Shortversion - Phiên bản hệ thống Trục dữ liệu BYT
      NoteThis is a business version Id, not a resource version Id (see discussion)
      Control1..1
      Typestring
      Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
      30. vnHealthCheckupDataSyncEnvelopeLm.header.senderId
      Definition

      sender_id - Mã định danh bên phát tin (13 số mã định danh CSKCB từ Cục KCB)

      Shortsender_id - Mã định danh bên phát tin (13 số mã định danh CSKCB từ Cục KCB)
      Control1..1
      Typestring
      Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
      32. vnHealthCheckupDataSyncEnvelopeLm.header.receiverId
      Definition

      receiver_id - Mã bên nhận tin (vd: TDLBYT)

      Shortreceiver_id - Mã bên nhận tin (vd: TDLBYT)
      Control1..1
      Typestring
      Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
      34. vnHealthCheckupDataSyncEnvelopeLm.header.txnType
      Definition

      txn_type - Loại giao dịch. Giá trị cố định: sync_checkup (đồng bộ tập dữ liệu KSK định kỳ)

      Shorttxn_type - Loại giao dịch. Giá trị cố định: sync_checkup (đồng bộ tập dữ liệu KSK định kỳ)
      Control1..1
      Typestring
      Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
      36. vnHealthCheckupDataSyncEnvelopeLm.header.msgId
      Definition

      msg_id - Mã giao dịch = sender_id + YY (2 ký tự năm) + MM (2 ký tự tháng) + DD (2 ký tự ngày) + UUIDv4 (không gạch)

      Shortmsg_id - Mã giao dịch = sender_id + YY (2 ký tự năm) + MM (2 ký tự tháng) + DD (2 ký tự ngày) + UUIDv4 (không gạch)
      Control1..1
      Typestring
      Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
      38. vnHealthCheckupDataSyncEnvelopeLm.header.msgType
      Definition

      msg_type - REQUEST cố định = 101 (thông điệp phát tin đồng bộ). Response dùng 102 (xem nhóm response bên dưới). service-type=100

      Shortmsg_type - REQUEST cố định = 101 (thông điệp phát tin đồng bộ). Response dùng 102 (xem nhóm response bên dưới). service-type=100
      Control1..1
      Typestring
      Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
      40. vnHealthCheckupDataSyncEnvelopeLm.header.dataType
      Definition

      data_type - Định dạng file. Giá trị: xml/base64 HOẶC json/base64 (chỉ 2 giá trị này theo Phụ lục 02)

      Shortdata_type - Định dạng file. Giá trị: xml/base64 HOẶC json/base64 (chỉ 2 giá trị này theo Phụ lục 02)
      Control1..1
      Typestring
      Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
      42. vnHealthCheckupDataSyncEnvelopeLm.header.sendDatetime
      Definition

      send_datetime - Thời điểm đẩy dữ liệu, Unix timestamp 13 số. VĂN BẢN GỐC kiểu Long; mô hình hóa string vì vượt phạm vi FHIR R4 integer 32-bit (INFORMATIVE)

      Shortsend_datetime - Thời điểm đẩy dữ liệu, Unix timestamp 13 số. VĂN BẢN GỐC kiểu Long; mô hình hóa string vì vượt phạm vi FHIR R4 integer 32-bit (INFORMATIVE)
      Control1..1
      Typestring
      Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
      44. vnHealthCheckupDataSyncEnvelopeLm.data
      Definition

      data - File dữ liệu (XML/JSON) đã encode Base64 (STRING BASE64 theo quy tắc mục 4 PL02). Bắt buộc trong thực tế dù bảng gốc không đánh dấu 'x'

      Shortdata - File dữ liệu (XML/JSON) đã encode Base64 (STRING BASE64 theo quy tắc mục 4 PL02). Bắt buộc trong thực tế dù bảng gốc không đánh dấu 'x'
      Control1..1
      Typestring
      Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
      46. vnHealthCheckupDataSyncEnvelopeLm.signature
      Definition

      signature - Chữ ký số checksum RSASHA256 giữa header và data (bên phát tin tạo). Công thức PL02 mục 4: A=Uppercase(SHA256(header)); B=Uppercase(SHA256(data)); C=A+'.'+B; SIGNATURE=Uppercase(RSASHA256(C, Private Key)). Quy tắc: bỏ whitespace/xuống dòng trước khi hash; header rỗng truyền {}; data là STRING BASE64. BYT cấp cặp khóa cho đơn vị; bản tin còn phải KÝ SỐ TỔ CHỨC trước khi gửi (Trục xác thực trước khi nhận). Bắt buộc trong thực tế dù bảng gốc không đánh dấu 'x'

      Shortsignature - Chữ ký số checksum RSASHA256 giữa header và data (bên phát tin tạo). Công thức PL02 mục 4: A=Uppercase(SHA256(header)); B=Uppercase(SHA256(data)); C=A+'.'+B; SIGNATURE=Uppercase(RSASHA256(C, Private Key)). Quy tắc: bỏ whitespace/xuống dòng trước khi hash; header rỗng truyền {}; data là STRING BASE64. BYT cấp cặp khóa cho đơn vị; bản tin còn phải KÝ SỐ TỔ CHỨC trước khi gửi (Trục xác thực trước khi nhận). Bắt buộc trong thực tế dù bảng gốc không đánh dấu 'x'
      Control1..1
      Typestring
      Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
      48. vnHealthCheckupDataSyncEnvelopeLm.response
      Definition

      Bản tin phản hồi từ Trục BYT (msg_type=102)

      ShortBản tin phản hồi từ Trục BYT (msg_type=102)
      Control0..1
      TypeBackboneElement
      Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
      50. vnHealthCheckupDataSyncEnvelopeLm.response.id
      Definition

      Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.

      ShortUnique id for inter-element referencing
      Control0..1
      Typestring
      Is Modifierfalse
      XML FormatIn the XML format, this property is represented as an attribute.
      Summaryfalse
      52. vnHealthCheckupDataSyncEnvelopeLm.response.extension
      Definition

      May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.

      ShortAdditional content defined by implementations
      Comments

      There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

      Control0..*
      TypeExtension
      Is Modifierfalse
      Summaryfalse
      Alternate Namesextensions, user content
      Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
      ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
      SlicingThis element introduces a set of slices on vnHealthCheckupDataSyncEnvelopeLm.response.extension. The slices areUnordered and Open, and can be differentiated using the following discriminators:
      • value @ url
      • 54. vnHealthCheckupDataSyncEnvelopeLm.response.modifierExtension
        Definition

        May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.

        Modifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).

        ShortExtensions that cannot be ignored even if unrecognized
        Comments

        There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

        Control0..*
        TypeExtension
        Is Modifiertrue because Modifier extensions are expected to modify the meaning or interpretation of the element that contains them
        Summarytrue
        Requirements

        Modifier extensions allow for extensions that cannot be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the definition of modifier extensions.

        Alternate Namesextensions, user content, modifiers
        Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
        ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
        56. vnHealthCheckupDataSyncEnvelopeLm.response.version
        Definition

        version - Phiên bản hệ thống Trục dữ liệu BYT

        Shortversion - Phiên bản hệ thống Trục dữ liệu BYT
        NoteThis is a business version Id, not a resource version Id (see discussion)
        Control0..1
        Typestring
        Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
        58. vnHealthCheckupDataSyncEnvelopeLm.response.senderId
        Definition

        sender_id (response) - Mã bên nhận-nay-phát (ví dụ TDLBYT)

        Shortsender_id (response) - Mã bên nhận-nay-phát (ví dụ TDLBYT)
        Control0..1
        Typestring
        Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
        60. vnHealthCheckupDataSyncEnvelopeLm.response.receiverId
        Definition

        receiver_id (response) - Mã bên phát tin gốc (13 số mã định danh CSKCB)

        Shortreceiver_id (response) - Mã bên phát tin gốc (13 số mã định danh CSKCB)
        Control0..1
        Typestring
        Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
        62. vnHealthCheckupDataSyncEnvelopeLm.response.txnId
        Definition

        txn_id - Mã giao dịch do Trục sinh = XX (2 ký tự dịch vụ) + '-' + sender_id + '-' + YY + MM + DD + UUIDv4 không gạch (cấu trúc KHÁC msg_id)

        Shorttxn_id - Mã giao dịch do Trục sinh = XX (2 ký tự dịch vụ) + '-' + sender_id + '-' + YY + MM + DD + UUIDv4 không gạch (cấu trúc KHÁC msg_id)
        Control0..1
        Typestring
        Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
        64. vnHealthCheckupDataSyncEnvelopeLm.response.txnType
        Definition

        txn_type (response) = sync_checkup

        Shorttxn_type (response) = sync_checkup
        Control0..1
        Typestring
        Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
        66. vnHealthCheckupDataSyncEnvelopeLm.response.msgType
        Definition

        msg_type (response) = 102 (Trục đã nhận dữ liệu và thực hiện đồng bộ)

        Shortmsg_type (response) = 102 (Trục đã nhận dữ liệu và thực hiện đồng bộ)
        Control0..1
        Typestring
        Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
        68. vnHealthCheckupDataSyncEnvelopeLm.response.msgId
        Definition

        msg_id (response) - sender_id + YY + MM + DD + UUIDv4 không gạch

        Shortmsg_id (response) - sender_id + YY + MM + DD + UUIDv4 không gạch
        Control0..1
        Typestring
        Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
        70. vnHealthCheckupDataSyncEnvelopeLm.response.refMsgId
        Definition

        ref_msg_id - msg_id của bên phát tin gốc

        Shortref_msg_id - msg_id của bên phát tin gốc
        Control0..1
        Typestring
        Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
        72. vnHealthCheckupDataSyncEnvelopeLm.response.sendDatetime
        Definition

        send_datetime (response) - Ngày gửi của bên phát tin, Unix timestamp 13 số

        Shortsend_datetime (response) - Ngày gửi của bên phát tin, Unix timestamp 13 số
        Control0..1
        Typestring
        Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
        74. vnHealthCheckupDataSyncEnvelopeLm.response.resDatetime
        Definition

        res_datetime - Ngày phản hồi của bên nhận tin (Unix timestamp 13 số)

        Shortres_datetime - Ngày phản hồi của bên nhận tin (Unix timestamp 13 số)
        Control0..1
        Typestring
        Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
        76. vnHealthCheckupDataSyncEnvelopeLm.response.resCode
        Definition

        res_code - Mã trạng thái tiếp nhận, đủ 10 mã theo PL02: CM_SUCCESS | CM_INVALID_REQUEST | PS_DS_RSA_SIGNATURE_INVALID | PS_DS_RSA_SIGNATURE_MISSING | PS_DS_CA_SIGNATURE_INVALID | PS_DS_CA_SIGNATURE_MISSING | PS_DS_VERIFY_SUCCESS | PS_DS_VERIFY_FAIL | PS_DS_SAVE_SUCCESS | PS_DS_SAVE_FAIL

        Shortres_code - Mã trạng thái tiếp nhận, đủ 10 mã theo PL02: CM_SUCCESS | CM_INVALID_REQUEST | PS_DS_RSA_SIGNATURE_INVALID | PS_DS_RSA_SIGNATURE_MISSING | PS_DS_CA_SIGNATURE_INVALID | PS_DS_CA_SIGNATURE_MISSING | PS_DS_VERIFY_SUCCESS | PS_DS_VERIFY_FAIL | PS_DS_SAVE_SUCCESS | PS_DS_SAVE_FAIL
        Control0..1
        Typestring
        Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
        78. vnHealthCheckupDataSyncEnvelopeLm.response.resMsg
        Definition

        res_msg - Diễn giải trạng thái tiếp nhận

        Shortres_msg - Diễn giải trạng thái tiếp nhận
        Control0..1
        Typestring
        Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
        80. vnHealthCheckupDataSyncEnvelopeLm.response.dataState
        Definition

        data.data_state - Mã trạng thái dữ liệu sau khi về kho (vd '0')

        Shortdata.data_state - Mã trạng thái dữ liệu sau khi về kho (vd '0')
        Control0..1
        Typestring
        Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
        82. vnHealthCheckupDataSyncEnvelopeLm.response.dataStateMsg
        Definition

        data.data_state_msg - Chi tiết trạng thái dữ liệu (vd 'Data is received')

        Shortdata.data_state_msg - Chi tiết trạng thái dữ liệu (vd 'Data is received')
        Control0..1
        Typestring
        Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
        84. vnHealthCheckupDataSyncEnvelopeLm.response.messageCheckCa
        Definition

        data.message_check_ca - Trạng thái kiểm tra chữ ký số bản tin (vd 'Digitally signed XML data')

        Shortdata.message_check_ca - Trạng thái kiểm tra chữ ký số bản tin (vd 'Digitally signed XML data')
        Control0..1
        Typestring
        Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
        86. vnHealthCheckupDataSyncEnvelopeLm.response.messageNotify
        Definition

        data.message_notify - Trạng thái hệ thống với bản tin (vd 'Successfully inserted data to DATA LAKE')

        Shortdata.message_notify - Trạng thái hệ thống với bản tin (vd 'Successfully inserted data to DATA LAKE')
        Control0..1
        Typestring
        Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
        88. vnHealthCheckupDataSyncEnvelopeLm.response.signature
        Definition

        signature (response) - Chữ ký RSASHA256 của Trục BYT

        Shortsignature (response) - Chữ ký RSASHA256 của Trục BYT
        Control0..1
        Typestring
        Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
        90. vnHealthCheckupDataSyncEnvelopeLm.authLogin
        Definition

        Xác thực tài khoản liên thông (POST /api/auth/login) — INFORMATIVE, TRANSPORT-ONLY: username/password/token là thông tin phiên truyền tải, TUYỆT ĐỐI không persist vào FHIR store/clinical Bundle/log; quản lý trong lớp IAM của hệ thống gửi

        ShortXác thực tài khoản liên thông (POST /api/auth/login) — INFORMATIVE, TRANSPORT-ONLY: username/password/token là thông tin phiên truyền tải, TUYỆT ĐỐI không persist vào FHIR store/clinical Bundle/log; quản lý trong lớp IAM của hệ thống gửi
        Control0..1
        TypeBackboneElement
        Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
        92. vnHealthCheckupDataSyncEnvelopeLm.authLogin.id
        Definition

        Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.

        ShortUnique id for inter-element referencing
        Control0..1
        Typestring
        Is Modifierfalse
        XML FormatIn the XML format, this property is represented as an attribute.
        Summaryfalse
        94. vnHealthCheckupDataSyncEnvelopeLm.authLogin.extension
        Definition

        May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.

        ShortAdditional content defined by implementations
        Comments

        There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

        Control0..*
        TypeExtension
        Is Modifierfalse
        Summaryfalse
        Alternate Namesextensions, user content
        Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
        ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
        SlicingThis element introduces a set of slices on vnHealthCheckupDataSyncEnvelopeLm.authLogin.extension. The slices areUnordered and Open, and can be differentiated using the following discriminators:
        • value @ url
        • 96. vnHealthCheckupDataSyncEnvelopeLm.authLogin.modifierExtension
          Definition

          May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.

          Modifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).

          ShortExtensions that cannot be ignored even if unrecognized
          Comments

          There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

          Control0..*
          TypeExtension
          Is Modifiertrue because Modifier extensions are expected to modify the meaning or interpretation of the element that contains them
          Summarytrue
          Requirements

          Modifier extensions allow for extensions that cannot be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the definition of modifier extensions.

          Alternate Namesextensions, user content, modifiers
          Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
          ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
          98. vnHealthCheckupDataSyncEnvelopeLm.authLogin.username
          Definition

          username - Tên đăng nhập tài khoản liên thông do Trục dữ liệu BYT cấp

          Shortusername - Tên đăng nhập tài khoản liên thông do Trục dữ liệu BYT cấp
          Control1..1
          Typestring
          Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
          100. vnHealthCheckupDataSyncEnvelopeLm.authLogin.password
          Definition

          password - Mật khẩu

          Shortpassword - Mật khẩu
          Control1..1
          Typestring
          Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
          102. vnHealthCheckupDataSyncEnvelopeLm.authLogin.token
          Definition

          data.token - Token gọi API nghiệp vụ (response)

          Shortdata.token - Token gọi API nghiệp vụ (response)
          Control0..1
          Typestring
          Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
          104. vnHealthCheckupDataSyncEnvelopeLm.authLogin.refreshToken
          Definition

          data.refresh_token - Cấp lại token khi hết hiệu lực

          Shortdata.refresh_token - Cấp lại token khi hết hiệu lực
          Control0..1
          Typestring
          Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
          106. vnHealthCheckupDataSyncEnvelopeLm.authLogin.duration
          Definition

          data.duration - Thời gian hiệu lực token, đơn vị giây (VĂN BẢN GỐC kiểu Long)

          Shortdata.duration - Thời gian hiệu lực token, đơn vị giây (VĂN BẢN GỐC kiểu Long)
          Control0..1
          Typestring
          Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
          108. vnHealthCheckupDataSyncEnvelopeLm.authLogin.role
          Definition

          data.role - Phân quyền: facility (Cơ sở KCB) | doh (Sở Y tế)

          Shortdata.role - Phân quyền: facility (Cơ sở KCB) | doh (Sở Y tế)
          Control0..1
          Typestring
          Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
          110. vnHealthCheckupDataSyncEnvelopeLm.authLogin.resCode
          Definition

          header.res_code - CM_SUCCESS | CM_AUTH_ACCOUNT_FAIL

          Shortheader.res_code - CM_SUCCESS | CM_AUTH_ACCOUNT_FAIL
          Control0..1
          Typestring
          Primitive ValueThis primitive element may be present, or absent, or replaced by an extension

          Guidance on how to interpret the contents of this table can be foundhere

          0. vnHealthCheckupDataSyncEnvelopeLm
          Definition

          Logical model cho bản tin (envelope) đồng bộ tự động tập dữ liệu khám sức khỏe định kỳ từ cơ sở KCB lên Cổng/Trục dữ liệu sức khỏe Bộ Y tế (api.emrhub.vn). API: POST /api/platform/data-sync/push. Xác thực: OAuth2 + Bearer Token (lấy từ /api/auth/login). Định dạng JSON (UTF-8). KHÁC với luồng BHYT Gateway (gdbhyt.baohiemxahoi.gov.vn, XML 4210) — đây là surface liên thông KSK quốc gia. INFORMATIVE / non-normative: đây là mô hình ánh xạ transport envelope (không phải FHIR resource normative). Các National Core IG (KR/JP) chỉ chuẩn hóa profile/search/capability RESTful; envelope được giữ làm mapping aid để implementer ánh xạ payload FHIR ↔ bản tin đồng bộ. Môi trường (PL02 mục 2): Cổng dữ liệu sức khỏe BYT — admin https://csdlksk.vn (sandbox https://sandbox.csdlksk.vn); Trục dữ liệu BYT — admin https://admin.emrhub.vn (sandbox https://admin-sandbox.emrhub.vn), API https://api.emrhub.vn (sandbox https://api-sandbox.emrhub.vn). Căn cứ: QĐ 2062/QĐ-BYT (07/7/2026) Phụ lục 02 (Hướng dẫn kết nối, liên thông dữ liệu) — THAY Phụ lục 02 QĐ 1551/QĐ-BYT (31/5/2026); đọc hợp nhất. API OAuth2 + Bearer, POST /api/platform/data-sync/push (service-type=100, msg_type=101/102, txn_type=sync_checkup), checksum RSASHA256. ĐÃ ĐỐI CHIẾU TOÀN VĂN PL02 ngày 23/07/2026 (file 'Phu luc 2-5.pdf' nhúng trong bản docx user cung cấp).

          ShortBản tin đồng bộ dữ liệu KSK lên Trục dữ liệu BYT — Logical Model (Phụ lục 02)
          Logical ModelInstances of this logical model are not marked to be the target of a Reference
          2. vnHealthCheckupDataSyncEnvelopeLm.httpHeader
          Definition

          HTTP headers của request

          ShortHTTP headers của request
          Control1..1
          TypeBackboneElement
          4. vnHealthCheckupDataSyncEnvelopeLm.httpHeader.contentType
          Definition

          Content-Type = application/json

          ShortContent-Type = application/json
          Control1..1
          Typestring
          Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
          6. vnHealthCheckupDataSyncEnvelopeLm.httpHeader.accept
          Definition

          Accept = /

          ShortAccept = */*
          Control1..1
          Typestring
          Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
          8. vnHealthCheckupDataSyncEnvelopeLm.httpHeader.acceptEncoding
          Definition

          Accept-Encoding = gzip,deflate,br

          ShortAccept-Encoding = gzip,deflate,br
          Control1..1
          Typestring
          Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
          10. vnHealthCheckupDataSyncEnvelopeLm.httpHeader.authorization
          Definition

          Authorization = Bearer + Authorization Token (văn bản gọi 'Authorization Token'; lấy từ POST /api/auth/login — response cấp token/refresh_token/duration giây/role: facility=Cơ sở KCB, doh=Sở Y tế)

          ShortAuthorization = Bearer + Authorization Token (văn bản gọi 'Authorization Token'; lấy từ POST /api/auth/login — response cấp token/refresh_token/duration giây/role: facility=Cơ sở KCB, doh=Sở Y tế)
          Control1..1
          Typestring
          Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
          12. vnHealthCheckupDataSyncEnvelopeLm.httpHeader.serviceType
          Definition

          service-type = 100 (Dịch vụ data sync vào Trục dữ liệu Bộ Y tế)

          Shortservice-type = 100 (Dịch vụ data sync vào Trục dữ liệu Bộ Y tế)
          Control1..1
          Typestring
          Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
          14. vnHealthCheckupDataSyncEnvelopeLm.header
          Definition

          header - Thông tin header bản tin (JSON Object)

          Shortheader - Thông tin header bản tin (JSON Object)
          Control1..1
          TypeBackboneElement
          16. vnHealthCheckupDataSyncEnvelopeLm.header.version
          Definition

          version - Phiên bản hệ thống Trục dữ liệu BYT

          Shortversion - Phiên bản hệ thống Trục dữ liệu BYT
          NoteThis is a business version Id, not a resource version Id (see discussion)
          Control1..1
          Typestring
          Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
          18. vnHealthCheckupDataSyncEnvelopeLm.header.senderId
          Definition

          sender_id - Mã định danh bên phát tin (13 số mã định danh CSKCB từ Cục KCB)

          Shortsender_id - Mã định danh bên phát tin (13 số mã định danh CSKCB từ Cục KCB)
          Control1..1
          Typestring
          Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
          20. vnHealthCheckupDataSyncEnvelopeLm.header.receiverId
          Definition

          receiver_id - Mã bên nhận tin (vd: TDLBYT)

          Shortreceiver_id - Mã bên nhận tin (vd: TDLBYT)
          Control1..1
          Typestring
          Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
          22. vnHealthCheckupDataSyncEnvelopeLm.header.txnType
          Definition

          txn_type - Loại giao dịch. Giá trị cố định: sync_checkup (đồng bộ tập dữ liệu KSK định kỳ)

          Shorttxn_type - Loại giao dịch. Giá trị cố định: sync_checkup (đồng bộ tập dữ liệu KSK định kỳ)
          Control1..1
          Typestring
          Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
          24. vnHealthCheckupDataSyncEnvelopeLm.header.msgId
          Definition

          msg_id - Mã giao dịch = sender_id + YY (2 ký tự năm) + MM (2 ký tự tháng) + DD (2 ký tự ngày) + UUIDv4 (không gạch)

          Shortmsg_id - Mã giao dịch = sender_id + YY (2 ký tự năm) + MM (2 ký tự tháng) + DD (2 ký tự ngày) + UUIDv4 (không gạch)
          Control1..1
          Typestring
          Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
          26. vnHealthCheckupDataSyncEnvelopeLm.header.msgType
          Definition

          msg_type - REQUEST cố định = 101 (thông điệp phát tin đồng bộ). Response dùng 102 (xem nhóm response bên dưới). service-type=100

          Shortmsg_type - REQUEST cố định = 101 (thông điệp phát tin đồng bộ). Response dùng 102 (xem nhóm response bên dưới). service-type=100
          Control1..1
          Typestring
          Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
          28. vnHealthCheckupDataSyncEnvelopeLm.header.dataType
          Definition

          data_type - Định dạng file. Giá trị: xml/base64 HOẶC json/base64 (chỉ 2 giá trị này theo Phụ lục 02)

          Shortdata_type - Định dạng file. Giá trị: xml/base64 HOẶC json/base64 (chỉ 2 giá trị này theo Phụ lục 02)
          Control1..1
          Typestring
          Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
          30. vnHealthCheckupDataSyncEnvelopeLm.header.sendDatetime
          Definition

          send_datetime - Thời điểm đẩy dữ liệu, Unix timestamp 13 số. VĂN BẢN GỐC kiểu Long; mô hình hóa string vì vượt phạm vi FHIR R4 integer 32-bit (INFORMATIVE)

          Shortsend_datetime - Thời điểm đẩy dữ liệu, Unix timestamp 13 số. VĂN BẢN GỐC kiểu Long; mô hình hóa string vì vượt phạm vi FHIR R4 integer 32-bit (INFORMATIVE)
          Control1..1
          Typestring
          Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
          32. vnHealthCheckupDataSyncEnvelopeLm.data
          Definition

          data - File dữ liệu (XML/JSON) đã encode Base64 (STRING BASE64 theo quy tắc mục 4 PL02). Bắt buộc trong thực tế dù bảng gốc không đánh dấu 'x'

          Shortdata - File dữ liệu (XML/JSON) đã encode Base64 (STRING BASE64 theo quy tắc mục 4 PL02). Bắt buộc trong thực tế dù bảng gốc không đánh dấu 'x'
          Control1..1
          Typestring
          Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
          34. vnHealthCheckupDataSyncEnvelopeLm.signature
          Definition

          signature - Chữ ký số checksum RSASHA256 giữa header và data (bên phát tin tạo). Công thức PL02 mục 4: A=Uppercase(SHA256(header)); B=Uppercase(SHA256(data)); C=A+'.'+B; SIGNATURE=Uppercase(RSASHA256(C, Private Key)). Quy tắc: bỏ whitespace/xuống dòng trước khi hash; header rỗng truyền {}; data là STRING BASE64. BYT cấp cặp khóa cho đơn vị; bản tin còn phải KÝ SỐ TỔ CHỨC trước khi gửi (Trục xác thực trước khi nhận). Bắt buộc trong thực tế dù bảng gốc không đánh dấu 'x'

          Shortsignature - Chữ ký số checksum RSASHA256 giữa header và data (bên phát tin tạo). Công thức PL02 mục 4: A=Uppercase(SHA256(header)); B=Uppercase(SHA256(data)); C=A+'.'+B; SIGNATURE=Uppercase(RSASHA256(C, Private Key)). Quy tắc: bỏ whitespace/xuống dòng trước khi hash; header rỗng truyền {}; data là STRING BASE64. BYT cấp cặp khóa cho đơn vị; bản tin còn phải KÝ SỐ TỔ CHỨC trước khi gửi (Trục xác thực trước khi nhận). Bắt buộc trong thực tế dù bảng gốc không đánh dấu 'x'
          Control1..1
          Typestring
          Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
          36. vnHealthCheckupDataSyncEnvelopeLm.response
          Definition

          Bản tin phản hồi từ Trục BYT (msg_type=102)

          ShortBản tin phản hồi từ Trục BYT (msg_type=102)
          Control0..1
          TypeBackboneElement
          38. vnHealthCheckupDataSyncEnvelopeLm.response.version
          Definition

          version - Phiên bản hệ thống Trục dữ liệu BYT

          Shortversion - Phiên bản hệ thống Trục dữ liệu BYT
          NoteThis is a business version Id, not a resource version Id (see discussion)
          Control0..1
          Typestring
          Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
          40. vnHealthCheckupDataSyncEnvelopeLm.response.senderId
          Definition

          sender_id (response) - Mã bên nhận-nay-phát (ví dụ TDLBYT)

          Shortsender_id (response) - Mã bên nhận-nay-phát (ví dụ TDLBYT)
          Control0..1
          Typestring
          Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
          42. vnHealthCheckupDataSyncEnvelopeLm.response.receiverId
          Definition

          receiver_id (response) - Mã bên phát tin gốc (13 số mã định danh CSKCB)

          Shortreceiver_id (response) - Mã bên phát tin gốc (13 số mã định danh CSKCB)
          Control0..1
          Typestring
          Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
          44. vnHealthCheckupDataSyncEnvelopeLm.response.txnId
          Definition

          txn_id - Mã giao dịch do Trục sinh = XX (2 ký tự dịch vụ) + '-' + sender_id + '-' + YY + MM + DD + UUIDv4 không gạch (cấu trúc KHÁC msg_id)

          Shorttxn_id - Mã giao dịch do Trục sinh = XX (2 ký tự dịch vụ) + '-' + sender_id + '-' + YY + MM + DD + UUIDv4 không gạch (cấu trúc KHÁC msg_id)
          Control0..1
          Typestring
          Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
          46. vnHealthCheckupDataSyncEnvelopeLm.response.txnType
          Definition

          txn_type (response) = sync_checkup

          Shorttxn_type (response) = sync_checkup
          Control0..1
          Typestring
          Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
          48. vnHealthCheckupDataSyncEnvelopeLm.response.msgType
          Definition

          msg_type (response) = 102 (Trục đã nhận dữ liệu và thực hiện đồng bộ)

          Shortmsg_type (response) = 102 (Trục đã nhận dữ liệu và thực hiện đồng bộ)
          Control0..1
          Typestring
          Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
          50. vnHealthCheckupDataSyncEnvelopeLm.response.msgId
          Definition

          msg_id (response) - sender_id + YY + MM + DD + UUIDv4 không gạch

          Shortmsg_id (response) - sender_id + YY + MM + DD + UUIDv4 không gạch
          Control0..1
          Typestring
          Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
          52. vnHealthCheckupDataSyncEnvelopeLm.response.refMsgId
          Definition

          ref_msg_id - msg_id của bên phát tin gốc

          Shortref_msg_id - msg_id của bên phát tin gốc
          Control0..1
          Typestring
          Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
          54. vnHealthCheckupDataSyncEnvelopeLm.response.sendDatetime
          Definition

          send_datetime (response) - Ngày gửi của bên phát tin, Unix timestamp 13 số

          Shortsend_datetime (response) - Ngày gửi của bên phát tin, Unix timestamp 13 số
          Control0..1
          Typestring
          Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
          56. vnHealthCheckupDataSyncEnvelopeLm.response.resDatetime
          Definition

          res_datetime - Ngày phản hồi của bên nhận tin (Unix timestamp 13 số)

          Shortres_datetime - Ngày phản hồi của bên nhận tin (Unix timestamp 13 số)
          Control0..1
          Typestring
          Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
          58. vnHealthCheckupDataSyncEnvelopeLm.response.resCode
          Definition

          res_code - Mã trạng thái tiếp nhận, đủ 10 mã theo PL02: CM_SUCCESS | CM_INVALID_REQUEST | PS_DS_RSA_SIGNATURE_INVALID | PS_DS_RSA_SIGNATURE_MISSING | PS_DS_CA_SIGNATURE_INVALID | PS_DS_CA_SIGNATURE_MISSING | PS_DS_VERIFY_SUCCESS | PS_DS_VERIFY_FAIL | PS_DS_SAVE_SUCCESS | PS_DS_SAVE_FAIL

          Shortres_code - Mã trạng thái tiếp nhận, đủ 10 mã theo PL02: CM_SUCCESS | CM_INVALID_REQUEST | PS_DS_RSA_SIGNATURE_INVALID | PS_DS_RSA_SIGNATURE_MISSING | PS_DS_CA_SIGNATURE_INVALID | PS_DS_CA_SIGNATURE_MISSING | PS_DS_VERIFY_SUCCESS | PS_DS_VERIFY_FAIL | PS_DS_SAVE_SUCCESS | PS_DS_SAVE_FAIL
          Control0..1
          Typestring
          Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
          60. vnHealthCheckupDataSyncEnvelopeLm.response.resMsg
          Definition

          res_msg - Diễn giải trạng thái tiếp nhận

          Shortres_msg - Diễn giải trạng thái tiếp nhận
          Control0..1
          Typestring
          Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
          62. vnHealthCheckupDataSyncEnvelopeLm.response.dataState
          Definition

          data.data_state - Mã trạng thái dữ liệu sau khi về kho (vd '0')

          Shortdata.data_state - Mã trạng thái dữ liệu sau khi về kho (vd '0')
          Control0..1
          Typestring
          Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
          64. vnHealthCheckupDataSyncEnvelopeLm.response.dataStateMsg
          Definition

          data.data_state_msg - Chi tiết trạng thái dữ liệu (vd 'Data is received')

          Shortdata.data_state_msg - Chi tiết trạng thái dữ liệu (vd 'Data is received')
          Control0..1
          Typestring
          Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
          66. vnHealthCheckupDataSyncEnvelopeLm.response.messageCheckCa
          Definition

          data.message_check_ca - Trạng thái kiểm tra chữ ký số bản tin (vd 'Digitally signed XML data')

          Shortdata.message_check_ca - Trạng thái kiểm tra chữ ký số bản tin (vd 'Digitally signed XML data')
          Control0..1
          Typestring
          Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
          68. vnHealthCheckupDataSyncEnvelopeLm.response.messageNotify
          Definition

          data.message_notify - Trạng thái hệ thống với bản tin (vd 'Successfully inserted data to DATA LAKE')

          Shortdata.message_notify - Trạng thái hệ thống với bản tin (vd 'Successfully inserted data to DATA LAKE')
          Control0..1
          Typestring
          Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
          70. vnHealthCheckupDataSyncEnvelopeLm.response.signature
          Definition

          signature (response) - Chữ ký RSASHA256 của Trục BYT

          Shortsignature (response) - Chữ ký RSASHA256 của Trục BYT
          Control0..1
          Typestring
          Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
          72. vnHealthCheckupDataSyncEnvelopeLm.authLogin
          Definition

          Xác thực tài khoản liên thông (POST /api/auth/login) — INFORMATIVE, TRANSPORT-ONLY: username/password/token là thông tin phiên truyền tải, TUYỆT ĐỐI không persist vào FHIR store/clinical Bundle/log; quản lý trong lớp IAM của hệ thống gửi

          ShortXác thực tài khoản liên thông (POST /api/auth/login) — INFORMATIVE, TRANSPORT-ONLY: username/password/token là thông tin phiên truyền tải, TUYỆT ĐỐI không persist vào FHIR store/clinical Bundle/log; quản lý trong lớp IAM của hệ thống gửi
          Control0..1
          TypeBackboneElement
          74. vnHealthCheckupDataSyncEnvelopeLm.authLogin.username
          Definition

          username - Tên đăng nhập tài khoản liên thông do Trục dữ liệu BYT cấp

          Shortusername - Tên đăng nhập tài khoản liên thông do Trục dữ liệu BYT cấp
          Control1..1
          Typestring
          Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
          76. vnHealthCheckupDataSyncEnvelopeLm.authLogin.password
          Definition

          password - Mật khẩu

          Shortpassword - Mật khẩu
          Control1..1
          Typestring
          Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
          78. vnHealthCheckupDataSyncEnvelopeLm.authLogin.token
          Definition

          data.token - Token gọi API nghiệp vụ (response)

          Shortdata.token - Token gọi API nghiệp vụ (response)
          Control0..1
          Typestring
          Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
          80. vnHealthCheckupDataSyncEnvelopeLm.authLogin.refreshToken
          Definition

          data.refresh_token - Cấp lại token khi hết hiệu lực

          Shortdata.refresh_token - Cấp lại token khi hết hiệu lực
          Control0..1
          Typestring
          Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
          82. vnHealthCheckupDataSyncEnvelopeLm.authLogin.duration
          Definition

          data.duration - Thời gian hiệu lực token, đơn vị giây (VĂN BẢN GỐC kiểu Long)

          Shortdata.duration - Thời gian hiệu lực token, đơn vị giây (VĂN BẢN GỐC kiểu Long)
          Control0..1
          Typestring
          Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
          84. vnHealthCheckupDataSyncEnvelopeLm.authLogin.role
          Definition

          data.role - Phân quyền: facility (Cơ sở KCB) | doh (Sở Y tế)

          Shortdata.role - Phân quyền: facility (Cơ sở KCB) | doh (Sở Y tế)
          Control0..1
          Typestring
          Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
          86. vnHealthCheckupDataSyncEnvelopeLm.authLogin.resCode
          Definition

          header.res_code - CM_SUCCESS | CM_AUTH_ACCOUNT_FAIL

          Shortheader.res_code - CM_SUCCESS | CM_AUTH_ACCOUNT_FAIL
          Control0..1
          Typestring
          Primitive ValueThis primitive element may be present, or absent, or replaced by an extension

          Guidance on how to interpret the contents of this table can be foundhere

          0. vnHealthCheckupDataSyncEnvelopeLm
          Definition

          Logical model cho bản tin (envelope) đồng bộ tự động tập dữ liệu khám sức khỏe định kỳ từ cơ sở KCB lên Cổng/Trục dữ liệu sức khỏe Bộ Y tế (api.emrhub.vn). API: POST /api/platform/data-sync/push. Xác thực: OAuth2 + Bearer Token (lấy từ /api/auth/login). Định dạng JSON (UTF-8). KHÁC với luồng BHYT Gateway (gdbhyt.baohiemxahoi.gov.vn, XML 4210) — đây là surface liên thông KSK quốc gia. INFORMATIVE / non-normative: đây là mô hình ánh xạ transport envelope (không phải FHIR resource normative). Các National Core IG (KR/JP) chỉ chuẩn hóa profile/search/capability RESTful; envelope được giữ làm mapping aid để implementer ánh xạ payload FHIR ↔ bản tin đồng bộ. Môi trường (PL02 mục 2): Cổng dữ liệu sức khỏe BYT — admin https://csdlksk.vn (sandbox https://sandbox.csdlksk.vn); Trục dữ liệu BYT — admin https://admin.emrhub.vn (sandbox https://admin-sandbox.emrhub.vn), API https://api.emrhub.vn (sandbox https://api-sandbox.emrhub.vn). Căn cứ: QĐ 2062/QĐ-BYT (07/7/2026) Phụ lục 02 (Hướng dẫn kết nối, liên thông dữ liệu) — THAY Phụ lục 02 QĐ 1551/QĐ-BYT (31/5/2026); đọc hợp nhất. API OAuth2 + Bearer, POST /api/platform/data-sync/push (service-type=100, msg_type=101/102, txn_type=sync_checkup), checksum RSASHA256. ĐÃ ĐỐI CHIẾU TOÀN VĂN PL02 ngày 23/07/2026 (file 'Phu luc 2-5.pdf' nhúng trong bản docx user cung cấp).

          ShortBản tin đồng bộ dữ liệu KSK lên Trục dữ liệu BYT — Logical Model (Phụ lục 02)
          Control0..*
          Is Modifierfalse
          Logical ModelInstances of this logical model are not marked to be the target of a Reference
          2. vnHealthCheckupDataSyncEnvelopeLm.httpHeader
          Definition

          HTTP headers của request

          ShortHTTP headers của request
          Control1..1
          TypeBackboneElement
          Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
          4. vnHealthCheckupDataSyncEnvelopeLm.httpHeader.id
          Definition

          Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.

          ShortUnique id for inter-element referencing
          Control0..1
          Typestring
          Is Modifierfalse
          XML FormatIn the XML format, this property is represented as an attribute.
          Summaryfalse
          6. vnHealthCheckupDataSyncEnvelopeLm.httpHeader.extension
          Definition

          May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.

          ShortAdditional content defined by implementations
          Comments

          There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

          Control0..*
          TypeExtension
          Is Modifierfalse
          Summaryfalse
          Alternate Namesextensions, user content
          Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
          ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
          SlicingThis element introduces a set of slices on vnHealthCheckupDataSyncEnvelopeLm.httpHeader.extension. The slices areUnordered and Open, and can be differentiated using the following discriminators:
          • value @ url
          • 8. vnHealthCheckupDataSyncEnvelopeLm.httpHeader.modifierExtension
            Definition

            May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.

            Modifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).

            ShortExtensions that cannot be ignored even if unrecognized
            Comments

            There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

            Control0..*
            TypeExtension
            Is Modifiertrue because Modifier extensions are expected to modify the meaning or interpretation of the element that contains them
            Summarytrue
            Requirements

            Modifier extensions allow for extensions that cannot be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the definition of modifier extensions.

            Alternate Namesextensions, user content, modifiers
            Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
            ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
            10. vnHealthCheckupDataSyncEnvelopeLm.httpHeader.contentType
            Definition

            Content-Type = application/json

            ShortContent-Type = application/json
            Control1..1
            Typestring
            Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
            12. vnHealthCheckupDataSyncEnvelopeLm.httpHeader.accept
            Definition

            Accept = /

            ShortAccept = */*
            Control1..1
            Typestring
            Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
            14. vnHealthCheckupDataSyncEnvelopeLm.httpHeader.acceptEncoding
            Definition

            Accept-Encoding = gzip,deflate,br

            ShortAccept-Encoding = gzip,deflate,br
            Control1..1
            Typestring
            Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
            16. vnHealthCheckupDataSyncEnvelopeLm.httpHeader.authorization
            Definition

            Authorization = Bearer + Authorization Token (văn bản gọi 'Authorization Token'; lấy từ POST /api/auth/login — response cấp token/refresh_token/duration giây/role: facility=Cơ sở KCB, doh=Sở Y tế)

            ShortAuthorization = Bearer + Authorization Token (văn bản gọi 'Authorization Token'; lấy từ POST /api/auth/login — response cấp token/refresh_token/duration giây/role: facility=Cơ sở KCB, doh=Sở Y tế)
            Control1..1
            Typestring
            Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
            18. vnHealthCheckupDataSyncEnvelopeLm.httpHeader.serviceType
            Definition

            service-type = 100 (Dịch vụ data sync vào Trục dữ liệu Bộ Y tế)

            Shortservice-type = 100 (Dịch vụ data sync vào Trục dữ liệu Bộ Y tế)
            Control1..1
            Typestring
            Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
            20. vnHealthCheckupDataSyncEnvelopeLm.header
            Definition

            header - Thông tin header bản tin (JSON Object)

            Shortheader - Thông tin header bản tin (JSON Object)
            Control1..1
            TypeBackboneElement
            Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
            22. vnHealthCheckupDataSyncEnvelopeLm.header.id
            Definition

            Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.

            ShortUnique id for inter-element referencing
            Control0..1
            Typestring
            Is Modifierfalse
            XML FormatIn the XML format, this property is represented as an attribute.
            Summaryfalse
            24. vnHealthCheckupDataSyncEnvelopeLm.header.extension
            Definition

            May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.

            ShortAdditional content defined by implementations
            Comments

            There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

            Control0..*
            TypeExtension
            Is Modifierfalse
            Summaryfalse
            Alternate Namesextensions, user content
            Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
            ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
            SlicingThis element introduces a set of slices on vnHealthCheckupDataSyncEnvelopeLm.header.extension. The slices areUnordered and Open, and can be differentiated using the following discriminators:
            • value @ url
            • 26. vnHealthCheckupDataSyncEnvelopeLm.header.modifierExtension
              Definition

              May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.

              Modifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).

              ShortExtensions that cannot be ignored even if unrecognized
              Comments

              There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

              Control0..*
              TypeExtension
              Is Modifiertrue because Modifier extensions are expected to modify the meaning or interpretation of the element that contains them
              Summarytrue
              Requirements

              Modifier extensions allow for extensions that cannot be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the definition of modifier extensions.

              Alternate Namesextensions, user content, modifiers
              Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
              ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
              28. vnHealthCheckupDataSyncEnvelopeLm.header.version
              Definition

              version - Phiên bản hệ thống Trục dữ liệu BYT

              Shortversion - Phiên bản hệ thống Trục dữ liệu BYT
              NoteThis is a business version Id, not a resource version Id (see discussion)
              Control1..1
              Typestring
              Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
              30. vnHealthCheckupDataSyncEnvelopeLm.header.senderId
              Definition

              sender_id - Mã định danh bên phát tin (13 số mã định danh CSKCB từ Cục KCB)

              Shortsender_id - Mã định danh bên phát tin (13 số mã định danh CSKCB từ Cục KCB)
              Control1..1
              Typestring
              Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
              32. vnHealthCheckupDataSyncEnvelopeLm.header.receiverId
              Definition

              receiver_id - Mã bên nhận tin (vd: TDLBYT)

              Shortreceiver_id - Mã bên nhận tin (vd: TDLBYT)
              Control1..1
              Typestring
              Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
              34. vnHealthCheckupDataSyncEnvelopeLm.header.txnType
              Definition

              txn_type - Loại giao dịch. Giá trị cố định: sync_checkup (đồng bộ tập dữ liệu KSK định kỳ)

              Shorttxn_type - Loại giao dịch. Giá trị cố định: sync_checkup (đồng bộ tập dữ liệu KSK định kỳ)
              Control1..1
              Typestring
              Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
              36. vnHealthCheckupDataSyncEnvelopeLm.header.msgId
              Definition

              msg_id - Mã giao dịch = sender_id + YY (2 ký tự năm) + MM (2 ký tự tháng) + DD (2 ký tự ngày) + UUIDv4 (không gạch)

              Shortmsg_id - Mã giao dịch = sender_id + YY (2 ký tự năm) + MM (2 ký tự tháng) + DD (2 ký tự ngày) + UUIDv4 (không gạch)
              Control1..1
              Typestring
              Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
              38. vnHealthCheckupDataSyncEnvelopeLm.header.msgType
              Definition

              msg_type - REQUEST cố định = 101 (thông điệp phát tin đồng bộ). Response dùng 102 (xem nhóm response bên dưới). service-type=100

              Shortmsg_type - REQUEST cố định = 101 (thông điệp phát tin đồng bộ). Response dùng 102 (xem nhóm response bên dưới). service-type=100
              Control1..1
              Typestring
              Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
              40. vnHealthCheckupDataSyncEnvelopeLm.header.dataType
              Definition

              data_type - Định dạng file. Giá trị: xml/base64 HOẶC json/base64 (chỉ 2 giá trị này theo Phụ lục 02)

              Shortdata_type - Định dạng file. Giá trị: xml/base64 HOẶC json/base64 (chỉ 2 giá trị này theo Phụ lục 02)
              Control1..1
              Typestring
              Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
              42. vnHealthCheckupDataSyncEnvelopeLm.header.sendDatetime
              Definition

              send_datetime - Thời điểm đẩy dữ liệu, Unix timestamp 13 số. VĂN BẢN GỐC kiểu Long; mô hình hóa string vì vượt phạm vi FHIR R4 integer 32-bit (INFORMATIVE)

              Shortsend_datetime - Thời điểm đẩy dữ liệu, Unix timestamp 13 số. VĂN BẢN GỐC kiểu Long; mô hình hóa string vì vượt phạm vi FHIR R4 integer 32-bit (INFORMATIVE)
              Control1..1
              Typestring
              Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
              44. vnHealthCheckupDataSyncEnvelopeLm.data
              Definition

              data - File dữ liệu (XML/JSON) đã encode Base64 (STRING BASE64 theo quy tắc mục 4 PL02). Bắt buộc trong thực tế dù bảng gốc không đánh dấu 'x'

              Shortdata - File dữ liệu (XML/JSON) đã encode Base64 (STRING BASE64 theo quy tắc mục 4 PL02). Bắt buộc trong thực tế dù bảng gốc không đánh dấu 'x'
              Control1..1
              Typestring
              Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
              46. vnHealthCheckupDataSyncEnvelopeLm.signature
              Definition

              signature - Chữ ký số checksum RSASHA256 giữa header và data (bên phát tin tạo). Công thức PL02 mục 4: A=Uppercase(SHA256(header)); B=Uppercase(SHA256(data)); C=A+'.'+B; SIGNATURE=Uppercase(RSASHA256(C, Private Key)). Quy tắc: bỏ whitespace/xuống dòng trước khi hash; header rỗng truyền {}; data là STRING BASE64. BYT cấp cặp khóa cho đơn vị; bản tin còn phải KÝ SỐ TỔ CHỨC trước khi gửi (Trục xác thực trước khi nhận). Bắt buộc trong thực tế dù bảng gốc không đánh dấu 'x'

              Shortsignature - Chữ ký số checksum RSASHA256 giữa header và data (bên phát tin tạo). Công thức PL02 mục 4: A=Uppercase(SHA256(header)); B=Uppercase(SHA256(data)); C=A+'.'+B; SIGNATURE=Uppercase(RSASHA256(C, Private Key)). Quy tắc: bỏ whitespace/xuống dòng trước khi hash; header rỗng truyền {}; data là STRING BASE64. BYT cấp cặp khóa cho đơn vị; bản tin còn phải KÝ SỐ TỔ CHỨC trước khi gửi (Trục xác thực trước khi nhận). Bắt buộc trong thực tế dù bảng gốc không đánh dấu 'x'
              Control1..1
              Typestring
              Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
              48. vnHealthCheckupDataSyncEnvelopeLm.response
              Definition

              Bản tin phản hồi từ Trục BYT (msg_type=102)

              ShortBản tin phản hồi từ Trục BYT (msg_type=102)
              Control0..1
              TypeBackboneElement
              Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
              50. vnHealthCheckupDataSyncEnvelopeLm.response.id
              Definition

              Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.

              ShortUnique id for inter-element referencing
              Control0..1
              Typestring
              Is Modifierfalse
              XML FormatIn the XML format, this property is represented as an attribute.
              Summaryfalse
              52. vnHealthCheckupDataSyncEnvelopeLm.response.extension
              Definition

              May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.

              ShortAdditional content defined by implementations
              Comments

              There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

              Control0..*
              TypeExtension
              Is Modifierfalse
              Summaryfalse
              Alternate Namesextensions, user content
              Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
              ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
              SlicingThis element introduces a set of slices on vnHealthCheckupDataSyncEnvelopeLm.response.extension. The slices areUnordered and Open, and can be differentiated using the following discriminators:
              • value @ url
              • 54. vnHealthCheckupDataSyncEnvelopeLm.response.modifierExtension
                Definition

                May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.

                Modifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).

                ShortExtensions that cannot be ignored even if unrecognized
                Comments

                There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

                Control0..*
                TypeExtension
                Is Modifiertrue because Modifier extensions are expected to modify the meaning or interpretation of the element that contains them
                Summarytrue
                Requirements

                Modifier extensions allow for extensions that cannot be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the definition of modifier extensions.

                Alternate Namesextensions, user content, modifiers
                Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
                ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
                56. vnHealthCheckupDataSyncEnvelopeLm.response.version
                Definition

                version - Phiên bản hệ thống Trục dữ liệu BYT

                Shortversion - Phiên bản hệ thống Trục dữ liệu BYT
                NoteThis is a business version Id, not a resource version Id (see discussion)
                Control0..1
                Typestring
                Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
                58. vnHealthCheckupDataSyncEnvelopeLm.response.senderId
                Definition

                sender_id (response) - Mã bên nhận-nay-phát (ví dụ TDLBYT)

                Shortsender_id (response) - Mã bên nhận-nay-phát (ví dụ TDLBYT)
                Control0..1
                Typestring
                Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
                60. vnHealthCheckupDataSyncEnvelopeLm.response.receiverId
                Definition

                receiver_id (response) - Mã bên phát tin gốc (13 số mã định danh CSKCB)

                Shortreceiver_id (response) - Mã bên phát tin gốc (13 số mã định danh CSKCB)
                Control0..1
                Typestring
                Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
                62. vnHealthCheckupDataSyncEnvelopeLm.response.txnId
                Definition

                txn_id - Mã giao dịch do Trục sinh = XX (2 ký tự dịch vụ) + '-' + sender_id + '-' + YY + MM + DD + UUIDv4 không gạch (cấu trúc KHÁC msg_id)

                Shorttxn_id - Mã giao dịch do Trục sinh = XX (2 ký tự dịch vụ) + '-' + sender_id + '-' + YY + MM + DD + UUIDv4 không gạch (cấu trúc KHÁC msg_id)
                Control0..1
                Typestring
                Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
                64. vnHealthCheckupDataSyncEnvelopeLm.response.txnType
                Definition

                txn_type (response) = sync_checkup

                Shorttxn_type (response) = sync_checkup
                Control0..1
                Typestring
                Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
                66. vnHealthCheckupDataSyncEnvelopeLm.response.msgType
                Definition

                msg_type (response) = 102 (Trục đã nhận dữ liệu và thực hiện đồng bộ)

                Shortmsg_type (response) = 102 (Trục đã nhận dữ liệu và thực hiện đồng bộ)
                Control0..1
                Typestring
                Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
                68. vnHealthCheckupDataSyncEnvelopeLm.response.msgId
                Definition

                msg_id (response) - sender_id + YY + MM + DD + UUIDv4 không gạch

                Shortmsg_id (response) - sender_id + YY + MM + DD + UUIDv4 không gạch
                Control0..1
                Typestring
                Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
                70. vnHealthCheckupDataSyncEnvelopeLm.response.refMsgId
                Definition

                ref_msg_id - msg_id của bên phát tin gốc

                Shortref_msg_id - msg_id của bên phát tin gốc
                Control0..1
                Typestring
                Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
                72. vnHealthCheckupDataSyncEnvelopeLm.response.sendDatetime
                Definition

                send_datetime (response) - Ngày gửi của bên phát tin, Unix timestamp 13 số

                Shortsend_datetime (response) - Ngày gửi của bên phát tin, Unix timestamp 13 số
                Control0..1
                Typestring
                Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
                74. vnHealthCheckupDataSyncEnvelopeLm.response.resDatetime
                Definition

                res_datetime - Ngày phản hồi của bên nhận tin (Unix timestamp 13 số)

                Shortres_datetime - Ngày phản hồi của bên nhận tin (Unix timestamp 13 số)
                Control0..1
                Typestring
                Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
                76. vnHealthCheckupDataSyncEnvelopeLm.response.resCode
                Definition

                res_code - Mã trạng thái tiếp nhận, đủ 10 mã theo PL02: CM_SUCCESS | CM_INVALID_REQUEST | PS_DS_RSA_SIGNATURE_INVALID | PS_DS_RSA_SIGNATURE_MISSING | PS_DS_CA_SIGNATURE_INVALID | PS_DS_CA_SIGNATURE_MISSING | PS_DS_VERIFY_SUCCESS | PS_DS_VERIFY_FAIL | PS_DS_SAVE_SUCCESS | PS_DS_SAVE_FAIL

                Shortres_code - Mã trạng thái tiếp nhận, đủ 10 mã theo PL02: CM_SUCCESS | CM_INVALID_REQUEST | PS_DS_RSA_SIGNATURE_INVALID | PS_DS_RSA_SIGNATURE_MISSING | PS_DS_CA_SIGNATURE_INVALID | PS_DS_CA_SIGNATURE_MISSING | PS_DS_VERIFY_SUCCESS | PS_DS_VERIFY_FAIL | PS_DS_SAVE_SUCCESS | PS_DS_SAVE_FAIL
                Control0..1
                Typestring
                Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
                78. vnHealthCheckupDataSyncEnvelopeLm.response.resMsg
                Definition

                res_msg - Diễn giải trạng thái tiếp nhận

                Shortres_msg - Diễn giải trạng thái tiếp nhận
                Control0..1
                Typestring
                Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
                80. vnHealthCheckupDataSyncEnvelopeLm.response.dataState
                Definition

                data.data_state - Mã trạng thái dữ liệu sau khi về kho (vd '0')

                Shortdata.data_state - Mã trạng thái dữ liệu sau khi về kho (vd '0')
                Control0..1
                Typestring
                Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
                82. vnHealthCheckupDataSyncEnvelopeLm.response.dataStateMsg
                Definition

                data.data_state_msg - Chi tiết trạng thái dữ liệu (vd 'Data is received')

                Shortdata.data_state_msg - Chi tiết trạng thái dữ liệu (vd 'Data is received')
                Control0..1
                Typestring
                Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
                84. vnHealthCheckupDataSyncEnvelopeLm.response.messageCheckCa
                Definition

                data.message_check_ca - Trạng thái kiểm tra chữ ký số bản tin (vd 'Digitally signed XML data')

                Shortdata.message_check_ca - Trạng thái kiểm tra chữ ký số bản tin (vd 'Digitally signed XML data')
                Control0..1
                Typestring
                Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
                86. vnHealthCheckupDataSyncEnvelopeLm.response.messageNotify
                Definition

                data.message_notify - Trạng thái hệ thống với bản tin (vd 'Successfully inserted data to DATA LAKE')

                Shortdata.message_notify - Trạng thái hệ thống với bản tin (vd 'Successfully inserted data to DATA LAKE')
                Control0..1
                Typestring
                Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
                88. vnHealthCheckupDataSyncEnvelopeLm.response.signature
                Definition

                signature (response) - Chữ ký RSASHA256 của Trục BYT

                Shortsignature (response) - Chữ ký RSASHA256 của Trục BYT
                Control0..1
                Typestring
                Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
                90. vnHealthCheckupDataSyncEnvelopeLm.authLogin
                Definition

                Xác thực tài khoản liên thông (POST /api/auth/login) — INFORMATIVE, TRANSPORT-ONLY: username/password/token là thông tin phiên truyền tải, TUYỆT ĐỐI không persist vào FHIR store/clinical Bundle/log; quản lý trong lớp IAM của hệ thống gửi

                ShortXác thực tài khoản liên thông (POST /api/auth/login) — INFORMATIVE, TRANSPORT-ONLY: username/password/token là thông tin phiên truyền tải, TUYỆT ĐỐI không persist vào FHIR store/clinical Bundle/log; quản lý trong lớp IAM của hệ thống gửi
                Control0..1
                TypeBackboneElement
                Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
                92. vnHealthCheckupDataSyncEnvelopeLm.authLogin.id
                Definition

                Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.

                ShortUnique id for inter-element referencing
                Control0..1
                Typestring
                Is Modifierfalse
                XML FormatIn the XML format, this property is represented as an attribute.
                Summaryfalse
                94. vnHealthCheckupDataSyncEnvelopeLm.authLogin.extension
                Definition

                May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.

                ShortAdditional content defined by implementations
                Comments

                There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

                Control0..*
                TypeExtension
                Is Modifierfalse
                Summaryfalse
                Alternate Namesextensions, user content
                Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
                ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
                SlicingThis element introduces a set of slices on vnHealthCheckupDataSyncEnvelopeLm.authLogin.extension. The slices areUnordered and Open, and can be differentiated using the following discriminators:
                • value @ url
                • 96. vnHealthCheckupDataSyncEnvelopeLm.authLogin.modifierExtension
                  Definition

                  May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.

                  Modifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).

                  ShortExtensions that cannot be ignored even if unrecognized
                  Comments

                  There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

                  Control0..*
                  TypeExtension
                  Is Modifiertrue because Modifier extensions are expected to modify the meaning or interpretation of the element that contains them
                  Summarytrue
                  Requirements

                  Modifier extensions allow for extensions that cannot be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the definition of modifier extensions.

                  Alternate Namesextensions, user content, modifiers
                  Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
                  ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
                  98. vnHealthCheckupDataSyncEnvelopeLm.authLogin.username
                  Definition

                  username - Tên đăng nhập tài khoản liên thông do Trục dữ liệu BYT cấp

                  Shortusername - Tên đăng nhập tài khoản liên thông do Trục dữ liệu BYT cấp
                  Control1..1
                  Typestring
                  Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
                  100. vnHealthCheckupDataSyncEnvelopeLm.authLogin.password
                  Definition

                  password - Mật khẩu

                  Shortpassword - Mật khẩu
                  Control1..1
                  Typestring
                  Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
                  102. vnHealthCheckupDataSyncEnvelopeLm.authLogin.token
                  Definition

                  data.token - Token gọi API nghiệp vụ (response)

                  Shortdata.token - Token gọi API nghiệp vụ (response)
                  Control0..1
                  Typestring
                  Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
                  104. vnHealthCheckupDataSyncEnvelopeLm.authLogin.refreshToken
                  Definition

                  data.refresh_token - Cấp lại token khi hết hiệu lực

                  Shortdata.refresh_token - Cấp lại token khi hết hiệu lực
                  Control0..1
                  Typestring
                  Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
                  106. vnHealthCheckupDataSyncEnvelopeLm.authLogin.duration
                  Definition

                  data.duration - Thời gian hiệu lực token, đơn vị giây (VĂN BẢN GỐC kiểu Long)

                  Shortdata.duration - Thời gian hiệu lực token, đơn vị giây (VĂN BẢN GỐC kiểu Long)
                  Control0..1
                  Typestring
                  Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
                  108. vnHealthCheckupDataSyncEnvelopeLm.authLogin.role
                  Definition

                  data.role - Phân quyền: facility (Cơ sở KCB) | doh (Sở Y tế)

                  Shortdata.role - Phân quyền: facility (Cơ sở KCB) | doh (Sở Y tế)
                  Control0..1
                  Typestring
                  Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
                  110. vnHealthCheckupDataSyncEnvelopeLm.authLogin.resCode
                  Definition

                  header.res_code - CM_SUCCESS | CM_AUTH_ACCOUNT_FAIL

                  Shortheader.res_code - CM_SUCCESS | CM_AUTH_ACCOUNT_FAIL
                  Control0..1
                  Typestring
                  Primitive ValueThis primitive element may be present, or absent, or replaced by an extension