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-medication-statement | Phiên bản: 0.10.0 | ||||
| Computable Name: VNCoreMedicationStatement | |||||
| Định danh khác: OID:2.25.161089673617632664299011809196868855799.42.84 | |||||
Bản quyền/Pháp lý: Căn cứ pháp lý Việt Nam: TT 13/2025/TT-BYT ngày 06/06/2025; Luật Dược 105/2016/QH13 Điều 74; Luật 44/2024/QH15. |
|||||
Profile MedicationStatement ghi nhận tiền sử/đang dùng thuốc của người bệnh (khai thác bệnh sử khi tiếp nhận ngoại trú/nội trú). Khác MedicationRequest (y lệnh mới) và MedicationDispense (cấp phát) — đây là ghi nhận thuốc người bệnh khai/đang dùng. Căn cứ pháp lý:
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 | Kho hồ sơ EMR (Repository) | Ứng dụng người dân (Citizen App) | Nguồn tạo hồ sơ lâm sàng (Document Source)![]() |
|---|---|---|---|
![]() |
|||
![]() ![]() |
| ||
![]() ![]() |
| ||
![]() ![]() |
| ||
![]() ![]() |
| ||
![]() ![]() |
| ||
![]() ![]() |
| ||
Documentation for this format | |||
| Path | Status | Usage | ValueSet | Version | Source |
| MedicationStatement.status | Base | required | Medication status codes | 📍4.0.1 | FHIR Std. |
| MedicationStatement.medication[x] | Base | example | SNOMED CT Medication Codes | 📍4.0.1 | FHIR Std. |
| Id | Grade | Path(s) | Description | Expression |
| dom-2 | error | MedicationStatement | If the resource is contained in another resource, it SHALL NOT contain nested Resources |
contained.contained.empty()
|
| dom-3 | error | MedicationStatement | 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 | MedicationStatement | 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 | MedicationStatement | If a resource is contained in another resource, it SHALL NOT have a security label |
contained.meta.security.empty()
|
| dom-6 | best practice | MedicationStatement | 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()
|
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
![]() |
0..* | MedicationStatement | Record of medication being taken by a patient | |||||||||
![]() ![]() |
SO | 1..1 | code | Trạng thái: active, completed, intended, stopped, on-hold...
| ||||||||
![]() ![]() |
SO | 1..1 | CodeableConcept | Thuốc người bệnh đang/đã dùng (ATC / mã thuốc / text)
| ||||||||
![]() ![]() |
SO | 1..1 | Reference(Bệnh nhân VN Core — VN Core Patient Profile) | Người bệnh
| ||||||||
![]() ![]() |
SO | 0..1 | Reference(Lượt khám/nhập viện VN Core — VN Core Encounter Profile) | Lượt khai thác tiền sử
| ||||||||
![]() ![]() |
SO | 0..1 | dateTime, Period | Thời điểm/khoảng thời gian dùng thuốc
| ||||||||
![]() ![]() |
SO | 0..* | Dosage | Cách dùng theo lời khai
| ||||||||
Documentation for this format | ||||||||||||
| Name | Kho hồ sơ EMR (Repository) | Ứng dụng người dân (Citizen App) | Nguồn tạo hồ sơ lâm sàng (Document Source)![]() |
|---|---|---|---|
![]() |
|||
![]() ![]() |
| ||
![]() ![]() |
| ||
![]() ![]() |
| ||
![]() ![]() |
| ||
![]() ![]() |
| ||
![]() ![]() |
| ||
Documentation for this format | |||
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
![]() |
0..* | MedicationStatement | Record of medication being taken by a patient | |||||||||
![]() ![]() |
Σ | 0..1 | id | Logical id of this artifact | ||||||||
![]() ![]() |
Σ | 0..1 | Meta | Metadata about the resource | ||||||||
![]() ![]() |
?!Σ | 0..1 | uri | A set of rules under which this content was created | ||||||||
![]() ![]() |
0..1 | code | Language of the resource content Binding: CommonLanguages (preferred): A human language.
| |||||||||
![]() ![]() |
0..1 | Narrative | Text summary of the resource, for human interpretation This profile does not constrain the narrative in regard to content, language, or traceability to data elements | |||||||||
![]() ![]() |
0..* | Resource | Contained, inline Resources | |||||||||
![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||||||
![]() ![]() |
?! | 0..* | Extension | Extensions that cannot be ignored | ||||||||
![]() ![]() |
Σ | 0..* | Identifier | External identifier | ||||||||
![]() ![]() |
Σ | 0..* | Reference(MedicationRequest | CarePlan | ServiceRequest) | Fulfils plan, proposal or order | ||||||||
![]() ![]() |
Σ | 0..* | Reference(MedicationAdministration | MedicationDispense | MedicationStatement | Procedure | Observation) | Part of referenced event | ||||||||
![]() ![]() |
?!SOΣ | 1..1 | code | Trạng thái: active, completed, intended, stopped, on-hold... Binding: Medication Status Codes (required): A coded concept indicating the current status of a MedicationStatement.
| ||||||||
![]() ![]() |
0..* | CodeableConcept | Reason for current status Binding: SNOMEDCTDrugTherapyStatusCodes (example): A coded concept indicating the reason for the status of the statement. | |||||||||
![]() ![]() |
Σ | 0..1 | CodeableConcept | Type of medication usage Binding: Medication usage category codes (preferred): A coded concept identifying where the medication included in the MedicationStatement is expected to be consumed or administered. | ||||||||
![]() ![]() |
SOΣ | 1..1 | CodeableConcept | Thuốc người bệnh đang/đã dùng (ATC / mã thuốc / text) Binding: SNOMEDCTMedicationCodes (example): A coded concept identifying the substance or product being taken.
| ||||||||
![]() ![]() |
SOΣ | 1..1 | Reference(Bệnh nhân VN Core — VN Core Patient Profile) | Người bệnh
| ||||||||
![]() ![]() |
SOΣ | 0..1 | Reference(Lượt khám/nhập viện VN Core — VN Core Encounter Profile) | Lượt khai thác tiền sử
| ||||||||
![]() ![]() |
SOΣ | 0..1 | Thời điểm/khoảng thời gian dùng thuốc
| |||||||||
![]() ![]() ![]() |
dateTime | |||||||||||
![]() ![]() ![]() |
Period | |||||||||||
![]() ![]() |
Σ | 0..1 | dateTime | When the statement was asserted? | ||||||||
![]() ![]() |
0..1 | Reference(Patient | Practitioner | PractitionerRole | RelatedPerson | Organization) | Person or organization that provided the information about the taking of this medication | |||||||||
![]() ![]() |
0..* | Reference(Resource) | Additional supporting information | |||||||||
![]() ![]() |
0..* | CodeableConcept | Reason for why the medication is being/was taken Binding: Condition/Problem/DiagnosisCodes (example): A coded concept identifying why the medication is being taken. | |||||||||
![]() ![]() |
0..* | Reference(Condition | Observation | DiagnosticReport) | Condition or observation that supports why the medication is being/was taken | |||||||||
![]() ![]() |
0..* | Annotation | Further information about the statement | |||||||||
![]() ![]() |
SO | 0..* | Dosage | Cách dùng theo lời khai
| ||||||||
Documentation for this format | ||||||||||||
| Name | Kho hồ sơ EMR (Repository) | Ứng dụng người dân (Citizen App) | Nguồn tạo hồ sơ lâm sàng (Document Source)![]() |
|---|---|---|---|
![]() |
|||
![]() ![]() |
| ||
![]() ![]() |
| ||
![]() ![]() |
| ||
![]() ![]() |
| ||
![]() ![]() |
| ||
![]() ![]() |
| ||
Documentation for this format | |||
| Path | Status | Usage | ValueSet | Version | Source |
| MedicationStatement.language | Base | preferred | Common Languages | 📍4.0.1 | FHIR Std. |
| MedicationStatement.status | Base | required | Medication status codes | 📍4.0.1 | FHIR Std. |
| MedicationStatement.statusReason | Base | example | SNOMED CT Drug Therapy Status codes | 📍4.0.1 | FHIR Std. |
| MedicationStatement.category | Base | preferred | Medication usage category codes | 📍4.0.1 | FHIR Std. |
| MedicationStatement.medication[x] | Base | example | SNOMED CT Medication Codes | 📍4.0.1 | FHIR Std. |
| MedicationStatement.reasonCode | Base | example | Condition/Problem/Diagnosis Codes | 📍4.0.1 | FHIR Std. |
| Id | Grade | Path(s) | Description | Expression |
| dom-2 | error | MedicationStatement | If the resource is contained in another resource, it SHALL NOT contain nested Resources |
contained.contained.empty()
|
| dom-3 | error | MedicationStatement | 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 | MedicationStatement | 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 | MedicationStatement | If a resource is contained in another resource, it SHALL NOT have a security label |
contained.meta.security.empty()
|
| dom-6 | best practice | MedicationStatement | 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()
|
| Name | Kho hồ sơ EMR (Repository) | Ứng dụng người dân (Citizen App) | 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: ![]() ![]() | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
![]() |
0..* | MedicationStatement | Record of medication being taken by a patient | |||||||||
![]() ![]() |
?!Σ | 0..1 | uri | A set of rules under which this content was created | ||||||||
![]() ![]() |
?! | 0..* | Extension | Extensions that cannot be ignored | ||||||||
![]() ![]() |
?!SOΣ | 1..1 | code | Trạng thái: active, completed, intended, stopped, on-hold... Binding: Medication Status Codes (required): A coded concept indicating the current status of a MedicationStatement.
| ||||||||
![]() ![]() |
SOΣ | 1..1 | CodeableConcept | Thuốc người bệnh đang/đã dùng (ATC / mã thuốc / text) Binding: SNOMEDCTMedicationCodes (example): A coded concept identifying the substance or product being taken.
| ||||||||
![]() ![]() |
SOΣ | 1..1 | Reference(Bệnh nhân VN Core — VN Core Patient Profile) | Người bệnh
| ||||||||
![]() ![]() |
SOΣ | 0..1 | Reference(Lượt khám/nhập viện VN Core — VN Core Encounter Profile) | Lượt khai thác tiền sử
| ||||||||
![]() ![]() |
SOΣ | 0..1 | Thời điểm/khoảng thời gian dùng thuốc
| |||||||||
![]() ![]() ![]() |
dateTime | |||||||||||
![]() ![]() ![]() |
Period | |||||||||||
![]() ![]() |
SO | 0..* | Dosage | Cách dùng theo lời khai
| ||||||||
Documentation for this format | ||||||||||||
| Name | Kho hồ sơ EMR (Repository) | Ứng dụng người dân (Citizen App) | Nguồn tạo hồ sơ lâm sàng (Document Source)![]() |
|---|---|---|---|
![]() |
|||
![]() ![]() |
| ||
![]() ![]() |
| ||
![]() ![]() |
| ||
![]() ![]() |
| ||
![]() ![]() |
| ||
![]() ![]() |
| ||
Documentation for this format | |||
| Path | Status | Usage | ValueSet | Version | Source |
| MedicationStatement.status | Base | required | Medication status codes | 📍4.0.1 | FHIR Std. |
| MedicationStatement.medication[x] | Base | example | SNOMED CT Medication Codes | 📍4.0.1 | FHIR Std. |
| Id | Grade | Path(s) | Description | Expression |
| dom-2 | error | MedicationStatement | If the resource is contained in another resource, it SHALL NOT contain nested Resources |
contained.contained.empty()
|
| dom-3 | error | MedicationStatement | 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 | MedicationStatement | 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 | MedicationStatement | If a resource is contained in another resource, it SHALL NOT have a security label |
contained.meta.security.empty()
|
| dom-6 | best practice | MedicationStatement | A resource should have narrative for robust management |
text.`div`.exists()
|
| ele-1 | error | **ALL** elements | All FHIR elements must have a @value or children |
hasValue() or (children().count() > id.count())
|
| ext-1 | error | **ALL** extensions | Must have either extensions or value[x], not both |
extension.exists() != value.exists()
|
Dạng xem Differential
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
![]() |
0..* | MedicationStatement | Record of medication being taken by a patient | |||||||||
![]() ![]() |
SO | 1..1 | code | Trạng thái: active, completed, intended, stopped, on-hold...
| ||||||||
![]() ![]() |
SO | 1..1 | CodeableConcept | Thuốc người bệnh đang/đã dùng (ATC / mã thuốc / text)
| ||||||||
![]() ![]() |
SO | 1..1 | Reference(Bệnh nhân VN Core — VN Core Patient Profile) | Người bệnh
| ||||||||
![]() ![]() |
SO | 0..1 | Reference(Lượt khám/nhập viện VN Core — VN Core Encounter Profile) | Lượt khai thác tiền sử
| ||||||||
![]() ![]() |
SO | 0..1 | dateTime, Period | Thời điểm/khoảng thời gian dùng thuốc
| ||||||||
![]() ![]() |
SO | 0..* | Dosage | Cách dùng theo lời khai
| ||||||||
Documentation for this format | ||||||||||||
| Name | Kho hồ sơ EMR (Repository) | Ứng dụng người dân (Citizen App) | Nguồn tạo hồ sơ lâm sàng (Document Source)![]() |
|---|---|---|---|
![]() |
|||
![]() ![]() |
| ||
![]() ![]() |
| ||
![]() ![]() |
| ||
![]() ![]() |
| ||
![]() ![]() |
| ||
![]() ![]() |
| ||
Documentation for this format | |||
Dạng xem SnapshotView
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
![]() |
0..* | MedicationStatement | Record of medication being taken by a patient | |||||||||
![]() ![]() |
Σ | 0..1 | id | Logical id of this artifact | ||||||||
![]() ![]() |
Σ | 0..1 | Meta | Metadata about the resource | ||||||||
![]() ![]() |
?!Σ | 0..1 | uri | A set of rules under which this content was created | ||||||||
![]() ![]() |
0..1 | code | Language of the resource content Binding: CommonLanguages (preferred): A human language.
| |||||||||
![]() ![]() |
0..1 | Narrative | Text summary of the resource, for human interpretation This profile does not constrain the narrative in regard to content, language, or traceability to data elements | |||||||||
![]() ![]() |
0..* | Resource | Contained, inline Resources | |||||||||
![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||||||
![]() ![]() |
?! | 0..* | Extension | Extensions that cannot be ignored | ||||||||
![]() ![]() |
Σ | 0..* | Identifier | External identifier | ||||||||
![]() ![]() |
Σ | 0..* | Reference(MedicationRequest | CarePlan | ServiceRequest) | Fulfils plan, proposal or order | ||||||||
![]() ![]() |
Σ | 0..* | Reference(MedicationAdministration | MedicationDispense | MedicationStatement | Procedure | Observation) | Part of referenced event | ||||||||
![]() ![]() |
?!SOΣ | 1..1 | code | Trạng thái: active, completed, intended, stopped, on-hold... Binding: Medication Status Codes (required): A coded concept indicating the current status of a MedicationStatement.
| ||||||||
![]() ![]() |
0..* | CodeableConcept | Reason for current status Binding: SNOMEDCTDrugTherapyStatusCodes (example): A coded concept indicating the reason for the status of the statement. | |||||||||
![]() ![]() |
Σ | 0..1 | CodeableConcept | Type of medication usage Binding: Medication usage category codes (preferred): A coded concept identifying where the medication included in the MedicationStatement is expected to be consumed or administered. | ||||||||
![]() ![]() |
SOΣ | 1..1 | CodeableConcept | Thuốc người bệnh đang/đã dùng (ATC / mã thuốc / text) Binding: SNOMEDCTMedicationCodes (example): A coded concept identifying the substance or product being taken.
| ||||||||
![]() ![]() |
SOΣ | 1..1 | Reference(Bệnh nhân VN Core — VN Core Patient Profile) | Người bệnh
| ||||||||
![]() ![]() |
SOΣ | 0..1 | Reference(Lượt khám/nhập viện VN Core — VN Core Encounter Profile) | Lượt khai thác tiền sử
| ||||||||
![]() ![]() |
SOΣ | 0..1 | Thời điểm/khoảng thời gian dùng thuốc
| |||||||||
![]() ![]() ![]() |
dateTime | |||||||||||
![]() ![]() ![]() |
Period | |||||||||||
![]() ![]() |
Σ | 0..1 | dateTime | When the statement was asserted? | ||||||||
![]() ![]() |
0..1 | Reference(Patient | Practitioner | PractitionerRole | RelatedPerson | Organization) | Person or organization that provided the information about the taking of this medication | |||||||||
![]() ![]() |
0..* | Reference(Resource) | Additional supporting information | |||||||||
![]() ![]() |
0..* | CodeableConcept | Reason for why the medication is being/was taken Binding: Condition/Problem/DiagnosisCodes (example): A coded concept identifying why the medication is being taken. | |||||||||
![]() ![]() |
0..* | Reference(Condition | Observation | DiagnosticReport) | Condition or observation that supports why the medication is being/was taken | |||||||||
![]() ![]() |
0..* | Annotation | Further information about the statement | |||||||||
![]() ![]() |
SO | 0..* | Dosage | Cách dùng theo lời khai
| ||||||||
Documentation for this format | ||||||||||||
| Name | Kho hồ sơ EMR (Repository) | Ứng dụng người dân (Citizen App) | Nguồn tạo hồ sơ lâm sàng (Document Source)![]() |
|---|---|---|---|
![]() |
|||
![]() ![]() |
| ||
![]() ![]() |
| ||
![]() ![]() |
| ||
![]() ![]() |
| ||
![]() ![]() |
| ||
![]() ![]() |
| ||
Documentation for this format | |||
| Path | Status | Usage | ValueSet | Version | Source |
| MedicationStatement.language | Base | preferred | Common Languages | 📍4.0.1 | FHIR Std. |
| MedicationStatement.status | Base | required | Medication status codes | 📍4.0.1 | FHIR Std. |
| MedicationStatement.statusReason | Base | example | SNOMED CT Drug Therapy Status codes | 📍4.0.1 | FHIR Std. |
| MedicationStatement.category | Base | preferred | Medication usage category codes | 📍4.0.1 | FHIR Std. |
| MedicationStatement.medication[x] | Base | example | SNOMED CT Medication Codes | 📍4.0.1 | FHIR Std. |
| MedicationStatement.reasonCode | Base | example | Condition/Problem/Diagnosis Codes | 📍4.0.1 | FHIR Std. |
| Id | Grade | Path(s) | Description | Expression |
| dom-2 | error | MedicationStatement | If the resource is contained in another resource, it SHALL NOT contain nested Resources |
contained.contained.empty()
|
| dom-3 | error | MedicationStatement | 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 | MedicationStatement | 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 | MedicationStatement | If a resource is contained in another resource, it SHALL NOT have a security label |
contained.meta.security.empty()
|
| dom-6 | best practice | MedicationStatement | 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()
|
| Name | Kho hồ sơ EMR (Repository) | Ứng dụng người dân (Citizen App) | 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