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.9.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 - Local Development build (v0.9.0) built by the FHIR (HL7® FHIR® Standard) Build Tools. See the Directory of published versions

Hồ sơ tài nguyên: Cuộc hẹn khám bệnh VN Core — VN Core Appointment Profile

URL chính thức: http://fhir.hl7.org.vn/core/StructureDefinition/vn-core-appointment Phiên bản: 0.9.0
Computable Name: VNCoreAppointment
Định danh khác: OID:2.25.161089673617632664299011809196868855799.42.20

Profile Appointment cho Việt Nam. Dùng cho đặt lịch khám trực tiếp, khám tại nhà và khám bệnh, chữa bệnh từ xa. Extension phương thức cung cấp dịch vụ cho biết buổi hẹn là trực tiếp hay từ xa — thông tin người bệnh phải biết ngay khi đặt. Khám bệnh, chữa bệnh từ xa, hỗ trợ khám bệnh, chữa bệnh từ xa và khám bệnh, chữa bệnh tại nhà thuộc phạm vi hưởng bảo hiểm y tế từ 01/07/2026 theo Luật 114/2025/QH15 Điều 44 khoản 1; mức hưởng và quy trình thanh toán cụ thể chờ hướng dẫn của Chính phủ. Căn cứ: Luật 15/2023/QH15 Điều 80 (khám bệnh, chữa bệnh từ xa) và Điều 60 (trách nhiệm cơ sở); Luật 114/2025/QH15 Điều 44 khoản 1; TT 13/2025/TT-BYT (bệnh án điện tử); NĐ 102/2025/NĐ-CP (dữ liệu y tế số). Giới hạn có chủ ý: profile này không mô tả hàng đợi khám trong ngày (số thứ tự phòng khám) — đó là điều phối nội bộ của cơ sở, không cần chuẩn hóa liên thông. / VN Core Appointment profile for in-person, home-visit and telehealth bookings, carrying the care delivery mode so the patient knows the modality at booking time.

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
.. Appointment C 0..* Appointment A booking of a healthcare event among patient(s), practitioner(s), related person(s) and/or device(s) for a specific date/time. This may result in one or more Encounter(s)
Constraints: app-2, app-3, app-4, vn-appointment-patient-participant, vn-appointment-cancelation-reason
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url
.... extension:careDeliveryMode 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)
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
... status ?!SΣ 1..1 code Trạng thái: proposed | pending | booked | arrived | fulfilled | cancelled | noshow | entered-in-error | checked-in | waitlist
Binding: AppointmentStatus (required): The free/busy status of an appointment.
... cancelationReason SΣ 0..1 CodeableConcept Lý do hủy — bắt buộc khi status là cancelled
Binding: AppointmentCancellationReason (example)
... serviceCategory SΣ 0..* CodeableConcept Nhóm dịch vụ
Binding: ServiceCategory (example)
... serviceType 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)
... specialty SΣ 0..* CodeableConcept Chuyên khoa
Binding: Chuyên khoa y tế — VN Medical Specialty ValueSet (extensible)
... appointmentType SΣ 0..1 CodeableConcept Loại cuộc hẹn: khám lần đầu, tái khám, khám sức khỏe định kỳ, cấp cứu
Binding: Hl7VSAppointmentReasonCodes (3.0.0) (preferred)
... reasonCode SΣ 0..* CodeableConcept Lý do khám (mã ICD-10 hoặc mô tả)
Binding: Mã chẩn đoán — VN Core Condition Code ValueSet (extensible)
... reasonReference 0..* Reference(Chẩn đoán VN Core — VN Core Condition Profile | Xét nghiệm VN Core — VN Core Observation Laboratory Profile | Thủ thuật/DVKT VN Core — VN Core Procedure Profile) Bệnh lý hoặc kết quả dẫn tới cuộc hẹn
... priority 0..1 unsignedInt Mức ưu tiên (số càng nhỏ càng ưu tiên)
... description S 0..1 string Mô tả ngắn về cuộc hẹn
... start SΣ 0..1 instant Thời điểm bắt đầu dự kiến
... end SΣ 0..1 instant Thời điểm kết thúc dự kiến
... minutesDuration 0..1 positiveInt Thời lượng dự kiến (phút)
... slot S 0..* Reference(Khung giờ đặt lịch VN Core — VN Core Slot Profile) Khung giờ đã giữ cho cuộc hẹn
... created S 0..1 dateTime Thời điểm lập bản ghi đặt lịch
... comment 0..1 string Ghi chú nội bộ của cơ sở
... patientInstruction S 0..1 string Hướng dẫn cho người bệnh trước buổi hẹn
... basedOn S 0..* Reference(Yêu cầu DVKT/Cận lâm sàng VN Core — VN Core ServiceRequest Profile) Yêu cầu dịch vụ hoặc giấy chuyển tuyến dẫn tới cuộc hẹn
... participant SC 1..* BackboneElement Participants involved in appointment
Constraints: app-1
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
.... type SΣ 0..* CodeableConcept Vai trò của bên tham gia
Binding: ParticipantType (extensible): Role of participant in encounter.
.... actor SΣ 0..1 Reference(Bệnh nhân VN Core — VN Core Patient Profile | 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 | Người liên quan/người giám hộ VN Core — VN Core RelatedPerson 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 | Thiết bị y tế VN Core — VN Core Device Profile) Bên tham gia: người bệnh, người hành nghề, dịch vụ, địa điểm
.... required SΣ 0..1 code required | optional | information-only
Binding: ParticipantRequired (required): Is the Participant required to attend the appointment.
.... status SΣ 1..1 code Trạng thái xác nhận của bên tham gia: accepted | declined | tentative | needs-action
Binding: ParticipationStatus (required): The Participation status of an appointment.
... requestedPeriod 0..* Period Khoảng thời gian người bệnh mong muốn (khi chưa chốt giờ)

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
Appointment.status Base required AppointmentStatus 📍4.0.1 FHIR Std.
Appointment.cancelationReason Base example Appointment cancellation reason 📍4.0.1 FHIR Std.
Appointment.serviceCategory Base example Service category 📍4.0.1 FHIR Std.
Appointment.serviceType Base extensible Loại dịch vụ y tế tuyến cơ sở — VN Healthcare Service Type ValueSet 📦0.9.0 This IG
Appointment.specialty Base extensible Chuyên khoa y tế — VN Medical Specialty ValueSet 📦0.9.0 This IG
Appointment.appointmentType Base preferred hl7VS-appointmentReasonCodes 📍3.0.0 THO v7.2
Appointment.reasonCode Base extensible Mã chẩn đoán — VN Core Condition Code ValueSet 📦0.9.0 This IG
Appointment.participant.​type Base extensible Participant type 📍4.0.1 FHIR Std.
Appointment.participant.​required Base required ParticipantRequired 📍4.0.1 FHIR Std.
Appointment.participant.​status Base required ParticipationStatus 📍4.0.1 FHIR Std.

