Hướng dẫn triển khai FHIR cốt lõi Việt Nam — VN Core FHIR Implementation Guide
0.9.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.9.0) built by the FHIR (HL7® FHIR® Standard) Build Tools. See the Directory of published versions
| URL chính thức: http://fhir.hl7.org.vn/core/StructureDefinition/vn-core-schedule | Phiên bản: 0.9.0 | ||||
| Computable Name: VNCoreSchedule | |||||
| Định danh khác: OID:2.25.161089673617632664299011809196868855799.42.97 | |||||
Profile Schedule cho Việt Nam. Mô tả lịch cung cấp dịch vụ khám bệnh, chữa bệnh của người hành nghề, dịch vụ hoặc địa điểm — nền để sinh các khung giờ đặt được (VNCoreSlot) và nhận cuộc hẹn (VNCoreAppointment). FHIR R4 không cho phép trỏ thẳng Organization ở actor; lịch của một khoa phòng gắn qua VNCoreLocation hoặc VNCoreHealthcareService. Extension phương thức cung cấp dịch vụ cho biết lịch này dành cho khám trực tiếp, khám tại nhà hay khám từ xa; đây là thông tin người bệnh cần trước khi đặt. Căn cứ: Luật 15/2023/QH15 Điều 80 (khám bệnh, chữa bệnh từ xa), Điều 60 (trách nhiệm cơ sở); TT 32/2023/TT-BYT (phạm vi hành nghề — lịch phải nằm trong phạm vi hành nghề của người hành nghề); TT 13/2025/TT-BYT (bệnh án điện tử). / VN Core Schedule profile describing service availability of a practitioner, healthcare service or location, as the basis for bookable slots and appointments.
Usages:
You can also check for usages in the FHIR IG Statistics
Mô tả profile, differential, snapshot và các biểu diễn liên quan.
| Path | Status | Usage | ValueSet | Version | Source |
| Schedule.serviceCategory | Base | example | Service category | 📍4.0.1 | FHIR Std. |
| Schedule.serviceType | Base | extensible | Loại dịch vụ y tế tuyến cơ sở — VN Healthcare Service Type ValueSet | 📦0.9.0 | This IG |
| Schedule.specialty | Base | extensible | Chuyên khoa y tế — VN Medical Specialty ValueSet | 📦0.9.0 | This IG |
| Id | Grade | Path(s) | Description | Expression |
| dom-2 | error | Schedule | If the resource is contained in another resource, it SHALL NOT contain nested Resources |
contained.contained.empty()
|
| dom-3 | error | Schedule | 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 | Schedule | 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 | Schedule | If a resource is contained in another resource, it SHALL NOT have a security label |
contained.meta.security.empty()
|
| dom-6 | best practice | Schedule | 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()
|
| Path | Status | Usage | ValueSet | Version | Source |
| Schedule.serviceType | Base | extensible | Loại dịch vụ y tế tuyến cơ sở — VN Healthcare Service Type ValueSet | 📦0.9.0 | This IG |
| Schedule.specialty | Base | extensible | Chuyên khoa y tế — VN Medical Specialty ValueSet | 📦0.9.0 | This IG |
| Path | Status | Usage | ValueSet | Version | Source |
| Schedule.language | Base | preferred | Common Languages | 📍4.0.1 | FHIR Std. |
| Schedule.serviceCategory | Base | example | Service category | 📍4.0.1 | FHIR Std. |
| Schedule.serviceType | Base | extensible | Loại dịch vụ y tế tuyến cơ sở — VN Healthcare Service Type ValueSet | 📦0.9.0 | This IG |
| Schedule.specialty | Base | extensible | Chuyên khoa y tế — VN Medical Specialty ValueSet | 📦0.9.0 | This IG |
| Id | Grade | Path(s) | Description | Expression |
| dom-2 | error | Schedule | If the resource is contained in another resource, it SHALL NOT contain nested Resources |
contained.contained.empty()
|
| dom-3 | error | Schedule | 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 | Schedule | 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 | Schedule | If a resource is contained in another resource, it SHALL NOT have a security label |
contained.meta.security.empty()
|
| dom-6 | best practice | Schedule | 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()
|
Summary
Must-Support: 8 elements
Structures
This structure refers to these other structures:
Extensions
This structure refers to these extensions:
Dạng xem phần tử chính
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() |
|---|---|---|---|---|
![]() |
0..* | Schedule | A container for slots of time that may be available for booking appointments | |
![]() ![]() |
?!Σ | 0..1 | uri | A set of rules under which this content was created |
![]() ![]() |
0..* | Extension | Extension Slice: Unordered, Open by value:url | |
![]() ![]() ![]() |
S | 0..1 | CodeableConcept | Phương thức: trực tiếp | tại nhà | từ xa | hỗ trợ từ xa URL: http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-care-delivery-mode Binding: Phương thức cung cấp dịch vụ KCB — VN Care Delivery Mode ValueSet (extensible) |
![]() ![]() |
?! | 0..* | Extension | Extensions that cannot be ignored |
![]() ![]() |
SΣ | 0..* | Identifier | Mã lịch do cơ sở cấp |
![]() ![]() |
?!SΣ | 0..1 | boolean | Lịch còn hiệu lực để đặt hay không |
![]() ![]() |
SΣ | 0..* | CodeableConcept | Nhóm dịch vụ của lịch Binding: ServiceCategory (example) |
![]() ![]() |
SΣ | 0..* | CodeableConcept | Loại dịch vụ khám bệnh, chữa bệnh Binding: Loại dịch vụ y tế tuyến cơ sở — VN Healthcare Service Type ValueSet (extensible) |
![]() ![]() |
SΣ | 0..* | CodeableConcept | Chuyên khoa Binding: Chuyên khoa y tế — VN Medical Specialty ValueSet (extensible) |
![]() ![]() |
SΣ | 1..* | Reference(Nhân viên y tế VN Core — VN Core Practitioner Profile | Vai trò nhân viên y tế VN Core — VN Core PractitionerRole Profile | Dịch vụ y tế VN Core — VN Core HealthcareService Profile | Địa điểm cung cấp dịch vụ VN Core — VN Core Location Profile | Bệnh nhân VN Core — VN Core Patient Profile | Người liên quan/người giám hộ VN Core — VN Core RelatedPerson Profile | Thiết bị y tế VN Core — VN Core Device Profile) | Chủ thể mà lịch này thuộc về (người hành nghề, dịch vụ, địa điểm, thiết bị) |
![]() ![]() |
SΣ | 0..1 | Period | Khoảng thời gian lịch có hiệu lực để đặt |
![]() ![]() |
0..1 | string | Ghi chú về điều kiện đặt lịch | |
Documentation for this format | ||||
| Path | Status | Usage | ValueSet | Version | Source |
| Schedule.serviceCategory | Base | example | Service category | 📍4.0.1 | FHIR Std. |
| Schedule.serviceType | Base | extensible | Loại dịch vụ y tế tuyến cơ sở — VN Healthcare Service Type ValueSet | 📦0.9.0 | This IG |
| Schedule.specialty | Base | extensible | Chuyên khoa y tế — VN Medical Specialty ValueSet | 📦0.9.0 | This IG |
| Id | Grade | Path(s) | Description | Expression |
| dom-2 | error | Schedule | If the resource is contained in another resource, it SHALL NOT contain nested Resources |
contained.contained.empty()
|
| dom-3 | error | Schedule | 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 | Schedule | 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 | Schedule | If a resource is contained in another resource, it SHALL NOT have a security label |
contained.meta.security.empty()
|
| dom-6 | best practice | Schedule | 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
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() |
|---|---|---|---|---|
![]() |
0..* | Schedule | A container for slots of time that may be available for booking appointments | |
![]() ![]() |
0..* | Extension | Extension Slice: Unordered, Open by value:url | |
![]() ![]() ![]() |
S | 0..1 | CodeableConcept | Phương thức: trực tiếp | tại nhà | từ xa | hỗ trợ từ xa URL: http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-care-delivery-mode Binding: Phương thức cung cấp dịch vụ KCB — VN Care Delivery Mode ValueSet (extensible) |
![]() ![]() |
S | 0..* | Identifier | Mã lịch do cơ sở cấp |
![]() ![]() |
S | 0..1 | boolean | Lịch còn hiệu lực để đặt hay không |
![]() ![]() |
S | 0..* | CodeableConcept | Nhóm dịch vụ của lịch |
![]() ![]() |
S | 0..* | CodeableConcept | Loại dịch vụ khám bệnh, chữa bệnh Binding: Loại dịch vụ y tế tuyến cơ sở — VN Healthcare Service Type ValueSet (extensible) |
![]() ![]() |
S | 0..* | CodeableConcept | Chuyên khoa Binding: Chuyên khoa y tế — VN Medical Specialty ValueSet (extensible) |
![]() ![]() |
S | 1..* | Reference(Nhân viên y tế VN Core — VN Core Practitioner Profile | Vai trò nhân viên y tế VN Core — VN Core PractitionerRole Profile | Dịch vụ y tế VN Core — VN Core HealthcareService Profile | Địa điểm cung cấp dịch vụ VN Core — VN Core Location Profile | Bệnh nhân VN Core — VN Core Patient Profile | Người liên quan/người giám hộ VN Core — VN Core RelatedPerson Profile | Thiết bị y tế VN Core — VN Core Device Profile) | Chủ thể mà lịch này thuộc về (người hành nghề, dịch vụ, địa điểm, thiết bị) |
![]() ![]() |
S | 0..1 | Period | Khoảng thời gian lịch có hiệu lực để đặt |
![]() ![]() |
0..1 | string | Ghi chú về điều kiện đặt lịch | |
Documentation for this format | ||||
| Path | Status | Usage | ValueSet | Version | Source |
| Schedule.serviceType | Base | extensible | Loại dịch vụ y tế tuyến cơ sở — VN Healthcare Service Type ValueSet | 📦0.9.0 | This IG |
| Schedule.specialty | Base | extensible | Chuyên khoa y tế — VN Medical Specialty ValueSet | 📦0.9.0 | This IG |
Dạng xem SnapshotView
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() | ||||
|---|---|---|---|---|---|---|---|---|
![]() |
0..* | Schedule | A container for slots of time that may be available for booking appointments | |||||
![]() ![]() |
Σ | 0..1 | id | Logical id of this artifact | ||||
![]() ![]() |
Σ | 0..1 | Meta | Metadata about the resource | ||||
![]() ![]() |
?!Σ | 0..1 | uri | A set of rules under which this content was created | ||||
![]() ![]() |
0..1 | code | Language of the resource content Binding: CommonLanguages (preferred): A human language.
| |||||
![]() ![]() |
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 | |||||
![]() ![]() |
0..* | Resource | Contained, inline Resources | |||||
![]() ![]() |
0..* | Extension | Extension Slice: Unordered, Open by value:url | |||||
![]() ![]() ![]() |
S | 0..1 | CodeableConcept | Phương thức: trực tiếp | tại nhà | từ xa | hỗ trợ từ xa URL: http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-care-delivery-mode Binding: Phương thức cung cấp dịch vụ KCB — VN Care Delivery Mode ValueSet (extensible) | ||||
![]() ![]() |
?! | 0..* | Extension | Extensions that cannot be ignored | ||||
![]() ![]() |
SΣ | 0..* | Identifier | Mã lịch do cơ sở cấp | ||||
![]() ![]() |
?!SΣ | 0..1 | boolean | Lịch còn hiệu lực để đặt hay không | ||||
![]() ![]() |
SΣ | 0..* | CodeableConcept | Nhóm dịch vụ của lịch Binding: ServiceCategory (example) | ||||
![]() ![]() |
SΣ | 0..* | CodeableConcept | Loại dịch vụ khám bệnh, chữa bệnh Binding: Loại dịch vụ y tế tuyến cơ sở — VN Healthcare Service Type ValueSet (extensible) | ||||
![]() ![]() |
SΣ | 0..* | CodeableConcept | Chuyên khoa Binding: Chuyên khoa y tế — VN Medical Specialty ValueSet (extensible) | ||||
![]() ![]() |
SΣ | 1..* | Reference(Nhân viên y tế VN Core — VN Core Practitioner Profile | Vai trò nhân viên y tế VN Core — VN Core PractitionerRole Profile | Dịch vụ y tế VN Core — VN Core HealthcareService Profile | Địa điểm cung cấp dịch vụ VN Core — VN Core Location Profile | Bệnh nhân VN Core — VN Core Patient Profile | Người liên quan/người giám hộ VN Core — VN Core RelatedPerson Profile | Thiết bị y tế VN Core — VN Core Device Profile) | Chủ thể mà lịch này thuộc về (người hành nghề, dịch vụ, địa điểm, thiết bị) | ||||
![]() ![]() |
SΣ | 0..1 | Period | Khoảng thời gian lịch có hiệu lực để đặt | ||||
![]() ![]() |
0..1 | string | Ghi chú về điều kiện đặt lịch | |||||
Documentation for this format | ||||||||
| Path | Status | Usage | ValueSet | Version | Source |
| Schedule.language | Base | preferred | Common Languages | 📍4.0.1 | FHIR Std. |
| Schedule.serviceCategory | Base | example | Service category | 📍4.0.1 | FHIR Std. |
| Schedule.serviceType | Base | extensible | Loại dịch vụ y tế tuyến cơ sở — VN Healthcare Service Type ValueSet | 📦0.9.0 | This IG |
| Schedule.specialty | Base | extensible | Chuyên khoa y tế — VN Medical Specialty ValueSet | 📦0.9.0 | This IG |
| Id | Grade | Path(s) | Description | Expression |
| dom-2 | error | Schedule | If the resource is contained in another resource, it SHALL NOT contain nested Resources |
contained.contained.empty()
|
| dom-3 | error | Schedule | 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 | Schedule | 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 | Schedule | If a resource is contained in another resource, it SHALL NOT have a security label |
contained.meta.security.empty()
|
| dom-6 | best practice | Schedule | 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()
|
Summary
Must-Support: 8 elements
Structures
This structure refers to these other structures:
Extensions
This structure refers to these extensions:
Biểu diễn khác của hồ sơ: CSV, Excel, Schematron