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
| URL chính thức: http://fhir.hl7.org.vn/core/StructureDefinition/vn-core-cancer-pain-narcotic-prescription | Phiên bản: 0.10.0 | ||||
| Computable Name: VNCoreCancerPainNarcoticPrescription | |||||
| Định danh khác: OID:2.25.161089673617632664299011809196868855799.42.29 | |||||
Profile cho đơn thuốc gây nghiện kê để giảm đau cho người bệnh ung thư điều trị ngoại trú, theo TT 26/2025/TT-BYT Điều 8 khoản 1 (ban hành 30/06/2025, hiệu lực 01/07/2025).
Khác biệt so với profile cha VNCoreOutpatientPrescription: đơn phải ghi ĐÚNG BA đợt điều trị liên tiếp trên cùng một đơn, mỗi đợt không quá 10 ngày và có ngày bắt đầu–kết thúc rõ ràng, tổng cả ba đợt không quá 30 ngày; mã đơn quốc gia phải mang hậu tố N của đơn thuốc gây nghiện.
Đơn gây nghiện KHÔNG phải cho người bệnh ung thư không thuộc phạm vi profile này — Điều 8 chỉ điều chỉnh trường hợp giảm đau ung thư. / Narcotic prescription for cancer pain management per Circular 26/2025/TT-BYT Article 8.1: exactly three consecutive treatment courses on a single prescription, each at most 10 days, 30 days in total.
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.
| Name | Bên yêu cầu dữ liệu lõi (Data Requester) | Kho hồ sơ EMR (Repository) | Bên đáp ứng dữ liệu lõi (Data Responder) | Nguồn tạo hồ sơ lâm sàng (Document Source)![]() |
|---|---|---|---|---|
![]() |
||||
![]() ![]() |
||||
![]() ![]() |
|
| ||
![]() ![]() |
|
| ||
![]() ![]() |
|
| ||
![]() ![]() |
|
| ||
![]() ![]() |
|
| ||
![]() ![]() |
|
| ||
![]() ![]() |
|
| ||
![]() ![]() |
|
| ||
![]() ![]() |
|
| ||
![]() ![]() |
|
| ||
![]() ![]() |
|
| ||
Documentation for this format | ||||
| Path | Status | Usage | ValueSet | Version | Source |
| MedicationRequest.status | Base | required | Medicationrequest status | 📍4.0.1 | FHIR Std. |
| MedicationRequest.intent | Base | required | Medication request intent | 📍4.0.1 | FHIR Std. |
| MedicationRequest.category | Base | example | Medication request category codes | 📍4.0.1 | FHIR Std. |
| MedicationRequest.medication[x] | Base | example | SNOMED CT Medication Codes | 📍4.0.1 | FHIR Std. |
| MedicationRequest.groupIdentifier.use | Base | required | IdentifierUse | 📍4.0.1 | FHIR Std. |
| MedicationRequest.dosageInstruction.route | Base | extensible | Đường dùng thuốc — Vietnam Medication Route ValueSet | 📦0.10.0 | This IG |
| Id | Grade | Path(s) | Description | Expression |
| dom-2 | error | MedicationRequest | If the resource is contained in another resource, it SHALL NOT contain nested Resources |
contained.contained.empty()
|
| dom-3 | error | MedicationRequest | 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 | MedicationRequest | 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 | MedicationRequest | If a resource is contained in another resource, it SHALL NOT have a security label |
contained.meta.security.empty()
|
| dom-6 | best practice | MedicationRequest | 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-rx-narcotic-code-suffix | error | MedicationRequest.groupIdentifier | Mã đơn thuốc gây nghiện phải kết thúc bằng hậu tố N theo Phụ lục I TT 26/2025/TT-BYT. A narcotic prescription code SHALL end with the N suffix. |
value.exists() implies value.matches('-N$')
|
| vn-rx-narcotic-course-consecutive | error | MedicationRequest | Ba đợt phải liên tiếp — đợt sau bắt đầu ngay ngày kế tiếp đợt trước — và tổng thời gian không quá 30 ngày. The three courses SHALL be consecutive and SHALL NOT exceed 30 days in total. |
(extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-narcotic-treatment-course').where(extension.where(url = 'sequence').value = 1).extension.where(url = 'period').value.ofType(Period).exists() and extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-narcotic-treatment-course').where(extension.where(url = 'sequence').value = 2).extension.where(url = 'period').value.ofType(Period).exists() and extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-narcotic-treatment-course').where(extension.where(url = 'sequence').value = 3).extension.where(url = 'period').value.ofType(Period).exists()) implies (extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-narcotic-treatment-course').where(extension.where(url = 'sequence').value = 2).extension.where(url = 'period').value.ofType(Period).start = extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-narcotic-treatment-course').where(extension.where(url = 'sequence').value = 1).extension.where(url = 'period').value.ofType(Period).end + 1 day and extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-narcotic-treatment-course').where(extension.where(url = 'sequence').value = 3).extension.where(url = 'period').value.ofType(Period).start = extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-narcotic-treatment-course').where(extension.where(url = 'sequence').value = 2).extension.where(url = 'period').value.ofType(Period).end + 1 day and extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-narcotic-treatment-course').where(extension.where(url = 'sequence').value = 3).extension.where(url = 'period').value.ofType(Period).end <= extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-narcotic-treatment-course').where(extension.where(url = 'sequence').value = 1).extension.where(url = 'period').value.ofType(Period).start + 29 days)
|
| vn-rx-narcotic-course-duration | error | MedicationRequest | Mỗi đợt điều trị không vượt quá 10 ngày, tính cả ngày bắt đầu và ngày kết thúc. Each course SHALL NOT exceed 10 days inclusive of both boundaries. |
extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-narcotic-treatment-course').all(extension.where(url = 'period').value.ofType(Period).start.exists() and extension.where(url = 'period').value.ofType(Period).end.exists() and extension.where(url = 'period').value.ofType(Period).end >= extension.where(url = 'period').value.ofType(Period).start and extension.where(url = 'period').value.ofType(Period).end <= extension.where(url = 'period').value.ofType(Period).start + 9 days)
|
| vn-rx-narcotic-course-numbering | error | MedicationRequest | Đơn phải có đúng ba đợt điều trị, đánh số 1, 2 và 3, mỗi số xuất hiện đúng một lần. The prescription SHALL carry exactly three courses numbered 1, 2 and 3. |
extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-narcotic-treatment-course').count() = 3 and extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-narcotic-treatment-course').where(extension.where(url = 'sequence').value = 1).count() = 1 and extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-narcotic-treatment-course').where(extension.where(url = 'sequence').value = 2).count() = 1 and extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-narcotic-treatment-course').where(extension.where(url = 'sequence').value = 3).count() = 1
|
| vn-rx-outpatient-category | error | MedicationRequest.category | Đơn ngoại trú phải mang ít nhất một category là outpatient hoặc discharge theo hệ mã medicationrequest-category của HL7. |
coding.where(system = 'http://terminology.hl7.org/CodeSystem/medicationrequest-category' and (code = 'outpatient' or code = 'discharge')).exists()
|
| vn-rx-outpatient-code-format | error | MedicationRequest.groupIdentifier | Mã đơn thuốc quốc gia gồm 14 ký tự theo Phụ lục I TT 26/2025/TT-BYT: 5 chữ số mã cơ sở khám bệnh, chữa bệnh + 7 ký tự chữ thường hoặc số + dấu gạch nối + 1 ký tự loại đơn (N, H hoặc C). Đơn thuốc cổ truyền dùng hậu tố T và thuộc profile VNCoreYHCTOutpatientPrescription. |
value.matches('^[0-9]{5}[0-9a-z]{7}-[NHC]$')
|
| vn-rx-outpatient-issued-only | error | MedicationRequest.status | Đơn ngoại trú liên thông phải là đơn đã phát hành: status không được là draft. |
$this != 'draft'
|
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() |
|---|---|---|---|---|
![]() |
C | 0..* | VNCoreOutpatientPrescription | Ordering of medication for patient or group Constraints: vn-rx-narcotic-course-numbering, vn-rx-narcotic-course-duration, vn-rx-narcotic-course-consecutive |
![]() ![]() |
3..* | Extension | Extension | |
![]() ![]() |
Content/Rules for all slices | |||
![]() ![]() ![]() |
3..3 | (Complex) | Đúng ba đợt điều trị liên tiếp (TT 26/2025/TT-BYT Điều 8 khoản 1) URL: http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-narcotic-treatment-course | |
![]() ![]() |
C | 1..1 | Identifier | Mã đơn thuốc quốc gia (bắt buộc với đơn ngoại trú) Constraints: vn-rx-narcotic-code-suffix |
Documentation for this format | ||||
Name![]() |
|---|
Documentation for this format |
| Id | Grade | Path(s) | Description | Expression |
| vn-rx-narcotic-code-suffix | error | MedicationRequest.groupIdentifier | Mã đơn thuốc gây nghiện phải kết thúc bằng hậu tố N theo Phụ lục I TT 26/2025/TT-BYT. A narcotic prescription code SHALL end with the N suffix. |
value.exists() implies value.matches('-N$')
|
| vn-rx-narcotic-course-consecutive | error | MedicationRequest | Ba đợt phải liên tiếp — đợt sau bắt đầu ngay ngày kế tiếp đợt trước — và tổng thời gian không quá 30 ngày. The three courses SHALL be consecutive and SHALL NOT exceed 30 days in total. |
(extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-narcotic-treatment-course').where(extension.where(url = 'sequence').value = 1).extension.where(url = 'period').value.ofType(Period).exists() and extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-narcotic-treatment-course').where(extension.where(url = 'sequence').value = 2).extension.where(url = 'period').value.ofType(Period).exists() and extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-narcotic-treatment-course').where(extension.where(url = 'sequence').value = 3).extension.where(url = 'period').value.ofType(Period).exists()) implies (extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-narcotic-treatment-course').where(extension.where(url = 'sequence').value = 2).extension.where(url = 'period').value.ofType(Period).start = extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-narcotic-treatment-course').where(extension.where(url = 'sequence').value = 1).extension.where(url = 'period').value.ofType(Period).end + 1 day and extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-narcotic-treatment-course').where(extension.where(url = 'sequence').value = 3).extension.where(url = 'period').value.ofType(Period).start = extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-narcotic-treatment-course').where(extension.where(url = 'sequence').value = 2).extension.where(url = 'period').value.ofType(Period).end + 1 day and extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-narcotic-treatment-course').where(extension.where(url = 'sequence').value = 3).extension.where(url = 'period').value.ofType(Period).end <= extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-narcotic-treatment-course').where(extension.where(url = 'sequence').value = 1).extension.where(url = 'period').value.ofType(Period).start + 29 days)
|
| vn-rx-narcotic-course-duration | error | MedicationRequest | Mỗi đợt điều trị không vượt quá 10 ngày, tính cả ngày bắt đầu và ngày kết thúc. Each course SHALL NOT exceed 10 days inclusive of both boundaries. |
extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-narcotic-treatment-course').all(extension.where(url = 'period').value.ofType(Period).start.exists() and extension.where(url = 'period').value.ofType(Period).end.exists() and extension.where(url = 'period').value.ofType(Period).end >= extension.where(url = 'period').value.ofType(Period).start and extension.where(url = 'period').value.ofType(Period).end <= extension.where(url = 'period').value.ofType(Period).start + 9 days)
|
| vn-rx-narcotic-course-numbering | error | MedicationRequest | Đơn phải có đúng ba đợt điều trị, đánh số 1, 2 và 3, mỗi số xuất hiện đúng một lần. The prescription SHALL carry exactly three courses numbered 1, 2 and 3. |
extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-narcotic-treatment-course').count() = 3 and extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-narcotic-treatment-course').where(extension.where(url = 'sequence').value = 1).count() = 1 and extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-narcotic-treatment-course').where(extension.where(url = 'sequence').value = 2).count() = 1 and extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-narcotic-treatment-course').where(extension.where(url = 'sequence').value = 3).count() = 1
|
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() | |||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
![]() |
C | 0..* | VNCoreOutpatientPrescription | Ordering of medication for patient or group Constraints: vn-rx-narcotic-course-numbering, vn-rx-narcotic-course-duration, vn-rx-narcotic-course-consecutive | |||||||||||||||
![]() ![]() |
Σ | 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 | ||||||||||||||||
![]() ![]() |
3..* | Extension | Extension Slice: Unordered, Open by value:url | ||||||||||||||||
![]() ![]() ![]() |
0..1 | string | Số đăng ký thuốc (SO_DANG_KY) URL: http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-med-reg-number | ||||||||||||||||
![]() ![]() ![]() |
0..1 | CodeableConcept | Nguồn chi trả cho dòng thuốc (NGUON_CTRA) URL: http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-payment-source Binding: Nguồn chi trả — Vietnam Payment Source ValueSet (extensible) | ||||||||||||||||
![]() ![]() ![]() |
0..1 | string | Thông tin thầu (TT_THAU) URL: http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-tender-info | ||||||||||||||||
![]() ![]() ![]() |
0..1 | CodeableConcept | Phương pháp chế biến YHCT (MA_PP_CHEBIEN) URL: http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-traditional-processing-method Binding: Phương pháp chế biến vị thuốc cổ truyền — VN Traditional Medicine Processing Method ValueSet (extensible) | ||||||||||||||||
![]() ![]() ![]() |
3..3 | (Complex) | Đúng ba đợt điều trị liên tiếp (TT 26/2025/TT-BYT Điều 8 khoản 1) URL: http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-narcotic-treatment-course | ||||||||||||||||
![]() ![]() |
?! | 0..* | Extension | Extensions that cannot be ignored | |||||||||||||||
![]() ![]() |
SO | 0..* | Identifier | Mã dòng thuốc trong đơn (mã nội bộ của cơ sở kê đơn) — KHÔNG dùng cho mã đơn quốc gia
| |||||||||||||||
![]() ![]() |
?!SOΣC | 1..1 | code | Trạng thái đơn thuốc Binding: medicationrequest Status (required): A coded concept specifying the state of the prescribing event. Describes the lifecycle of the prescription. Constraints: vn-rx-outpatient-issued-only
| |||||||||||||||
![]() ![]() |
0..1 | CodeableConcept | Reason for current status Binding: medicationRequest Status Reason Codes (example): Identifies the reasons for a given status. | ||||||||||||||||
![]() ![]() |
?!SOΣ | 1..1 | code | Ý định: order (kê đơn) | proposal | plan Binding: medicationRequest Intent (required): The kind of medication order. Fixed Value: order
| |||||||||||||||
![]() ![]() |
SOC | 1..* | CodeableConcept | Bối cảnh kê đơn: outpatient (ngoại trú) hoặc discharge (cấp khi ra viện) Binding: medicationRequest Category Codes (example): A coded concept identifying the category of medication request. For example, where the medication is to be consumed or administered, or the type of medication treatment. Constraints: vn-rx-outpatient-category
| |||||||||||||||
![]() ![]() |
Σ | 0..1 | code | routine | urgent | asap | stat Binding: RequestPriority (required): Identifies the level of importance to be assigned to actioning the request. | |||||||||||||||
![]() ![]() |
?!Σ | 0..1 | boolean | True if request is prohibiting action | |||||||||||||||
![]() ![]() |
Σ | 0..1 | Reported rather than primary record | ||||||||||||||||
![]() ![]() ![]() |
boolean | ||||||||||||||||||
![]() ![]() ![]() |
Reference(Patient | Practitioner | PractitionerRole | RelatedPerson | Organization) | ||||||||||||||||||
![]() ![]() |
SOΣ | 1..1 | Thuốc được kê (ATC/SNOMED CT/tên thuốc / bài thuốc YHCT) Binding: SNOMEDCTMedicationCodes (example): A coded concept identifying substance or product that can be ordered.
| ||||||||||||||||
![]() ![]() ![]() |
CodeableConcept | ||||||||||||||||||
![]() ![]() ![]() |
Reference(Medication) | ||||||||||||||||||
![]() ![]() |
SOΣ | 1..1 | Reference(Bệnh nhân VN Core — VN Core Patient Profile) | Bệnh nhân được kê đơn
| |||||||||||||||
![]() ![]() |
0..1 | Reference(Lượt khám/nhập viện VN Core — VN Core Encounter Profile) | Lượt khám liên quan | ||||||||||||||||
![]() ![]() |
0..* | Reference(Resource) | Information to support ordering of the medication | ||||||||||||||||
![]() ![]() |
SOΣ | 1..1 | dateTime | Ngày kê đơn
| |||||||||||||||
![]() ![]() |
SOΣ | 1..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) | Người kê đơn — bắt buộc theo TT 26/2025/TT-BYT
| |||||||||||||||
![]() ![]() |
0..1 | Reference(Practitioner | PractitionerRole | Organization | Patient | Device | RelatedPerson | CareTeam) | Intended performer of administration | ||||||||||||||||
![]() ![]() |
Σ | 0..1 | CodeableConcept | Desired kind of performer of the medication administration Binding: ProcedurePerformerRoleCodes (example): Identifies the type of individual that is desired to administer the medication. | |||||||||||||||
![]() ![]() |
0..1 | Reference(Practitioner | PractitionerRole) | Person who entered the request | ||||||||||||||||
![]() ![]() |
0..* | CodeableConcept | Lý do kê đơn (mã ICD-10) Binding: Mã chẩn đoán — VN Core Condition Code ValueSet (extensible) | ||||||||||||||||
![]() ![]() |
0..* | Reference(Condition | Observation) | Condition or observation that supports why the prescription is being written | ||||||||||||||||
![]() ![]() |
Σ | 0..* | canonical() | Instantiates FHIR protocol or definition | |||||||||||||||
![]() ![]() |
Σ | 0..* | uri | Instantiates external protocol or definition | |||||||||||||||
![]() ![]() |
Σ | 0..* | Reference(CarePlan | MedicationRequest | ServiceRequest | ImmunizationRecommendation) | What request fulfills | |||||||||||||||
![]() ![]() |
SOΣC | 1..1 | Identifier | Mã đơn thuốc quốc gia (bắt buộc với đơn ngoại trú) Constraints: vn-rx-outpatient-code-format, vn-rx-narcotic-code-suffix
| |||||||||||||||
![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | ||||||||||||||||
![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | ||||||||||||||||
![]() ![]() ![]() |
?!Σ | 0..1 | code | usual | official | temp | secondary | old (If known) Binding: IdentifierUse (required): Identifies the purpose for this identifier, if known . | |||||||||||||||
![]() ![]() ![]() |
Σ | 0..1 | CodeableConcept | Description of identifier Binding: Identifier Type Codes (extensible): A coded type for an identifier that can be used to determine which identifier to use for a specific purpose. | |||||||||||||||
![]() ![]() ![]() |
Σ | 1..1 | uri | The namespace for the identifier value Fixed Value: http://fhir.hl7.org.vn/core/sid/don-thuoc-quoc-gia | |||||||||||||||
![]() ![]() ![]() |
Σ | 1..1 | string | The value that is unique Example General: 123456 | |||||||||||||||
![]() ![]() ![]() |
Σ | 0..1 | Period | Time period when id is/was valid for use | |||||||||||||||
![]() ![]() ![]() |
Σ | 0..1 | Reference(Organization) | Organization that issued id (may be just text) | |||||||||||||||
![]() ![]() |
0..1 | CodeableConcept | Overall pattern of medication administration Binding: medicationRequest Course of Therapy Codes (example): Identifies the overall pattern of medication administratio. | ||||||||||||||||
![]() ![]() |
0..* | Reference(Thẻ BHYT VN Core — VN Core Coverage Profile) | Thẻ BHYT (nếu đơn BHYT) | ||||||||||||||||
![]() ![]() |
0..* | Annotation | Ghi chú bổ sung | ||||||||||||||||
![]() ![]() |
SO | 1..* | Dosage | Hướng dẫn liều dùng
| |||||||||||||||
![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | ||||||||||||||||
![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | ||||||||||||||||
![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | |||||||||||||||
![]() ![]() ![]() |
Σ | 0..1 | integer | The order of the dosage instructions | |||||||||||||||
![]() ![]() ![]() |
SΣ | 0..1 | string | Hướng dẫn dạng text (VD: Uống 500mg, 3 lần/ngày, sau ăn) | |||||||||||||||
![]() ![]() ![]() |
Σ | 0..* | CodeableConcept | Supplemental instruction or warnings to the patient - e.g. "with meals", "may cause drowsiness" Binding: SNOMEDCTAdditionalDosageInstructions (example): A coded concept identifying additional instructions such as "take with water" or "avoid operating heavy machinery". | |||||||||||||||
![]() ![]() ![]() |
Σ | 0..1 | string | Patient or consumer oriented instructions | |||||||||||||||
![]() ![]() ![]() |
SΣ | 0..1 | Timing | Lịch dùng thuốc (tần suất, thời điểm) | |||||||||||||||
![]() ![]() ![]() |
Σ | 0..1 | Take "as needed" (for x) Binding: SNOMEDCTMedicationAsNeededReasonCodes (example): A coded concept identifying the precondition that should be met or evaluated prior to consuming or administering a medication dose. For example "pain", "30 minutes prior to sexual intercourse", "on flare-up" etc. | ||||||||||||||||
![]() ![]() ![]() ![]() |
boolean | ||||||||||||||||||
![]() ![]() ![]() ![]() |
CodeableConcept | ||||||||||||||||||
![]() ![]() ![]() |
Σ | 0..1 | CodeableConcept | Body site to administer to Binding: SNOMEDCTAnatomicalStructureForAdministrationSiteCodes (example): A coded concept describing the site location the medicine enters into or onto the body. | |||||||||||||||
![]() ![]() ![]() |
SΣ | 0..1 | CodeableConcept | Đường dùng (uống, tiêm, bôi...) — 56 mã theo Dược điển VN Binding: Đường dùng thuốc — Vietnam Medication Route ValueSet (extensible) | |||||||||||||||
![]() ![]() ![]() |
Σ | 0..1 | CodeableConcept | Technique for administering medication Binding: SNOMEDCTAdministrationMethodCodes (example): A coded concept describing the technique by which the medicine is administered. | |||||||||||||||
![]() ![]() ![]() |
SΣ | 0..* | Element | Liều lượng và tốc độ | |||||||||||||||
![]() ![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | ||||||||||||||||
![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | ||||||||||||||||
![]() ![]() ![]() ![]() |
Σ | 0..1 | CodeableConcept | The kind of dose or rate specified Binding: DoseAndRateType (example): The kind of dose or rate specified. | |||||||||||||||
![]() ![]() ![]() ![]() |
Σ | 0..1 | Amount of medication per dose | ||||||||||||||||
![]() ![]() ![]() ![]() ![]() |
Range | ||||||||||||||||||
![]() ![]() ![]() ![]() ![]() |
Quantity(SimpleQuantity) | ||||||||||||||||||
![]() ![]() ![]() ![]() |
Σ | 0..1 | Amount of medication per unit of time | ||||||||||||||||
![]() ![]() ![]() ![]() ![]() |
Ratio | ||||||||||||||||||
![]() ![]() ![]() ![]() ![]() |
Range | ||||||||||||||||||
![]() ![]() ![]() ![]() ![]() |
Quantity(SimpleQuantity) | ||||||||||||||||||
![]() ![]() ![]() |
Σ | 0..1 | Ratio | Upper limit on medication per unit of time | |||||||||||||||
![]() ![]() ![]() |
Σ | 0..1 | SimpleQuantity(4.0.1) | Upper limit on medication per administration | |||||||||||||||
![]() ![]() ![]() |
Σ | 0..1 | SimpleQuantity(4.0.1) | Upper limit on medication per lifetime of the patient | |||||||||||||||
![]() ![]() |
SO | 0..1 | BackboneElement | Yêu cầu cấp phát
| |||||||||||||||
![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | ||||||||||||||||
![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | ||||||||||||||||
![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | |||||||||||||||
![]() ![]() ![]() |
0..1 | BackboneElement | First fill details | ||||||||||||||||
![]() ![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | ||||||||||||||||
![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | ||||||||||||||||
![]() ![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | |||||||||||||||
![]() ![]() ![]() ![]() |
0..1 | SimpleQuantity(4.0.1) | First fill quantity | ||||||||||||||||
![]() ![]() ![]() ![]() |
0..1 | Duration | First fill duration | ||||||||||||||||
![]() ![]() ![]() |
0..1 | Duration | Minimum period of time between dispenses | ||||||||||||||||
![]() ![]() ![]() |
0..1 | Period | Time period supply is authorized for | ||||||||||||||||
![]() ![]() ![]() |
0..1 | unsignedInt | Number of refills authorized | ||||||||||||||||
![]() ![]() ![]() |
S | 0..1 | SimpleQuantity(4.0.1) | Tổng số lượng cấp phát | |||||||||||||||
![]() ![]() ![]() |
S | 0..1 | Duration | Số ngày sử dụng thuốc — TT 26/2025/TT-BYT Điều 6 khoản 6 | |||||||||||||||
![]() ![]() ![]() |
0..1 | Reference(Organization) | Intended dispenser | ||||||||||||||||
![]() ![]() |
0..1 | BackboneElement | Thay thế thuốc | ||||||||||||||||
![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | ||||||||||||||||
![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | ||||||||||||||||
![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | |||||||||||||||
![]() ![]() ![]() |
1..1 | Whether substitution is allowed or not Binding: ActSubstanceAdminSubstitutionCode (example): Identifies the type of substitution allowed. | |||||||||||||||||
![]() ![]() ![]() ![]() |
boolean | ||||||||||||||||||
![]() ![]() ![]() ![]() |
CodeableConcept | ||||||||||||||||||
![]() ![]() ![]() |
0..1 | CodeableConcept | Why should (not) substitution be made Binding: SubstanceAdminSubstitutionReason (example): A coded concept describing the reason that a different medication should (or should not) be substituted from what was prescribed. | ||||||||||||||||
![]() ![]() |
0..1 | Reference(MedicationRequest) | An order/prescription that is being replaced | ||||||||||||||||
![]() ![]() |
0..* | Reference(DetectedIssue) | Clinical Issue with action | ||||||||||||||||
![]() ![]() |
0..* | Reference(Provenance) | A list of events of interest in the lifecycle | ||||||||||||||||
Documentation for this format | |||||||||||||||||||
| Name | Bên yêu cầu dữ liệu lõi (Data Requester) | Kho hồ sơ EMR (Repository) | Bên đáp ứng dữ liệu lõi (Data Responder) | Nguồn tạo hồ sơ lâm sàng (Document Source)![]() |
|---|---|---|---|---|
![]() |
||||
![]() ![]() |
||||
![]() ![]() |
|
| ||
![]() ![]() |
|
| ||
![]() ![]() |
|
| ||
![]() ![]() |
|
| ||
![]() ![]() |
|
| ||
![]() ![]() |
|
| ||
![]() ![]() |
|
| ||
![]() ![]() |
|
| ||
![]() ![]() |
|
| ||
![]() ![]() |
|
| ||
![]() ![]() |
|
| ||
Documentation for this format | ||||
| Path | Status | Usage | ValueSet | Version | Source |
| MedicationRequest.language | Base | preferred | Common Languages | 📍4.0.1 | FHIR Std. |
| MedicationRequest.status | Base | required | Medicationrequest status | 📍4.0.1 | FHIR Std. |
| MedicationRequest.statusReason | Base | example | Medication request status reason codes | 📍4.0.1 | FHIR Std. |
| MedicationRequest.intent | Base | required | Medication request intent | 📍4.0.1 | FHIR Std. |
| MedicationRequest.category | Base | example | Medication request category codes | 📍4.0.1 | FHIR Std. |
| MedicationRequest.priority | Base | required | Request priority | 📍4.0.1 | FHIR Std. |
| MedicationRequest.medication[x] | Base | example | SNOMED CT Medication Codes | 📍4.0.1 | FHIR Std. |
| MedicationRequest.performerType | Base | example | Procedure Performer Role Codes | 📍4.0.1 | FHIR Std. |
| MedicationRequest.reasonCode | Base | extensible | Mã chẩn đoán — VN Core Condition Code ValueSet | 📦0.10.0 | This IG |
| MedicationRequest.groupIdentifier.use | Base | required | IdentifierUse | 📍4.0.1 | FHIR Std. |
| MedicationRequest.groupIdentifier.type | Base | extensible | IdentifierType | 📍4.0.1 | FHIR Std. |
| MedicationRequest.courseOfTherapyType | Base | example | Medication request course of therapy codes | 📍4.0.1 | FHIR Std. |
| MedicationRequest.dosageInstruction.additionalInstruction | Base | example | SNOMED CT Additional Dosage Instructions | 📍4.0.1 | FHIR Std. |
| MedicationRequest.dosageInstruction.asNeeded[x] | Base | example | SNOMED CT Medication As Needed Reason Codes | 📍4.0.1 | FHIR Std. |
| MedicationRequest.dosageInstruction.site | Base | example | SNOMED CT Anatomical Structure for Administration Site Codes | 📍4.0.1 | FHIR Std. |
| MedicationRequest.dosageInstruction.route | Base | extensible | Đường dùng thuốc — Vietnam Medication Route ValueSet | 📦0.10.0 | This IG |
| MedicationRequest.dosageInstruction.method | Base | example | SNOMED CT Administration Method Codes | 📍4.0.1 | FHIR Std. |
| MedicationRequest.dosageInstruction.doseAndRate.type | Base | example | DoseAndRateType | 📍4.0.1 | FHIR Std. |
| MedicationRequest.substitution.allowed[x] | Base | example | ActSubstanceAdminSubstitutionCode | 📦3.0.0 | THO v7.2 |
| MedicationRequest.substitution.reason | Base | example | SubstanceAdminSubstitutionReason | 📦3.0.0 | THO v7.2 |
| Id | Grade | Path(s) | Description | Expression |
| dom-2 | error | MedicationRequest | If the resource is contained in another resource, it SHALL NOT contain nested Resources |
contained.contained.empty()
|
| dom-3 | error | MedicationRequest | 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 | MedicationRequest | 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 | MedicationRequest | If a resource is contained in another resource, it SHALL NOT have a security label |
contained.meta.security.empty()
|
| dom-6 | best practice | MedicationRequest | 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-rx-narcotic-code-suffix | error | MedicationRequest.groupIdentifier | Mã đơn thuốc gây nghiện phải kết thúc bằng hậu tố N theo Phụ lục I TT 26/2025/TT-BYT. A narcotic prescription code SHALL end with the N suffix. |
value.exists() implies value.matches('-N$')
|
| vn-rx-narcotic-course-consecutive | error | MedicationRequest | Ba đợt phải liên tiếp — đợt sau bắt đầu ngay ngày kế tiếp đợt trước — và tổng thời gian không quá 30 ngày. The three courses SHALL be consecutive and SHALL NOT exceed 30 days in total. |
(extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-narcotic-treatment-course').where(extension.where(url = 'sequence').value = 1).extension.where(url = 'period').value.ofType(Period).exists() and extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-narcotic-treatment-course').where(extension.where(url = 'sequence').value = 2).extension.where(url = 'period').value.ofType(Period).exists() and extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-narcotic-treatment-course').where(extension.where(url = 'sequence').value = 3).extension.where(url = 'period').value.ofType(Period).exists()) implies (extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-narcotic-treatment-course').where(extension.where(url = 'sequence').value = 2).extension.where(url = 'period').value.ofType(Period).start = extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-narcotic-treatment-course').where(extension.where(url = 'sequence').value = 1).extension.where(url = 'period').value.ofType(Period).end + 1 day and extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-narcotic-treatment-course').where(extension.where(url = 'sequence').value = 3).extension.where(url = 'period').value.ofType(Period).start = extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-narcotic-treatment-course').where(extension.where(url = 'sequence').value = 2).extension.where(url = 'period').value.ofType(Period).end + 1 day and extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-narcotic-treatment-course').where(extension.where(url = 'sequence').value = 3).extension.where(url = 'period').value.ofType(Period).end <= extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-narcotic-treatment-course').where(extension.where(url = 'sequence').value = 1).extension.where(url = 'period').value.ofType(Period).start + 29 days)
|
| vn-rx-narcotic-course-duration | error | MedicationRequest | Mỗi đợt điều trị không vượt quá 10 ngày, tính cả ngày bắt đầu và ngày kết thúc. Each course SHALL NOT exceed 10 days inclusive of both boundaries. |
extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-narcotic-treatment-course').all(extension.where(url = 'period').value.ofType(Period).start.exists() and extension.where(url = 'period').value.ofType(Period).end.exists() and extension.where(url = 'period').value.ofType(Period).end >= extension.where(url = 'period').value.ofType(Period).start and extension.where(url = 'period').value.ofType(Period).end <= extension.where(url = 'period').value.ofType(Period).start + 9 days)
|
| vn-rx-narcotic-course-numbering | error | MedicationRequest | Đơn phải có đúng ba đợt điều trị, đánh số 1, 2 và 3, mỗi số xuất hiện đúng một lần. The prescription SHALL carry exactly three courses numbered 1, 2 and 3. |
extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-narcotic-treatment-course').count() = 3 and extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-narcotic-treatment-course').where(extension.where(url = 'sequence').value = 1).count() = 1 and extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-narcotic-treatment-course').where(extension.where(url = 'sequence').value = 2).count() = 1 and extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-narcotic-treatment-course').where(extension.where(url = 'sequence').value = 3).count() = 1
|
| vn-rx-outpatient-category | error | MedicationRequest.category | Đơn ngoại trú phải mang ít nhất một category là outpatient hoặc discharge theo hệ mã medicationrequest-category của HL7. |
coding.where(system = 'http://terminology.hl7.org/CodeSystem/medicationrequest-category' and (code = 'outpatient' or code = 'discharge')).exists()
|
| vn-rx-outpatient-code-format | error | MedicationRequest.groupIdentifier | Mã đơn thuốc quốc gia gồm 14 ký tự theo Phụ lục I TT 26/2025/TT-BYT: 5 chữ số mã cơ sở khám bệnh, chữa bệnh + 7 ký tự chữ thường hoặc số + dấu gạch nối + 1 ký tự loại đơn (N, H hoặc C). Đơn thuốc cổ truyền dùng hậu tố T và thuộc profile VNCoreYHCTOutpatientPrescription. |
value.matches('^[0-9]{5}[0-9a-z]{7}-[NHC]$')
|
| vn-rx-outpatient-issued-only | error | MedicationRequest.status | Đơn ngoại trú liên thông phải là đơn đã phát hành: status không được là draft. |
$this != 'draft'
|
| Name | Bên yêu cầu dữ liệu lõi (Data Requester) | Kho hồ sơ EMR (Repository) | Bên đáp ứng dữ liệu lõi (Data Responder) | Nguồn tạo hồ sơ lâm sàng (Document Source)![]() |
|---|---|---|---|---|
![]() |
||||
![]() ![]() |
||||
![]() ![]() |
|
| ||
![]() ![]() |
|
| ||
![]() ![]() |
|
| ||
![]() ![]() |
|
| ||
![]() ![]() |
|
| ||
![]() ![]() |
|
| ||
![]() ![]() |
|
| ||
![]() ![]() |
|
| ||
![]() ![]() |
|
| ||
![]() ![]() |
|
| ||
![]() ![]() |
|
| ||
Documentation for this format | ||||
Dạng xem phần tử chính
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() | |||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
![]() |
C | 0..* | VNCoreOutpatientPrescription | Ordering of medication for patient or group Constraints: vn-rx-narcotic-course-numbering, vn-rx-narcotic-course-duration, vn-rx-narcotic-course-consecutive | |||||||||||||||
![]() ![]() |
?!Σ | 0..1 | uri | A set of rules under which this content was created | |||||||||||||||
![]() ![]() |
3..* | Extension | Extension Slice: Unordered, Open by value:url | ||||||||||||||||
![]() ![]() ![]() |
0..1 | string | Số đăng ký thuốc (SO_DANG_KY) URL: http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-med-reg-number | ||||||||||||||||
![]() ![]() ![]() |
0..1 | CodeableConcept | Nguồn chi trả cho dòng thuốc (NGUON_CTRA) URL: http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-payment-source Binding: Nguồn chi trả — Vietnam Payment Source ValueSet (extensible) | ||||||||||||||||
![]() ![]() ![]() |
0..1 | string | Thông tin thầu (TT_THAU) URL: http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-tender-info | ||||||||||||||||
![]() ![]() ![]() |
0..1 | CodeableConcept | Phương pháp chế biến YHCT (MA_PP_CHEBIEN) URL: http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-traditional-processing-method Binding: Phương pháp chế biến vị thuốc cổ truyền — VN Traditional Medicine Processing Method ValueSet (extensible) | ||||||||||||||||
![]() ![]() ![]() |
3..3 | (Complex) | Đúng ba đợt điều trị liên tiếp (TT 26/2025/TT-BYT Điều 8 khoản 1) URL: http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-narcotic-treatment-course | ||||||||||||||||
![]() ![]() |
?! | 0..* | Extension | Extensions that cannot be ignored | |||||||||||||||
![]() ![]() |
SO | 0..* | Identifier | Mã dòng thuốc trong đơn (mã nội bộ của cơ sở kê đơn) — KHÔNG dùng cho mã đơn quốc gia
| |||||||||||||||
![]() ![]() |
?!SOΣC | 1..1 | code | Trạng thái đơn thuốc Binding: medicationrequest Status (required): A coded concept specifying the state of the prescribing event. Describes the lifecycle of the prescription. Constraints: vn-rx-outpatient-issued-only
| |||||||||||||||
![]() ![]() |
?!SOΣ | 1..1 | code | Ý định: order (kê đơn) | proposal | plan Binding: medicationRequest Intent (required): The kind of medication order. Fixed Value: order
| |||||||||||||||
![]() ![]() |
SOC | 1..* | CodeableConcept | Bối cảnh kê đơn: outpatient (ngoại trú) hoặc discharge (cấp khi ra viện) Binding: medicationRequest Category Codes (example): A coded concept identifying the category of medication request. For example, where the medication is to be consumed or administered, or the type of medication treatment. Constraints: vn-rx-outpatient-category
| |||||||||||||||
![]() ![]() |
?!Σ | 0..1 | boolean | True if request is prohibiting action | |||||||||||||||
![]() ![]() |
SOΣ | 1..1 | Thuốc được kê (ATC/SNOMED CT/tên thuốc / bài thuốc YHCT) Binding: SNOMEDCTMedicationCodes (example): A coded concept identifying substance or product that can be ordered.
| ||||||||||||||||
![]() ![]() ![]() |
CodeableConcept | ||||||||||||||||||
![]() ![]() ![]() |
Reference(Medication) | ||||||||||||||||||
![]() ![]() |
SOΣ | 1..1 | Reference(Bệnh nhân VN Core — VN Core Patient Profile) | Bệnh nhân được kê đơn
| |||||||||||||||
![]() ![]() |
SOΣ | 1..1 | dateTime | Ngày kê đơn
| |||||||||||||||
![]() ![]() |
SOΣ | 1..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) | Người kê đơn — bắt buộc theo TT 26/2025/TT-BYT
| |||||||||||||||
![]() ![]() |
SOΣC | 1..1 | Identifier | Mã đơn thuốc quốc gia (bắt buộc với đơn ngoại trú) Constraints: vn-rx-outpatient-code-format, vn-rx-narcotic-code-suffix
| |||||||||||||||
![]() ![]() ![]() |
?!Σ | 0..1 | code | usual | official | temp | secondary | old (If known) Binding: IdentifierUse (required): Identifies the purpose for this identifier, if known . | |||||||||||||||
![]() ![]() ![]() |
Σ | 1..1 | uri | The namespace for the identifier value Fixed Value: http://fhir.hl7.org.vn/core/sid/don-thuoc-quoc-gia | |||||||||||||||
![]() ![]() ![]() |
Σ | 1..1 | string | The value that is unique Example General: 123456 | |||||||||||||||
![]() ![]() |
SO | 1..* | Dosage | Hướng dẫn liều dùng
| |||||||||||||||
![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | |||||||||||||||
![]() ![]() ![]() |
SΣ | 0..1 | string | Hướng dẫn dạng text (VD: Uống 500mg, 3 lần/ngày, sau ăn) | |||||||||||||||
![]() ![]() ![]() |
SΣ | 0..1 | Timing | Lịch dùng thuốc (tần suất, thời điểm) | |||||||||||||||
![]() ![]() ![]() |
SΣ | 0..1 | CodeableConcept | Đường dùng (uống, tiêm, bôi...) — 56 mã theo Dược điển VN Binding: Đường dùng thuốc — Vietnam Medication Route ValueSet (extensible) | |||||||||||||||
![]() ![]() ![]() |
SΣ | 0..* | Element | Liều lượng và tốc độ | |||||||||||||||
![]() ![]() |
SO | 0..1 | BackboneElement | Yêu cầu cấp phát
| |||||||||||||||
![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | |||||||||||||||
![]() ![]() ![]() |
S | 0..1 | SimpleQuantity(4.0.1) | Tổng số lượng cấp phát | |||||||||||||||
![]() ![]() ![]() |
S | 0..1 | Duration | Số ngày sử dụng thuốc — TT 26/2025/TT-BYT Điều 6 khoản 6 | |||||||||||||||
Documentation for this format | |||||||||||||||||||
| Name | Bên yêu cầu dữ liệu lõi (Data Requester) | Kho hồ sơ EMR (Repository) | Bên đáp ứng dữ liệu lõi (Data Responder) | Nguồn tạo hồ sơ lâm sàng (Document Source)![]() |
|---|---|---|---|---|
![]() |
||||
![]() ![]() |
||||
![]() ![]() |
|
| ||
![]() ![]() |
|
| ||
![]() ![]() |
|
| ||
![]() ![]() |
|
| ||
![]() ![]() |
|
| ||
![]() ![]() |
|
| ||
![]() ![]() |
|
| ||
![]() ![]() |
|
| ||
![]() ![]() |
|
| ||
![]() ![]() |
|
| ||
![]() ![]() |
|
| ||
Documentation for this format | ||||
| Path | Status | Usage | ValueSet | Version | Source |
| MedicationRequest.status | Base | required | Medicationrequest status | 📍4.0.1 | FHIR Std. |
| MedicationRequest.intent | Base | required | Medication request intent | 📍4.0.1 | FHIR Std. |
| MedicationRequest.category | Base | example | Medication request category codes | 📍4.0.1 | FHIR Std. |
| MedicationRequest.medication[x] | Base | example | SNOMED CT Medication Codes | 📍4.0.1 | FHIR Std. |
| MedicationRequest.groupIdentifier.use | Base | required | IdentifierUse | 📍4.0.1 | FHIR Std. |
| MedicationRequest.dosageInstruction.route | Base | extensible | Đường dùng thuốc — Vietnam Medication Route ValueSet | 📦0.10.0 | This IG |
| Id | Grade | Path(s) | Description | Expression |
| dom-2 | error | MedicationRequest | If the resource is contained in another resource, it SHALL NOT contain nested Resources |
contained.contained.empty()
|
| dom-3 | error | MedicationRequest | 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 | MedicationRequest | 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 | MedicationRequest | If a resource is contained in another resource, it SHALL NOT have a security label |
contained.meta.security.empty()
|
| dom-6 | best practice | MedicationRequest | 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-rx-narcotic-code-suffix | error | MedicationRequest.groupIdentifier | Mã đơn thuốc gây nghiện phải kết thúc bằng hậu tố N theo Phụ lục I TT 26/2025/TT-BYT. A narcotic prescription code SHALL end with the N suffix. |
value.exists() implies value.matches('-N$')
|
| vn-rx-narcotic-course-consecutive | error | MedicationRequest | Ba đợt phải liên tiếp — đợt sau bắt đầu ngay ngày kế tiếp đợt trước — và tổng thời gian không quá 30 ngày. The three courses SHALL be consecutive and SHALL NOT exceed 30 days in total. |
(extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-narcotic-treatment-course').where(extension.where(url = 'sequence').value = 1).extension.where(url = 'period').value.ofType(Period).exists() and extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-narcotic-treatment-course').where(extension.where(url = 'sequence').value = 2).extension.where(url = 'period').value.ofType(Period).exists() and extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-narcotic-treatment-course').where(extension.where(url = 'sequence').value = 3).extension.where(url = 'period').value.ofType(Period).exists()) implies (extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-narcotic-treatment-course').where(extension.where(url = 'sequence').value = 2).extension.where(url = 'period').value.ofType(Period).start = extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-narcotic-treatment-course').where(extension.where(url = 'sequence').value = 1).extension.where(url = 'period').value.ofType(Period).end + 1 day and extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-narcotic-treatment-course').where(extension.where(url = 'sequence').value = 3).extension.where(url = 'period').value.ofType(Period).start = extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-narcotic-treatment-course').where(extension.where(url = 'sequence').value = 2).extension.where(url = 'period').value.ofType(Period).end + 1 day and extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-narcotic-treatment-course').where(extension.where(url = 'sequence').value = 3).extension.where(url = 'period').value.ofType(Period).end <= extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-narcotic-treatment-course').where(extension.where(url = 'sequence').value = 1).extension.where(url = 'period').value.ofType(Period).start + 29 days)
|
| vn-rx-narcotic-course-duration | error | MedicationRequest | Mỗi đợt điều trị không vượt quá 10 ngày, tính cả ngày bắt đầu và ngày kết thúc. Each course SHALL NOT exceed 10 days inclusive of both boundaries. |
extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-narcotic-treatment-course').all(extension.where(url = 'period').value.ofType(Period).start.exists() and extension.where(url = 'period').value.ofType(Period).end.exists() and extension.where(url = 'period').value.ofType(Period).end >= extension.where(url = 'period').value.ofType(Period).start and extension.where(url = 'period').value.ofType(Period).end <= extension.where(url = 'period').value.ofType(Period).start + 9 days)
|
| vn-rx-narcotic-course-numbering | error | MedicationRequest | Đơn phải có đúng ba đợt điều trị, đánh số 1, 2 và 3, mỗi số xuất hiện đúng một lần. The prescription SHALL carry exactly three courses numbered 1, 2 and 3. |
extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-narcotic-treatment-course').count() = 3 and extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-narcotic-treatment-course').where(extension.where(url = 'sequence').value = 1).count() = 1 and extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-narcotic-treatment-course').where(extension.where(url = 'sequence').value = 2).count() = 1 and extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-narcotic-treatment-course').where(extension.where(url = 'sequence').value = 3).count() = 1
|
| vn-rx-outpatient-category | error | MedicationRequest.category | Đơn ngoại trú phải mang ít nhất một category là outpatient hoặc discharge theo hệ mã medicationrequest-category của HL7. |
coding.where(system = 'http://terminology.hl7.org/CodeSystem/medicationrequest-category' and (code = 'outpatient' or code = 'discharge')).exists()
|
| vn-rx-outpatient-code-format | error | MedicationRequest.groupIdentifier | Mã đơn thuốc quốc gia gồm 14 ký tự theo Phụ lục I TT 26/2025/TT-BYT: 5 chữ số mã cơ sở khám bệnh, chữa bệnh + 7 ký tự chữ thường hoặc số + dấu gạch nối + 1 ký tự loại đơn (N, H hoặc C). Đơn thuốc cổ truyền dùng hậu tố T và thuộc profile VNCoreYHCTOutpatientPrescription. |
value.matches('^[0-9]{5}[0-9a-z]{7}-[NHC]$')
|
| vn-rx-outpatient-issued-only | error | MedicationRequest.status | Đơn ngoại trú liên thông phải là đơn đã phát hành: status không được là draft. |
$this != 'draft'
|
Dạng xem Differential
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() |
|---|---|---|---|---|
![]() |
C | 0..* | VNCoreOutpatientPrescription | Ordering of medication for patient or group Constraints: vn-rx-narcotic-course-numbering, vn-rx-narcotic-course-duration, vn-rx-narcotic-course-consecutive |
![]() ![]() |
3..* | Extension | Extension | |
![]() ![]() |
Content/Rules for all slices | |||
![]() ![]() ![]() |
3..3 | (Complex) | Đúng ba đợt điều trị liên tiếp (TT 26/2025/TT-BYT Điều 8 khoản 1) URL: http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-narcotic-treatment-course | |
![]() ![]() |
C | 1..1 | Identifier | Mã đơn thuốc quốc gia (bắt buộc với đơn ngoại trú) Constraints: vn-rx-narcotic-code-suffix |
Documentation for this format | ||||
Name![]() |
|---|
Documentation for this format |
| Id | Grade | Path(s) | Description | Expression |
| vn-rx-narcotic-code-suffix | error | MedicationRequest.groupIdentifier | Mã đơn thuốc gây nghiện phải kết thúc bằng hậu tố N theo Phụ lục I TT 26/2025/TT-BYT. A narcotic prescription code SHALL end with the N suffix. |
value.exists() implies value.matches('-N$')
|
| vn-rx-narcotic-course-consecutive | error | MedicationRequest | Ba đợt phải liên tiếp — đợt sau bắt đầu ngay ngày kế tiếp đợt trước — và tổng thời gian không quá 30 ngày. The three courses SHALL be consecutive and SHALL NOT exceed 30 days in total. |
(extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-narcotic-treatment-course').where(extension.where(url = 'sequence').value = 1).extension.where(url = 'period').value.ofType(Period).exists() and extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-narcotic-treatment-course').where(extension.where(url = 'sequence').value = 2).extension.where(url = 'period').value.ofType(Period).exists() and extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-narcotic-treatment-course').where(extension.where(url = 'sequence').value = 3).extension.where(url = 'period').value.ofType(Period).exists()) implies (extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-narcotic-treatment-course').where(extension.where(url = 'sequence').value = 2).extension.where(url = 'period').value.ofType(Period).start = extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-narcotic-treatment-course').where(extension.where(url = 'sequence').value = 1).extension.where(url = 'period').value.ofType(Period).end + 1 day and extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-narcotic-treatment-course').where(extension.where(url = 'sequence').value = 3).extension.where(url = 'period').value.ofType(Period).start = extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-narcotic-treatment-course').where(extension.where(url = 'sequence').value = 2).extension.where(url = 'period').value.ofType(Period).end + 1 day and extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-narcotic-treatment-course').where(extension.where(url = 'sequence').value = 3).extension.where(url = 'period').value.ofType(Period).end <= extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-narcotic-treatment-course').where(extension.where(url = 'sequence').value = 1).extension.where(url = 'period').value.ofType(Period).start + 29 days)
|
| vn-rx-narcotic-course-duration | error | MedicationRequest | Mỗi đợt điều trị không vượt quá 10 ngày, tính cả ngày bắt đầu và ngày kết thúc. Each course SHALL NOT exceed 10 days inclusive of both boundaries. |
extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-narcotic-treatment-course').all(extension.where(url = 'period').value.ofType(Period).start.exists() and extension.where(url = 'period').value.ofType(Period).end.exists() and extension.where(url = 'period').value.ofType(Period).end >= extension.where(url = 'period').value.ofType(Period).start and extension.where(url = 'period').value.ofType(Period).end <= extension.where(url = 'period').value.ofType(Period).start + 9 days)
|
| vn-rx-narcotic-course-numbering | error | MedicationRequest | Đơn phải có đúng ba đợt điều trị, đánh số 1, 2 và 3, mỗi số xuất hiện đúng một lần. The prescription SHALL carry exactly three courses numbered 1, 2 and 3. |
extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-narcotic-treatment-course').count() = 3 and extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-narcotic-treatment-course').where(extension.where(url = 'sequence').value = 1).count() = 1 and extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-narcotic-treatment-course').where(extension.where(url = 'sequence').value = 2).count() = 1 and extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-narcotic-treatment-course').where(extension.where(url = 'sequence').value = 3).count() = 1
|
Dạng xem SnapshotView
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() | |||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
![]() |
C | 0..* | VNCoreOutpatientPrescription | Ordering of medication for patient or group Constraints: vn-rx-narcotic-course-numbering, vn-rx-narcotic-course-duration, vn-rx-narcotic-course-consecutive | |||||||||||||||
![]() ![]() |
Σ | 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 | ||||||||||||||||
![]() ![]() |
3..* | Extension | Extension Slice: Unordered, Open by value:url | ||||||||||||||||
![]() ![]() ![]() |
0..1 | string | Số đăng ký thuốc (SO_DANG_KY) URL: http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-med-reg-number | ||||||||||||||||
![]() ![]() ![]() |
0..1 | CodeableConcept | Nguồn chi trả cho dòng thuốc (NGUON_CTRA) URL: http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-payment-source Binding: Nguồn chi trả — Vietnam Payment Source ValueSet (extensible) | ||||||||||||||||
![]() ![]() ![]() |
0..1 | string | Thông tin thầu (TT_THAU) URL: http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-tender-info | ||||||||||||||||
![]() ![]() ![]() |
0..1 | CodeableConcept | Phương pháp chế biến YHCT (MA_PP_CHEBIEN) URL: http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-traditional-processing-method Binding: Phương pháp chế biến vị thuốc cổ truyền — VN Traditional Medicine Processing Method ValueSet (extensible) | ||||||||||||||||
![]() ![]() ![]() |
3..3 | (Complex) | Đúng ba đợt điều trị liên tiếp (TT 26/2025/TT-BYT Điều 8 khoản 1) URL: http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-narcotic-treatment-course | ||||||||||||||||
![]() ![]() |
?! | 0..* | Extension | Extensions that cannot be ignored | |||||||||||||||
![]() ![]() |
SO | 0..* | Identifier | Mã dòng thuốc trong đơn (mã nội bộ của cơ sở kê đơn) — KHÔNG dùng cho mã đơn quốc gia
| |||||||||||||||
![]() ![]() |
?!SOΣC | 1..1 | code | Trạng thái đơn thuốc Binding: medicationrequest Status (required): A coded concept specifying the state of the prescribing event. Describes the lifecycle of the prescription. Constraints: vn-rx-outpatient-issued-only
| |||||||||||||||
![]() ![]() |
0..1 | CodeableConcept | Reason for current status Binding: medicationRequest Status Reason Codes (example): Identifies the reasons for a given status. | ||||||||||||||||
![]() ![]() |
?!SOΣ | 1..1 | code | Ý định: order (kê đơn) | proposal | plan Binding: medicationRequest Intent (required): The kind of medication order. Fixed Value: order
| |||||||||||||||
![]() ![]() |
SOC | 1..* | CodeableConcept | Bối cảnh kê đơn: outpatient (ngoại trú) hoặc discharge (cấp khi ra viện) Binding: medicationRequest Category Codes (example): A coded concept identifying the category of medication request. For example, where the medication is to be consumed or administered, or the type of medication treatment. Constraints: vn-rx-outpatient-category
| |||||||||||||||
![]() ![]() |
Σ | 0..1 | code | routine | urgent | asap | stat Binding: RequestPriority (required): Identifies the level of importance to be assigned to actioning the request. | |||||||||||||||
![]() ![]() |
?!Σ | 0..1 | boolean | True if request is prohibiting action | |||||||||||||||
![]() ![]() |
Σ | 0..1 | Reported rather than primary record | ||||||||||||||||
![]() ![]() ![]() |
boolean | ||||||||||||||||||
![]() ![]() ![]() |
Reference(Patient | Practitioner | PractitionerRole | RelatedPerson | Organization) | ||||||||||||||||||
![]() ![]() |
SOΣ | 1..1 | Thuốc được kê (ATC/SNOMED CT/tên thuốc / bài thuốc YHCT) Binding: SNOMEDCTMedicationCodes (example): A coded concept identifying substance or product that can be ordered.
| ||||||||||||||||
![]() ![]() ![]() |
CodeableConcept | ||||||||||||||||||
![]() ![]() ![]() |
Reference(Medication) | ||||||||||||||||||
![]() ![]() |
SOΣ | 1..1 | Reference(Bệnh nhân VN Core — VN Core Patient Profile) | Bệnh nhân được kê đơn
| |||||||||||||||
![]() ![]() |
0..1 | Reference(Lượt khám/nhập viện VN Core — VN Core Encounter Profile) | Lượt khám liên quan | ||||||||||||||||
![]() ![]() |
0..* | Reference(Resource) | Information to support ordering of the medication | ||||||||||||||||
![]() ![]() |
SOΣ | 1..1 | dateTime | Ngày kê đơn
| |||||||||||||||
![]() ![]() |
SOΣ | 1..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) | Người kê đơn — bắt buộc theo TT 26/2025/TT-BYT
| |||||||||||||||
![]() ![]() |
0..1 | Reference(Practitioner | PractitionerRole | Organization | Patient | Device | RelatedPerson | CareTeam) | Intended performer of administration | ||||||||||||||||
![]() ![]() |
Σ | 0..1 | CodeableConcept | Desired kind of performer of the medication administration Binding: ProcedurePerformerRoleCodes (example): Identifies the type of individual that is desired to administer the medication. | |||||||||||||||
![]() ![]() |
0..1 | Reference(Practitioner | PractitionerRole) | Person who entered the request | ||||||||||||||||
![]() ![]() |
0..* | CodeableConcept | Lý do kê đơn (mã ICD-10) Binding: Mã chẩn đoán — VN Core Condition Code ValueSet (extensible) | ||||||||||||||||
![]() ![]() |
0..* | Reference(Condition | Observation) | Condition or observation that supports why the prescription is being written | ||||||||||||||||
![]() ![]() |
Σ | 0..* | canonical() | Instantiates FHIR protocol or definition | |||||||||||||||
![]() ![]() |
Σ | 0..* | uri | Instantiates external protocol or definition | |||||||||||||||
![]() ![]() |
Σ | 0..* | Reference(CarePlan | MedicationRequest | ServiceRequest | ImmunizationRecommendation) | What request fulfills | |||||||||||||||
![]() ![]() |
SOΣC | 1..1 | Identifier | Mã đơn thuốc quốc gia (bắt buộc với đơn ngoại trú) Constraints: vn-rx-outpatient-code-format, vn-rx-narcotic-code-suffix
| |||||||||||||||
![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | ||||||||||||||||
![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | ||||||||||||||||
![]() ![]() ![]() |
?!Σ | 0..1 | code | usual | official | temp | secondary | old (If known) Binding: IdentifierUse (required): Identifies the purpose for this identifier, if known . | |||||||||||||||
![]() ![]() ![]() |
Σ | 0..1 | CodeableConcept | Description of identifier Binding: Identifier Type Codes (extensible): A coded type for an identifier that can be used to determine which identifier to use for a specific purpose. | |||||||||||||||
![]() ![]() ![]() |
Σ | 1..1 | uri | The namespace for the identifier value Fixed Value: http://fhir.hl7.org.vn/core/sid/don-thuoc-quoc-gia | |||||||||||||||
![]() ![]() ![]() |
Σ | 1..1 | string | The value that is unique Example General: 123456 | |||||||||||||||
![]() ![]() ![]() |
Σ | 0..1 | Period | Time period when id is/was valid for use | |||||||||||||||
![]() ![]() ![]() |
Σ | 0..1 | Reference(Organization) | Organization that issued id (may be just text) | |||||||||||||||
![]() ![]() |
0..1 | CodeableConcept | Overall pattern of medication administration Binding: medicationRequest Course of Therapy Codes (example): Identifies the overall pattern of medication administratio. | ||||||||||||||||
![]() ![]() |
0..* | Reference(Thẻ BHYT VN Core — VN Core Coverage Profile) | Thẻ BHYT (nếu đơn BHYT) | ||||||||||||||||
![]() ![]() |
0..* | Annotation | Ghi chú bổ sung | ||||||||||||||||
![]() ![]() |
SO | 1..* | Dosage | Hướng dẫn liều dùng
| |||||||||||||||
![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | ||||||||||||||||
![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | ||||||||||||||||
![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | |||||||||||||||
![]() ![]() ![]() |
Σ | 0..1 | integer | The order of the dosage instructions | |||||||||||||||
![]() ![]() ![]() |
SΣ | 0..1 | string | Hướng dẫn dạng text (VD: Uống 500mg, 3 lần/ngày, sau ăn) | |||||||||||||||
![]() ![]() ![]() |
Σ | 0..* | CodeableConcept | Supplemental instruction or warnings to the patient - e.g. "with meals", "may cause drowsiness" Binding: SNOMEDCTAdditionalDosageInstructions (example): A coded concept identifying additional instructions such as "take with water" or "avoid operating heavy machinery". | |||||||||||||||
![]() ![]() ![]() |
Σ | 0..1 | string | Patient or consumer oriented instructions | |||||||||||||||
![]() ![]() ![]() |
SΣ | 0..1 | Timing | Lịch dùng thuốc (tần suất, thời điểm) | |||||||||||||||
![]() ![]() ![]() |
Σ | 0..1 | Take "as needed" (for x) Binding: SNOMEDCTMedicationAsNeededReasonCodes (example): A coded concept identifying the precondition that should be met or evaluated prior to consuming or administering a medication dose. For example "pain", "30 minutes prior to sexual intercourse", "on flare-up" etc. | ||||||||||||||||
![]() ![]() ![]() ![]() |
boolean | ||||||||||||||||||
![]() ![]() ![]() ![]() |
CodeableConcept | ||||||||||||||||||
![]() ![]() ![]() |
Σ | 0..1 | CodeableConcept | Body site to administer to Binding: SNOMEDCTAnatomicalStructureForAdministrationSiteCodes (example): A coded concept describing the site location the medicine enters into or onto the body. | |||||||||||||||
![]() ![]() ![]() |
SΣ | 0..1 | CodeableConcept | Đường dùng (uống, tiêm, bôi...) — 56 mã theo Dược điển VN Binding: Đường dùng thuốc — Vietnam Medication Route ValueSet (extensible) | |||||||||||||||
![]() ![]() ![]() |
Σ | 0..1 | CodeableConcept | Technique for administering medication Binding: SNOMEDCTAdministrationMethodCodes (example): A coded concept describing the technique by which the medicine is administered. | |||||||||||||||
![]() ![]() ![]() |
SΣ | 0..* | Element | Liều lượng và tốc độ | |||||||||||||||
![]() ![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | ||||||||||||||||
![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | ||||||||||||||||
![]() ![]() ![]() ![]() |
Σ | 0..1 | CodeableConcept | The kind of dose or rate specified Binding: DoseAndRateType (example): The kind of dose or rate specified. | |||||||||||||||
![]() ![]() ![]() ![]() |
Σ | 0..1 | Amount of medication per dose | ||||||||||||||||
![]() ![]() ![]() ![]() ![]() |
Range | ||||||||||||||||||
![]() ![]() ![]() ![]() ![]() |
Quantity(SimpleQuantity) | ||||||||||||||||||
![]() ![]() ![]() ![]() |
Σ | 0..1 | Amount of medication per unit of time | ||||||||||||||||
![]() ![]() ![]() ![]() ![]() |
Ratio | ||||||||||||||||||
![]() ![]() ![]() ![]() ![]() |
Range | ||||||||||||||||||
![]() ![]() ![]() ![]() ![]() |
Quantity(SimpleQuantity) | ||||||||||||||||||
![]() ![]() ![]() |
Σ | 0..1 | Ratio | Upper limit on medication per unit of time | |||||||||||||||
![]() ![]() ![]() |
Σ | 0..1 | SimpleQuantity(4.0.1) | Upper limit on medication per administration | |||||||||||||||
![]() ![]() ![]() |
Σ | 0..1 | SimpleQuantity(4.0.1) | Upper limit on medication per lifetime of the patient | |||||||||||||||
![]() ![]() |
SO | 0..1 | BackboneElement | Yêu cầu cấp phát
| |||||||||||||||
![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | ||||||||||||||||
![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | ||||||||||||||||
![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | |||||||||||||||
![]() ![]() ![]() |
0..1 | BackboneElement | First fill details | ||||||||||||||||
![]() ![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | ||||||||||||||||
![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | ||||||||||||||||
![]() ![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | |||||||||||||||
![]() ![]() ![]() ![]() |
0..1 | SimpleQuantity(4.0.1) | First fill quantity | ||||||||||||||||
![]() ![]() ![]() ![]() |
0..1 | Duration | First fill duration | ||||||||||||||||
![]() ![]() ![]() |
0..1 | Duration | Minimum period of time between dispenses | ||||||||||||||||
![]() ![]() ![]() |
0..1 | Period | Time period supply is authorized for | ||||||||||||||||
![]() ![]() ![]() |
0..1 | unsignedInt | Number of refills authorized | ||||||||||||||||
![]() ![]() ![]() |
S | 0..1 | SimpleQuantity(4.0.1) | Tổng số lượng cấp phát | |||||||||||||||
![]() ![]() ![]() |
S | 0..1 | Duration | Số ngày sử dụng thuốc — TT 26/2025/TT-BYT Điều 6 khoản 6 | |||||||||||||||
![]() ![]() ![]() |
0..1 | Reference(Organization) | Intended dispenser | ||||||||||||||||
![]() ![]() |
0..1 | BackboneElement | Thay thế thuốc | ||||||||||||||||
![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | ||||||||||||||||
![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | ||||||||||||||||
![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | |||||||||||||||
![]() ![]() ![]() |
1..1 | Whether substitution is allowed or not Binding: ActSubstanceAdminSubstitutionCode (example): Identifies the type of substitution allowed. | |||||||||||||||||
![]() ![]() ![]() ![]() |
boolean | ||||||||||||||||||
![]() ![]() ![]() ![]() |
CodeableConcept | ||||||||||||||||||
![]() ![]() ![]() |
0..1 | CodeableConcept | Why should (not) substitution be made Binding: SubstanceAdminSubstitutionReason (example): A coded concept describing the reason that a different medication should (or should not) be substituted from what was prescribed. | ||||||||||||||||
![]() ![]() |
0..1 | Reference(MedicationRequest) | An order/prescription that is being replaced | ||||||||||||||||
![]() ![]() |
0..* | Reference(DetectedIssue) | Clinical Issue with action | ||||||||||||||||
![]() ![]() |
0..* | Reference(Provenance) | A list of events of interest in the lifecycle | ||||||||||||||||
Documentation for this format | |||||||||||||||||||
| Name | Bên yêu cầu dữ liệu lõi (Data Requester) | Kho hồ sơ EMR (Repository) | Bên đáp ứng dữ liệu lõi (Data Responder) | Nguồn tạo hồ sơ lâm sàng (Document Source)![]() |
|---|---|---|---|---|
![]() |
||||
![]() ![]() |
||||
![]() ![]() |
|
| ||
![]() ![]() |
|
| ||
![]() ![]() |
|
| ||
![]() ![]() |
|
| ||
![]() ![]() |
|
| ||
![]() ![]() |
|
| ||
![]() ![]() |
|
| ||
![]() ![]() |
|
| ||
![]() ![]() |
|
| ||
![]() ![]() |
|
| ||
![]() ![]() |
|
| ||
Documentation for this format | ||||
| Path | Status | Usage | ValueSet | Version | Source |
| MedicationRequest.language | Base | preferred | Common Languages | 📍4.0.1 | FHIR Std. |
| MedicationRequest.status | Base | required | Medicationrequest status | 📍4.0.1 | FHIR Std. |
| MedicationRequest.statusReason | Base | example | Medication request status reason codes | 📍4.0.1 | FHIR Std. |
| MedicationRequest.intent | Base | required | Medication request intent | 📍4.0.1 | FHIR Std. |
| MedicationRequest.category | Base | example | Medication request category codes | 📍4.0.1 | FHIR Std. |
| MedicationRequest.priority | Base | required | Request priority | 📍4.0.1 | FHIR Std. |
| MedicationRequest.medication[x] | Base | example | SNOMED CT Medication Codes | 📍4.0.1 | FHIR Std. |
| MedicationRequest.performerType | Base | example | Procedure Performer Role Codes | 📍4.0.1 | FHIR Std. |
| MedicationRequest.reasonCode | Base | extensible | Mã chẩn đoán — VN Core Condition Code ValueSet | 📦0.10.0 | This IG |
| MedicationRequest.groupIdentifier.use | Base | required | IdentifierUse | 📍4.0.1 | FHIR Std. |
| MedicationRequest.groupIdentifier.type | Base | extensible | IdentifierType | 📍4.0.1 | FHIR Std. |
| MedicationRequest.courseOfTherapyType | Base | example | Medication request course of therapy codes | 📍4.0.1 | FHIR Std. |
| MedicationRequest.dosageInstruction.additionalInstruction | Base | example | SNOMED CT Additional Dosage Instructions | 📍4.0.1 | FHIR Std. |
| MedicationRequest.dosageInstruction.asNeeded[x] | Base | example | SNOMED CT Medication As Needed Reason Codes | 📍4.0.1 | FHIR Std. |
| MedicationRequest.dosageInstruction.site | Base | example | SNOMED CT Anatomical Structure for Administration Site Codes | 📍4.0.1 | FHIR Std. |
| MedicationRequest.dosageInstruction.route | Base | extensible | Đường dùng thuốc — Vietnam Medication Route ValueSet | 📦0.10.0 | This IG |
| MedicationRequest.dosageInstruction.method | Base | example | SNOMED CT Administration Method Codes | 📍4.0.1 | FHIR Std. |
| MedicationRequest.dosageInstruction.doseAndRate.type | Base | example | DoseAndRateType | 📍4.0.1 | FHIR Std. |
| MedicationRequest.substitution.allowed[x] | Base | example | ActSubstanceAdminSubstitutionCode | 📦3.0.0 | THO v7.2 |
| MedicationRequest.substitution.reason | Base | example | SubstanceAdminSubstitutionReason | 📦3.0.0 | THO v7.2 |
| Id | Grade | Path(s) | Description | Expression |
| dom-2 | error | MedicationRequest | If the resource is contained in another resource, it SHALL NOT contain nested Resources |
contained.contained.empty()
|
| dom-3 | error | MedicationRequest | 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 | MedicationRequest | 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 | MedicationRequest | If a resource is contained in another resource, it SHALL NOT have a security label |
contained.meta.security.empty()
|
| dom-6 | best practice | MedicationRequest | 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-rx-narcotic-code-suffix | error | MedicationRequest.groupIdentifier | Mã đơn thuốc gây nghiện phải kết thúc bằng hậu tố N theo Phụ lục I TT 26/2025/TT-BYT. A narcotic prescription code SHALL end with the N suffix. |
value.exists() implies value.matches('-N$')
|
| vn-rx-narcotic-course-consecutive | error | MedicationRequest | Ba đợt phải liên tiếp — đợt sau bắt đầu ngay ngày kế tiếp đợt trước — và tổng thời gian không quá 30 ngày. The three courses SHALL be consecutive and SHALL NOT exceed 30 days in total. |
(extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-narcotic-treatment-course').where(extension.where(url = 'sequence').value = 1).extension.where(url = 'period').value.ofType(Period).exists() and extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-narcotic-treatment-course').where(extension.where(url = 'sequence').value = 2).extension.where(url = 'period').value.ofType(Period).exists() and extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-narcotic-treatment-course').where(extension.where(url = 'sequence').value = 3).extension.where(url = 'period').value.ofType(Period).exists()) implies (extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-narcotic-treatment-course').where(extension.where(url = 'sequence').value = 2).extension.where(url = 'period').value.ofType(Period).start = extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-narcotic-treatment-course').where(extension.where(url = 'sequence').value = 1).extension.where(url = 'period').value.ofType(Period).end + 1 day and extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-narcotic-treatment-course').where(extension.where(url = 'sequence').value = 3).extension.where(url = 'period').value.ofType(Period).start = extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-narcotic-treatment-course').where(extension.where(url = 'sequence').value = 2).extension.where(url = 'period').value.ofType(Period).end + 1 day and extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-narcotic-treatment-course').where(extension.where(url = 'sequence').value = 3).extension.where(url = 'period').value.ofType(Period).end <= extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-narcotic-treatment-course').where(extension.where(url = 'sequence').value = 1).extension.where(url = 'period').value.ofType(Period).start + 29 days)
|
| vn-rx-narcotic-course-duration | error | MedicationRequest | Mỗi đợt điều trị không vượt quá 10 ngày, tính cả ngày bắt đầu và ngày kết thúc. Each course SHALL NOT exceed 10 days inclusive of both boundaries. |
extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-narcotic-treatment-course').all(extension.where(url = 'period').value.ofType(Period).start.exists() and extension.where(url = 'period').value.ofType(Period).end.exists() and extension.where(url = 'period').value.ofType(Period).end >= extension.where(url = 'period').value.ofType(Period).start and extension.where(url = 'period').value.ofType(Period).end <= extension.where(url = 'period').value.ofType(Period).start + 9 days)
|
| vn-rx-narcotic-course-numbering | error | MedicationRequest | Đơn phải có đúng ba đợt điều trị, đánh số 1, 2 và 3, mỗi số xuất hiện đúng một lần. The prescription SHALL carry exactly three courses numbered 1, 2 and 3. |
extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-narcotic-treatment-course').count() = 3 and extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-narcotic-treatment-course').where(extension.where(url = 'sequence').value = 1).count() = 1 and extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-narcotic-treatment-course').where(extension.where(url = 'sequence').value = 2).count() = 1 and extension.where(url = 'http://fhir.hl7.org.vn/core/StructureDefinition/vn-ext-narcotic-treatment-course').where(extension.where(url = 'sequence').value = 3).count() = 1
|
| vn-rx-outpatient-category | error | MedicationRequest.category | Đơn ngoại trú phải mang ít nhất một category là outpatient hoặc discharge theo hệ mã medicationrequest-category của HL7. |
coding.where(system = 'http://terminology.hl7.org/CodeSystem/medicationrequest-category' and (code = 'outpatient' or code = 'discharge')).exists()
|
| vn-rx-outpatient-code-format | error | MedicationRequest.groupIdentifier | Mã đơn thuốc quốc gia gồm 14 ký tự theo Phụ lục I TT 26/2025/TT-BYT: 5 chữ số mã cơ sở khám bệnh, chữa bệnh + 7 ký tự chữ thường hoặc số + dấu gạch nối + 1 ký tự loại đơn (N, H hoặc C). Đơn thuốc cổ truyền dùng hậu tố T và thuộc profile VNCoreYHCTOutpatientPrescription. |
value.matches('^[0-9]{5}[0-9a-z]{7}-[NHC]$')
|
| vn-rx-outpatient-issued-only | error | MedicationRequest.status | Đơn ngoại trú liên thông phải là đơn đã phát hành: status không được là draft. |
$this != 'draft'
|
| Name | Bên yêu cầu dữ liệu lõi (Data Requester) | Kho hồ sơ EMR (Repository) | Bên đáp ứng dữ liệu lõi (Data Responder) | Nguồn tạo hồ sơ lâm sàng (Document Source)![]() |
|---|---|---|---|---|
![]() |
||||
![]() ![]() |
||||
![]() ![]() |
|
| ||
![]() ![]() |
|
| ||
![]() ![]() |
|
| ||
![]() ![]() |
|
| ||
![]() ![]() |
|
| ||
![]() ![]() |
|
| ||
![]() ![]() |
|
| ||
![]() ![]() |
|
| ||
![]() ![]() |
|
| ||
![]() ![]() |
|
| ||
![]() ![]() |
|
| ||
Documentation for this format | ||||
Biểu diễn khác của hồ sơ: CSV, Excel, Schematron