Constraints

Id Grade Path(s) Description Expression
app-1 error Appointment.participant Either the type or actor on the participant SHALL be specified type.exists() or actor.exists()
app-2 error Appointment Either start and end are specified, or neither start.exists() = end.exists()
app-3 error Appointment Only proposed or cancelled appointments can be missing start/end dates (start.exists() and end.exists()) or (status in ('proposed' | 'cancelled' | 'waitlist'))
app-4 error Appointment Cancelation reason is only used for appointments that have been cancelled, or no-show Appointment.cancelationReason.exists() implies (Appointment.status='no-show' or Appointment.status='cancelled')
dom-2 error Appointment If the resource is contained in another resource, it SHALL NOT contain nested Resources contained.contained.empty()
dom-3 error Appointment 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 Appointment 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 Appointment If a resource is contained in another resource, it SHALL NOT have a security label contained.meta.security.empty()
dom-6 best practice Appointment 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()
vn-appointment-cancelation-reason error Appointment Cuộc hẹn bị hủy phải nêu lý do hủy: người bệnh và cơ sở cần phân biệt hủy do người bệnh, do cơ sở, hay do sự cố kỹ thuật của buổi khám từ xa. (status = 'cancelled') implies cancelationReason.exists()
vn-appointment-patient-participant error Appointment Cuộc hẹn phải có một bên tham gia là người bệnh. Kiểm bằng participant.actor.type hoặc tiền tố tham chiếu Patient/ — hệ thống dùng tham chiếu tuyệt đối cần khai participant.actor.type để qua ràng buộc này. participant.where(actor.type = 'Patient' or actor.reference.contains('Patient/')).exists()

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Appointment C 0..* Appointment A booking of a healthcare event among patient(s), practitioner(s), related person(s) and/or device(s) for a specific date/time. This may result in one or more Encounter(s)
Constraints: vn-appointment-patient-participant, vn-appointment-cancelation-reason
... Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url
.... extension:careDeliveryMode 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)
... identifier S 0..* Identifier Mã đặt lịch do cơ sở cấp
... status S 1..1 code Trạng thái: proposed | pending | booked | arrived | fulfilled | cancelled | noshow | entered-in-error | checked-in | waitlist
... serviceCategory S 0..* CodeableConcept Nhóm dịch vụ
... serviceType 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)
... specialty S 0..* CodeableConcept Chuyên khoa
Binding: Chuyên khoa y tế — VN Medical Specialty ValueSet (extensible)
... appointmentType S 0..1 CodeableConcept Loại cuộc hẹn: khám lần đầu, tái khám, khám sức khỏe định kỳ, cấp cứu
... reasonCode S 0..* CodeableConcept Lý do khám (mã ICD-10 hoặc mô tả)
Binding: Mã chẩn đoán — VN Core Condition Code ValueSet (extensible)
... reasonReference 0..* Reference(Chẩn đoán VN Core — VN Core Condition Profile | Xét nghiệm VN Core — VN Core Observation Laboratory Profile | Thủ thuật/DVKT VN Core — VN Core Procedure Profile) Bệnh lý hoặc kết quả dẫn tới cuộc hẹn
... priority 0..1 unsignedInt Mức ưu tiên (số càng nhỏ càng ưu tiên)
... description S 0..1 string Mô tả ngắn về cuộc hẹn
... start S 0..1 instant Thời điểm bắt đầu dự kiến
... end S 0..1 instant Thời điểm kết thúc dự kiến
... minutesDuration 0..1 positiveInt Thời lượng dự kiến (phút)
... slot S 0..* Reference(Khung giờ đặt lịch VN Core — VN Core Slot Profile) Khung giờ đã giữ cho cuộc hẹn
... created S 0..1 dateTime Thời điểm lập bản ghi đặt lịch
... comment 0..1 string Ghi chú nội bộ của cơ sở
... patientInstruction S 0..1 string Hướng dẫn cho người bệnh trước buổi hẹn
... basedOn S 0..* Reference(Yêu cầu DVKT/Cận lâm sàng VN Core — VN Core ServiceRequest Profile) Yêu cầu dịch vụ hoặc giấy chuyển tuyến dẫn tới cuộc hẹn
... participant S 1..* BackboneElement Participants involved in appointment
.... type S 0..* CodeableConcept Vai trò của bên tham gia
.... actor S 0..1 Reference(Bệnh nhân VN Core — VN Core Patient Profile | 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 | Người liên quan/người giám hộ VN Core — VN Core RelatedPerson 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 | Thiết bị y tế VN Core — VN Core Device Profile) Bên tham gia: người bệnh, người hành nghề, dịch vụ, địa điểm
.... required S 0..1 code required | optional | information-only
.... status S 1..1 code Trạng thái xác nhận của bên tham gia: accepted | declined | tentative | needs-action
... requestedPeriod 0..* Period Khoảng thời gian người bệnh mong muốn (khi chưa chốt giờ)

