NHDR Implementation Guide Release 1.0
0.1.0 - ci-build

NHDR Implementation Guide Release 1.0, published by NHDR. This guide is not an authorized publication; it is the continuous build for version 0.1.0 built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/UP-Manila-SILab/PhilHealth-NHDR-IG-Review/ and changes regularly. See the Directory of published versions

Resource Profile: PH MedicationDispense

Official URL: https://nhdr.gov.ph/fhir/StructureDefinition/PH-MedicationDispense Version: 0.1.0
Standards status: Draft Computable Name: PH_MedicationDispense

Copyright/Legal: Used by permission of HL7 International, all rights reserved Creative Commons License

Indicates that a medication product is to be or has been dispensed for a named person or patient.

Usages:

  • This Profile is not used by any profiles in this Implementation Guide

You can also check for usages in the FHIR IG Statistics

Formal Views of Profile Content

Description of Profiles, Differentials, Snapshots and how the different presentations work.

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. MedicationDispense C 0..* MedicationDispense Dispensing a medication to a named patient
Constraints: mdd-1
... status ?!Σ 1..1 code preparation | in-progress | cancelled | on-hold | completed | entered-in-error | stopped | declined | unknown
Binding: MedicationDispense Status Codes (required): A coded concept specifying the state of the dispense event.
... medication[x] Σ 1..1 What medication was supplied
Binding: SNOMEDCTMedicationCodes (example): A coded concept identifying which substance or product can be dispensed.
.... medicationCodeableConcept CodeableConcept
.... medicationReference Reference(Medication)

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
MedicationDispense.status Base required Medication dispense status codes 📍4.0.1 FHIR Std.
MedicationDispense.medication[x] Base example SNOMED CT Medication Codes 📍4.0.1 FHIR Std.

Constraints

Id Grade Path(s) Description Expression
dom-2 error MedicationDispense If the resource is contained in another resource, it SHALL NOT contain nested Resources contained.contained.empty()
dom-3 error MedicationDispense 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 MedicationDispense 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 MedicationDispense If a resource is contained in another resource, it SHALL NOT have a security label contained.meta.security.empty()
dom-6 best practice MedicationDispense 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()
mdd-1 error MedicationDispense whenHandedOver cannot be before whenPrepared whenHandedOver.empty() or whenPrepared.empty() or whenHandedOver >= whenPrepared

This structure is derived from MedicationDispense

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. MedicationDispense 0..* MedicationDispense Dispensing a medication to a named patient
... meta
.... Slices for extension Content/Rules for all slices
..... extension:hfRecordedDate 0..1 dateTime The recorded date indicating when the record was uploaded by the health facility.
URL: https://nhdr.gov.ph/fhir/StructureDefinition/HFRecordedDate
..... extension:hfLastUpdated 0..* dateTime The date indicating when the record was last updated by the health facility.
URL: https://nhdr.gov.ph/fhir/StructureDefinition/HFLastUpdated
.... lastUpdated 0..1 instant When the resource was uploaded to the NHDR.
... implicitRules 0..0
... language 0..0
... text 0..0
... contained 0..0
... extension 0..0
... modifierExtension 0..0
... identifier 0..0
... partOf 0..0
... statusReason[x] 0..0
... category 0..0
... subject 0..0
... context 0..0
... supportingInformation 0..0
... performer 0..0
... location 0..0
... authorizingPrescription 0..0
... type 0..0
... daysSupply 0..0
... whenPrepared 0..0
... destination 0..0
... receiver 0..0
... note 0..0
... dosageInstruction
.... extension 0..0
.... modifierExtension 0..0
.... sequence 0..0
.... text 0..0
.... additionalInstruction 0..0
.... patientInstruction 0..0
.... timing
..... id 0..0
..... extension 0..0
..... modifierExtension 0..0
..... event 0..0
..... repeat
...... id 0..0
...... extension 0..0
...... bounds[x] 0..0
...... count 0..0
...... countMax 0..0
...... duration 0..0
...... durationMax 0..0
...... durationUnit 0..0
...... frequencyMax 0..0
...... period 0..0
...... periodMax 0..0
...... periodUnit 0..0
...... dayOfWeek 0..0
...... timeOfDay 0..0
...... when 0..0
...... offset 0..0
..... code 0..0
.... asNeeded[x] 0..0
.... site 0..0
.... method 0..0
.... doseAndRate
..... id 0..0
..... extension 0..0
..... type 0..0
..... rate[x] 0..0
.... maxDosePerPeriod 0..0
.... maxDosePerAdministration 0..0
.... maxDosePerLifetime 0..0
... substitution 0..0
... detectedIssue 0..0
... eventHistory 0..0

