IE Medication Events Implementation Guide
0.1.0 - Nostalgic IE (draft) Ireland flag

IE Medication Events Implementation Guide - Local Development build (v0.1.0) built by the FHIR (HL7® FHIR® Standard) Build Tools. See the Directory of published versions

Resource Profile: IE MPD MedicationRequest (ePrescription)

Official URL: https://hl7-ie.github.io/medication-events/fhir/StructureDefinition/ie-mpd-medicationrequest-eprescription Version: 0.1.0
Draft as of 2026-09-28 Computable Name: IEMpdMedicationRequestEPrescription

One prescription item of an Irish electronic prescription (HIQA EP Section 3), derived from the HL7 Europe MPD MedicationRequest. A multi-item prescription is a set of MedicationRequests sharing groupIdentifier, exchanged in an IEMpdBundleEPrescription together with the patient, prescriber and the allergy statement.

Usages:

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
.. MedicationRequest C 0..* MedicationRequestEuMpd(1.0.0) Ordering of medication for patient or group
Constraints: ie-rx-status-1, ie-rx-age-1, ie-rx-cd-1, ie-rx-cd-2, ie-rx-cd-3, ie-rx-subst-1
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... Slices for extension Content/Rules for all slices
.... extension:offLabelUse S 0..1 (Complex) Off-label use
URL: https://profiles.ihe.net/PHARM/MPD/StructureDefinition/ihe-ext-offLabel
Constraints: ext-1
.... extension:effectiveDosePeriod S 0..1 Period R5: Period over which the medication is to be taken (new)
URL: http://hl7.org/fhir/5.0/StructureDefinition/extension-MedicationRequest.effectiveDosePeriod
Constraints: ext-1
.... extension:renderedDosageInstruction O 0..1 markdown Full representation of the dosage instructions
URL: http://hl7.org/fhir/5.0/StructureDefinition/extension-MedicationRequest.renderedDosageInstruction
Constraints: ext-1
ObligationsActorSource
SHOULD:able-to-populate Producer from MedicationRequest: MPD
.... extension:ageAtPrescribing S 0..1 Age Patient age at prescribing (a legal requirement if under 12)
URL: https://hl7-ie.github.io/medication-events/fhir/StructureDefinition/ie-mpd-patient-age-at-prescribing
Constraints: ext-1
.... extension:quantityInWordsAndFigures S 0..1 string IE MPD Quantity Prescribed (Words and Figures)
URL: https://hl7-ie.github.io/medication-events/fhir/StructureDefinition/ie-mpd-quantity-in-words-and-figures
Constraints: ext-1
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
Constraints: ext-1
... status ?!SOΣ 1..1 code active | on-hold | cancelled | completed | entered-in-error | stopped | draft | unknown
Binding: medicationrequest Status (required): A coded concept specifying the state of the prescribing event. Describes the lifecycle of the prescription.
ObligationsActorSource
SHALL:able-to-populate Producer from MedicationRequest: MPD
... statusReason S 0..1 CodeableConcept Reason for current status
Binding: medicationRequest Status Reason Codes (example): Identifies the reasons for a given status.
... intent ?!Σ 1..1 code proposal | plan | order | original-order | reflex-order | filler-order | instance-order | option
Binding: medicationRequest Intent (required): The kind of medication order.
Required Pattern: order
... category S 0..* CodeableConcept Type of medication usage
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.
... doNotPerform ?!Σ 0..1 boolean True if request is prohibiting action
... medication[x] SOΣ 1..1 Reference(IE MPD Medication (ePrescription/eDispensation)(0.1.0)) Medication to be taken
ObligationsActorSource
SHALL:able-to-populate Producer from MedicationRequest: MPD
... subject SOΣ 1..1 Reference(IE MPD Patient (ePrescription/eDispensation)(0.1.0)) Who or group medication request is for
ObligationsActorSource
SHALL:able-to-populate Producer from MedicationRequest: MPD
... supportingInformation S 0..* Reference(Resource) Information to support ordering of the medication
... authoredOn SOΣ 1..1 dateTime When request was initially authored
ObligationsActorSource
SHALL:able-to-populate Producer from MedicationRequest: MPD
... requester SOΣ 1..1 Reference(IE MPD PractitionerRole(0.1.0) | IE MPD Practitioner(0.1.0)) Who/What requested the Request
ObligationsActorSource
SHALL:able-to-populate Producer from MedicationRequest: MPD
... reasonCode S 0..* CodeableConcept Reason or indication for this prescription
Binding: Condition/Problem/DiagnosisCodes (example): A coded concept indicating why the medication was ordered.
Additional BindingsPurpose
eHDSI Illness and Disorder . candidate

... groupIdentifier SΣ 0..1 Identifier Prescription this is part of. Not needed if a presciption includes only one prescribed item.
... courseOfTherapyType S 0..1 CodeableConcept Overall pattern of medication administration
Binding: medicationRequest Course of Therapy Codes (example): Identifies the overall pattern of medication administratio.
... note S 0..* Annotation Information about the prescription
.... text OΣ 1..1 markdown The annotation - text content (as markdown)
ObligationsActorSource
SHOULD:able-to-populate Producer from MedicationRequest: MPD
... dosageInstruction SOC 1..* DosageEuMpd(1.0.0) How the medication should be taken.
Constraints: ie-rx-dosage-1
ObligationsActorSource
SHALL:able-to-populate Producer from MedicationRequest: MPD
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
Constraints: ext-1
.... sequence Σ 0..1 integer The order of the dosage instructions
.... text SΣ 1..1 string Free text dosage instructions
.... additionalInstruction SΣ 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".
.... patientInstruction SOΣ 0..1 string Patient or consumer oriented instructions
ObligationsActorSource
SHOULD:able-to-populate Producer from Dosage: MPD
.... timing SΣ 0..1 Timing Administration schedule
..... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
Constraints: ext-1
..... repeat OΣ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
ObligationsActorSource
SHALL:able-to-populate Producer from Dosage: MPD
...... frequency SOΣ 0..1 positiveInt Frequency times per period
ObligationsActorSource
SHALL:able-to-populate Producer from Dosage: MPD
...... period SOΣ 0..1 decimal Duration of time over which repetitions are to occur
ObligationsActorSource
SHALL:able-to-populate Producer from Dosage: MPD
...... periodUnit SOΣ 0..1 code Unit of the period (e.g. day)
Binding: UnitsOfTime (required): A unit of time (units from UCUM).
ObligationsActorSource
SHALL:able-to-populate Producer from Dosage: MPD
.... Slices for asNeeded[x] Σ 0..1 Take "as needed" (for x)
Slice: Unordered, Closed by type:$this
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.
..... asNeededBoolean boolean
..... asNeededCodeableConcept CodeableConcept
..... asNeeded[x]:asNeededBoolean Σ 0..1 boolean Take "as needed" (for x)
.... site Σ 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.
.... route SOΣ 0..1 CodeableConcept Route of administration
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.
ObligationsActorSource
SHOULD:able-to-populate Producer from Dosage: MPD
.... doseAndRate SΣ 0..* Element Amount of medication administered
..... Slices for dose[x] SOΣ 0..1 Amount of medication per dose
Slice: Unordered, Closed by type:$this
ObligationsActorSource
SHALL:able-to-populate Producer from Dosage: MPD
...... doseRange Range
...... doseQuantity Quantity(SimpleQuantity)
...... dose[x]:doseQuantity OΣ 0..1 SimpleQuantity(4.0.1) Amount of medication per dose
ObligationsActorSource
SHALL:able-to-populate Producer from Dosage: MPD
.... maxDosePerPeriod SΣ 0..1 Ratio Upper limit on medication per unit of time
... dispenseRequest S 1..1 BackboneElement Medication supply authorization
.... Slices for extension Content/Rules for all slices
..... extension:prescribedQuantity SO 0..1 Quantity MedicationRequest - Prescribed Quantity
URL: https://profiles.ihe.net/PHARM/MPD/StructureDefinition/ihe-ext-medicationrequest-prescribedQuantity
Constraints: ext-1
ObligationsActorSource
SHOULD:able-to-populate Producer from MedicationRequest: MPD
..... extension:numberOfInstalments S 0..1 positiveInt IE MPD Number of Instalments
URL: https://hl7-ie.github.io/medication-events/fhir/StructureDefinition/ie-mpd-number-of-instalments
Constraints: ext-1
..... extension:doNotExtend 0..1 boolean IE MPD Do Not Extend
URL: https://hl7-ie.github.io/medication-events/fhir/StructureDefinition/ie-mpd-do-not-extend
Constraints: ext-1
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
Constraints: ext-1
.... dispenseInterval S 0..1 Duration Minimum period of time between dispenses
.... validityPeriod SO 0..1 Period Time period supply is authorized for
ObligationsActorSource
SHOULD:able-to-populate Producer from MedicationRequest: MPD
.... numberOfRepeatsAllowed S 0..1 unsignedInt Number of refills authorized
.... quantity S 1..1 SimpleQuantity(4.0.1) Amount of medication to supply per dispense
... substitution SO 0..1 BackboneElement Any restrictions on medication substitution. Substitution rules (including the definition of substitution) vary across different countries, and the semantics of this element should be interpreted accordingly.
ObligationsActorSource
SHOULD:able-to-populate Producer from MedicationRequest: MPD
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
Constraints: ext-1
.... Slices for allowed[x] S 1..1 Whether substitution is allowed or not
Slice: Unordered, Closed by type:$this
Binding: ActSubstanceAdminSubstitutionCode (3.0.0) (example): Identifies the type of substitution allowed.
..... allowedBoolean boolean
..... allowedCodeableConcept CodeableConcept
..... allowed[x]:allowedBoolean O 0..1 boolean Whether substitution is allowed or not
ObligationsActorSource
SHALL:able-to-populate Producer from MedicationRequest: MPD
.... reason S 0..1 CodeableConcept Why should (not) substitution be made
Binding: SubstanceAdminSubstitutionReason (3.0.0) (example): A coded concept describing the reason that a different medication should (or should not) be substituted from what was prescribed.

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
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.reasonCode Base example Condition/Problem/Diagnosis Codes 📍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.​timing.repeat.periodUnit Base required UnitsOfTime 📍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 example SNOMED CT Route Codes 📍4.0.1 FHIR Std.
MedicationRequest.substitution.​allowed[x] Base example ActSubstanceAdminSubstitutionCode 📍3.0.0 THO v7.4
MedicationRequest.substitution.​reason Base example SubstanceAdminSubstitutionReason 📍3.0.0 THO v7.4

