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.10.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.10.0) built by the FHIR (HL7® FHIR® Standard) Build Tools. See the Directory of published versions

Phần mở rộng: Bằng chứng chuyển đổi giấy ↔ điện tử — Paper/Electronic Conversion Evidence Extension

URL chính thức: http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-paper-conversion Phiên bản: 0.10.0
Computable Name: VNCoreExtPaperConversion
Định danh khác: OID:2.25.161089673617632664299011809196868855799.42.169

Bằng chứng cho việc một tài liệu đã được chuyển đổi giữa văn bản giấy và thông điệp dữ liệu, theo Luật Giao dịch điện tử 20/2023/QH15 Điều 12.

Vì sao cần. Một tệp scan đính vào DocumentReference KHÔNG tự chứng minh rằng nó là bản chuyển đổi hợp lệ của một văn bản giấy. authenticator cũng không: nó nói ai xác thực nội dung, không nói ai thực hiện việc chuyển đổi và bằng cách nào. Thiếu lớp bằng chứng này thì bên nhận không phân biệt được một bản scan tuỳ tiện với một bản chuyển đổi có giá trị pháp lý.

Bốn phần tử bám đúng bốn điểm của Điều 12 khoản 1:

Điểm Yêu cầu của luật Phần tử
a Thông tin được bảo đảm toàn vẹn như văn bản giấy integrityMethod
b Có thể truy cập và sử dụng để tham chiếu sourceReference
c Có ký hiệu riêng xác nhận đã chuyển đổi + thông tin bên thực hiện conversionMark + convertedBy
d Nếu là giấy phép/chứng nhận/chứng chỉ/văn bản xác nhận, chấp thuận → thêm chữ ký số của bên chuyển đổi officialDocument + signatureEvidence

Hai chiều. Điều 12 khoản 2 quy định chiều ngược lại (thông điệp dữ liệu → văn bản giấy) với yêu cầu tương ứng; direction phân biệt hai chiều để cùng một cấu trúc dùng được cho cả hai.

Không thay thế Provenance. Extension này ghi bằng chứng chuyển đổi gắn liền tài liệu. Chuỗi tác nhân, thời điểm và chữ ký chi tiết vẫn nên có Provenance riêng khi hợp đồng trao đổi yêu cầu.

Context of Use

Usage info

Usages:

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 phần mở rộng

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

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Extension C 0..* Extension Bằng chứng chuyển đổi giấy ↔ điện tử — Paper/Electronic Conversion Evidence Extension
Constraints: vn-paper-conversion-official-doc-signature
... extension 5..* Extension Extension
... Slices for extension Content/Rules for all slices
.... extension:direction S 1..1 Extension Chiều chuyển đổi: giấy → điện tử hay điện tử → giấy
..... extension 0..0 Extension
..... url 1..1 uri "direction"
..... value[x] 0..1 code Value of extension
Binding: Chiều chuyển đổi giấy ↔ điện tử — Paper/Electronic Conversion Direction ValueSet (required)
.... extension:conversionMark S 1..1 Extension Ký hiệu riêng xác nhận đã chuyển đổi (Điều 12 khoản 1 điểm c)
..... extension 0..0 Extension
..... url 1..1 uri "conversionMark"
..... value[x] 0..1 string Value of extension
.... extension:convertedBy S 1..1 Extension Cơ quan, tổ chức hoặc cá nhân thực hiện chuyển đổi (Điều 12 khoản 1 điểm c)
..... extension 0..0 Extension
..... url 1..1 uri "convertedBy"
..... value[x] 0..1 Reference(Cơ sở y tế VN Core — VN Core Organization Profile | Nhân viên y tế VN Core — VN Core Practitioner Profile | Vai trò nhân viên y tế VN Core — VN Core PractitionerRole Profile) Value of extension
.... extension:convertedAt S 0..1 Extension Thời điểm thực hiện chuyển đổi
..... extension 0..0 Extension
..... url 1..1 uri "convertedAt"
..... value[x] 0..1 dateTime Value of extension
.... extension:integrityMethod S 1..1 Extension Cách bảo đảm toàn vẹn thông tin (Điều 12 khoản 1 điểm a, khoản 2 điểm a)
..... extension 0..0 Extension
..... url 1..1 uri "integrityMethod"
..... value[x] 0..1 CodeableConcept Value of extension
.... extension:sourceReference S 1..1 Extension Thông tin tra cứu bản gốc (Điều 12 khoản 1 điểm b, khoản 2 điểm b)
..... extension 0..0 Extension
..... url 1..1 uri "sourceReference"
..... value[x] 0..1 string Value of extension
.... extension:officialDocument S 0..1 Extension Bản gốc có phải giấy phép, chứng nhận, chứng chỉ, văn bản xác nhận hoặc chấp thuận không
..... extension 0..0 Extension
..... url 1..1 uri "officialDocument"
..... value[x] 0..1 boolean Value of extension
.... extension:signatureEvidence S 0..1 Extension Provenance mang chữ ký số của bên thực hiện chuyển đổi (Điều 12 khoản 1 điểm d)
..... extension 0..0 Extension
..... url 1..1 uri "signatureEvidence"
..... value[x] 0..1 Reference(Provenance) Value of extension
... url 1..1 uri "http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-paper-conversion"

