HL7 Europe Medication Prescription and Dispense
1.0.0 - trial-use 150

HL7 Europe Medication Prescription and Dispense - Downloaded Version 1.0.0 See the Directory of published versions

## Data Type Profile: Dosage: MPD

Official URL: http://hl7.eu/fhir/mpd-r5/StructureDefinition/Dosage-eu-mpd | Version: 1.0.0
Active as of 2026-05-14 | Computable Name: DosageEuMpd
Copyright/Legal: Copyright HL7 Europe. Licensed under creative commons public domain (CC0 1.0).

This profile defines how to represent Dosage data on ePrescription and eDispensation. The profile is equal to FHIR Dosage and only adds obligations and source of requirements.

Usages:

- Use this DataType Profile: MedicationDispense: MPD and MedicationRequest: MPD

You can also check for usages in the FHIR IG Statistics

### Formal Views of Profile Content

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

- Key Elements Table
- Differential Table
- Snapshot Table
- Statistics/References
- All

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Dosage | C | 0..* | Dosage | How the medication is/was taken or should be taken Constraints: dos-1
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
sequence | Σ | 0..1 | integer | The order of the dosage instructions
patientInstruction | O Σ | 0..1 | string | Patient or consumer oriented instructions
Obligations | Actor
SHOULD:able-to-populate | Producer
asNeeded | Σ C | 0..1 | boolean | Take "as needed"
site | Σ | 0..1 | CodeableConcept | Body site to administer to Binding: SNOMEDCTAnatomicalStructureAdministrationSites (example): A coded concept describing the site location the medicine enters into or onto the body.
route | O Σ | 0..1 | CodeableConcept | How drug should enter body Binding: SNOMEDCTRouteCodes (example): A coded concept describing the route or physiological path of administration of a therapeutic agent into or onto the body of a subject.
Obligations | Actor
SHOULD:able-to-populate | Producer
doseAndRate | Σ | 0..* | Element | Amount of medication administered, to be administered or typical amount to be administered
dose[x] | O Σ | 0..1 |  | Amount of medication per dose
Obligations | Actor
SHALL:able-to-populate | Producer
doseRange |  |  | Range |
doseQuantity |  |  | Quantity(SimpleQuantity) |
rate[x] | Σ | 0..1 |  | Amount of medication per unit of time
rateRatio |  |  | Ratio |
rateRange |  |  | Range |
rateQuantity |  |  | Quantity(SimpleQuantity) |
Documentation for this format

#### Terminology Bindings

Path | Status | Usage | ValueSet | Version | Source
Dosage.site | Base | example | SNOMED CT Anatomical Structure for Administration Site Codes | 📍5.0.0 | FHIR Std.
Dosage.route | Base | example | SNOMED CT Route Codes | 📍5.0.0 | FHIR Std.

#### Constraints

Id | Grade | Path(s) | Description | Expression
dos-1 | error | Dosage | AsNeededFor can only be set if AsNeeded is empty or true | `asNeededFor.empty() or asNeeded.empty() or asNeeded`
ele-1 | error | **ALL** elements | All FHIR elements must have a @value or children | `hasValue() or (children().count() > id.count())`
ext-1 | error | **ALL** extensions | Must have either extensions or value[x], not both | `extension.exists() != value.exists()`