doco Documentation for this format
NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. MedicationDispense C 0..* MedicationDispense Dispensing a medication to a named patient
Constraints: mdd-1
... id Σ 0..1 id Logical id of this artifact
... meta Σ 0..1 Meta Metadata about the resource
.... id 0..1 string Unique id for inter-element referencing
.... Slices for extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
..... extension:hfRecordedDate 0..1 dateTime The recorded date indicating when the record was uploaded by the health facility.
URL: https://nhdr.gov.ph/fhir/StructureDefinition/HFRecordedDate
..... extension:hfLastUpdated 0..* dateTime The date indicating when the record was last updated by the health facility.
URL: https://nhdr.gov.ph/fhir/StructureDefinition/HFLastUpdated
.... versionId Σ 0..1 id Version specific identifier
.... lastUpdated Σ 0..1 instant When the resource was uploaded to the NHDR.
.... source Σ 0..1 uri Identifies where the resource comes from
.... profile Σ 0..* canonical(StructureDefinition) Profiles this resource claims to conform to
.... security Σ 0..* Coding Security Labels applied to this resource
Binding: All Security Labels (extensible): Security Labels from the Healthcare Privacy and Security Classification System.
.... tag Σ 0..* Coding Tags applied to this resource
Binding: CommonTags (example): Codes that represent various types of tags, commonly workflow-related; e.g. "Needs review by Dr. Jones".
... status ?!Σ 1..1 code preparation | in-progress | cancelled | on-hold | completed | entered-in-error | stopped | declined | unknown
Binding: MedicationDispense Status Codes (required): A coded concept specifying the state of the dispense event.
.... medicationCodeableConcept CodeableConcept
.... medicationReference Reference(Medication)
... quantity 0..1 SimpleQuantity(4.0.1) Amount dispensed
... whenHandedOver 0..1 dateTime When product was given out
... dosageInstruction 0..* Dosage How the medication is to be used by the patient or administered by the caregiver
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..0
.... timing Σ 0..1 Timing When medication should be administered
..... extension 0..0
..... repeat ΣC 0..1 Element When the event is to occur
Constraints: tim-1, tim-2, tim-4, tim-5, tim-6, tim-7, tim-8, tim-9, tim-10
...... extension 0..0
...... frequency Σ 0..1 positiveInt Event occurs frequency times per period
.... route Σ 0..1 CodeableConcept How drug should enter body
Binding: SNOMEDCTRouteCodes (example): A coded concept describing the route or physiological path of administration of a therapeutic agent into or onto the body of a subject.
.... doseAndRate Σ 0..* Element Amount of medication administered
..... extension 0..0
..... dose[x] Σ 0..1 Amount of medication per dose
...... doseRange Range
...... doseQuantity Quantity(SimpleQuantity)

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
MedicationDispense.meta.​security Base extensible SecurityLabels 📍4.0.1 FHIR Std.
MedicationDispense.meta.​tag Base example Common Tags 📍4.0.1 FHIR Std.
MedicationDispense.status Base required Medication dispense status codes 📍4.0.1 FHIR Std.
MedicationDispense.medication[x] Base example SNOMED CT Medication Codes 📍4.0.1 FHIR Std.
MedicationDispense.performer.​function Base example Medication dispense performer function codes 📍4.0.1 FHIR Std.
MedicationDispense.dosageInstruction.​route Base example SNOMED CT Route Codes 📍4.0.1 FHIR Std.
MedicationDispense.substitution.​type Base example ActSubstanceAdminSubstitutionCode 📦3.0.0 THO v6.5
MedicationDispense.substitution.​reason Base example SubstanceAdminSubstitutionReason 📦3.0.0 THO v6.5

