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

Hồ sơ tài nguyên: Người liên quan/người giám hộ VN Core — VN Core RelatedPerson Profile - Mô tả chi tiết

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

Các định nghĩa cho vn-core-relatedperson hồ sơ tài nguyên

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

0. RelatedPerson
Definition

Information about a person that is involved in the care for a patient, but who is not the target of healthcare, nor has a formal responsibility in the care process.

ShortA person that is related to a patient, but who is not a direct target of care
Control0..*
Is Modifierfalse
Summaryfalse
Invariantsdom-2: If the resource is contained in another resource, it SHALL NOT contain nested Resources (contained.contained.empty())
dom-3: If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource (contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty())
dom-4: If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated (contained.meta.versionId.empty() and contained.meta.lastUpdated.empty())
dom-5: If a resource is contained in another resource, it SHALL NOT have a security label (contained.meta.security.empty())
dom-6: A resource should have narrative for robust management (text.`div`.exists())
2. RelatedPerson.implicitRules
Definition

A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.

ShortA set of rules under which this content was created
Comments

Asserting this rule set restricts the content to be only understood by a limited set of trading partners. This inherently limits the usefulness of the data in the long term. However, the existing health eco-system is highly fractured, and not yet ready to define, collect, and exchange data in a generally computable sense. Wherever possible, implementers and/or specification writers should avoid using this element. Often, when used, the URL is a reference to an implementation guide that defines these special rules as part of it's narrative along with other profiles, value sets, etc.

Control0..1
Typeuri
Is Modifiertrue because This element is labeled as a modifier because the implicit rules may provide additional knowledge about the resource that modifies it's meaning or interpretation
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
Summarytrue
Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
4. RelatedPerson.extension
Definition

An Extension