Constraints

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 MedicationRequest.implicitRules, MedicationRequest.extension:offLabelUse, MedicationRequest.extension:effectiveDosePeriod, MedicationRequest.extension:renderedDosageInstruction, MedicationRequest.extension:ageAtPrescribing, MedicationRequest.extension:quantityInWordsAndFigures, MedicationRequest.modifierExtension, MedicationRequest.identifier, MedicationRequest.status, MedicationRequest.statusReason, MedicationRequest.intent, MedicationRequest.category, MedicationRequest.doNotPerform, MedicationRequest.medication[x], MedicationRequest.subject, MedicationRequest.supportingInformation, MedicationRequest.authoredOn, MedicationRequest.requester, MedicationRequest.reasonCode, MedicationRequest.groupIdentifier, MedicationRequest.courseOfTherapyType, MedicationRequest.note, MedicationRequest.note.text, MedicationRequest.dosageInstruction, MedicationRequest.dosageInstruction.modifierExtension, MedicationRequest.dosageInstruction.sequence, MedicationRequest.dosageInstruction.text, MedicationRequest.dosageInstruction.additionalInstruction, MedicationRequest.dosageInstruction.patientInstruction, MedicationRequest.dosageInstruction.timing, MedicationRequest.dosageInstruction.timing.modifierExtension, MedicationRequest.dosageInstruction.timing.repeat, MedicationRequest.dosageInstruction.timing.repeat.frequency, MedicationRequest.dosageInstruction.timing.repeat.period, MedicationRequest.dosageInstruction.timing.repeat.periodUnit, MedicationRequest.dosageInstruction.asNeeded[x], MedicationRequest.dosageInstruction.asNeeded[x]:asNeededBoolean, MedicationRequest.dosageInstruction.site, MedicationRequest.dosageInstruction.route, MedicationRequest.dosageInstruction.doseAndRate, MedicationRequest.dosageInstruction.doseAndRate.dose[x], MedicationRequest.dosageInstruction.doseAndRate.dose[x]:doseQuantity, MedicationRequest.dosageInstruction.maxDosePerPeriod, MedicationRequest.dispenseRequest, MedicationRequest.dispenseRequest.extension:prescribedQuantity, MedicationRequest.dispenseRequest.extension:numberOfInstalments, MedicationRequest.dispenseRequest.extension:doNotExtend, MedicationRequest.dispenseRequest.modifierExtension, MedicationRequest.dispenseRequest.dispenseInterval, MedicationRequest.dispenseRequest.validityPeriod, MedicationRequest.dispenseRequest.numberOfRepeatsAllowed, MedicationRequest.dispenseRequest.quantity, MedicationRequest.substitution, MedicationRequest.substitution.modifierExtension, MedicationRequest.substitution.allowed[x], MedicationRequest.substitution.allowed[x]:allowedBoolean, MedicationRequest.substitution.reason All FHIR elements must have a @value or children hasValue() or (children().count() > id.count())
ext-1 error MedicationRequest.extension:offLabelUse, MedicationRequest.extension:effectiveDosePeriod, MedicationRequest.extension:renderedDosageInstruction, MedicationRequest.extension:ageAtPrescribing, MedicationRequest.extension:quantityInWordsAndFigures, MedicationRequest.modifierExtension, MedicationRequest.dosageInstruction.modifierExtension, MedicationRequest.dosageInstruction.timing.modifierExtension, MedicationRequest.dispenseRequest.extension:prescribedQuantity, MedicationRequest.dispenseRequest.extension:numberOfInstalments, MedicationRequest.dispenseRequest.extension:doNotExtend, MedicationRequest.dispenseRequest.modifierExtension, MedicationRequest.substitution.modifierExtension Must have either extensions or value[x], not both extension.exists() != value.exists()
ie-rx-age-1 error MedicationRequest If the patient is under 12 years old at the date of prescribing, or the date of birth is not a full date, the patient's age SHALL be recorded on the prescription (HIQA EP 1.4.2; a legal requirement in Ireland) subject.resolve().ofType(Patient).birthDate.empty() or authoredOn.empty() or ((subject.resolve().ofType(Patient).birthDate.toString().length() = 10) and ((subject.resolve().ofType(Patient).birthDate + 12 years).toString() <= authoredOn.toString().substring(0,10))) or extension('https://hl7-ie.github.io/medication-events/fhir/StructureDefinition/ie-mpd-patient-age-at-prescribing').exists()
ie-rx-cd-1 error MedicationRequest A prescription for a controlled drug (any schedule of the Misuse of Drugs Regulations 2017) SHALL state the quantity in words and figures (HIQA EP 3.5.7.2) (medication.ofType(Reference).resolve().extension('https://profiles.ihe.net/PHARM/MPD/StructureDefinition/ihe-ext-medication-classification').value.ofType(CodeableConcept).coding.where(system = 'https://hl7-ie.github.io/medication-events/fhir/CodeSystem/ie-mpd-mda-schedule').exists()) implies extension('https://hl7-ie.github.io/medication-events/fhir/StructureDefinition/ie-mpd-quantity-in-words-and-figures').exists()
ie-rx-cd-2 error MedicationRequest A prescription for a Schedule 2 or 3 controlled drug SHALL have a validity period ending no later than 14 days after the date of issue, or, for an instalment prescription, no later than two months after (the final instalment) (HIQA EP 3.5.9.1; Misuse of Drugs Regulations 2017) (medication.ofType(Reference).resolve().extension('https://profiles.ihe.net/PHARM/MPD/StructureDefinition/ihe-ext-medication-classification').value.ofType(CodeableConcept).coding.where(system = 'https://hl7-ie.github.io/medication-events/fhir/CodeSystem/ie-mpd-mda-schedule' and (code = 'schedule-2' or code = 'schedule-3')).exists()) implies (dispenseRequest.validityPeriod.end.exists() and ((dispenseRequest.extension('https://hl7-ie.github.io/medication-events/fhir/StructureDefinition/ie-mpd-number-of-instalments').exists() and dispenseRequest.validityPeriod.end.toString().substring(0,10) <= (authoredOn + 2 months).toString().substring(0,10)) or (dispenseRequest.validityPeriod.end.toString().substring(0,10) <= (authoredOn + 14 days).toString().substring(0,10))))
ie-rx-cd-3 error MedicationRequest A prescription for a Schedule 2, 3 or 4 Part 1 controlled drug SHALL state the number of instalments and, when there is more than one, the interval between them (HIQA EP 3.5.12, 3.5.13; Misuse of Drugs Regulations 2017) (medication.ofType(Reference).resolve().extension('https://profiles.ihe.net/PHARM/MPD/StructureDefinition/ihe-ext-medication-classification').value.ofType(CodeableConcept).coding.where(system = 'https://hl7-ie.github.io/medication-events/fhir/CodeSystem/ie-mpd-mda-schedule' and (code = 'schedule-2' or code = 'schedule-3' or code = 'schedule-4-part-1')).exists()) implies (dispenseRequest.extension('https://hl7-ie.github.io/medication-events/fhir/StructureDefinition/ie-mpd-number-of-instalments').exists() and ((dispenseRequest.extension('https://hl7-ie.github.io/medication-events/fhir/StructureDefinition/ie-mpd-number-of-instalments').value.ofType(positiveInt) > 1) implies dispenseRequest.dispenseInterval.exists()))
ie-rx-dosage-1 error MedicationRequest.dosageInstruction A structured dosage SHALL be accompanied by a human-readable dosage text (safety fallback; HIQA EP 5.1 / 5.2) (timing.exists() or doseAndRate.exists()) implies text.exists()
ie-rx-status-1 error MedicationRequest A status reason SHALL be given unless the prescription item is active, completed or draft (HIQA EP 3.5.2.2 / 3.5.2.3) (status = 'active' or status = 'completed' or status = 'draft') or statusReason.exists()
ie-rx-subst-1 error MedicationRequest When substitution is not allowed ('Do Not Substitute'), a reason SHALL be given (HIQA EP 3.5.10.3) substitution.allowed.ofType(boolean).where($this = false).exists() implies substitution.reason.exists()
tim-1 error MedicationRequest.dosageInstruction.timing.repeat if there's a duration, there needs to be duration units duration.empty() or durationUnit.exists()
tim-2 error MedicationRequest.dosageInstruction.timing.repeat if there's a period, there needs to be period units period.empty() or periodUnit.exists()
tim-4 error MedicationRequest.dosageInstruction.timing.repeat duration SHALL be a non-negative value duration.exists() implies duration >= 0
tim-5 error MedicationRequest.dosageInstruction.timing.repeat period SHALL be a non-negative value period.exists() implies period >= 0
tim-6 error MedicationRequest.dosageInstruction.timing.repeat If there's a periodMax, there must be a period periodMax.empty() or period.exists()
tim-7 error MedicationRequest.dosageInstruction.timing.repeat If there's a durationMax, there must be a duration durationMax.empty() or duration.exists()
tim-8 error MedicationRequest.dosageInstruction.timing.repeat If there's a countMax, there must be a count countMax.empty() or count.exists()
tim-9 error MedicationRequest.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 MedicationRequest.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 MedicationRequestEuMpd

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. MedicationRequest C 0..* MedicationRequestEuMpd(1.0.0) Ordering of medication for patient or group
... Slices for extension Content/Rules for all slices
.... extension:offLabelUse S 0..1 OffLabel(1.0.0-comment-2) Off-label use
.... extension:effectiveDosePeriod S 0..1 0.1.0 R5: Period over which the medication is to be taken (new)
.... extension:ageAtPrescribing S 0..1 Age Patient age at prescribing (a legal requirement if under 12)
URL: https://hl7-ie.github.io/medication-events/fhir/StructureDefinition/ie-mpd-patient-age-at-prescribing
.... extension:quantityInWordsAndFigures S 0..1 string IE MPD Quantity Prescribed (Words and Figures)
URL: https://hl7-ie.github.io/medication-events/fhir/StructureDefinition/ie-mpd-quantity-in-words-and-figures
... identifier S 1..* Identifier Prescription/prescribed item ID
... status S 1..1 code active | on-hold | cancelled | completed | entered-in-error | stopped | draft | unknown
... intent 1..1 code proposal | plan | order | original-order | reflex-order | filler-order | instance-order | option
Required Pattern: order
... category S 0..* CodeableConcept Type of medication usage
... medication[x] S 1..1 Reference(IE MPD Medication (ePrescription/eDispensation)(0.1.0)) Medication to be taken
... subject S 1..1 Reference(IE MPD Patient (ePrescription/eDispensation)(0.1.0)) Who or group medication request is for
... supportingInformation S 0..* Reference(Resource) Information to support ordering of the medication
... authoredOn S 1..1 dateTime When request was initially authored
... requester S 1..1 Reference(IE MPD PractitionerRole(0.1.0) | IE MPD Practitioner(0.1.0)) Who/What requested the Request
... reasonCode S 0..* CodeableConcept Reason or indication for this prescription
... groupIdentifier S 0..1 Identifier Prescription this is part of. Not needed if a presciption includes only one prescribed item.
... courseOfTherapyType S 0..1 CodeableConcept Overall pattern of medication administration
... note S 0..* Annotation Information about the prescription
... dosageInstruction SC 1..* DosageEuMpd(1.0.0) How the medication should be taken.
.... sequence 0..1 integer The order of the dosage instructions
.... text S 1..1 string Free text dosage instructions
.... additionalInstruction S 0..* CodeableConcept Supplemental instruction or warnings to the patient - e.g. "with meals", "may cause drowsiness"
.... patientInstruction S 0..1 string Patient or consumer oriented instructions
.... timing S 0..1 Timing Administration schedule
..... repeat
...... frequency S 0..1 positiveInt Frequency times per period
...... period S 0..1 decimal Duration of time over which repetitions are to occur
...... periodUnit S 0..1 code Unit of the period (e.g. day)
.... asNeeded[x] 0..1 boolean, CodeableConcept Take "as needed" (for x)
.... site 0..1 CodeableConcept Body site to administer to
.... route S 0..1 CodeableConcept Route of administration
.... doseAndRate S 0..* Element Amount of medication administered
..... dose[x] S 0..1 Range, SimpleQuantity(4.0.1) Amount of medication per dose
.... maxDosePerPeriod S 0..1 Ratio Upper limit on medication per unit of time
... dispenseRequest S 1..1 BackboneElement Medication supply authorization
.... Slices for extension Content/Rules for all slices
..... extension:prescribedQuantity S 0..1 MedicationRequestPrescribedQuantity(1.0.0-comment-2) MedicationRequest - Prescribed Quantity
..... extension:numberOfInstalments S 0..1 positiveInt IE MPD Number of Instalments
URL: https://hl7-ie.github.io/medication-events/fhir/StructureDefinition/ie-mpd-number-of-instalments
..... extension:doNotExtend 0..1 boolean IE MPD Do Not Extend
URL: https://hl7-ie.github.io/medication-events/fhir/StructureDefinition/ie-mpd-do-not-extend
.... dispenseInterval S 0..1 Duration Minimum period of time between dispenses
.... validityPeriod S 0..1 Period Time period supply is authorized for
.... numberOfRepeatsAllowed S 0..1 unsignedInt Number of refills authorized
.... quantity S 1..1 SimpleQuantity(4.0.1) Amount of medication to supply per dispense
... substitution S 0..1 BackboneElement Any restrictions on medication substitution. Substitution rules (including the definition of substitution) vary across different countries, and the semantics of this element should be interpreted accordingly.
.... allowed[x] S 1..1 boolean, CodeableConcept Whether substitution is allowed or not
.... reason S 0..1 CodeableConcept Why should (not) substitution be made

doco Documentation for this format

Constraints