doco Documentation for this format

Terminology Bindings (Differential)

Path Status Usage ValueSet Version Source
Appointment.serviceType Base extensible Loại dịch vụ y tế tuyến cơ sở — VN Healthcare Service Type ValueSet 📦0.9.0 This IG
Appointment.specialty Base extensible Chuyên khoa y tế — VN Medical Specialty ValueSet 📦0.9.0 This IG
Appointment.reasonCode Base extensible Mã chẩn đoán — VN Core Condition Code ValueSet 📦0.9.0 This IG

Constraints

Id Grade Path(s) Description Expression
vn-appointment-cancelation-reason error Appointment Cuộc hẹn bị hủy phải nêu lý do hủy: người bệnh và cơ sở cần phân biệt hủy do người bệnh, do cơ sở, hay do sự cố kỹ thuật của buổi khám từ xa. (status = 'cancelled') implies cancelationReason.exists()
vn-appointment-patient-participant error Appointment Cuộc hẹn phải có một bên tham gia là người bệnh. Kiểm bằng participant.actor.type hoặc tiền tố tham chiếu Patient/ — hệ thống dùng tham chiếu tuyệt đối cần khai participant.actor.type để qua ràng buộc này. participant.where(actor.type = 'Patient' or actor.reference.contains('Patient/')).exists()
NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Appointment C 0..* Appointment A booking of a healthcare event among patient(s), practitioner(s), related person(s) and/or device(s) for a specific date/time. This may result in one or more Encounter(s)
Constraints: app-2, app-3, app-4, vn-appointment-patient-participant, vn-appointment-cancelation-reason
... 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
... language 0..1 code Language of the resource content
Binding: CommonLanguages (preferred): A human language.
Additional BindingsPurpose
AllLanguages Max Binding
... 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
... Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url
.... extension:careDeliveryMode 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)
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
... identifier SΣ 0..* Identifier Mã đặt lịch do cơ sở cấp
... status ?!SΣ 1..1 code Trạng thái: proposed | pending | booked | arrived | fulfilled | cancelled | noshow | entered-in-error | checked-in | waitlist
Binding: AppointmentStatus (required): The free/busy status of an appointment.
... cancelationReason SΣ 0..1 CodeableConcept Lý do hủy — bắt buộc khi status là cancelled
Binding: AppointmentCancellationReason (example)
... serviceCategory SΣ 0..* CodeableConcept Nhóm dịch vụ
Binding: ServiceCategory (example)
... serviceType 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)
... specialty SΣ 0..* CodeableConcept Chuyên khoa
Binding: Chuyên khoa y tế — VN Medical Specialty ValueSet (extensible)
... appointmentType SΣ 0..1 CodeableConcept Loại cuộc hẹn: khám lần đầu, tái khám, khám sức khỏe định kỳ, cấp cứu
Binding: Hl7VSAppointmentReasonCodes (3.0.0) (preferred)
... reasonCode SΣ 0..* CodeableConcept Lý do khám (mã ICD-10 hoặc mô tả)
Binding: Mã chẩn đoán — VN Core Condition Code ValueSet (extensible)
... reasonReference 0..* Reference(Chẩn đoán VN Core — VN Core Condition Profile | Xét nghiệm VN Core — VN Core Observation Laboratory Profile | Thủ thuật/DVKT VN Core — VN Core Procedure Profile) Bệnh lý hoặc kết quả dẫn tới cuộc hẹn
... priority 0..1 unsignedInt Mức ưu tiên (số càng nhỏ càng ưu tiên)
... description S 0..1 string Mô tả ngắn về cuộc hẹn
... supportingInformation 0..* Reference(Resource) Additional information to support the appointment
... start SΣ 0..1 instant Thời điểm bắt đầu dự kiến
... end SΣ 0..1 instant Thời điểm kết thúc dự kiến
... minutesDuration 0..1 positiveInt Thời lượng dự kiến (phút)
... slot S 0..* Reference(Khung giờ đặt lịch VN Core — VN Core Slot Profile) Khung giờ đã giữ cho cuộc hẹn
... created S 0..1 dateTime Thời điểm lập bản ghi đặt lịch
... comment 0..1 string Ghi chú nội bộ của cơ sở
... patientInstruction S 0..1 string Hướng dẫn cho người bệnh trước buổi hẹn
... basedOn S 0..* Reference(Yêu cầu DVKT/Cận lâm sàng VN Core — VN Core ServiceRequest Profile) Yêu cầu dịch vụ hoặc giấy chuyển tuyến dẫn tới cuộc hẹn
... participant SC 1..* BackboneElement Participants involved in appointment
Constraints: app-1
.... 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
.... type SΣ 0..* CodeableConcept Vai trò của bên tham gia
Binding: ParticipantType (extensible): Role of participant in encounter.
.... actor SΣ 0..1 Reference(Bệnh nhân VN Core — VN Core Patient Profile | 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 | Người liên quan/người giám hộ VN Core — VN Core RelatedPerson 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 | Thiết bị y tế VN Core — VN Core Device Profile) Bên tham gia: người bệnh, người hành nghề, dịch vụ, địa điểm
.... required SΣ 0..1 code required | optional | information-only
Binding: ParticipantRequired (required): Is the Participant required to attend the appointment.
.... status SΣ 1..1 code Trạng thái xác nhận của bên tham gia: accepted | declined | tentative | needs-action
Binding: ParticipationStatus (required): The Participation status of an appointment.
.... period 0..1 Period Participation period of the actor
... requestedPeriod 0..* Period Khoảng thời gian người bệnh mong muốn (khi chưa chốt giờ)

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
Appointment.language Base preferred Common Languages 📍4.0.1 FHIR Std.
Appointment.status Base required AppointmentStatus 📍4.0.1 FHIR Std.
Appointment.cancelationReason Base example Appointment cancellation reason 📍4.0.1 FHIR Std.
Appointment.serviceCategory Base example Service category 📍4.0.1 FHIR Std.
Appointment.serviceType Base extensible Loại dịch vụ y tế tuyến cơ sở — VN Healthcare Service Type ValueSet 📦0.9.0 This IG
Appointment.specialty Base extensible Chuyên khoa y tế — VN Medical Specialty ValueSet 📦0.9.0 This IG
Appointment.appointmentType Base preferred hl7VS-appointmentReasonCodes 📍3.0.0 THO v7.2
Appointment.reasonCode Base extensible Mã chẩn đoán — VN Core Condition Code ValueSet 📦0.9.0 This IG
Appointment.participant.​type Base extensible Participant type 📍4.0.1 FHIR Std.
Appointment.participant.​required Base required ParticipantRequired 📍4.0.1 FHIR Std.
Appointment.participant.​status Base required ParticipationStatus 📍4.0.1 FHIR Std.