May be used to represent additional information that is not part of the basic definition of the resource. 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..*
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 RelatedPerson.extension. The slices areUnordered and Open, and can be differentiated using the following discriminators:
  • value @ url
  • 6. RelatedPerson.extension:representationAuthority
    Slice NamerepresentationAuthority
    Definition

    Extension ghi nhận THẨM QUYỀN PHÁP LÝ để một người đại diện/giám hộ/được uỷ quyền hành động thay người khác. Mô hình hoá 'token đại diện' phục vụ Policy Decision Point (PDP): miền thẩm quyền, loại thẩm quyền, nguồn xác minh, bằng chứng, thời điểm xác minh, thời hạn. PDP deny-by-default khi quan hệ mâu thuẫn/hết hạn.

    THAY ĐỔI 0.10.0 đợt 2 (breaking — kiểm toán 06-07/08/2026, analysis/90 §6.2): tách HAI MIỀN thẩm quyền bằng domain 1..1, vì hai loại quyền không đồng nhất và không suy ra nhau: (1) healthcare-decision — quyết định thay về khám chữa bệnh (Luật KCB 15/2023/QH15 Điều 8); (2) data-subject-rights — thực hiện quyền chủ thể dữ liệu thay chủ thể: đồng ý, truy cập, chỉnh sửa, xoá dữ liệu (Luật 91/2025/QH15 Điều 24; Bộ luật Dân sự Điều 134-143) — vd cha/mẹ xem Sổ SKĐT của con qua VNeID. Một người giữ cả hai quyền = HAI instance extension, mỗi instance một miền với căn cứ, bằng chứng, thời hạn riêng. selectionBasis hạ 1..1 → 0..1: nó là khung của Luật KCB Điều 8 khoản 2 nên bắt buộc trong miền healthcare-decision và phải vắng trong miền data-subject-rights (invariant vn-representation-domain-basis). Thêm evidence 0..* — bằng chứng lặp được mang issuer/document/scope/purpose/validity; quan hệ gia đình hoặc bản ghi quan hệ dân cư KHÔNG tự chứng minh thẩm quyền (uỷ quyền bắt buộc có evidence — invariant vn-representation-proxy-evidence).

    THAY ĐỔI 0.10.0 đợt 1 (breaking): thêm selectionBasis — một trong năm nhóm căn cứ lựa chọn tại Luật KCB 15/2023/QH15 Điều 8 khoản 2 điểm a-đ; thêm legalProvision 1..* để ghi văn bản và điều/khoản cụ thể, cho phép lặp vì một thẩm quyền thường dựa trên nhiều quy định đồng thời; nâng verifiedDate từ 0..1 lên 1..1. Kèm invariant vn-representation-type-selection-basis ràng loại thẩm quyền với nhóm căn cứ. Quy tắc một người bệnh chỉ có một người đại diện tại một thời điểm (Điều 8 khoản 1) CỐ Ý không invariant-hoá: nó cần truy vấn toàn bộ authority đang hiệu lực của cùng người bệnh, việc một instance đơn lẻ không thấy được — thuộc tầng PDP/service.

    THAY ĐỔI 0.8.0 (breaking — hậu kiểm toán Codex): sub-extension restrictedSensitivity đã XOÁ — ngữ nghĩa hạn chế truy cập là QUYẾT ĐỊNH CHÍNH SÁCH, không phải thuộc tính token: biểu diễn bằng VNCoreConsent.provision (type=deny + securityLabel theo vn-data-sensitivity-class-vs + actor[representative] gắn chính extension này để link token↔consent — PDP resolve một chiều qua Consent). Căn cứ: Bộ luật Dân sự 2015 (đại diện/giám hộ/uỷ quyền); Luật Căn cước 2023 (quan hệ nhân thân CSDLQGDC); Luật 91/2025/QH15 Điều 24 (đại diện theo pháp luật) + Luật Trẻ em 2016 (dữ liệu trẻ em, lớp nhạy cảm).

    ShortThẩm quyền đại diện/giám hộ/uỷ quyền truy cập dữ liệu (type/source/period/restriction)
    Control0..*
    This element is affected by the following invariants: ele-1
    TypeExtension(Thẩm quyền đại diện truy cập dữ liệu — Representation Authority Extension) (Complex Extension)
    Is Modifierfalse
    Must Supporttrue
    Obligations
      ObligationsActor
      SHALL:populate-if-knownNguồn tạo hồ sơ lâm sàng (Document Source)
      SHALL:no-error & SHALL:persistKho hồ sơ EMR (Repository)
      SHALL:no-error & SHALL:handleỨng dụng người dân (Citizen App)
      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-representation-domain-basis: Miền quyết định khám chữa bệnh bắt buộc có căn cứ lựa chọn theo Luật KCB Điều 8 khoản 2; miền quyền chủ thể dữ liệu không dùng trục căn cứ đó. The healthcare-decision domain SHALL carry a selectionBasis; the data-subject-rights domain SHALL NOT. ((extension.where(url='domain').value.ofType(Coding).code = 'healthcare-decision' implies extension.where(url='selectionBasis').exists()) and (extension.where(url='domain').value.ofType(Coding).code = 'data-subject-rights' implies extension.where(url='selectionBasis').empty()))
      vn-representation-type-selection-basis: Loại thẩm quyền phải tương thích với nhóm căn cứ lựa chọn tại Luật KCB Điều 8 khoản 2. The authority type SHALL be consistent with the statutory selection basis. (extension.where(url='selectionBasis').empty() or ((extension.where(url='selectionBasis').value.ofType(Coding).code = 'civil-code-representative') and (extension.where(url='type').value.ofType(Coding).code = 'legal-representative' or extension.where(url='type').value.ofType(Coding).code = 'guardian' or extension.where(url='type').value.ofType(Coding).code = 'delegated-proxy')) or ((extension.where(url='selectionBasis').value.ofType(Coding).code = 'responsible-legal-entity-appointed') and (extension.where(url='type').value.ofType(Coding).code = 'legal-representative' or extension.where(url='type').value.ofType(Coding).code = 'healthcare-agent')) or ((extension.where(url='selectionBasis').value.ofType(Coding).code = 'adult-patient-selected' or extension.where(url='selectionBasis').value.ofType(Coding).code = 'family-selected' or extension.where(url='selectionBasis').value.ofType(Coding).code = 'voluntary-obligation-performer') and extension.where(url='type').value.ofType(Coding).code = 'healthcare-agent'))
      vn-representation-proxy-evidence: Thẩm quyền theo uỷ quyền phải kèm ít nhất một bằng chứng (văn bản uỷ quyền). A delegated-proxy authority SHALL carry at least one evidence entry. (extension.where(url='type').value.ofType(Coding).code = 'delegated-proxy' implies extension.where(url='evidence').exists())
      vn-representation-proxy-bounded: Thẩm quyền theo uỷ quyền phải có GIỚI HẠN máy-đọc: NGÀY KẾT THÚC (period.end của token hoặc validity.end trong bằng chứng — chỉ có ngày bắt đầu là uỷ quyền vô thời hạn) VÀ phạm vi (scope trong ít nhất một bằng chứng) — Bộ luật Dân sự Điều 138/140/141. A delegated-proxy authority SHALL carry a machine-readable validity bound AND scope. (extension.where(url='type').value.ofType(Coding).code != 'delegated-proxy' or ((extension.where(url='period').value.ofType(Period).end.exists() or extension.where(url='evidence').extension.where(url='validity').value.ofType(Period).end.exists()) and extension.where(url='evidence').extension.where(url='scope').exists()))
      8. RelatedPerson.extension:ethnicity
      Slice Nameethnicity
      Definition

      Dân tộc theo danh mục 54 dân tộc Việt Nam (QĐ 121-TCTK/PPCĐ). Bắt buộc với bốn bên của giấy chứng sinh mang thai hộ theo QĐ 2919/QĐ-BYT Phụ lục II (STT 6, 12, 17, 23).

      ShortDân tộc
      Control0..1
      This element is affected by the following invariants: ele-1
      TypeExtension(Dân tộc — Vietnam Ethnicity Extension) (Extension Type: CodeableConcept)
      Is Modifierfalse
      Must Supporttrue
      Obligations
        ObligationsActor
        SHALL:populate-if-knownNguồn tạo hồ sơ lâm sàng (Document Source)
        SHALL:no-error & SHALL:persistKho hồ sơ EMR (Repository)
        SHALL:no-error & SHALL:handleỨng dụng người dân (Citizen App)
        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())
        ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
        10. RelatedPerson.modifierExtension
        Definition

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

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

        ShortExtensions that cannot be ignored
        Comments

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

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

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

        Alternate Namesextensions, user content
        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())
        12. RelatedPerson.identifier
        Definition

        Identifier for a person within a particular scope.

        ShortĐịnh danh người liên quanA human identifier for this person
        NoteThis is a business identifier, not a resource identifier (see discussion)
        Control0..*
        TypeIdentifier
        Is Modifierfalse
        Must Supporttrue
        Obligations
          ObligationsActor
          SHALL:populate-if-knownNguồn tạo hồ sơ lâm sàng (Document Source)
          SHALL:no-error & SHALL:persistKho hồ sơ EMR (Repository)
          SHALL:no-error & SHALL:handleỨng dụng người dân (Citizen App)
          Summarytrue
          Requirements

          People are known by a variety of ids. Some institutions maintain several, and most collect identifiers for exchange with other organizations concerning the patient. Examples are national person identifier and local identifier.

          Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
          SlicingThis element introduces a set of slices on RelatedPerson.identifier. The slices areUnordered and Open, and can be differentiated using the following discriminators:
          • pattern @ type
          • 14. RelatedPerson.identifier:CCCD
            Slice NameCCCD
            Definition

            Identifier for a person within a particular scope.

            ShortA human identifier for this person
            NoteThis is a business identifier, not a resource identifier (see discussion)
            Control0..1*
            TypeIdentifier
            Is Modifierfalse
            Must Supporttrue
            Obligations
              ObligationsActor
              SHALL:populate-if-knownNguồn tạo hồ sơ lâm sàng (Document Source)
              SHALL:no-error & SHALL:persistKho hồ sơ EMR (Repository)
              SHALL:no-error & SHALL:handleỨng dụng người dân (Citizen App)
              Summarytrue
              Requirements

              People are known by a variety of ids. Some institutions maintain several, and most collect identifiers for exchange with other organizations concerning the patient. Examples are national person identifier and local identifier.

              Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
              vn-cccd-format: Số định danh cá nhân/CCCD, khi có giá trị, phải đúng 12 chữ số (Luật Căn cước 2023, Điều 12) (value.empty() or value.extension.where(url='http://hl7.org/fhir/StructureDefinition/data-absent-reason').exists() or value.matches('^[0-9]{12}$'))
              16. RelatedPerson.identifier:CCCD.use
              Definition

              The purpose of this identifier.

              Shortusual | official | temp | secondary | old (If known)
              Comments

              Applications can assume that an identifier is permanent unless it explicitly says that it is temporary.

              Control0..1
              BindingThe codes SHALL be taken from IdentifierUsehttp://hl7.org/fhir/ValueSet/identifier-use|4.0.1
              (required to http://hl7.org/fhir/ValueSet/identifier-use|4.0.1)

              Identifies the purpose for this identifier, if known .

              Typecode
              Is Modifiertrue because This is labeled as "Is Modifier" because applications should not mistake a temporary id for a permanent one.
              Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
              Summarytrue
              Requirements

              Allows the appropriate identifier for a particular context of use to be selected from among a set of identifiers.

              Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
              18. RelatedPerson.identifier:CCCD.type
              Definition

              A coded type for the identifier that can be used to determine which identifier to use for a specific purpose.

              ShortDescription of identifier
              Comments

              This element deals only with general categories of identifiers. It SHOULD not be used for codes that correspond 1..1 with the Identifier.system. Some identifiers may fall into multiple categories due to common usage. Where the system is known, a type is unnecessary because the type is always part of the system definition. However systems often need to handle identifiers where the system is not known. There is not a 1:1 relationship between type and system, since many different systems have the same type.

              Control10..1
              BindingUnless not suitable, these codes SHALL be taken from Identifier Type Codeshttp://hl7.org/fhir/ValueSet/identifier-type|4.0.1
              (extensible to http://hl7.org/fhir/ValueSet/identifier-type|4.0.1)

              A coded type for an identifier that can be used to determine which identifier to use for a specific purpose.

              TypeCodeableConcept
              Is Modifierfalse
              Summarytrue
              Requirements

              Allows users to make use of identifiers when the identifier system is not known.

              Pattern Value{
                "coding" : [{
                  "system" : "http://fhir.hl7.org.vn/core/CodeSystem/vn-identifier-type-cs",
                  "code" : "CCCD"
                }]
              }
              Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
              20. RelatedPerson.identifier:CCCD.system
              Definition

              Establishes the namespace for the value - that is, a URL that describes a set values that are unique.

              ShortThe namespace for the identifier value
              Comments

              Identifier.system is always case sensitive.

              Control10..1
              Typeuri
              Is Modifierfalse
              Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
              Summarytrue
              Requirements

              There are many sets of identifiers. To perform matching of two identifiers, we need to know what set we're dealing with. The system identifies a particular set of unique identifiers.

              Fixed Valuehttp://fhir.hl7.org.vn/core/sid/cccd
              ExampleGeneral: http://www.acme.com/identifiers/patient
              Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
              22. RelatedPerson.identifier:CCCD.value
              Definition

              The portion of the identifier typically relevant to the user and which is unique within the context of the system.

              ShortThe value that is unique
              Comments

              If the value is a full URI, then the system SHALL be urn:ietf:rfc:3986. The value's primary purpose is computational mapping. As a result, it may be normalized for comparison purposes (e.g. removing non-significant whitespace, dashes, etc.) A value formatted for human display can be conveyed using the Rendered Value extension. Identifier.value is to be treated as case sensitive unless knowledge of the Identifier.system allows the processer to be confident that non-case-sensitive processing is safe.

              Control10..1
              Typestring
              Is Modifierfalse
              Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
              Must Supporttrue
              Summarytrue
              ExampleGeneral: 123456
              Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
              24. RelatedPerson.identifier:HC
              Slice NameHC
              Definition

              Identifier for a person within a particular scope.

              ShortA human identifier for this person
              NoteThis is a business identifier, not a resource identifier (see discussion)
              Control0..1*
              TypeIdentifier
              Is Modifierfalse
              Must Supporttrue
              Obligations
                ObligationsActor
                SHALL:populate-if-knownNguồn tạo hồ sơ lâm sàng (Document Source)
                SHALL:no-error & SHALL:persistKho hồ sơ EMR (Repository)
                SHALL:no-error & SHALL:handleỨng dụng người dân (Citizen App)
                Summarytrue
                Requirements

                People are known by a variety of ids. Some institutions maintain several, and most collect identifiers for exchange with other organizations concerning the patient. Examples are national person identifier and local identifier.

                Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
                26. RelatedPerson.identifier:HC.use
                Definition

                The purpose of this identifier.

                Shortusual | official | temp | secondary | old (If known)
                Comments

                Applications can assume that an identifier is permanent unless it explicitly says that it is temporary.

                Control0..1
                BindingThe codes SHALL be taken from IdentifierUsehttp://hl7.org/fhir/ValueSet/identifier-use|4.0.1
                (required to http://hl7.org/fhir/ValueSet/identifier-use|4.0.1)

                Identifies the purpose for this identifier, if known .

                Typecode
                Is Modifiertrue because This is labeled as "Is Modifier" because applications should not mistake a temporary id for a permanent one.
                Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
                Summarytrue
                Requirements

                Allows the appropriate identifier for a particular context of use to be selected from among a set of identifiers.

                Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
                28. RelatedPerson.identifier:HC.type
                Definition

                A coded type for the identifier that can be used to determine which identifier to use for a specific purpose.

                ShortDescription of identifier
                Comments

                This element deals only with general categories of identifiers. It SHOULD not be used for codes that correspond 1..1 with the Identifier.system. Some identifiers may fall into multiple categories due to common usage. Where the system is known, a type is unnecessary because the type is always part of the system definition. However systems often need to handle identifiers where the system is not known. There is not a 1:1 relationship between type and system, since many different systems have the same type.

                Control10..1
                BindingUnless not suitable, these codes SHALL be taken from Identifier Type Codeshttp://hl7.org/fhir/ValueSet/identifier-type|4.0.1
                (extensible to http://hl7.org/fhir/ValueSet/identifier-type|4.0.1)

                A coded type for an identifier that can be used to determine which identifier to use for a specific purpose.

                TypeCodeableConcept
                Is Modifierfalse
                Summarytrue
                Requirements

                Allows users to make use of identifiers when the identifier system is not known.

                Pattern Value{
                  "coding" : [{
                    "system" : "http://fhir.hl7.org.vn/core/CodeSystem/vn-identifier-type-cs",
                    "code" : "HC"
                  }]
                }
                Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
                30. RelatedPerson.identifier:HC.system
                Definition

                Hộ chiếu Việt Nam dùng http://fhir.hl7.org.vn/core/sid/passport. Hộ chiếu nước ngoài dùng URI namespace của quốc gia cấp (HL7 THO đã công bố dạng http://hl7.org/fhir/sid/passport-XXX, vd passport-JPN); nếu quốc gia chưa có URI công bố thì assigner là BẮT BUỘC nghiệp vụ để ghi rõ cơ quan/quốc gia cấp. KHÔNG ép hộ chiếu nước ngoài vào namespace VN — số hộ chiếu chỉ duy nhất trong phạm vi nước cấp (P0-03, analysis/94-codex-review).


                Establishes the namespace for the value - that is, a URL that describes a set values that are unique.

                ShortThe namespace for the identifier value
                Comments

                Identifier.system is always case sensitive.

                Control10..1
                Typeuri
                Is Modifierfalse
                Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
                Summarytrue
                Requirements

                There are many sets of identifiers. To perform matching of two identifiers, we need to know what set we're dealing with. The system identifies a particular set of unique identifiers.

                ExampleGeneral: http://www.acme.com/identifiers/patient
                Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
                32. RelatedPerson.identifier:HC.value
                Definition

                The portion of the identifier typically relevant to the user and which is unique within the context of the system.

                ShortThe value that is unique
                Comments

                If the value is a full URI, then the system SHALL be urn:ietf:rfc:3986. The value's primary purpose is computational mapping. As a result, it may be normalized for comparison purposes (e.g. removing non-significant whitespace, dashes, etc.) A value formatted for human display can be conveyed using the Rendered Value extension. Identifier.value is to be treated as case sensitive unless knowledge of the Identifier.system allows the processer to be confident that non-case-sensitive processing is safe.

                Control10..1
                Typestring
                Is Modifierfalse
                Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
                Summarytrue
                ExampleGeneral: 123456
                Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
                34. RelatedPerson.active
                Definition

                Whether this related person record is in active use.

                ShortBản ghi đang hoạt độngWhether this related person's record is in active use
                Comments

                This element is labeled as a modifier because it may be used to mark that the resource was created in error.

                Control10..1
                Typeboolean
                Is Modifiertrue because This element is labelled as a modifier because it is a status element that can indicate that a record should not be treated as valid
                Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
                Must Supporttrue
                Obligations
                  ObligationsActor
                  SHALL:populate-if-knownNguồn tạo hồ sơ lâm sàng (Document Source)
                  SHALL:no-error & SHALL:persistKho hồ sơ EMR (Repository)
                  SHALL:no-error & SHALL:handleỨng dụng người dân (Citizen App)
                  Summarytrue
                  Requirements

                  Need to be able to mark a related person record as not to be used, such as if it was created in error.

                  Meaning if MissingThis resource is generally assumed to be active if no value is provided for the active element
                  Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
                  36. RelatedPerson.patient
                  Definition

                  The patient this person is related to.

                  ShortBệnh nhân liên quanThe patient this person is related to
                  Control1..1
                  TypeReference(Bệnh nhân VN Core — VN Core Patient Profile, Patient)
                  Is Modifierfalse
                  Must Supporttrue
                  Obligations
                    ObligationsActor
                    SHALL:populate-if-knownNguồn tạo hồ sơ lâm sàng (Document Source)
                    SHALL:no-error & SHALL:persistKho hồ sơ EMR (Repository)
                    SHALL:no-error & SHALL:handleỨng dụng người dân (Citizen App)
                    Summarytrue
                    Requirements

                    We need to know which patient this RelatedPerson is related to.

                    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
                    38. RelatedPerson.relationship
                    Definition

                    Quan hệ huyết thống/gia đình (mẹ, cha, con...) dùng relatedperson-relationshiptype. LƯU Ý: thẩm quyền pháp lý để truy cập thay (đại diện theo pháp luật / giám hộ / uỷ quyền) ghi ở extension[representationAuthority] — cha/mẹ có relationship=mother/father nhưng thẩm quyền = legal-representative.


                    The nature of the relationship between a patient and the related person.

                    ShortQuan hệ GIA ĐÌNH với bệnh nhân (mother/father...) — KHÁC trục thẩm quyền pháp lý ở extension[representationAuthority]The nature of the relationship
                    Control10..*
                    BindingUnless not suitable, these codes SHALL be taken from The codes SHOULD be taken from PatientRelationshipTypehttp://hl7.org/fhir/ValueSet/relatedperson-relationshiptype|4.0.1
                    (extensible to http://hl7.org/fhir/ValueSet/relatedperson-relationshiptype)
                    TypeCodeableConcept
                    Is Modifierfalse
                    Must Supporttrue
                    Obligations
                      ObligationsActor
                      SHALL:populate-if-knownNguồn tạo hồ sơ lâm sàng (Document Source)
                      SHALL:no-error & SHALL:persistKho hồ sơ EMR (Repository)
                      SHALL:no-error & SHALL:handleỨng dụng người dân (Citizen App)
                      Summarytrue
                      Requirements

                      We need to know the relationship with the patient since it influences the interpretation of the information attributed to this person.

                      Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
                      40. RelatedPerson.name
                      Definition

                      A name associated with the person.

                      ShortHọ tên người liên quanA name associated with the person
                      Control0..*
                      TypeHumanName
                      Is Modifierfalse
                      Must Supporttrue
                      Obligations
                        ObligationsActor
                        SHALL:populate-if-knownNguồn tạo hồ sơ lâm sàng (Document Source)
                        SHALL:no-error & SHALL:persistKho hồ sơ EMR (Repository)
                        SHALL:no-error & SHALL:handleỨng dụng người dân (Citizen App)
                        Summarytrue
                        Requirements

                        Related persons need to be identified by name, but it is uncommon to need details about multiple other names for that person.

                        Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
                        42. RelatedPerson.telecom
                        Definition

                        A contact detail for the person, e.g. a telephone number or an email address.

                        ShortThông tin liên lạcA contact detail for the person
                        Comments

                        Person may have multiple ways to be contacted with different uses or applicable periods. May need to have options for contacting the person urgently, and also to help with identification.

                        Control0..*
                        TypeContactPoint
                        Is Modifierfalse
                        Must Supporttrue
                        Obligations
                          ObligationsActor
                          SHALL:populate-if-knownNguồn tạo hồ sơ lâm sàng (Document Source)
                          SHALL:no-error & SHALL:persistKho hồ sơ EMR (Repository)
                          SHALL:no-error & SHALL:handleỨng dụng người dân (Citizen App)
                          Summarytrue
                          Requirements

                          People have (primary) ways to contact them in some way such as phone, email.

                          Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
                          44. RelatedPerson.address
                          Definition

                          Address where the related person can be contacted or visited.

                          ShortĐịa chỉAddress where the related person can be contacted or visited
                          Control0..*
                          TypeAddress(Địa chỉ VN Core — VN Core Address Profile)
                          Is Modifierfalse
                          Must Supporttrue
                          Obligations
                            ObligationsActor
                            SHALL:populate-if-knownNguồn tạo hồ sơ lâm sàng (Document Source)
                            SHALL:no-error & SHALL:persistKho hồ sơ EMR (Repository)
                            SHALL:no-error & SHALL:handleỨng dụng người dân (Citizen App)
                            Summarytrue
                            Requirements

                            Need to keep track where the related person can be contacted per postal mail or visited.

                            Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
                            46. RelatedPerson.period
                            Definition

                            The period of time during which this relationship is or was active. If there are no dates defined, then the interval is unknown.

                            ShortThời gian quan hệ có hiệu lựcPeriod of time that this relationship is considered valid
                            Control0..1
                            TypePeriod
                            Is Modifierfalse
                            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. RelatedPerson
                            2. RelatedPerson.extension
                            SlicingThis element introduces a set of slices on RelatedPerson.extension. The slices areUnordered and Open, and can be differentiated using the following discriminators:
                            • value @ url
                            • 4. RelatedPerson.extension:representationAuthority
                              Slice NamerepresentationAuthority
                              ShortThẩm quyền đại diện/giám hộ/uỷ quyền truy cập dữ liệu (type/source/period/restriction)
                              Control0..*
                              TypeExtension(Thẩm quyền đại diện truy cập dữ liệu — Representation Authority Extension) (Complex Extension)
                              Must Supporttrue
                              Obligations
                                ObligationsActor
                                SHALL:populate-if-knownNguồn tạo hồ sơ lâm sàng (Document Source)
                                SHALL:no-error & SHALL:persistKho hồ sơ EMR (Repository)
                                SHALL:no-error & SHALL:handleỨng dụng người dân (Citizen App)
                                6. RelatedPerson.extension:ethnicity
                                Slice Nameethnicity
                                Definition

                                Dân tộc theo danh mục 54 dân tộc Việt Nam (QĐ 121-TCTK/PPCĐ). Bắt buộc với bốn bên của giấy chứng sinh mang thai hộ theo QĐ 2919/QĐ-BYT Phụ lục II (STT 6, 12, 17, 23).

                                ShortDân tộc
                                Control0..1
                                TypeExtension(Dân tộc — Vietnam Ethnicity Extension) (Extension Type: CodeableConcept)
                                Must Supporttrue
                                Obligations
                                  ObligationsActor
                                  SHALL:populate-if-knownNguồn tạo hồ sơ lâm sàng (Document Source)
                                  SHALL:no-error & SHALL:persistKho hồ sơ EMR (Repository)
                                  SHALL:no-error & SHALL:handleỨng dụng người dân (Citizen App)
                                  8. RelatedPerson.identifier
                                  ShortĐịnh danh người liên quan
                                  NoteThis is a business identifier, not a resource identifier (see discussion)
                                  Must Supporttrue
                                  Obligations
                                    ObligationsActor
                                    SHALL:populate-if-knownNguồn tạo hồ sơ lâm sàng (Document Source)
                                    SHALL:no-error & SHALL:persistKho hồ sơ EMR (Repository)
                                    SHALL:no-error & SHALL:handleỨng dụng người dân (Citizen App)
                                    SlicingThis element introduces a set of slices on RelatedPerson.identifier. The slices areUnordered and Open, and can be differentiated using the following discriminators:
                                    • pattern @ type
                                    • 10. RelatedPerson.identifier:CCCD
                                      Slice NameCCCD
                                      NoteThis is a business identifier, not a resource identifier (see discussion)
                                      Control0..1
                                      Must Supporttrue
                                      Obligations
                                        ObligationsActor
                                        SHALL:populate-if-knownNguồn tạo hồ sơ lâm sàng (Document Source)
                                        SHALL:no-error & SHALL:persistKho hồ sơ EMR (Repository)
                                        SHALL:no-error & SHALL:handleỨng dụng người dân (Citizen App)
                                        Invariantsvn-cccd-format: Số định danh cá nhân/CCCD, khi có giá trị, phải đúng 12 chữ số (Luật Căn cước 2023, Điều 12) (value.empty() or value.extension.where(url='http://hl7.org/fhir/StructureDefinition/data-absent-reason').exists() or value.matches('^[0-9]{12}$'))
                                        12. RelatedPerson.identifier:CCCD.type
                                        Control1..?
                                        Pattern Value{
                                          "coding" : [{
                                            "system" : "http://fhir.hl7.org.vn/core/CodeSystem/vn-identifier-type-cs",
                                            "code" : "CCCD"
                                          }]
                                        }
                                        14. RelatedPerson.identifier:CCCD.system
                                        Control1..?
                                        Fixed Valuehttp://fhir.hl7.org.vn/core/sid/cccd
                                        16. RelatedPerson.identifier:CCCD.value
                                        Control1..?
                                        Must Supporttrue
                                        18. RelatedPerson.identifier:HC
                                        Slice NameHC
                                        NoteThis is a business identifier, not a resource identifier (see discussion)
                                        Control0..1
                                        Must Supporttrue
                                        Obligations
                                          ObligationsActor
                                          SHALL:populate-if-knownNguồn tạo hồ sơ lâm sàng (Document Source)
                                          SHALL:no-error & SHALL:persistKho hồ sơ EMR (Repository)
                                          SHALL:no-error & SHALL:handleỨng dụng người dân (Citizen App)
                                          20. RelatedPerson.identifier:HC.type
                                          Control1..?
                                          Pattern Value{
                                            "coding" : [{
                                              "system" : "http://fhir.hl7.org.vn/core/CodeSystem/vn-identifier-type-cs",
                                              "code" : "HC"
                                            }]
                                          }
                                          22. RelatedPerson.identifier:HC.system
                                          Definition

                                          Hộ chiếu Việt Nam dùng http://fhir.hl7.org.vn/core/sid/passport. Hộ chiếu nước ngoài dùng URI namespace của quốc gia cấp (HL7 THO đã công bố dạng http://hl7.org/fhir/sid/passport-XXX, vd passport-JPN); nếu quốc gia chưa có URI công bố thì assigner là BẮT BUỘC nghiệp vụ để ghi rõ cơ quan/quốc gia cấp. KHÔNG ép hộ chiếu nước ngoài vào namespace VN — số hộ chiếu chỉ duy nhất trong phạm vi nước cấp (P0-03, analysis/94-codex-review).

                                          Control1..?
                                          24. RelatedPerson.identifier:HC.value
                                          Control1..?
                                          26. RelatedPerson.active
                                          ShortBản ghi đang hoạt động
                                          Control1..?
                                          Must Supporttrue
                                          Obligations
                                            ObligationsActor
                                            SHALL:populate-if-knownNguồn tạo hồ sơ lâm sàng (Document Source)
                                            SHALL:no-error & SHALL:persistKho hồ sơ EMR (Repository)
                                            SHALL:no-error & SHALL:handleỨng dụng người dân (Citizen App)
                                            28. RelatedPerson.patient
                                            ShortBệnh nhân liên quan
                                            TypeReference(Bệnh nhân VN Core — VN Core Patient Profile)
                                            Must Supporttrue
                                            Obligations
                                              ObligationsActor
                                              SHALL:populate-if-knownNguồn tạo hồ sơ lâm sàng (Document Source)
                                              SHALL:no-error & SHALL:persistKho hồ sơ EMR (Repository)
                                              SHALL:no-error & SHALL:handleỨng dụng người dân (Citizen App)
                                              30. RelatedPerson.relationship
                                              Definition

                                              Quan hệ huyết thống/gia đình (mẹ, cha, con...) dùng relatedperson-relationshiptype. LƯU Ý: thẩm quyền pháp lý để truy cập thay (đại diện theo pháp luật / giám hộ / uỷ quyền) ghi ở extension[representationAuthority] — cha/mẹ có relationship=mother/father nhưng thẩm quyền = legal-representative.

                                              ShortQuan hệ GIA ĐÌNH với bệnh nhân (mother/father...) — KHÁC trục thẩm quyền pháp lý ở extension[representationAuthority]
                                              Control1..?
                                              BindingUnless not suitable, these codes SHALL be taken from PatientRelationshipType
                                              (extensible to http://hl7.org/fhir/ValueSet/relatedperson-relationshiptype)
                                              Must Supporttrue
                                              Obligations
                                                ObligationsActor
                                                SHALL:populate-if-knownNguồn tạo hồ sơ lâm sàng (Document Source)
                                                SHALL:no-error & SHALL:persistKho hồ sơ EMR (Repository)
                                                SHALL:no-error & SHALL:handleỨng dụng người dân (Citizen App)
                                                32. RelatedPerson.name
                                                ShortHọ tên người liên quan
                                                Must Supporttrue
                                                Obligations
                                                  ObligationsActor
                                                  SHALL:populate-if-knownNguồn tạo hồ sơ lâm sàng (Document Source)
                                                  SHALL:no-error & SHALL:persistKho hồ sơ EMR (Repository)
                                                  SHALL:no-error & SHALL:handleỨng dụng người dân (Citizen App)
                                                  34. RelatedPerson.telecom
                                                  ShortThông tin liên lạc
                                                  Must Supporttrue
                                                  Obligations
                                                    ObligationsActor
                                                    SHALL:populate-if-knownNguồn tạo hồ sơ lâm sàng (Document Source)
                                                    SHALL:no-error & SHALL:persistKho hồ sơ EMR (Repository)
                                                    SHALL:no-error & SHALL:handleỨng dụng người dân (Citizen App)
                                                    36. RelatedPerson.address
                                                    ShortĐịa chỉ
                                                    TypeAddress(Địa chỉ VN Core — VN Core Address Profile)
                                                    Must Supporttrue
                                                    Obligations
                                                      ObligationsActor
                                                      SHALL:populate-if-knownNguồn tạo hồ sơ lâm sàng (Document Source)
                                                      SHALL:no-error & SHALL:persistKho hồ sơ EMR (Repository)
                                                      SHALL:no-error & SHALL:handleỨng dụng người dân (Citizen App)
                                                      38. RelatedPerson.period
                                                      ShortThời gian quan hệ có hiệu lực

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

                                                      0. RelatedPerson
                                                      Definition

                                                      Information about a person that is involved in the care for a patient, but who is not the target of healthcare, nor has a formal responsibility in the care process.

                                                      ShortA person that is related to a patient, but who is not a direct target of care
                                                      Control0..*
                                                      Is Modifierfalse
                                                      Summaryfalse
                                                      Invariantsdom-2: If the resource is contained in another resource, it SHALL NOT contain nested Resources (contained.contained.empty())
                                                      dom-3: If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource (contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty())
                                                      dom-4: If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated (contained.meta.versionId.empty() and contained.meta.lastUpdated.empty())
                                                      dom-5: If a resource is contained in another resource, it SHALL NOT have a security label (contained.meta.security.empty())
                                                      dom-6: A resource should have narrative for robust management (text.`div`.exists())
                                                      2. RelatedPerson.id
                                                      Definition

                                                      The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.

                                                      ShortLogical id of this artifact
                                                      Comments

                                                      The only time that a resource does not have an id is when it is being submitted to the server using a create operation.

                                                      Control0..1
                                                      Typeid
                                                      Is Modifierfalse
                                                      Summarytrue
                                                      4. RelatedPerson.meta
                                                      Definition

                                                      The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.

                                                      ShortMetadata about the resource
                                                      Control0..1
                                                      TypeMeta
                                                      Is Modifierfalse
                                                      Summarytrue
                                                      Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
                                                      6. RelatedPerson.implicitRules
                                                      Definition

                                                      A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.

                                                      ShortA set of rules under which this content was created
                                                      Comments

                                                      Asserting this rule set restricts the content to be only understood by a limited set of trading partners. This inherently limits the usefulness of the data in the long term. However, the existing health eco-system is highly fractured, and not yet ready to define, collect, and exchange data in a generally computable sense. Wherever possible, implementers and/or specification writers should avoid using this element. Often, when used, the URL is a reference to an implementation guide that defines these special rules as part of it's narrative along with other profiles, value sets, etc.

                                                      Control0..1
                                                      Typeuri
                                                      Is Modifiertrue because This element is labeled as a modifier because the implicit rules may provide additional knowledge about the resource that modifies it's meaning or interpretation
                                                      Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
                                                      Summarytrue
                                                      Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
                                                      8. RelatedPerson.language
                                                      Definition

                                                      The base language in which the resource is written.

                                                      ShortLanguage of the resource content
                                                      Comments

                                                      Language is provided to support indexing and accessibility (typically, services such as text to speech use the language tag). The html language tag in the narrative applies to the narrative. The language tag on the resource may be used to specify the language of other presentations generated from the data in the resource. Not all the content has to be in the base language. The Resource.language should not be assumed to apply to the narrative automatically. If a language is specified, it should it also be specified on the div element in the html (see rules in HTML5 for information about the relationship between xml:lang and the html lang attribute).

                                                      Control0..1
                                                      BindingThe codes SHOULD be taken from CommonLanguages
                                                      (preferred to http://hl7.org/fhir/ValueSet/languages|4.0.1)

                                                      A human language.

                                                      Additional BindingsPurpose
                                                      AllLanguagesMax Binding
                                                      Typecode
                                                      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()))
                                                      10. RelatedPerson.text
                                                      Definition

                                                      A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it "clinically safe" for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.

                                                      ShortText summary of the resource, for human interpretation
                                                      Comments

                                                      Contained resources do not have narrative. Resources that are not contained SHOULD have a narrative. In some cases, a resource may only have text with little or no additional discrete data (as long as all minOccurs=1 elements are satisfied). This may be necessary for data from legacy systems where information is captured as a "text blob" or where text is additionally entered raw or narrated and encoded information is added later.

                                                      Control0..1
                                                      TypeNarrative
                                                      Is Modifierfalse
                                                      Summaryfalse
                                                      Alternate Namesnarrative, html, xhtml, display
                                                      Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
                                                      12. RelatedPerson.contained
                                                      Definition

                                                      These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope.

                                                      ShortContained, inline Resources
                                                      Comments

                                                      This should never be done when the content can be identified properly, as once identification is lost, it is extremely difficult (and context dependent) to restore it again. Contained resources may have profiles and tags In their meta elements, but SHALL NOT have security labels.

                                                      Control0..*
                                                      TypeResource
                                                      Is Modifierfalse
                                                      Summaryfalse
                                                      Alternate Namesinline resources, anonymous resources, contained resources
                                                      14. RelatedPerson.extension
                                                      Definition

                                                      An Extension

                                                      ShortExtension
                                                      Control0..*
                                                      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 RelatedPerson.extension. The slices areUnordered and Open, and can be differentiated using the following discriminators:
                                                      • value @ url
                                                      • 16. RelatedPerson.extension:representationAuthority
                                                        Slice NamerepresentationAuthority
                                                        Definition

                                                        Extension ghi nhận THẨM QUYỀN PHÁP LÝ để một người đại diện/giám hộ/được uỷ quyền hành động thay người khác. Mô hình hoá 'token đại diện' phục vụ Policy Decision Point (PDP): miền thẩm quyền, loại thẩm quyền, nguồn xác minh, bằng chứng, thời điểm xác minh, thời hạn. PDP deny-by-default khi quan hệ mâu thuẫn/hết hạn.

                                                        THAY ĐỔI 0.10.0 đợt 2 (breaking — kiểm toán 06-07/08/2026, analysis/90 §6.2): tách HAI MIỀN thẩm quyền bằng domain 1..1, vì hai loại quyền không đồng nhất và không suy ra nhau: (1) healthcare-decision — quyết định thay về khám chữa bệnh (Luật KCB 15/2023/QH15 Điều 8); (2) data-subject-rights — thực hiện quyền chủ thể dữ liệu thay chủ thể: đồng ý, truy cập, chỉnh sửa, xoá dữ liệu (Luật 91/2025/QH15 Điều 24; Bộ luật Dân sự Điều 134-143) — vd cha/mẹ xem Sổ SKĐT của con qua VNeID. Một người giữ cả hai quyền = HAI instance extension, mỗi instance một miền với căn cứ, bằng chứng, thời hạn riêng. selectionBasis hạ 1..1 → 0..1: nó là khung của Luật KCB Điều 8 khoản 2 nên bắt buộc trong miền healthcare-decision và phải vắng trong miền data-subject-rights (invariant vn-representation-domain-basis). Thêm evidence 0..* — bằng chứng lặp được mang issuer/document/scope/purpose/validity; quan hệ gia đình hoặc bản ghi quan hệ dân cư KHÔNG tự chứng minh thẩm quyền (uỷ quyền bắt buộc có evidence — invariant vn-representation-proxy-evidence).

                                                        THAY ĐỔI 0.10.0 đợt 1 (breaking): thêm selectionBasis — một trong năm nhóm căn cứ lựa chọn tại Luật KCB 15/2023/QH15 Điều 8 khoản 2 điểm a-đ; thêm legalProvision 1..* để ghi văn bản và điều/khoản cụ thể, cho phép lặp vì một thẩm quyền thường dựa trên nhiều quy định đồng thời; nâng verifiedDate từ 0..1 lên 1..1. Kèm invariant vn-representation-type-selection-basis ràng loại thẩm quyền với nhóm căn cứ. Quy tắc một người bệnh chỉ có một người đại diện tại một thời điểm (Điều 8 khoản 1) CỐ Ý không invariant-hoá: nó cần truy vấn toàn bộ authority đang hiệu lực của cùng người bệnh, việc một instance đơn lẻ không thấy được — thuộc tầng PDP/service.

                                                        THAY ĐỔI 0.8.0 (breaking — hậu kiểm toán Codex): sub-extension restrictedSensitivity đã XOÁ — ngữ nghĩa hạn chế truy cập là QUYẾT ĐỊNH CHÍNH SÁCH, không phải thuộc tính token: biểu diễn bằng VNCoreConsent.provision (type=deny + securityLabel theo vn-data-sensitivity-class-vs + actor[representative] gắn chính extension này để link token↔consent — PDP resolve một chiều qua Consent). Căn cứ: Bộ luật Dân sự 2015 (đại diện/giám hộ/uỷ quyền); Luật Căn cước 2023 (quan hệ nhân thân CSDLQGDC); Luật 91/2025/QH15 Điều 24 (đại diện theo pháp luật) + Luật Trẻ em 2016 (dữ liệu trẻ em, lớp nhạy cảm).

                                                        ShortThẩm quyền đại diện/giám hộ/uỷ quyền truy cập dữ liệu (type/source/period/restriction)
                                                        Control0..*
                                                        This element is affected by the following invariants: ele-1
                                                        TypeExtension(Thẩm quyền đại diện truy cập dữ liệu — Representation Authority Extension) (Complex Extension)
                                                        Is Modifierfalse
                                                        Must Supporttrue
                                                        Obligations
                                                          ObligationsActor
                                                          SHALL:populate-if-knownNguồn tạo hồ sơ lâm sàng (Document Source)
                                                          SHALL:no-error & SHALL:persistKho hồ sơ EMR (Repository)
                                                          SHALL:no-error & SHALL:handleỨng dụng người dân (Citizen App)
                                                          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-representation-domain-basis: Miền quyết định khám chữa bệnh bắt buộc có căn cứ lựa chọn theo Luật KCB Điều 8 khoản 2; miền quyền chủ thể dữ liệu không dùng trục căn cứ đó. The healthcare-decision domain SHALL carry a selectionBasis; the data-subject-rights domain SHALL NOT. ((extension.where(url='domain').value.ofType(Coding).code = 'healthcare-decision' implies extension.where(url='selectionBasis').exists()) and (extension.where(url='domain').value.ofType(Coding).code = 'data-subject-rights' implies extension.where(url='selectionBasis').empty()))
                                                          vn-representation-type-selection-basis: Loại thẩm quyền phải tương thích với nhóm căn cứ lựa chọn tại Luật KCB Điều 8 khoản 2. The authority type SHALL be consistent with the statutory selection basis. (extension.where(url='selectionBasis').empty() or ((extension.where(url='selectionBasis').value.ofType(Coding).code = 'civil-code-representative') and (extension.where(url='type').value.ofType(Coding).code = 'legal-representative' or extension.where(url='type').value.ofType(Coding).code = 'guardian' or extension.where(url='type').value.ofType(Coding).code = 'delegated-proxy')) or ((extension.where(url='selectionBasis').value.ofType(Coding).code = 'responsible-legal-entity-appointed') and (extension.where(url='type').value.ofType(Coding).code = 'legal-representative' or extension.where(url='type').value.ofType(Coding).code = 'healthcare-agent')) or ((extension.where(url='selectionBasis').value.ofType(Coding).code = 'adult-patient-selected' or extension.where(url='selectionBasis').value.ofType(Coding).code = 'family-selected' or extension.where(url='selectionBasis').value.ofType(Coding).code = 'voluntary-obligation-performer') and extension.where(url='type').value.ofType(Coding).code = 'healthcare-agent'))
                                                          vn-representation-proxy-evidence: Thẩm quyền theo uỷ quyền phải kèm ít nhất một bằng chứng (văn bản uỷ quyền). A delegated-proxy authority SHALL carry at least one evidence entry. (extension.where(url='type').value.ofType(Coding).code = 'delegated-proxy' implies extension.where(url='evidence').exists())
                                                          vn-representation-proxy-bounded: Thẩm quyền theo uỷ quyền phải có GIỚI HẠN máy-đọc: NGÀY KẾT THÚC (period.end của token hoặc validity.end trong bằng chứng — chỉ có ngày bắt đầu là uỷ quyền vô thời hạn) VÀ phạm vi (scope trong ít nhất một bằng chứng) — Bộ luật Dân sự Điều 138/140/141. A delegated-proxy authority SHALL carry a machine-readable validity bound AND scope. (extension.where(url='type').value.ofType(Coding).code != 'delegated-proxy' or ((extension.where(url='period').value.ofType(Period).end.exists() or extension.where(url='evidence').extension.where(url='validity').value.ofType(Period).end.exists()) and extension.where(url='evidence').extension.where(url='scope').exists()))
                                                          18. RelatedPerson.extension:ethnicity
                                                          Slice Nameethnicity
                                                          Definition

                                                          Dân tộc theo danh mục 54 dân tộc Việt Nam (QĐ 121-TCTK/PPCĐ). Bắt buộc với bốn bên của giấy chứng sinh mang thai hộ theo QĐ 2919/QĐ-BYT Phụ lục II (STT 6, 12, 17, 23).

                                                          ShortDân tộc
                                                          Control0..1
                                                          This element is affected by the following invariants: ele-1
                                                          TypeExtension(Dân tộc — Vietnam Ethnicity Extension) (Extension Type: CodeableConcept)
                                                          Is Modifierfalse
                                                          Must Supporttrue
                                                          Obligations
                                                            ObligationsActor
                                                            SHALL:populate-if-knownNguồn tạo hồ sơ lâm sàng (Document Source)
                                                            SHALL:no-error & SHALL:persistKho hồ sơ EMR (Repository)
                                                            SHALL:no-error & SHALL:handleỨng dụng người dân (Citizen App)
                                                            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())
                                                            20. RelatedPerson.modifierExtension
                                                            Definition

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

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

                                                            ShortExtensions that cannot be ignored
                                                            Comments

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

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

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

                                                            Alternate Namesextensions, user content
                                                            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. RelatedPerson.identifier
                                                            Definition

                                                            Identifier for a person within a particular scope.

                                                            ShortĐịnh danh người liên quan
                                                            NoteThis is a business identifier, not a resource identifier (see discussion)
                                                            Control0..*
                                                            TypeIdentifier
                                                            Is Modifierfalse
                                                            Must Supporttrue
                                                            Obligations
                                                              ObligationsActor
                                                              SHALL:populate-if-knownNguồn tạo hồ sơ lâm sàng (Document Source)
                                                              SHALL:no-error & SHALL:persistKho hồ sơ EMR (Repository)
                                                              SHALL:no-error & SHALL:handleỨng dụng người dân (Citizen App)
                                                              Summarytrue
                                                              Requirements

                                                              People are known by a variety of ids. Some institutions maintain several, and most collect identifiers for exchange with other organizations concerning the patient. Examples are national person identifier and local identifier.

                                                              Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
                                                              SlicingThis element introduces a set of slices on RelatedPerson.identifier. The slices areUnordered and Open, and can be differentiated using the following discriminators:
                                                              • pattern @ type
                                                              • 24. RelatedPerson.identifier:CCCD
                                                                Slice NameCCCD
                                                                Definition

                                                                Identifier for a person within a particular scope.

                                                                ShortA human identifier for this person
                                                                NoteThis is a business identifier, not a resource identifier (see discussion)
                                                                Control0..1
                                                                TypeIdentifier
                                                                Is Modifierfalse
                                                                Must Supporttrue
                                                                Obligations
                                                                  ObligationsActor
                                                                  SHALL:populate-if-knownNguồn tạo hồ sơ lâm sàng (Document Source)
                                                                  SHALL:no-error & SHALL:persistKho hồ sơ EMR (Repository)
                                                                  SHALL:no-error & SHALL:handleỨng dụng người dân (Citizen App)
                                                                  Summarytrue
                                                                  Requirements

                                                                  People are known by a variety of ids. Some institutions maintain several, and most collect identifiers for exchange with other organizations concerning the patient. Examples are national person identifier and local identifier.

                                                                  Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
                                                                  vn-cccd-format: Số định danh cá nhân/CCCD, khi có giá trị, phải đúng 12 chữ số (Luật Căn cước 2023, Điều 12) (value.empty() or value.extension.where(url='http://hl7.org/fhir/StructureDefinition/data-absent-reason').exists() or value.matches('^[0-9]{12}$'))
                                                                  26. RelatedPerson.identifier:CCCD.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
                                                                  28. RelatedPerson.identifier:CCCD.extension
                                                                  Definition

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

                                                                  ShortAdditional content defined by implementations
                                                                  Comments

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

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

                                                                    The purpose of this identifier.

                                                                    Shortusual | official | temp | secondary | old (If known)
                                                                    Comments

                                                                    Applications can assume that an identifier is permanent unless it explicitly says that it is temporary.

                                                                    Control0..1
                                                                    BindingThe codes SHALL be taken from IdentifierUse
                                                                    (required to http://hl7.org/fhir/ValueSet/identifier-use|4.0.1)

                                                                    Identifies the purpose for this identifier, if known .

                                                                    Typecode
                                                                    Is Modifiertrue because This is labeled as "Is Modifier" because applications should not mistake a temporary id for a permanent one.
                                                                    Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
                                                                    Summarytrue
                                                                    Requirements

                                                                    Allows the appropriate identifier for a particular context of use to be selected from among a set of identifiers.

                                                                    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
                                                                    32. RelatedPerson.identifier:CCCD.type
                                                                    Definition

                                                                    A coded type for the identifier that can be used to determine which identifier to use for a specific purpose.

                                                                    ShortDescription of identifier
                                                                    Comments

                                                                    This element deals only with general categories of identifiers. It SHOULD not be used for codes that correspond 1..1 with the Identifier.system. Some identifiers may fall into multiple categories due to common usage. Where the system is known, a type is unnecessary because the type is always part of the system definition. However systems often need to handle identifiers where the system is not known. There is not a 1:1 relationship between type and system, since many different systems have the same type.

                                                                    Control1..1
                                                                    BindingUnless not suitable, these codes SHALL be taken from Identifier Type Codes
                                                                    (extensible to http://hl7.org/fhir/ValueSet/identifier-type|4.0.1)

                                                                    A coded type for an identifier that can be used to determine which identifier to use for a specific purpose.

                                                                    TypeCodeableConcept
                                                                    Is Modifierfalse
                                                                    Summarytrue
                                                                    Requirements

                                                                    Allows users to make use of identifiers when the identifier system is not known.

                                                                    Pattern Value{
                                                                      "coding" : [{
                                                                        "system" : "http://fhir.hl7.org.vn/core/CodeSystem/vn-identifier-type-cs",
                                                                        "code" : "CCCD"
                                                                      }]
                                                                    }
                                                                    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
                                                                    34. RelatedPerson.identifier:CCCD.system
                                                                    Definition

                                                                    Establishes the namespace for the value - that is, a URL that describes a set values that are unique.

                                                                    ShortThe namespace for the identifier value
                                                                    Comments

                                                                    Identifier.system is always case sensitive.

                                                                    Control1..1
                                                                    Typeuri
                                                                    Is Modifierfalse
                                                                    Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
                                                                    Summarytrue
                                                                    Requirements

                                                                    There are many sets of identifiers. To perform matching of two identifiers, we need to know what set we're dealing with. The system identifies a particular set of unique identifiers.

                                                                    Fixed Valuehttp://fhir.hl7.org.vn/core/sid/cccd
                                                                    ExampleGeneral: http://www.acme.com/identifiers/patient
                                                                    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
                                                                    36. RelatedPerson.identifier:CCCD.value
                                                                    Definition

                                                                    The portion of the identifier typically relevant to the user and which is unique within the context of the system.

                                                                    ShortThe value that is unique
                                                                    Comments

                                                                    If the value is a full URI, then the system SHALL be urn:ietf:rfc:3986. The value's primary purpose is computational mapping. As a result, it may be normalized for comparison purposes (e.g. removing non-significant whitespace, dashes, etc.) A value formatted for human display can be conveyed using the Rendered Value extension. Identifier.value is to be treated as case sensitive unless knowledge of the Identifier.system allows the processer to be confident that non-case-sensitive processing is safe.

                                                                    Control1..1
                                                                    Typestring
                                                                    Is Modifierfalse
                                                                    Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
                                                                    Must Supporttrue
                                                                    Summarytrue
                                                                    ExampleGeneral: 123456
                                                                    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
                                                                    38. RelatedPerson.identifier:CCCD.period
                                                                    Definition

                                                                    Time period during which identifier is/was valid for use.

                                                                    ShortTime period when id is/was valid for use
                                                                    Control0..1
                                                                    TypePeriod
                                                                    Is Modifierfalse
                                                                    Summarytrue
                                                                    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
                                                                    40. RelatedPerson.identifier:CCCD.assigner
                                                                    Definition

                                                                    Organization that issued/manages the identifier.

                                                                    ShortOrganization that issued id (may be just text)
                                                                    Comments

                                                                    The Identifier.assigner may omit the .reference element and only contain a .display element reflecting the name or other textual information about the assigning organization.

                                                                    Control0..1
                                                                    TypeReference(Organization)
                                                                    Is Modifierfalse
                                                                    Summarytrue
                                                                    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
                                                                    42. RelatedPerson.identifier:HC
                                                                    Slice NameHC
                                                                    Definition

                                                                    Identifier for a person within a particular scope.

                                                                    ShortA human identifier for this person
                                                                    NoteThis is a business identifier, not a resource identifier (see discussion)
                                                                    Control0..1
                                                                    TypeIdentifier
                                                                    Is Modifierfalse
                                                                    Must Supporttrue
                                                                    Obligations
                                                                      ObligationsActor
                                                                      SHALL:populate-if-knownNguồn tạo hồ sơ lâm sàng (Document Source)
                                                                      SHALL:no-error & SHALL:persistKho hồ sơ EMR (Repository)
                                                                      SHALL:no-error & SHALL:handleỨng dụng người dân (Citizen App)
                                                                      Summarytrue
                                                                      Requirements

                                                                      People are known by a variety of ids. Some institutions maintain several, and most collect identifiers for exchange with other organizations concerning the patient. Examples are national person identifier and local identifier.

                                                                      Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
                                                                      44. RelatedPerson.identifier:HC.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
                                                                      46. RelatedPerson.identifier:HC.extension
                                                                      Definition

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

                                                                      ShortAdditional content defined by implementations
                                                                      Comments

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

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

                                                                        The purpose of this identifier.

                                                                        Shortusual | official | temp | secondary | old (If known)
                                                                        Comments

                                                                        Applications can assume that an identifier is permanent unless it explicitly says that it is temporary.

                                                                        Control0..1
                                                                        BindingThe codes SHALL be taken from IdentifierUse
                                                                        (required to http://hl7.org/fhir/ValueSet/identifier-use|4.0.1)

                                                                        Identifies the purpose for this identifier, if known .

                                                                        Typecode
                                                                        Is Modifiertrue because This is labeled as "Is Modifier" because applications should not mistake a temporary id for a permanent one.
                                                                        Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
                                                                        Summarytrue
                                                                        Requirements

                                                                        Allows the appropriate identifier for a particular context of use to be selected from among a set of identifiers.

                                                                        Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
                                                                        50. RelatedPerson.identifier:HC.type
                                                                        Definition

                                                                        A coded type for the identifier that can be used to determine which identifier to use for a specific purpose.

                                                                        ShortDescription of identifier
                                                                        Comments

                                                                        This element deals only with general categories of identifiers. It SHOULD not be used for codes that correspond 1..1 with the Identifier.system. Some identifiers may fall into multiple categories due to common usage. Where the system is known, a type is unnecessary because the type is always part of the system definition. However systems often need to handle identifiers where the system is not known. There is not a 1:1 relationship between type and system, since many different systems have the same type.

                                                                        Control1..1
                                                                        BindingUnless not suitable, these codes SHALL be taken from Identifier Type Codes
                                                                        (extensible to http://hl7.org/fhir/ValueSet/identifier-type|4.0.1)

                                                                        A coded type for an identifier that can be used to determine which identifier to use for a specific purpose.

                                                                        TypeCodeableConcept
                                                                        Is Modifierfalse
                                                                        Summarytrue
                                                                        Requirements

                                                                        Allows users to make use of identifiers when the identifier system is not known.

                                                                        Pattern Value{
                                                                          "coding" : [{
                                                                            "system" : "http://fhir.hl7.org.vn/core/CodeSystem/vn-identifier-type-cs",
                                                                            "code" : "HC"
                                                                          }]
                                                                        }
                                                                        Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
                                                                        52. RelatedPerson.identifier:HC.system
                                                                        Definition

                                                                        Hộ chiếu Việt Nam dùng http://fhir.hl7.org.vn/core/sid/passport. Hộ chiếu nước ngoài dùng URI namespace của quốc gia cấp (HL7 THO đã công bố dạng http://hl7.org/fhir/sid/passport-XXX, vd passport-JPN); nếu quốc gia chưa có URI công bố thì assigner là BẮT BUỘC nghiệp vụ để ghi rõ cơ quan/quốc gia cấp. KHÔNG ép hộ chiếu nước ngoài vào namespace VN — số hộ chiếu chỉ duy nhất trong phạm vi nước cấp (P0-03, analysis/94-codex-review).

                                                                        ShortThe namespace for the identifier value
                                                                        Comments

                                                                        Identifier.system is always case sensitive.

                                                                        Control1..1
                                                                        Typeuri
                                                                        Is Modifierfalse
                                                                        Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
                                                                        Summarytrue
                                                                        Requirements

                                                                        There are many sets of identifiers. To perform matching of two identifiers, we need to know what set we're dealing with. The system identifies a particular set of unique identifiers.

                                                                        ExampleGeneral: http://www.acme.com/identifiers/patient
                                                                        Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
                                                                        54. RelatedPerson.identifier:HC.value
                                                                        Definition

                                                                        The portion of the identifier typically relevant to the user and which is unique within the context of the system.

                                                                        ShortThe value that is unique
                                                                        Comments

                                                                        If the value is a full URI, then the system SHALL be urn:ietf:rfc:3986. The value's primary purpose is computational mapping. As a result, it may be normalized for comparison purposes (e.g. removing non-significant whitespace, dashes, etc.) A value formatted for human display can be conveyed using the Rendered Value extension. Identifier.value is to be treated as case sensitive unless knowledge of the Identifier.system allows the processer to be confident that non-case-sensitive processing is safe.

                                                                        Control1..1
                                                                        Typestring
                                                                        Is Modifierfalse
                                                                        Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
                                                                        Summarytrue
                                                                        ExampleGeneral: 123456
                                                                        Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
                                                                        56. RelatedPerson.identifier:HC.period
                                                                        Definition

                                                                        Time period during which identifier is/was valid for use.

                                                                        ShortTime period when id is/was valid for use
                                                                        Control0..1
                                                                        TypePeriod
                                                                        Is Modifierfalse
                                                                        Summarytrue
                                                                        Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
                                                                        58. RelatedPerson.identifier:HC.assigner
                                                                        Definition

                                                                        Organization that issued/manages the identifier.

                                                                        ShortOrganization that issued id (may be just text)
                                                                        Comments

                                                                        The Identifier.assigner may omit the .reference element and only contain a .display element reflecting the name or other textual information about the assigning organization.

                                                                        Control0..1
                                                                        TypeReference(Organization)
                                                                        Is Modifierfalse
                                                                        Summarytrue
                                                                        Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
                                                                        60. RelatedPerson.active
                                                                        Definition

                                                                        Whether this related person record is in active use.

                                                                        ShortBản ghi đang hoạt động
                                                                        Comments

                                                                        This element is labeled as a modifier because it may be used to mark that the resource was created in error.

                                                                        Control1..1
                                                                        Typeboolean
                                                                        Is Modifiertrue because This element is labelled as a modifier because it is a status element that can indicate that a record should not be treated as valid
                                                                        Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
                                                                        Must Supporttrue
                                                                        Obligations
                                                                          ObligationsActor
                                                                          SHALL:populate-if-knownNguồn tạo hồ sơ lâm sàng (Document Source)
                                                                          SHALL:no-error & SHALL:persistKho hồ sơ EMR (Repository)
                                                                          SHALL:no-error & SHALL:handleỨng dụng người dân (Citizen App)
                                                                          Summarytrue
                                                                          Requirements

                                                                          Need to be able to mark a related person record as not to be used, such as if it was created in error.

                                                                          Meaning if MissingThis resource is generally assumed to be active if no value is provided for the active element
                                                                          Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
                                                                          62. RelatedPerson.patient
                                                                          Definition

                                                                          The patient this person is related to.

                                                                          ShortBệnh nhân liên quan
                                                                          Control1..1
                                                                          TypeReference(Bệnh nhân VN Core — VN Core Patient Profile)
                                                                          Is Modifierfalse
                                                                          Must Supporttrue
                                                                          Obligations
                                                                            ObligationsActor
                                                                            SHALL:populate-if-knownNguồn tạo hồ sơ lâm sàng (Document Source)
                                                                            SHALL:no-error & SHALL:persistKho hồ sơ EMR (Repository)
                                                                            SHALL:no-error & SHALL:handleỨng dụng người dân (Citizen App)
                                                                            Summarytrue
                                                                            Requirements

                                                                            We need to know which patient this RelatedPerson is related to.

                                                                            Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
                                                                            64. RelatedPerson.relationship
                                                                            Definition

                                                                            Quan hệ huyết thống/gia đình (mẹ, cha, con...) dùng relatedperson-relationshiptype. LƯU Ý: thẩm quyền pháp lý để truy cập thay (đại diện theo pháp luật / giám hộ / uỷ quyền) ghi ở extension[representationAuthority] — cha/mẹ có relationship=mother/father nhưng thẩm quyền = legal-representative.

                                                                            ShortQuan hệ GIA ĐÌNH với bệnh nhân (mother/father...) — KHÁC trục thẩm quyền pháp lý ở extension[representationAuthority]
                                                                            Control1..*
                                                                            BindingUnless not suitable, these codes SHALL be taken from PatientRelationshipType
                                                                            (extensible to http://hl7.org/fhir/ValueSet/relatedperson-relationshiptype)
                                                                            TypeCodeableConcept
                                                                            Is Modifierfalse
                                                                            Must Supporttrue
                                                                            Obligations
                                                                              ObligationsActor
                                                                              SHALL:populate-if-knownNguồn tạo hồ sơ lâm sàng (Document Source)
                                                                              SHALL:no-error & SHALL:persistKho hồ sơ EMR (Repository)
                                                                              SHALL:no-error & SHALL:handleỨng dụng người dân (Citizen App)
                                                                              Summarytrue
                                                                              Requirements

                                                                              We need to know the relationship with the patient since it influences the interpretation of the information attributed to this person.

                                                                              Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
                                                                              66. RelatedPerson.name
                                                                              Definition

                                                                              A name associated with the person.

                                                                              ShortHọ tên người liên quan
                                                                              Control0..*
                                                                              TypeHumanName
                                                                              Is Modifierfalse
                                                                              Must Supporttrue
                                                                              Obligations
                                                                                ObligationsActor
                                                                                SHALL:populate-if-knownNguồn tạo hồ sơ lâm sàng (Document Source)
                                                                                SHALL:no-error & SHALL:persistKho hồ sơ EMR (Repository)
                                                                                SHALL:no-error & SHALL:handleỨng dụng người dân (Citizen App)
                                                                                Summarytrue
                                                                                Requirements

                                                                                Related persons need to be identified by name, but it is uncommon to need details about multiple other names for that person.

                                                                                Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
                                                                                68. RelatedPerson.telecom
                                                                                Definition

                                                                                A contact detail for the person, e.g. a telephone number or an email address.

                                                                                ShortThông tin liên lạc
                                                                                Comments

                                                                                Person may have multiple ways to be contacted with different uses or applicable periods. May need to have options for contacting the person urgently, and also to help with identification.

                                                                                Control0..*
                                                                                TypeContactPoint
                                                                                Is Modifierfalse
                                                                                Must Supporttrue
                                                                                Obligations
                                                                                  ObligationsActor
                                                                                  SHALL:populate-if-knownNguồn tạo hồ sơ lâm sàng (Document Source)
                                                                                  SHALL:no-error & SHALL:persistKho hồ sơ EMR (Repository)
                                                                                  SHALL:no-error & SHALL:handleỨng dụng người dân (Citizen App)
                                                                                  Summarytrue
                                                                                  Requirements

                                                                                  People have (primary) ways to contact them in some way such as phone, email.

                                                                                  Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
                                                                                  70. RelatedPerson.gender
                                                                                  Definition

                                                                                  Administrative Gender - the gender that the person is considered to have for administration and record keeping purposes.

                                                                                  Shortmale | female | other | unknown
                                                                                  Control0..1
                                                                                  BindingThe codes SHALL be taken from AdministrativeGender
                                                                                  (required to http://hl7.org/fhir/ValueSet/administrative-gender|4.0.1)

                                                                                  The gender of a person used for administrative purposes.

                                                                                  Typecode
                                                                                  Is Modifierfalse
                                                                                  Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
                                                                                  Summarytrue
                                                                                  Requirements

                                                                                  Needed for identification of the person, in combination with (at least) name and birth date.

                                                                                  Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
                                                                                  72. RelatedPerson.birthDate
                                                                                  Definition

                                                                                  The date on which the related person was born.

                                                                                  ShortThe date on which the related person was born
                                                                                  Control0..1
                                                                                  Typedate
                                                                                  Is Modifierfalse
                                                                                  Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
                                                                                  Summarytrue
                                                                                  Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
                                                                                  74. RelatedPerson.address
                                                                                  Definition

                                                                                  Address where the related person can be contacted or visited.

                                                                                  ShortĐịa chỉ
                                                                                  Control0..*
                                                                                  TypeAddress(Địa chỉ VN Core — VN Core Address Profile)
                                                                                  Is Modifierfalse
                                                                                  Must Supporttrue
                                                                                  Obligations
                                                                                    ObligationsActor
                                                                                    SHALL:populate-if-knownNguồn tạo hồ sơ lâm sàng (Document Source)
                                                                                    SHALL:no-error & SHALL:persistKho hồ sơ EMR (Repository)
                                                                                    SHALL:no-error & SHALL:handleỨng dụng người dân (Citizen App)
                                                                                    Summarytrue
                                                                                    Requirements

                                                                                    Need to keep track where the related person can be contacted per postal mail or visited.

                                                                                    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
                                                                                    76. RelatedPerson.photo
                                                                                    Definition

                                                                                    Image of the person.

                                                                                    ShortImage of the person
                                                                                    Control0..*
                                                                                    TypeAttachment
                                                                                    Is Modifierfalse
                                                                                    Summaryfalse
                                                                                    Requirements

                                                                                    Many EHR systems have the capability to capture an image of persons. Fits with newer social media usage too.

                                                                                    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
                                                                                    78. RelatedPerson.period
                                                                                    Definition

                                                                                    The period of time during which this relationship is or was active. If there are no dates defined, then the interval is unknown.

                                                                                    ShortThời gian quan hệ có hiệu lực
                                                                                    Control0..1
                                                                                    TypePeriod
                                                                                    Is Modifierfalse
                                                                                    Summaryfalse
                                                                                    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
                                                                                    80. RelatedPerson.communication
                                                                                    Definition

                                                                                    A language which may be used to communicate with about the patient's health.

                                                                                    ShortA language which may be used to communicate with about the patient's health
                                                                                    Comments

                                                                                    If no language is specified, this implies that the default local language is spoken. If you need to convey proficiency for multiple modes, then you need multiple RelatedPerson.Communication associations. If the RelatedPerson does not speak the default local language, then the Interpreter Required Standard can be used to explicitly declare that an interpreter is required.

                                                                                    Control0..*
                                                                                    TypeBackboneElement
                                                                                    Is Modifierfalse
                                                                                    Summaryfalse
                                                                                    Requirements

                                                                                    If a related person does not speak the local language, interpreters may be required, so languages spoken and proficiency is an important things to keep track of both for patient and other persons of interest.

                                                                                    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
                                                                                    82. RelatedPerson.communication.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
                                                                                    84. RelatedPerson.communication.extension
                                                                                    Definition

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

                                                                                    ShortAdditional content defined by implementations
                                                                                    Comments

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

                                                                                    Control0..*
                                                                                    TypeExtension
                                                                                    Is Modifierfalse
                                                                                    Summaryfalse
                                                                                    Alternate Namesextensions, user content
                                                                                    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
                                                                                    ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
                                                                                    86. RelatedPerson.communication.modifierExtension
                                                                                    Definition

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

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

                                                                                    ShortExtensions that cannot be ignored even if unrecognized
                                                                                    Comments

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

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

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

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

                                                                                    The ISO-639-1 alpha 2 code in lower case for the language, optionally followed by a hyphen and the ISO-3166-1 alpha 2 code for the region in upper case; e.g. "en" for English, or "en-US" for American English versus "en-EN" for England English.

                                                                                    ShortThe language which can be used to communicate with the patient about his or her health
                                                                                    Comments

                                                                                    The structure aa-BB with this exact casing is one the most widely used notations for locale. However not all systems actually code this but instead have it as free text. Hence CodeableConcept instead of code as the data type.

                                                                                    Control1..1
                                                                                    BindingThe codes SHOULD be taken from CommonLanguages
                                                                                    (preferred to http://hl7.org/fhir/ValueSet/languages|4.0.1)

                                                                                    A human language.

                                                                                    Additional BindingsPurpose
                                                                                    AllLanguagesMax Binding
                                                                                    TypeCodeableConcept
                                                                                    Is Modifierfalse
                                                                                    Summaryfalse
                                                                                    Requirements

                                                                                    Most systems in multilingual countries will want to convey language. Not all systems actually need the regional dialect.

                                                                                    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
                                                                                    90. RelatedPerson.communication.preferred
                                                                                    Definition

                                                                                    Indicates whether or not the patient prefers this language (over other languages he masters up a certain level).

                                                                                    ShortLanguage preference indicator
                                                                                    Comments

                                                                                    This language is specifically identified for communicating healthcare information.

                                                                                    Control0..1
                                                                                    Typeboolean
                                                                                    Is Modifierfalse
                                                                                    Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
                                                                                    Summaryfalse
                                                                                    Requirements

                                                                                    People that master multiple languages up to certain level may prefer one or more, i.e. feel more confident in communicating in a particular language making other languages sort of a fall back method.

                                                                                    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))