Id Grade Path(s) Description Expression
ie-rx-age-1 error MedicationRequest If the patient is under 12 years old at the date of prescribing, or the date of birth is not a full date, the patient's age SHALL be recorded on the prescription (HIQA EP 1.4.2; a legal requirement in Ireland) subject.resolve().ofType(Patient).birthDate.empty() or authoredOn.empty() or ((subject.resolve().ofType(Patient).birthDate.toString().length() = 10) and ((subject.resolve().ofType(Patient).birthDate + 12 years).toString() <= authoredOn.toString().substring(0,10))) or extension('https://hl7-ie.github.io/medication-events/fhir/StructureDefinition/ie-mpd-patient-age-at-prescribing').exists()
ie-rx-cd-1 error MedicationRequest A prescription for a controlled drug (any schedule of the Misuse of Drugs Regulations 2017) SHALL state the quantity in words and figures (HIQA EP 3.5.7.2) (medication.ofType(Reference).resolve().extension('https://profiles.ihe.net/PHARM/MPD/StructureDefinition/ihe-ext-medication-classification').value.ofType(CodeableConcept).coding.where(system = 'https://hl7-ie.github.io/medication-events/fhir/CodeSystem/ie-mpd-mda-schedule').exists()) implies extension('https://hl7-ie.github.io/medication-events/fhir/StructureDefinition/ie-mpd-quantity-in-words-and-figures').exists()
ie-rx-cd-2 error MedicationRequest A prescription for a Schedule 2 or 3 controlled drug SHALL have a validity period ending no later than 14 days after the date of issue, or, for an instalment prescription, no later than two months after (the final instalment) (HIQA EP 3.5.9.1; Misuse of Drugs Regulations 2017) (medication.ofType(Reference).resolve().extension('https://profiles.ihe.net/PHARM/MPD/StructureDefinition/ihe-ext-medication-classification').value.ofType(CodeableConcept).coding.where(system = 'https://hl7-ie.github.io/medication-events/fhir/CodeSystem/ie-mpd-mda-schedule' and (code = 'schedule-2' or code = 'schedule-3')).exists()) implies (dispenseRequest.validityPeriod.end.exists() and ((dispenseRequest.extension('https://hl7-ie.github.io/medication-events/fhir/StructureDefinition/ie-mpd-number-of-instalments').exists() and dispenseRequest.validityPeriod.end.toString().substring(0,10) <= (authoredOn + 2 months).toString().substring(0,10)) or (dispenseRequest.validityPeriod.end.toString().substring(0,10) <= (authoredOn + 14 days).toString().substring(0,10))))
ie-rx-cd-3 error MedicationRequest A prescription for a Schedule 2, 3 or 4 Part 1 controlled drug SHALL state the number of instalments and, when there is more than one, the interval between them (HIQA EP 3.5.12, 3.5.13; Misuse of Drugs Regulations 2017) (medication.ofType(Reference).resolve().extension('https://profiles.ihe.net/PHARM/MPD/StructureDefinition/ihe-ext-medication-classification').value.ofType(CodeableConcept).coding.where(system = 'https://hl7-ie.github.io/medication-events/fhir/CodeSystem/ie-mpd-mda-schedule' and (code = 'schedule-2' or code = 'schedule-3' or code = 'schedule-4-part-1')).exists()) implies (dispenseRequest.extension('https://hl7-ie.github.io/medication-events/fhir/StructureDefinition/ie-mpd-number-of-instalments').exists() and ((dispenseRequest.extension('https://hl7-ie.github.io/medication-events/fhir/StructureDefinition/ie-mpd-number-of-instalments').value.ofType(positiveInt) > 1) implies dispenseRequest.dispenseInterval.exists()))
ie-rx-dosage-1 error MedicationRequest.dosageInstruction A structured dosage SHALL be accompanied by a human-readable dosage text (safety fallback; HIQA EP 5.1 / 5.2) (timing.exists() or doseAndRate.exists()) implies text.exists()
ie-rx-status-1 error MedicationRequest A status reason SHALL be given unless the prescription item is active, completed or draft (HIQA EP 3.5.2.2 / 3.5.2.3) (status = 'active' or status = 'completed' or status = 'draft') or statusReason.exists()
ie-rx-subst-1 error MedicationRequest When substitution is not allowed ('Do Not Substitute'), a reason SHALL be given (HIQA EP 3.5.10.3) substitution.allowed.ofType(boolean).where($this = false).exists() implies substitution.reason.exists()
NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. MedicationRequest C 0..* MedicationRequestEuMpd(1.0.0) Ordering of medication for patient or group
Constraints: ie-rx-status-1, ie-rx-age-1, ie-rx-cd-1, ie-rx-cd-2, ie-rx-cd-3, ie-rx-subst-1
... id Σ 0..1 id Logical id of this artifact
... meta Σ 0..1 Meta Metadata about the resource
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... language 0..1 code Language of the resource content
Binding: CommonLanguages (preferred): A human language.
Additional BindingsPurpose
AllLanguages Max Binding
... text 0..1 Narrative Text summary of the resource, for human interpretation
This profile does not constrain the narrative in regard to content, language, or traceability to data elements
... contained 0..* Resource Contained, inline Resources
... Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url
Constraints: ext-1
.... extension:offLabelUse S 0..1 (Complex) Off-label use
URL: https://profiles.ihe.net/PHARM/MPD/StructureDefinition/ihe-ext-offLabel
Constraints: ext-1
.... extension:effectiveDosePeriod S 0..1 Period R5: Period over which the medication is to be taken (new)
URL: http://hl7.org/fhir/5.0/StructureDefinition/extension-MedicationRequest.effectiveDosePeriod
Constraints: ext-1
.... extension:renderedDosageInstruction O 0..1 markdown Full representation of the dosage instructions
URL: http://hl7.org/fhir/5.0/StructureDefinition/extension-MedicationRequest.renderedDosageInstruction
Constraints: ext-1
ObligationsActorSource
SHOULD:able-to-populate Producer from MedicationRequest: MPD
.... extension:ageAtPrescribing S 0..1 Age Patient age at prescribing (a legal requirement if under 12)
URL: https://hl7-ie.github.io/medication-events/fhir/StructureDefinition/ie-mpd-patient-age-at-prescribing
Constraints: ext-1
.... extension:quantityInWordsAndFigures S 0..1 string IE MPD Quantity Prescribed (Words and Figures)
URL: https://hl7-ie.github.io/medication-events/fhir/StructureDefinition/ie-mpd-quantity-in-words-and-figures
Constraints: ext-1
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
Constraints: ext-1
... identifier SO 1..* Identifier Prescription/prescribed item ID
ObligationsActorSource
SHALL:able-to-populate Producer from MedicationRequest: MPD
... status ?!SOΣ 1..1 code active | on-hold | cancelled | completed | entered-in-error | stopped | draft | unknown
Binding: medicationrequest Status (required): A coded concept specifying the state of the prescribing event. Describes the lifecycle of the prescription.
ObligationsActorSource
SHALL:able-to-populate Producer from MedicationRequest: MPD
... statusReason S 0..1 CodeableConcept Reason for current status
Binding: medicationRequest Status Reason Codes (example): Identifies the reasons for a given status.
... intent ?!Σ 1..1 code proposal | plan | order | original-order | reflex-order | filler-order | instance-order | option
Binding: medicationRequest Intent (required): The kind of medication order.
Required Pattern: order
... category S 0..* CodeableConcept Type of medication usage
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.
... priority Σ 0..1 code routine | urgent | asap | stat
Binding: RequestPriority (required): Identifies the level of importance to be assigned to actioning the request.
... doNotPerform ?!Σ 0..1 boolean True if request is prohibiting action
... reported[x] Σ 0..1 Reported rather than primary record
.... reportedBoolean boolean
.... reportedReference Reference(Patient | Practitioner | PractitionerRole | RelatedPerson | Organization)
... medication[x] SOΣ 1..1 Reference(IE MPD Medication (ePrescription/eDispensation)(0.1.0)) Medication to be taken
ObligationsActorSource
SHALL:able-to-populate Producer from MedicationRequest: MPD
... subject SOΣ 1..1 Reference(IE MPD Patient (ePrescription/eDispensation)(0.1.0)) Who or group medication request is for
ObligationsActorSource
SHALL:able-to-populate Producer from MedicationRequest: MPD
... encounter 0..1 Reference(Encounter) Encounter created as part of encounter/admission/stay
... supportingInformation S 0..* Reference(Resource) Information to support ordering of the medication
... authoredOn SOΣ 1..1 dateTime When request was initially authored
ObligationsActorSource
SHALL:able-to-populate Producer from MedicationRequest: MPD
... requester SOΣ 1..1 Reference(IE MPD PractitionerRole(0.1.0) | IE MPD Practitioner(0.1.0)) Who/What requested the Request
ObligationsActorSource
SHALL:able-to-populate Producer from MedicationRequest: MPD
... performer 0..1 Reference(Practitioner | PractitionerRole | Organization | Patient | Device | RelatedPerson | CareTeam) Intended performer of administration
... performerType Σ 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.
... recorder 0..1 Reference(Practitioner | PractitionerRole) Person who entered the request
... reasonCode S 0..* CodeableConcept Reason or indication for this prescription
Binding: Condition/Problem/DiagnosisCodes (example): A coded concept indicating why the medication was ordered.
Additional BindingsPurpose
eHDSI Illness and Disorder . candidate

... reasonReference 0..* Reference(Condition | Observation) Condition or observation that supports this prescription
... instantiatesCanonical Σ 0..* canonical() Instantiates FHIR protocol or definition
... instantiatesUri Σ 0..* uri Instantiates external protocol or definition
... basedOn Σ 0..* Reference(CarePlan | MedicationRequest | ServiceRequest | ImmunizationRecommendation) What request fulfills
... groupIdentifier SΣ 0..1 Identifier Prescription this is part of. Not needed if a presciption includes only one prescribed item.
... courseOfTherapyType S 0..1 CodeableConcept Overall pattern of medication administration
Binding: medicationRequest Course of Therapy Codes (example): Identifies the overall pattern of medication administratio.
... insurance 0..* Reference(Coverage | ClaimResponse) Associated insurance coverage
... note S 0..* Annotation Information about the prescription
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
Constraints: ext-1
.... author[x] Σ 0..1 Individual responsible for the annotation
..... authorReference Reference(Practitioner | Patient | RelatedPerson | Organization)
..... authorString string
.... time Σ 0..1 dateTime When the annotation was made
.... text OΣ 1..1 markdown The annotation - text content (as markdown)
ObligationsActorSource
SHOULD:able-to-populate Producer from MedicationRequest: MPD
... dosageInstruction SOC 1..* DosageEuMpd(1.0.0) How the medication should be taken.
Constraints: ie-rx-dosage-1
ObligationsActorSource
SHALL:able-to-populate Producer from MedicationRequest: MPD
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
Constraints: ext-1
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
Constraints: ext-1
.... sequence Σ 0..1 integer The order of the dosage instructions
.... text SΣ 1..1 string Free text dosage instructions
.... additionalInstruction SΣ 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".
.... patientInstruction SOΣ 0..1 string Patient or consumer oriented instructions
ObligationsActorSource
SHOULD:able-to-populate Producer from Dosage: MPD
.... timing SΣ 0..1 Timing Administration schedule
..... id 0..1 string Unique id for inter-element referencing
..... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
Constraints: ext-1
..... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
Constraints: ext-1
..... event Σ 0..* dateTime When the event occurs
..... repeat OΣ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
ObligationsActorSource
SHALL:able-to-populate Producer from Dosage: MPD
...... id 0..1 string Unique id for inter-element referencing
...... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
Constraints: ext-1
...... bounds[x] OΣ 0..1 Length/Range of lengths, or (Start and/or end) limits
ObligationsActorSource
SHALL:able-to-populate Producer from Dosage: MPD
....... boundsDuration Duration
....... boundsRange Range
....... boundsPeriod Period
...... count Σ 0..1 positiveInt Number of times to repeat
...... countMax Σ 0..1 positiveInt Maximum number of times to repeat
...... duration Σ 0..1 decimal Duration of the treatment
...... durationMax Σ 0..1 decimal How long when it happens (Max)
...... durationUnit Σ 0..1 code s | min | h | d | wk | mo | a - unit of time (UCUM)
Binding: UnitsOfTime (required): A unit of time (units from UCUM).
...... frequency SOΣ 0..1 positiveInt Frequency times per period
ObligationsActorSource
SHALL:able-to-populate Producer from Dosage: MPD
...... frequencyMax Σ 0..1 positiveInt Event occurs up to frequencyMax times per period
...... period SOΣ 0..1 decimal Duration of time over which repetitions are to occur
ObligationsActorSource
SHALL:able-to-populate Producer from Dosage: MPD
...... periodMax Σ 0..1 decimal Upper limit of period (3-4 hours)
...... periodUnit SOΣ 0..1 code Unit of the period (e.g. day)
Binding: UnitsOfTime (required): A unit of time (units from UCUM).
ObligationsActorSource
SHALL:able-to-populate Producer from Dosage: MPD
...... dayOfWeek Σ 0..* code mon | tue | wed | thu | fri | sat | sun
Binding: DaysOfWeek (required)
...... timeOfDay Σ 0..* time Time of day for action
...... when Σ 0..* code Code for time period of occurrence
Binding: EventTiming (required): Real world event relating to the schedule.
...... offset Σ 0..1 unsignedInt Minutes from event (before or after)
..... code Σ 0..1 CodeableConcept A code for the timing schedule.
Binding: TimingAbbreviation (preferred): Code for a known / defined timing pattern.
.... Slices for asNeeded[x] Σ 0..1 Take "as needed" (for x)
Slice: Unordered, Closed by type:$this
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.
..... asNeededBoolean boolean
..... asNeededCodeableConcept CodeableConcept
..... asNeeded[x]:asNeededBoolean Σ 0..1 boolean Take "as needed" (for x)
.... site Σ 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.
.... route SOΣ 0..1 CodeableConcept Route of administration
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.
ObligationsActorSource
SHOULD:able-to-populate Producer from Dosage: MPD
.... method Σ 0..1 CodeableConcept Technique for administering medication
Binding: SNOMEDCTAdministrationMethodCodes (example): A coded concept describing the technique by which the medicine is administered.
.... doseAndRate SΣ 0..* Element Amount of medication administered
..... id 0..1 string Unique id for inter-element referencing
..... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
Constraints: ext-1
..... type Σ 0..1 CodeableConcept The kind of dose or rate specified
Binding: DoseAndRateType (example): The kind of dose or rate specified.
..... Slices for dose[x] SOΣ 0..1 Amount of medication per dose
Slice: Unordered, Closed by type:$this
ObligationsActorSource
SHALL:able-to-populate Producer from Dosage: MPD
...... doseRange Range
...... doseQuantity Quantity(SimpleQuantity)
...... dose[x]:doseQuantity OΣ 0..1 SimpleQuantity(4.0.1) Amount of medication per dose
ObligationsActorSource
SHALL:able-to-populate Producer from Dosage: MPD
..... rate[x] Σ 0..1 Amount of medication per unit of time
...... rateRatio Ratio
...... rateRange Range
...... rateQuantity Quantity(SimpleQuantity)
.... maxDosePerPeriod SΣ 0..1 Ratio Upper limit on medication per unit of time
.... maxDosePerAdministration Σ 0..1 SimpleQuantity(4.0.1) Upper limit on medication per administration
.... maxDosePerLifetime Σ 0..1 SimpleQuantity(4.0.1) Upper limit on medication per lifetime of the patient
... dispenseRequest S 1..1 BackboneElement Medication supply authorization
.... id 0..1 string Unique id for inter-element referencing
.... Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url
Constraints: ext-1
..... extension:prescribedQuantity SO 0..1 Quantity MedicationRequest - Prescribed Quantity
URL: https://profiles.ihe.net/PHARM/MPD/StructureDefinition/ihe-ext-medicationrequest-prescribedQuantity
Constraints: ext-1
ObligationsActorSource
SHOULD:able-to-populate Producer from MedicationRequest: MPD
..... extension:numberOfInstalments S 0..1 positiveInt IE MPD Number of Instalments
URL: https://hl7-ie.github.io/medication-events/fhir/StructureDefinition/ie-mpd-number-of-instalments
Constraints: ext-1
..... extension:doNotExtend 0..1 boolean IE MPD Do Not Extend
URL: https://hl7-ie.github.io/medication-events/fhir/StructureDefinition/ie-mpd-do-not-extend
Constraints: ext-1
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
Constraints: ext-1
.... initialFill 0..1 BackboneElement First fill details
..... id 0..1 string Unique id for inter-element referencing
..... extension 0..* Extension Additional content defined by implementations
Constraints: ext-1
..... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
Constraints: ext-1
..... quantity 0..1 SimpleQuantity(4.0.1) First fill quantity
..... duration 0..1 Duration First fill duration
.... dispenseInterval S 0..1 Duration Minimum period of time between dispenses
.... validityPeriod SO 0..1 Period Time period supply is authorized for
ObligationsActorSource
SHOULD:able-to-populate Producer from MedicationRequest: MPD
.... numberOfRepeatsAllowed S 0..1 unsignedInt Number of refills authorized
.... quantity S 1..1 SimpleQuantity(4.0.1) Amount of medication to supply per dispense
.... expectedSupplyDuration 0..1 Duration Number of days supply per dispense
.... performer 0..1 Reference(Organization) Intended dispenser
... substitution SO 0..1 BackboneElement Any restrictions on medication substitution. Substitution rules (including the definition of substitution) vary across different countries, and the semantics of this element should be interpreted accordingly.
ObligationsActorSource
SHOULD:able-to-populate Producer from MedicationRequest: MPD
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
Constraints: ext-1
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
Constraints: ext-1
.... Slices for allowed[x] S 1..1 Whether substitution is allowed or not
Slice: Unordered, Closed by type:$this
Binding: ActSubstanceAdminSubstitutionCode (3.0.0) (example): Identifies the type of substitution allowed.
..... allowedBoolean boolean
..... allowedCodeableConcept CodeableConcept
..... allowed[x]:allowedBoolean O 0..1 boolean Whether substitution is allowed or not
ObligationsActorSource
SHALL:able-to-populate Producer from MedicationRequest: MPD
.... reason S 0..1 CodeableConcept Why should (not) substitution be made
Binding: SubstanceAdminSubstitutionReason (3.0.0) (example): A coded concept describing the reason that a different medication should (or should not) be substituted from what was prescribed.
... priorPrescription 0..1 Reference(MedicationRequest) An order/prescription that is being replaced
... detectedIssue 0..* Reference(DetectedIssue) Clinical Issue with action
... eventHistory 0..* Reference(Provenance) A list of events of interest in the lifecycle