doco Documentation for this format

Terminology Bindings (Differential)

Path Status Usage ValueSet Version Source
Extension.extension:direction.​value[x] Base required Chiều chuyển đổi giấy ↔ điện tử — Paper/Electronic Conversion Direction ValueSet 📦0.10.0 This IG

Constraints

Id Grade Path(s) Description Expression
vn-paper-conversion-official-doc-signature error Extension Khi tài liệu giấy được chuyển đổi là giấy phép, giấy chứng nhận, chứng chỉ, văn bản xác nhận hoặc văn bản chấp thuận do cơ quan, tổ chức có thẩm quyền phát hành thì bản điện tử phải có chữ ký số của bên thực hiện chuyển đổi — Luật 20/2023/QH15 Điều 12 khoản 1 điểm d. Converting an official credential SHALL carry the converter's digital signature. extension.where(url = 'officialDocument').value.ofType(boolean) = true implies extension.where(url = 'signatureEvidence').exists()
NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Extension C 0..* Extension Bằng chứng chuyển đổi giấy ↔ điện tử — Paper/Electronic Conversion Evidence Extension
Constraints: vn-paper-conversion-official-doc-signature
... id 0..1 string Unique id for inter-element referencing
... Slices for extension 5..* Extension Extension
Slice: Unordered, Open by value:url
.... extension:direction S 1..1 Extension Chiều chuyển đổi: giấy → điện tử hay điện tử → giấy
..... id 0..1 string Unique id for inter-element referencing
..... extension 0..0 Extension
Slice: Unordered, Open by value:url
..... url 1..1 uri "direction"
..... value[x] 0..1 code Value of extension
Binding: Chiều chuyển đổi giấy ↔ điện tử — Paper/Electronic Conversion Direction ValueSet (required)
.... extension:conversionMark S 1..1 Extension Ký hiệu riêng xác nhận đã chuyển đổi (Điều 12 khoản 1 điểm c)
..... id 0..1 string Unique id for inter-element referencing
..... extension 0..0 Extension
Slice: Unordered, Open by value:url
..... url 1..1 uri "conversionMark"
..... value[x] 0..1 string Value of extension
.... extension:convertedBy S 1..1 Extension Cơ quan, tổ chức hoặc cá nhân thực hiện chuyển đổi (Điều 12 khoản 1 điểm c)
..... id 0..1 string Unique id for inter-element referencing
..... extension 0..0 Extension
Slice: Unordered, Open by value:url
..... url 1..1 uri "convertedBy"
..... value[x] 0..1 Reference(Cơ sở y tế VN Core — VN Core Organization Profile | Nhân viên y tế VN Core — VN Core Practitioner Profile | Vai trò nhân viên y tế VN Core — VN Core PractitionerRole Profile) Value of extension
.... extension:convertedAt S 0..1 Extension Thời điểm thực hiện chuyển đổi
..... id 0..1 string Unique id for inter-element referencing
..... extension 0..0 Extension
Slice: Unordered, Open by value:url
..... url 1..1 uri "convertedAt"
..... value[x] 0..1 dateTime Value of extension
.... extension:integrityMethod S 1..1 Extension Cách bảo đảm toàn vẹn thông tin (Điều 12 khoản 1 điểm a, khoản 2 điểm a)
..... id 0..1 string Unique id for inter-element referencing
..... extension 0..0 Extension
Slice: Unordered, Open by value:url
..... url 1..1 uri "integrityMethod"
..... value[x] 0..1 CodeableConcept Value of extension
.... extension:sourceReference S 1..1 Extension Thông tin tra cứu bản gốc (Điều 12 khoản 1 điểm b, khoản 2 điểm b)
..... id 0..1 string Unique id for inter-element referencing
..... extension 0..0 Extension
Slice: Unordered, Open by value:url
..... url 1..1 uri "sourceReference"
..... value[x] 0..1 string Value of extension
.... extension:officialDocument S 0..1 Extension Bản gốc có phải giấy phép, chứng nhận, chứng chỉ, văn bản xác nhận hoặc chấp thuận không
..... id 0..1 string Unique id for inter-element referencing
..... extension 0..0 Extension
Slice: Unordered, Open by value:url
..... url 1..1 uri "officialDocument"
..... value[x] 0..1 boolean Value of extension
.... extension:signatureEvidence S 0..1 Extension Provenance mang chữ ký số của bên thực hiện chuyển đổi (Điều 12 khoản 1 điểm d)
..... id 0..1 string Unique id for inter-element referencing
..... extension 0..0 Extension
Slice: Unordered, Open by value:url
..... url 1..1 uri "signatureEvidence"
..... value[x] 0..1 Reference(Provenance) Value of extension
... url 1..1 uri "http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-paper-conversion"

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
Extension.extension:direction.​value[x] Base required Chiều chuyển đổi giấy ↔ điện tử — Paper/Electronic Conversion Direction ValueSet 📦0.10.0 This IG

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()
vn-paper-conversion-official-doc-signature error Extension Khi tài liệu giấy được chuyển đổi là giấy phép, giấy chứng nhận, chứng chỉ, văn bản xác nhận hoặc văn bản chấp thuận do cơ quan, tổ chức có thẩm quyền phát hành thì bản điện tử phải có chữ ký số của bên thực hiện chuyển đổi — Luật 20/2023/QH15 Điều 12 khoản 1 điểm d. Converting an official credential SHALL carry the converter's digital signature. extension.where(url = 'officialDocument').value.ofType(boolean) = true implies extension.where(url = 'signatureEvidence').exists()