Constraints

Id Grade Path(s) Description Expression
app-1 error Appointment.participant Either the type or actor on the participant SHALL be specified type.exists() or actor.exists()
app-2 error Appointment Either start and end are specified, or neither start.exists() = end.exists()
app-3 error Appointment Only proposed or cancelled appointments can be missing start/end dates (start.exists() and end.exists()) or (status in ('proposed' | 'cancelled' | 'waitlist'))
app-4 error Appointment Cancelation reason is only used for appointments that have been cancelled, or no-show Appointment.cancelationReason.exists() implies (Appointment.status='no-show' or Appointment.status='cancelled')
dom-2 error Appointment If the resource is contained in another resource, it SHALL NOT contain nested Resources contained.contained.empty()
dom-3 error Appointment 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 Appointment 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 Appointment If a resource is contained in another resource, it SHALL NOT have a security label contained.meta.security.empty()
dom-6 best practice Appointment 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()
vn-appointment-cancelation-reason error Appointment Cuộc hẹn bị hủy phải nêu lý do hủy: người bệnh và cơ sở cần phân biệt hủy do người bệnh, do cơ sở, hay do sự cố kỹ thuật của buổi khám từ xa. (status = 'cancelled') implies cancelationReason.exists()
vn-appointment-patient-participant error Appointment Cuộc hẹn phải có một bên tham gia là người bệnh. Kiểm bằng participant.actor.type hoặc tiền tố tham chiếu Patient/ — hệ thống dùng tham chiếu tuyệt đối cần khai participant.actor.type để qua ràng buộc này. participant.where(actor.type = 'Patient' or actor.reference.contains('Patient/')).exists()

