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
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
| Draft tại thời điểm 2026-09-22 |
Các định nghĩa cho vnPatientSafetyIncidentReportLm mô hình logic
Guidance on how to interpret the contents of this table can be foundhere
| 0. vnPatientSafetyIncidentReportLm | |
| Definition | Logical model đặc tả nội dung mà Thông tư 43/2018/TT-BYT (ban hành 31/12/2018) BUỘC phải có trong báo cáo sự cố y khoa — làm bảng chỉ tiêu văn bản để đối chiếu cardinality của profile sự cố an toàn người bệnh. Điều 5 khoản 3 điểm a, phần báo cáo tự nguyện, nêu nguyên văn: 'Nội dung báo cáo tối thiểu cần có: Địa điểm, thời điểm xảy ra và mô tả, đánh giá sơ bộ về sự cố, tình trạng của người bị ảnh hưởng, biện pháp xử lý ban đầu theo Mẫu Báo cáo sự cố y khoa quy định tại Phụ lục III ban hành kèm theo Thông tư này.' Cùng điểm a, phần báo cáo bắt buộc, đặt ngưỡng cao hơn: 'Nội dung báo cáo phải đầy đủ tất cả các thông tin có trên Mẫu Báo cáo sự cố y khoa quy định tại Phụ lục III và ghi rõ họ tên người báo cáo.' Ngưỡng ấy dẫn sang mẫu ở phụ lục nên chưa khai được thành trường; model dừng ở danh sách tối thiểu mà văn bản liệt kê tường minh. Chuỗi báo cáo của mức bắt buộc cũng khác: người gây ra hoặc phát hiện sự cố báo cho trưởng khoa và bộ phận quản lý sự cố; trưởng khoa báo cho lãnh đạo cơ sở; lãnh đạo cơ sở báo NGAY cho cơ quan quản lý. Ba chặng ấy là quy trình, không sinh trường dữ liệu nào ngoài danh tính người báo cáo. / Logical model for the patient safety incident report content required by Circular 43/2018/TT-BYT. |
| Short | Nội dung bắt buộc của báo cáo sự cố y khoa (TT 43/2018/TT-BYT) — Logical Model |
| Control | 0..* |
| Is Modifier | false |
| Logical Model | Instances of this logical model are not marked to be the target of a Reference |
| 2. vnPatientSafetyIncidentReportLm.baoCaoSuCo | |
| Definition | Báo cáo một sự cố y khoa |
| Short | Báo cáo một sự cố y khoa |
| Control | 1..1 |
| Type | BackboneElement |
| Invariants | ele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count())) |
| 4. vnPatientSafetyIncidentReportLm.baoCaoSuCo.id | |
| Definition | Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces. |
| Short | Unique id for inter-element referencing |
| Control | 0..1 |
| Type | string |
| Is Modifier | false |
| XML Format | In the XML format, this property is represented as an attribute. |
| Summary | false |
| 6. vnPatientSafetyIncidentReportLm.baoCaoSuCo.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. |
| Short | Additional 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. |
| Control | 0..* |
| Type | Extension |
| Is Modifier | false |
| Summary | false |
| Alternate Names | extensions, user content |
| Invariants | ele-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()) |
| Slicing | This element introduces a set of slices on vnPatientSafetyIncidentReportLm.baoCaoSuCo.extension. The slices areUnordered and Open, and can be differentiated using the following discriminators: |
| 8. vnPatientSafetyIncidentReportLm.baoCaoSuCo.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). |
| Short | Extensions 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. |
| Control | 0..* |
| Type | Extension |
| Is Modifier | true because Modifier extensions are expected to modify the meaning or interpretation of the element that contains them |
| Summary | true |
| 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 Names | extensions, user content, modifiers |
| Invariants | ele-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()) |
| 10. vnPatientSafetyIncidentReportLm.baoCaoSuCo.diaDiemXayRa | |
| Definition | Địa điểm xảy ra sự cố |
| Short | Địa điểm xảy ra sự cố |
| Control | 1..1 |
| Type | string |
| Primitive Value | This primitive element may be present, or absent, or replaced by an extension |
| 12. vnPatientSafetyIncidentReportLm.baoCaoSuCo.thoiDiemXayRa | |
| Definition | Thời điểm xảy ra sự cố |
| Short | Thời điểm xảy ra sự cố |
| Comments | Thời điểm XẢY RA, phân biệt với thời điểm GHI NHẬN báo cáo — khoảng cách giữa hai mốc chính là độ trễ phát hiện, một chỉ số an toàn người bệnh. Sửa 06/09/2026 sau phản biện Fable: bản đầu trỏ |
| Control | 1..1 |
| Type | dateTime |
| Primitive Value | This primitive element may be present, or absent, or replaced by an extension |
| 14. vnPatientSafetyIncidentReportLm.baoCaoSuCo.moTaSuCo | |
| Definition | Mô tả và đánh giá sơ bộ về sự cố |
| Short | Mô tả và đánh giá sơ bộ về sự cố |
| Comments | Văn bản ghép 'mô tả, đánh giá sơ bộ' trong một cụm: mô tả là việc đã xảy ra, đánh giá sơ bộ là nhận định ban đầu về nguyên nhân và mức độ. Trên profile, phân loại sự cố nằm ở |
| Control | 1..1 |
| Type | string |
| Primitive Value | This primitive element may be present, or absent, or replaced by an extension |
| 16. vnPatientSafetyIncidentReportLm.baoCaoSuCo.tinhTrangNguoiBiAnhHuong | |
| Definition | Tình trạng của người bị ảnh hưởng |
| Short | Tình trạng của người bị ảnh hưởng |
| Comments | Hậu quả trên người bệnh — trên profile là |
| Control | 1..1 |
| Type | string |
| Primitive Value | This primitive element may be present, or absent, or replaced by an extension |
| 18. vnPatientSafetyIncidentReportLm.baoCaoSuCo.bienPhapXuLyBanDau | |
| Definition | Biện pháp xử lý ban đầu |
| Short | Biện pháp xử lý ban đầu |
| Comments | Mục này chưa có element riêng trên VNCoreAdverseEventPatientSafety; AdverseEvent của R4 không mang trường biện pháp xử lý. Ghi nợ tại đây thay vì trỏ bừa vào một element mang nghĩa khác — chu kỳ sau cân nhắc extension riêng hoặc liên kết tới Procedure/Task xử lý sự cố. |
| Control | 1..1 |
| Type | string |
| Primitive Value | This primitive element may be present, or absent, or replaced by an extension |
| 20. vnPatientSafetyIncidentReportLm.baoCaoSuCo.hoTenNguoiBaoCao | |
| Definition | Họ tên người báo cáo |
| Short | Họ tên người báo cáo |
| Comments | min = 0 vì nghĩa vụ này chỉ áp cho báo cáo BẮT BUỘC: 'Nội dung báo cáo phải đầy đủ tất cả các thông tin có trên Mẫu Báo cáo… và ghi rõ họ tên người báo cáo.' Báo cáo tự nguyện không đòi danh tính — đó là điều kiện để người trong cuộc dám báo cáo, nên ép 1..1 sẽ phá chính cơ chế mà thông tư dựng lên. |
| Control | 0..1 |
| Type | string |
| Primitive Value | This primitive element may be present, or absent, or replaced by an extension |
Guidance on how to interpret the contents of this table can be foundhere
| 0. vnPatientSafetyIncidentReportLm | |
| Definition | Logical model đặc tả nội dung mà Thông tư 43/2018/TT-BYT (ban hành 31/12/2018) BUỘC phải có trong báo cáo sự cố y khoa — làm bảng chỉ tiêu văn bản để đối chiếu cardinality của profile sự cố an toàn người bệnh. Điều 5 khoản 3 điểm a, phần báo cáo tự nguyện, nêu nguyên văn: 'Nội dung báo cáo tối thiểu cần có: Địa điểm, thời điểm xảy ra và mô tả, đánh giá sơ bộ về sự cố, tình trạng của người bị ảnh hưởng, biện pháp xử lý ban đầu theo Mẫu Báo cáo sự cố y khoa quy định tại Phụ lục III ban hành kèm theo Thông tư này.' Cùng điểm a, phần báo cáo bắt buộc, đặt ngưỡng cao hơn: 'Nội dung báo cáo phải đầy đủ tất cả các thông tin có trên Mẫu Báo cáo sự cố y khoa quy định tại Phụ lục III và ghi rõ họ tên người báo cáo.' Ngưỡng ấy dẫn sang mẫu ở phụ lục nên chưa khai được thành trường; model dừng ở danh sách tối thiểu mà văn bản liệt kê tường minh. Chuỗi báo cáo của mức bắt buộc cũng khác: người gây ra hoặc phát hiện sự cố báo cho trưởng khoa và bộ phận quản lý sự cố; trưởng khoa báo cho lãnh đạo cơ sở; lãnh đạo cơ sở báo NGAY cho cơ quan quản lý. Ba chặng ấy là quy trình, không sinh trường dữ liệu nào ngoài danh tính người báo cáo. / Logical model for the patient safety incident report content required by Circular 43/2018/TT-BYT. |
| Short | Nội dung bắt buộc của báo cáo sự cố y khoa (TT 43/2018/TT-BYT) — Logical Model |
| Logical Model | Instances of this logical model are not marked to be the target of a Reference |
| 2. vnPatientSafetyIncidentReportLm.baoCaoSuCo | |
| Definition | Báo cáo một sự cố y khoa |
| Short | Báo cáo một sự cố y khoa |
| Control | 1..1 |
| Type | BackboneElement |
| 4. vnPatientSafetyIncidentReportLm.baoCaoSuCo.diaDiemXayRa | |
| Definition | Địa điểm xảy ra sự cố |
| Short | Địa điểm xảy ra sự cố |
| Control | 1..1 |
| Type | string |
| Primitive Value | This primitive element may be present, or absent, or replaced by an extension |
| 6. vnPatientSafetyIncidentReportLm.baoCaoSuCo.thoiDiemXayRa | |
| Definition | Thời điểm xảy ra sự cố |
| Short | Thời điểm xảy ra sự cố |
| Comments | Thời điểm XẢY RA, phân biệt với thời điểm GHI NHẬN báo cáo — khoảng cách giữa hai mốc chính là độ trễ phát hiện, một chỉ số an toàn người bệnh. Sửa 06/09/2026 sau phản biện Fable: bản đầu trỏ |
| Control | 1..1 |
| Type | dateTime |
| Primitive Value | This primitive element may be present, or absent, or replaced by an extension |
| 8. vnPatientSafetyIncidentReportLm.baoCaoSuCo.moTaSuCo | |
| Definition | Mô tả và đánh giá sơ bộ về sự cố |
| Short | Mô tả và đánh giá sơ bộ về sự cố |
| Comments | Văn bản ghép 'mô tả, đánh giá sơ bộ' trong một cụm: mô tả là việc đã xảy ra, đánh giá sơ bộ là nhận định ban đầu về nguyên nhân và mức độ. Trên profile, phân loại sự cố nằm ở |
| Control | 1..1 |
| Type | string |
| Primitive Value | This primitive element may be present, or absent, or replaced by an extension |
| 10. vnPatientSafetyIncidentReportLm.baoCaoSuCo.tinhTrangNguoiBiAnhHuong | |
| Definition | Tình trạng của người bị ảnh hưởng |
| Short | Tình trạng của người bị ảnh hưởng |
| Comments | Hậu quả trên người bệnh — trên profile là |
| Control | 1..1 |
| Type | string |
| Primitive Value | This primitive element may be present, or absent, or replaced by an extension |
| 12. vnPatientSafetyIncidentReportLm.baoCaoSuCo.bienPhapXuLyBanDau | |
| Definition | Biện pháp xử lý ban đầu |
| Short | Biện pháp xử lý ban đầu |
| Comments | Mục này chưa có element riêng trên VNCoreAdverseEventPatientSafety; AdverseEvent của R4 không mang trường biện pháp xử lý. Ghi nợ tại đây thay vì trỏ bừa vào một element mang nghĩa khác — chu kỳ sau cân nhắc extension riêng hoặc liên kết tới Procedure/Task xử lý sự cố. |
| Control | 1..1 |
| Type | string |
| Primitive Value | This primitive element may be present, or absent, or replaced by an extension |
| 14. vnPatientSafetyIncidentReportLm.baoCaoSuCo.hoTenNguoiBaoCao | |
| Definition | Họ tên người báo cáo |
| Short | Họ tên người báo cáo |
| Comments | min = 0 vì nghĩa vụ này chỉ áp cho báo cáo BẮT BUỘC: 'Nội dung báo cáo phải đầy đủ tất cả các thông tin có trên Mẫu Báo cáo… và ghi rõ họ tên người báo cáo.' Báo cáo tự nguyện không đòi danh tính — đó là điều kiện để người trong cuộc dám báo cáo, nên ép 1..1 sẽ phá chính cơ chế mà thông tư dựng lên. |
| Control | 0..1 |
| Type | string |
| Primitive Value | This primitive element may be present, or absent, or replaced by an extension |
Guidance on how to interpret the contents of this table can be foundhere
| 0. vnPatientSafetyIncidentReportLm | |
| Definition | Logical model đặc tả nội dung mà Thông tư 43/2018/TT-BYT (ban hành 31/12/2018) BUỘC phải có trong báo cáo sự cố y khoa — làm bảng chỉ tiêu văn bản để đối chiếu cardinality của profile sự cố an toàn người bệnh. Điều 5 khoản 3 điểm a, phần báo cáo tự nguyện, nêu nguyên văn: 'Nội dung báo cáo tối thiểu cần có: Địa điểm, thời điểm xảy ra và mô tả, đánh giá sơ bộ về sự cố, tình trạng của người bị ảnh hưởng, biện pháp xử lý ban đầu theo Mẫu Báo cáo sự cố y khoa quy định tại Phụ lục III ban hành kèm theo Thông tư này.' Cùng điểm a, phần báo cáo bắt buộc, đặt ngưỡng cao hơn: 'Nội dung báo cáo phải đầy đủ tất cả các thông tin có trên Mẫu Báo cáo sự cố y khoa quy định tại Phụ lục III và ghi rõ họ tên người báo cáo.' Ngưỡng ấy dẫn sang mẫu ở phụ lục nên chưa khai được thành trường; model dừng ở danh sách tối thiểu mà văn bản liệt kê tường minh. Chuỗi báo cáo của mức bắt buộc cũng khác: người gây ra hoặc phát hiện sự cố báo cho trưởng khoa và bộ phận quản lý sự cố; trưởng khoa báo cho lãnh đạo cơ sở; lãnh đạo cơ sở báo NGAY cho cơ quan quản lý. Ba chặng ấy là quy trình, không sinh trường dữ liệu nào ngoài danh tính người báo cáo. / Logical model for the patient safety incident report content required by Circular 43/2018/TT-BYT. |
| Short | Nội dung bắt buộc của báo cáo sự cố y khoa (TT 43/2018/TT-BYT) — Logical Model |
| Control | 0..* |
| Is Modifier | false |
| Logical Model | Instances of this logical model are not marked to be the target of a Reference |
| 2. vnPatientSafetyIncidentReportLm.baoCaoSuCo | |
| Definition | Báo cáo một sự cố y khoa |
| Short | Báo cáo một sự cố y khoa |
| Control | 1..1 |
| Type | BackboneElement |
| Invariants | ele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count())) |
| 4. vnPatientSafetyIncidentReportLm.baoCaoSuCo.id | |
| Definition | Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces. |
| Short | Unique id for inter-element referencing |
| Control | 0..1 |
| Type | string |
| Is Modifier | false |
| XML Format | In the XML format, this property is represented as an attribute. |
| Summary | false |
| 6. vnPatientSafetyIncidentReportLm.baoCaoSuCo.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. |
| Short | Additional 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. |
| Control | 0..* |
| Type | Extension |
| Is Modifier | false |
| Summary | false |
| Alternate Names | extensions, user content |
| Invariants | ele-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()) |
| Slicing | This element introduces a set of slices on vnPatientSafetyIncidentReportLm.baoCaoSuCo.extension. The slices areUnordered and Open, and can be differentiated using the following discriminators: |
| 8. vnPatientSafetyIncidentReportLm.baoCaoSuCo.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). |
| Short | Extensions 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. |
| Control | 0..* |
| Type | Extension |
| Is Modifier | true because Modifier extensions are expected to modify the meaning or interpretation of the element that contains them |
| Summary | true |
| 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 Names | extensions, user content, modifiers |
| Invariants | ele-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()) |
| 10. vnPatientSafetyIncidentReportLm.baoCaoSuCo.diaDiemXayRa | |
| Definition | Địa điểm xảy ra sự cố |
| Short | Địa điểm xảy ra sự cố |
| Control | 1..1 |
| Type | string |
| Primitive Value | This primitive element may be present, or absent, or replaced by an extension |
| 12. vnPatientSafetyIncidentReportLm.baoCaoSuCo.thoiDiemXayRa | |
| Definition | Thời điểm xảy ra sự cố |
| Short | Thời điểm xảy ra sự cố |
| Comments | Thời điểm XẢY RA, phân biệt với thời điểm GHI NHẬN báo cáo — khoảng cách giữa hai mốc chính là độ trễ phát hiện, một chỉ số an toàn người bệnh. Sửa 06/09/2026 sau phản biện Fable: bản đầu trỏ |
| Control | 1..1 |
| Type | dateTime |
| Primitive Value | This primitive element may be present, or absent, or replaced by an extension |
| 14. vnPatientSafetyIncidentReportLm.baoCaoSuCo.moTaSuCo | |
| Definition | Mô tả và đánh giá sơ bộ về sự cố |
| Short | Mô tả và đánh giá sơ bộ về sự cố |
| Comments | Văn bản ghép 'mô tả, đánh giá sơ bộ' trong một cụm: mô tả là việc đã xảy ra, đánh giá sơ bộ là nhận định ban đầu về nguyên nhân và mức độ. Trên profile, phân loại sự cố nằm ở |
| Control | 1..1 |
| Type | string |
| Primitive Value | This primitive element may be present, or absent, or replaced by an extension |
| 16. vnPatientSafetyIncidentReportLm.baoCaoSuCo.tinhTrangNguoiBiAnhHuong | |
| Definition | Tình trạng của người bị ảnh hưởng |
| Short | Tình trạng của người bị ảnh hưởng |
| Comments | Hậu quả trên người bệnh — trên profile là |
| Control | 1..1 |
| Type | string |
| Primitive Value | This primitive element may be present, or absent, or replaced by an extension |
| 18. vnPatientSafetyIncidentReportLm.baoCaoSuCo.bienPhapXuLyBanDau | |
| Definition | Biện pháp xử lý ban đầu |
| Short | Biện pháp xử lý ban đầu |
| Comments | Mục này chưa có element riêng trên VNCoreAdverseEventPatientSafety; AdverseEvent của R4 không mang trường biện pháp xử lý. Ghi nợ tại đây thay vì trỏ bừa vào một element mang nghĩa khác — chu kỳ sau cân nhắc extension riêng hoặc liên kết tới Procedure/Task xử lý sự cố. |
| Control | 1..1 |
| Type | string |
| Primitive Value | This primitive element may be present, or absent, or replaced by an extension |
| 20. vnPatientSafetyIncidentReportLm.baoCaoSuCo.hoTenNguoiBaoCao | |
| Definition | Họ tên người báo cáo |
| Short | Họ tên người báo cáo |
| Comments | min = 0 vì nghĩa vụ này chỉ áp cho báo cáo BẮT BUỘC: 'Nội dung báo cáo phải đầy đủ tất cả các thông tin có trên Mẫu Báo cáo… và ghi rõ họ tên người báo cáo.' Báo cáo tự nguyện không đòi danh tính — đó là điều kiện để người trong cuộc dám báo cáo, nên ép 1..1 sẽ phá chính cơ chế mà thông tư dựng lên. |
| Control | 0..1 |
| Type | string |
| Primitive Value | This primitive element may be present, or absent, or replaced by an extension |