Summary

Complex Extension: Bằng chứng cho việc một tài liệu đã được chuyển đổi giữa văn bản giấy và thông điệp dữ liệu, theo Luật Giao dịch điện tử 20/2023/QH15 Điều 12. Vì sao cần. Một tệp scan đính vào DocumentReference KHÔNG tự chứng minh rằng nó là bản chuyển đổi hợp lệ của một văn bản giấy. authenticator cũng không: nó nói ai xác thực nội dung, không nói ai thực hiện việc chuyển đổi và bằng cách nào. Thiếu lớp bằng chứng này thì bên nhận không phân biệt được một bản scan tuỳ tiện với một bản chuyển đổi có giá trị pháp lý. Bốn phần tử bám đúng bốn điểm của Điều 12 khoản 1:

Điểm Yêu cầu của luật Phần tử
a Thông tin được bảo đảm toàn vẹn như văn bản giấy integrityMethod
b Có thể truy cập và sử dụng để tham chiếu sourceReference
c Có ký hiệu riêng xác nhận đã chuyển đổi + thông tin bên thực hiện conversionMark + convertedBy
d Nếu là giấy phép/chứng nhận/chứng chỉ/văn bản xác nhận, chấp thuận → thêm chữ ký số của bên chuyển đổi officialDocument + signatureEvidence
Hai chiều. Điều 12 khoản 2 quy định chiều ngược lại (thông điệp dữ liệu → văn bản giấy) với yêu cầu tương ứng; direction phân biệt hai chiều để cùng một cấu trúc dùng được cho cả hai. Không thay thế Provenance. Extension này ghi bằng chứng chuyển đổi gắn liền tài liệu. Chuỗi tác nhân, thời điểm và chữ ký chi tiết vẫn nên có Provenance riêng khi hợp đồng trao đổi yêu cầu.

  • direction: code: Luật 20/2023/QH15 quy định hai chiều ở hai khoản khác nhau (khoản 1 và khoản 2) với yêu cầu riêng, nên chiều phải khai rõ chứ không suy từ ngữ cảnh.
  • conversionMark: string: Ký hiệu do bên thực hiện chuyển đổi gán, xác nhận tài liệu này là bản chuyển đổi. Luật không quy định định dạng ký hiệu, nên đây là chuỗi tự do — nhưng bắt buộc phải có, vì không có nó thì không phân biệt được bản chuyển đổi với bản sao thường.
  • convertedBy: Reference: An Extension
  • convertedAt: dateTime: An Extension
  • integrityMethod: CodeableConcept: Ví dụ: hàm băm của tệp gốc, chữ ký số trên toàn tệp, hoặc quy trình đối chiếu do hệ thống chuyển đổi thực hiện. Luật yêu cầu bảo đảm toàn vẹn nhưng không ấn định phương pháp, nên binding để mở.

    Bắt buộc ở CẢ HAI chiều (kiểm toán 06/08/2026 — trước đó để 0..1, không khớp văn bản): Luật 20/2023/QH15 Điều 12 khoản 1 điểm a yêu cầu 'thông tin trong thông điệp dữ liệu được bảo đảm toàn vẹn như văn bản giấy', và khoản 2 điểm a yêu cầu 'thông tin trong văn bản giấy được bảo đảm toàn vẹn như thông điệp dữ liệu'. Không có chiều nào miễn yêu cầu này.

  • sourceReference: string: Đủ để truy cập và tham chiếu bản gốc: số hiệu văn bản giấy, mã lưu trữ, hoặc — với chiều điện tử → giấy — thông tin xác định hệ thống thông tin và chủ quản hệ thống đã tạo lập, gửi, nhận, lưu trữ thông điệp dữ liệu gốc.

    Bắt buộc ở CẢ HAI chiều (kiểm toán 06/08/2026): Điều 12 khoản 1 điểm b yêu cầu thông tin 'có thể truy cập và sử dụng được để tham chiếu'; khoản 2 điểm b yêu cầu 'có thông tin để xác định được hệ thống thông tin và chủ quản hệ thống thông tin tạo lập, gửi, nhận, lưu trữ thông điệp dữ liệu gốc để tra cứu'. Nội dung khác nhau theo chiều, nhưng nghĩa vụ khai báo là bắt buộc ở cả hai.

  • officialDocument: boolean: true khi văn bản giấy thuộc nhóm do cơ quan, tổ chức có thẩm quyền phát hành theo Điều 12 khoản 1 điểm d. Khi đó signatureEvidence là bắt buộc theo invariant vn-paper-conversion-official-doc-signature.
  • signatureEvidence: Reference: Trỏ Provenance có signature của cơ quan, tổ chức thực hiện chuyển đổi. Dùng Provenance thay vì nhúng chữ ký thẳng vào đây để giữ đúng ranh giới: extension ghi đã có chữ ký nào, Provenance mang bằng chứng chữ ký.