Summary

Must-Support: 21 elements

Structures

This structure refers to these other structures:

Extensions

This structure refers to these extensions:

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

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Appointment C 0..* Appointment A booking of a healthcare event among patient(s), practitioner(s), related person(s) and/or device(s) for a specific date/time. This may result in one or more Encounter(s)
Constraints: app-2, app-3, app-4, vn-appointment-patient-participant, vn-appointment-cancelation-reason
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url
.... extension:careDeliveryMode 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)
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
... status ?!SΣ 1..1 code Trạng thái: proposed | pending | booked | arrived | fulfilled | cancelled | noshow | entered-in-error | checked-in | waitlist
Binding: AppointmentStatus (required): The free/busy status of an appointment.
... cancelationReason SΣ 0..1 CodeableConcept Lý do hủy — bắt buộc khi status là cancelled
Binding: AppointmentCancellationReason (example)
... serviceCategory SΣ 0..* CodeableConcept Nhóm dịch vụ
Binding: ServiceCategory (example)
... serviceType 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)
... specialty SΣ 0..* CodeableConcept Chuyên khoa
Binding: Chuyên khoa y tế — VN Medical Specialty ValueSet (extensible)
... appointmentType SΣ 0..1 CodeableConcept Loại cuộc hẹn: khám lần đầu, tái khám, khám sức khỏe định kỳ, cấp cứu
Binding: Hl7VSAppointmentReasonCodes (3.0.0) (preferred)
... reasonCode SΣ 0..* CodeableConcept Lý do khám (mã ICD-10 hoặc mô tả)
Binding: Mã chẩn đoán — VN Core Condition Code ValueSet (extensible)
... reasonReference 0..* Reference(Chẩn đoán VN Core — VN Core Condition Profile | Xét nghiệm VN Core — VN Core Observation Laboratory Profile | Thủ thuật/DVKT VN Core — VN Core Procedure Profile) Bệnh lý hoặc kết quả dẫn tới cuộc hẹn
... priority 0..1 unsignedInt Mức ưu tiên (số càng nhỏ càng ưu tiên)
... description S 0..1 string Mô tả ngắn về cuộc hẹn
... start SΣ 0..1 instant Thời điểm bắt đầu dự kiến
... end SΣ 0..1 instant Thời điểm kết thúc dự kiến
... minutesDuration 0..1 positiveInt Thời lượng dự kiến (phút)
... slot S 0..* Reference(Khung giờ đặt lịch VN Core — VN Core Slot Profile) Khung giờ đã giữ cho cuộc hẹn
... created S 0..1 dateTime Thời điểm lập bản ghi đặt lịch
... comment 0..1 string Ghi chú nội bộ của cơ sở
... patientInstruction S 0..1 string Hướng dẫn cho người bệnh trước buổi hẹn
... basedOn S 0..* Reference(Yêu cầu DVKT/Cận lâm sàng VN Core — VN Core ServiceRequest Profile) Yêu cầu dịch vụ hoặc giấy chuyển tuyến dẫn tới cuộc hẹn
... participant SC 1..* BackboneElement Participants involved in appointment
Constraints: app-1
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
.... type SΣ 0..* CodeableConcept Vai trò của bên tham gia
Binding: ParticipantType (extensible): Role of participant in encounter.
.... actor SΣ 0..1 Reference(Bệnh nhân VN Core — VN Core Patient Profile | 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 | Người liên quan/người giám hộ VN Core — VN Core RelatedPerson 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 | Thiết bị y tế VN Core — VN Core Device Profile) Bên tham gia: người bệnh, người hành nghề, dịch vụ, địa điểm
.... required SΣ 0..1 code required | optional | information-only
Binding: ParticipantRequired (required): Is the Participant required to attend the appointment.
.... status SΣ 1..1 code Trạng thái xác nhận của bên tham gia: accepted | declined | tentative | needs-action
Binding: ParticipationStatus (required): The Participation status of an appointment.
... requestedPeriod 0..* Period Khoảng thời gian người bệnh mong muốn (khi chưa chốt giờ)

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
Appointment.status Base required AppointmentStatus 📍4.0.1 FHIR Std.
Appointment.cancelationReason Base example Appointment cancellation reason 📍4.0.1 FHIR Std.
Appointment.serviceCategory Base example Service category 📍4.0.1 FHIR Std.
Appointment.serviceType Base extensible Loại dịch vụ y tế tuyến cơ sở — VN Healthcare Service Type ValueSet 📦0.9.0 This IG
Appointment.specialty Base extensible Chuyên khoa y tế — VN Medical Specialty ValueSet 📦0.9.0 This IG
Appointment.appointmentType Base preferred hl7VS-appointmentReasonCodes 📍3.0.0 THO v7.2
Appointment.reasonCode Base extensible Mã chẩn đoán — VN Core Condition Code ValueSet 📦0.9.0 This IG
Appointment.participant.​type Base extensible Participant type 📍4.0.1 FHIR Std.
Appointment.participant.​required Base required ParticipantRequired 📍4.0.1 FHIR Std.
Appointment.participant.​status Base required ParticipationStatus 📍4.0.1 FHIR Std.