doco Documentation for this format

Terminology Bindings

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.performerType Base example Procedure Performer Role Codes 📍4.0.1 FHIR Std.
MedicationRequest.reasonCode Base example Condition/Problem/Diagnosis Codes 📍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.​timing.repeat.durationUnit Base required UnitsOfTime 📍4.0.1 FHIR Std.
MedicationRequest.dosageInstruction.​timing.repeat.periodUnit Base required UnitsOfTime 📍4.0.1 FHIR Std.
MedicationRequest.dosageInstruction.​timing.repeat.dayOfWeek Base required DaysOfWeek 📍4.0.1 FHIR Std.
MedicationRequest.dosageInstruction.​timing.repeat.when Base required EventTiming 📍4.0.1 FHIR Std.
MedicationRequest.dosageInstruction.​timing.code Base preferred TimingAbbreviation 📍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 example SNOMED CT Route Codes 📍4.0.1 FHIR Std.
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.4
MedicationRequest.substitution.​reason Base example SubstanceAdminSubstitutionReason 📍3.0.0 THO v7.4

Constraints

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 MedicationRequest.meta, MedicationRequest.implicitRules, MedicationRequest.language, MedicationRequest.text, MedicationRequest.extension, MedicationRequest.extension:offLabelUse, MedicationRequest.extension:effectiveDosePeriod, MedicationRequest.extension:renderedDosageInstruction, MedicationRequest.extension:ageAtPrescribing, MedicationRequest.extension:quantityInWordsAndFigures, MedicationRequest.modifierExtension, MedicationRequest.identifier, MedicationRequest.status, MedicationRequest.statusReason, MedicationRequest.intent, MedicationRequest.category, MedicationRequest.priority, MedicationRequest.doNotPerform, MedicationRequest.reported[x], MedicationRequest.medication[x], MedicationRequest.subject, MedicationRequest.encounter, MedicationRequest.supportingInformation, MedicationRequest.authoredOn, MedicationRequest.requester, MedicationRequest.performer, MedicationRequest.performerType, MedicationRequest.recorder, MedicationRequest.reasonCode, MedicationRequest.reasonReference, MedicationRequest.instantiatesCanonical, MedicationRequest.instantiatesUri, MedicationRequest.basedOn, MedicationRequest.groupIdentifier, MedicationRequest.courseOfTherapyType, MedicationRequest.insurance, MedicationRequest.note, MedicationRequest.note.extension, MedicationRequest.note.author[x], MedicationRequest.note.time, MedicationRequest.note.text, MedicationRequest.dosageInstruction, MedicationRequest.dosageInstruction.extension, MedicationRequest.dosageInstruction.modifierExtension, MedicationRequest.dosageInstruction.sequence, MedicationRequest.dosageInstruction.text, MedicationRequest.dosageInstruction.additionalInstruction, MedicationRequest.dosageInstruction.patientInstruction, MedicationRequest.dosageInstruction.timing, MedicationRequest.dosageInstruction.timing.extension, MedicationRequest.dosageInstruction.timing.modifierExtension, MedicationRequest.dosageInstruction.timing.event, MedicationRequest.dosageInstruction.timing.repeat, MedicationRequest.dosageInstruction.timing.repeat.extension, MedicationRequest.dosageInstruction.timing.repeat.bounds[x], MedicationRequest.dosageInstruction.timing.repeat.count, MedicationRequest.dosageInstruction.timing.repeat.countMax, MedicationRequest.dosageInstruction.timing.repeat.duration, MedicationRequest.dosageInstruction.timing.repeat.durationMax, MedicationRequest.dosageInstruction.timing.repeat.durationUnit, MedicationRequest.dosageInstruction.timing.repeat.frequency, MedicationRequest.dosageInstruction.timing.repeat.frequencyMax, MedicationRequest.dosageInstruction.timing.repeat.period, MedicationRequest.dosageInstruction.timing.repeat.periodMax, MedicationRequest.dosageInstruction.timing.repeat.periodUnit, MedicationRequest.dosageInstruction.timing.repeat.dayOfWeek, MedicationRequest.dosageInstruction.timing.repeat.timeOfDay, MedicationRequest.dosageInstruction.timing.repeat.when, MedicationRequest.dosageInstruction.timing.repeat.offset, MedicationRequest.dosageInstruction.timing.code, MedicationRequest.dosageInstruction.asNeeded[x], MedicationRequest.dosageInstruction.asNeeded[x]:asNeededBoolean, MedicationRequest.dosageInstruction.site, MedicationRequest.dosageInstruction.route, MedicationRequest.dosageInstruction.method, MedicationRequest.dosageInstruction.doseAndRate, MedicationRequest.dosageInstruction.doseAndRate.extension, MedicationRequest.dosageInstruction.doseAndRate.type, MedicationRequest.dosageInstruction.doseAndRate.dose[x], MedicationRequest.dosageInstruction.doseAndRate.dose[x]:doseQuantity, MedicationRequest.dosageInstruction.doseAndRate.rate[x], MedicationRequest.dosageInstruction.maxDosePerPeriod, MedicationRequest.dosageInstruction.maxDosePerAdministration, MedicationRequest.dosageInstruction.maxDosePerLifetime, MedicationRequest.dispenseRequest, MedicationRequest.dispenseRequest.extension, MedicationRequest.dispenseRequest.extension:prescribedQuantity, MedicationRequest.dispenseRequest.extension:numberOfInstalments, MedicationRequest.dispenseRequest.extension:doNotExtend, MedicationRequest.dispenseRequest.modifierExtension, MedicationRequest.dispenseRequest.initialFill, MedicationRequest.dispenseRequest.initialFill.extension, MedicationRequest.dispenseRequest.initialFill.modifierExtension, MedicationRequest.dispenseRequest.initialFill.quantity, MedicationRequest.dispenseRequest.initialFill.duration, MedicationRequest.dispenseRequest.dispenseInterval, MedicationRequest.dispenseRequest.validityPeriod, MedicationRequest.dispenseRequest.numberOfRepeatsAllowed, MedicationRequest.dispenseRequest.quantity, MedicationRequest.dispenseRequest.expectedSupplyDuration, MedicationRequest.dispenseRequest.performer, MedicationRequest.substitution, MedicationRequest.substitution.extension, MedicationRequest.substitution.modifierExtension, MedicationRequest.substitution.allowed[x], MedicationRequest.substitution.allowed[x]:allowedBoolean, MedicationRequest.substitution.reason, MedicationRequest.priorPrescription, MedicationRequest.detectedIssue, MedicationRequest.eventHistory All FHIR elements must have a @value or children hasValue() or (children().count() > id.count())
ext-1 error MedicationRequest.extension, MedicationRequest.extension:offLabelUse, MedicationRequest.extension:effectiveDosePeriod, MedicationRequest.extension:renderedDosageInstruction, MedicationRequest.extension:ageAtPrescribing, MedicationRequest.extension:quantityInWordsAndFigures, MedicationRequest.modifierExtension, MedicationRequest.note.extension, MedicationRequest.dosageInstruction.extension, MedicationRequest.dosageInstruction.modifierExtension, MedicationRequest.dosageInstruction.timing.extension, MedicationRequest.dosageInstruction.timing.modifierExtension, MedicationRequest.dosageInstruction.timing.repeat.extension, MedicationRequest.dosageInstruction.doseAndRate.extension, MedicationRequest.dispenseRequest.extension, MedicationRequest.dispenseRequest.extension:prescribedQuantity, MedicationRequest.dispenseRequest.extension:numberOfInstalments, MedicationRequest.dispenseRequest.extension:doNotExtend, MedicationRequest.dispenseRequest.modifierExtension, MedicationRequest.dispenseRequest.initialFill.extension, MedicationRequest.dispenseRequest.initialFill.modifierExtension, MedicationRequest.substitution.extension, MedicationRequest.substitution.modifierExtension Must have either extensions or value[x], not both extension.exists() != value.exists()
ie-rx-age-1 error MedicationRequest If the patient is under 12 years old at the date of prescribing, or the date of birth is not a full date, the patient's age SHALL be recorded on the prescription (HIQA EP 1.4.2; a legal requirement in Ireland) subject.resolve().ofType(Patient).birthDate.empty() or authoredOn.empty() or ((subject.resolve().ofType(Patient).birthDate.toString().length() = 10) and ((subject.resolve().ofType(Patient).birthDate + 12 years).toString() <= authoredOn.toString().substring(0,10))) or extension('https://hl7-ie.github.io/medication-events/fhir/StructureDefinition/ie-mpd-patient-age-at-prescribing').exists()
ie-rx-cd-1 error MedicationRequest A prescription for a controlled drug (any schedule of the Misuse of Drugs Regulations 2017) SHALL state the quantity in words and figures (HIQA EP 3.5.7.2) (medication.ofType(Reference).resolve().extension('https://profiles.ihe.net/PHARM/MPD/StructureDefinition/ihe-ext-medication-classification').value.ofType(CodeableConcept).coding.where(system = 'https://hl7-ie.github.io/medication-events/fhir/CodeSystem/ie-mpd-mda-schedule').exists()) implies extension('https://hl7-ie.github.io/medication-events/fhir/StructureDefinition/ie-mpd-quantity-in-words-and-figures').exists()
ie-rx-cd-2 error MedicationRequest A prescription for a Schedule 2 or 3 controlled drug SHALL have a validity period ending no later than 14 days after the date of issue, or, for an instalment prescription, no later than two months after (the final instalment) (HIQA EP 3.5.9.1; Misuse of Drugs Regulations 2017) (medication.ofType(Reference).resolve().extension('https://profiles.ihe.net/PHARM/MPD/StructureDefinition/ihe-ext-medication-classification').value.ofType(CodeableConcept).coding.where(system = 'https://hl7-ie.github.io/medication-events/fhir/CodeSystem/ie-mpd-mda-schedule' and (code = 'schedule-2' or code = 'schedule-3')).exists()) implies (dispenseRequest.validityPeriod.end.exists() and ((dispenseRequest.extension('https://hl7-ie.github.io/medication-events/fhir/StructureDefinition/ie-mpd-number-of-instalments').exists() and dispenseRequest.validityPeriod.end.toString().substring(0,10) <= (authoredOn + 2 months).toString().substring(0,10)) or (dispenseRequest.validityPeriod.end.toString().substring(0,10) <= (authoredOn + 14 days).toString().substring(0,10))))
ie-rx-cd-3 error MedicationRequest A prescription for a Schedule 2, 3 or 4 Part 1 controlled drug SHALL state the number of instalments and, when there is more than one, the interval between them (HIQA EP 3.5.12, 3.5.13; Misuse of Drugs Regulations 2017) (medication.ofType(Reference).resolve().extension('https://profiles.ihe.net/PHARM/MPD/StructureDefinition/ihe-ext-medication-classification').value.ofType(CodeableConcept).coding.where(system = 'https://hl7-ie.github.io/medication-events/fhir/CodeSystem/ie-mpd-mda-schedule' and (code = 'schedule-2' or code = 'schedule-3' or code = 'schedule-4-part-1')).exists()) implies (dispenseRequest.extension('https://hl7-ie.github.io/medication-events/fhir/StructureDefinition/ie-mpd-number-of-instalments').exists() and ((dispenseRequest.extension('https://hl7-ie.github.io/medication-events/fhir/StructureDefinition/ie-mpd-number-of-instalments').value.ofType(positiveInt) > 1) implies dispenseRequest.dispenseInterval.exists()))
ie-rx-dosage-1 error MedicationRequest.dosageInstruction A structured dosage SHALL be accompanied by a human-readable dosage text (safety fallback; HIQA EP 5.1 / 5.2) (timing.exists() or doseAndRate.exists()) implies text.exists()
ie-rx-status-1 error MedicationRequest A status reason SHALL be given unless the prescription item is active, completed or draft (HIQA EP 3.5.2.2 / 3.5.2.3) (status = 'active' or status = 'completed' or status = 'draft') or statusReason.exists()
ie-rx-subst-1 error MedicationRequest When substitution is not allowed ('Do Not Substitute'), a reason SHALL be given (HIQA EP 3.5.10.3) substitution.allowed.ofType(boolean).where($this = false).exists() implies substitution.reason.exists()
tim-1 error MedicationRequest.dosageInstruction.timing.repeat if there's a duration, there needs to be duration units duration.empty() or durationUnit.exists()
tim-2 error MedicationRequest.dosageInstruction.timing.repeat if there's a period, there needs to be period units period.empty() or periodUnit.exists()
tim-4 error MedicationRequest.dosageInstruction.timing.repeat duration SHALL be a non-negative value duration.exists() implies duration >= 0
tim-5 error MedicationRequest.dosageInstruction.timing.repeat period SHALL be a non-negative value period.exists() implies period >= 0
tim-6 error MedicationRequest.dosageInstruction.timing.repeat If there's a periodMax, there must be a period periodMax.empty() or period.exists()
tim-7 error MedicationRequest.dosageInstruction.timing.repeat If there's a durationMax, there must be a duration durationMax.empty() or duration.exists()
tim-8 error MedicationRequest.dosageInstruction.timing.repeat If there's a countMax, there must be a count countMax.empty() or count.exists()
tim-9 error MedicationRequest.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 MedicationRequest.dosageInstruction.timing.repeat If there's a timeOfDay, there cannot be a when, or vice versa timeOfDay.empty() or when.empty()