Dạng xem DifferentialDifferential View

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Extension C 0..* Extension Bằng chứng chuyển đổi giấy ↔ điện tử — Paper/Electronic Conversion Evidence Extension
Constraints: vn-paper-conversion-official-doc-signature
... extension 5..* Extension Extension
... Slices for extension Content/Rules for all slices
.... extension:direction S 1..1 Extension Chiều chuyển đổi: giấy → điện tử hay điện tử → giấy
..... extension 0..0 Extension
..... url 1..1 uri "direction"
..... value[x] 0..1 code Value of extension
Binding: Chiều chuyển đổi giấy ↔ điện tử — Paper/Electronic Conversion Direction ValueSet (required)
.... extension:conversionMark S 1..1 Extension Ký hiệu riêng xác nhận đã chuyển đổi (Điều 12 khoản 1 điểm c)
..... extension 0..0 Extension
..... url 1..1 uri "conversionMark"
..... value[x] 0..1 string Value of extension
.... extension:convertedBy S 1..1 Extension Cơ quan, tổ chức hoặc cá nhân thực hiện chuyển đổi (Điều 12 khoản 1 điểm c)
..... extension 0..0 Extension
..... url 1..1 uri "convertedBy"
..... value[x] 0..1 Reference(Cơ sở y tế VN Core — VN Core Organization Profile | Nhân viên y tế VN Core — VN Core Practitioner Profile | Vai trò nhân viên y tế VN Core — VN Core PractitionerRole Profile) Value of extension
.... extension:convertedAt S 0..1 Extension Thời điểm thực hiện chuyển đổi
..... extension 0..0 Extension
..... url 1..1 uri "convertedAt"
..... value[x] 0..1 dateTime Value of extension
.... extension:integrityMethod S 1..1 Extension Cách bảo đảm toàn vẹn thông tin (Điều 12 khoản 1 điểm a, khoản 2 điểm a)
..... extension 0..0 Extension
..... url 1..1 uri "integrityMethod"
..... value[x] 0..1 CodeableConcept Value of extension
.... extension:sourceReference S 1..1 Extension Thông tin tra cứu bản gốc (Điều 12 khoản 1 điểm b, khoản 2 điểm b)
..... extension 0..0 Extension
..... url 1..1 uri "sourceReference"
..... value[x] 0..1 string Value of extension
.... extension:officialDocument S 0..1 Extension Bản gốc có phải giấy phép, chứng nhận, chứng chỉ, văn bản xác nhận hoặc chấp thuận không
..... extension 0..0 Extension
..... url 1..1 uri "officialDocument"
..... value[x] 0..1 boolean Value of extension
.... extension:signatureEvidence S 0..1 Extension Provenance mang chữ ký số của bên thực hiện chuyển đổi (Điều 12 khoản 1 điểm d)
..... extension 0..0 Extension
..... url 1..1 uri "signatureEvidence"
..... value[x] 0..1 Reference(Provenance) Value of extension
... url 1..1 uri "http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-paper-conversion"