Constraints

Id Grade Path(s) Description Expression
app-1 error Appointment.participant Either the type or actor on the participant SHALL be specified type.exists() or actor.exists()
app-2 error Appointment Either start and end are specified, or neither start.exists() = end.exists()
app-3 error Appointment Only proposed or cancelled appointments can be missing start/end dates (start.exists() and end.exists()) or (status in ('proposed' | 'cancelled' | 'waitlist'))
app-4 error Appointment Cancelation reason is only used for appointments that have been cancelled, or no-show Appointment.cancelationReason.exists() implies (Appointment.status='no-show' or Appointment.status='cancelled')
dom-2 error Appointment If the resource is contained in another resource, it SHALL NOT contain nested Resources contained.contained.empty()
dom-3 error Appointment 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 Appointment 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 Appointment If a resource is contained in another resource, it SHALL NOT have a security label contained.meta.security.empty()
dom-6 best practice Appointment 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()
vn-appointment-cancelation-reason error Appointment Cuộc hẹn bị hủy phải nêu lý do hủy: người bệnh và cơ sở cần phân biệt hủy do người bệnh, do cơ sở, hay do sự cố kỹ thuật của buổi khám từ xa. (status = 'cancelled') implies cancelationReason.exists()
vn-appointment-patient-participant error Appointment Cuộc hẹn phải có một bên tham gia là người bệnh. Kiểm bằng participant.actor.type hoặc tiền tố tham chiếu Patient/ — hệ thống dùng tham chiếu tuyệt đối cần khai participant.actor.type để qua ràng buộc này. participant.where(actor.type = 'Patient' or actor.reference.contains('Patient/')).exists()

Dạng xem Differential

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Appointment C 0..* Appointment A booking of a healthcare event among patient(s), practitioner(s), related person(s) and/or device(s) for a specific date/time. This may result in one or more Encounter(s)
Constraints: vn-appointment-patient-participant, vn-appointment-cancelation-reason
... Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url
.... extension:careDeliveryMode 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)
... identifier S 0..* Identifier Mã đặt lịch do cơ sở cấp
... status S 1..1 code Trạng thái: proposed | pending | booked | arrived | fulfilled | cancelled | noshow | entered-in-error | checked-in | waitlist
... serviceCategory S 0..* CodeableConcept Nhóm dịch vụ
... serviceType 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)
... specialty S 0..* CodeableConcept Chuyên khoa
Binding: Chuyên khoa y tế — VN Medical Specialty ValueSet (extensible)
... appointmentType S 0..1 CodeableConcept Loại cuộc hẹn: khám lần đầu, tái khám, khám sức khỏe định kỳ, cấp cứu
... reasonCode S 0..* CodeableConcept Lý do khám (mã ICD-10 hoặc mô tả)
Binding: Mã chẩn đoán — VN Core Condition Code ValueSet (extensible)
... reasonReference 0..* Reference(Chẩn đoán VN Core — VN Core Condition Profile | Xét nghiệm VN Core — VN Core Observation Laboratory Profile | Thủ thuật/DVKT VN Core — VN Core Procedure Profile) Bệnh lý hoặc kết quả dẫn tới cuộc hẹn
... priority 0..1 unsignedInt Mức ưu tiên (số càng nhỏ càng ưu tiên)
... description S 0..1 string Mô tả ngắn về cuộc hẹn
... start S 0..1 instant Thời điểm bắt đầu dự kiến
... end S 0..1 instant Thời điểm kết thúc dự kiến
... minutesDuration 0..1 positiveInt Thời lượng dự kiến (phút)
... slot S 0..* Reference(Khung giờ đặt lịch VN Core — VN Core Slot Profile) Khung giờ đã giữ cho cuộc hẹn
... created S 0..1 dateTime Thời điểm lập bản ghi đặt lịch
... comment 0..1 string Ghi chú nội bộ của cơ sở
... patientInstruction S 0..1 string Hướng dẫn cho người bệnh trước buổi hẹn
... basedOn S 0..* Reference(Yêu cầu DVKT/Cận lâm sàng VN Core — VN Core ServiceRequest Profile) Yêu cầu dịch vụ hoặc giấy chuyển tuyến dẫn tới cuộc hẹn
... participant S 1..* BackboneElement Participants involved in appointment
.... type S 0..* CodeableConcept Vai trò của bên tham gia
.... actor S 0..1 Reference(Bệnh nhân VN Core — VN Core Patient Profile | 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 | Người liên quan/người giám hộ VN Core — VN Core RelatedPerson 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 | Thiết bị y tế VN Core — VN Core Device Profile) Bên tham gia: người bệnh, người hành nghề, dịch vụ, địa điểm
.... required S 0..1 code required | optional | information-only
.... status S 1..1 code Trạng thái xác nhận của bên tham gia: accepted | declined | tentative | needs-action
... requestedPeriod 0..* Period Khoảng thời gian người bệnh mong muốn (khi chưa chốt giờ)

