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

Mô hình logic: Phong bì XML ký số Cổng giám định BHYT theo QĐ 326/QĐ-BHXH — Logical Model

URL chính thức: http://fhir.hl7.org.vn/core/StructureDefinition/vnBhytGatewaySignedEnvelopeLm Phiên bản: 0.10.0
Computable Name: VNBHYTGatewaySignedEnvelopeLM
Định danh khác: OID:2.25.161089673617632664299011809196868855799.42.192

Logical model cho phong bì vận chuyển của Cổng tiếp nhận dữ liệu thuộc Hệ thống thông tin giám định BHYT (gdbhyt.baohiemxahoi.gov.vn): request gửi hồ sơ mang fileHsBase64 — chuỗi Base64 của file XML đã ký số — cùng thông tin xác thực và loại hồ sơ.

INFORMATIVE / non-normative: mô hình ánh xạ transport envelope (không phải FHIR resource normative) — mapping aid cho implementer viết adapter.

Vì sao có model này và vì sao KHÔNG có profile chữ ký số. TT 12/2026/TT-BTC Điều 2 khoản 2 buộc mọi tài liệu, dữ liệu KCB điện tử gửi Cổng phải được ký số và xác thực, nhưng payload mà Cổng nhận là XML ký XMLDSig, không phải resource FHIR. Vì vậy VN Core mô hình hoá đúng lớp wire ở đây và không tạo profile Signature FHIR-native: một profile như vậy sẽ mô tả thứ không bên nào trong luồng này trao đổi. VNCoreBHYTSubmissionBundle là gói FHIR trước khi chuyển đổi sang XML; Bundle.signature của nó không phải CHUKYDONVI của phong bì này.

Tuân thủ model này không chứng minh chữ ký hợp lệ. Kiểm tra Base64 ↔ XML giải mã, canonicalized bytes, chuỗi chứng thư, trạng thái thu hồi và phép thử RSA nằm ngoài FHIRPath — thuộc rule external signature-verification-contract.

Nguồn và giới hạn của nguồn. Phụ lục kỹ thuật 71 trang của QĐ 326/QĐ-BHXH có lớp text trực tiếp; các phần tử XMLDSig dưới đây trích từ exemplar trong phụ lục đó. Phụ lục không kèm XSD hay bảng cardinality riêng cho khối chữ ký, nên cardinality 1..1 và reference 2..2 là ràng buộc của logical model suy ra từ exemplar, không phải tuyên bố về một lược đồ chính thức. Bảy trường request được đặt 1..1 vì bảng tham số nguồn đánh dấu bắt buộc. Bản quyết định một trang hiện chỉ có scan không có lớp text; PL01 lỗi ZIP trailer và PL02 chưa công khai — xem statusEvidenceNote của mã QD-326-2026-BHXH.

Căn cứ: QĐ 326/QĐ-BHXH (31/3/2026, hiệu lực 01/4/2026) — hướng dẫn kỹ thuật gửi, nhận tài liệu và dữ liệu điện tử trên Cổng tiếp nhận dữ liệu; TT 12/2026/TT-BTC Điều 2 khoản 2 — nghĩa vụ ký số và xác thực.

Usages:

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