doco Documentation for this format

Terminology Bindings (Differential)

Path Status Usage ValueSet Version Source
Extension.extension:direction.​value[x] Base required Chiều chuyển đổi giấy ↔ điện tử — Paper/Electronic Conversion Direction ValueSet 📦0.10.0 This IG

Constraints

Id Grade Path(s) Description Expression
vn-paper-conversion-official-doc-signature error Extension Khi tài liệu giấy được chuyển đổi là giấy phép, giấy chứng nhận, chứng chỉ, văn bản xác nhận hoặc văn bản chấp thuận do cơ quan, tổ chức có thẩm quyền phát hành thì bản điện tử phải có chữ ký số của bên thực hiện chuyển đổi — Luật 20/2023/QH15 Điều 12 khoản 1 điểm d. Converting an official credential SHALL carry the converter's digital signature. extension.where(url = 'officialDocument').value.ofType(boolean) = true implies extension.where(url = 'signatureEvidence').exists()

Dạng xem Snapshot

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Extension C 0..* Extension Bằng chứng chuyển đổi giấy ↔ điện tử — Paper/Electronic Conversion Evidence Extension
Constraints: vn-paper-conversion-official-doc-signature
... id 0..1 string Unique id for inter-element referencing
... Slices for extension 5..* Extension Extension
Slice: Unordered, Open by value:url
.... extension:direction S 1..1 Extension Chiều chuyển đổi: giấy → điện tử hay điện tử → giấy
..... id 0..1 string Unique id for inter-element referencing
..... extension 0..0 Extension
Slice: Unordered, Open by value:url
..... url 1..1 uri "direction"
..... value[x] 0..1 code Value of extension
Binding: Chiều chuyển đổi giấy ↔ điện tử — Paper/Electronic Conversion Direction ValueSet (required)
.... extension:conversionMark S 1..1 Extension Ký hiệu riêng xác nhận đã chuyển đổi (Điều 12 khoản 1 điểm c)
..... id 0..1 string Unique id for inter-element referencing
..... extension 0..0 Extension
Slice: Unordered, Open by value:url
..... url 1..1 uri "conversionMark"
..... value[x] 0..1 string Value of extension
.... extension:convertedBy S 1..1 Extension Cơ quan, tổ chức hoặc cá nhân thực hiện chuyển đổi (Điều 12 khoản 1 điểm c)
..... id 0..1 string Unique id for inter-element referencing
..... extension 0..0 Extension
Slice: Unordered, Open by value:url
..... url 1..1 uri "convertedBy"
..... value[x] 0..1 Reference(Cơ sở y tế VN Core — VN Core Organization Profile | Nhân viên y tế VN Core — VN Core Practitioner Profile | Vai trò nhân viên y tế VN Core — VN Core PractitionerRole Profile) Value of extension
.... extension:convertedAt S 0..1 Extension Thời điểm thực hiện chuyển đổi
..... id 0..1 string Unique id for inter-element referencing
..... extension 0..0 Extension
Slice: Unordered, Open by value:url
..... url 1..1 uri "convertedAt"
..... value[x] 0..1 dateTime Value of extension
.... extension:integrityMethod S 1..1 Extension Cách bảo đảm toàn vẹn thông tin (Điều 12 khoản 1 điểm a, khoản 2 điểm a)
..... id 0..1 string Unique id for inter-element referencing
..... extension 0..0 Extension
Slice: Unordered, Open by value:url
..... url 1..1 uri "integrityMethod"
..... value[x] 0..1 CodeableConcept Value of extension
.... extension:sourceReference S 1..1 Extension Thông tin tra cứu bản gốc (Điều 12 khoản 1 điểm b, khoản 2 điểm b)
..... id 0..1 string Unique id for inter-element referencing
..... extension 0..0 Extension
Slice: Unordered, Open by value:url
..... url 1..1 uri "sourceReference"
..... value[x] 0..1 string Value of extension
.... extension:officialDocument S 0..1 Extension Bản gốc có phải giấy phép, chứng nhận, chứng chỉ, văn bản xác nhận hoặc chấp thuận không
..... id 0..1 string Unique id for inter-element referencing
..... extension 0..0 Extension
Slice: Unordered, Open by value:url
..... url 1..1 uri "officialDocument"
..... value[x] 0..1 boolean Value of extension
.... extension:signatureEvidence S 0..1 Extension Provenance mang chữ ký số của bên thực hiện chuyển đổi (Điều 12 khoản 1 điểm d)
..... id 0..1 string Unique id for inter-element referencing
..... extension 0..0 Extension
Slice: Unordered, Open by value:url
..... url 1..1 uri "signatureEvidence"
..... value[x] 0..1 Reference(Provenance) Value of extension
... url 1..1 uri "http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-paper-conversion"

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
Extension.extension:direction.​value[x] Base required Chiều chuyển đổi giấy ↔ điện tử — Paper/Electronic Conversion Direction ValueSet 📦0.10.0 This IG

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()
vn-paper-conversion-official-doc-signature error Extension Khi tài liệu giấy được chuyển đổi là giấy phép, giấy chứng nhận, chứng chỉ, văn bản xác nhận hoặc văn bản chấp thuận do cơ quan, tổ chức có thẩm quyền phát hành thì bản điện tử phải có chữ ký số của bên thực hiện chuyển đổi — Luật 20/2023/QH15 Điều 12 khoản 1 điểm d. Converting an official credential SHALL carry the converter's digital signature. extension.where(url = 'officialDocument').value.ofType(boolean) = true implies extension.where(url = 'signatureEvidence').exists()