Constraints

Id Grade Path(s) Description Expression
dom-2 error MedicationDispense If the resource is contained in another resource, it SHALL NOT contain nested Resources contained.contained.empty()
dom-3 error MedicationDispense 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 MedicationDispense 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 MedicationDispense If a resource is contained in another resource, it SHALL NOT have a security label contained.meta.security.empty()
dom-6 best practice MedicationDispense 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()
mdd-1 error MedicationDispense whenHandedOver cannot be before whenPrepared whenHandedOver.empty() or whenPrepared.empty() or whenHandedOver >= whenPrepared
tim-1 error MedicationDispense.dosageInstruction.timing.repeat if there's a duration, there needs to be duration units duration.empty() or durationUnit.exists()
tim-2 error MedicationDispense.dosageInstruction.timing.repeat if there's a period, there needs to be period units period.empty() or periodUnit.exists()
tim-4 error MedicationDispense.dosageInstruction.timing.repeat duration SHALL be a non-negative value duration.exists() implies duration >= 0
tim-5 error MedicationDispense.dosageInstruction.timing.repeat period SHALL be a non-negative value period.exists() implies period >= 0
tim-6 error MedicationDispense.dosageInstruction.timing.repeat If there's a periodMax, there must be a period periodMax.empty() or period.exists()
tim-7 error MedicationDispense.dosageInstruction.timing.repeat If there's a durationMax, there must be a duration durationMax.empty() or duration.exists()
tim-8 error MedicationDispense.dosageInstruction.timing.repeat If there's a countMax, there must be a count countMax.empty() or count.exists()
tim-9 error MedicationDispense.dosageInstruction.timing.repeat If there's an offset, there must be a when (and not C, CM, CD, CV) offset.empty() or (when.exists() and ((when in ('C' | 'CM' | 'CD' | 'CV')).not()))
tim-10 error MedicationDispense.dosageInstruction.timing.repeat If there's a timeOfDay, there cannot be a when, or vice versa timeOfDay.empty() or when.empty()

This structure is derived from MedicationDispense

Summary

Prohibited: 62 elements

Extensions

This structure refers to these extensions:

Key Elements View

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. MedicationDispense C 0..* MedicationDispense Dispensing a medication to a named patient
Constraints: mdd-1
... status ?!Σ 1..1 code preparation | in-progress | cancelled | on-hold | completed | entered-in-error | stopped | declined | unknown
Binding: MedicationDispense Status Codes (required): A coded concept specifying the state of the dispense event.
... medication[x] Σ 1..1 What medication was supplied
Binding: SNOMEDCTMedicationCodes (example): A coded concept identifying which substance or product can be dispensed.
.... medicationCodeableConcept CodeableConcept
.... medicationReference Reference(Medication)

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
MedicationDispense.status Base required Medication dispense status codes 📍4.0.1 FHIR Std.
MedicationDispense.medication[x] Base example SNOMED CT Medication Codes 📍4.0.1 FHIR Std.

Constraints

Id Grade Path(s) Description Expression
dom-2 error MedicationDispense If the resource is contained in another resource, it SHALL NOT contain nested Resources contained.contained.empty()
dom-3 error MedicationDispense 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 MedicationDispense 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 MedicationDispense If a resource is contained in another resource, it SHALL NOT have a security label contained.meta.security.empty()
dom-6 best practice MedicationDispense 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()
mdd-1 error MedicationDispense whenHandedOver cannot be before whenPrepared whenHandedOver.empty() or whenPrepared.empty() or whenHandedOver >= whenPrepared

Differential View