You can also check for usages in the FHIR IG Statistics

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

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

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. vnBhytGatewaySignedEnvelopeLm C 0..* Base Phong bì XML ký số Cổng giám định BHYT theo QĐ 326/QĐ-BHXH — Logical Model
Constraints: vn-q326-reference-roles
... request 1..1 BackboneElement Thông tin request đến Cổng giám định BHYT
.... maCskcb 1..1 string maCskcb - maCskcb — mã cơ sở khám bệnh, chữa bệnh
.... accessToken 1..1 string accessToken - accessToken — transport credential; không persist, không log
.... tokenId 1..1 string tokenId - tokenId — transport credential; không persist, không log
.... username 1..1 string username - username — tài khoản cơ sở KCB; không persist trong clinical store
.... passwordHash 1..1 string passwordHash - passwordHash — băm theo wire contract nguồn; không persist, không log
.... loaiHs 1..1 string loaiHs - loaiHs — loại hồ sơ theo endpoint QĐ 326/QĐ-BHXH
.... maTinh 1..1 string maTinh - maTinh — mã tỉnh của cơ sở KCB gửi hồ sơ
.... kyQT 1..1 string kyQT - kyQT — kỳ quyết toán dạng YYYYMM
.... fileHsBase64 1..1 string fileHsBase64 - fileHsBase64 — chuỗi Base64 của file XML đã ký số
... signedXml 1..1 BackboneElement Nội dung XML trước khi Base64; là semantic view của fileHsBase64
.... rootName 1..1 string Tên phần tử gốc của XML, ví dụ HSDANHMUC
.... signedPayloadId 1..1 string Id của payload mà Reference thứ hai trỏ tới
.... chuKyDonVi 1..1 BackboneElement CHUKYDONVI — thông tin chữ ký của đơn vị
..... signature 1..1 BackboneElement ds:Signature
...... @id 1..1 string Signature/@Id
...... namespace 1..1 uri xmlns của XMLDSig
...... signedInfo 1..1 BackboneElement ds:SignedInfo
....... canonicalizationAlgorithm 1..1 uri CanonicalizationMethod/@Algorithm — C14N 2001 theo exemplar nguồn
....... signatureAlgorithm 1..1 uri SignatureMethod/@Algorithm — RSA-SHA256 theo exemplar nguồn
....... reference 2..2 BackboneElement Hai ds:Reference: một tới Object chữ ký, một tới payload
........ uri 1..1 string Reference/@URI
........ digestAlgorithm 1..1 uri DigestMethod/@Algorithm — SHA-256 theo exemplar nguồn
........ digestValue 1..1 base64Binary DigestValue
...... signatureValue 1..1 base64Binary SignatureValue
...... keyInfo 1..1 BackboneElement KeyInfo
....... x509Data 1..1 BackboneElement X509Data
........ x509SubjectName 1..1 string X509SubjectName
........ x509Certificate 1..1 base64Binary X509Certificate — DER mã hoá Base64
...... object 1..1 BackboneElement ds:Object
....... @id 1..1 string Object/@Id
....... signatureProperties 1..1 BackboneElement SignatureProperties
........ signatureProperty 1..1 BackboneElement SignatureProperty
......... target 1..1 string SignatureProperty/@Target
......... @id 1..1 string SignatureProperty/@Id
......... signingTime 1..1 dateTime SigningTime — thời điểm ký do bên ký khai

doco Documentation for this format

Constraints

