HL7 Vietnam VN Core FHIR Implementation Guide

Bộ Hướng dẫn Triển khai Core FHIR cho Việt Nam
0.6.0 - Draft for Community Review Viet Nam cờ

Bộ Hướng dẫn Triển khai Core FHIR cho Việt Nam - Draft for Community Review (v0.6.0) built by the FHIR (HL7® FHIR® Standard) Build Tools. See the Directory of published versions

Hồ sơ tài nguyên: Đợt chăm sóc VN Core — VN Core EpisodeOfCare Profile

URL chính thức: http://fhir.hl7.org.vn/core/StructureDefinition/vn-core-episode-of-care Phiên bản: 0.6.0
Computable Name: VNCoreEpisodeOfCare

Bản quyền/Pháp lý: Căn cứ pháp lý Việt Nam: TT 13/2025/TT-BYT ngày 06/06/2025; QĐ 3176/QĐ-BYT ngày 29/10/2024.

Profile EpisodeOfCare gom nhiều Encounter thành một đợt điều trị/chương trình: quản lý bệnh mạn tính BHYT (ĐTĐ/THA/COPD/ung thư), chương trình DOTS lao, quản lý thai sản, hoặc nối lượt cấp cứu → nội trú trong cùng đợt. Giúp theo dõi liên tục (longitudinal) thay vì rời rạc theo từng lượt. Căn cứ pháp lý:

  • TT 13/2025/TT-BYT — bệnh án điện tử (theo dõi đợt điều trị)
  • QĐ 3176/QĐ-BYT (29/10/2024) — chuẩn dữ liệu đầu ra KCB (đợt KCB). / VN Core EpisodeOfCare grouping multiple encounters into a treatment episode/program.

Usages:

You can also check for usages in the FHIR IG Statistics

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

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

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. EpisodeOfCare 0..* EpisodeOfCare An association of a Patient with an Organization and Healthcare Provider(s) for a period of time that the Organization assumes some level of responsibility
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
... status ?!SΣ 1..1 code Trạng thái đợt: planned, waitlist, active, onhold, finished, cancelled
Binding: EpisodeOfCareStatus (required): The status of the episode of care.
... diagnosis SΣ 0..* BackboneElement Chẩn đoán gắn với đợt (bệnh mạn/chính)
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
.... condition Σ 1..1 Reference(Chẩn đoán VN Core — VN Core Condition Profile) Conditions/problems/diagnoses this episode of care is for
... patient SΣ 1..1 Reference(Bệnh nhân VN Core — VN Core Patient Profile) Người bệnh của đợt chăm sóc
... managingOrganization SΣ 0..1 Reference(Cơ sở y tế VN Core — VN Core Organization Profile) Cơ sở quản lý đợt
... period SΣ 0..1 Period Khoảng thời gian đợt chăm sóc

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
EpisodeOfCare.status Base required EpisodeOfCareStatus 📍4.0.1 FHIR Std.
EpisodeOfCare.type Base example Episode of care type 📍4.0.1 FHIR Std.

Constraints

Id Grade Path(s) Description Expression
dom-2 error EpisodeOfCare If the resource is contained in another resource, it SHALL NOT contain nested Resources contained.contained.empty()
dom-3 error EpisodeOfCare 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 error EpisodeOfCare 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 error EpisodeOfCare If a resource is contained in another resource, it SHALL NOT have a security label contained.meta.security.empty()
dom-6 best practice EpisodeOfCare A resource should have narrative for robust management text.`div`.exists()
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()

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. EpisodeOfCare 0..* EpisodeOfCare An association of a Patient with an Organization and Healthcare Provider(s) for a period of time that the Organization assumes some level of responsibility
... status S 1..1 code Trạng thái đợt: planned, waitlist, active, onhold, finished, cancelled
... type S 0..* CodeableConcept Loại đợt: bệnh mạn tính, chương trình (lao/thai sản), nối cấp cứu-nội trú
... diagnosis S 0..* BackboneElement Chẩn đoán gắn với đợt (bệnh mạn/chính)
.... condition 1..1 Reference(Chẩn đoán VN Core — VN Core Condition Profile) Conditions/problems/diagnoses this episode of care is for
... managingOrganization S 0..1 Reference(Cơ sở y tế VN Core — VN Core Organization Profile) Cơ sở quản lý đợt
... period S 0..1 Period Khoảng thời gian đợt chăm sóc

