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 - Draft for Community Review (v0.9.0) built by the FHIR (HL7® FHIR® Standard) Build Tools. See the Directory of published versions

Rút trích dữ liệu theo lô

Rút trích dữ liệu theo lô — Bulk Data

Trang này mô tả nghĩa vụ của bên vận hành khi rút trích dữ liệu FHIR theo lô bằng phép toán $export của HL7 Bulk Data Access, trong bối cảnh pháp luật Việt Nam.

VN Core không đưa $export vào hợp đồng máy chủ lõi

VNCoreServerVNCoreEMRServer không khai báo $export. Đây là quyết định có chủ ý, không phải thiếu sót:

  • IG này không vận hành máy chủ nào, nên không có gì để kiểm chứng một tuyên bố năng lực.
  • Rút trích theo lô mang rủi ro hoàn toàn khác với truy cập lẻ: một lệnh gọi lấy được toàn bộ dân số của một cơ sở. Đặt nó vào hợp đồng cơ sở sẽ khiến mọi máy chủ tự nhận tuân thủ VN Core bị hiểu là có nghĩa vụ mở khả năng này.
  • Bằng chứng triển khai có kiểm thử là tiêu chí của phiên bản 1.0.0; trước đó, công bố năng lực là hứa hão.

Hệ quả thực tế: hệ thống nào chọn công bố $export thì tự chịu trách nhiệm khai trong CapabilityStatement của mình, trỏ tới OperationDefinition chuẩn của HL7 (http://hl7.org/fhir/uv/bulkdata/OperationDefinition/export và các biến thể theo cấp hệ thống, Patient, Group), và đáp ứng các nghĩa vụ dưới đây. VN Core không định nghĩa lại phép toán này dưới canonical Việt Nam — làm vậy sẽ tạo một biến thể không tương thích với công cụ quốc tế mà chẳng thêm ngữ nghĩa gì.

Nghĩa vụ pháp lý khi rút trích theo lô

Nghĩa vụ Căn cứ Hệ quả kỹ thuật
Dữ liệu sức khỏe là dữ liệu cá nhân nhạy cảm Luật 91/2025/QH15; NĐ 356/2025/NĐ-CP Điều 4 Mỗi lần rút trích phải có căn cứ xử lý xác định trước, ghi lại được — không rút trích "để sẵn đó"
Xử lý đúng mục đích đã thông báo Luật 91/2025/QH15 Điều 9, Điều 19 Phạm vi rút trích phải khớp mục đích: dùng _type_since để giới hạn, không lấy trọn kho rồi lọc sau
Quyền được biết của chủ thể dữ liệu Luật 91/2025/QH15 Chương II Rút trích theo lô vẫn là truy cập dữ liệu của từng người bệnh; phải ghi AuditEvent truy vết được tới yêu cầu rút trích
Khử nhận dạng khi mục đích không cần định danh Luật 91/2025/QH15 Điều 2 khoản 1, Điều 14 Nếu mục đích là thống kê hoặc nghiên cứu, xử lý theo Khử định danh và dữ liệu dùng cho AI — dữ liệu đã khử nhận dạng không còn là dữ liệu cá nhân
Quản lý dữ liệu y tế số NĐ 102/2025/NĐ-CP Rút trích phục vụ cơ sở dữ liệu quốc gia về y tế đi theo quy định chuyên ngành, không phải quyết định riêng của từng cơ sở
Chia sẻ dữ liệu giữa cơ quan nhà nước NĐ 278/2025/NĐ-CP Điều 5 Việc chia sẻ không được xâm phạm quyền về đời sống riêng tư, bí mật cá nhân, bí mật gia đình trừ khi luật có quy định khác; cơ quan quản lý cơ sở dữ liệu phải công bố phạm vi dữ liệu và điều kiện tiếp cận
Lưu trữ dữ liệu trong nước Luật 116/2025/QH15 và pháp luật chuyên ngành Tệp kết quả $export là bản sao đầy đủ của dữ liệu gốc: nơi lưu tệp và nơi lưu kho dữ liệu chịu cùng ràng buộc

Sáu ràng buộc tối thiểu cho hệ thống công bố $export

Hệ thống công bố khả năng này phải thỏa cả sáu; thiếu bất kỳ điểm nào thì không nên công bố.

  1. Ủy quyền cấp hệ thống, không mượn quyền người dùng. Dùng luồng client_credentials với scope system/; không thực hiện rút trích lô bằng token của một người hành nghề đang đăng nhập.
  2. Phạm vi khai báo trước. Yêu cầu rút trích phải nêu _type và khoảng thời gian; từ chối yêu cầu không giới hạn loại tài nguyên đối với dữ liệu lâm sàng.
  3. Nhóm đối tượng xác định. Ưu tiên Group/[id]/$export với Group được lập theo tiêu chí đã phê duyệt, thay vì $export cấp hệ thống lấy toàn bộ dân số.
  4. Kiểm toán ở hai mức. Một AuditEvent cho quyết định cho phép rút trích (kèm căn cứ xử lý), và bản ghi cho từng tệp kết quả được tải về — ai tải, khi nào, tệp nào.
  5. Vòng đời tệp kết quả có giới hạn. Đặt hạn dùng cho liên kết tải, xóa tệp sau khi hết hạn, và ghi lại việc xóa. Tệp ndjson nằm lại trên vùng lưu trữ tạm là rủi ro lớn nhất của cả quy trình.
  6. Nhãn phân loại đi kèm dữ liệu. Giữ meta.security trong tệp kết quả để bên nhận biết mức mật và mức xử lý; nếu đã khử nhận dạng thì gắn nhãn đúng mức, không tuyên bố quá.

Những gì VN Core cung cấp cho luồng này

Cần VN Core có sẵn
Định nghĩa nhóm đối tượng rút trích VNCoreGroup — mô tả cohort theo tiêu chí, dùng làm đích cho Group/[id]/$export
Ghi nhận quyết định cho phép và căn cứ xử lý VNCoreAuditEventLegalBasisDecision, VNProcessingLegalBasisCS
Ghi nhận từng lần truy cập, tải về VNCoreAuditEvent
Nhãn mức mật và mức xử lý Hướng dẫn tại Khử định danh và dữ liệu dùng cho AI
Phạm vi truy cập cấp hệ thống Ma trận scope tại SMART on FHIR

Điều còn chờ

Bản 1.0.0 dự kiến bổ sung phần triển khai có kiểm thử: bộ ca kiểm thử cho luồng kick-off, poll trạng thái và manifest kết quả. Việc đó cần một máy chủ thí điểm thật; cho đến khi có, IG chỉ mô tả nghĩa vụ chứ không mô tả năng lực.

Liên hệ với các trang khác

Nếu cần Nên đọc tiếp
Phạm vi truy cập và nghĩa vụ của actor SMART on FHIR — nghĩa vụ và scope
Mức xử lý dữ liệu và nhãn phân loại Khử định danh và dữ liệu dùng cho AI
Căn cứ xử lý, consent, kiểm toán truy cập Bảo mật và quyền riêng tư
Nghĩa vụ theo vai trò triển khai Tuân thủ theo vai trò triển khai

English Summary

VN Core deliberately keeps $export out of VNCoreServer and VNCoreEMRServer: this IG runs no server, and bulk extraction carries a different risk profile from record-level access — one call can reach a facility's whole population. Systems that choose to offer it declare it themselves against HL7's standard Bulk Data OperationDefinitions; VN Core does not redefine the operation under a Vietnamese canonical. The page states the legal duties that attach (Law 91/2025/QH15, Decree 356/2025, Decree 102/2025, Decree 278/2025, Law 116/2025) and six minimum constraints: system-level authorization, declared scope, defined cohort via VNCoreGroup, two-level auditing, bounded result-file lifetime, and accurate meta.security labelling. Tested conformance is a 1.0.0 criterion, pending a pilot server.