Id Grade Path(s) Description Expression
vn-q326-reference-roles error vnBhytGatewaySignedEnvelopeLm SignedInfo phải có đúng một Reference tới Object chữ ký và một Reference tới payload. SignedInfo SHALL carry exactly one Reference to the signature Object and one to the payload. signedXml.chuKyDonVi.signature.signedInfo.reference.uri.where(startsWith('#Object-CHUKYDONVI-Id-')).count() = 1 and signedXml.chuKyDonVi.signature.signedInfo.reference.uri.where(startsWith('#Id-')).count() = 1
NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. vnBhytGatewaySignedEnvelopeLm C 0..* Base Phong bì XML ký số Cổng giám định BHYT theo QĐ 326/QĐ-BHXH — Logical Model
Constraints: vn-q326-reference-roles
... request 1..1 BackboneElement Thông tin request đến Cổng giám định BHYT
.... @id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
.... maCskcb 1..1 string maCskcb - maCskcb — mã cơ sở khám bệnh, chữa bệnh
.... accessToken 1..1 string accessToken - accessToken — transport credential; không persist, không log
.... tokenId 1..1 string tokenId - tokenId — transport credential; không persist, không log
.... username 1..1 string username - username — tài khoản cơ sở KCB; không persist trong clinical store
.... passwordHash 1..1 string passwordHash - passwordHash — băm theo wire contract nguồn; không persist, không log
.... loaiHs 1..1 string loaiHs - loaiHs — loại hồ sơ theo endpoint QĐ 326/QĐ-BHXH
.... maTinh 1..1 string maTinh - maTinh — mã tỉnh của cơ sở KCB gửi hồ sơ
.... kyQT 1..1 string kyQT - kyQT — kỳ quyết toán dạng YYYYMM
.... fileHsBase64 1..1 string fileHsBase64 - fileHsBase64 — chuỗi Base64 của file XML đã ký số
... signedXml 1..1 BackboneElement Nội dung XML trước khi Base64; là semantic view của fileHsBase64
.... @id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
.... rootName 1..1 string Tên phần tử gốc của XML, ví dụ HSDANHMUC
.... signedPayloadId 1..1 string Id của payload mà Reference thứ hai trỏ tới
.... chuKyDonVi 1..1 BackboneElement CHUKYDONVI — thông tin chữ ký của đơn vị
..... @id 0..1 string Unique id for inter-element referencing
..... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
..... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
..... signature 1..1 BackboneElement ds:Signature
...... @id 1..1 string Signature/@Id
...... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
...... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
...... namespace 1..1 uri xmlns của XMLDSig
...... signedInfo 1..1 BackboneElement ds:SignedInfo
....... @id 0..1 string Unique id for inter-element referencing
....... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
....... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
....... canonicalizationAlgorithm 1..1 uri CanonicalizationMethod/@Algorithm — C14N 2001 theo exemplar nguồn
....... signatureAlgorithm 1..1 uri SignatureMethod/@Algorithm — RSA-SHA256 theo exemplar nguồn
....... reference 2..2 BackboneElement Hai ds:Reference: một tới Object chữ ký, một tới payload
........ @id 0..1 string Unique id for inter-element referencing
........ extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
........ modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
........ uri 1..1 string Reference/@URI
........ digestAlgorithm 1..1 uri DigestMethod/@Algorithm — SHA-256 theo exemplar nguồn
........ digestValue 1..1 base64Binary DigestValue
...... signatureValue 1..1 base64Binary SignatureValue
...... keyInfo 1..1 BackboneElement KeyInfo
....... @id 0..1 string Unique id for inter-element referencing
....... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
....... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
....... x509Data 1..1 BackboneElement X509Data
........ @id 0..1 string Unique id for inter-element referencing
........ extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
........ modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
........ x509SubjectName 1..1 string X509SubjectName
........ x509Certificate 1..1 base64Binary X509Certificate — DER mã hoá Base64
...... object 1..1 BackboneElement ds:Object
....... @id 1..1 string Object/@Id
....... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
....... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
....... signatureProperties 1..1 BackboneElement SignatureProperties
........ @id 0..1 string Unique id for inter-element referencing
........ extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
........ modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
........ signatureProperty 1..1 BackboneElement SignatureProperty
......... @id 1..1 string SignatureProperty/@Id
......... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
......... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
......... target 1..1 string SignatureProperty/@Target
......... signingTime 1..1 dateTime SigningTime — thời điểm ký do bên ký khai

doco Documentation for this format

Constraints

Id Grade Path(s) Description Expression
ele-1 error **ALL** elements All FHIR elements must have a @value or children hasValue() or (children().count() > id.count())
ext-1 error **ALL** extensions Must have either extensions or value[x], not both extension.exists() != value.exists()
vn-q326-reference-roles error vnBhytGatewaySignedEnvelopeLm SignedInfo phải có đúng một Reference tới Object chữ ký và một Reference tới payload. SignedInfo SHALL carry exactly one Reference to the signature Object and one to the payload. signedXml.chuKyDonVi.signature.signedInfo.reference.uri.where(startsWith('#Object-CHUKYDONVI-Id-')).count() = 1 and signedXml.chuKyDonVi.signature.signedInfo.reference.uri.where(startsWith('#Id-')).count() = 1

Summary

Mandatory: 3 elements(32 nested mandatory elements)