doco Documentation for this format

Terminology Bindings (Differential)

Path Status Usage ValueSet Version Source
Appointment.serviceType Base extensible Loại dịch vụ y tế tuyến cơ sở — VN Healthcare Service Type ValueSet 📦0.9.0 This IG
Appointment.specialty Base extensible Chuyên khoa y tế — VN Medical Specialty ValueSet 📦0.9.0 This IG
Appointment.reasonCode Base extensible Mã chẩn đoán — VN Core Condition Code ValueSet 📦0.9.0 This IG

Constraints

Id Grade Path(s) Description Expression
vn-appointment-cancelation-reason error Appointment Cuộc hẹn bị hủy phải nêu lý do hủy: người bệnh và cơ sở cần phân biệt hủy do người bệnh, do cơ sở, hay do sự cố kỹ thuật của buổi khám từ xa. (status = 'cancelled') implies cancelationReason.exists()
vn-appointment-patient-participant error Appointment Cuộc hẹn phải có một bên tham gia là người bệnh. Kiểm bằng participant.actor.type hoặc tiền tố tham chiếu Patient/ — hệ thống dùng tham chiếu tuyệt đối cần khai participant.actor.type để qua ràng buộc này. participant.where(actor.type = 'Patient' or actor.reference.contains('Patient/')).exists()