This structure is derived from Dosage

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Dosage |  | 0..* | Dosage | How the medication is/was taken or should be taken
sequence |  | 0..1 | integer | The order of the dosage instructions
patientInstruction | O | 0..1 | string | Patient or consumer oriented instructions
Obligations | Actor
SHOULD:able-to-populate | Producer
timing |  |  |  |
repeat | O | 0..1 | Element | When the event is to occur
Obligations | Actor
SHALL:able-to-populate | Producer
bounds[x] | O | 0..1 | Duration, Range, Period | Length/Range of lengths, or (Start and/or end) limits
Obligations | Actor
SHALL:able-to-populate | Producer
duration |  | 0..1 | decimal | How long when it happens
durationUnit |  | 0..1 | code | s | min | h | d | wk | mo | a - unit of time (UCUM)
frequency | O | 0..1 | positiveInt | Indicates the number of repetitions that should occur within a period. I.e. Event occurs frequency times per period
Obligations | Actor
SHALL:able-to-populate | Producer
period | O | 0..1 | decimal | The duration to which the frequency applies. I.e. Event occurs frequency times per period
Obligations | Actor
SHALL:able-to-populate | Producer
periodUnit | O | 0..1 | code | s | min | h | d | wk | mo | a - unit of time (UCUM)
Obligations | Actor
SHALL:able-to-populate | Producer
dayOfWeek |  | 0..* | code | mon | tue | wed | thu | fri | sat | sun
timeOfDay |  | 0..* | time | Time of day for action
when |  | 0..* | code | Code for time period of occurrence
asNeeded |  | 0..1 | boolean | Take "as needed"
site |  | 0..1 | CodeableConcept | Body site to administer to
route | O | 0..1 | CodeableConcept | How drug should enter body
Obligations | Actor
SHOULD:able-to-populate | Producer
doseAndRate |  | 0..* | Element | Amount of medication administered, to be administered or typical amount to be administered
dose[x] | O | 0..1 | Range, SimpleQuantity(5.0.0) | Amount of medication per dose
Obligations | Actor
SHALL:able-to-populate | Producer
rate[x] |  | 0..1 | Ratio, Range, SimpleQuantity(5.0.0) | Amount of medication per unit of time
Documentation for this format

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Dosage | C | 0..* | Dosage | How the medication is/was taken or should be taken Constraints: dos-1
id |  | 0..1 | id | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
sequence | Σ | 0..1 | integer | The order of the dosage instructions
text | Σ | 0..1 | string | Free text dosage instructions e.g. SIG
additionalInstruction | Σ | 0..* | CodeableConcept | Supplemental instruction or warnings to the patient - e.g. "with meals", "may cause drowsiness" Binding: SNOMEDCTAdditionalDosageInstructions (example): A coded concept identifying additional instructions such as "take with water" or "avoid operating heavy machinery".
patientInstruction | O Σ | 0..1 | string | Patient or consumer oriented instructions
Obligations | Actor
SHOULD:able-to-populate | Producer
timing | Σ | 0..1 | Timing | When medication should be administered
id |  | 0..1 | id | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
event | Σ | 0..* | dateTime | When the event occurs
repeat | O Σ C | 0..1 | Element | When the event is to occur Constraints: tim-1, tim-2, tim-4, tim-5, tim-6, tim-7, tim-8, tim-9, tim-10
Obligations | Actor
SHALL:able-to-populate | Producer
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url
bounds[x] | O Σ | 0..1 |  | Length/Range of lengths, or (Start and/or end) limits
Obligations | Actor
SHALL:able-to-populate | Producer
boundsDuration |  |  | Duration |
boundsRange |  |  | Range |
boundsPeriod |  |  | Period |
count | Σ C | 0..1 | positiveInt | Number of times to repeat
countMax | Σ C | 0..1 | positiveInt | Maximum number of times to repeat
duration | Σ C | 0..1 | decimal | How long when it happens
durationMax | Σ C | 0..1 | decimal | How long when it happens (Max)
durationUnit | Σ C | 0..1 | code | s | min | h | d | wk | mo | a - unit of time (UCUM) Binding: UnitsOfTime (required): A unit of time (units from UCUM).
frequency | O Σ | 0..1 | positiveInt | Indicates the number of repetitions that should occur within a period. I.e. Event occurs frequency times per period
Obligations | Actor
SHALL:able-to-populate | Producer
frequencyMax | Σ | 0..1 | positiveInt | Event occurs up to frequencyMax times per period
period | O Σ C | 0..1 | decimal | The duration to which the frequency applies. I.e. Event occurs frequency times per period
Obligations | Actor
SHALL:able-to-populate | Producer
periodMax | Σ C | 0..1 | decimal | Upper limit of period (3-4 hours)
periodUnit | O Σ C | 0..1 | code | s | min | h | d | wk | mo | a - unit of time (UCUM) Binding: UnitsOfTime (required): A unit of time (units from UCUM).
Obligations | Actor
SHALL:able-to-populate | Producer
dayOfWeek | Σ | 0..* | code | mon | tue | wed | thu | fri | sat | sun Binding: DaysOfWeek (required)
timeOfDay | Σ C | 0..* | time | Time of day for action
when | Σ C | 0..* | code | Code for time period of occurrence Binding: EventTiming (required): Real-world event relating to the schedule.
offset | Σ C | 0..1 | unsignedInt | Minutes from event (before or after)
code | Σ | 0..1 | CodeableConcept | C | BID | TID | QID | AM | PM | QD | QOD | + Binding: TimingAbbreviation (preferred): Code for a known / defined timing pattern.
asNeeded | Σ C | 0..1 | boolean | Take "as needed"
asNeededFor | Σ C | 0..* | CodeableConcept | Take "as needed" (for x) Binding: SNOMEDCTMedicationAsNeededReasonCodes (example): A coded concept identifying the precondition that should be met or evaluated prior to consuming or administering a medication dose. For example "pain", "30 minutes prior to sexual intercourse", "on flare-up" etc.
site | Σ | 0..1 | CodeableConcept | Body site to administer to Binding: SNOMEDCTAnatomicalStructureAdministrationSites (example): A coded concept describing the site location the medicine enters into or onto the body.
route | O Σ | 0..1 | CodeableConcept | How drug should enter body Binding: SNOMEDCTRouteCodes (example): A coded concept describing the route or physiological path of administration of a therapeutic agent into or onto the body of a subject.
Obligations | Actor
SHOULD:able-to-populate | Producer
method | Σ | 0..1 | CodeableConcept | Technique for administering medication Binding: SNOMEDCTAdministrationMethodCodes (example): A coded concept describing the technique by which the medicine is administered.
doseAndRate | Σ | 0..* | Element | Amount of medication administered, to be administered or typical amount to be administered
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url
type | Σ | 0..1 | CodeableConcept | The kind of dose or rate specified Binding: DoseAndRateType (example): The kind of dose or rate specified.
dose[x] | O Σ | 0..1 |  | Amount of medication per dose
Obligations | Actor
SHALL:able-to-populate | Producer
doseRange |  |  | Range |
doseQuantity |  |  | Quantity(SimpleQuantity) |
rate[x] | Σ | 0..1 |  | Amount of medication per unit of time
rateRatio |  |  | Ratio |
rateRange |  |  | Range |
rateQuantity |  |  | Quantity(SimpleQuantity) |
maxDosePerPeriod | Σ | 0..* | Ratio | Upper limit on medication per unit of time
maxDosePerAdministration | Σ | 0..1 | SimpleQuantity(5.0.0) | Upper limit on medication per administration
maxDosePerLifetime | Σ | 0..1 | SimpleQuantity(5.0.0) | Upper limit on medication per lifetime of the patient
Documentation for this format