Dạng xem Differential

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. vnBhytGatewaySignedEnvelopeLm C 0..* Base Phong bì XML ký số Cổng giám định BHYT theo QĐ 326/QĐ-BHXH — Logical Model
Constraints: vn-q326-reference-roles
... request 1..1 BackboneElement Thông tin request đến Cổng giám định BHYT
.... maCskcb 1..1 string maCskcb - maCskcb — mã cơ sở khám bệnh, chữa bệnh
.... accessToken 1..1 string accessToken - accessToken — transport credential; không persist, không log
.... tokenId 1..1 string tokenId - tokenId — transport credential; không persist, không log
.... username 1..1 string username - username — tài khoản cơ sở KCB; không persist trong clinical store
.... passwordHash 1..1 string passwordHash - passwordHash — băm theo wire contract nguồn; không persist, không log
.... loaiHs 1..1 string loaiHs - loaiHs — loại hồ sơ theo endpoint QĐ 326/QĐ-BHXH
.... maTinh 1..1 string maTinh - maTinh — mã tỉnh của cơ sở KCB gửi hồ sơ
.... kyQT 1..1 string kyQT - kyQT — kỳ quyết toán dạng YYYYMM
.... fileHsBase64 1..1 string fileHsBase64 - fileHsBase64 — chuỗi Base64 của file XML đã ký số
... signedXml 1..1 BackboneElement Nội dung XML trước khi Base64; là semantic view của fileHsBase64
.... rootName 1..1 string Tên phần tử gốc của XML, ví dụ HSDANHMUC
.... signedPayloadId 1..1 string Id của payload mà Reference thứ hai trỏ tới
.... chuKyDonVi 1..1 BackboneElement CHUKYDONVI — thông tin chữ ký của đơn vị
..... signature 1..1 BackboneElement ds:Signature
...... @id 1..1 string Signature/@Id
...... namespace 1..1 uri xmlns của XMLDSig
...... signedInfo 1..1 BackboneElement ds:SignedInfo
....... canonicalizationAlgorithm 1..1 uri CanonicalizationMethod/@Algorithm — C14N 2001 theo exemplar nguồn
....... signatureAlgorithm 1..1 uri SignatureMethod/@Algorithm — RSA-SHA256 theo exemplar nguồn
....... reference 2..2 BackboneElement Hai ds:Reference: một tới Object chữ ký, một tới payload
........ uri 1..1 string Reference/@URI
........ digestAlgorithm 1..1 uri DigestMethod/@Algorithm — SHA-256 theo exemplar nguồn
........ digestValue 1..1 base64Binary DigestValue
...... signatureValue 1..1 base64Binary SignatureValue
...... keyInfo 1..1 BackboneElement KeyInfo
....... x509Data 1..1 BackboneElement X509Data
........ x509SubjectName 1..1 string X509SubjectName
........ x509Certificate 1..1 base64Binary X509Certificate — DER mã hoá Base64
...... object 1..1 BackboneElement ds:Object
....... @id 1..1 string Object/@Id
....... signatureProperties 1..1 BackboneElement SignatureProperties
........ signatureProperty 1..1 BackboneElement SignatureProperty
......... target 1..1 string SignatureProperty/@Target
......... @id 1..1 string SignatureProperty/@Id
......... signingTime 1..1 dateTime SigningTime — thời điểm ký do bên ký khai

doco Documentation for this format

Constraints

Id Grade Path(s) Description Expression
vn-q326-reference-roles error vnBhytGatewaySignedEnvelopeLm SignedInfo phải có đúng một Reference tới Object chữ ký và một Reference tới payload. SignedInfo SHALL carry exactly one Reference to the signature Object and one to the payload. signedXml.chuKyDonVi.signature.signedInfo.reference.uri.where(startsWith('#Object-CHUKYDONVI-Id-')).count() = 1 and signedXml.chuKyDonVi.signature.signedInfo.reference.uri.where(startsWith('#Id-')).count() = 1