Key Elements View

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. MedicationRequest C 0..* MedicationRequestEuMpd(1.0.0) Ordering of medication for patient or group
Constraints: ie-rx-status-1, ie-rx-age-1, ie-rx-cd-1, ie-rx-cd-2, ie-rx-cd-3, ie-rx-subst-1
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... Slices for extension Content/Rules for all slices
.... extension:offLabelUse S 0..1 (Complex) Off-label use
URL: https://profiles.ihe.net/PHARM/MPD/StructureDefinition/ihe-ext-offLabel
Constraints: ext-1
.... extension:effectiveDosePeriod S 0..1 Period R5: Period over which the medication is to be taken (new)
URL: http://hl7.org/fhir/5.0/StructureDefinition/extension-MedicationRequest.effectiveDosePeriod
Constraints: ext-1
.... extension:renderedDosageInstruction O 0..1 markdown Full representation of the dosage instructions
URL: http://hl7.org/fhir/5.0/StructureDefinition/extension-MedicationRequest.renderedDosageInstruction
Constraints: ext-1
ObligationsActorSource
SHOULD:able-to-populate Producer from MedicationRequest: MPD
.... extension:ageAtPrescribing S 0..1 Age Patient age at prescribing (a legal requirement if under 12)
URL: https://hl7-ie.github.io/medication-events/fhir/StructureDefinition/ie-mpd-patient-age-at-prescribing
Constraints: ext-1
.... extension:quantityInWordsAndFigures S 0..1 string IE MPD Quantity Prescribed (Words and Figures)
URL: https://hl7-ie.github.io/medication-events/fhir/StructureDefinition/ie-mpd-quantity-in-words-and-figures
Constraints: ext-1
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
Constraints: ext-1
... status ?!SOΣ 1..1 code active | on-hold | cancelled | completed | entered-in-error | stopped | draft | unknown
Binding: medicationrequest Status (required): A coded concept specifying the state of the prescribing event. Describes the lifecycle of the prescription.
ObligationsActorSource
SHALL:able-to-populate Producer from MedicationRequest: MPD
... statusReason S 0..1 CodeableConcept Reason for current status
Binding: medicationRequest Status Reason Codes (example): Identifies the reasons for a given status.
... intent ?!Σ 1..1 code proposal | plan | order | original-order | reflex-order | filler-order | instance-order | option
Binding: medicationRequest Intent (required): The kind of medication order.
Required Pattern: order
... category S 0..* CodeableConcept Type of medication usage
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.
... doNotPerform ?!Σ 0..1 boolean True if request is prohibiting action
... medication[x] SOΣ 1..1 Reference(IE MPD Medication (ePrescription/eDispensation)(0.1.0)) Medication to be taken
ObligationsActorSource
SHALL:able-to-populate Producer from MedicationRequest: MPD
... subject SOΣ 1..1 Reference(IE MPD Patient (ePrescription/eDispensation)(0.1.0)) Who or group medication request is for
ObligationsActorSource
SHALL:able-to-populate Producer from MedicationRequest: MPD
... supportingInformation S 0..* Reference(Resource) Information to support ordering of the medication
... authoredOn SOΣ 1..1 dateTime When request was initially authored
ObligationsActorSource
SHALL:able-to-populate Producer from MedicationRequest: MPD
... requester SOΣ 1..1 Reference(IE MPD PractitionerRole(0.1.0) | IE MPD Practitioner(0.1.0)) Who/What requested the Request
ObligationsActorSource
SHALL:able-to-populate Producer from MedicationRequest: MPD
... reasonCode S 0..* CodeableConcept Reason or indication for this prescription
Binding: Condition/Problem/DiagnosisCodes (example): A coded concept indicating why the medication was ordered.
Additional BindingsPurpose
eHDSI Illness and Disorder . candidate

... groupIdentifier SΣ 0..1 Identifier Prescription this is part of. Not needed if a presciption includes only one prescribed item.
... courseOfTherapyType S 0..1 CodeableConcept Overall pattern of medication administration
Binding: medicationRequest Course of Therapy Codes (example): Identifies the overall pattern of medication administratio.
... note S 0..* Annotation Information about the prescription
.... text OΣ 1..1 markdown The annotation - text content (as markdown)
ObligationsActorSource
SHOULD:able-to-populate Producer from MedicationRequest: MPD
... dosageInstruction SOC 1..* DosageEuMpd(1.0.0) How the medication should be taken.
Constraints: ie-rx-dosage-1
ObligationsActorSource
SHALL:able-to-populate Producer from MedicationRequest: MPD
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
Constraints: ext-1
.... sequence Σ 0..1 integer The order of the dosage instructions
.... text SΣ 1..1 string Free text dosage instructions
.... additionalInstruction SΣ 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".
.... patientInstruction SOΣ 0..1 string Patient or consumer oriented instructions
ObligationsActorSource
SHOULD:able-to-populate Producer from Dosage: MPD
.... timing SΣ 0..1 Timing Administration schedule
..... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
Constraints: ext-1
..... repeat OΣ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
ObligationsActorSource
SHALL:able-to-populate Producer from Dosage: MPD
...... frequency SOΣ 0..1 positiveInt Frequency times per period
ObligationsActorSource
SHALL:able-to-populate Producer from Dosage: MPD
...... period SOΣ 0..1 decimal Duration of time over which repetitions are to occur
ObligationsActorSource
SHALL:able-to-populate Producer from Dosage: MPD
...... periodUnit SOΣ 0..1 code Unit of the period (e.g. day)
Binding: UnitsOfTime (required): A unit of time (units from UCUM).
ObligationsActorSource
SHALL:able-to-populate Producer from Dosage: MPD
.... Slices for asNeeded[x] Σ 0..1 Take "as needed" (for x)
Slice: Unordered, Closed by type:$this
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.
..... asNeededBoolean boolean
..... asNeededCodeableConcept CodeableConcept
..... asNeeded[x]:asNeededBoolean Σ 0..1 boolean Take "as needed" (for x)
.... site Σ 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.
.... route SOΣ 0..1 CodeableConcept Route of administration
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.
ObligationsActorSource
SHOULD:able-to-populate Producer from Dosage: MPD
.... doseAndRate SΣ 0..* Element Amount of medication administered
..... Slices for dose[x] SOΣ 0..1 Amount of medication per dose
Slice: Unordered, Closed by type:$this
ObligationsActorSource
SHALL:able-to-populate Producer from Dosage: MPD
...... doseRange Range
...... doseQuantity Quantity(SimpleQuantity)
...... dose[x]:doseQuantity OΣ 0..1 SimpleQuantity(4.0.1) Amount of medication per dose
ObligationsActorSource
SHALL:able-to-populate Producer from Dosage: MPD
.... maxDosePerPeriod SΣ 0..1 Ratio Upper limit on medication per unit of time
... dispenseRequest S 1..1 BackboneElement Medication supply authorization
.... Slices for extension Content/Rules for all slices
..... extension:prescribedQuantity SO 0..1 Quantity MedicationRequest - Prescribed Quantity
URL: https://profiles.ihe.net/PHARM/MPD/StructureDefinition/ihe-ext-medicationrequest-prescribedQuantity
Constraints: ext-1
ObligationsActorSource
SHOULD:able-to-populate Producer from MedicationRequest: MPD
..... extension:numberOfInstalments S 0..1 positiveInt IE MPD Number of Instalments
URL: https://hl7-ie.github.io/medication-events/fhir/StructureDefinition/ie-mpd-number-of-instalments
Constraints: ext-1
..... extension:doNotExtend 0..1 boolean IE MPD Do Not Extend
URL: https://hl7-ie.github.io/medication-events/fhir/StructureDefinition/ie-mpd-do-not-extend
Constraints: ext-1
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
Constraints: ext-1
.... dispenseInterval S 0..1 Duration Minimum period of time between dispenses
.... validityPeriod SO 0..1 Period Time period supply is authorized for
ObligationsActorSource
SHOULD:able-to-populate Producer from MedicationRequest: MPD
.... numberOfRepeatsAllowed S 0..1 unsignedInt Number of refills authorized
.... quantity S 1..1 SimpleQuantity(4.0.1) Amount of medication to supply per dispense
... substitution SO 0..1 BackboneElement Any restrictions on medication substitution. Substitution rules (including the definition of substitution) vary across different countries, and the semantics of this element should be interpreted accordingly.
ObligationsActorSource
SHOULD:able-to-populate Producer from MedicationRequest: MPD
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
Constraints: ext-1
.... Slices for allowed[x] S 1..1 Whether substitution is allowed or not
Slice: Unordered, Closed by type:$this
Binding: ActSubstanceAdminSubstitutionCode (3.0.0) (example): Identifies the type of substitution allowed.
..... allowedBoolean boolean
..... allowedCodeableConcept CodeableConcept
..... allowed[x]:allowedBoolean O 0..1 boolean Whether substitution is allowed or not
ObligationsActorSource
SHALL:able-to-populate Producer from MedicationRequest: MPD
.... reason S 0..1 CodeableConcept Why should (not) substitution be made
Binding: SubstanceAdminSubstitutionReason (3.0.0) (example): A coded concept describing the reason that a different medication should (or should not) be substituted from what was prescribed.

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
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.reasonCode Base example Condition/Problem/Diagnosis Codes 📍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.​timing.repeat.periodUnit Base required UnitsOfTime 📍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 example SNOMED CT Route Codes 📍4.0.1 FHIR Std.
MedicationRequest.substitution.​allowed[x] Base example ActSubstanceAdminSubstitutionCode 📍3.0.0 THO v7.4
MedicationRequest.substitution.​reason Base example SubstanceAdminSubstitutionReason 📍3.0.0 THO v7.4

