HL7 Vietnam VN Core FHIR Implementation Guide

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

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

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)

URL chính thức: http://fhir.hl7.org.vn/core/StructureDefinition/vnHealthCheckupDataSyncEnvelopeLm Phiên bản: 0.8.0
Computable Name: VNHealthCheckupDataSyncEnvelopeLM
Định danh khác: OID:2.25.161089673617632664299011809196868855799.42.142

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ộ. 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.

Usages:

  • This Logical Model is not used by any profiles in this Specification

You can also check for usages in the FHIR IG Statistics

Các dạng xem hình thức của nội dung hồ sơ

Mô tả profile, differential, snapshot và các biểu diễn liên quan.

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. vnHealthCheckupDataSyncEnvelopeLm 0..* Base Bản tin đồng bộ dữ liệu KSK lên Trục dữ liệu BYT — Logical Model (Phụ lục 02)
... httpHeader 1..1 BackboneElement HTTP headers của request
.... contentType 1..1 string Content-Type = application/json
.... accept 1..1 string Accept = */*
.... acceptEncoding 1..1 string Accept-Encoding = gzip,deflate,br
.... authorization 1..1 string Authorization = Bearer + Access Token (lấy từ POST /api/auth/login, role=facility|doh)
.... serviceType 1..1 string service-type = 100 (Dịch vụ data sync vào Trục dữ liệu Bộ Y tế)
... header 1..1 BackboneElement header - Thông tin header bản tin (JSON Object)
.... version 1..1 string version - Phiên bản hệ thống Trục dữ liệu BYT
.... senderId 1..1 string sender_id - Mã định danh bên phát tin (13 số mã định danh CSKCB từ Cục KCB)
.... receiverId 1..1 string receiver_id - Mã bên nhận tin (vd: TDLBYT)
.... txnType 1..1 string txn_type - Loại giao dịch. Giá trị cố định: sync_checkup (đồng bộ tập dữ liệu KSK định kỳ)
.... msgId 1..1 string 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)
.... msgType 1..1 string 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
.... dataType 1..1 string 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)
.... sendDatetime 1..1 string send_datetime - Thời điểm đẩy dữ liệu, Unix timestamp 13 số (ms). 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)
... data 1..1 string data - File dữ liệu (XML/JSON) đã encode Base64
... response 0..1 BackboneElement Bản tin phản hồi từ Trục BYT (msg_type=102)
.... msgType 0..1 string msg_type (response) = 102
.... refMsgId 0..1 string ref_msg_id - msg_id của bên phát tin gốc
.... resCode 0..1 string res_code - Mã trạng thái tiếp nhận (CM_SUCCESS | CM_INVALID_REQUEST | PS_DS_RSA_SIGNATURE_* | PS_DS_VERIFY_* | PS_DS_SAVE_*)
.... resMsg 0..1 string res_msg - Diễn giải trạng thái tiếp nhận
.... resDatetime 0..1 string res_datetime - Ngày phản hồi (Unix timestamp 13 số)
.... signature 0..1 string signature (response) - Chữ ký RSASHA256 của Trục BYT

doco Documentation for this format
NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. vnHealthCheckupDataSyncEnvelopeLm 0..* Base Bản tin đồng bộ dữ liệu KSK lên Trục dữ liệu BYT — Logical Model (Phụ lục 02)
... httpHeader 1..1 BackboneElement HTTP headers của request
.... @id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
.... contentType 1..1 string Content-Type = application/json
.... accept 1..1 string Accept = */*
.... acceptEncoding 1..1 string Accept-Encoding = gzip,deflate,br
.... authorization 1..1 string Authorization = Bearer + Access Token (lấy từ POST /api/auth/login, role=facility|doh)
.... serviceType 1..1 string service-type = 100 (Dịch vụ data sync vào Trục dữ liệu Bộ Y tế)
... header 1..1 BackboneElement header - Thông tin header bản tin (JSON Object)
.... @id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
.... version 1..1 string version - Phiên bản hệ thống Trục dữ liệu BYT
.... senderId 1..1 string sender_id - Mã định danh bên phát tin (13 số mã định danh CSKCB từ Cục KCB)
.... receiverId 1..1 string receiver_id - Mã bên nhận tin (vd: TDLBYT)
.... txnType 1..1 string txn_type - Loại giao dịch. Giá trị cố định: sync_checkup (đồng bộ tập dữ liệu KSK định kỳ)
.... msgId 1..1 string 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)
.... msgType 1..1 string 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
.... dataType 1..1 string 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)
.... sendDatetime 1..1 string send_datetime - Thời điểm đẩy dữ liệu, Unix timestamp 13 số (ms). 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)
... data 1..1 string data - File dữ liệu (XML/JSON) đã encode Base64
... response 0..1 BackboneElement Bản tin phản hồi từ Trục BYT (msg_type=102)
.... @id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
.... msgType 0..1 string msg_type (response) = 102
.... refMsgId 0..1 string ref_msg_id - msg_id của bên phát tin gốc
.... resCode 0..1 string res_code - Mã trạng thái tiếp nhận (CM_SUCCESS | CM_INVALID_REQUEST | PS_DS_RSA_SIGNATURE_* | PS_DS_VERIFY_* | PS_DS_SAVE_*)
.... resMsg 0..1 string res_msg - Diễn giải trạng thái tiếp nhận
.... resDatetime 0..1 string res_datetime - Ngày phản hồi (Unix timestamp 13 số)
.... signature 0..1 string signature (response) - Chữ ký RSASHA256 của Trục BYT

doco Documentation for this format

Constraints