#### Terminology Bindings

Path | Status | Usage | ValueSet | Version | Source
Dosage.additionalInstruction | Base | example | SNOMED CT Additional Dosage Instructions | 📍5.0.0 | FHIR Std.
Dosage.timing.repeat.​durationUnit | Base | required | UnitsOfTime | 📍5.0.0 | FHIR Std.
Dosage.timing.repeat.​periodUnit | Base | required | UnitsOfTime | 📍5.0.0 | FHIR Std.
Dosage.timing.repeat.​dayOfWeek | Base | required | Days Of Week | 📍5.0.0 | FHIR Std.
Dosage.timing.repeat.​when | Base | required | EventTiming | 📍5.0.0 | FHIR Std.
Dosage.timing.code | Base | preferred | TimingAbbreviation | 📍5.0.0 | FHIR Std.
Dosage.asNeededFor | Base | example | SNOMED CT Medication As Needed Reason Codes | 📍5.0.0 | FHIR Std.
Dosage.site | Base | example | SNOMED CT Anatomical Structure for Administration Site Codes | 📍5.0.0 | FHIR Std.
Dosage.route | Base | example | SNOMED CT Route Codes | 📍5.0.0 | FHIR Std.
Dosage.method | Base | example | SNOMED CT Administration Method Codes | 📍5.0.0 | FHIR Std.
Dosage.doseAndRate.type | Base | example | DoseAndRateType | 📦2.0.0 | THO v7.1

