IE Medication Events Implementation Guide
0.1.0 - Nostalgic IE (draft)
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
| Official URL: https://hl7-ie.github.io/medication-events/fhir/StructureDefinition/ie-mpd-medicationrequest-eprescription | Version: 0.1.0 | |||
| Draft as of 2026-10-09 | Computable Name: IEMpdMedicationRequestEPrescription | |||
An Irish electronic prescription (eP): one prescribed medication (HIQA EP 3.5 prescription item), derived from the HL7 Europe MPD MedicationRequest. One or more eP issued together as part of the same request form an Electronic Prescription Group (IEMpdElectronicPrescriptionGroup): they share the prescription group identifier in groupIdentifier and are exchanged with the patient, prescriber, facility, allergy statement, eDispensations and provenance.
Usages:
You can also check for usages in the FHIR IG Statistics
Description of Profiles, Differentials, Snapshots and how the different presentations work.
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
![]() |
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 | ||||||
![]() ![]() |
?!Σ | 0..1 | uri | A set of rules under which this content was created | ||||||
![]() ![]() |
Content/Rules for all slices | |||||||||
![]() ![]() ![]() |
S | 0..1 | (Complex) | Off-label use URL: https://profiles.ihe.net/PHARM/MPD/StructureDefinition/ihe-ext-offLabel Constraints: ext-1 | ||||||
![]() ![]() ![]() |
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 | ||||||
![]() ![]() ![]() |
O | 0..1 | markdown | Full representation of the dosage instructions URL: http://hl7.org/fhir/5.0/StructureDefinition/extension-MedicationRequest.renderedDosageInstruction Constraints: ext-1
| ||||||
![]() ![]() ![]() |
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 | ||||||
![]() ![]() ![]() |
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 | ||||||
![]() ![]() |
?! | 0..* | Extension | Extensions that cannot be ignored Constraints: ext-1 | ||||||
![]() ![]() |
SO | 1..* | Identifier | Prescription/prescribed item ID
| ||||||
![]() ![]() |
?!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.
| ||||||
![]() ![]() |
S | 0..1 | CodeableConcept | Reason for current status Binding: medicationRequest Status Reason Codes (example): Identifies the reasons for a given status. | ||||||
![]() ![]() |
?!Σ | 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 | ||||||
![]() ![]() |
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. | ||||||
![]() ![]() |
?!Σ | 0..1 | boolean | True if request is prohibiting action | ||||||
![]() ![]() |
SOΣ | 1..1 | Reference(IE MPD Medication (ePrescription/eDispensation)(0.1.0)) | Medication to be taken
| ||||||
![]() ![]() |
SOΣ | 1..1 | Reference(IE MPD Patient (ePrescription/eDispensation)(0.1.0)) | Who or group medication request is for
| ||||||
![]() ![]() |
S | 0..* | Reference(Resource) | Information to support ordering of the medication | ||||||
![]() ![]() |
SOΣ | 1..1 | dateTime | When request was initially authored
| ||||||
![]() ![]() |
SOΣ | 1..1 | Reference(IE MPD PractitionerRole(0.1.0) | IE MPD Practitioner(0.1.0)) | Who/What requested the Request
| ||||||
![]() ![]() |
S | 0..* | CodeableConcept | Reason or indication for this prescription Binding: Condition/Problem/DiagnosisCodes (example): A coded concept indicating why the medication was ordered.
| ||||||
![]() ![]() |
SΣ | 0..1 | Identifier | Prescription this is part of. Not needed if a presciption includes only one prescribed item. | ||||||
![]() ![]() |
S | 0..1 | CodeableConcept | Overall pattern of medication administration Binding: medicationRequest Course of Therapy Codes (example): Identifies the overall pattern of medication administratio. | ||||||
![]() ![]() |
S | 0..* | Annotation | Information about the prescription | ||||||
![]() ![]() ![]() |
OΣ | 1..1 | markdown | The annotation - text content (as markdown)
| ||||||
![]() ![]() |
SOC | 1..* | IEMpdDosage(0.1.0) | How the medication should be taken. Constraints: ie-rx-dosage-1
| ||||||
![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized Constraints: ext-1 | ||||||
![]() ![]() ![]() |
Σ | 0..1 | integer | The order of the dosage instructions | ||||||
![]() ![]() ![]() |
SΣ | 1..1 | string | Free text dosage instructions | ||||||
![]() ![]() ![]() |
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". | ||||||
![]() ![]() ![]() |
SOΣ | 0..1 | string | Patient or consumer oriented instructions
| ||||||
![]() ![]() ![]() |
SΣ | 0..1 | Timing | Administration schedule | ||||||
![]() ![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized Constraints: ext-1 | ||||||
![]() ![]() ![]() ![]() |
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
| ||||||
![]() ![]() ![]() ![]() ![]() |
SOΣ | 0..1 | positiveInt | Frequency times per period
| ||||||
![]() ![]() ![]() ![]() ![]() |
SOΣ | 0..1 | decimal | Duration of time over which repetitions are to occur
| ||||||
![]() ![]() ![]() ![]() ![]() |
SOΣ | 0..1 | code | Unit of the period (e.g. day) Binding: UnitsOfTime (required): A unit of time (units from UCUM).
| ||||||
![]() ![]() ![]() |
Σ | 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. | |||||||
![]() ![]() ![]() ![]() |
boolean | |||||||||
![]() ![]() ![]() ![]() |
CodeableConcept | |||||||||
![]() ![]() ![]() ![]() |
Σ | 0..1 | boolean | Take "as needed" (for x) | ||||||
![]() ![]() ![]() |
Σ | 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. | ||||||
![]() ![]() ![]() |
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.
| ||||||
![]() ![]() ![]() |
SΣ | 0..* | Element | Amount of medication administered | ||||||
![]() ![]() ![]() ![]() |
OΣ | 0..1 | Amount of medication per dose Slice: Unordered, Open by type:$this
| |||||||
![]() ![]() ![]() ![]() ![]() |
Range | |||||||||
![]() ![]() ![]() ![]() ![]() |
Quantity(SimpleQuantity) | |||||||||
![]() ![]() ![]() ![]() ![]() |
OΣ | 0..1 | SimpleQuantity(4.0.1) | Amount of medication per dose
| ||||||
![]() ![]() ![]() |
SΣ | 0..1 | Ratio | Upper limit on medication per unit of time | ||||||
![]() ![]() |
S | 1..1 | BackboneElement | Medication supply authorization | ||||||
![]() ![]() ![]() |
Content/Rules for all slices | |||||||||
![]() ![]() ![]() ![]() |
SO | 0..1 | Quantity | MedicationRequest - Prescribed Quantity URL: https://profiles.ihe.net/PHARM/MPD/StructureDefinition/ihe-ext-medicationrequest-prescribedQuantity Constraints: ext-1
| ||||||
![]() ![]() ![]() ![]() |
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 | ||||||
![]() ![]() ![]() ![]() |
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 | |||||||
![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized Constraints: ext-1 | ||||||
![]() ![]() ![]() |
S | 0..1 | Duration | Minimum period of time between dispenses | ||||||
![]() ![]() ![]() |
SO | 0..1 | Period | Time period supply is authorized for
| ||||||
![]() ![]() ![]() |
S | 0..1 | unsignedInt | Number of refills authorized | ||||||
![]() ![]() ![]() |
S | 1..1 | SimpleQuantity(4.0.1) | Amount of medication to supply per dispense | ||||||
![]() ![]() |
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.
| ||||||
![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized Constraints: ext-1 | ||||||
![]() ![]() ![]() |
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. | |||||||
![]() ![]() ![]() ![]() |
boolean | |||||||||
![]() ![]() ![]() ![]() |
CodeableConcept | |||||||||
![]() ![]() ![]() ![]() |
O | 0..1 | boolean | Whether substitution is allowed or not
| ||||||
![]() ![]() ![]() |
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. | ||||||
Documentation for this format | ||||||||||
| 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 |
| 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
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() |
|---|---|---|---|---|
![]() |
C | 0..* | MedicationRequestEuMpd(1.0.0) | Ordering of medication for patient or group |
![]() ![]() |
Content/Rules for all slices | |||
![]() ![]() ![]() |
S | 0..1 | OffLabel(1.0.0-comment-2) | Off-label use |
![]() ![]() ![]() |
S | 0..1 | 0.1.0 | R5: Period over which the medication is to be taken (new) |
![]() ![]() ![]() |
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 |
![]() ![]() ![]() |
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 |
![]() ![]() |
S | 1..* | Identifier | Prescription/prescribed item ID |
![]() ![]() |
S | 1..1 | code | active | on-hold | cancelled | completed | entered-in-error | stopped | draft | unknown |
![]() ![]() |
S | 0..1 | CodeableConcept | Reason for current status |
![]() ![]() |
1..1 | code | proposal | plan | order | original-order | reflex-order | filler-order | instance-order | option Required Pattern: order | |
![]() ![]() |
S | 0..* | CodeableConcept | Type of medication usage |
![]() ![]() |
S | 1..1 | Reference(IE MPD Medication (ePrescription/eDispensation)(0.1.0)) | Medication to be taken |
![]() ![]() |
S | 1..1 | Reference(IE MPD Patient (ePrescription/eDispensation)(0.1.0)) | Who or group medication request is for |
![]() ![]() |
S | 0..* | Reference(Resource) | Information to support ordering of the medication |
![]() ![]() |
S | 1..1 | dateTime | When request was initially authored |
![]() ![]() |
S | 1..1 | Reference(IE MPD PractitionerRole(0.1.0) | IE MPD Practitioner(0.1.0)) | Who/What requested the Request |
![]() ![]() |
S | 0..* | CodeableConcept | Reason or indication for this prescription |
![]() ![]() |
S | 0..1 | Identifier | Prescription this is part of. Not needed if a presciption includes only one prescribed item. |
![]() ![]() |
S | 0..1 | CodeableConcept | Overall pattern of medication administration |
![]() ![]() |
S | 0..* | Annotation | Information about the prescription |
![]() ![]() |
SC | 1..* | IEMpdDosage(0.1.0) | How the medication should be taken. |
![]() ![]() ![]() |
0..1 | integer | The order of the dosage instructions | |
![]() ![]() ![]() |
S | 1..1 | string | Free text dosage instructions |
![]() ![]() ![]() |
S | 0..* | CodeableConcept | Supplemental instruction or warnings to the patient - e.g. "with meals", "may cause drowsiness" |
![]() ![]() ![]() |
S | 0..1 | string | Patient or consumer oriented instructions |
![]() ![]() ![]() |
S | 0..1 | Timing | Administration schedule |
![]() ![]() ![]() ![]() |
||||
![]() ![]() ![]() ![]() ![]() |
S | 0..1 | positiveInt | Frequency times per period |
![]() ![]() ![]() ![]() ![]() |
S | 0..1 | decimal | Duration of time over which repetitions are to occur |
![]() ![]() ![]() ![]() ![]() |
S | 0..1 | code | Unit of the period (e.g. day) |
![]() ![]() ![]() |
0..1 | boolean, CodeableConcept | Take "as needed" (for x) | |
![]() ![]() ![]() |
0..1 | CodeableConcept | Body site to administer to | |
![]() ![]() ![]() |
S | 0..1 | CodeableConcept | Route of administration |
![]() ![]() ![]() |
S | 0..* | Element | Amount of medication administered |
![]() ![]() ![]() |
S | 0..1 | Ratio | Upper limit on medication per unit of time |
![]() ![]() |
S | 1..1 | BackboneElement | Medication supply authorization |
![]() ![]() ![]() |
Content/Rules for all slices | |||
![]() ![]() ![]() ![]() |
S | 0..1 | MedicationRequestPrescribedQuantity(1.0.0-comment-2) | MedicationRequest - Prescribed Quantity |
![]() ![]() ![]() ![]() |
S | 0..1 | positiveInt | IE MPD Number of Instalments URL: https://hl7-ie.github.io/medication-events/fhir/StructureDefinition/ie-mpd-number-of-instalments |
![]() ![]() ![]() ![]() |
0..1 | boolean | IE MPD Do Not Extend URL: https://hl7-ie.github.io/medication-events/fhir/StructureDefinition/ie-mpd-do-not-extend | |
![]() ![]() ![]() |
S | 0..1 | Duration | Minimum period of time between dispenses |
![]() ![]() ![]() |
S | 0..1 | Period | Time period supply is authorized for |
![]() ![]() ![]() |
S | 0..1 | unsignedInt | Number of refills authorized |
![]() ![]() ![]() |
S | 1..1 | SimpleQuantity(4.0.1) | Amount of medication to supply per dispense |
![]() ![]() |
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. |
![]() ![]() ![]() |
S | 1..1 | boolean, CodeableConcept | Whether substitution is allowed or not |
![]() ![]() ![]() |
S | 0..1 | CodeableConcept | Why should (not) substitution be made |
Documentation for this format | ||||
| 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()
|
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
![]() |
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 | ||||||
![]() ![]() |
Σ | 0..1 | id | Logical id of this artifact | ||||||
![]() ![]() |
Σ | 0..1 | Meta | Metadata about the resource | ||||||
![]() ![]() |
?!Σ | 0..1 | uri | A set of rules under which this content was created | ||||||
![]() ![]() |
0..1 | code | Language of the resource content Binding: CommonLanguages (preferred): A human language.
| |||||||
![]() ![]() |
0..1 | Narrative | Text summary of the resource, for human interpretation This profile does not constrain the narrative in regard to content, language, or traceability to data elements | |||||||
![]() ![]() |
0..* | Resource | Contained, inline Resources | |||||||
![]() ![]() |
0..* | Extension | Extension Slice: Unordered, Open by value:url Constraints: ext-1 | |||||||
![]() ![]() ![]() |
S | 0..1 | (Complex) | Off-label use URL: https://profiles.ihe.net/PHARM/MPD/StructureDefinition/ihe-ext-offLabel Constraints: ext-1 | ||||||
![]() ![]() ![]() |
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 | ||||||
![]() ![]() ![]() |
O | 0..1 | markdown | Full representation of the dosage instructions URL: http://hl7.org/fhir/5.0/StructureDefinition/extension-MedicationRequest.renderedDosageInstruction Constraints: ext-1
| ||||||
![]() ![]() ![]() |
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 | ||||||
![]() ![]() ![]() |
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 | ||||||
![]() ![]() |
?! | 0..* | Extension | Extensions that cannot be ignored Constraints: ext-1 | ||||||
![]() ![]() |
SO | 1..* | Identifier | Prescription/prescribed item ID
| ||||||
![]() ![]() |
?!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.
| ||||||
![]() ![]() |
S | 0..1 | CodeableConcept | Reason for current status Binding: medicationRequest Status Reason Codes (example): Identifies the reasons for a given status. | ||||||
![]() ![]() |
?!Σ | 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 | ||||||
![]() ![]() |
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. | ||||||
![]() ![]() |
Σ | 0..1 | code | routine | urgent | asap | stat Binding: RequestPriority (required): Identifies the level of importance to be assigned to actioning the request. | ||||||
![]() ![]() |
?!Σ | 0..1 | boolean | True if request is prohibiting action | ||||||
![]() ![]() |
Σ | 0..1 | Reported rather than primary record | |||||||
![]() ![]() ![]() |
boolean | |||||||||
![]() ![]() ![]() |
Reference(Patient | Practitioner | PractitionerRole | RelatedPerson | Organization) | |||||||||
![]() ![]() |
SOΣ | 1..1 | Reference(IE MPD Medication (ePrescription/eDispensation)(0.1.0)) | Medication to be taken
| ||||||
![]() ![]() |
SOΣ | 1..1 | Reference(IE MPD Patient (ePrescription/eDispensation)(0.1.0)) | Who or group medication request is for
| ||||||
![]() ![]() |
0..1 | Reference(Encounter) | Encounter created as part of encounter/admission/stay | |||||||
![]() ![]() |
S | 0..* | Reference(Resource) | Information to support ordering of the medication | ||||||
![]() ![]() |
SOΣ | 1..1 | dateTime | When request was initially authored
| ||||||
![]() ![]() |
SOΣ | 1..1 | Reference(IE MPD PractitionerRole(0.1.0) | IE MPD Practitioner(0.1.0)) | Who/What requested the Request
| ||||||
![]() ![]() |
0..1 | Reference(Practitioner | PractitionerRole | Organization | Patient | Device | RelatedPerson | CareTeam) | Intended performer of administration | |||||||
![]() ![]() |
Σ | 0..1 | CodeableConcept | Desired kind of performer of the medication administration Binding: ProcedurePerformerRoleCodes (example): Identifies the type of individual that is desired to administer the medication. | ||||||
![]() ![]() |
0..1 | Reference(Practitioner | PractitionerRole) | Person who entered the request | |||||||
![]() ![]() |
S | 0..* | CodeableConcept | Reason or indication for this prescription Binding: Condition/Problem/DiagnosisCodes (example): A coded concept indicating why the medication was ordered.
| ||||||
![]() ![]() |
0..* | Reference(Condition | Observation) | Condition or observation that supports this prescription | |||||||
![]() ![]() |
Σ | 0..* | canonical() | Instantiates FHIR protocol or definition | ||||||
![]() ![]() |
Σ | 0..* | uri | Instantiates external protocol or definition | ||||||
![]() ![]() |
Σ | 0..* | Reference(CarePlan | MedicationRequest | ServiceRequest | ImmunizationRecommendation) | What request fulfills | ||||||
![]() ![]() |
SΣ | 0..1 | Identifier | Prescription this is part of. Not needed if a presciption includes only one prescribed item. | ||||||
![]() ![]() |
S | 0..1 | CodeableConcept | Overall pattern of medication administration Binding: medicationRequest Course of Therapy Codes (example): Identifies the overall pattern of medication administratio. | ||||||
![]() ![]() |
0..* | Reference(Coverage | ClaimResponse) | Associated insurance coverage | |||||||
![]() ![]() |
S | 0..* | Annotation | Information about the prescription | ||||||
![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||||
![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url Constraints: ext-1 | |||||||
![]() ![]() ![]() |
Σ | 0..1 | Individual responsible for the annotation | |||||||
![]() ![]() ![]() ![]() |
Reference(Practitioner | Patient | RelatedPerson | Organization) | |||||||||
![]() ![]() ![]() ![]() |
string | |||||||||
![]() ![]() ![]() |
Σ | 0..1 | dateTime | When the annotation was made | ||||||
![]() ![]() ![]() |
OΣ | 1..1 | markdown | The annotation - text content (as markdown)
| ||||||
![]() ![]() |
SOC | 1..* | IEMpdDosage(0.1.0) | How the medication should be taken. Constraints: ie-rx-dosage-1
| ||||||
![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||||
![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url Constraints: ext-1 | |||||||
![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized Constraints: ext-1 | ||||||
![]() ![]() ![]() |
Σ | 0..1 | integer | The order of the dosage instructions | ||||||
![]() ![]() ![]() |
SΣ | 1..1 | string | Free text dosage instructions | ||||||
![]() ![]() ![]() |
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". | ||||||
![]() ![]() ![]() |
SOΣ | 0..1 | string | Patient or consumer oriented instructions
| ||||||
![]() ![]() ![]() |
SΣ | 0..1 | Timing | Administration schedule | ||||||
![]() ![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||||
![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url Constraints: ext-1 | |||||||
![]() ![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized Constraints: ext-1 | ||||||
![]() ![]() ![]() ![]() |
Σ | 0..* | dateTime | When the event occurs | ||||||
![]() ![]() ![]() ![]() |
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
| ||||||
![]() ![]() ![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||||
![]() ![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url Constraints: ext-1 | |||||||
![]() ![]() ![]() ![]() ![]() |
OΣ | 0..1 | Length/Range of lengths, or (Start and/or end) limits
| |||||||
![]() ![]() ![]() ![]() ![]() ![]() |
Duration | |||||||||
![]() ![]() ![]() ![]() ![]() ![]() |
Range | |||||||||
![]() ![]() ![]() ![]() ![]() ![]() |
Period | |||||||||
![]() ![]() ![]() ![]() ![]() |
Σ | 0..1 | positiveInt | Number of times to repeat | ||||||
![]() ![]() ![]() ![]() ![]() |
Σ | 0..1 | positiveInt | Maximum number of times to repeat | ||||||
![]() ![]() ![]() ![]() ![]() |
Σ | 0..1 | decimal | Duration of the treatment | ||||||
![]() ![]() ![]() ![]() ![]() |
Σ | 0..1 | decimal | How long when it happens (Max) | ||||||
![]() ![]() ![]() ![]() ![]() |
Σ | 0..1 | code | s | min | h | d | wk | mo | a - unit of time (UCUM) Binding: UnitsOfTime (required): A unit of time (units from UCUM). | ||||||
![]() ![]() ![]() ![]() ![]() |
SOΣ | 0..1 | positiveInt | Frequency times per period
| ||||||
![]() ![]() ![]() ![]() ![]() |
Σ | 0..1 | positiveInt | Event occurs up to frequencyMax times per period | ||||||
![]() ![]() ![]() ![]() ![]() |
SOΣ | 0..1 | decimal | Duration of time over which repetitions are to occur
| ||||||
![]() ![]() ![]() ![]() ![]() |
Σ | 0..1 | decimal | Upper limit of period (3-4 hours) | ||||||
![]() ![]() ![]() ![]() ![]() |
SOΣ | 0..1 | code | Unit of the period (e.g. day) Binding: UnitsOfTime (required): A unit of time (units from UCUM).
| ||||||
![]() ![]() ![]() ![]() ![]() |
Σ | 0..* | code | mon | tue | wed | thu | fri | sat | sun Binding: DaysOfWeek (required) | ||||||
![]() ![]() ![]() ![]() ![]() |
Σ | 0..* | time | Time of day for action | ||||||
![]() ![]() ![]() ![]() ![]() |
Σ | 0..* | code | Code for time period of occurrence Binding: EventTiming (required): Real world event relating to the schedule. | ||||||
![]() ![]() ![]() ![]() ![]() |
Σ | 0..1 | unsignedInt | Minutes from event (before or after) | ||||||
![]() ![]() ![]() ![]() |
Σ | 0..1 | CodeableConcept | A code for the timing schedule. Binding: TimingAbbreviation (preferred): Code for a known / defined timing pattern. | ||||||
![]() ![]() ![]() |
Σ | 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. | |||||||
![]() ![]() ![]() ![]() |
boolean | |||||||||
![]() ![]() ![]() ![]() |
CodeableConcept | |||||||||
![]() ![]() ![]() ![]() |
Σ | 0..1 | boolean | Take "as needed" (for x) | ||||||
![]() ![]() ![]() |
Σ | 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. | ||||||
![]() ![]() ![]() |
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.
| ||||||
![]() ![]() ![]() |
Σ | 0..1 | CodeableConcept | Technique for administering medication Binding: SNOMEDCTAdministrationMethodCodes (example): A coded concept describing the technique by which the medicine is administered. | ||||||
![]() ![]() ![]() |
SΣ | 0..* | Element | Amount of medication administered | ||||||
![]() ![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||||
![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url Constraints: ext-1 | |||||||
![]() ![]() ![]() ![]() |
Σ | 0..1 | CodeableConcept | The kind of dose or rate specified Binding: DoseAndRateType (example): The kind of dose or rate specified. | ||||||
![]() ![]() ![]() ![]() |
OΣ | 0..1 | Amount of medication per dose Slice: Unordered, Open by type:$this
| |||||||
![]() ![]() ![]() ![]() ![]() |
Range | |||||||||
![]() ![]() ![]() ![]() ![]() |
Quantity(SimpleQuantity) | |||||||||
![]() ![]() ![]() ![]() ![]() |
OΣ | 0..1 | SimpleQuantity(4.0.1) | Amount of medication per dose
| ||||||
![]() ![]() ![]() ![]() |
Σ | 0..1 | Amount of medication per unit of time | |||||||
![]() ![]() ![]() ![]() ![]() |
Ratio | |||||||||
![]() ![]() ![]() ![]() ![]() |
Range | |||||||||
![]() ![]() ![]() ![]() ![]() |
Quantity(SimpleQuantity) | |||||||||
![]() ![]() ![]() |
SΣ | 0..1 | Ratio | Upper limit on medication per unit of time | ||||||
![]() ![]() ![]() |
Σ | 0..1 | SimpleQuantity(4.0.1) | Upper limit on medication per administration | ||||||
![]() ![]() ![]() |
Σ | 0..1 | SimpleQuantity(4.0.1) | Upper limit on medication per lifetime of the patient | ||||||
![]() ![]() |
S | 1..1 | BackboneElement | Medication supply authorization | ||||||
![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||||
![]() ![]() ![]() |
0..* | Extension | Extension Slice: Unordered, Open by value:url Constraints: ext-1 | |||||||
![]() ![]() ![]() ![]() |
SO | 0..1 | Quantity | MedicationRequest - Prescribed Quantity URL: https://profiles.ihe.net/PHARM/MPD/StructureDefinition/ihe-ext-medicationrequest-prescribedQuantity Constraints: ext-1
| ||||||
![]() ![]() ![]() ![]() |
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 | ||||||
![]() ![]() ![]() ![]() |
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 | |||||||
![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized Constraints: ext-1 | ||||||
![]() ![]() ![]() |
0..1 | BackboneElement | First fill details | |||||||
![]() ![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||||
![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Constraints: ext-1 | |||||||
![]() ![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized Constraints: ext-1 | ||||||
![]() ![]() ![]() ![]() |
0..1 | SimpleQuantity(4.0.1) | First fill quantity | |||||||
![]() ![]() ![]() ![]() |
0..1 | Duration | First fill duration | |||||||
![]() ![]() ![]() |
S | 0..1 | Duration | Minimum period of time between dispenses | ||||||
![]() ![]() ![]() |
SO | 0..1 | Period | Time period supply is authorized for
| ||||||
![]() ![]() ![]() |
S | 0..1 | unsignedInt | Number of refills authorized | ||||||
![]() ![]() ![]() |
S | 1..1 | SimpleQuantity(4.0.1) | Amount of medication to supply per dispense | ||||||
![]() ![]() ![]() |
0..1 | Duration | Number of days supply per dispense | |||||||
![]() ![]() ![]() |
0..1 | Reference(Organization) | Intended dispenser | |||||||
![]() ![]() |
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.
| ||||||
![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||||
![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Constraints: ext-1 | |||||||
![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized Constraints: ext-1 | ||||||
![]() ![]() ![]() |
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. | |||||||
![]() ![]() ![]() ![]() |
boolean | |||||||||
![]() ![]() ![]() ![]() |
CodeableConcept | |||||||||
![]() ![]() ![]() ![]() |
O | 0..1 | boolean | Whether substitution is allowed or not
| ||||||
![]() ![]() ![]() |
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. | ||||||
![]() ![]() |
0..1 | Reference(MedicationRequest) | An order/prescription that is being replaced | |||||||
![]() ![]() |
0..* | Reference(DetectedIssue) | Clinical Issue with action | |||||||
![]() ![]() |
0..* | Reference(Provenance) | A list of events of interest in the lifecycle | |||||||
Documentation for this format | ||||||||||
| 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 |
| 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()
|
This structure is derived from MedicationRequestEuMpd
Summary
Mandatory: 5 elements
Must-Support: 38 elements
Structures
This structure refers to these other structures:
Extensions
This structure refers to these extensions:
Key Elements View
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
![]() |
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 | ||||||
![]() ![]() |
?!Σ | 0..1 | uri | A set of rules under which this content was created | ||||||
![]() ![]() |
Content/Rules for all slices | |||||||||
![]() ![]() ![]() |
S | 0..1 | (Complex) | Off-label use URL: https://profiles.ihe.net/PHARM/MPD/StructureDefinition/ihe-ext-offLabel Constraints: ext-1 | ||||||
![]() ![]() ![]() |
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 | ||||||
![]() ![]() ![]() |
O | 0..1 | markdown | Full representation of the dosage instructions URL: http://hl7.org/fhir/5.0/StructureDefinition/extension-MedicationRequest.renderedDosageInstruction Constraints: ext-1
| ||||||
![]() ![]() ![]() |
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 | ||||||
![]() ![]() ![]() |
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 | ||||||
![]() ![]() |
?! | 0..* | Extension | Extensions that cannot be ignored Constraints: ext-1 | ||||||
![]() ![]() |
SO | 1..* | Identifier | Prescription/prescribed item ID
| ||||||
![]() ![]() |
?!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.
| ||||||
![]() ![]() |
S | 0..1 | CodeableConcept | Reason for current status Binding: medicationRequest Status Reason Codes (example): Identifies the reasons for a given status. | ||||||
![]() ![]() |
?!Σ | 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 | ||||||
![]() ![]() |
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. | ||||||
![]() ![]() |
?!Σ | 0..1 | boolean | True if request is prohibiting action | ||||||
![]() ![]() |
SOΣ | 1..1 | Reference(IE MPD Medication (ePrescription/eDispensation)(0.1.0)) | Medication to be taken
| ||||||
![]() ![]() |
SOΣ | 1..1 | Reference(IE MPD Patient (ePrescription/eDispensation)(0.1.0)) | Who or group medication request is for
| ||||||
![]() ![]() |
S | 0..* | Reference(Resource) | Information to support ordering of the medication | ||||||
![]() ![]() |
SOΣ | 1..1 | dateTime | When request was initially authored
| ||||||
![]() ![]() |
SOΣ | 1..1 | Reference(IE MPD PractitionerRole(0.1.0) | IE MPD Practitioner(0.1.0)) | Who/What requested the Request
| ||||||
![]() ![]() |
S | 0..* | CodeableConcept | Reason or indication for this prescription Binding: Condition/Problem/DiagnosisCodes (example): A coded concept indicating why the medication was ordered.
| ||||||
![]() ![]() |
SΣ | 0..1 | Identifier | Prescription this is part of. Not needed if a presciption includes only one prescribed item. | ||||||
![]() ![]() |
S | 0..1 | CodeableConcept | Overall pattern of medication administration Binding: medicationRequest Course of Therapy Codes (example): Identifies the overall pattern of medication administratio. | ||||||
![]() ![]() |
S | 0..* | Annotation | Information about the prescription | ||||||
![]() ![]() ![]() |
OΣ | 1..1 | markdown | The annotation - text content (as markdown)
| ||||||
![]() ![]() |
SOC | 1..* | IEMpdDosage(0.1.0) | How the medication should be taken. Constraints: ie-rx-dosage-1
| ||||||
![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized Constraints: ext-1 | ||||||
![]() ![]() ![]() |
Σ | 0..1 | integer | The order of the dosage instructions | ||||||
![]() ![]() ![]() |
SΣ | 1..1 | string | Free text dosage instructions | ||||||
![]() ![]() ![]() |
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". | ||||||
![]() ![]() ![]() |
SOΣ | 0..1 | string | Patient or consumer oriented instructions
| ||||||
![]() ![]() ![]() |
SΣ | 0..1 | Timing | Administration schedule | ||||||
![]() ![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized Constraints: ext-1 | ||||||
![]() ![]() ![]() ![]() |
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
| ||||||
![]() ![]() ![]() ![]() ![]() |
SOΣ | 0..1 | positiveInt | Frequency times per period
| ||||||
![]() ![]() ![]() ![]() ![]() |
SOΣ | 0..1 | decimal | Duration of time over which repetitions are to occur
| ||||||
![]() ![]() ![]() ![]() ![]() |
SOΣ | 0..1 | code | Unit of the period (e.g. day) Binding: UnitsOfTime (required): A unit of time (units from UCUM).
| ||||||
![]() ![]() ![]() |
Σ | 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. | |||||||
![]() ![]() ![]() ![]() |
boolean | |||||||||
![]() ![]() ![]() ![]() |
CodeableConcept | |||||||||
![]() ![]() ![]() ![]() |
Σ | 0..1 | boolean | Take "as needed" (for x) | ||||||
![]() ![]() ![]() |
Σ | 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. | ||||||
![]() ![]() ![]() |
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.
| ||||||
![]() ![]() ![]() |
SΣ | 0..* | Element | Amount of medication administered | ||||||
![]() ![]() ![]() ![]() |
OΣ | 0..1 | Amount of medication per dose Slice: Unordered, Open by type:$this
| |||||||
![]() ![]() ![]() ![]() ![]() |
Range | |||||||||
![]() ![]() ![]() ![]() ![]() |
Quantity(SimpleQuantity) | |||||||||
![]() ![]() ![]() ![]() ![]() |
OΣ | 0..1 | SimpleQuantity(4.0.1) | Amount of medication per dose
| ||||||
![]() ![]() ![]() |
SΣ | 0..1 | Ratio | Upper limit on medication per unit of time | ||||||
![]() ![]() |
S | 1..1 | BackboneElement | Medication supply authorization | ||||||
![]() ![]() ![]() |
Content/Rules for all slices | |||||||||
![]() ![]() ![]() ![]() |
SO | 0..1 | Quantity | MedicationRequest - Prescribed Quantity URL: https://profiles.ihe.net/PHARM/MPD/StructureDefinition/ihe-ext-medicationrequest-prescribedQuantity Constraints: ext-1
| ||||||
![]() ![]() ![]() ![]() |
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 | ||||||
![]() ![]() ![]() ![]() |
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 | |||||||
![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized Constraints: ext-1 | ||||||
![]() ![]() ![]() |
S | 0..1 | Duration | Minimum period of time between dispenses | ||||||
![]() ![]() ![]() |
SO | 0..1 | Period | Time period supply is authorized for
| ||||||
![]() ![]() ![]() |
S | 0..1 | unsignedInt | Number of refills authorized | ||||||
![]() ![]() ![]() |
S | 1..1 | SimpleQuantity(4.0.1) | Amount of medication to supply per dispense | ||||||
![]() ![]() |
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.
| ||||||
![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized Constraints: ext-1 | ||||||
![]() ![]() ![]() |
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. | |||||||
![]() ![]() ![]() ![]() |
boolean | |||||||||
![]() ![]() ![]() ![]() |
CodeableConcept | |||||||||
![]() ![]() ![]() ![]() |
O | 0..1 | boolean | Whether substitution is allowed or not
| ||||||
![]() ![]() ![]() |
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. | ||||||
Documentation for this format | ||||||||||
| 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 |
| 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
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() |
|---|---|---|---|---|
![]() |
C | 0..* | MedicationRequestEuMpd(1.0.0) | Ordering of medication for patient or group |
![]() ![]() |
Content/Rules for all slices | |||
![]() ![]() ![]() |
S | 0..1 | OffLabel(1.0.0-comment-2) | Off-label use |
![]() ![]() ![]() |
S | 0..1 | 0.1.0 | R5: Period over which the medication is to be taken (new) |
![]() ![]() ![]() |
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 |
![]() ![]() ![]() |
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 |
![]() ![]() |
S | 1..* | Identifier | Prescription/prescribed item ID |
![]() ![]() |
S | 1..1 | code | active | on-hold | cancelled | completed | entered-in-error | stopped | draft | unknown |
![]() ![]() |
S | 0..1 | CodeableConcept | Reason for current status |
![]() ![]() |
1..1 | code | proposal | plan | order | original-order | reflex-order | filler-order | instance-order | option Required Pattern: order | |
![]() ![]() |
S | 0..* | CodeableConcept | Type of medication usage |
![]() ![]() |
S | 1..1 | Reference(IE MPD Medication (ePrescription/eDispensation)(0.1.0)) | Medication to be taken |
![]() ![]() |
S | 1..1 | Reference(IE MPD Patient (ePrescription/eDispensation)(0.1.0)) | Who or group medication request is for |
![]() ![]() |
S | 0..* | Reference(Resource) | Information to support ordering of the medication |
![]() ![]() |
S | 1..1 | dateTime | When request was initially authored |
![]() ![]() |
S | 1..1 | Reference(IE MPD PractitionerRole(0.1.0) | IE MPD Practitioner(0.1.0)) | Who/What requested the Request |
![]() ![]() |
S | 0..* | CodeableConcept | Reason or indication for this prescription |
![]() ![]() |
S | 0..1 | Identifier | Prescription this is part of. Not needed if a presciption includes only one prescribed item. |
![]() ![]() |
S | 0..1 | CodeableConcept | Overall pattern of medication administration |
![]() ![]() |
S | 0..* | Annotation | Information about the prescription |
![]() ![]() |
SC | 1..* | IEMpdDosage(0.1.0) | How the medication should be taken. |
![]() ![]() ![]() |
0..1 | integer | The order of the dosage instructions | |
![]() ![]() ![]() |
S | 1..1 | string | Free text dosage instructions |
![]() ![]() ![]() |
S | 0..* | CodeableConcept | Supplemental instruction or warnings to the patient - e.g. "with meals", "may cause drowsiness" |
![]() ![]() ![]() |
S | 0..1 | string | Patient or consumer oriented instructions |
![]() ![]() ![]() |
S | 0..1 | Timing | Administration schedule |
![]() ![]() ![]() ![]() |
||||
![]() ![]() ![]() ![]() ![]() |
S | 0..1 | positiveInt | Frequency times per period |
![]() ![]() ![]() ![]() ![]() |
S | 0..1 | decimal | Duration of time over which repetitions are to occur |
![]() ![]() ![]() ![]() ![]() |
S | 0..1 | code | Unit of the period (e.g. day) |
![]() ![]() ![]() |
0..1 | boolean, CodeableConcept | Take "as needed" (for x) | |
![]() ![]() ![]() |
0..1 | CodeableConcept | Body site to administer to | |
![]() ![]() ![]() |
S | 0..1 | CodeableConcept | Route of administration |
![]() ![]() ![]() |
S | 0..* | Element | Amount of medication administered |
![]() ![]() ![]() |
S | 0..1 | Ratio | Upper limit on medication per unit of time |
![]() ![]() |
S | 1..1 | BackboneElement | Medication supply authorization |
![]() ![]() ![]() |
Content/Rules for all slices | |||
![]() ![]() ![]() ![]() |
S | 0..1 | MedicationRequestPrescribedQuantity(1.0.0-comment-2) | MedicationRequest - Prescribed Quantity |
![]() ![]() ![]() ![]() |
S | 0..1 | positiveInt | IE MPD Number of Instalments URL: https://hl7-ie.github.io/medication-events/fhir/StructureDefinition/ie-mpd-number-of-instalments |
![]() ![]() ![]() ![]() |
0..1 | boolean | IE MPD Do Not Extend URL: https://hl7-ie.github.io/medication-events/fhir/StructureDefinition/ie-mpd-do-not-extend | |
![]() ![]() ![]() |
S | 0..1 | Duration | Minimum period of time between dispenses |
![]() ![]() ![]() |
S | 0..1 | Period | Time period supply is authorized for |
![]() ![]() ![]() |
S | 0..1 | unsignedInt | Number of refills authorized |
![]() ![]() ![]() |
S | 1..1 | SimpleQuantity(4.0.1) | Amount of medication to supply per dispense |
![]() ![]() |
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. |
![]() ![]() ![]() |
S | 1..1 | boolean, CodeableConcept | Whether substitution is allowed or not |
![]() ![]() ![]() |
S | 0..1 | CodeableConcept | Why should (not) substitution be made |
Documentation for this format | ||||
| 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
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
![]() |
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 | ||||||
![]() ![]() |
Σ | 0..1 | id | Logical id of this artifact | ||||||
![]() ![]() |
Σ | 0..1 | Meta | Metadata about the resource | ||||||
![]() ![]() |
?!Σ | 0..1 | uri | A set of rules under which this content was created | ||||||
![]() ![]() |
0..1 | code | Language of the resource content Binding: CommonLanguages (preferred): A human language.
| |||||||
![]() ![]() |
0..1 | Narrative | Text summary of the resource, for human interpretation This profile does not constrain the narrative in regard to content, language, or traceability to data elements | |||||||
![]() ![]() |
0..* | Resource | Contained, inline Resources | |||||||
![]() ![]() |
0..* | Extension | Extension Slice: Unordered, Open by value:url Constraints: ext-1 | |||||||
![]() ![]() ![]() |
S | 0..1 | (Complex) | Off-label use URL: https://profiles.ihe.net/PHARM/MPD/StructureDefinition/ihe-ext-offLabel Constraints: ext-1 | ||||||
![]() ![]() ![]() |
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 | ||||||
![]() ![]() ![]() |
O | 0..1 | markdown | Full representation of the dosage instructions URL: http://hl7.org/fhir/5.0/StructureDefinition/extension-MedicationRequest.renderedDosageInstruction Constraints: ext-1
| ||||||
![]() ![]() ![]() |
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 | ||||||
![]() ![]() ![]() |
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 | ||||||
![]() ![]() |
?! | 0..* | Extension | Extensions that cannot be ignored Constraints: ext-1 | ||||||
![]() ![]() |
SO | 1..* | Identifier | Prescription/prescribed item ID
| ||||||
![]() ![]() |
?!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.
| ||||||
![]() ![]() |
S | 0..1 | CodeableConcept | Reason for current status Binding: medicationRequest Status Reason Codes (example): Identifies the reasons for a given status. | ||||||
![]() ![]() |
?!Σ | 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 | ||||||
![]() ![]() |
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. | ||||||
![]() ![]() |
Σ | 0..1 | code | routine | urgent | asap | stat Binding: RequestPriority (required): Identifies the level of importance to be assigned to actioning the request. | ||||||
![]() ![]() |
?!Σ | 0..1 | boolean | True if request is prohibiting action | ||||||
![]() ![]() |
Σ | 0..1 | Reported rather than primary record | |||||||
![]() ![]() ![]() |
boolean | |||||||||
![]() ![]() ![]() |
Reference(Patient | Practitioner | PractitionerRole | RelatedPerson | Organization) | |||||||||
![]() ![]() |
SOΣ | 1..1 | Reference(IE MPD Medication (ePrescription/eDispensation)(0.1.0)) | Medication to be taken
| ||||||
![]() ![]() |
SOΣ | 1..1 | Reference(IE MPD Patient (ePrescription/eDispensation)(0.1.0)) | Who or group medication request is for
| ||||||
![]() ![]() |
0..1 | Reference(Encounter) | Encounter created as part of encounter/admission/stay | |||||||
![]() ![]() |
S | 0..* | Reference(Resource) | Information to support ordering of the medication | ||||||
![]() ![]() |
SOΣ | 1..1 | dateTime | When request was initially authored
| ||||||
![]() ![]() |
SOΣ | 1..1 | Reference(IE MPD PractitionerRole(0.1.0) | IE MPD Practitioner(0.1.0)) | Who/What requested the Request
| ||||||
![]() ![]() |
0..1 | Reference(Practitioner | PractitionerRole | Organization | Patient | Device | RelatedPerson | CareTeam) | Intended performer of administration | |||||||
![]() ![]() |
Σ | 0..1 | CodeableConcept | Desired kind of performer of the medication administration Binding: ProcedurePerformerRoleCodes (example): Identifies the type of individual that is desired to administer the medication. | ||||||
![]() ![]() |
0..1 | Reference(Practitioner | PractitionerRole) | Person who entered the request | |||||||
![]() ![]() |
S | 0..* | CodeableConcept | Reason or indication for this prescription Binding: Condition/Problem/DiagnosisCodes (example): A coded concept indicating why the medication was ordered.
| ||||||
![]() ![]() |
0..* | Reference(Condition | Observation) | Condition or observation that supports this prescription | |||||||
![]() ![]() |
Σ | 0..* | canonical() | Instantiates FHIR protocol or definition | ||||||
![]() ![]() |
Σ | 0..* | uri | Instantiates external protocol or definition | ||||||
![]() ![]() |
Σ | 0..* | Reference(CarePlan | MedicationRequest | ServiceRequest | ImmunizationRecommendation) | What request fulfills | ||||||
![]() ![]() |
SΣ | 0..1 | Identifier | Prescription this is part of. Not needed if a presciption includes only one prescribed item. | ||||||
![]() ![]() |
S | 0..1 | CodeableConcept | Overall pattern of medication administration Binding: medicationRequest Course of Therapy Codes (example): Identifies the overall pattern of medication administratio. | ||||||
![]() ![]() |
0..* | Reference(Coverage | ClaimResponse) | Associated insurance coverage | |||||||
![]() ![]() |
S | 0..* | Annotation | Information about the prescription | ||||||
![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||||
![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url Constraints: ext-1 | |||||||
![]() ![]() ![]() |
Σ | 0..1 | Individual responsible for the annotation | |||||||
![]() ![]() ![]() ![]() |
Reference(Practitioner | Patient | RelatedPerson | Organization) | |||||||||
![]() ![]() ![]() ![]() |
string | |||||||||
![]() ![]() ![]() |
Σ | 0..1 | dateTime | When the annotation was made | ||||||
![]() ![]() ![]() |
OΣ | 1..1 | markdown | The annotation - text content (as markdown)
| ||||||
![]() ![]() |
SOC | 1..* | IEMpdDosage(0.1.0) | How the medication should be taken. Constraints: ie-rx-dosage-1
| ||||||
![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||||
![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url Constraints: ext-1 | |||||||
![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized Constraints: ext-1 | ||||||
![]() ![]() ![]() |
Σ | 0..1 | integer | The order of the dosage instructions | ||||||
![]() ![]() ![]() |
SΣ | 1..1 | string | Free text dosage instructions | ||||||
![]() ![]() ![]() |
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". | ||||||
![]() ![]() ![]() |
SOΣ | 0..1 | string | Patient or consumer oriented instructions
| ||||||
![]() ![]() ![]() |
SΣ | 0..1 | Timing | Administration schedule | ||||||
![]() ![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||||
![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url Constraints: ext-1 | |||||||
![]() ![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized Constraints: ext-1 | ||||||
![]() ![]() ![]() ![]() |
Σ | 0..* | dateTime | When the event occurs | ||||||
![]() ![]() ![]() ![]() |
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
| ||||||
![]() ![]() ![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||||
![]() ![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url Constraints: ext-1 | |||||||
![]() ![]() ![]() ![]() ![]() |
OΣ | 0..1 | Length/Range of lengths, or (Start and/or end) limits
| |||||||
![]() ![]() ![]() ![]() ![]() ![]() |
Duration | |||||||||
![]() ![]() ![]() ![]() ![]() ![]() |
Range | |||||||||
![]() ![]() ![]() ![]() ![]() ![]() |
Period | |||||||||
![]() ![]() ![]() ![]() ![]() |
Σ | 0..1 | positiveInt | Number of times to repeat | ||||||
![]() ![]() ![]() ![]() ![]() |
Σ | 0..1 | positiveInt | Maximum number of times to repeat | ||||||
![]() ![]() ![]() ![]() ![]() |
Σ | 0..1 | decimal | Duration of the treatment | ||||||
![]() ![]() ![]() ![]() ![]() |
Σ | 0..1 | decimal | How long when it happens (Max) | ||||||
![]() ![]() ![]() ![]() ![]() |
Σ | 0..1 | code | s | min | h | d | wk | mo | a - unit of time (UCUM) Binding: UnitsOfTime (required): A unit of time (units from UCUM). | ||||||
![]() ![]() ![]() ![]() ![]() |
SOΣ | 0..1 | positiveInt | Frequency times per period
| ||||||
![]() ![]() ![]() ![]() ![]() |
Σ | 0..1 | positiveInt | Event occurs up to frequencyMax times per period | ||||||
![]() ![]() ![]() ![]() ![]() |
SOΣ | 0..1 | decimal | Duration of time over which repetitions are to occur
| ||||||
![]() ![]() ![]() ![]() ![]() |
Σ | 0..1 | decimal | Upper limit of period (3-4 hours) | ||||||
![]() ![]() ![]() ![]() ![]() |
SOΣ | 0..1 | code | Unit of the period (e.g. day) Binding: UnitsOfTime (required): A unit of time (units from UCUM).
| ||||||
![]() ![]() ![]() ![]() ![]() |
Σ | 0..* | code | mon | tue | wed | thu | fri | sat | sun Binding: DaysOfWeek (required) | ||||||
![]() ![]() ![]() ![]() ![]() |
Σ | 0..* | time | Time of day for action | ||||||
![]() ![]() ![]() ![]() ![]() |
Σ | 0..* | code | Code for time period of occurrence Binding: EventTiming (required): Real world event relating to the schedule. | ||||||
![]() ![]() ![]() ![]() ![]() |
Σ | 0..1 | unsignedInt | Minutes from event (before or after) | ||||||
![]() ![]() ![]() ![]() |
Σ | 0..1 | CodeableConcept | A code for the timing schedule. Binding: TimingAbbreviation (preferred): Code for a known / defined timing pattern. | ||||||
![]() ![]() ![]() |
Σ | 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. | |||||||
![]() ![]() ![]() ![]() |
boolean | |||||||||
![]() ![]() ![]() ![]() |
CodeableConcept | |||||||||
![]() ![]() ![]() ![]() |
Σ | 0..1 | boolean | Take "as needed" (for x) | ||||||
![]() ![]() ![]() |
Σ | 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. | ||||||
![]() ![]() ![]() |
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.
| ||||||
![]() ![]() ![]() |
Σ | 0..1 | CodeableConcept | Technique for administering medication Binding: SNOMEDCTAdministrationMethodCodes (example): A coded concept describing the technique by which the medicine is administered. | ||||||
![]() ![]() ![]() |
SΣ | 0..* | Element | Amount of medication administered | ||||||
![]() ![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||||
![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url Constraints: ext-1 | |||||||
![]() ![]() ![]() ![]() |
Σ | 0..1 | CodeableConcept | The kind of dose or rate specified Binding: DoseAndRateType (example): The kind of dose or rate specified. | ||||||
![]() ![]() ![]() ![]() |
OΣ | 0..1 | Amount of medication per dose Slice: Unordered, Open by type:$this
| |||||||
![]() ![]() ![]() ![]() ![]() |
Range | |||||||||
![]() ![]() ![]() ![]() ![]() |
Quantity(SimpleQuantity) | |||||||||
![]() ![]() ![]() ![]() ![]() |
OΣ | 0..1 | SimpleQuantity(4.0.1) | Amount of medication per dose
| ||||||
![]() ![]() ![]() ![]() |
Σ | 0..1 | Amount of medication per unit of time | |||||||
![]() ![]() ![]() ![]() ![]() |
Ratio | |||||||||
![]() ![]() ![]() ![]() ![]() |
Range | |||||||||
![]() ![]() ![]() ![]() ![]() |
Quantity(SimpleQuantity) | |||||||||
![]() ![]() ![]() |
SΣ | 0..1 | Ratio | Upper limit on medication per unit of time | ||||||
![]() ![]() ![]() |
Σ | 0..1 | SimpleQuantity(4.0.1) | Upper limit on medication per administration | ||||||
![]() ![]() ![]() |
Σ | 0..1 | SimpleQuantity(4.0.1) | Upper limit on medication per lifetime of the patient | ||||||
![]() ![]() |
S | 1..1 | BackboneElement | Medication supply authorization | ||||||
![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||||
![]() ![]() ![]() |
0..* | Extension | Extension Slice: Unordered, Open by value:url Constraints: ext-1 | |||||||
![]() ![]() ![]() ![]() |
SO | 0..1 | Quantity | MedicationRequest - Prescribed Quantity URL: https://profiles.ihe.net/PHARM/MPD/StructureDefinition/ihe-ext-medicationrequest-prescribedQuantity Constraints: ext-1
| ||||||
![]() ![]() ![]() ![]() |
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 | ||||||
![]() ![]() ![]() ![]() |
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 | |||||||
![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized Constraints: ext-1 | ||||||
![]() ![]() ![]() |
0..1 | BackboneElement | First fill details | |||||||
![]() ![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||||
![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Constraints: ext-1 | |||||||
![]() ![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized Constraints: ext-1 | ||||||
![]() ![]() ![]() ![]() |
0..1 | SimpleQuantity(4.0.1) | First fill quantity | |||||||
![]() ![]() ![]() ![]() |
0..1 | Duration | First fill duration | |||||||
![]() ![]() ![]() |
S | 0..1 | Duration | Minimum period of time between dispenses | ||||||
![]() ![]() ![]() |
SO | 0..1 | Period | Time period supply is authorized for
| ||||||
![]() ![]() ![]() |
S | 0..1 | unsignedInt | Number of refills authorized | ||||||
![]() ![]() ![]() |
S | 1..1 | SimpleQuantity(4.0.1) | Amount of medication to supply per dispense | ||||||
![]() ![]() ![]() |
0..1 | Duration | Number of days supply per dispense | |||||||
![]() ![]() ![]() |
0..1 | Reference(Organization) | Intended dispenser | |||||||
![]() ![]() |
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.
| ||||||
![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||||
![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Constraints: ext-1 | |||||||
![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized Constraints: ext-1 | ||||||
![]() ![]() ![]() |
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. | |||||||
![]() ![]() ![]() ![]() |
boolean | |||||||||
![]() ![]() ![]() ![]() |
CodeableConcept | |||||||||
![]() ![]() ![]() ![]() |
O | 0..1 | boolean | Whether substitution is allowed or not
| ||||||
![]() ![]() ![]() |
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. | ||||||
![]() ![]() |
0..1 | Reference(MedicationRequest) | An order/prescription that is being replaced | |||||||
![]() ![]() |
0..* | Reference(DetectedIssue) | Clinical Issue with action | |||||||
![]() ![]() |
0..* | Reference(Provenance) | A list of events of interest in the lifecycle | |||||||
Documentation for this format | ||||||||||
| 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 |
| 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()
|
This structure is derived from MedicationRequestEuMpd
Summary
Mandatory: 5 elements
Must-Support: 38 elements
Structures
This structure refers to these other structures:
Extensions
This structure refers to these extensions:
Other representations of profile: CSV, Excel, Schematron