Summary

Complex Extension: Bằng chứng cho việc một tài liệu đã được chuyển đổi giữa văn bản giấy và thông điệp dữ liệu, theo Luật Giao dịch điện tử 20/2023/QH15 Điều 12. Vì sao cần. Một tệp scan đính vào DocumentReference KHÔNG tự chứng minh rằng nó là bản chuyển đổi hợp lệ của một văn bản giấy. authenticator cũng không: nó nói ai xác thực nội dung, không nói ai thực hiện việc chuyển đổi và bằng cách nào. Thiếu lớp bằng chứng này thì bên nhận không phân biệt được một bản scan tuỳ tiện với một bản chuyển đổi có giá trị pháp lý. Bốn phần tử bám đúng bốn điểm của Điều 12 khoản 1:

Điểm Yêu cầu của luật Phần tử
a Thông tin được bảo đảm toàn vẹn như văn bản giấy integrityMethod
b Có thể truy cập và sử dụng để tham chiếu sourceReference
c Có ký hiệu riêng xác nhận đã chuyển đổi + thông tin bên thực hiện conversionMark + convertedBy
d Nếu là giấy phép/chứng nhận/chứng chỉ/văn bản xác nhận, chấp thuận → thêm chữ ký số của bên chuyển đổi officialDocument + signatureEvidence
Hai chiều. Điều 12 khoản 2 quy định chiều ngược lại (thông điệp dữ liệu → văn bản giấy) với yêu cầu tương ứng; direction phân biệt hai chiều để cùng một cấu trúc dùng được cho cả hai. Không thay thế Provenance. Extension này ghi bằng chứng chuyển đổi gắn liền tài liệu. Chuỗi tác nhân, thời điểm và chữ ký chi tiết vẫn nên có Provenance riêng khi hợp đồng trao đổi yêu cầu.

  • direction: code: Luật 20/2023/QH15 quy định hai chiều ở hai khoản khác nhau (khoản 1 và khoản 2) với yêu cầu riêng, nên chiều phải khai rõ chứ không suy từ ngữ cảnh.
  • conversionMark: string: Ký hiệu do bên thực hiện chuyển đổi gán, xác nhận tài liệu này là bản chuyển đổi. Luật không quy định định dạng ký hiệu, nên đây là chuỗi tự do — nhưng bắt buộc phải có, vì không có nó thì không phân biệt được bản chuyển đổi với bản sao thường.
  • convertedBy: Reference: An Extension
  • convertedAt: dateTime: An Extension
  • integrityMethod: CodeableConcept: Ví dụ: hàm băm của tệp gốc, chữ ký số trên toàn tệp, hoặc quy trình đối chiếu do hệ thống chuyển đổi thực hiện. Luật yêu cầu bảo đảm toàn vẹn nhưng không ấn định phương pháp, nên binding để mở.

    Bắt buộc ở CẢ HAI chiều (kiểm toán 06/08/2026 — trước đó để 0..1, không khớp văn bản): Luật 20/2023/QH15 Điều 12 khoản 1 điểm a yêu cầu 'thông tin trong thông điệp dữ liệu được bảo đảm toàn vẹn như văn bản giấy', và khoản 2 điểm a yêu cầu 'thông tin trong văn bản giấy được bảo đảm toàn vẹn như thông điệp dữ liệu'. Không có chiều nào miễn yêu cầu này.

  • sourceReference: string: Đủ để truy cập và tham chiếu bản gốc: số hiệu văn bản giấy, mã lưu trữ, hoặc — với chiều điện tử → giấy — thông tin xác định hệ thống thông tin và chủ quản hệ thống đã tạo lập, gửi, nhận, lưu trữ thông điệp dữ liệu gốc.

    Bắt buộc ở CẢ HAI chiều (kiểm toán 06/08/2026): Điều 12 khoản 1 điểm b yêu cầu thông tin 'có thể truy cập và sử dụng được để tham chiếu'; khoản 2 điểm b yêu cầu 'có thông tin để xác định được hệ thống thông tin và chủ quản hệ thống thông tin tạo lập, gửi, nhận, lưu trữ thông điệp dữ liệu gốc để tra cứu'. Nội dung khác nhau theo chiều, nhưng nghĩa vụ khai báo là bắt buộc ở cả hai.

  • officialDocument: boolean: true khi văn bản giấy thuộc nhóm do cơ quan, tổ chức có thẩm quyền phát hành theo Điều 12 khoản 1 điểm d. Khi đó signatureEvidence là bắt buộc theo invariant vn-paper-conversion-official-doc-signature.
  • signatureEvidence: Reference: Trỏ Provenance có signature của cơ quan, tổ chức thực hiện chuyển đổi. Dùng Provenance thay vì nhúng chữ ký thẳng vào đây để giữ đúng ranh giới: extension ghi đã có chữ ký nào, Provenance mang bằng chứng chữ ký.

 

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