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 - Mô tả chi tiết

Draft tại thời điểm 2026-08-05

Các định nghĩa cho vn-ext-paper-conversion phần mở rộng

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

0. Extension
Definition

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.


Optional Extension Element - found in all resources.

ShortBằng chứng chuyển đổi giấy ↔ điện tử — Paper/Electronic Conversion Evidence ExtensionOptional Extensions Element
Control0..*
This element is affected by the following invariants: ele-1
Is Modifierfalse
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())
vn-paper-conversion-official-doc-signature: 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())
ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
2. Extension.extension
Definition

An Extension


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.

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

Control50..*
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 Extension.extension. The slices areUnordered and Open, and can be differentiated using the following discriminators:
  • value @ url
  • 4. Extension.extension:direction
    Slice Namedirection
    Definition

    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.

    ShortChiều chuyển đổi: giấy → điện tử hay điện tử → giấyAdditional content defined by implementations
    Control10..1*
    TypeExtension
    Is Modifierfalse
    Must Supporttrue
    Summaryfalse
    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())
    6. Extension.extension:direction.extension
    Definition

    An Extension


    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.

    ShortExtensionAdditional 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..0*
    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 Extension.extension.extension. The slices areUnordered and Open, and can be differentiated using the following discriminators:
    • value @ url
    • 8. Extension.extension:direction.url
      Definition

      Source of the definition for the extension code - a logical name or a URL.

      Shortidentifies the meaning of the extension
      Comments

      The definition may point directly to a computable or human-readable definition of the extensibility codes, or it may be a logical URI as declared in some other specification. The definition SHALL be a URI for the Structure Definition defining the extension.

      Control1..1
      Typeuri
      Is Modifierfalse
      XML FormatIn the XML format, this property is represented as an attribute.
      Summaryfalse
      Fixed Valuedirection
      10. Extension.extension:direction.value[x]
      Definition

      Value of extension - must be one of a constrained set of the data types (see Extensibility for a list).

      ShortValue of extension
      Control0..1
      BindingThe codes SHALL be taken from For codes, see Chiều chuyển đổi giấy ↔ điện tử — Paper/Electronic Conversion Direction ValueSet
      (required to http://fhir.hl7.org.vn/core/ValueSet/vn-conversion-direction-vs)
      Typecode, date, Meta, Address, Attachment, integer, Count, DataRequirement, Dosage, uuid, Identifier, Coding, SampledData, id, positiveInt, Distance, Period, Duration, canonical, Range, RelatedArtifact, base64Binary, UsageContext, Timing, decimal, CodeableConcept, ParameterDefinition, dateTime, string, Contributor, oid, instant, ContactPoint, HumanName, Money, markdown, Ratio, Age, Reference, TriggerDefinition, Quantity, uri, url, Annotation, ContactDetail, boolean, Expression, Signature, unsignedInt, time
      [x] NoteSeeChoice of Data Typesfor further information about how to use [x]
      Is Modifierfalse
      Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
      Summaryfalse
      Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
      12. Extension.extension:conversionMark
      Slice NameconversionMark
      Definition

      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.

      ShortKý hiệu riêng xác nhận đã chuyển đổi (Điều 12 khoản 1 điểm c)Additional content defined by implementations
      Control10..1*
      TypeExtension
      Is Modifierfalse
      Must Supporttrue
      Summaryfalse
      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())
      14. Extension.extension:conversionMark.extension
      Definition

      An Extension


      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.

      ShortExtensionAdditional 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..0*
      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 Extension.extension.extension. The slices areUnordered and Open, and can be differentiated using the following discriminators:
      • value @ url
      • 16. Extension.extension:conversionMark.url
        Definition

        Source of the definition for the extension code - a logical name or a URL.

        Shortidentifies the meaning of the extension
        Comments

        The definition may point directly to a computable or human-readable definition of the extensibility codes, or it may be a logical URI as declared in some other specification. The definition SHALL be a URI for the Structure Definition defining the extension.

        Control1..1
        Typeuri
        Is Modifierfalse
        XML FormatIn the XML format, this property is represented as an attribute.
        Summaryfalse
        Fixed ValueconversionMark
        18. Extension.extension:conversionMark.value[x]
        Definition

        Value of extension - must be one of a constrained set of the data types (see Extensibility for a list).

        ShortValue of extension
        Control0..1
        Typestring, date, Meta, Address, Attachment, integer, Count, DataRequirement, Dosage, uuid, Identifier, Coding, SampledData, id, positiveInt, Distance, Period, Duration, canonical, Range, RelatedArtifact, base64Binary, UsageContext, Timing, decimal, CodeableConcept, ParameterDefinition, dateTime, code, Contributor, oid, instant, ContactPoint, HumanName, Money, markdown, Ratio, Age, Reference, TriggerDefinition, Quantity, uri, url, Annotation, ContactDetail, boolean, Expression, Signature, unsignedInt, time
        [x] NoteSeeChoice of Data Typesfor further information about how to use [x]
        Is Modifierfalse
        Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
        Summaryfalse
        Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
        20. Extension.extension:convertedBy
        Slice NameconvertedBy
        Definition

        An Extension

        ShortCơ 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)Additional content defined by implementations
        Control10..1*
        TypeExtension
        Is Modifierfalse
        Must Supporttrue
        Summaryfalse
        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())
        22. Extension.extension:convertedBy.extension
        Definition

        An Extension


        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.

        ShortExtensionAdditional 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..0*
        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 Extension.extension.extension. The slices areUnordered and Open, and can be differentiated using the following discriminators:
        • value @ url
        • 24. Extension.extension:convertedBy.url
          Definition

          Source of the definition for the extension code - a logical name or a URL.

          Shortidentifies the meaning of the extension
          Comments

          The definition may point directly to a computable or human-readable definition of the extensibility codes, or it may be a logical URI as declared in some other specification. The definition SHALL be a URI for the Structure Definition defining the extension.

          Control1..1
          Typeuri
          Is Modifierfalse
          XML FormatIn the XML format, this property is represented as an attribute.
          Summaryfalse
          Fixed ValueconvertedBy
          26. Extension.extension:convertedBy.value[x]
          Definition

          Value of extension - must be one of a constrained set of the data types (see Extensibility for a list).

          ShortValue of extension
          Control0..1
          TypeReference(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), date, Meta, Address, Attachment, integer, Count, DataRequirement, Dosage, uuid, Identifier, Coding, SampledData, id, positiveInt, Distance, Period, Duration, canonical, Range, RelatedArtifact, base64Binary, UsageContext, Timing, decimal, CodeableConcept, ParameterDefinition, dateTime, code, string, Contributor, oid, instant, ContactPoint, HumanName, Money, markdown, Ratio, Age, TriggerDefinition, Quantity, uri, url, Annotation, ContactDetail, boolean, Expression, Signature, unsignedInt, time
          [x] NoteSeeChoice of Data Typesfor further information about how to use [x]
          Is Modifierfalse
          Summaryfalse
          Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
          28. Extension.extension:convertedAt
          Slice NameconvertedAt
          Definition

          An Extension

          ShortThời điểm thực hiện chuyển đổiAdditional content defined by implementations
          Control0..1*
          TypeExtension
          Is Modifierfalse
          Must Supporttrue
          Summaryfalse
          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())
          30. Extension.extension:convertedAt.extension
          Definition

          An Extension


          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.

          ShortExtensionAdditional 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..0*
          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 Extension.extension.extension. The slices areUnordered and Open, and can be differentiated using the following discriminators:
          • value @ url
          • 32. Extension.extension:convertedAt.url
            Definition

            Source of the definition for the extension code - a logical name or a URL.

            Shortidentifies the meaning of the extension
            Comments

            The definition may point directly to a computable or human-readable definition of the extensibility codes, or it may be a logical URI as declared in some other specification. The definition SHALL be a URI for the Structure Definition defining the extension.

            Control1..1
            Typeuri
            Is Modifierfalse
            XML FormatIn the XML format, this property is represented as an attribute.
            Summaryfalse
            Fixed ValueconvertedAt
            34. Extension.extension:convertedAt.value[x]
            Definition

            Value of extension - must be one of a constrained set of the data types (see Extensibility for a list).

            ShortValue of extension
            Control0..1
            TypedateTime, date, Meta, Address, Attachment, integer, Count, DataRequirement, Dosage, uuid, Identifier, Coding, SampledData, id, positiveInt, Distance, Period, Duration, canonical, Range, RelatedArtifact, base64Binary, UsageContext, Timing, decimal, CodeableConcept, ParameterDefinition, code, string, Contributor, oid, instant, ContactPoint, HumanName, Money, markdown, Ratio, Age, Reference, TriggerDefinition, Quantity, uri, url, Annotation, ContactDetail, boolean, Expression, Signature, unsignedInt, time
            [x] NoteSeeChoice of Data Typesfor further information about how to use [x]
            Is Modifierfalse
            Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
            Summaryfalse
            Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
            36. Extension.extension:integrityMethod
            Slice NameintegrityMethod
            Definition

            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.

            ShortCá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)Additional content defined by implementations
            Control10..1*
            TypeExtension
            Is Modifierfalse
            Must Supporttrue
            Summaryfalse
            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())
            38. Extension.extension:integrityMethod.extension
            Definition

            An Extension


            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.

            ShortExtensionAdditional 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..0*
            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 Extension.extension.extension. The slices areUnordered and Open, and can be differentiated using the following discriminators:
            • value @ url
            • 40. Extension.extension:integrityMethod.url
              Definition

              Source of the definition for the extension code - a logical name or a URL.

              Shortidentifies the meaning of the extension
              Comments

              The definition may point directly to a computable or human-readable definition of the extensibility codes, or it may be a logical URI as declared in some other specification. The definition SHALL be a URI for the Structure Definition defining the extension.

              Control1..1
              Typeuri
              Is Modifierfalse
              XML FormatIn the XML format, this property is represented as an attribute.
              Summaryfalse
              Fixed ValueintegrityMethod
              42. Extension.extension:integrityMethod.value[x]
              Definition

              Value of extension - must be one of a constrained set of the data types (see Extensibility for a list).

              ShortValue of extension
              Control0..1
              TypeCodeableConcept, date, Meta, Address, Attachment, integer, Count, DataRequirement, Dosage, uuid, Identifier, Coding, SampledData, id, positiveInt, Distance, Period, Duration, canonical, Range, RelatedArtifact, base64Binary, UsageContext, Timing, decimal, ParameterDefinition, dateTime, code, string, Contributor, oid, instant, ContactPoint, HumanName, Money, markdown, Ratio, Age, Reference, TriggerDefinition, Quantity, uri, url, Annotation, ContactDetail, boolean, Expression, Signature, unsignedInt, time
              [x] NoteSeeChoice of Data Typesfor further information about how to use [x]
              Is Modifierfalse
              Summaryfalse
              Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
              44. Extension.extension:sourceReference
              Slice NamesourceReference
              Definition

              Đủ để 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.

              ShortThông tin tra cứu bản gốc (Điều 12 khoản 1 điểm b, khoản 2 điểm b)Additional content defined by implementations
              Control10..1*
              TypeExtension
              Is Modifierfalse
              Must Supporttrue
              Summaryfalse
              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())
              46. Extension.extension:sourceReference.extension
              Definition

              An Extension


              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.

              ShortExtensionAdditional 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..0*
              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 Extension.extension.extension. The slices areUnordered and Open, and can be differentiated using the following discriminators:
              • value @ url
              • 48. Extension.extension:sourceReference.url
                Definition

                Source of the definition for the extension code - a logical name or a URL.

                Shortidentifies the meaning of the extension
                Comments

                The definition may point directly to a computable or human-readable definition of the extensibility codes, or it may be a logical URI as declared in some other specification. The definition SHALL be a URI for the Structure Definition defining the extension.

                Control1..1
                Typeuri
                Is Modifierfalse
                XML FormatIn the XML format, this property is represented as an attribute.
                Summaryfalse
                Fixed ValuesourceReference
                50. Extension.extension:sourceReference.value[x]
                Definition

                Value of extension - must be one of a constrained set of the data types (see Extensibility for a list).

                ShortValue of extension
                Control0..1
                Typestring, date, Meta, Address, Attachment, integer, Count, DataRequirement, Dosage, uuid, Identifier, Coding, SampledData, id, positiveInt, Distance, Period, Duration, canonical, Range, RelatedArtifact, base64Binary, UsageContext, Timing, decimal, CodeableConcept, ParameterDefinition, dateTime, code, Contributor, oid, instant, ContactPoint, HumanName, Money, markdown, Ratio, Age, Reference, TriggerDefinition, Quantity, uri, url, Annotation, ContactDetail, boolean, Expression, Signature, unsignedInt, time
                [x] NoteSeeChoice of Data Typesfor further information about how to use [x]
                Is Modifierfalse
                Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
                Summaryfalse
                Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
                52. Extension.extension:officialDocument
                Slice NameofficialDocument
                Definition

                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.

                ShortBả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ôngAdditional content defined by implementations
                Control0..1*
                TypeExtension
                Is Modifierfalse
                Must Supporttrue
                Summaryfalse
                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())
                54. Extension.extension:officialDocument.extension
                Definition

                An Extension


                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.

                ShortExtensionAdditional 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..0*
                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 Extension.extension.extension. The slices areUnordered and Open, and can be differentiated using the following discriminators:
                • value @ url
                • 56. Extension.extension:officialDocument.url
                  Definition

                  Source of the definition for the extension code - a logical name or a URL.

                  Shortidentifies the meaning of the extension
                  Comments

                  The definition may point directly to a computable or human-readable definition of the extensibility codes, or it may be a logical URI as declared in some other specification. The definition SHALL be a URI for the Structure Definition defining the extension.

                  Control1..1
                  Typeuri
                  Is Modifierfalse
                  XML FormatIn the XML format, this property is represented as an attribute.
                  Summaryfalse
                  Fixed ValueofficialDocument
                  58. Extension.extension:officialDocument.value[x]
                  Definition

                  Value of extension - must be one of a constrained set of the data types (see Extensibility for a list).

                  ShortValue of extension
                  Control0..1
                  Typeboolean, date, Meta, Address, Attachment, integer, Count, DataRequirement, Dosage, uuid, Identifier, Coding, SampledData, id, positiveInt, Distance, Period, Duration, canonical, Range, RelatedArtifact, base64Binary, UsageContext, Timing, decimal, CodeableConcept, ParameterDefinition, dateTime, code, string, Contributor, oid, instant, ContactPoint, HumanName, Money, markdown, Ratio, Age, Reference, TriggerDefinition, Quantity, uri, url, Annotation, ContactDetail, Expression, Signature, unsignedInt, time
                  [x] NoteSeeChoice of Data Typesfor further information about how to use [x]
                  Is Modifierfalse
                  Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
                  Summaryfalse
                  Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
                  60. Extension.extension:signatureEvidence
                  Slice NamesignatureEvidence
                  Definition

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

                  ShortProvenance mang chữ ký số của bên thực hiện chuyển đổi (Điều 12 khoản 1 điểm d)Additional content defined by implementations
                  Control0..1*
                  TypeExtension
                  Is Modifierfalse
                  Must Supporttrue
                  Summaryfalse
                  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())
                  62. Extension.extension:signatureEvidence.extension
                  Definition

                  An Extension


                  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.

                  ShortExtensionAdditional 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..0*
                  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 Extension.extension.extension. The slices areUnordered and Open, and can be differentiated using the following discriminators:
                  • value @ url
                  • 64. Extension.extension:signatureEvidence.url
                    Definition

                    Source of the definition for the extension code - a logical name or a URL.

                    Shortidentifies the meaning of the extension
                    Comments

                    The definition may point directly to a computable or human-readable definition of the extensibility codes, or it may be a logical URI as declared in some other specification. The definition SHALL be a URI for the Structure Definition defining the extension.

                    Control1..1
                    Typeuri
                    Is Modifierfalse
                    XML FormatIn the XML format, this property is represented as an attribute.
                    Summaryfalse
                    Fixed ValuesignatureEvidence
                    66. Extension.extension:signatureEvidence.value[x]
                    Definition

                    Value of extension - must be one of a constrained set of the data types (see Extensibility for a list).

                    ShortValue of extension
                    Control0..1
                    TypeReference(Provenance), date, Meta, Address, Attachment, integer, Count, DataRequirement, Dosage, uuid, Identifier, Coding, SampledData, id, positiveInt, Distance, Period, Duration, canonical, Range, RelatedArtifact, base64Binary, UsageContext, Timing, decimal, CodeableConcept, ParameterDefinition, dateTime, code, string, Contributor, oid, instant, ContactPoint, HumanName, Money, markdown, Ratio, Age, TriggerDefinition, Quantity, uri, url, Annotation, ContactDetail, boolean, Expression, Signature, unsignedInt, time
                    [x] NoteSeeChoice of Data Typesfor further information about how to use [x]
                    Is Modifierfalse
                    Summaryfalse
                    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
                    68. Extension.url
                    Definition

                    Source of the definition for the extension code - a logical name or a URL.

                    Shortidentifies the meaning of the extension
                    Comments

                    The definition may point directly to a computable or human-readable definition of the extensibility codes, or it may be a logical URI as declared in some other specification. The definition SHALL be a URI for the Structure Definition defining the extension.

                    Control1..1
                    Typeuri
                    Is Modifierfalse
                    XML FormatIn the XML format, this property is represented as an attribute.
                    Summaryfalse
                    Fixed Valuehttp://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-paper-conversion
                    70. Extension.value[x]
                    Definition

                    Value of extension - must be one of a constrained set of the data types (see Extensibility for a list).

                    ShortValue of extension
                    Control0..01
                    TypeChoice of: base64Binary, boolean, canonical, code, date, dateTime, decimal, id, instant, integer, markdown, oid, positiveInt, string, time, unsignedInt, uri, url, uuid, Address, Age, Annotation, Attachment, CodeableConcept, Coding, ContactPoint, Count, Distance, Duration, HumanName, Identifier, Money, Period, Quantity, Range, Ratio, Reference, SampledData, Signature, Timing, ContactDetail, Contributor, DataRequirement, Expression, ParameterDefinition, RelatedArtifact, TriggerDefinition, UsageContext, Dosage, Meta
                    Is Modifierfalse
                    Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
                    Summaryfalse
                    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))

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

                    0. Extension
                    Definition

                    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.

                    ShortBằng chứng chuyển đổi giấy ↔ điện tử — Paper/Electronic Conversion Evidence Extension
                    Invariantsvn-paper-conversion-official-doc-signature: 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())
                    2. Extension.extension
                    Control5..?
                    4. Extension.extension:direction
                    Slice Namedirection
                    Definition

                    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.

                    ShortChiều chuyển đổi: giấy → điện tử hay điện tử → giấy
                    Control1..1
                    Must Supporttrue
                    6. Extension.extension:direction.extension
                    Control0..0
                    8. Extension.extension:direction.url
                    Fixed Valuedirection
                    10. Extension.extension:direction.value[x]
                    BindingThe codes SHALL be taken from Chiều chuyển đổi giấy ↔ điện tử — Paper/Electronic Conversion Direction ValueSet
                    (required to http://fhir.hl7.org.vn/core/ValueSet/vn-conversion-direction-vs)
                    Typecode
                    [x] NoteSeeChoice of Data Typesfor further information about how to use [x]
                    Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
                    12. Extension.extension:conversionMark
                    Slice NameconversionMark
                    Definition

                    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.

                    ShortKý hiệu riêng xác nhận đã chuyển đổi (Điều 12 khoản 1 điểm c)
                    Control1..1
                    Must Supporttrue
                    14. Extension.extension:conversionMark.extension
                    Control0..0
                    16. Extension.extension:conversionMark.url
                    Fixed ValueconversionMark
                    18. Extension.extension:conversionMark.value[x]
                    Typestring
                    [x] NoteSeeChoice of Data Typesfor further information about how to use [x]
                    Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
                    20. Extension.extension:convertedBy
                    Slice NameconvertedBy
                    ShortCơ 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)
                    Control1..1
                    Must Supporttrue
                    22. Extension.extension:convertedBy.extension
                    Control0..0
                    24. Extension.extension:convertedBy.url
                    Fixed ValueconvertedBy
                    26. Extension.extension:convertedBy.value[x]
                    TypeReference(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)
                    [x] NoteSeeChoice of Data Typesfor further information about how to use [x]
                    28. Extension.extension:convertedAt
                    Slice NameconvertedAt
                    ShortThời điểm thực hiện chuyển đổi
                    Control0..1
                    Must Supporttrue
                    30. Extension.extension:convertedAt.extension
                    Control0..0
                    32. Extension.extension:convertedAt.url
                    Fixed ValueconvertedAt
                    34. Extension.extension:convertedAt.value[x]
                    TypedateTime
                    [x] NoteSeeChoice of Data Typesfor further information about how to use [x]
                    Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
                    36. Extension.extension:integrityMethod
                    Slice NameintegrityMethod
                    Definition

                    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.

                    ShortCá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)
                    Control1..1
                    Must Supporttrue
                    38. Extension.extension:integrityMethod.extension
                    Control0..0
                    40. Extension.extension:integrityMethod.url
                    Fixed ValueintegrityMethod
                    42. Extension.extension:integrityMethod.value[x]
                    TypeCodeableConcept
                    [x] NoteSeeChoice of Data Typesfor further information about how to use [x]
                    44. Extension.extension:sourceReference
                    Slice NamesourceReference
                    Definition

                    Đủ để 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.

                    ShortThông tin tra cứu bản gốc (Điều 12 khoản 1 điểm b, khoản 2 điểm b)
                    Control1..1
                    Must Supporttrue
                    46. Extension.extension:sourceReference.extension
                    Control0..0
                    48. Extension.extension:sourceReference.url
                    Fixed ValuesourceReference
                    50. Extension.extension:sourceReference.value[x]
                    Typestring
                    [x] NoteSeeChoice of Data Typesfor further information about how to use [x]
                    Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
                    52. Extension.extension:officialDocument
                    Slice NameofficialDocument
                    Definition

                    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.

                    ShortBả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
                    Control0..1
                    Must Supporttrue
                    54. Extension.extension:officialDocument.extension
                    Control0..0
                    56. Extension.extension:officialDocument.url
                    Fixed ValueofficialDocument
                    58. Extension.extension:officialDocument.value[x]
                    Typeboolean
                    [x] NoteSeeChoice of Data Typesfor further information about how to use [x]
                    Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
                    60. Extension.extension:signatureEvidence
                    Slice NamesignatureEvidence
                    Definition

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

                    ShortProvenance mang chữ ký số của bên thực hiện chuyển đổi (Điều 12 khoản 1 điểm d)
                    Control0..1
                    Must Supporttrue
                    62. Extension.extension:signatureEvidence.extension
                    Control0..0
                    64. Extension.extension:signatureEvidence.url
                    Fixed ValuesignatureEvidence
                    66. Extension.extension:signatureEvidence.value[x]
                    TypeReference(Provenance)
                    [x] NoteSeeChoice of Data Typesfor further information about how to use [x]
                    68. Extension.url
                    Fixed Valuehttp://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-paper-conversion
                    70. Extension.value[x]
                    Control0..0

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

                    0. Extension
                    Definition

                    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.

                    ShortBằng chứng chuyển đổi giấy ↔ điện tử — Paper/Electronic Conversion Evidence Extension
                    Control0..*
                    This element is affected by the following invariants: ele-1
                    Is Modifierfalse
                    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())
                    vn-paper-conversion-official-doc-signature: 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())
                    2. Extension.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
                    4. Extension.extension
                    Definition

                    An Extension

                    ShortExtension
                    Control5..*
                    TypeExtension
                    Is Modifierfalse
                    Summaryfalse
                    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 Extension.extension. The slices areUnordered and Open, and can be differentiated using the following discriminators:
                    • value @ url
                    • 6. Extension.extension:direction
                      Slice Namedirection
                      Definition

                      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.

                      ShortChiều chuyển đổi: giấy → điện tử hay điện tử → giấy
                      Control1..1
                      TypeExtension
                      Is Modifierfalse
                      Must Supporttrue
                      Summaryfalse
                      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())
                      8. Extension.extension:direction.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
                      10. Extension.extension:direction.extension
                      Definition

                      An Extension

                      ShortExtension
                      Control0..0
                      TypeExtension
                      Is Modifierfalse
                      Summaryfalse
                      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 Extension.extension.extension. The slices areUnordered and Open, and can be differentiated using the following discriminators:
                      • value @ url
                      • 12. Extension.extension:direction.url
                        Definition

                        Source of the definition for the extension code - a logical name or a URL.

                        Shortidentifies the meaning of the extension
                        Comments

                        The definition may point directly to a computable or human-readable definition of the extensibility codes, or it may be a logical URI as declared in some other specification. The definition SHALL be a URI for the Structure Definition defining the extension.

                        Control1..1
                        Typeuri
                        Is Modifierfalse
                        XML FormatIn the XML format, this property is represented as an attribute.
                        Summaryfalse
                        Fixed Valuedirection
                        14. Extension.extension:direction.value[x]
                        Definition

                        Value of extension - must be one of a constrained set of the data types (see Extensibility for a list).

                        ShortValue of extension
                        Control0..1
                        BindingThe codes SHALL be taken from Chiều chuyển đổi giấy ↔ điện tử — Paper/Electronic Conversion Direction ValueSet
                        (required to http://fhir.hl7.org.vn/core/ValueSet/vn-conversion-direction-vs)
                        Typecode
                        [x] NoteSeeChoice of Data Typesfor further information about how to use [x]
                        Is Modifierfalse
                        Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
                        Summaryfalse
                        Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
                        16. Extension.extension:conversionMark
                        Slice NameconversionMark
                        Definition

                        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.

                        ShortKý hiệu riêng xác nhận đã chuyển đổi (Điều 12 khoản 1 điểm c)
                        Control1..1
                        TypeExtension
                        Is Modifierfalse
                        Must Supporttrue
                        Summaryfalse
                        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())
                        18. Extension.extension:conversionMark.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
                        20. Extension.extension:conversionMark.extension
                        Definition

                        An Extension

                        ShortExtension
                        Control0..0
                        TypeExtension
                        Is Modifierfalse
                        Summaryfalse
                        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 Extension.extension.extension. The slices areUnordered and Open, and can be differentiated using the following discriminators:
                        • value @ url
                        • 22. Extension.extension:conversionMark.url
                          Definition

                          Source of the definition for the extension code - a logical name or a URL.

                          Shortidentifies the meaning of the extension
                          Comments

                          The definition may point directly to a computable or human-readable definition of the extensibility codes, or it may be a logical URI as declared in some other specification. The definition SHALL be a URI for the Structure Definition defining the extension.

                          Control1..1
                          Typeuri
                          Is Modifierfalse
                          XML FormatIn the XML format, this property is represented as an attribute.
                          Summaryfalse
                          Fixed ValueconversionMark
                          24. Extension.extension:conversionMark.value[x]
                          Definition

                          Value of extension - must be one of a constrained set of the data types (see Extensibility for a list).

                          ShortValue of extension
                          Control0..1
                          Typestring
                          [x] NoteSeeChoice of Data Typesfor further information about how to use [x]
                          Is Modifierfalse
                          Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
                          Summaryfalse
                          Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
                          26. Extension.extension:convertedBy
                          Slice NameconvertedBy
                          Definition

                          An Extension

                          ShortCơ 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)
                          Control1..1
                          TypeExtension
                          Is Modifierfalse
                          Must Supporttrue
                          Summaryfalse
                          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. Extension.extension:convertedBy.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
                          30. Extension.extension:convertedBy.extension
                          Definition

                          An Extension

                          ShortExtension
                          Control0..0
                          TypeExtension
                          Is Modifierfalse
                          Summaryfalse
                          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 Extension.extension.extension. The slices areUnordered and Open, and can be differentiated using the following discriminators:
                          • value @ url
                          • 32. Extension.extension:convertedBy.url
                            Definition

                            Source of the definition for the extension code - a logical name or a URL.

                            Shortidentifies the meaning of the extension
                            Comments

                            The definition may point directly to a computable or human-readable definition of the extensibility codes, or it may be a logical URI as declared in some other specification. The definition SHALL be a URI for the Structure Definition defining the extension.

                            Control1..1
                            Typeuri
                            Is Modifierfalse
                            XML FormatIn the XML format, this property is represented as an attribute.
                            Summaryfalse
                            Fixed ValueconvertedBy
                            34. Extension.extension:convertedBy.value[x]
                            Definition

                            Value of extension - must be one of a constrained set of the data types (see Extensibility for a list).

                            ShortValue of extension
                            Control0..1
                            TypeReference(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)
                            [x] NoteSeeChoice of Data Typesfor further information about how to use [x]
                            Is Modifierfalse
                            Summaryfalse
                            Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
                            36. Extension.extension:convertedAt
                            Slice NameconvertedAt
                            Definition

                            An Extension

                            ShortThời điểm thực hiện chuyển đổi
                            Control0..1
                            TypeExtension
                            Is Modifierfalse
                            Must Supporttrue
                            Summaryfalse
                            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())
                            38. Extension.extension:convertedAt.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
                            40. Extension.extension:convertedAt.extension
                            Definition

                            An Extension

                            ShortExtension
                            Control0..0
                            TypeExtension
                            Is Modifierfalse
                            Summaryfalse
                            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 Extension.extension.extension. The slices areUnordered and Open, and can be differentiated using the following discriminators:
                            • value @ url
                            • 42. Extension.extension:convertedAt.url
                              Definition

                              Source of the definition for the extension code - a logical name or a URL.

                              Shortidentifies the meaning of the extension
                              Comments

                              The definition may point directly to a computable or human-readable definition of the extensibility codes, or it may be a logical URI as declared in some other specification. The definition SHALL be a URI for the Structure Definition defining the extension.

                              Control1..1
                              Typeuri
                              Is Modifierfalse
                              XML FormatIn the XML format, this property is represented as an attribute.
                              Summaryfalse
                              Fixed ValueconvertedAt
                              44. Extension.extension:convertedAt.value[x]
                              Definition

                              Value of extension - must be one of a constrained set of the data types (see Extensibility for a list).

                              ShortValue of extension
                              Control0..1
                              TypedateTime
                              [x] NoteSeeChoice of Data Typesfor further information about how to use [x]
                              Is Modifierfalse
                              Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
                              Summaryfalse
                              Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
                              46. Extension.extension:integrityMethod
                              Slice NameintegrityMethod
                              Definition

                              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.

                              ShortCá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)
                              Control1..1
                              TypeExtension
                              Is Modifierfalse
                              Must Supporttrue
                              Summaryfalse
                              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())
                              48. Extension.extension:integrityMethod.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
                              50. Extension.extension:integrityMethod.extension
                              Definition

                              An Extension

                              ShortExtension
                              Control0..0
                              TypeExtension
                              Is Modifierfalse
                              Summaryfalse
                              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 Extension.extension.extension. The slices areUnordered and Open, and can be differentiated using the following discriminators:
                              • value @ url
                              • 52. Extension.extension:integrityMethod.url
                                Definition

                                Source of the definition for the extension code - a logical name or a URL.

                                Shortidentifies the meaning of the extension
                                Comments

                                The definition may point directly to a computable or human-readable definition of the extensibility codes, or it may be a logical URI as declared in some other specification. The definition SHALL be a URI for the Structure Definition defining the extension.

                                Control1..1
                                Typeuri
                                Is Modifierfalse
                                XML FormatIn the XML format, this property is represented as an attribute.
                                Summaryfalse
                                Fixed ValueintegrityMethod
                                54. Extension.extension:integrityMethod.value[x]
                                Definition

                                Value of extension - must be one of a constrained set of the data types (see Extensibility for a list).

                                ShortValue of extension
                                Control0..1
                                TypeCodeableConcept
                                [x] NoteSeeChoice of Data Typesfor further information about how to use [x]
                                Is Modifierfalse
                                Summaryfalse
                                Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
                                56. Extension.extension:sourceReference
                                Slice NamesourceReference
                                Definition

                                Đủ để 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.

                                ShortThông tin tra cứu bản gốc (Điều 12 khoản 1 điểm b, khoản 2 điểm b)
                                Control1..1
                                TypeExtension
                                Is Modifierfalse
                                Must Supporttrue
                                Summaryfalse
                                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())
                                58. Extension.extension:sourceReference.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
                                60. Extension.extension:sourceReference.extension
                                Definition

                                An Extension

                                ShortExtension
                                Control0..0
                                TypeExtension
                                Is Modifierfalse
                                Summaryfalse
                                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 Extension.extension.extension. The slices areUnordered and Open, and can be differentiated using the following discriminators:
                                • value @ url
                                • 62. Extension.extension:sourceReference.url
                                  Definition

                                  Source of the definition for the extension code - a logical name or a URL.

                                  Shortidentifies the meaning of the extension
                                  Comments

                                  The definition may point directly to a computable or human-readable definition of the extensibility codes, or it may be a logical URI as declared in some other specification. The definition SHALL be a URI for the Structure Definition defining the extension.

                                  Control1..1
                                  Typeuri
                                  Is Modifierfalse
                                  XML FormatIn the XML format, this property is represented as an attribute.
                                  Summaryfalse
                                  Fixed ValuesourceReference
                                  64. Extension.extension:sourceReference.value[x]
                                  Definition

                                  Value of extension - must be one of a constrained set of the data types (see Extensibility for a list).

                                  ShortValue of extension
                                  Control0..1
                                  Typestring
                                  [x] NoteSeeChoice of Data Typesfor further information about how to use [x]
                                  Is Modifierfalse
                                  Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
                                  Summaryfalse
                                  Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
                                  66. Extension.extension:officialDocument
                                  Slice NameofficialDocument
                                  Definition

                                  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.

                                  ShortBả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
                                  Control0..1
                                  TypeExtension
                                  Is Modifierfalse
                                  Must Supporttrue
                                  Summaryfalse
                                  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())
                                  68. Extension.extension:officialDocument.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
                                  70. Extension.extension:officialDocument.extension
                                  Definition

                                  An Extension

                                  ShortExtension
                                  Control0..0
                                  TypeExtension
                                  Is Modifierfalse
                                  Summaryfalse
                                  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 Extension.extension.extension. The slices areUnordered and Open, and can be differentiated using the following discriminators:
                                  • value @ url
                                  • 72. Extension.extension:officialDocument.url
                                    Definition

                                    Source of the definition for the extension code - a logical name or a URL.

                                    Shortidentifies the meaning of the extension
                                    Comments

                                    The definition may point directly to a computable or human-readable definition of the extensibility codes, or it may be a logical URI as declared in some other specification. The definition SHALL be a URI for the Structure Definition defining the extension.

                                    Control1..1
                                    Typeuri
                                    Is Modifierfalse
                                    XML FormatIn the XML format, this property is represented as an attribute.
                                    Summaryfalse
                                    Fixed ValueofficialDocument
                                    74. Extension.extension:officialDocument.value[x]
                                    Definition

                                    Value of extension - must be one of a constrained set of the data types (see Extensibility for a list).

                                    ShortValue of extension
                                    Control0..1
                                    Typeboolean
                                    [x] NoteSeeChoice of Data Typesfor further information about how to use [x]
                                    Is Modifierfalse
                                    Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
                                    Summaryfalse
                                    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
                                    76. Extension.extension:signatureEvidence
                                    Slice NamesignatureEvidence
                                    Definition

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

                                    ShortProvenance mang chữ ký số của bên thực hiện chuyển đổi (Điều 12 khoản 1 điểm d)
                                    Control0..1
                                    TypeExtension
                                    Is Modifierfalse
                                    Must Supporttrue
                                    Summaryfalse
                                    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())
                                    78. Extension.extension:signatureEvidence.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
                                    80. Extension.extension:signatureEvidence.extension
                                    Definition

                                    An Extension

                                    ShortExtension
                                    Control0..0
                                    TypeExtension
                                    Is Modifierfalse
                                    Summaryfalse
                                    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 Extension.extension.extension. The slices areUnordered and Open, and can be differentiated using the following discriminators:
                                    • value @ url
                                    • 82. Extension.extension:signatureEvidence.url
                                      Definition

                                      Source of the definition for the extension code - a logical name or a URL.

                                      Shortidentifies the meaning of the extension
                                      Comments

                                      The definition may point directly to a computable or human-readable definition of the extensibility codes, or it may be a logical URI as declared in some other specification. The definition SHALL be a URI for the Structure Definition defining the extension.

                                      Control1..1
                                      Typeuri
                                      Is Modifierfalse
                                      XML FormatIn the XML format, this property is represented as an attribute.
                                      Summaryfalse
                                      Fixed ValuesignatureEvidence
                                      84. Extension.extension:signatureEvidence.value[x]
                                      Definition

                                      Value of extension - must be one of a constrained set of the data types (see Extensibility for a list).

                                      ShortValue of extension
                                      Control0..1
                                      TypeReference(Provenance)
                                      [x] NoteSeeChoice of Data Typesfor further information about how to use [x]
                                      Is Modifierfalse
                                      Summaryfalse
                                      Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
                                      86. Extension.url
                                      Definition

                                      Source of the definition for the extension code - a logical name or a URL.

                                      Shortidentifies the meaning of the extension
                                      Comments

                                      The definition may point directly to a computable or human-readable definition of the extensibility codes, or it may be a logical URI as declared in some other specification. The definition SHALL be a URI for the Structure Definition defining the extension.

                                      Control1..1
                                      Typeuri
                                      Is Modifierfalse
                                      XML FormatIn the XML format, this property is represented as an attribute.
                                      Summaryfalse
                                      Fixed Valuehttp://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-paper-conversion
                                      88. Extension.value[x]
                                      Definition

                                      Value of extension - must be one of a constrained set of the data types (see Extensibility for a list).

                                      ShortValue of extension
                                      Control0..0
                                      TypeChoice of: base64Binary, boolean, canonical, code, date, dateTime, decimal, id, instant, integer, markdown, oid, positiveInt, string, time, unsignedInt, uri, url, uuid, Address, Age, Annotation, Attachment, CodeableConcept, Coding, ContactPoint, Count, Distance, Duration, HumanName, Identifier, Money, Period, Quantity, Range, Ratio, Reference, SampledData, Signature, Timing, ContactDetail, Contributor, DataRequirement, Expression, ParameterDefinition, RelatedArtifact, TriggerDefinition, UsageContext, Dosage, Meta
                                      Is Modifierfalse
                                      Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
                                      Summaryfalse
                                      Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))