MedicationsThis is the Continuous Integration Build of FHIR (will be incorrect/inconsistent at times).
See the Directory of published versions 
Responsible Owner: Pharmacy Work Group | Standards Status: Informative |
This page presents a series of examples of how to use DosageDetails and related types to represent various complex dosing regimes.
Each of the examples below starts with a textural representation of the dosage.
In general, these should be found in the renderedInstruction element,
but this only shown explicitly in the first example; after that it is omitted for
brevity. The examples below include some instances where details in the instruction
cannot be represented in the dosage structure.
In regard to these examples, note that the focus here is around the dosage regimes. There is no attempt to populate the rest of the dosage with route, method etc, or a proper medication code, let alone the rest of the MedicationRequest resource content.
Take Perindopril, 1 tablet per day, for 3 months.
Structure
MedicationRequest.medication.concept = “Perindopril Arginine 2.5 mg tablet”MedicationRequest.dosageInstruction.renderedDosageInstruction = “1 tablet per day for 3 months”MedicationRequest.dosageInstruction.simple.timing.repeat.boundsDuration = 3 mo…timing.repeat.frequency/period/periodUnit = 1 / 1 / d…doseAndRate[0].doseQuantity = 1 tablet (or explicit mg if desired)
MedicationRequest
medication
concept
coding: Perindopril Arginine, 2.5mg tablets
dosageInstruction
renderedInstruction: 1 tablet per day for 3 months
simple
timing
repeat
boundsDuration: 3 mo
frequency : 1
period: 1
periodUnit: d
doseAndRate
doseQuantity: 10 mg
JSON
{
"resourceType": "MedicationRequest",
"medication": {
"concept": {
"text": "Perindopril Arginine, 2.5mg tablets"
}
},
"dosageInstruction": {
"renderedInstruction": "1 tablet per day for 3 months",
"simple": {
"timing": {
"repeat": {
"boundsDuration": {
"value": 3,
"unit": "mo",
"system": "http://unitsofmeasure.org",
"code": "mo"
},
"frequency": 1,
"period": 1,
"periodUnit": "d"
}
},
"doseAndRate": [
{
"doseQuantity": {
"value": 10,
"unit": "mg",
"system": "http://unitsofmeasure.org",
"code": "mg"
}
}
]
}
}
}
XML
<MedicationRequest xmlns="http://hl7.org/fhir">
<medication>
<concept>
<text value="Perindopril Arginine, 2.5mg tablets"/>
</concept>
</medication>
<dosageInstruction>
<renderedInstruction value="1 tablet per day for 3 months"/>
<simple>
<timing>
<repeat>
<boundsDuration>
<value value="3"/>
<unit value="mo"/>
<system value="http://unitsofmeasure.org"/>
<code value="mo"/>
</boundsDuration>
<frequency value="1"/>
<period value="1"/>
<periodUnit value="d"/>
</repeat>
</timing>
<doseAndRate>
<doseQuantity>
<value value="10"/>
<unit value="mg"/>
<system value="http://unitsofmeasure.org"/>
<code value="mg"/>
</doseQuantity>
</doseAndRate>
</simple>
</dosageInstruction>
</MedicationRequest>
Notes:
Methylphenidate 10 mg tablets — 10 mg at 07:30 and 12:00, 5 mg at 16:00 Mon–Fri; 10 mg at 08:00 Sat–Sun and holidays; 5 mg PRN after 17:00 (max 2×/week); do not exceed 150 mg per week.
Structure
component entries (by dayOfWeek/timeOfDay) + one PRN componententry in that step.Dosage.timing.repeat.dayOfWeek and ...timeOfDay for fixed administrations.Dosage.asNeededBoolean for PRN (evening); optionally …when = EVE.Dosage.maxDosePerPeriod (Ratio) for 150 mg per week.MedicationRequest.dosageInstruction.safety.doseLimit (scope=period) for 150 mg per week.
MedicationRequest
medication
concept
coding: Methylphenidate 10 mg tablets
dosageInstruction
step
component
timing
repeat
dayOfWeek: mon | tue | wed | thu | fri
timeOfDay: 07:30 | 12:00
doseAndRate
doseQuantity: 10 mg
component
timing
repeat
dayOfWeek: mon | tue | wed | thu | fri
timeOfDay: 16:00
doseAndRate
doseQuantity: 5 mg
component
timing
repeat
dayOfWeek: sat | sun
timeOfDay: 08:00
doseAndRate
doseQuantity: 10 mg
component
asNeeded: true
timing
repeat
when: EVE
doseAndRate
doseQuantity: 5 mg
safety
doseLimit
valueQuantity: 2 tablets
scope: administration
safety
doseLimit
valueQuantity: 150 mg
scope: period
period: 1 week
JSON
{
"resourceType": "MedicationRequest",
"medication": {
"concept": {
"text": "Methylphenidate 10 mg tablets"
}
},
"dosageInstruction": {
"step": [{
"component": [
{
"timing": {
"repeat": {
"dayOfWeek": ["mon", "tue", "wed", "thu", "fri"],
"timeOfDay": ["07:30", "12:00"]
}
},
"doseAndRate": [
{
"doseQuantity": {
"value": 10,
"unit": "mg",
"system": "http://unitsofmeasure.org",
"code": "mg"
}
}
]
},
{
"timing": {
"repeat": {
"dayOfWeek": ["mon", "tue", "wed", "thu", "fri"],
"timeOfDay": ["16:00"]
}
},
"doseAndRate": [
{
"doseQuantity": {
"value": 5,
"unit": "mg",
"system": "http://unitsofmeasure.org",
"code": "mg"
}
}
]
},
{
"timing": {
"repeat": {
"dayOfWeek": ["sat", "sun"],
"timeOfDay": ["08:00"]
}
},
"doseAndRate": [
{
"doseQuantity": {
"value": 10,
"unit": "mg",
"system": "http://unitsofmeasure.org",
"code": "mg"
}
}
]
},
{
"asNeeded": true,
"timing": {
"repeat": {
"when": ["EVE"]
}
},
"safety": {
"doseLimit": [{
"valueQuantity": {
"value": 2,
"unit": "s",
"system": "http://unitsofmeasure.org",
"code": "tbl"
},
"scope": "administration"
}]
}
}
]
}],
"safety": {
"doseLimit": [{
"valueQuantity": {
"value": 150,
"unit": "mg",
"system": "http://unitsofmeasure.org",
"code": "mg"
},
"scope": "period",
"period": {
"value": 1,
"unit": "week",
"system": "http://unitsofmeasure.org",
"code": "wk"
}
}]
}
}
}
XML
<MedicationRequest xmlns="http://hl7.org/fhir">
<medication>
<concept>
<text value="Methylphenidate 10 mg tablets"/>
</concept>
</medication>
<dosageInstruction>
<step>
<component>
<timing>
<repeat>
<dayOfWeek value="mon"/>
<dayOfWeek value="tue"/>
<dayOfWeek value="wed"/>
<dayOfWeek value="thu"/>
<dayOfWeek value="fri"/>
<timeOfDay value="07:30"/>
<timeOfDay value="12:00"/>
</repeat>
</timing>
<doseAndRate>
<doseQuantity>
<value value="10"/>
<unit value="mg"/>
<system value="http://unitsofmeasure.org"/>
<code value="mg"/>
</doseQuantity>
</doseAndRate>
</component>
<component>
<timing>
<repeat>
<dayOfWeek value="mon"/>
<dayOfWeek value="tue"/>
<dayOfWeek value="wed"/>
<dayOfWeek value="thu"/>
<dayOfWeek value="fri"/>
<timeOfDay value="16:00"/>
</repeat>
</timing>
<doseAndRate>
<doseQuantity>
<value value="5"/>
<unit value="mg"/>
<system value="http://unitsofmeasure.org"/>
<code value="mg"/>
</doseQuantity>
</doseAndRate>
</component>
<component>
<timing>
<repeat>
<dayOfWeek value="sat"/>
<dayOfWeek value="sun"/>
<timeOfDay value="08:00"/>
</repeat>
</timing>
<doseAndRate>
<doseQuantity>
<value value="10"/>
<unit value="mg"/>
<system value="http://unitsofmeasure.org"/>
<code value="mg"/>
</doseQuantity>
</doseAndRate>
</component>
<component>
<asNeeded value="true"/>
<timing>
<repeat>
<when value="EVE"/>
</repeat>
</timing>
<doseAndRate>
<doseQuantity>
<value value="5"/>
<unit value="mg"/>
<system value="http://unitsofmeasure.org"/>
<code value="mg"/>
</doseQuantity>
</doseAndRate>
<safety>
<doseLimit>
<valueQuantity>
<value value="2"/>
<unit value="tablet"/>
<system value="http://unitsofmeasure.org"/>
<code value="tbl"/>
</valueQuantity>
<scope value="administration"/>
</doseLimit>
</safety>
</component>
</step>
<safety>
<doseLimit>
<valueQuantity>
<value value="150"/>
<unit value="mg"/>
<system value="http://unitsofmeasure.org"/>
<code value="mg"/>
</valueQuantity>
<scope value="period"/>
<period>
<value value="1"/>
<unit value="week"/>
<system value="http://unitsofmeasure.org"/>
<code value="wk"/>
</period>
</doseLimit>
</safety>
<safety>
<doseLimit>
<valueQuantity>
<value value="150"/>
<unit value="mg"/>
<system value="http://unitsofmeasure.org"/>
<code value="mg"/>
</valueQuantity>
<scope value="period"/>
<period>
<value value="1"/>
<unit value="week"/>
<system value="http://unitsofmeasure.org"/>
<code value="wk"/>
</period>
</doseLimit>
</safety>
</dosageInstruction>
</MedicationRequest>
Not supported / Caveats: “and holidays” is ambiguous;this might be found in an extension, or in narrative.
Prednisone 10 mg tablets (oral)
Structure
dosageDetails.step with its own timing.repeat and dose.period=2, periodUnit=d.dosageDetails.step (narrative driven).
MedicationRequest
medication
concept
coding: Prednisone 10 mg tablets
dosageInstruction
step
component
timing
repeat
boundsDuration: 5 days
frequency: 2
period: 1
periodUnit: d
timeOfDay: 08:00 | 20:00
doseAndRate
doseQuantity: 40 mg
step
component
timing
repeat
count: 5
period: 1
periodUnit: d
timeOfDay: 08:00
doseAndRate
doseQuantity: 30 mg
component
timing
repeat
count: 5
period: 1
periodUnit: d
timeOfDay: 20:00
doseAndRate
doseQuantity: 20 mg
step
component
timing
repeat
count: 10
period: 1
periodUnit: d
timeOfDay: 08:00
doseAndRate
doseQuantity: 20 mg
step
component
timing
repeat
count: 5
period: 1
periodUnit: d
timeOfDay: 08:00
doseAndRate
doseQuantity: 10 mg
step
component
timing
repeat
count: 5
period: 1
periodUnit: d
timeOfDay: 08:00
doseAndRate
doseQuantity: 5 mg
step
component
timing
repeat
boundsDuration: 3 m
period: 2
periodUnit: d
timeOfDay: 08:00
doseAndRate
doseQuantity: 5 mg
step
component
asNeeded : true
timing
repeat
boundsDuration: 3 m
doseAndRate
doseQuantity: 5 mg
safety
doseLimit
valueInteger: 2
Period: 6 months
JSON
{
"resourceType": "MedicationRequest",
"medication": {
"concept": {
"text": "Prednisone 10 mg tablets"
}
},
"dosageInstruction": {
"step": [
{
"component": [
{
"timing": {
"repeat": {
"boundsDuration": {
"value": 5,
"unit": "days",
"system": "http://unitsofmeasure.org",
"code": "d"
},
"frequency": 2,
"period": 1,
"periodUnit": "d",
"timeOfDay": ["08:00", "20:00"]
}
},
"doseAndRate": [
{
"doseQuantity": {
"value": 40,
"unit": "mg",
"system": "http://unitsofmeasure.org",
"code": "mg"
}
}
]
}
]
},
{
"component": [
{
"timing": {
"repeat": {
"count": 5,
"period": 1,
"periodUnit": "d",
"timeOfDay": ["08:00"]
}
},
"doseAndRate": [
{
"doseQuantity": {
"value": 30,
"unit": "mg",
"system": "http://unitsofmeasure.org",
"code": "mg"
}
}
]
},
{
"timing": {
"repeat": {
"count": 5,
"period": 1,
"periodUnit": "d",
"timeOfDay": ["20:00"]
}
},
"doseAndRate": [
{
"doseQuantity": {
"value": 20,
"unit": "mg",
"system": "http://unitsofmeasure.org",
"code": "mg"
}
}
]
}
]
},
{
"component": [
{
"timing": {
"repeat": {
"count": 10,
"period": 1,
"periodUnit": "d",
"timeOfDay": ["08:00"]
}
},
"doseAndRate": [
{
"doseQuantity": {
"value": 20,
"unit": "mg",
"system": "http://unitsofmeasure.org",
"code": "mg"
}
}
]
}
]
},
{
"component": [
{
"timing": {
"repeat": {
"count": 5,
"period": 1,
"periodUnit": "d",
"timeOfDay": ["08:00"]
}
},
"doseAndRate": [
{
"doseQuantity": {
"value": 10,
"unit": "mg",
"system": "http://unitsofmeasure.org",
"code": "mg"
}
}
]
}
]
},
{
"component": [
{
"timing": {
"repeat": {
"count": 5,
"period": 1,
"periodUnit": "d",
"timeOfDay": ["08:00"]
}
},
"doseAndRate": [
{
"doseQuantity": {
"value": 5,
"unit": "mg",
"system": "http://unitsofmeasure.org",
"code": "mg"
}
}
]
}
]
},
{
"component": [
{
"timing": {
"repeat": {
"boundsDuration": {
"value": 3,
"unit": "months",
"system": "http://unitsofmeasure.org",
"code": "mo"
},
"period": 2,
"periodUnit": "d",
"timeOfDay": ["08:00"]
}
},
"doseAndRate": [
{
"doseQuantity": {
"value": 5,
"unit": "mg",
"system": "http://unitsofmeasure.org",
"code": "mg"
}
}
]
}
]
},
{
"component": [
{
"asNeeded": true,
"timing": {
"repeat": {
"boundsDuration": {
"value": 3,
"unit": "months",
"system": "http://unitsofmeasure.org",
"code": "mo"
}
}
},
"doseAndRate": [
{
"doseQuantity": {
"value": 5,
"unit": "mg",
"system": "http://unitsofmeasure.org",
"code": "mg"
}
}
]
}
]
}
],
"safety": {
"doseLimit": [{
"valueInteger": 2,
"period": {
"value": 2,
"unit": "months",
"system": "http://unitsofmeasure.org",
"code": "mo"
}
}]
}
}
}
XML
<MedicationRequest xmlns="http://hl7.org/fhir">
<medication>
<concept>
<text value="Prednisone 10 mg tablets"/>
</concept>
</medication>
<dosageInstruction>
<!-- Step 1: 40mg twice daily for 5 days -->
<step>
<component>
<timing>
<repeat>
<boundsDuration>
<value value="5"/>
<unit value="days"/>
<system value="http://unitsofmeasure.org"/>
<code value="d"/>
</boundsDuration>
<frequency value="2"/>
<period value="1"/>
<periodUnit value="d"/>
<timeOfDay value="08:00"/>
<timeOfDay value="20:00"/>
</repeat>
</timing>
<doseAndRate>
<doseQuantity>
<value value="40"/>
<unit value="mg"/>
<system value="http://unitsofmeasure.org"/>
<code value="mg"/>
</doseQuantity>
</doseAndRate>
</component>
</step>
<!-- Step 2: 30mg morning, 20mg evening for 5 days -->
<step>
<component>
<timing>
<repeat>
<count value="5"/>
<period value="1"/>
<periodUnit value="d"/>
<timeOfDay value="08:00"/>
</repeat>
</timing>
<doseAndRate>
<doseQuantity>
<value value="30"/>
<unit value="mg"/>
<system value="http://unitsofmeasure.org"/>
<code value="mg"/>
</doseQuantity>
</doseAndRate>
</component>
<component>
<timing>
<repeat>
<count value="5"/>
<period value="1"/>
<periodUnit value="d"/>
<timeOfDay value="20:00"/>
</repeat>
</timing>
<doseAndRate>
<doseQuantity>
<value value="20"/>
<unit value="mg"/>
<system value="http://unitsofmeasure.org"/>
<code value="mg"/>
</doseQuantity>
</doseAndRate>
</component>
</step>
<!-- Step 3: 20mg daily for 10 days -->
<step>
<component>
<timing>
<repeat>
<count value="10"/>
<period value="1"/>
<periodUnit value="d"/>
<timeOfDay value="08:00"/>
</repeat>
</timing>
<doseAndRate>
<doseQuantity>
<value value="20"/>
<unit value="mg"/>
<system value="http://unitsofmeasure.org"/>
<code value="mg"/>
</doseQuantity>
</doseAndRate>
</component>
</step>
<!-- Step 4: 10mg daily for 5 days -->
<step>
<component>
<timing>
<repeat>
<count value="5"/>
<period value="1"/>
<periodUnit value="d"/>
<timeOfDay value="08:00"/>
</repeat>
</timing>
<doseAndRate>
<doseQuantity>
<value value="10"/>
<unit value="mg"/>
<system value="http://unitsofmeasure.org"/>
<code value="mg"/>
</doseQuantity>
</doseAndRate>
</component>
</step>
<!-- Step 5: 5mg daily for 5 days -->
<step>
<component>
<timing>
<repeat>
<count value="5"/>
<period value="1"/>
<periodUnit value="d"/>
<timeOfDay value="08:00"/>
</repeat>
</timing>
<doseAndRate>
<doseQuantity>
<value value="5"/>
<unit value="mg"/>
<system value="http://unitsofmeasure.org"/>
<code value="mg"/>
</doseQuantity>
</doseAndRate>
</component>
</step>
<!-- Step 6: 5mg every other day for 3 months -->
<step>
<component>
<timing>
<repeat>
<boundsDuration>
<value value="3"/>
<unit value="months"/>
<system value="http://unitsofmeasure.org"/>
<code value="mo"/>
</boundsDuration>
<period value="2"/>
<periodUnit value="d"/>
<timeOfDay value="08:00"/>
</repeat>
</timing>
<doseAndRate>
<doseQuantity>
<value value="5"/>
<unit value="mg"/>
<system value="http://unitsofmeasure.org"/>
<code value="mg"/>
</doseQuantity>
</doseAndRate>
</component>
</step>
<!-- Step 7: 5mg as needed for 3 months -->
<step>
<component>
<asNeeded value="true"/>
<timing>
<repeat>
<boundsDuration>
<value value="3"/>
<unit value="months"/>
<system value="http://unitsofmeasure.org"/>
<code value="mo"/>
</boundsDuration>
</repeat>
</timing>
<doseAndRate>
<doseQuantity>
<value value="5"/>
<unit value="mg"/>
<system value="http://unitsofmeasure.org"/>
<code value="mg"/>
</doseQuantity>
</doseAndRate>
</component>
</step>
<safety>
<doseLimit>
<valueInteger value="2"/>
<period>
<value value="2"/>
<unit value="months"/>
<system value="http://unitsofmeasure.org"/>
<code value="mo"/>
</period>
</doseLimit>
</safety>
</dosageInstruction>
</MedicationRequest>
Notes:
Epirubicin 45 mg/m² IV on Days 1 & 8 every 28 days × 6 cycles; infuse over 20 min at 09:00; do not exceed 90 mg/m² per 28-day cycle or 900 mg/m² lifetime cumulative dose.
Structure
dosageDetails.step.component entries for Day 1 and Day 8 of each 28-day period (×6 cycles).Dosage.timing.repeat.duration=20, durationUnit=min; or encode under doseAndRate.rate[x] if modeled as rate.MedicationRequest.dosageInstruction.safety.doseLimit with scopes period (per cycle) and lifetime.Timing.repeat extension (e.g., startOffset=8 d).
MedicationRequest
medication
concept
coding: Epirubicin
dosageInstruction
step
component
timing
repeat
count: 6
duration: 20
durationUnit: min
period: 28
periodUnit: d
timeOfDay: 09:00
doseAndRate
rateQuantity: 45 mg/m²
component
timing
repeat
count: 6
duration: 20
durationUnit: min
period: 28
periodUnit: d
startOffset = 8 d
timeOfDay: 09:00
doseAndRate
rateQuantity: 45 mg/m²
safety
doseLimit[0]
valueQuantity: 90 mg/m2
scope: dosage
doseLimit[1]
valueQuantity: 900 mg/m²
scope: lifetime
JSON
{
"resourceType": "MedicationRequest",
"medication": {
"concept": {
"text": "Epirubicin"
}
},
"dosageInstruction": {
"step": [
{
"component": [
{
"timing": {
"repeat": {
"count": 6,
"duration": 20,
"durationUnit": "min",
"period": 28,
"periodUnit": "d",
"timeOfDay": ["09:00"]
}
},
"doseAndRate": [
{
"rateQuantity": {
"value": 45,
"unit": "mg/m²",
"system": "http://unitsofmeasure.org",
"code": "mg/m2"
}
}
]
},
{
"timing": {
"repeat": {
"count": 6,
"duration": 20,
"durationUnit": "min",
"period": 28,
"periodUnit": "d",
"startOffset": {
"value": 8,
"unit": "days",
"system": "http://unitsofmeasure.org",
"code": "d"
},
"timeOfDay": ["09:00"]
}
},
"doseAndRate": [
{
"rateQuantity": {
"value": 45,
"unit": "mg/m²",
"system": "http://unitsofmeasure.org",
"code": "mg/m2"
}
}
]
}
]
}
],
"safety": {
"doseLimit": [
{
"valueQuantity": {
"value": 90,
"unit": "mg/m²",
"system": "http://unitsofmeasure.org",
"code": "mg/m2"
},
"scope": "dosage"
},
{
"valueQuantity": {
"value": 900,
"unit": "mg/m²",
"system": "http://unitsofmeasure.org",
"code": "mg/m2"
},
"scope": "lifetime"
}
]
}
}
}
XML
<MedicationRequest xmlns="http://hl7.org/fhir">
<medication>
<concept>
<text value="Epirubicin"/>
</concept>
</medication>
<dosageInstruction>
<step>
<component>
<timing>
<repeat>
<count value="6"/>
<duration value="20"/>
<durationUnit value="min"/>
<period value="28"/>
<periodUnit value="d"/>
<timeOfDay value="09:00"/>
</repeat>
</timing>
<doseAndRate>
<rateQuantity>
<value value="45"/>
<unit value="mg/m²"/>
<system value="http://unitsofmeasure.org"/>
<code value="mg/m2"/>
</rateQuantity>
</doseAndRate>
</component>
<component>
<timing>
<repeat>
<count value="6"/>
<duration value="20"/>
<durationUnit value="min"/>
<period value="28"/>
<periodUnit value="d"/>
<startOffset>
<value value="8"/>
<unit value="days"/>
<system value="http://unitsofmeasure.org"/>
<code value="d"/>
</startOffset>
<timeOfDay value="09:00"/>
</repeat>
</timing>
<doseAndRate>
<rateQuantity>
<value value="45"/>
<unit value="mg/m²"/>
<system value="http://unitsofmeasure.org"/>
<code value="mg/m2"/>
</rateQuantity>
</doseAndRate>
</component>
</step>
<safety>
<doseLimit>
<valueQuantity>
<value value="90"/>
<unit value="mg/m²"/>
<system value="http://unitsofmeasure.org"/>
<code value="mg/m2"/>
</valueQuantity>
<scope value="dosage"/>
</doseLimit>
<doseLimit>
<valueQuantity>
<value value="900"/>
<unit value="mg/m²"/>
<system value="http://unitsofmeasure.org"/>
<code value="mg/m2"/>
</valueQuantity>
<scope value="lifetime"/>
</doseLimit>
</safety>
</dosageInstruction>
</MedicationRequest>
Notes:
Microgynon tab (contraceptives): 1 tablet daily for 21 days, then 7 days off. Then repeat
Structure
Timing.repeat.endOffset = 7 d for the off-interval.
MedicationRequest
medication
concept
coding: Microgynon tab
dosageInstruction
simple
timing
repeat
endOffset = 7 d
frequency: 21
period: 28
periodUnit: d
doseAndRate
doseQuantity: 1 tablet
JSON
{
"resourceType": "MedicationRequest",
"medication": {
"concept": {
"text": "Microgynon tab"
}
},
"dosageInstruction": {
"simple": {
"timing": {
"repeat": {
"endOffset": {
"value": 7,
"unit": "days",
"system": "http://unitsofmeasure.org",
"code": "d"
},
"frequency": 21,
"period": 28,
"periodUnit": "d"
}
},
"doseAndRate": [
{
"doseQuantity": {
"value": 1,
"unit": "tablet",
"system": "http://unitsofmeasure.org",
"code": "{tablet}"
}
}
]
}
}
}
XML
<MedicationRequest xmlns="http://hl7.org/fhir">
<medication>
<concept>
<text value="Microgynon tab"/>
</concept>
</medication>
<dosageInstruction>
<simple>
<timing>
<repeat>
<endOffset>
<value value="7"/>
<unit value="days"/>
<system value="http://unitsofmeasure.org"/>
<code value="d"/>
</endOffset>
<frequency value="21"/>
<period value="28"/>
<periodUnit value="d"/>
</repeat>
</timing>
<doseAndRate>
<doseQuantity>
<value value="1"/>
<unit value="tablet"/>
<system value="http://unitsofmeasure.org"/>
<code value="{tablet}"/>
</doseQuantity>
</doseAndRate>
</simple>
</dosageInstruction>
</MedicationRequest>
Notes:
Iron sucrose: “Mon/Wed/Fri 09:00 × 5 doses total.
Structure
timing.repeat.dayOfWeek = Mon|Wed|Fri; timeOfDay = 09:00; count = 5.
MedicationRequest
medication
concept
coding: Iron sucrose
dosageInstruction
simple
timing
repeat
count: 5
period: 1
periodUnit: d
dayOfWeek = Mon|Wed|Fri
timeOfDay: 09:00
JSON
{
"resourceType": "MedicationRequest",
"medication": {
"concept": {
"text": "Iron sucrose"
}
},
"dosageInstruction": {
"simple": {
"timing": {
"repeat": {
"count": 5,
"period": 1,
"periodUnit": "d",
"dayOfWeek": ["mon", "wed", "fri"],
"timeOfDay": ["09:00"]
}
}
}
}
}
XML
<MedicationRequest xmlns="http://hl7.org/fhir">
<medication>
<concept>
<text value="Iron sucrose"/>
</concept>
</medication>
<dosageInstruction>
<simple>
<timing>
<repeat>
<count value="5"/>
<period value="1"/>
<periodUnit value="d"/>
<dayOfWeek value="mon"/>
<dayOfWeek value="wed"/>
<dayOfWeek value="fri"/>
<timeOfDay value="09:00"/>
</repeat>
</timing>
<doseAndRate>
<doseQuantity>
<value value="1"/>
<unit value="dose"/>
<system value="http://unitsofmeasure.org"/>
<code value="{dose}"/>
</doseQuantity>
</doseAndRate>
</simple>
</dosageInstruction>
</MedicationRequest>
Symbicort (budesonide/formoterol):
Structure
dosageDetails.step.component entries.MedicationRequest.dosageInstruction.safety.doseLimit with scope=administration (6 puffs) and scope=period (12 puffs / 1 day).
MedicationRequest
medication
concept
coding: Symbicort
dosageInstruction
step
component
timing
when: MORN | EVE
doseAndRate
rateQuantity: 2 puffs/day
component
asNeeded: true
safety
doseLimit[0]
valueQuantity: 12 puffs
scope: period
period: 1 day
doseLimit[1]
valueQuantity: 6 puffs
scope: administration
JSON
{
"resourceType": "MedicationRequest",
"medication": {
"concept": {
"text": "Symbicort"
}
},
"dosageInstruction": {
"step": [
{
"component": [
{
"timing": {
"repeat": {
"when": ["MORN", "EVE"]
}
},
"doseAndRate": [
{
"rateQuantity": {
"value": 2,
"unit": "puffs/day",
"system": "http://unitsofmeasure.org",
"code": "{puff}/d"
}
}
]
},
{
"asNeeded": true
}
]
}
],
"safety": {
"doseLimit": [
{
"valueQuantity": {
"value": 12,
"unit": "puffs",
"system": "http://unitsofmeasure.org",
"code": "{puff}"
},
"scope": "period",
"period": {
"value": 1,
"unit": "day",
"system": "http://unitsofmeasure.org",
"code": "d"
}
},
{
"valueQuantity": {
"value": 6,
"unit": "puffs",
"system": "http://unitsofmeasure.org",
"code": "{puff}"
},
"scope": "administration"
}
]
}
}
}
XML
<MedicationRequest xmlns="http://hl7.org/fhir">
<medication>
<concept>
<text value="Symbicort"/>
</concept>
</medication>
<dosageInstruction>
<step>
<component>
<timing>
<repeat>
<when value="MORN"/>
<when value="EVE"/>
</repeat>
</timing>
<doseAndRate>
<rateQuantity>
<value value="2"/>
<unit value="puffs/day"/>
<system value="http://unitsofmeasure.org"/>
<code value="{puff}/d"/>
</rateQuantity>
</doseAndRate>
</component>
<component>
<asNeeded value="true"/>
</component>
</step>
<safety>
<doseLimit>
<valueQuantity>
<value value="12"/>
<unit value="puffs"/>
<system value="http://unitsofmeasure.org"/>
<code value="{puff}"/>
</valueQuantity>
<scope value="period"/>
<period>
<value value="1"/>
<unit value="day"/>
<system value="http://unitsofmeasure.org"/>
<code value="d"/>
</period>
</doseLimit>
<doseLimit>
<valueQuantity>
<value value="6"/>
<unit value="puffs"/>
<system value="http://unitsofmeasure.org"/>
<code value="{puff}"/>
</valueQuantity>
<scope value="administration"/>
</doseLimit>
</safety>
</dosageInstruction>
</MedicationRequest>
Vitamin D 1 vial the first day of each month.
Structure
timing-dayOfMonth with value 1.frequency=1, period=1, periodUnit=mo.
MedicationRequest
medication
concept
coding: Vitamin D
dosageInstruction
simple
timing
repeat
extension['%timing-dayOfMonth'].valueInteger: 1
frequency: 1
period: 1
periodUnit: mo
JSON
{
"resourceType": "MedicationRequest",
"medication": {
"concept": {
"text": "Vitamin D"
}
},
"dosageInstruction": {
"simple": {
"timing": {
"repeat": {
"extension": [
{
"url": "http://hl7.org/fhir/StructureDefinition/timing-dayOfMonth",
"valueInteger": 1
}
],
"frequency": 1,
"period": 1,
"periodUnit": "mo"
}
},
"doseAndRate": [
{
"doseQuantity": {
"value": 1,
"unit": "dose",
"system": "http://unitsofmeasure.org",
"code": "{dose}"
}
}
]
}
}
}
XML
<MedicationRequest xmlns="http://hl7.org/fhir">
<medication>
<concept>
<text value="Vitamin D"/>
</concept>
</medication>
<dosageInstruction>
<simple>
<timing>
<repeat>
<extension url="http://hl7.org/fhir/StructureDefinition/timing-dayOfMonth">
<valueInteger value="1"/>
</extension>
<frequency value="1"/>
<period value="1"/>
<periodUnit value="mo"/>
</repeat>
</timing>
<doseAndRate>
<doseQuantity>
<value value="1"/>
<unit value="dose"/>
<system value="http://unitsofmeasure.org"/>
<code value="{dose}"/>
</doseQuantity>
</doseAndRate>
</simple>
</dosageInstruction>
</MedicationRequest>
Notes:
(or will be)
1 tablet a day for a week, then 3 days break, then 1 tablet a day for 3 days
Structure
MedicationRequest
medication
concept
coding: Vitamin D
dosageInstruction
step
component
timing
repeat
count : 7
period: 1
periodUnit: d
doseAndRate
doseQuantity: 1 tablet
step
component
timing
repeat
count : 3
period: 1
periodUnit: d
doseAndRate
doseQuantity: 0 tablet
step
component
timing
repeat
count : 3
period: 1
periodUnit: d
doseAndRate
doseQuantity: 1 tablet
JSON
{
"resourceType": "MedicationRequest",
"medication": {
"concept": {
"text": "Vitamin D"
}
},
"dosageInstruction": {
"step": [
{
"component": [
{
"timing": {
"repeat": {
"count": 7,
"period": 1,
"periodUnit": "d"
}
},
"doseAndRate": [
{
"doseQuantity": {
"value": 1,
"unit": "tablet",
"system": "http://unitsofmeasure.org",
"code": "{tablet}"
}
}
]
}
]
},
{
"component": [
{
"timing": {
"repeat": {
"count": 3,
"period": 1,
"periodUnit": "d"
}
},
"doseAndRate": [
{
"doseQuantity": {
"value": 0,
"unit": "tablet",
"system": "http://unitsofmeasure.org",
"code": "{tablet}"
}
}
]
}
]
},
{
"component": [
{
"timing": {
"repeat": {
"count": 3,
"period": 1,
"periodUnit": "d"
}
},
"doseAndRate": [
{
"doseQuantity": {
"value": 1,
"unit": "tablet",
"system": "http://unitsofmeasure.org",
"code": "{tablet}"
}
}
]
}
]
}
]
}
}
XML
<MedicationRequest xmlns="http://hl7.org/fhir">
<medication>
<concept>
<text value="Vitamin D"/>
</concept>
</medication>
<dosageInstruction>
<!-- Step 1: 1 tablet daily for 7 days -->
<step>
<component>
<timing>
<repeat>
<count value="7"/>
<period value="1"/>
<periodUnit value="d"/>
</repeat>
</timing>
<doseAndRate>
<doseQuantity>
<value value="1"/>
<unit value="tablet"/>
<system value="http://unitsofmeasure.org"/>
<code value="{tablet}"/>
</doseQuantity>
</doseAndRate>
</component>
</step>
<!-- Step 2: 0 tablets for 3 days -->
<step>
<component>
<timing>
<repeat>
<count value="3"/>
<period value="1"/>
<periodUnit value="d"/>
</repeat>
</timing>
<doseAndRate>
<doseQuantity>
<value value="0"/>
<unit value="tablet"/>
<system value="http://unitsofmeasure.org"/>
<code value="{tablet}"/>
</doseQuantity>
</doseAndRate>
</component>
</step>
<!-- Step 3: 1 tablet daily for 3 days -->
<step>
<component>
<timing>
<repeat>
<count value="3"/>
<period value="1"/>
<periodUnit value="d"/>
</repeat>
</timing>
<doseAndRate>
<doseQuantity>
<value value="1"/>
<unit value="tablet"/>
<system value="http://unitsofmeasure.org"/>
<code value="{tablet}"/>
</doseQuantity>
</doseAndRate>
</component>
</step>
</dosageInstruction>
</MedicationRequest>
Notes:
Malaria prophylaxis: start 1 day before start of (event), stop 7 days after end of (event)
Structure
start.offset = -1 d).timing.repeat.
MedicationRequest
medication
concept
coding: Malaria XXX
dosageInstruction
step
start
contextCode
coding : [start of trip]
offsetDuration: -1 d
end
contextCode
coding : [end of trip]
offsetDuration: 7 d
component
timing
repeat
period: 1
periodUnit: d
JSON
{
"resourceType": "MedicationRequest",
"medication": {
"concept": {
"text": "Malaria XXX"
}
},
"dosageInstruction": {
"step": [{
"start": {
"contextCode": {
"coding": [
{
"system": "http://example.org/travel-context",
"code": "trip-start",
"display": "start of trip"
}
]
},
"offsetDuration": {
"value": -1,
"unit": "days",
"system": "http://unitsofmeasure.org",
"code": "d"
}
},
"end": {
"contextCode": {
"coding": [
{
"system": "http://example.org/travel-context",
"code": "trip-end",
"display": "end of trip"
}
]
},
"offsetDuration": {
"value": 7,
"unit": "days",
"system": "http://unitsofmeasure.org",
"code": "d"
}
},
"component": [{
"timing": {
"repeat": {
"period": 1,
"periodUnit": "d"
}
},
"doseAndRate": [
{
"doseQuantity": {
"value": 1,
"unit": "dose",
"system": "http://unitsofmeasure.org",
"code": "{dose}"
}
}]
}]
}]
}
}
XML
<MedicationRequest xmlns="http://hl7.org/fhir">
<medication>
<concept>
<text value="Malaria XXX"/>
</concept>
</medication>
<dosageInstruction>
<step>
<start>
<contextCode>
<coding>
<system value="http://example.org/travel-context"/>
<code value="trip-start"/>
<display value="start of trip"/>
</coding>
</contextCode>
<offsetDuration>
<value value="-1"/>
<unit value="days"/>
<system value="http://unitsofmeasure.org"/>
<code value="d"/>
</offsetDuration>
</start>
<end>
<contextCode>
<coding>
<system value="http://example.org/travel-context"/>
<code value="trip-end"/>
<display value="end of trip"/>
</coding>
</contextCode>
<offsetDuration>
<value value="7"/>
<unit value="days"/>
<system value="http://unitsofmeasure.org"/>
<code value="d"/>
</offsetDuration>
</end>
</step>
<timing>
<repeat>
<period value="1"/>
<periodUnit value="d"/>
</repeat>
</timing>
<doseAndRate>
<doseQuantity>
<value value="1"/>
<unit value="dose"/>
<system value="http://unitsofmeasure.org"/>
<code value="{dose}"/>
</doseQuantity>
</doseAndRate>
</dosageInstruction>
</MedicationRequest>
Caveat: Event semantics are primarily for rendering/coordination, not general computation.
PREDNISOLONE 20 mg : 60 mg morning until 3 negative urine strip then 50 mg morning for 1 week, then 40 mg morning for 1 week, then 30 mg morning for 1 week, then 20 mg morning for 1 week, then 10 mg morning for 2 weeks, then see doctor for stopping treatment depending on evolution
Structure
dosageDetails.step entries per step (weekly bounds).EventDefinition to describe the “3 negative strips” event
MedicationRequest
medication
concept
coding: PREDNISOLONE 20 mg
dosageInstruction
step
end
contextDefinition: EventDefinition/example-data-with-profile
component
timing
repeat
period: 1
periodUnit: d
when: MORN
doseAndRate
doseQuantity: 60mg
step
component
timing
repeat
boundsDuration: 1 wk
period: 1
periodUnit: d
when: MORN
doseAndRate
doseQuantity: 50mg
step
component
timing
repeat
boundsDuration: 1 wk
period: 1
periodUnit: d
when: MORN
doseAndRate
doseQuantity: 40mg
step
component
timing
repeat
boundsDuration: 1 wk
period: 1
periodUnit: d
when: MORN
doseAndRate
doseQuantity: 30mg
# etc
JSON
{
"resourceType": "MedicationRequest",
"medication": {
"concept": {
"text": "PREDNISOLONE 20 mg"
}
},
"dosageInstruction": {
"step": [
{
"end": {
"contextDefinition": "http://hl7.org/fhir/EventDefinition/example-data-with-profile"
},
"component": [
{
"timing": {
"repeat": {
"period": 1,
"periodUnit": "d",
"when": ["MORN"]
}
},
"doseAndRate": [
{
"doseQuantity": {
"value": 60,
"unit": "mg",
"system": "http://unitsofmeasure.org",
"code": "mg"
}
}
]
}
]
},
{
"component": [
{
"timing": {
"repeat": {
"boundsDuration": {
"value": 1,
"unit": "week",
"system": "http://unitsofmeasure.org",
"code": "wk"
},
"period": 1,
"periodUnit": "d",
"when": ["MORN"]
}
},
"doseAndRate": [
{
"doseQuantity": {
"value": 40,
"unit": "mg",
"system": "http://unitsofmeasure.org",
"code": "mg"
}
}
]
},
{
"timing": {
"repeat": {
"boundsDuration": {
"value": 1,
"unit": "week",
"system": "http://unitsofmeasure.org",
"code": "wk"
},
"period": 1,
"periodUnit": "d",
"when": ["MORN"]
}
},
"doseAndRate": [
{
"doseQuantity": {
"value": 30,
"unit": "mg",
"system": "http://unitsofmeasure.org",
"code": "mg"
}
}
]
}
]
}
]
}
}
XML
<MedicationRequest xmlns="http://hl7.org/fhir">
<medication>
<concept>
<text value="PREDNISOLONE 20 mg"/>
</concept>
</medication>
<dosageInstruction>
<!-- Step 1: 60mg daily until event -->
<step>
<end>
<contextDefinition value="http://hl7.org/fhir/EventDefinition/example"/>
</end>
<component>
<timing>
<repeat>
<period value="1"/>
<periodUnit value="d"/>
<when value="MORN"/>
</repeat>
</timing>
<doseAndRate>
<doseQuantity>
<value value="60"/>
<unit value="mg"/>
<system value="http://unitsofmeasure.org"/>
<code value="mg"/>
</doseQuantity>
</doseAndRate>
</component>
</step>
<!-- Step 2: 40mg daily for 1 week -->
<step>
<component>
<timing>
<repeat>
<boundsDuration>
<value value="1"/>
<unit value="week"/>
<system value="http://unitsofmeasure.org"/>
<code value="wk"/>
</boundsDuration>
<period value="1"/>
<periodUnit value="d"/>
<when value="MORN"/>
</repeat>
</timing>
<doseAndRate>
<doseQuantity>
<value value="40"/>
<unit value="mg"/>
<system value="http://unitsofmeasure.org"/>
<code value="mg"/>
</doseQuantity>
</doseAndRate>
</component>
</step>
<!-- Step 3: 30mg daily for 1 week -->
<step>
<component>
<timing>
<repeat>
<boundsDuration>
<value value="1"/>
<unit value="week"/>
<system value="http://unitsofmeasure.org"/>
<code value="wk"/>
</boundsDuration>
<period value="1"/>
<periodUnit value="d"/>
<when value="MORN"/>
</repeat>
</timing>
<doseAndRate>
<doseQuantity>
<value value="30"/>
<unit value="mg"/>
<system value="http://unitsofmeasure.org"/>
<code value="mg"/>
</doseQuantity>
</doseAndRate>
</component>
</step>
</dosageInstruction>
</MedicationRequest>
Notes:
Dovobet ointment: When needed a treatment period of 4 weeks starts. Applied once daily. Treatment period could be repeated if needed. When using calcipotriol containing medicinal products, the maximum daily dose should not exceed 15 g. The body surface area treated with calcipotriol containing medicinal products should not exceed 30 %
Structure
MedicationRequest.dosageInstruction.safety.doseLimit: 15 g per 1 day (scope=period); “≤30% surface area” captured as narrative or profiled percent on scope=administration.
MedicationRequest
medication
concept
coding: Dovobet ointment
dosageInstruction
step
component
timing
boundsDuration: 4 wk
repeat
period: 1
periodUnit: d
step
component
condition
code: http://hl7.org/fhir/CodeSystem/dosage-condition-code#if needed
timing
repeat
boundsDuration: 4 wk
period: 1
periodUnit: d
safety
doseLimit[0]
valueQuantity: 15g
scope: period
period: 1 day
doseLimit[1]
valueQuantity: 30%{surface area}
scope: administration
JSON
{
"resourceType": "MedicationRequest",
"medication": {
"concept": {
"text": "Dovobet ointment"
}
},
"dosageInstruction": {
"step": [
{
"component": [
{
"timing": {
"repeat": {
"boundsDuration": {
"value": 4,
"unit": "weeks",
"system": "http://unitsofmeasure.org",
"code": "wk"
},
"period": 1,
"periodUnit": "d"
}
},
"doseAndRate": [
{
"doseQuantity": {
"value": 1,
"unit": "application",
"system": "http://unitsofmeasure.org",
"code": "{application}"
}
}
]
}
]
},
{
"component": [
{
"condition": [{
"code": {
"coding": [
{
"system": "http://hl7.org/fhir/CodeSystem/dosage-condition-code",
"code": "if-needed",
"display": "if needed"
}
]
}
}],
"timing": {
"repeat": {
"boundsDuration": {
"value": 4,
"unit": "weeks",
"system": "http://unitsofmeasure.org",
"code": "wk"
},
"period": 1,
"periodUnit": "d"
}
},
"doseAndRate": [
{
"doseQuantity": {
"value": 1,
"unit": "application",
"system": "http://unitsofmeasure.org",
"code": "{application}"
}
}
]
}
]
}
],
"safety": {
"doseLimit": [
{
"valueQuantity": {
"value": 15,
"unit": "g",
"system": "http://unitsofmeasure.org",
"code": "g"
},
"scope": "period",
"period": {
"value": 1,
"unit": "day",
"system": "http://unitsofmeasure.org",
"code": "d"
}
},
{
"valueQuantity": {
"value": 30,
"unit": "%{surface area}",
"system": "http://unitsofmeasure.org",
"code": "%"
},
"scope": "administration"
}
]
}
}
}
XML
<MedicationRequest xmlns="http://hl7.org/fhir">
<medication>
<concept>
<text value="Dovobet ointment"/>
</concept>
</medication>
<dosageInstruction>
<!-- Step 1: Daily for 4 weeks -->
<step>
<component>
<timing>
<repeat>
<boundsDuration>
<value value="4"/>
<unit value="weeks"/>
<system value="http://unitsofmeasure.org"/>
<code value="wk"/>
</boundsDuration>
<period value="1"/>
<periodUnit value="d"/>
</repeat>
</timing>
<doseAndRate>
<doseQuantity>
<value value="1"/>
<unit value="application"/>
<system value="http://unitsofmeasure.org"/>
<code value="{application}"/>
</doseQuantity>
</doseAndRate>
</component>
</step>
<!-- Step 2: As-needed for 4 weeks -->
<step>
<component>
<condition>
<code>
<coding>
<system value="http://hl7.org/fhir/CodeSystem/dosage-condition-code"/>
<code value="if-needed"/>
<display value="If Needed"/>
</coding>
</code>
</condition>
<timing>
<repeat>
<boundsDuration>
<value value="4"/>
<unit value="weeks"/>
<system value="http://unitsofmeasure.org"/>
<code value="wk"/>
</boundsDuration>
<period value="1"/>
<periodUnit value="d"/>
</repeat>
</timing>
<doseAndRate>
<doseQuantity>
<value value="1"/>
<unit value="application"/>
<system value="http://unitsofmeasure.org"/>
<code value="{application}"/>
</doseQuantity>
</doseAndRate>
</component>
</step>
<safety>
<doseLimit>
<valueQuantity>
<value value="15"/>
<unit value="g"/>
<system value="http://unitsofmeasure.org"/>
<code value="g"/>
</valueQuantity>
<scope value="period"/>
<period>
<value value="1"/>
<unit value="day"/>
<system value="http://unitsofmeasure.org"/>
<code value="d"/>
</period>
</doseLimit>
<doseLimit>
<valueQuantity>
<value value="30"/>
<unit value="%{surface area}"/>
<system value="http://unitsofmeasure.org"/>
<code value="%"/>
</valueQuantity>
<scope value="administration"/>
</doseLimit>
</safety>
</dosageInstruction>
</MedicationRequest>
Notes:
FHIR ®© HL7.org 2011+. FHIR R6 hl7.fhir.core#6.0.0-ballot3 generated on Thu, Nov 27, 2025 16:55+0000.
Links: Search
|
Version History |
Contents |
Glossary |
QA |
Compare to R4
|
Compare to R5
|
Compare to Last Ballot
|
|
Propose a change