Constraints

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 MedicationRequest.implicitRules, MedicationRequest.extension:offLabelUse, MedicationRequest.extension:effectiveDosePeriod, MedicationRequest.extension:renderedDosageInstruction, MedicationRequest.extension:ageAtPrescribing, MedicationRequest.extension:quantityInWordsAndFigures, MedicationRequest.modifierExtension, MedicationRequest.identifier, MedicationRequest.status, MedicationRequest.statusReason, MedicationRequest.intent, MedicationRequest.category, MedicationRequest.doNotPerform, MedicationRequest.medication[x], MedicationRequest.subject, MedicationRequest.supportingInformation, MedicationRequest.authoredOn, MedicationRequest.requester, MedicationRequest.reasonCode, MedicationRequest.groupIdentifier, MedicationRequest.courseOfTherapyType, MedicationRequest.note, MedicationRequest.note.text, MedicationRequest.dosageInstruction, MedicationRequest.dosageInstruction.modifierExtension, MedicationRequest.dosageInstruction.sequence, MedicationRequest.dosageInstruction.text, MedicationRequest.dosageInstruction.additionalInstruction, MedicationRequest.dosageInstruction.patientInstruction, MedicationRequest.dosageInstruction.timing, MedicationRequest.dosageInstruction.timing.modifierExtension, MedicationRequest.dosageInstruction.timing.repeat, MedicationRequest.dosageInstruction.timing.repeat.frequency, MedicationRequest.dosageInstruction.timing.repeat.period, MedicationRequest.dosageInstruction.timing.repeat.periodUnit, MedicationRequest.dosageInstruction.asNeeded[x], MedicationRequest.dosageInstruction.asNeeded[x]:asNeededBoolean, MedicationRequest.dosageInstruction.site, MedicationRequest.dosageInstruction.route, MedicationRequest.dosageInstruction.doseAndRate, MedicationRequest.dosageInstruction.doseAndRate.dose[x], MedicationRequest.dosageInstruction.doseAndRate.dose[x]:doseQuantity, MedicationRequest.dosageInstruction.maxDosePerPeriod, MedicationRequest.dispenseRequest, MedicationRequest.dispenseRequest.extension:prescribedQuantity, MedicationRequest.dispenseRequest.extension:numberOfInstalments, MedicationRequest.dispenseRequest.extension:doNotExtend, MedicationRequest.dispenseRequest.modifierExtension, MedicationRequest.dispenseRequest.dispenseInterval, MedicationRequest.dispenseRequest.validityPeriod, MedicationRequest.dispenseRequest.numberOfRepeatsAllowed, MedicationRequest.dispenseRequest.quantity, MedicationRequest.substitution, MedicationRequest.substitution.modifierExtension, MedicationRequest.substitution.allowed[x], MedicationRequest.substitution.allowed[x]:allowedBoolean, MedicationRequest.substitution.reason All FHIR elements must have a @value or children hasValue() or (children().count() > id.count())
ext-1 error MedicationRequest.extension:offLabelUse, MedicationRequest.extension:effectiveDosePeriod, MedicationRequest.extension:renderedDosageInstruction, MedicationRequest.extension:ageAtPrescribing, MedicationRequest.extension:quantityInWordsAndFigures, MedicationRequest.modifierExtension, MedicationRequest.dosageInstruction.modifierExtension, MedicationRequest.dosageInstruction.timing.modifierExtension, MedicationRequest.dispenseRequest.extension:prescribedQuantity, MedicationRequest.dispenseRequest.extension:numberOfInstalments, MedicationRequest.dispenseRequest.extension:doNotExtend, MedicationRequest.dispenseRequest.modifierExtension, MedicationRequest.substitution.modifierExtension Must have either extensions or value[x], not both extension.exists() != value.exists()
ie-rx-age-1 error MedicationRequest If the patient is under 12 years old at the date of prescribing, or the date of birth is not a full date, the patient's age SHALL be recorded on the prescription (HIQA EP 1.4.2; a legal requirement in Ireland) subject.resolve().ofType(Patient).birthDate.empty() or authoredOn.empty() or ((subject.resolve().ofType(Patient).birthDate.toString().length() = 10) and ((subject.resolve().ofType(Patient).birthDate + 12 years).toString() <= authoredOn.toString().substring(0,10))) or extension('https://hl7-ie.github.io/medication-events/fhir/StructureDefinition/ie-mpd-patient-age-at-prescribing').exists()
ie-rx-cd-1 error MedicationRequest A prescription for a controlled drug (any schedule of the Misuse of Drugs Regulations 2017) SHALL state the quantity in words and figures (HIQA EP 3.5.7.2) (medication.ofType(Reference).resolve().extension('https://profiles.ihe.net/PHARM/MPD/StructureDefinition/ihe-ext-medication-classification').value.ofType(CodeableConcept).coding.where(system = 'https://hl7-ie.github.io/medication-events/fhir/CodeSystem/ie-mpd-mda-schedule').exists()) implies extension('https://hl7-ie.github.io/medication-events/fhir/StructureDefinition/ie-mpd-quantity-in-words-and-figures').exists()
ie-rx-cd-2 error MedicationRequest A prescription for a Schedule 2 or 3 controlled drug SHALL have a validity period ending no later than 14 days after the date of issue, or, for an instalment prescription, no later than two months after (the final instalment) (HIQA EP 3.5.9.1; Misuse of Drugs Regulations 2017) (medication.ofType(Reference).resolve().extension('https://profiles.ihe.net/PHARM/MPD/StructureDefinition/ihe-ext-medication-classification').value.ofType(CodeableConcept).coding.where(system = 'https://hl7-ie.github.io/medication-events/fhir/CodeSystem/ie-mpd-mda-schedule' and (code = 'schedule-2' or code = 'schedule-3')).exists()) implies (dispenseRequest.validityPeriod.end.exists() and ((dispenseRequest.extension('https://hl7-ie.github.io/medication-events/fhir/StructureDefinition/ie-mpd-number-of-instalments').exists() and dispenseRequest.validityPeriod.end.toString().substring(0,10) <= (authoredOn + 2 months).toString().substring(0,10)) or (dispenseRequest.validityPeriod.end.toString().substring(0,10) <= (authoredOn + 14 days).toString().substring(0,10))))
ie-rx-cd-3 error MedicationRequest A prescription for a Schedule 2, 3 or 4 Part 1 controlled drug SHALL state the number of instalments and, when there is more than one, the interval between them (HIQA EP 3.5.12, 3.5.13; Misuse of Drugs Regulations 2017) (medication.ofType(Reference).resolve().extension('https://profiles.ihe.net/PHARM/MPD/StructureDefinition/ihe-ext-medication-classification').value.ofType(CodeableConcept).coding.where(system = 'https://hl7-ie.github.io/medication-events/fhir/CodeSystem/ie-mpd-mda-schedule' and (code = 'schedule-2' or code = 'schedule-3' or code = 'schedule-4-part-1')).exists()) implies (dispenseRequest.extension('https://hl7-ie.github.io/medication-events/fhir/StructureDefinition/ie-mpd-number-of-instalments').exists() and ((dispenseRequest.extension('https://hl7-ie.github.io/medication-events/fhir/StructureDefinition/ie-mpd-number-of-instalments').value.ofType(positiveInt) > 1) implies dispenseRequest.dispenseInterval.exists()))
ie-rx-dosage-1 error MedicationRequest.dosageInstruction A structured dosage SHALL be accompanied by a human-readable dosage text (safety fallback; HIQA EP 5.1 / 5.2) (timing.exists() or doseAndRate.exists()) implies text.exists()
ie-rx-status-1 error MedicationRequest A status reason SHALL be given unless the prescription item is active, completed or draft (HIQA EP 3.5.2.2 / 3.5.2.3) (status = 'active' or status = 'completed' or status = 'draft') or statusReason.exists()
ie-rx-subst-1 error MedicationRequest When substitution is not allowed ('Do Not Substitute'), a reason SHALL be given (HIQA EP 3.5.10.3) substitution.allowed.ofType(boolean).where($this = false).exists() implies substitution.reason.exists()
tim-1 error MedicationRequest.dosageInstruction.timing.repeat if there's a duration, there needs to be duration units duration.empty() or durationUnit.exists()
tim-2 error MedicationRequest.dosageInstruction.timing.repeat if there's a period, there needs to be period units period.empty() or periodUnit.exists()
tim-4 error MedicationRequest.dosageInstruction.timing.repeat duration SHALL be a non-negative value duration.exists() implies duration >= 0
tim-5 error MedicationRequest.dosageInstruction.timing.repeat period SHALL be a non-negative value period.exists() implies period >= 0
tim-6 error MedicationRequest.dosageInstruction.timing.repeat If there's a periodMax, there must be a period periodMax.empty() or period.exists()
tim-7 error MedicationRequest.dosageInstruction.timing.repeat If there's a durationMax, there must be a duration durationMax.empty() or duration.exists()
tim-8 error MedicationRequest.dosageInstruction.timing.repeat If there's a countMax, there must be a count countMax.empty() or count.exists()
tim-9 error MedicationRequest.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 MedicationRequest.dosageInstruction.timing.repeat If there's a timeOfDay, there cannot be a when, or vice versa timeOfDay.empty() or when.empty()

Differential View

This structure is derived from MedicationRequestEuMpd

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. MedicationRequest C 0..* MedicationRequestEuMpd(1.0.0) Ordering of medication for patient or group
... Slices for extension Content/Rules for all slices
.... extension:offLabelUse S 0..1 OffLabel(1.0.0-comment-2) Off-label use
.... extension:effectiveDosePeriod S 0..1 0.1.0 R5: Period over which the medication is to be taken (new)
.... extension:ageAtPrescribing S 0..1 Age Patient age at prescribing (a legal requirement if under 12)
URL: https://hl7-ie.github.io/medication-events/fhir/StructureDefinition/ie-mpd-patient-age-at-prescribing
.... extension:quantityInWordsAndFigures S 0..1 string IE MPD Quantity Prescribed (Words and Figures)
URL: https://hl7-ie.github.io/medication-events/fhir/StructureDefinition/ie-mpd-quantity-in-words-and-figures
... identifier S 1..* Identifier Prescription/prescribed item ID
... status S 1..1 code active | on-hold | cancelled | completed | entered-in-error | stopped | draft | unknown
... intent 1..1 code proposal | plan | order | original-order | reflex-order | filler-order | instance-order | option
Required Pattern: order
... category S 0..* CodeableConcept Type of medication usage
... medication[x] S 1..1 Reference(IE MPD Medication (ePrescription/eDispensation)(0.1.0)) Medication to be taken
... subject S 1..1 Reference(IE MPD Patient (ePrescription/eDispensation)(0.1.0)) Who or group medication request is for
... supportingInformation S 0..* Reference(Resource) Information to support ordering of the medication
... authoredOn S 1..1 dateTime When request was initially authored
... requester S 1..1 Reference(IE MPD PractitionerRole(0.1.0) | IE MPD Practitioner(0.1.0)) Who/What requested the Request
... reasonCode S 0..* CodeableConcept Reason or indication for this prescription
... groupIdentifier S 0..1 Identifier Prescription this is part of. Not needed if a presciption includes only one prescribed item.
... courseOfTherapyType S 0..1 CodeableConcept Overall pattern of medication administration
... note S 0..* Annotation Information about the prescription
... dosageInstruction SC 1..* DosageEuMpd(1.0.0) How the medication should be taken.
.... sequence 0..1 integer The order of the dosage instructions
.... text S 1..1 string Free text dosage instructions
.... additionalInstruction S 0..* CodeableConcept Supplemental instruction or warnings to the patient - e.g. "with meals", "may cause drowsiness"
.... patientInstruction S 0..1 string Patient or consumer oriented instructions
.... timing S 0..1 Timing Administration schedule
..... repeat
...... frequency S 0..1 positiveInt Frequency times per period
...... period S 0..1 decimal Duration of time over which repetitions are to occur
...... periodUnit S 0..1 code Unit of the period (e.g. day)
.... asNeeded[x] 0..1 boolean, CodeableConcept Take "as needed" (for x)
.... site 0..1 CodeableConcept Body site to administer to
.... route S 0..1 CodeableConcept Route of administration
.... doseAndRate S 0..* Element Amount of medication administered
..... dose[x] S 0..1 Range, SimpleQuantity(4.0.1) Amount of medication per dose
.... maxDosePerPeriod S 0..1 Ratio Upper limit on medication per unit of time
... dispenseRequest S 1..1 BackboneElement Medication supply authorization
.... Slices for extension Content/Rules for all slices
..... extension:prescribedQuantity S 0..1 MedicationRequestPrescribedQuantity(1.0.0-comment-2) MedicationRequest - Prescribed Quantity
..... extension:numberOfInstalments S 0..1 positiveInt IE MPD Number of Instalments
URL: https://hl7-ie.github.io/medication-events/fhir/StructureDefinition/ie-mpd-number-of-instalments
..... extension:doNotExtend 0..1 boolean IE MPD Do Not Extend
URL: https://hl7-ie.github.io/medication-events/fhir/StructureDefinition/ie-mpd-do-not-extend
.... dispenseInterval S 0..1 Duration Minimum period of time between dispenses
.... validityPeriod S 0..1 Period Time period supply is authorized for
.... numberOfRepeatsAllowed S 0..1 unsignedInt Number of refills authorized
.... quantity S 1..1 SimpleQuantity(4.0.1) Amount of medication to supply per dispense
... substitution S 0..1 BackboneElement Any restrictions on medication substitution. Substitution rules (including the definition of substitution) vary across different countries, and the semantics of this element should be interpreted accordingly.
.... allowed[x] S 1..1 boolean, CodeableConcept Whether substitution is allowed or not
.... reason S 0..1 CodeableConcept Why should (not) substitution be made

doco Documentation for this format

Constraints

Id Grade Path(s) Description Expression
ie-rx-age-1 error MedicationRequest If the patient is under 12 years old at the date of prescribing, or the date of birth is not a full date, the patient's age SHALL be recorded on the prescription (HIQA EP 1.4.2; a legal requirement in Ireland) subject.resolve().ofType(Patient).birthDate.empty() or authoredOn.empty() or ((subject.resolve().ofType(Patient).birthDate.toString().length() = 10) and ((subject.resolve().ofType(Patient).birthDate + 12 years).toString() <= authoredOn.toString().substring(0,10))) or extension('https://hl7-ie.github.io/medication-events/fhir/StructureDefinition/ie-mpd-patient-age-at-prescribing').exists()
ie-rx-cd-1 error MedicationRequest A prescription for a controlled drug (any schedule of the Misuse of Drugs Regulations 2017) SHALL state the quantity in words and figures (HIQA EP 3.5.7.2) (medication.ofType(Reference).resolve().extension('https://profiles.ihe.net/PHARM/MPD/StructureDefinition/ihe-ext-medication-classification').value.ofType(CodeableConcept).coding.where(system = 'https://hl7-ie.github.io/medication-events/fhir/CodeSystem/ie-mpd-mda-schedule').exists()) implies extension('https://hl7-ie.github.io/medication-events/fhir/StructureDefinition/ie-mpd-quantity-in-words-and-figures').exists()
ie-rx-cd-2 error MedicationRequest A prescription for a Schedule 2 or 3 controlled drug SHALL have a validity period ending no later than 14 days after the date of issue, or, for an instalment prescription, no later than two months after (the final instalment) (HIQA EP 3.5.9.1; Misuse of Drugs Regulations 2017) (medication.ofType(Reference).resolve().extension('https://profiles.ihe.net/PHARM/MPD/StructureDefinition/ihe-ext-medication-classification').value.ofType(CodeableConcept).coding.where(system = 'https://hl7-ie.github.io/medication-events/fhir/CodeSystem/ie-mpd-mda-schedule' and (code = 'schedule-2' or code = 'schedule-3')).exists()) implies (dispenseRequest.validityPeriod.end.exists() and ((dispenseRequest.extension('https://hl7-ie.github.io/medication-events/fhir/StructureDefinition/ie-mpd-number-of-instalments').exists() and dispenseRequest.validityPeriod.end.toString().substring(0,10) <= (authoredOn + 2 months).toString().substring(0,10)) or (dispenseRequest.validityPeriod.end.toString().substring(0,10) <= (authoredOn + 14 days).toString().substring(0,10))))
ie-rx-cd-3 error MedicationRequest A prescription for a Schedule 2, 3 or 4 Part 1 controlled drug SHALL state the number of instalments and, when there is more than one, the interval between them (HIQA EP 3.5.12, 3.5.13; Misuse of Drugs Regulations 2017) (medication.ofType(Reference).resolve().extension('https://profiles.ihe.net/PHARM/MPD/StructureDefinition/ihe-ext-medication-classification').value.ofType(CodeableConcept).coding.where(system = 'https://hl7-ie.github.io/medication-events/fhir/CodeSystem/ie-mpd-mda-schedule' and (code = 'schedule-2' or code = 'schedule-3' or code = 'schedule-4-part-1')).exists()) implies (dispenseRequest.extension('https://hl7-ie.github.io/medication-events/fhir/StructureDefinition/ie-mpd-number-of-instalments').exists() and ((dispenseRequest.extension('https://hl7-ie.github.io/medication-events/fhir/StructureDefinition/ie-mpd-number-of-instalments').value.ofType(positiveInt) > 1) implies dispenseRequest.dispenseInterval.exists()))
ie-rx-dosage-1 error MedicationRequest.dosageInstruction A structured dosage SHALL be accompanied by a human-readable dosage text (safety fallback; HIQA EP 5.1 / 5.2) (timing.exists() or doseAndRate.exists()) implies text.exists()
ie-rx-status-1 error MedicationRequest A status reason SHALL be given unless the prescription item is active, completed or draft (HIQA EP 3.5.2.2 / 3.5.2.3) (status = 'active' or status = 'completed' or status = 'draft') or statusReason.exists()
ie-rx-subst-1 error MedicationRequest When substitution is not allowed ('Do Not Substitute'), a reason SHALL be given (HIQA EP 3.5.10.3) substitution.allowed.ofType(boolean).where($this = false).exists() implies substitution.reason.exists()