doco Documentation for this format
NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. EpisodeOfCare 0..* EpisodeOfCare An association of a Patient with an Organization and Healthcare Provider(s) for a period of time that the Organization assumes some level of responsibility
... id Σ 0..1 id Logical id of this artifact
... meta Σ 0..1 Meta Metadata about the resource
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... text 0..1 Narrative Text summary of the resource, for human interpretation
This profile does not constrain the narrative in regard to content, language, or traceability to data elements
... contained 0..* Resource Contained, inline Resources
... extension 0..* Extension Additional content defined by implementations
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
... identifier 0..* Identifier Business Identifier(s) relevant for this EpisodeOfCare
... status ?!SΣ 1..1 code Trạng thái đợt: planned, waitlist, active, onhold, finished, cancelled
Binding: EpisodeOfCareStatus (required): The status of the episode of care.
... statusHistory 0..* BackboneElement Past list of status codes (the current status may be included to cover the start date of the status)
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
.... status 1..1 code planned | waitlist | active | onhold | finished | cancelled | entered-in-error
Binding: EpisodeOfCareStatus (required): The status of the episode of care.
.... period 1..1 Period Duration the EpisodeOfCare was in the specified status
... type SΣ 0..* CodeableConcept Loại đợt: bệnh mạn tính, chương trình (lao/thai sản), nối cấp cứu-nội trú
Binding: EpisodeOfCareType (example): The type of the episode of care.
... diagnosis SΣ 0..* BackboneElement Chẩn đoán gắn với đợt (bệnh mạn/chính)
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
.... condition Σ 1..1 Reference(Chẩn đoán VN Core — VN Core Condition Profile) Conditions/problems/diagnoses this episode of care is for
.... role Σ 0..1 CodeableConcept Role that this diagnosis has within the episode of care (e.g. admission, billing, discharge …)
Binding: DiagnosisRole (preferred): The type of diagnosis this condition represents.
.... rank Σ 0..1 positiveInt Ranking of the diagnosis (for each role type)
... patient SΣ 1..1 Reference(Bệnh nhân VN Core — VN Core Patient Profile) Người bệnh của đợt chăm sóc
... managingOrganization SΣ 0..1 Reference(Cơ sở y tế VN Core — VN Core Organization Profile) Cơ sở quản lý đợt
... period SΣ 0..1 Period Khoảng thời gian đợt chăm sóc
... referralRequest 0..* Reference(ServiceRequest) Originating Referral Request(s)
... careManager 0..1 Reference(Practitioner | PractitionerRole) Care manager/care coordinator for the patient
... team 0..* Reference(CareTeam) Other practitioners facilitating this episode of care
... account 0..* Reference(Account) The set of accounts that may be used for billing for this EpisodeOfCare

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
EpisodeOfCare.language Base preferred Common Languages 📍4.0.1 FHIR Std.
EpisodeOfCare.status Base required EpisodeOfCareStatus 📍4.0.1 FHIR Std.
EpisodeOfCare.statusHistory.​status Base required EpisodeOfCareStatus 📍4.0.1 FHIR Std.
EpisodeOfCare.type Base example Episode of care type 📍4.0.1 FHIR Std.
EpisodeOfCare.diagnosis.​role Base preferred DiagnosisRole 📍4.0.1 FHIR Std.

Constraints

Id Grade Path(s) Description Expression
dom-2 error EpisodeOfCare If the resource is contained in another resource, it SHALL NOT contain nested Resources contained.contained.empty()
dom-3 error EpisodeOfCare 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 error EpisodeOfCare 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 error EpisodeOfCare If a resource is contained in another resource, it SHALL NOT have a security label contained.meta.security.empty()
dom-6 best practice EpisodeOfCare A resource should have narrative for robust management text.`div`.exists()
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()

Dạng xem phần tử chính

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. EpisodeOfCare 0..* EpisodeOfCare An association of a Patient with an Organization and Healthcare Provider(s) for a period of time that the Organization assumes some level of responsibility
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
... status ?!SΣ 1..1 code Trạng thái đợt: planned, waitlist, active, onhold, finished, cancelled
Binding: EpisodeOfCareStatus (required): The status of the episode of care.
... diagnosis SΣ 0..* BackboneElement Chẩn đoán gắn với đợt (bệnh mạn/chính)
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
.... condition Σ 1..1 Reference(Chẩn đoán VN Core — VN Core Condition Profile) Conditions/problems/diagnoses this episode of care is for
... patient SΣ 1..1 Reference(Bệnh nhân VN Core — VN Core Patient Profile) Người bệnh của đợt chăm sóc
... managingOrganization SΣ 0..1 Reference(Cơ sở y tế VN Core — VN Core Organization Profile) Cơ sở quản lý đợt
... period SΣ 0..1 Period Khoảng thời gian đợt chăm sóc

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
EpisodeOfCare.status Base required EpisodeOfCareStatus 📍4.0.1 FHIR Std.
EpisodeOfCare.type Base example Episode of care type 📍4.0.1 FHIR Std.

Constraints

Id Grade Path(s) Description Expression
dom-2 error EpisodeOfCare If the resource is contained in another resource, it SHALL NOT contain nested Resources contained.contained.empty()
dom-3 error EpisodeOfCare 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 error EpisodeOfCare 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 error EpisodeOfCare If a resource is contained in another resource, it SHALL NOT have a security label contained.meta.security.empty()
dom-6 best practice EpisodeOfCare A resource should have narrative for robust management text.`div`.exists()
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()