Id Grade Path(s) Description Expression
ele-1 error **ALL** elements All FHIR elements must have a @value or children hasValue() or (children().count() > id.count())
ext-1 error **ALL** extensions Must have either extensions or value[x], not both extension.exists() != value.exists()

Summary

Mandatory: 0 element(17 nested mandatory elements)

Dạng xem Differential

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. vnHealthCheckupDataSyncEnvelopeLm 0..* Base Bản tin đồng bộ dữ liệu KSK lên Trục dữ liệu BYT — Logical Model (Phụ lục 02)
... httpHeader 1..1 BackboneElement HTTP headers của request
.... contentType 1..1 string Content-Type = application/json
.... accept 1..1 string Accept = */*
.... acceptEncoding 1..1 string Accept-Encoding = gzip,deflate,br
.... authorization 1..1 string Authorization = Bearer + Access Token (lấy từ POST /api/auth/login, role=facility|doh)
.... serviceType 1..1 string service-type = 100 (Dịch vụ data sync vào Trục dữ liệu Bộ Y tế)
... header 1..1 BackboneElement header - Thông tin header bản tin (JSON Object)
.... version 1..1 string version - Phiên bản hệ thống Trục dữ liệu BYT
.... senderId 1..1 string sender_id - Mã định danh bên phát tin (13 số mã định danh CSKCB từ Cục KCB)
.... receiverId 1..1 string receiver_id - Mã bên nhận tin (vd: TDLBYT)
.... txnType 1..1 string txn_type - Loại giao dịch. Giá trị cố định: sync_checkup (đồng bộ tập dữ liệu KSK định kỳ)
.... msgId 1..1 string 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)
.... msgType 1..1 string 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
.... dataType 1..1 string 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)
.... sendDatetime 1..1 string send_datetime - Thời điểm đẩy dữ liệu, Unix timestamp 13 số (ms). 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)
... data 1..1 string data - File dữ liệu (XML/JSON) đã encode Base64
... response 0..1 BackboneElement Bản tin phản hồi từ Trục BYT (msg_type=102)
.... msgType 0..1 string msg_type (response) = 102
.... refMsgId 0..1 string ref_msg_id - msg_id của bên phát tin gốc
.... resCode 0..1 string res_code - Mã trạng thái tiếp nhận (CM_SUCCESS | CM_INVALID_REQUEST | PS_DS_RSA_SIGNATURE_* | PS_DS_VERIFY_* | PS_DS_SAVE_*)
.... resMsg 0..1 string res_msg - Diễn giải trạng thái tiếp nhận
.... resDatetime 0..1 string res_datetime - Ngày phản hồi (Unix timestamp 13 số)
.... signature 0..1 string signature (response) - Chữ ký RSASHA256 của Trục BYT

doco Documentation for this format

Dạng xem SnapshotView

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. vnHealthCheckupDataSyncEnvelopeLm 0..* Base Bản tin đồng bộ dữ liệu KSK lên Trục dữ liệu BYT — Logical Model (Phụ lục 02)
... httpHeader 1..1 BackboneElement HTTP headers của request
.... @id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
.... contentType 1..1 string Content-Type = application/json
.... accept 1..1 string Accept = */*
.... acceptEncoding 1..1 string Accept-Encoding = gzip,deflate,br
.... authorization 1..1 string Authorization = Bearer + Access Token (lấy từ POST /api/auth/login, role=facility|doh)
.... serviceType 1..1 string service-type = 100 (Dịch vụ data sync vào Trục dữ liệu Bộ Y tế)
... header 1..1 BackboneElement header - Thông tin header bản tin (JSON Object)
.... @id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
.... version 1..1 string version - Phiên bản hệ thống Trục dữ liệu BYT
.... senderId 1..1 string sender_id - Mã định danh bên phát tin (13 số mã định danh CSKCB từ Cục KCB)
.... receiverId 1..1 string receiver_id - Mã bên nhận tin (vd: TDLBYT)
.... txnType 1..1 string txn_type - Loại giao dịch. Giá trị cố định: sync_checkup (đồng bộ tập dữ liệu KSK định kỳ)
.... msgId 1..1 string 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)
.... msgType 1..1 string 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
.... dataType 1..1 string 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)
.... sendDatetime 1..1 string send_datetime - Thời điểm đẩy dữ liệu, Unix timestamp 13 số (ms). 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)
... data 1..1 string data - File dữ liệu (XML/JSON) đã encode Base64
... response 0..1 BackboneElement Bản tin phản hồi từ Trục BYT (msg_type=102)
.... @id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
.... msgType 0..1 string msg_type (response) = 102
.... refMsgId 0..1 string ref_msg_id - msg_id của bên phát tin gốc
.... resCode 0..1 string res_code - Mã trạng thái tiếp nhận (CM_SUCCESS | CM_INVALID_REQUEST | PS_DS_RSA_SIGNATURE_* | PS_DS_VERIFY_* | PS_DS_SAVE_*)
.... resMsg 0..1 string res_msg - Diễn giải trạng thái tiếp nhận
.... resDatetime 0..1 string res_datetime - Ngày phản hồi (Unix timestamp 13 số)
.... signature 0..1 string signature (response) - Chữ ký RSASHA256 của Trục BYT

doco Documentation for this format

Constraints

Id Grade Path(s) Description Expression
ele-1 error **ALL** elements All FHIR elements must have a @value or children hasValue() or (children().count() > id.count())
ext-1 error **ALL** extensions Must have either extensions or value[x], not both extension.exists() != value.exists()

Summary

Mandatory: 0 element(17 nested mandatory elements)

 

Biểu diễn khác của hồ sơ: CSV, Excel