Snapshot View

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. MedicationRequest C 0..* MedicationRequestEuMpd(1.0.0) Ordering of medication for patient or group
Constraints: ie-rx-status-1, ie-rx-age-1, ie-rx-cd-1, ie-rx-cd-2, ie-rx-cd-3, ie-rx-subst-1
... id Σ 0..1 id Logical id of this artifact
... meta Σ 0..1 Meta Metadata about the resource
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... language 0..1 code Language of the resource content
Binding: CommonLanguages (preferred): A human language.
Additional BindingsPurpose
AllLanguages Max Binding
... text 0..1 Narrative Text summary of the resource, for human interpretation
This profile does not constrain the narrative in regard to content, language, or traceability to data elements
... contained 0..* Resource Contained, inline Resources
... Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url
Constraints: ext-1
.... extension:offLabelUse S 0..1 (Complex) Off-label use
URL: https://profiles.ihe.net/PHARM/MPD/StructureDefinition/ihe-ext-offLabel
Constraints: ext-1
.... extension:effectiveDosePeriod S 0..1 Period R5: Period over which the medication is to be taken (new)
URL: http://hl7.org/fhir/5.0/StructureDefinition/extension-MedicationRequest.effectiveDosePeriod
Constraints: ext-1
.... extension:renderedDosageInstruction O 0..1 markdown Full representation of the dosage instructions
URL: http://hl7.org/fhir/5.0/StructureDefinition/extension-MedicationRequest.renderedDosageInstruction
Constraints: ext-1
ObligationsActorSource
SHOULD:able-to-populate Producer from MedicationRequest: MPD
.... extension:ageAtPrescribing S 0..1 Age Patient age at prescribing (a legal requirement if under 12)
URL: https://hl7-ie.github.io/medication-events/fhir/StructureDefinition/ie-mpd-patient-age-at-prescribing
Constraints: ext-1
.... extension:quantityInWordsAndFigures S 0..1 string IE MPD Quantity Prescribed (Words and Figures)
URL: https://hl7-ie.github.io/medication-events/fhir/StructureDefinition/ie-mpd-quantity-in-words-and-figures
Constraints: ext-1
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
Constraints: ext-1
... identifier SO 1..* Identifier Prescription/prescribed item ID
ObligationsActorSource
SHALL:able-to-populate Producer from MedicationRequest: MPD
... status ?!SOΣ 1..1 code active | on-hold | cancelled | completed | entered-in-error | stopped | draft | unknown
Binding: medicationrequest Status (required): A coded concept specifying the state of the prescribing event. Describes the lifecycle of the prescription.
ObligationsActorSource
SHALL:able-to-populate Producer from MedicationRequest: MPD
... statusReason S 0..1 CodeableConcept Reason for current status
Binding: medicationRequest Status Reason Codes (example): Identifies the reasons for a given status.
... intent ?!Σ 1..1 code proposal | plan | order | original-order | reflex-order | filler-order | instance-order | option
Binding: medicationRequest Intent (required): The kind of medication order.
Required Pattern: order
... category S 0..* CodeableConcept Type of medication usage
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.
... priority Σ 0..1 code routine | urgent | asap | stat
Binding: RequestPriority (required): Identifies the level of importance to be assigned to actioning the request.
... doNotPerform ?!Σ 0..1 boolean True if request is prohibiting action
... reported[x] Σ 0..1 Reported rather than primary record
.... reportedBoolean boolean
.... reportedReference Reference(Patient | Practitioner | PractitionerRole | RelatedPerson | Organization)
... medication[x] SOΣ 1..1 Reference(IE MPD Medication (ePrescription/eDispensation)(0.1.0)) Medication to be taken
ObligationsActorSource
SHALL:able-to-populate Producer from MedicationRequest: MPD
... subject SOΣ 1..1 Reference(IE MPD Patient (ePrescription/eDispensation)(0.1.0)) Who or group medication request is for
ObligationsActorSource
SHALL:able-to-populate Producer from MedicationRequest: MPD
... encounter 0..1 Reference(Encounter) Encounter created as part of encounter/admission/stay
... supportingInformation S 0..* Reference(Resource) Information to support ordering of the medication
... authoredOn SOΣ 1..1 dateTime When request was initially authored
ObligationsActorSource
SHALL:able-to-populate Producer from MedicationRequest: MPD
... requester SOΣ 1..1 Reference(IE MPD PractitionerRole(0.1.0) | IE MPD Practitioner(0.1.0)) Who/What requested the Request
ObligationsActorSource
SHALL:able-to-populate Producer from MedicationRequest: MPD
... performer 0..1 Reference(Practitioner | PractitionerRole | Organization | Patient | Device | RelatedPerson | CareTeam) Intended performer of administration
... performerType Σ 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.
... recorder 0..1 Reference(Practitioner | PractitionerRole) Person who entered the request
... reasonCode S 0..* CodeableConcept Reason or indication for this prescription
Binding: Condition/Problem/DiagnosisCodes (example): A coded concept indicating why the medication was ordered.
Additional BindingsPurpose
eHDSI Illness and Disorder . candidate

... reasonReference 0..* Reference(Condition | Observation) Condition or observation that supports this prescription
... instantiatesCanonical Σ 0..* canonical() Instantiates FHIR protocol or definition
... instantiatesUri Σ 0..* uri Instantiates external protocol or definition
... basedOn Σ 0..* Reference(CarePlan | MedicationRequest | ServiceRequest | ImmunizationRecommendation) What request fulfills
... groupIdentifier SΣ 0..1 Identifier Prescription this is part of. Not needed if a presciption includes only one prescribed item.
... courseOfTherapyType S 0..1 CodeableConcept Overall pattern of medication administration
Binding: medicationRequest Course of Therapy Codes (example): Identifies the overall pattern of medication administratio.
... insurance 0..* Reference(Coverage | ClaimResponse) Associated insurance coverage
... note S 0..* Annotation Information about the prescription
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
Constraints: ext-1
.... author[x] Σ 0..1 Individual responsible for the annotation
..... authorReference Reference(Practitioner | Patient | RelatedPerson | Organization)
..... authorString string
.... time Σ 0..1 dateTime When the annotation was made
.... text OΣ 1..1 markdown The annotation - text content (as markdown)
ObligationsActorSource
SHOULD:able-to-populate Producer from MedicationRequest: MPD
... dosageInstruction SOC 1..* DosageEuMpd(1.0.0) How the medication should be taken.
Constraints: ie-rx-dosage-1
ObligationsActorSource
SHALL:able-to-populate Producer from MedicationRequest: MPD
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
Constraints: ext-1
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
Constraints: ext-1
.... sequence Σ 0..1 integer The order of the dosage instructions
.... text SΣ 1..1 string Free text dosage instructions
.... additionalInstruction SΣ 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".
.... patientInstruction SOΣ 0..1 string Patient or consumer oriented instructions
ObligationsActorSource
SHOULD:able-to-populate Producer from Dosage: MPD
.... timing SΣ 0..1 Timing Administration schedule
..... id 0..1 string Unique id for inter-element referencing
..... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
Constraints: ext-1
..... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
Constraints: ext-1
..... event Σ 0..* dateTime When the event occurs
..... repeat OΣ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
ObligationsActorSource
SHALL:able-to-populate Producer from Dosage: MPD
...... id 0..1 string Unique id for inter-element referencing
...... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
Constraints: ext-1
...... bounds[x] OΣ 0..1 Length/Range of lengths, or (Start and/or end) limits
ObligationsActorSource
SHALL:able-to-populate Producer from Dosage: MPD
....... boundsDuration Duration
....... boundsRange Range
....... boundsPeriod Period
...... count Σ 0..1 positiveInt Number of times to repeat
...... countMax Σ 0..1 positiveInt Maximum number of times to repeat
...... duration Σ 0..1 decimal Duration of the treatment
...... durationMax Σ 0..1 decimal How long when it happens (Max)
...... durationUnit Σ 0..1 code s | min | h | d | wk | mo | a - unit of time (UCUM)
Binding: UnitsOfTime (required): A unit of time (units from UCUM).
...... frequency SOΣ 0..1 positiveInt Frequency times per period
ObligationsActorSource
SHALL:able-to-populate Producer from Dosage: MPD
...... frequencyMax Σ 0..1 positiveInt Event occurs up to frequencyMax times per period
...... period SOΣ 0..1 decimal Duration of time over which repetitions are to occur
ObligationsActorSource
SHALL:able-to-populate Producer from Dosage: MPD
...... periodMax Σ 0..1 decimal Upper limit of period (3-4 hours)
...... periodUnit SOΣ 0..1 code Unit of the period (e.g. day)
Binding: UnitsOfTime (required): A unit of time (units from UCUM).
ObligationsActorSource
SHALL:able-to-populate Producer from Dosage: MPD
...... dayOfWeek Σ 0..* code mon | tue | wed | thu | fri | sat | sun
Binding: DaysOfWeek (required)
...... timeOfDay Σ 0..* time Time of day for action
...... when Σ 0..* code Code for time period of occurrence
Binding: EventTiming (required): Real world event relating to the schedule.
...... offset Σ 0..1 unsignedInt Minutes from event (before or after)
..... code Σ 0..1 CodeableConcept A code for the timing schedule.
Binding: TimingAbbreviation (preferred): Code for a known / defined timing pattern.
.... Slices for asNeeded[x] Σ 0..1 Take "as needed" (for x)
Slice: Unordered, Closed by type:$this
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.
..... asNeededBoolean boolean
..... asNeededCodeableConcept CodeableConcept
..... asNeeded[x]:asNeededBoolean Σ 0..1 boolean Take "as needed" (for x)
.... site Σ 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.
.... route SOΣ 0..1 CodeableConcept Route of administration
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.
ObligationsActorSource
SHOULD:able-to-populate Producer from Dosage: MPD
.... method Σ 0..1 CodeableConcept Technique for administering medication
Binding: SNOMEDCTAdministrationMethodCodes (example): A coded concept describing the technique by which the medicine is administered.
.... doseAndRate SΣ 0..* Element Amount of medication administered
..... id 0..1 string Unique id for inter-element referencing
..... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
Constraints: ext-1
..... type Σ 0..1 CodeableConcept The kind of dose or rate specified
Binding: DoseAndRateType (example): The kind of dose or rate specified.
..... Slices for dose[x] SOΣ 0..1 Amount of medication per dose
Slice: Unordered, Closed by type:$this
ObligationsActorSource
SHALL:able-to-populate Producer from Dosage: MPD
...... doseRange Range
...... doseQuantity Quantity(SimpleQuantity)
...... dose[x]:doseQuantity OΣ 0..1 SimpleQuantity(4.0.1) Amount of medication per dose
ObligationsActorSource
SHALL:able-to-populate Producer from Dosage: MPD
..... rate[x] Σ 0..1 Amount of medication per unit of time
...... rateRatio Ratio
...... rateRange Range
...... rateQuantity Quantity(SimpleQuantity)
.... maxDosePerPeriod SΣ 0..1 Ratio Upper limit on medication per unit of time
.... maxDosePerAdministration Σ 0..1 SimpleQuantity(4.0.1) Upper limit on medication per administration
.... maxDosePerLifetime Σ 0..1 SimpleQuantity(4.0.1) Upper limit on medication per lifetime of the patient
... dispenseRequest S 1..1 BackboneElement Medication supply authorization
.... id 0..1 string Unique id for inter-element referencing
.... Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url
Constraints: ext-1
..... extension:prescribedQuantity SO 0..1 Quantity MedicationRequest - Prescribed Quantity
URL: https://profiles.ihe.net/PHARM/MPD/StructureDefinition/ihe-ext-medicationrequest-prescribedQuantity
Constraints: ext-1
ObligationsActorSource
SHOULD:able-to-populate Producer from MedicationRequest: MPD
..... extension:numberOfInstalments S 0..1 positiveInt IE MPD Number of Instalments
URL: https://hl7-ie.github.io/medication-events/fhir/StructureDefinition/ie-mpd-number-of-instalments
Constraints: ext-1
..... extension:doNotExtend 0..1 boolean IE MPD Do Not Extend
URL: https://hl7-ie.github.io/medication-events/fhir/StructureDefinition/ie-mpd-do-not-extend
Constraints: ext-1
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
Constraints: ext-1
.... initialFill 0..1 BackboneElement First fill details
..... id 0..1 string Unique id for inter-element referencing
..... extension 0..* Extension Additional content defined by implementations
Constraints: ext-1
..... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
Constraints: ext-1
..... quantity 0..1 SimpleQuantity(4.0.1) First fill quantity
..... duration 0..1 Duration First fill duration
.... dispenseInterval S 0..1 Duration Minimum period of time between dispenses
.... validityPeriod SO 0..1 Period Time period supply is authorized for
ObligationsActorSource
SHOULD:able-to-populate Producer from MedicationRequest: MPD
.... numberOfRepeatsAllowed S 0..1 unsignedInt Number of refills authorized
.... quantity S 1..1 SimpleQuantity(4.0.1) Amount of medication to supply per dispense
.... expectedSupplyDuration 0..1 Duration Number of days supply per dispense
.... performer 0..1 Reference(Organization) Intended dispenser
... substitution SO 0..1 BackboneElement Any restrictions on medication substitution. Substitution rules (including the definition of substitution) vary across different countries, and the semantics of this element should be interpreted accordingly.
ObligationsActorSource
SHOULD:able-to-populate Producer from MedicationRequest: MPD
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
Constraints: ext-1
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
Constraints: ext-1
.... Slices for allowed[x] S 1..1 Whether substitution is allowed or not
Slice: Unordered, Closed by type:$this
Binding: ActSubstanceAdminSubstitutionCode (3.0.0) (example): Identifies the type of substitution allowed.
..... allowedBoolean boolean
..... allowedCodeableConcept CodeableConcept
..... allowed[x]:allowedBoolean O 0..1 boolean Whether substitution is allowed or not
ObligationsActorSource
SHALL:able-to-populate Producer from MedicationRequest: MPD
.... reason S 0..1 CodeableConcept Why should (not) substitution be made
Binding: SubstanceAdminSubstitutionReason (3.0.0) (example): A coded concept describing the reason that a different medication should (or should not) be substituted from what was prescribed.
... priorPrescription 0..1 Reference(MedicationRequest) An order/prescription that is being replaced
... detectedIssue 0..* Reference(DetectedIssue) Clinical Issue with action
... eventHistory 0..* Reference(Provenance) A list of events of interest in the lifecycle