#### Constraints

Id | Grade | Path(s) | Description | Expression
dos-1 | error | Dosage | AsNeededFor can only be set if AsNeeded is empty or true | `asNeededFor.empty() or asNeeded.empty() or asNeeded`
ele-1 | error | **ALL** elements | All FHIR elements must have a @value or children | `hasValue() or (children().count() > id.count())`
ext-1 | error | **ALL** extensions | Must have either extensions or value[x], not both | `extension.exists() != value.exists()`
tim-1 | error | Dosage.timing.repeat | if there's a duration, there needs to be duration units | `duration.empty() or durationUnit.exists()`
tim-2 | error | Dosage.timing.repeat | if there's a period, there needs to be period units | `period.empty() or periodUnit.exists()`
tim-4 | error | Dosage.timing.repeat | duration SHALL be a non-negative value | `duration.exists() implies duration >= 0`
tim-5 | error | Dosage.timing.repeat | period SHALL be a non-negative value | `period.exists() implies period >= 0`
tim-6 | error | Dosage.timing.repeat | If there's a periodMax, there must be a period | `periodMax.empty() or period.exists()`
tim-7 | error | Dosage.timing.repeat | If there's a durationMax, there must be a duration | `durationMax.empty() or duration.exists()`
tim-8 | error | Dosage.timing.repeat | If there's a countMax, there must be a count | `countMax.empty() or count.exists()`
tim-9 | error | Dosage.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.select($this in ('C' | 'CM' | 'CD' | 'CV')).allFalse())`
tim-10 | error | Dosage.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 Dosage

Summary

Key Elements View

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Dosage | C | 0..* | Dosage | How the medication is/was taken or should be taken Constraints: dos-1
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
sequence | Σ | 0..1 | integer | The order of the dosage instructions
patientInstruction | O Σ | 0..1 | string | Patient or consumer oriented instructions
Obligations | Actor
SHOULD:able-to-populate | Producer
asNeeded | Σ C | 0..1 | boolean | Take "as needed"
site | Σ | 0..1 | CodeableConcept | Body site to administer to Binding: SNOMEDCTAnatomicalStructureAdministrationSites (example): A coded concept describing the site location the medicine enters into or onto the body.
route | O Σ | 0..1 | CodeableConcept | How drug should enter body Binding: SNOMEDCTRouteCodes (example): A coded concept describing the route or physiological path of administration of a therapeutic agent into or onto the body of a subject.
Obligations | Actor
SHOULD:able-to-populate | Producer
doseAndRate | Σ | 0..* | Element | Amount of medication administered, to be administered or typical amount to be administered
dose[x] | O Σ | 0..1 |  | Amount of medication per dose
Obligations | Actor
SHALL:able-to-populate | Producer
doseRange |  |  | Range |
doseQuantity |  |  | Quantity(SimpleQuantity) |
rate[x] | Σ | 0..1 |  | Amount of medication per unit of time
rateRatio |  |  | Ratio |
rateRange |  |  | Range |
rateQuantity |  |  | Quantity(SimpleQuantity) |
Documentation for this format

#### Terminology Bindings

Path | Status | Usage | ValueSet | Version | Source
Dosage.site | Base | example | SNOMED CT Anatomical Structure for Administration Site Codes | 📍5.0.0 | FHIR Std.
Dosage.route | Base | example | SNOMED CT Route Codes | 📍5.0.0 | FHIR Std.

#### Constraints

Id | Grade | Path(s) | Description | Expression
dos-1 | error | Dosage | AsNeededFor can only be set if AsNeeded is empty or true | `asNeededFor.empty() or asNeeded.empty() or asNeeded`
ele-1 | error | **ALL** elements | All FHIR elements must have a @value or children | `hasValue() or (children().count() > id.count())`
ext-1 | error | **ALL** extensions | Must have either extensions or value[x], not both | `extension.exists() != value.exists()`

Differential View

This structure is derived from Dosage

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Dosage |  | 0..* | Dosage | How the medication is/was taken or should be taken
sequence |  | 0..1 | integer | The order of the dosage instructions
patientInstruction | O | 0..1 | string | Patient or consumer oriented instructions
Obligations | Actor
SHOULD:able-to-populate | Producer
timing |  |  |  |
repeat | O | 0..1 | Element | When the event is to occur
Obligations | Actor
SHALL:able-to-populate | Producer
bounds[x] | O | 0..1 | Duration, Range, Period | Length/Range of lengths, or (Start and/or end) limits
Obligations | Actor
SHALL:able-to-populate | Producer
duration |  | 0..1 | decimal | How long when it happens
durationUnit |  | 0..1 | code | s | min | h | d | wk | mo | a - unit of time (UCUM)
frequency | O | 0..1 | positiveInt | Indicates the number of repetitions that should occur within a period. I.e. Event occurs frequency times per period
Obligations | Actor
SHALL:able-to-populate | Producer
period | O | 0..1 | decimal | The duration to which the frequency applies. I.e. Event occurs frequency times per period
Obligations | Actor
SHALL:able-to-populate | Producer
periodUnit | O | 0..1 | code | s | min | h | d | wk | mo | a - unit of time (UCUM)
Obligations | Actor
SHALL:able-to-populate | Producer
dayOfWeek |  | 0..* | code | mon | tue | wed | thu | fri | sat | sun
timeOfDay |  | 0..* | time | Time of day for action
when |  | 0..* | code | Code for time period of occurrence
asNeeded |  | 0..1 | boolean | Take "as needed"
site |  | 0..1 | CodeableConcept | Body site to administer to
route | O | 0..1 | CodeableConcept | How drug should enter body
Obligations | Actor
SHOULD:able-to-populate | Producer
doseAndRate |  | 0..* | Element | Amount of medication administered, to be administered or typical amount to be administered
dose[x] | O | 0..1 | Range, SimpleQuantity(5.0.0) | Amount of medication per dose
Obligations | Actor
SHALL:able-to-populate | Producer
rate[x] |  | 0..1 | Ratio, Range, SimpleQuantity(5.0.0) | Amount of medication per unit of time
Documentation for this format

Snapshot View

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Dosage | C | 0..* | Dosage | How the medication is/was taken or should be taken Constraints: dos-1
id |  | 0..1 | id | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
sequence | Σ | 0..1 | integer | The order of the dosage instructions
text | Σ | 0..1 | string | Free text dosage instructions e.g. SIG
additionalInstruction | Σ | 0..* | CodeableConcept | Supplemental instruction or warnings to the patient - e.g. "with meals", "may cause drowsiness" Binding: SNOMEDCTAdditionalDosageInstructions (example): A coded concept identifying additional instructions such as "take with water" or "avoid operating heavy machinery".
patientInstruction | O Σ | 0..1 | string | Patient or consumer oriented instructions
Obligations | Actor
SHOULD:able-to-populate | Producer
timing | Σ | 0..1 | Timing | When medication should be administered
id |  | 0..1 | id | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
event | Σ | 0..* | dateTime | When the event occurs
repeat | O Σ C | 0..1 | Element | When the event is to occur Constraints: tim-1, tim-2, tim-4, tim-5, tim-6, tim-7, tim-8, tim-9, tim-10
Obligations | Actor
SHALL:able-to-populate | Producer
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url
bounds[x] | O Σ | 0..1 |  | Length/Range of lengths, or (Start and/or end) limits
Obligations | Actor
SHALL:able-to-populate | Producer
boundsDuration |  |  | Duration |
boundsRange |  |  | Range |
boundsPeriod |  |  | Period |
count | Σ C | 0..1 | positiveInt | Number of times to repeat
countMax | Σ C | 0..1 | positiveInt | Maximum number of times to repeat
duration | Σ C | 0..1 | decimal | How long when it happens
durationMax | Σ C | 0..1 | decimal | How long when it happens (Max)
durationUnit | Σ C | 0..1 | code | s | min | h | d | wk | mo | a - unit of time (UCUM) Binding: UnitsOfTime (required): A unit of time (units from UCUM).
frequency | O Σ | 0..1 | positiveInt | Indicates the number of repetitions that should occur within a period. I.e. Event occurs frequency times per period
Obligations | Actor
SHALL:able-to-populate | Producer
frequencyMax | Σ | 0..1 | positiveInt | Event occurs up to frequencyMax times per period
period | O Σ C | 0..1 | decimal | The duration to which the frequency applies. I.e. Event occurs frequency times per period
Obligations | Actor
SHALL:able-to-populate | Producer
periodMax | Σ C | 0..1 | decimal | Upper limit of period (3-4 hours)
periodUnit | O Σ C | 0..1 | code | s | min | h | d | wk | mo | a - unit of time (UCUM) Binding: UnitsOfTime (required): A unit of time (units from UCUM).
Obligations | Actor
SHALL:able-to-populate | Producer
dayOfWeek | Σ | 0..* | code | mon | tue | wed | thu | fri | sat | sun Binding: DaysOfWeek (required)
timeOfDay | Σ C | 0..* | time | Time of day for action
when | Σ C | 0..* | code | Code for time period of occurrence Binding: EventTiming (required): Real-world event relating to the schedule.
offset | Σ C | 0..1 | unsignedInt | Minutes from event (before or after)
code | Σ | 0..1 | CodeableConcept | C | BID | TID | QID | AM | PM | QD | QOD | + Binding: TimingAbbreviation (preferred): Code for a known / defined timing pattern.
asNeeded | Σ C | 0..1 | boolean | Take "as needed"
asNeededFor | Σ C | 0..* | CodeableConcept | Take "as needed" (for x) Binding: SNOMEDCTMedicationAsNeededReasonCodes (example): A coded concept identifying the precondition that should be met or evaluated prior to consuming or administering a medication dose. For example "pain", "30 minutes prior to sexual intercourse", "on flare-up" etc.
site | Σ | 0..1 | CodeableConcept | Body site to administer to Binding: SNOMEDCTAnatomicalStructureAdministrationSites (example): A coded concept describing the site location the medicine enters into or onto the body.
route | O Σ | 0..1 | CodeableConcept | How drug should enter body Binding: SNOMEDCTRouteCodes (example): A coded concept describing the route or physiological path of administration of a therapeutic agent into or onto the body of a subject.
Obligations | Actor
SHOULD:able-to-populate | Producer
method | Σ | 0..1 | CodeableConcept | Technique for administering medication Binding: SNOMEDCTAdministrationMethodCodes (example): A coded concept describing the technique by which the medicine is administered.
doseAndRate | Σ | 0..* | Element | Amount of medication administered, to be administered or typical amount to be administered
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url
type | Σ | 0..1 | CodeableConcept | The kind of dose or rate specified Binding: DoseAndRateType (example): The kind of dose or rate specified.
dose[x] | O Σ | 0..1 |  | Amount of medication per dose
Obligations | Actor
SHALL:able-to-populate | Producer
doseRange |  |  | Range |
doseQuantity |  |  | Quantity(SimpleQuantity) |
rate[x] | Σ | 0..1 |  | Amount of medication per unit of time
rateRatio |  |  | Ratio |
rateRange |  |  | Range |
rateQuantity |  |  | Quantity(SimpleQuantity) |
maxDosePerPeriod | Σ | 0..* | Ratio | Upper limit on medication per unit of time
maxDosePerAdministration | Σ | 0..1 | SimpleQuantity(5.0.0) | Upper limit on medication per administration
maxDosePerLifetime | Σ | 0..1 | SimpleQuantity(5.0.0) | Upper limit on medication per lifetime of the patient
Documentation for this format

#### Terminology Bindings

Path | Status | Usage | ValueSet | Version | Source
Dosage.additionalInstruction | Base | example | SNOMED CT Additional Dosage Instructions | 📍5.0.0 | FHIR Std.
Dosage.timing.repeat.​durationUnit | Base | required | UnitsOfTime | 📍5.0.0 | FHIR Std.
Dosage.timing.repeat.​periodUnit | Base | required | UnitsOfTime | 📍5.0.0 | FHIR Std.
Dosage.timing.repeat.​dayOfWeek | Base | required | Days Of Week | 📍5.0.0 | FHIR Std.
Dosage.timing.repeat.​when | Base | required | EventTiming | 📍5.0.0 | FHIR Std.
Dosage.timing.code | Base | preferred | TimingAbbreviation | 📍5.0.0 | FHIR Std.
Dosage.asNeededFor | Base | example | SNOMED CT Medication As Needed Reason Codes | 📍5.0.0 | FHIR Std.
Dosage.site | Base | example | SNOMED CT Anatomical Structure for Administration Site Codes | 📍5.0.0 | FHIR Std.
Dosage.route | Base | example | SNOMED CT Route Codes | 📍5.0.0 | FHIR Std.
Dosage.method | Base | example | SNOMED CT Administration Method Codes | 📍5.0.0 | FHIR Std.
Dosage.doseAndRate.type | Base | example | DoseAndRateType | 📦2.0.0 | THO v7.1

#### Constraints

Id | Grade | Path(s) | Description | Expression
dos-1 | error | Dosage | AsNeededFor can only be set if AsNeeded is empty or true | `asNeededFor.empty() or asNeeded.empty() or asNeeded`
ele-1 | error | **ALL** elements | All FHIR elements must have a @value or children | `hasValue() or (children().count() > id.count())`
ext-1 | error | **ALL** extensions | Must have either extensions or value[x], not both | `extension.exists() != value.exists()`
tim-1 | error | Dosage.timing.repeat | if there's a duration, there needs to be duration units | `duration.empty() or durationUnit.exists()`
tim-2 | error | Dosage.timing.repeat | if there's a period, there needs to be period units | `period.empty() or periodUnit.exists()`
tim-4 | error | Dosage.timing.repeat | duration SHALL be a non-negative value | `duration.exists() implies duration >= 0`
tim-5 | error | Dosage.timing.repeat | period SHALL be a non-negative value | `period.exists() implies period >= 0`
tim-6 | error | Dosage.timing.repeat | If there's a periodMax, there must be a period | `periodMax.empty() or period.exists()`
tim-7 | error | Dosage.timing.repeat | If there's a durationMax, there must be a duration | `durationMax.empty() or duration.exists()`
tim-8 | error | Dosage.timing.repeat | If there's a countMax, there must be a count | `countMax.empty() or count.exists()`
tim-9 | error | Dosage.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.select($this in ('C' | 'CM' | 'CD' | 'CV')).allFalse())`
tim-10 | error | Dosage.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 Dosage

Summary

Other representations of profile: CSV, Excel, Schematron