This structure is derived from MedicationDispense

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. MedicationDispense 0..* MedicationDispense Dispensing a medication to a named patient
... meta
.... Slices for extension Content/Rules for all slices
..... extension:hfRecordedDate 0..1 dateTime The recorded date indicating when the record was uploaded by the health facility.
URL: https://nhdr.gov.ph/fhir/StructureDefinition/HFRecordedDate
..... extension:hfLastUpdated 0..* dateTime The date indicating when the record was last updated by the health facility.
URL: https://nhdr.gov.ph/fhir/StructureDefinition/HFLastUpdated
.... lastUpdated 0..1 instant When the resource was uploaded to the NHDR.
... implicitRules 0..0
... language 0..0
... text 0..0
... contained 0..0
... extension 0..0
... modifierExtension 0..0
... identifier 0..0
... partOf 0..0
... statusReason[x] 0..0
... category 0..0
... subject 0..0
... context 0..0
... supportingInformation 0..0
... performer 0..0
... location 0..0
... authorizingPrescription 0..0
... type 0..0
... daysSupply 0..0
... whenPrepared 0..0
... destination 0..0
... receiver 0..0
... note 0..0
... dosageInstruction
.... extension 0..0
.... modifierExtension 0..0
.... sequence 0..0
.... text 0..0
.... additionalInstruction 0..0
.... patientInstruction 0..0
.... timing
..... id 0..0
..... extension 0..0
..... modifierExtension 0..0
..... event 0..0
..... repeat
...... id 0..0
...... extension 0..0
...... bounds[x] 0..0
...... count 0..0
...... countMax 0..0
...... duration 0..0
...... durationMax 0..0
...... durationUnit 0..0
...... frequencyMax 0..0
...... period 0..0
...... periodMax 0..0
...... periodUnit 0..0
...... dayOfWeek 0..0
...... timeOfDay 0..0
...... when 0..0
...... offset 0..0
..... code 0..0
.... asNeeded[x] 0..0
.... site 0..0
.... method 0..0
.... doseAndRate
..... id 0..0
..... extension 0..0
..... type 0..0
..... rate[x] 0..0
.... maxDosePerPeriod 0..0
.... maxDosePerAdministration 0..0
.... maxDosePerLifetime 0..0
... substitution 0..0
... detectedIssue 0..0
... eventHistory 0..0

doco Documentation for this format