doco Documentation for this format

Terminology Bindings

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.performerType Base example Procedure Performer Role Codes 📍4.0.1 FHIR Std.
MedicationRequest.reasonCode Base example Condition/Problem/Diagnosis Codes 📍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.​timing.repeat.durationUnit Base required UnitsOfTime 📍4.0.1 FHIR Std.
MedicationRequest.dosageInstruction.​timing.repeat.periodUnit Base required UnitsOfTime 📍4.0.1 FHIR Std.
MedicationRequest.dosageInstruction.​timing.repeat.dayOfWeek Base required DaysOfWeek 📍4.0.1 FHIR Std.
MedicationRequest.dosageInstruction.​timing.repeat.when Base required EventTiming 📍4.0.1 FHIR Std.
MedicationRequest.dosageInstruction.​timing.code Base preferred TimingAbbreviation 📍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 example SNOMED CT Route Codes 📍4.0.1 FHIR Std.
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.4
MedicationRequest.substitution.​reason Base example SubstanceAdminSubstitutionReason 📍3.0.0 THO v7.4

Constraints

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 MedicationRequest.meta, MedicationRequest.implicitRules, MedicationRequest.language, MedicationRequest.text, MedicationRequest.extension, MedicationRequest.extension:offLabelUse, MedicationRequest.extension:effectiveDosePeriod, MedicationRequest.extension:renderedDosageInstruction, MedicationRequest.extension:ageAtPrescribing, MedicationRequest.extension:quantityInWordsAndFigures, MedicationRequest.modifierExtension, MedicationRequest.identifier, MedicationRequest.status, MedicationRequest.statusReason, MedicationRequest.intent, MedicationRequest.category, MedicationRequest.priority, MedicationRequest.doNotPerform, MedicationRequest.reported[x], MedicationRequest.medication[x], MedicationRequest.subject, MedicationRequest.encounter, MedicationRequest.supportingInformation, MedicationRequest.authoredOn, MedicationRequest.requester, MedicationRequest.performer, MedicationRequest.performerType, MedicationRequest.recorder, MedicationRequest.reasonCode, MedicationRequest.reasonReference, MedicationRequest.instantiatesCanonical, MedicationRequest.instantiatesUri, MedicationRequest.basedOn, MedicationRequest.groupIdentifier, MedicationRequest.courseOfTherapyType, MedicationRequest.insurance, MedicationRequest.note, MedicationRequest.note.extension, MedicationRequest.note.author[x], MedicationRequest.note.time, MedicationRequest.note.text, MedicationRequest.dosageInstruction, MedicationRequest.dosageInstruction.extension, MedicationRequest.dosageInstruction.modifierExtension, MedicationRequest.dosageInstruction.sequence, MedicationRequest.dosageInstruction.text, MedicationRequest.dosageInstruction.additionalInstruction, MedicationRequest.dosageInstruction.patientInstruction, MedicationRequest.dosageInstruction.timing, MedicationRequest.dosageInstruction.timing.extension, MedicationRequest.dosageInstruction.timing.modifierExtension, MedicationRequest.dosageInstruction.timing.event, MedicationRequest.dosageInstruction.timing.repeat, MedicationRequest.dosageInstruction.timing.repeat.extension, MedicationRequest.dosageInstruction.timing.repeat.bounds[x], MedicationRequest.dosageInstruction.timing.repeat.count, MedicationRequest.dosageInstruction.timing.repeat.countMax, MedicationRequest.dosageInstruction.timing.repeat.duration, MedicationRequest.dosageInstruction.timing.repeat.durationMax, MedicationRequest.dosageInstruction.timing.repeat.durationUnit, MedicationRequest.dosageInstruction.timing.repeat.frequency, MedicationRequest.dosageInstruction.timing.repeat.frequencyMax, MedicationRequest.dosageInstruction.timing.repeat.period, MedicationRequest.dosageInstruction.timing.repeat.periodMax, MedicationRequest.dosageInstruction.timing.repeat.periodUnit, MedicationRequest.dosageInstruction.timing.repeat.dayOfWeek, MedicationRequest.dosageInstruction.timing.repeat.timeOfDay, MedicationRequest.dosageInstruction.timing.repeat.when, MedicationRequest.dosageInstruction.timing.repeat.offset, MedicationRequest.dosageInstruction.timing.code, MedicationRequest.dosageInstruction.asNeeded[x], MedicationRequest.dosageInstruction.asNeeded[x]:asNeededBoolean, MedicationRequest.dosageInstruction.site, MedicationRequest.dosageInstruction.route, MedicationRequest.dosageInstruction.method, MedicationRequest.dosageInstruction.doseAndRate, MedicationRequest.dosageInstruction.doseAndRate.extension, MedicationRequest.dosageInstruction.doseAndRate.type, MedicationRequest.dosageInstruction.doseAndRate.dose[x], MedicationRequest.dosageInstruction.doseAndRate.dose[x]:doseQuantity, MedicationRequest.dosageInstruction.doseAndRate.rate[x], MedicationRequest.dosageInstruction.maxDosePerPeriod, MedicationRequest.dosageInstruction.maxDosePerAdministration, MedicationRequest.dosageInstruction.maxDosePerLifetime, MedicationRequest.dispenseRequest, MedicationRequest.dispenseRequest.extension, MedicationRequest.dispenseRequest.extension:prescribedQuantity, MedicationRequest.dispenseRequest.extension:numberOfInstalments, MedicationRequest.dispenseRequest.extension:doNotExtend, MedicationRequest.dispenseRequest.modifierExtension, MedicationRequest.dispenseRequest.initialFill, MedicationRequest.dispenseRequest.initialFill.extension, MedicationRequest.dispenseRequest.initialFill.modifierExtension, MedicationRequest.dispenseRequest.initialFill.quantity, MedicationRequest.dispenseRequest.initialFill.duration, MedicationRequest.dispenseRequest.dispenseInterval, MedicationRequest.dispenseRequest.validityPeriod, MedicationRequest.dispenseRequest.numberOfRepeatsAllowed, MedicationRequest.dispenseRequest.quantity, MedicationRequest.dispenseRequest.expectedSupplyDuration, MedicationRequest.dispenseRequest.performer, MedicationRequest.substitution, MedicationRequest.substitution.extension, MedicationRequest.substitution.modifierExtension, MedicationRequest.substitution.allowed[x], MedicationRequest.substitution.allowed[x]:allowedBoolean, MedicationRequest.substitution.reason, MedicationRequest.priorPrescription, MedicationRequest.detectedIssue, MedicationRequest.eventHistory All FHIR elements must have a @value or children hasValue() or (children().count() > id.count())
ext-1 error MedicationRequest.extension, MedicationRequest.extension:offLabelUse, MedicationRequest.extension:effectiveDosePeriod, MedicationRequest.extension:renderedDosageInstruction, MedicationRequest.extension:ageAtPrescribing, MedicationRequest.extension:quantityInWordsAndFigures, MedicationRequest.modifierExtension, MedicationRequest.note.extension, MedicationRequest.dosageInstruction.extension, MedicationRequest.dosageInstruction.modifierExtension, MedicationRequest.dosageInstruction.timing.extension, MedicationRequest.dosageInstruction.timing.modifierExtension, MedicationRequest.dosageInstruction.timing.repeat.extension, MedicationRequest.dosageInstruction.doseAndRate.extension, MedicationRequest.dispenseRequest.extension, MedicationRequest.dispenseRequest.extension:prescribedQuantity, MedicationRequest.dispenseRequest.extension:numberOfInstalments, MedicationRequest.dispenseRequest.extension:doNotExtend, MedicationRequest.dispenseRequest.modifierExtension, MedicationRequest.dispenseRequest.initialFill.extension, MedicationRequest.dispenseRequest.initialFill.modifierExtension, MedicationRequest.substitution.extension, MedicationRequest.substitution.modifierExtension Must have either extensions or value[x], not both extension.exists() != value.exists()
ie-rx-age-1 error MedicationRequest If the patient is under 12 years old at the date of prescribing, or the date of birth is not a full date, the patient's age SHALL be recorded on the prescription (HIQA EP 1.4.2; a legal requirement in Ireland) subject.resolve().ofType(Patient).birthDate.empty() or authoredOn.empty() or ((subject.resolve().ofType(Patient).birthDate.toString().length() = 10) and ((subject.resolve().ofType(Patient).birthDate + 12 years).toString() <= authoredOn.toString().substring(0,10))) or extension('https://hl7-ie.github.io/medication-events/fhir/StructureDefinition/ie-mpd-patient-age-at-prescribing').exists()
ie-rx-cd-1 error MedicationRequest A prescription for a controlled drug (any schedule of the Misuse of Drugs Regulations 2017) SHALL state the quantity in words and figures (HIQA EP 3.5.7.2) (medication.ofType(Reference).resolve().extension('https://profiles.ihe.net/PHARM/MPD/StructureDefinition/ihe-ext-medication-classification').value.ofType(CodeableConcept).coding.where(system = 'https://hl7-ie.github.io/medication-events/fhir/CodeSystem/ie-mpd-mda-schedule').exists()) implies extension('https://hl7-ie.github.io/medication-events/fhir/StructureDefinition/ie-mpd-quantity-in-words-and-figures').exists()
ie-rx-cd-2 error MedicationRequest A prescription for a Schedule 2 or 3 controlled drug SHALL have a validity period ending no later than 14 days after the date of issue, or, for an instalment prescription, no later than two months after (the final instalment) (HIQA EP 3.5.9.1; Misuse of Drugs Regulations 2017) (medication.ofType(Reference).resolve().extension('https://profiles.ihe.net/PHARM/MPD/StructureDefinition/ihe-ext-medication-classification').value.ofType(CodeableConcept).coding.where(system = 'https://hl7-ie.github.io/medication-events/fhir/CodeSystem/ie-mpd-mda-schedule' and (code = 'schedule-2' or code = 'schedule-3')).exists()) implies (dispenseRequest.validityPeriod.end.exists() and ((dispenseRequest.extension('https://hl7-ie.github.io/medication-events/fhir/StructureDefinition/ie-mpd-number-of-instalments').exists() and dispenseRequest.validityPeriod.end.toString().substring(0,10) <= (authoredOn + 2 months).toString().substring(0,10)) or (dispenseRequest.validityPeriod.end.toString().substring(0,10) <= (authoredOn + 14 days).toString().substring(0,10))))
ie-rx-cd-3 error MedicationRequest A prescription for a Schedule 2, 3 or 4 Part 1 controlled drug SHALL state the number of instalments and, when there is more than one, the interval between them (HIQA EP 3.5.12, 3.5.13; Misuse of Drugs Regulations 2017) (medication.ofType(Reference).resolve().extension('https://profiles.ihe.net/PHARM/MPD/StructureDefinition/ihe-ext-medication-classification').value.ofType(CodeableConcept).coding.where(system = 'https://hl7-ie.github.io/medication-events/fhir/CodeSystem/ie-mpd-mda-schedule' and (code = 'schedule-2' or code = 'schedule-3' or code = 'schedule-4-part-1')).exists()) implies (dispenseRequest.extension('https://hl7-ie.github.io/medication-events/fhir/StructureDefinition/ie-mpd-number-of-instalments').exists() and ((dispenseRequest.extension('https://hl7-ie.github.io/medication-events/fhir/StructureDefinition/ie-mpd-number-of-instalments').value.ofType(positiveInt) > 1) implies dispenseRequest.dispenseInterval.exists()))
ie-rx-dosage-1 error MedicationRequest.dosageInstruction A structured dosage SHALL be accompanied by a human-readable dosage text (safety fallback; HIQA EP 5.1 / 5.2) (timing.exists() or doseAndRate.exists()) implies text.exists()
ie-rx-status-1 error MedicationRequest A status reason SHALL be given unless the prescription item is active, completed or draft (HIQA EP 3.5.2.2 / 3.5.2.3) (status = 'active' or status = 'completed' or status = 'draft') or statusReason.exists()
ie-rx-subst-1 error MedicationRequest When substitution is not allowed ('Do Not Substitute'), a reason SHALL be given (HIQA EP 3.5.10.3) substitution.allowed.ofType(boolean).where($this = false).exists() implies substitution.reason.exists()
tim-1 error MedicationRequest.dosageInstruction.timing.repeat if there's a duration, there needs to be duration units duration.empty() or durationUnit.exists()
tim-2 error MedicationRequest.dosageInstruction.timing.repeat if there's a period, there needs to be period units period.empty() or periodUnit.exists()
tim-4 error MedicationRequest.dosageInstruction.timing.repeat duration SHALL be a non-negative value duration.exists() implies duration >= 0
tim-5 error MedicationRequest.dosageInstruction.timing.repeat period SHALL be a non-negative value period.exists() implies period >= 0
tim-6 error MedicationRequest.dosageInstruction.timing.repeat If there's a periodMax, there must be a period periodMax.empty() or period.exists()
tim-7 error MedicationRequest.dosageInstruction.timing.repeat If there's a durationMax, there must be a duration durationMax.empty() or duration.exists()
tim-8 error MedicationRequest.dosageInstruction.timing.repeat If there's a countMax, there must be a count countMax.empty() or count.exists()
tim-9 error MedicationRequest.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 MedicationRequest.dosageInstruction.timing.repeat If there's a timeOfDay, there cannot be a when, or vice versa timeOfDay.empty() or when.empty()

 

Other representations of profile: CSV, Excel, Schematron