Dạng xem SnapshotView

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. vnBhytGatewaySignedEnvelopeLm C 0..* Base Phong bì XML ký số Cổng giám định BHYT theo QĐ 326/QĐ-BHXH — Logical Model
Constraints: vn-q326-reference-roles
... request 1..1 BackboneElement Thông tin request đến Cổng giám định BHYT
.... @id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
.... maCskcb 1..1 string maCskcb - maCskcb — mã cơ sở khám bệnh, chữa bệnh
.... accessToken 1..1 string accessToken - accessToken — transport credential; không persist, không log
.... tokenId 1..1 string tokenId - tokenId — transport credential; không persist, không log
.... username 1..1 string username - username — tài khoản cơ sở KCB; không persist trong clinical store
.... passwordHash 1..1 string passwordHash - passwordHash — băm theo wire contract nguồn; không persist, không log
.... loaiHs 1..1 string loaiHs - loaiHs — loại hồ sơ theo endpoint QĐ 326/QĐ-BHXH
.... maTinh 1..1 string maTinh - maTinh — mã tỉnh của cơ sở KCB gửi hồ sơ
.... kyQT 1..1 string kyQT - kyQT — kỳ quyết toán dạng YYYYMM
.... fileHsBase64 1..1 string fileHsBase64 - fileHsBase64 — chuỗi Base64 của file XML đã ký số
... signedXml 1..1 BackboneElement Nội dung XML trước khi Base64; là semantic view của fileHsBase64
.... @id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
.... rootName 1..1 string Tên phần tử gốc của XML, ví dụ HSDANHMUC
.... signedPayloadId 1..1 string Id của payload mà Reference thứ hai trỏ tới
.... chuKyDonVi 1..1 BackboneElement CHUKYDONVI — thông tin chữ ký của đơn vị
..... @id 0..1 string Unique id for inter-element referencing
..... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
..... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
..... signature 1..1 BackboneElement ds:Signature
...... @id 1..1 string Signature/@Id
...... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
...... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
...... namespace 1..1 uri xmlns của XMLDSig
...... signedInfo 1..1 BackboneElement ds:SignedInfo
....... @id 0..1 string Unique id for inter-element referencing
....... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
....... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
....... canonicalizationAlgorithm 1..1 uri CanonicalizationMethod/@Algorithm — C14N 2001 theo exemplar nguồn
....... signatureAlgorithm 1..1 uri SignatureMethod/@Algorithm — RSA-SHA256 theo exemplar nguồn
....... reference 2..2 BackboneElement Hai ds:Reference: một tới Object chữ ký, một tới payload
........ @id 0..1 string Unique id for inter-element referencing
........ extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
........ modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
........ uri 1..1 string Reference/@URI
........ digestAlgorithm 1..1 uri DigestMethod/@Algorithm — SHA-256 theo exemplar nguồn
........ digestValue 1..1 base64Binary DigestValue
...... signatureValue 1..1 base64Binary SignatureValue
...... keyInfo 1..1 BackboneElement KeyInfo
....... @id 0..1 string Unique id for inter-element referencing
....... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
....... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
....... x509Data 1..1 BackboneElement X509Data
........ @id 0..1 string Unique id for inter-element referencing
........ extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
........ modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
........ x509SubjectName 1..1 string X509SubjectName
........ x509Certificate 1..1 base64Binary X509Certificate — DER mã hoá Base64
...... object 1..1 BackboneElement ds:Object
....... @id 1..1 string Object/@Id
....... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
....... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
....... signatureProperties 1..1 BackboneElement SignatureProperties
........ @id 0..1 string Unique id for inter-element referencing
........ extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
........ modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
........ signatureProperty 1..1 BackboneElement SignatureProperty
......... @id 1..1 string SignatureProperty/@Id
......... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
......... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
......... target 1..1 string SignatureProperty/@Target
......... signingTime 1..1 dateTime SigningTime — thời điểm ký do bên ký khai

doco Documentation for this format

Constraints

Id Grade Path(s) Description Expression
ele-1 error **ALL** elements All FHIR elements must have a @value or children hasValue() or (children().count() > id.count())
ext-1 error **ALL** extensions Must have either extensions or value[x], not both extension.exists() != value.exists()
vn-q326-reference-roles error vnBhytGatewaySignedEnvelopeLm SignedInfo phải có đúng một Reference tới Object chữ ký và một Reference tới payload. SignedInfo SHALL carry exactly one Reference to the signature Object and one to the payload. signedXml.chuKyDonVi.signature.signedInfo.reference.uri.where(startsWith('#Object-CHUKYDONVI-Id-')).count() = 1 and signedXml.chuKyDonVi.signature.signedInfo.reference.uri.where(startsWith('#Id-')).count() = 1

Summary

Mandatory: 3 elements(32 nested mandatory elements)

 

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