Dạng xem SnapshotView

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Appointment C 0..* Appointment A booking of a healthcare event among patient(s), practitioner(s), related person(s) and/or device(s) for a specific date/time. This may result in one or more Encounter(s)
Constraints: app-2, app-3, app-4, vn-appointment-patient-participant, vn-appointment-cancelation-reason
... 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
... language 0..1 code Language of the resource content
Binding: CommonLanguages (preferred): A human language.
Additional BindingsPurpose
AllLanguages Max Binding
... 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
... Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url
.... extension:careDeliveryMode 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)
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
... identifier SΣ 0..* Identifier Mã đặt lịch do cơ sở cấp
... status ?!SΣ 1..1 code Trạng thái: proposed | pending | booked | arrived | fulfilled | cancelled | noshow | entered-in-error | checked-in | waitlist
Binding: AppointmentStatus (required): The free/busy status of an appointment.
... cancelationReason SΣ 0..1 CodeableConcept Lý do hủy — bắt buộc khi status là cancelled
Binding: AppointmentCancellationReason (example)
... serviceCategory SΣ 0..* CodeableConcept Nhóm dịch vụ
Binding: ServiceCategory (example)
... serviceType 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)
... specialty SΣ 0..* CodeableConcept Chuyên khoa
Binding: Chuyên khoa y tế — VN Medical Specialty ValueSet (extensible)
... appointmentType SΣ 0..1 CodeableConcept Loại cuộc hẹn: khám lần đầu, tái khám, khám sức khỏe định kỳ, cấp cứu
Binding: Hl7VSAppointmentReasonCodes (3.0.0) (preferred)
... reasonCode SΣ 0..* CodeableConcept Lý do khám (mã ICD-10 hoặc mô tả)
Binding: Mã chẩn đoán — VN Core Condition Code ValueSet (extensible)
... reasonReference 0..* Reference(Chẩn đoán VN Core — VN Core Condition Profile | Xét nghiệm VN Core — VN Core Observation Laboratory Profile | Thủ thuật/DVKT VN Core — VN Core Procedure Profile) Bệnh lý hoặc kết quả dẫn tới cuộc hẹn
... priority 0..1 unsignedInt Mức ưu tiên (số càng nhỏ càng ưu tiên)
... description S 0..1 string Mô tả ngắn về cuộc hẹn
... supportingInformation 0..* Reference(Resource) Additional information to support the appointment
... start SΣ 0..1 instant Thời điểm bắt đầu dự kiến
... end SΣ 0..1 instant Thời điểm kết thúc dự kiến
... minutesDuration 0..1 positiveInt Thời lượng dự kiến (phút)
... slot S 0..* Reference(Khung giờ đặt lịch VN Core — VN Core Slot Profile) Khung giờ đã giữ cho cuộc hẹn
... created S 0..1 dateTime Thời điểm lập bản ghi đặt lịch
... comment 0..1 string Ghi chú nội bộ của cơ sở
... patientInstruction S 0..1 string Hướng dẫn cho người bệnh trước buổi hẹn
... basedOn S 0..* Reference(Yêu cầu DVKT/Cận lâm sàng VN Core — VN Core ServiceRequest Profile) Yêu cầu dịch vụ hoặc giấy chuyển tuyến dẫn tới cuộc hẹn
... participant SC 1..* BackboneElement Participants involved in appointment
Constraints: app-1
.... 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
.... type SΣ 0..* CodeableConcept Vai trò của bên tham gia
Binding: ParticipantType (extensible): Role of participant in encounter.
.... actor SΣ 0..1 Reference(Bệnh nhân VN Core — VN Core Patient Profile | 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 | Người liên quan/người giám hộ VN Core — VN Core RelatedPerson 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 | Thiết bị y tế VN Core — VN Core Device Profile) Bên tham gia: người bệnh, người hành nghề, dịch vụ, địa điểm
.... required SΣ 0..1 code required | optional | information-only
Binding: ParticipantRequired (required): Is the Participant required to attend the appointment.
.... status SΣ 1..1 code Trạng thái xác nhận của bên tham gia: accepted | declined | tentative | needs-action
Binding: ParticipationStatus (required): The Participation status of an appointment.
.... period 0..1 Period Participation period of the actor
... requestedPeriod 0..* Period Khoảng thời gian người bệnh mong muốn (khi chưa chốt giờ)

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
Appointment.language Base preferred Common Languages 📍4.0.1 FHIR Std.
Appointment.status Base required AppointmentStatus 📍4.0.1 FHIR Std.
Appointment.cancelationReason Base example Appointment cancellation reason 📍4.0.1 FHIR Std.
Appointment.serviceCategory Base example Service category 📍4.0.1 FHIR Std.
Appointment.serviceType Base extensible Loại dịch vụ y tế tuyến cơ sở — VN Healthcare Service Type ValueSet 📦0.9.0 This IG
Appointment.specialty Base extensible Chuyên khoa y tế — VN Medical Specialty ValueSet 📦0.9.0 This IG
Appointment.appointmentType Base preferred hl7VS-appointmentReasonCodes 📍3.0.0 THO v7.2
Appointment.reasonCode Base extensible Mã chẩn đoán — VN Core Condition Code ValueSet 📦0.9.0 This IG
Appointment.participant.​type Base extensible Participant type 📍4.0.1 FHIR Std.
Appointment.participant.​required Base required ParticipantRequired 📍4.0.1 FHIR Std.
Appointment.participant.​status Base required ParticipationStatus 📍4.0.1 FHIR Std.

Constraints

Id Grade Path(s) Description Expression
app-1 error Appointment.participant Either the type or actor on the participant SHALL be specified type.exists() or actor.exists()
app-2 error Appointment Either start and end are specified, or neither start.exists() = end.exists()
app-3 error Appointment Only proposed or cancelled appointments can be missing start/end dates (start.exists() and end.exists()) or (status in ('proposed' | 'cancelled' | 'waitlist'))
app-4 error Appointment Cancelation reason is only used for appointments that have been cancelled, or no-show Appointment.cancelationReason.exists() implies (Appointment.status='no-show' or Appointment.status='cancelled')
dom-2 error Appointment If the resource is contained in another resource, it SHALL NOT contain nested Resources contained.contained.empty()
dom-3 error Appointment 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 Appointment 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 Appointment If a resource is contained in another resource, it SHALL NOT have a security label contained.meta.security.empty()
dom-6 best practice Appointment 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()
vn-appointment-cancelation-reason error Appointment Cuộc hẹn bị hủy phải nêu lý do hủy: người bệnh và cơ sở cần phân biệt hủy do người bệnh, do cơ sở, hay do sự cố kỹ thuật của buổi khám từ xa. (status = 'cancelled') implies cancelationReason.exists()
vn-appointment-patient-participant error Appointment Cuộc hẹn phải có một bên tham gia là người bệnh. Kiểm bằng participant.actor.type hoặc tiền tố tham chiếu Patient/ — hệ thống dùng tham chiếu tuyệt đối cần khai participant.actor.type để qua ràng buộc này. participant.where(actor.type = 'Patient' or actor.reference.contains('Patient/')).exists()

Summary

Must-Support: 21 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