Dạng xem Differential

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. EpisodeOfCare 0..* EpisodeOfCare An association of a Patient with an Organization and Healthcare Provider(s) for a period of time that the Organization assumes some level of responsibility
... status S 1..1 code Trạng thái đợt: planned, waitlist, active, onhold, finished, cancelled
... type S 0..* CodeableConcept Loại đợt: bệnh mạn tính, chương trình (lao/thai sản), nối cấp cứu-nội trú
... diagnosis S 0..* BackboneElement Chẩn đoán gắn với đợt (bệnh mạn/chính)
.... condition 1..1 Reference(Chẩn đoán VN Core — VN Core Condition Profile) Conditions/problems/diagnoses this episode of care is for
... managingOrganization S 0..1 Reference(Cơ sở y tế VN Core — VN Core Organization Profile) Cơ sở quản lý đợt
... period S 0..1 Period Khoảng thời gian đợt chăm sóc

doco Documentation for this format

Dạng xem SnapshotView

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. EpisodeOfCare 0..* EpisodeOfCare An association of a Patient with an Organization and Healthcare Provider(s) for a period of time that the Organization assumes some level of responsibility
... id Σ 0..1 id Logical id of this artifact
... meta Σ 0..1 Meta Metadata about the resource
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... text 0..1 Narrative Text summary of the resource, for human interpretation
This profile does not constrain the narrative in regard to content, language, or traceability to data elements
... contained 0..* Resource Contained, inline Resources
... extension 0..* Extension Additional content defined by implementations
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
... identifier 0..* Identifier Business Identifier(s) relevant for this EpisodeOfCare
... status ?!SΣ 1..1 code Trạng thái đợt: planned, waitlist, active, onhold, finished, cancelled
Binding: EpisodeOfCareStatus (required): The status of the episode of care.
... statusHistory 0..* BackboneElement Past list of status codes (the current status may be included to cover the start date of the status)
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
.... status 1..1 code planned | waitlist | active | onhold | finished | cancelled | entered-in-error
Binding: EpisodeOfCareStatus (required): The status of the episode of care.
.... period 1..1 Period Duration the EpisodeOfCare was in the specified status
... type SΣ 0..* CodeableConcept Loại đợt: bệnh mạn tính, chương trình (lao/thai sản), nối cấp cứu-nội trú
Binding: EpisodeOfCareType (example): The type of the episode of care.
... diagnosis SΣ 0..* BackboneElement Chẩn đoán gắn với đợt (bệnh mạn/chính)
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
.... condition Σ 1..1 Reference(Chẩn đoán VN Core — VN Core Condition Profile) Conditions/problems/diagnoses this episode of care is for
.... role Σ 0..1 CodeableConcept Role that this diagnosis has within the episode of care (e.g. admission, billing, discharge …)
Binding: DiagnosisRole (preferred): The type of diagnosis this condition represents.
.... rank Σ 0..1 positiveInt Ranking of the diagnosis (for each role type)
... patient SΣ 1..1 Reference(Bệnh nhân VN Core — VN Core Patient Profile) Người bệnh của đợt chăm sóc
... managingOrganization SΣ 0..1 Reference(Cơ sở y tế VN Core — VN Core Organization Profile) Cơ sở quản lý đợt
... period SΣ 0..1 Period Khoảng thời gian đợt chăm sóc
... referralRequest 0..* Reference(ServiceRequest) Originating Referral Request(s)
... careManager 0..1 Reference(Practitioner | PractitionerRole) Care manager/care coordinator for the patient
... team 0..* Reference(CareTeam) Other practitioners facilitating this episode of care
... account 0..* Reference(Account) The set of accounts that may be used for billing for this EpisodeOfCare

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
EpisodeOfCare.language Base preferred Common Languages 📍4.0.1 FHIR Std.
EpisodeOfCare.status Base required EpisodeOfCareStatus 📍4.0.1 FHIR Std.
EpisodeOfCare.statusHistory.​status Base required EpisodeOfCareStatus 📍4.0.1 FHIR Std.
EpisodeOfCare.type Base example Episode of care type 📍4.0.1 FHIR Std.
EpisodeOfCare.diagnosis.​role Base preferred DiagnosisRole 📍4.0.1 FHIR Std.

Constraints

Id Grade Path(s) Description Expression
dom-2 error EpisodeOfCare If the resource is contained in another resource, it SHALL NOT contain nested Resources contained.contained.empty()
dom-3 error EpisodeOfCare 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 error EpisodeOfCare 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 error EpisodeOfCare If a resource is contained in another resource, it SHALL NOT have a security label contained.meta.security.empty()
dom-6 best practice EpisodeOfCare A resource should have narrative for robust management text.`div`.exists()
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()

 

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