Snapshot View

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. MedicationDispense C 0..* MedicationDispense Dispensing a medication to a named patient
Constraints: mdd-1
... id Σ 0..1 id Logical id of this artifact
... meta Σ 0..1 Meta Metadata about the resource
.... id 0..1 string Unique id for inter-element referencing
.... Slices for extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
..... extension:hfRecordedDate 0..1 dateTime The recorded date indicating when the record was uploaded by the health facility.
URL: https://nhdr.gov.ph/fhir/StructureDefinition/HFRecordedDate
..... extension:hfLastUpdated 0..* dateTime The date indicating when the record was last updated by the health facility.
URL: https://nhdr.gov.ph/fhir/StructureDefinition/HFLastUpdated
.... versionId Σ 0..1 id Version specific identifier
.... lastUpdated Σ 0..1 instant When the resource was uploaded to the NHDR.
.... source Σ 0..1 uri Identifies where the resource comes from
.... profile Σ 0..* canonical(StructureDefinition) Profiles this resource claims to conform to
.... security Σ 0..* Coding Security Labels applied to this resource
Binding: All Security Labels (extensible): Security Labels from the Healthcare Privacy and Security Classification System.
.... tag Σ 0..* Coding Tags applied to this resource
Binding: CommonTags (example): Codes that represent various types of tags, commonly workflow-related; e.g. "Needs review by Dr. Jones".
... status ?!Σ 1..1 code preparation | in-progress | cancelled | on-hold | completed | entered-in-error | stopped | declined | unknown
Binding: MedicationDispense Status Codes (required): A coded concept specifying the state of the dispense event.
.... medicationCodeableConcept CodeableConcept
.... medicationReference Reference(Medication)
... quantity 0..1 SimpleQuantity(4.0.1) Amount dispensed
... whenHandedOver 0..1 dateTime When product was given out
... dosageInstruction 0..* Dosage How the medication is to be used by the patient or administered by the caregiver
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..0
.... timing Σ 0..1 Timing When medication should be administered
..... extension 0..0
..... repeat ΣC 0..1 Element When the event is to occur
Constraints: tim-1, tim-2, tim-4, tim-5, tim-6, tim-7, tim-8, tim-9, tim-10
...... extension 0..0
...... frequency Σ 0..1 positiveInt Event occurs frequency times per period
.... route Σ 0..1 CodeableConcept How drug should enter body
Binding: SNOMEDCTRouteCodes (example): A coded concept describing the route or physiological path of administration of a therapeutic agent into or onto the body of a subject.
.... doseAndRate Σ 0..* Element Amount of medication administered
..... extension 0..0
..... dose[x] Σ 0..1 Amount of medication per dose
...... doseRange Range
...... doseQuantity Quantity(SimpleQuantity)

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
MedicationDispense.meta.​security Base extensible SecurityLabels 📍4.0.1 FHIR Std.
MedicationDispense.meta.​tag Base example Common Tags 📍4.0.1 FHIR Std.
MedicationDispense.status Base required Medication dispense status codes 📍4.0.1 FHIR Std.
MedicationDispense.medication[x] Base example SNOMED CT Medication Codes 📍4.0.1 FHIR Std.
MedicationDispense.performer.​function Base example Medication dispense performer function codes 📍4.0.1 FHIR Std.
MedicationDispense.dosageInstruction.​route Base example SNOMED CT Route Codes 📍4.0.1 FHIR Std.
MedicationDispense.substitution.​type Base example ActSubstanceAdminSubstitutionCode 📦3.0.0 THO v6.5
MedicationDispense.substitution.​reason Base example SubstanceAdminSubstitutionReason 📦3.0.0 THO v6.5

Constraints

Id Grade Path(s) Description Expression
dom-2 error MedicationDispense If the resource is contained in another resource, it SHALL NOT contain nested Resources contained.contained.empty()
dom-3 error MedicationDispense 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 MedicationDispense 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 MedicationDispense If a resource is contained in another resource, it SHALL NOT have a security label contained.meta.security.empty()
dom-6 best practice MedicationDispense 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()
mdd-1 error MedicationDispense whenHandedOver cannot be before whenPrepared whenHandedOver.empty() or whenPrepared.empty() or whenHandedOver >= whenPrepared
tim-1 error MedicationDispense.dosageInstruction.timing.repeat if there's a duration, there needs to be duration units duration.empty() or durationUnit.exists()
tim-2 error MedicationDispense.dosageInstruction.timing.repeat if there's a period, there needs to be period units period.empty() or periodUnit.exists()
tim-4 error MedicationDispense.dosageInstruction.timing.repeat duration SHALL be a non-negative value duration.exists() implies duration >= 0
tim-5 error MedicationDispense.dosageInstruction.timing.repeat period SHALL be a non-negative value period.exists() implies period >= 0
tim-6 error MedicationDispense.dosageInstruction.timing.repeat If there's a periodMax, there must be a period periodMax.empty() or period.exists()
tim-7 error MedicationDispense.dosageInstruction.timing.repeat If there's a durationMax, there must be a duration durationMax.empty() or duration.exists()
tim-8 error MedicationDispense.dosageInstruction.timing.repeat If there's a countMax, there must be a count countMax.empty() or count.exists()
tim-9 error MedicationDispense.dosageInstruction.timing.repeat If there's an offset, there must be a when (and not C, CM, CD, CV) offset.empty() or (when.exists() and ((when in ('C' | 'CM' | 'CD' | 'CV')).not()))
tim-10 error MedicationDispense.dosageInstruction.timing.repeat If there's a timeOfDay, there cannot be a when, or vice versa timeOfDay.empty() or when.empty()

This structure is derived from MedicationDispense

Summary

Prohibited: 62 elements

Extensions

This structure refers to these extensions:

 

Other representations of profile: CSV, Excel, Schematron