Medications
This
page
is
part
of
the
Continuous
Integration
Build
of
FHIR
Specification
(v5.0.0:
R5
-
STU
).
This
is
the
current
published
version
in
it's
permanent
home
(it
will
always
(will
be
available
incorrect/inconsistent
at
this
URL).
For
a
full
list
of
available
versions,
see
times).
See
the
Directory
of
published
versions
.
Page
versions:
R5
R4B
R4
R3
Responsible
Owner:
Pharmacy
Work
Group
|
Standards Status : Informative |
See
MedicationRequest
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
component
entry
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
Dosage.
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
R5
hl7.fhir.core#5.0.0
R6
hl7.fhir.core#6.0.0-ballot3
generated
on
Sun,
Mar
26,
2023
15:26+1100.
Wed,
Dec
17,
2025
09:55+0000.
Links:
Search
|
Version
History
|
Contents
|
Glossary
|
QA
|
Compare
to
R4
|
Compare
to
R4B
R5
|
Compare
to
Last
Ballot
|
|
Propose
a
change