Implementation guide for interoperable medicines

This guidance is under active development by NHS England and content may be added or updated on a regular basis.

Element: Dosage

The FHIR Dosage element is complex but essential to achieve medicines interoperability. Extensive implementation guidance with numerous clinically appropriate examples are documented within this guide.

id0..1
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
sequenceΣ0..1integer
textΣ0..1string
additionalInstructionΣ0..*CodeableConcept
patientInstructionΣ0..1string
timingΣ0..1Timing
asNeededBooleanboolean
asNeededCodeableConceptCodeableConcept
siteΣ0..1CodeableConcept
routeΣ0..1CodeableConcept
methodΣ0..1CodeableConcept
id0..1
extensionI0..*Extension
typeΣ0..1CodeableConcept
doseRangeRange
doseQuantitySimpleQuantity
rateRatioRatio
rateRangeRange
rateQuantitySimpleQuantity
maxDosePerPeriodΣ I0..1Ratio
maxDosePerAdministrationΣ I0..1SimpleQuantity
maxDosePerLifetimeΣ I0..1SimpleQuantity
Dosage
DefinitionIndicates how the medication is/was taken or should be taken by the patient.
Cardinality0...*
Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
  • rim: .outboundRelationship[typeCode=COMP].target[classCode=SBADM, moodCode=INT]
Dosage.id
DefinitionUnique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.
Cardinality0...1
Type
Mappings
  • rim: n/a
Dosage.extension
DefinitionMay be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.
Cardinality0...*
TypeExtension
Aliasextensions, user content
Comments

There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

SlicingUnordered, Open, by url(Value)
Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • ext-1: Must have either extensions or value[x], not both
    extension.exists() != value.exists()
Mappings
  • rim: n/a
  • rim: N/A
Dosage.modifierExtension
DefinitionMay be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions. Modifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).
Cardinality0...*
TypeExtension
ModifierTrue
SummaryTrue
Aliasextensions, user content, modifiers
Requirements

Modifier extensions allow for extensions that cannot be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the definition of modifier extensions.

Comments

There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • ext-1: Must have either extensions or value[x], not both
    extension.exists() != value.exists()
Mappings
  • rim: n/a
  • rim: N/A
Dosage.sequence
DefinitionIndicates the order in which the dosage instructions should be applied or interpreted.
Cardinality0...1
Typeinteger
SummaryTrue
Requirements

If the sequence number of multiple Dosages is the same, then it is implied that the instructions are to be treated as concurrent. If the sequence number is different, then the Dosages are intended to be sequential.

Comments

32 bit number; for values larger than this, use decimal

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
  • v2: TQ1-1
  • rim: .text
Dosage.text
DefinitionFree text dosage instructions e.g. SIG.
Cardinality0...1
Typestring
SummaryTrue
Requirements

Free text dosage instructions can be used for cases where the instructions are too complex to code. The content of this attribute does not include the name or description of the medication. When coded instructions are present, the free text instructions may still be present for display to humans taking or administering the medication. It is expected that the text instructions will always be populated. If the dosage.timing attribute is also populated, then the dosage.text should reflect the same information as the timing. Additional information about administration or preparation of the medication should be included as text.

Comments

Note that FHIR strings SHALL NOT exceed 1MB in size

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
  • v2: RXO-6; RXE-21
  • rim: .text
Dosage.additionalInstruction
DefinitionSupplemental instructions to the patient on how to take the medication (e.g. "with meals" or"take half to one hour before food") or warnings for the patient about the medication (e.g. "may cause drowsiness" or "avoid exposure of skin to direct sunlight or sunlamps").
Cardinality0...*
TypeCodeableConcept
Binding

A coded concept identifying additional instructions such as "take with water" or "avoid operating heavy machinery".

SNOMEDCTAdditionalDosageInstructions (example)
SummaryTrue
Requirements

Additional instruction is intended to be coded, but where no code exists, the element could include text. For example, "Swallow with plenty of water" which might or might not be coded.

Comments

Information about administration or preparation of the medication (e.g. "infuse as rapidly as possibly via intraperitoneal port" or "immediately following drug x") should be populated in dosage.text.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
  • v2: CE/CNE/CWE
  • rim: CD
  • orim: fhir:CodeableConcept rdfs:subClassOf dt:CD
  • v2: RXO-7
  • rim: .text
Dosage.patientInstruction
DefinitionInstructions in terms that are understood by the patient or consumer.
Cardinality0...1
Typestring
SummaryTrue
Comments

Note that FHIR strings SHALL NOT exceed 1MB in size

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
  • v2: RXO-7
  • rim: .text
Dosage.timing
DefinitionWhen medication should be administered.
Cardinality0...1
TypeTiming
SummaryTrue
Requirements

The timing schedule for giving the medication to the patient. This data type allows many different expressions. For example: "Every 8 hours"; "Three times a day"; "1/2 an hour before breakfast for 10 days from 23-Dec 2011:"; "15 Oct 2013, 17 Oct 2013 and 1 Nov 2013". Sometimes, a rate can imply duration when expressed as total volume / duration (e.g. 500mL/2 hours implies a duration of 2 hours). However, when rate doesn't imply duration (e.g. 250mL/hour), then the timing.repeat.duration is needed to convey the infuse over time period.

Comments

This attribute might not always be populated while the Dosage.text is expected to be populated. If both are populated, then the Dosage.text should reflect the content of the Dosage.timing.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
  • v2: N/A
  • rim: QSET<TS> (GTS)
  • rim: .effectiveTime
Dosage.asNeeded[x]
DefinitionIndicates whether the Medication is only taken when needed within a specific dosing schedule (Boolean option), or it indicates the precondition for taking the Medication (CodeableConcept).
Cardinality0...1
Typeboolean
Binding

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.

SNOMEDCTMedicationAsNeededReasonCodes (example)
SummaryTrue
Comments

Can express "as needed" without a reason by setting the Boolean = True. In this case the CodeableConcept is not populated. Or you can express "as needed" with a reason by including the CodeableConcept. In this case the Boolean is assumed to be True. If you set the Boolean to False, then the dose is given according to the schedule and is not "prn" or "as needed".

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
  • v2: TQ1-9
  • rim: .outboundRelationship[typeCode=PRCN].target[classCode=OBS, moodCode=EVN, code="as needed"].value=boolean or codable concept
Dosage.site
DefinitionBody site to administer to.
Cardinality0...1
TypeCodeableConcept
Binding

A coded concept describing the site location the medicine enters into or onto the body.

SNOMEDCTAnatomicalStructureForAdministrationSiteCodes (example)
SummaryTrue
Requirements

A coded specification of the anatomic site where the medication first enters the body.

Comments

If the use case requires attributes from the BodySite resource (e.g. to identify and track separately) then use the standard extension bodySite. May be a summary code, or a reference to a very precise definition of the location, or both.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
  • v2: CE/CNE/CWE
  • rim: CD
  • orim: fhir:CodeableConcept rdfs:subClassOf dt:CD
  • v2: RXR-2
  • rim: .approachSiteCode
Dosage.route
DefinitionHow drug should enter body.
Cardinality0...1
TypeCodeableConcept
Binding

A coded concept describing the route or physiological path of administration of a therapeutic agent into or onto the body of a subject.

SNOMEDCTRouteCodes (example)
SummaryTrue
Requirements

A code specifying the route or physiological path of administration of a therapeutic agent into or onto a patient's body.

Comments

Not all terminology uses fit this general pattern. In some cases, models should not use CodeableConcept and use Coding directly and provide their own structure for managing text, codings, translations and the relationship between elements and pre- and post-coordination.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
  • v2: CE/CNE/CWE
  • rim: CD
  • orim: fhir:CodeableConcept rdfs:subClassOf dt:CD
  • v2: RXR-1
  • rim: .routeCode
Dosage.method
DefinitionTechnique for administering medication.
Cardinality0...1
TypeCodeableConcept
Binding

A coded concept describing the technique by which the medicine is administered.

SNOMEDCTAdministrationMethodCodes (example)
SummaryTrue
Requirements

A coded value indicating the method by which the medication is introduced into or onto the body. Most commonly used for injections. For examples, Slow Push; Deep IV.

Comments

Terminologies used often pre-coordinate this term with the route and or form of administration.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
  • v2: CE/CNE/CWE
  • rim: CD
  • orim: fhir:CodeableConcept rdfs:subClassOf dt:CD
  • v2: RXR-4
  • rim: .doseQuantity
Dosage.doseAndRate
DefinitionThe amount of medication administered.
Cardinality0...*
TypeElement
SummaryTrue
Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
  • v2: TQ1-2
Dosage.doseAndRate.id
DefinitionUnique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.
Cardinality0...1
Type
Mappings
  • rim: n/a
Dosage.doseAndRate.extension
DefinitionMay be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.
Cardinality0...*
TypeExtension
Aliasextensions, user content
Comments

There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

SlicingUnordered, Open, by url(Value)
Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • ext-1: Must have either extensions or value[x], not both
    extension.exists() != value.exists()
Mappings
  • rim: n/a
  • rim: N/A
Dosage.doseAndRate.type
DefinitionThe kind of dose or rate specified, for example, ordered or calculated.
Cardinality0...1
TypeCodeableConcept
Binding

The kind of dose or rate specified.

DoseAndRateType (example)
SummaryTrue
Requirements

If the type is not populated, assume to be "ordered".

Comments

Not all terminology uses fit this general pattern. In some cases, models should not use CodeableConcept and use Coding directly and provide their own structure for managing text, codings, translations and the relationship between elements and pre- and post-coordination.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
  • v2: CE/CNE/CWE
  • rim: CD
  • orim: fhir:CodeableConcept rdfs:subClassOf dt:CD
  • v2: RXO-21; RXE-23
Dosage.doseAndRate.dose[x]
DefinitionAmount of medication per dose.
Cardinality0...1
TypeRange
SummaryTrue
Requirements

The amount of therapeutic or other substance given at one administration event.

Comments

Note that this specifies the quantity of the specified medication, not the quantity for each active ingredient(s). Each ingredient amount can be communicated in the Medication resource. For example, if one wants to communicate that a tablet was 375 mg, where the dose was one tablet, you can use the Medication resource to document that the tablet was comprised of 375 mg of drug XYZ. Alternatively if the dose was 375 mg, then you may only need to use the Medication resource to indicate this was a tablet. If the example were an IV such as dopamine and you wanted to communicate that 400mg of dopamine was mixed in 500 ml of some IV solution, then this would all be communicated in the Medication resource. If the administration is not intended to be instantaneous (rate is present or timing has a duration), this can be specified to convey the total amount to be administered over the period of time as indicated by the schedule e.g. 500 ml in dose, with timing used to convey that this should be done over 4 hours.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
  • v2: RXO-2, RXE-3
  • rim: .doseQuantity
Dosage.doseAndRate.rate[x]
DefinitionAmount of medication per unit of time.
Cardinality0...1
TypeRatio
SummaryTrue
Requirements

Identifies the speed with which the medication was or will be introduced into the patient. Typically the rate for an infusion e.g. 100 ml per 1 hour or 100 ml/hr. May also be expressed as a rate per unit of time e.g. 500 ml per 2 hours. Other examples: 200 mcg/min or 200 mcg/1 minute; 1 liter/8 hours. Sometimes, a rate can imply duration when expressed as total volume / duration (e.g. 500mL/2 hours implies a duration of 2 hours). However, when rate doesn't imply duration (e.g. 250mL/hour), then the timing.repeat.duration is needed to convey the infuse over time period.

Comments

It is possible to supply both a rate and a doseQuantity to provide full details about how the medication is to be administered and supplied. If the rate is intended to change over time, depending on local rules/regulations, each change should be captured as a new version of the MedicationRequest with an updated rate, or captured with a new MedicationRequest with the new rate.

It is possible to specify a rate over time (for example, 100 ml/hour) using either the rateRatio and rateQuantity. The rateQuantity approach requires systems to have the capability to parse UCUM grammer where ml/hour is included rather than a specific ratio where the time is specified as the denominator. Where a rate such as 500ml over 2 hours is specified, the use of rateRatio may be more semantically correct than specifying using a rateQuantity of 250 mg/hour.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
  • v2: RXE22, RXE23, RXE-24
  • rim: .rateQuantity
Dosage.maxDosePerPeriod
DefinitionUpper limit on medication per unit of time.
Cardinality0...1
TypeRatio
SummaryTrue
Requirements

The maximum total quantity of a therapeutic substance that may be administered to a subject over the period of time. For example, 1000mg in 24 hours.

Comments

This is intended for use as an adjunct to the dosage when there is an upper cap. For example "2 tablets every 4 hours to a maximum of 8/day".

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • rat-1: Numerator and denominator SHALL both be present, or both are absent. If both are absent, there SHALL be some extension present
    (numerator.empty() xor denominator.exists()) and (numerator.exists() or extension.exists())
Mappings
  • rim: n/a
  • v2: N/A
  • rim: RTO
  • v2: RXO-23, RXE-19
  • rim: .maxDoseQuantity
Dosage.maxDosePerAdministration
DefinitionUpper limit on medication per administration.
Cardinality0...1
TypeSimpleQuantity
SummaryTrue
Requirements

The maximum total quantity of a therapeutic substance that may be administered to a subject per administration.

Comments

This is intended for use as an adjunct to the dosage when there is an upper cap. For example, a body surface area related dose with a maximum amount, such as 1.5 mg/m2 (maximum 2 mg) IV over 5 – 10 minutes would have doseQuantity of 1.5 mg/m2 and maxDosePerAdministration of 2 mg.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • qty-3: If a code for the unit is present, the system SHALL also be present
    code.empty() or system.exists()
  • sqty-1: The comparator is not used on a SimpleQuantity
    comparator.empty()
Mappings
  • rim: n/a
  • v2: SN (see also Range) or CQ
  • rim: PQ, IVL<PQ>, MO, CO, depending on the values
  • rim: not supported
Dosage.maxDosePerLifetime
DefinitionUpper limit on medication per lifetime of the patient.
Cardinality0...1
TypeSimpleQuantity
SummaryTrue
Requirements

The maximum total quantity of a therapeutic substance that may be administered per lifetime of the subject.

Comments

The context of use may frequently define what kind of quantity this is and therefore what kind of units can be used. The context of use may also restrict the values for the comparator.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • qty-3: If a code for the unit is present, the system SHALL also be present
    code.empty() or system.exists()
  • sqty-1: The comparator is not used on a SimpleQuantity
    comparator.empty()
Mappings
  • rim: n/a
  • v2: SN (see also Range) or CQ
  • rim: PQ, IVL<PQ>, MO, CO, depending on the values
  • rim: not supported

Implementation guidance

Implementation guidance follows for each data item within the Dosage structure, in the order in which they are shown in the above treeview.


Element: sequence

Multi-sequence dosage instructions.

A multi-sequence would be required where a dosage instruction changes over a given time schedule, where a dosage instruction includes optional follow-up doses or where a concurrent dosage instruction is required for the same medication at a different dose.

Examples below include Prednisolone to treat Bell’s palsy where a dose starts at 60 mg per day for a period of time then reduces by 10 mg per day. This would be described as a sequential dosage instruction. A concurrent dosage example is provided to describe a different dose in the morning to that at midday.

Sequential Instructions

Where the value of sequence is an incremental integer it defines a sequential instruction.

Example use of the FHIR R4 Dosage using multiple sequential sequences

<MedicationRequest xmlns="http://hl7.org/fhir">
    <id value="43955772-3136-49be-829e-ac04b56894d5" />
    <meta>
        <profile value="https://fhir.hl7.org.uk/StructureDefinition/UKCore-MedicationRequest" />
    </meta>
    <status value="active" />
    <intent value="order" />
    <category>
        <coding>
            <system value="http://terminology.hl7.org/CodeSystem/medicationrequest-category" />
            <code value="inpatient" />
            <display value="inpatient" />
        </coding>
    </category>
    <priority value="routine" />
    <medicationCodeableConcept>
        <coding>
            <system value="https://dmd.nhs.uk" />
            <code value="52388000" />
            <display value="Prednisolone" />
        </coding>
    </medicationCodeableConcept>
    <subject>
        <identifier>
            <system value="https://fhir.nhs.uk/Id/nhs-number" />
            <value value="9999999999" />
        </identifier>
    </subject>
    <authoredOn value="2020-05-15T15:00:00Z" />
    <requester>
        <reference value="urn:staff-1112" />
        <display value="Dr Maikeu Well" />
    </requester>
    <recorder>
        <reference value="urn:staff-1112" />
        <display value="Dr Maikeu Well" />
    </recorder>
    <dosageInstruction>
        <sequence value="1" />
        <text value="60 milligram - once a day - for 4 days" />
        <timing>
            <repeat>
                <boundsDuration>
                    <value value="4" />
                    <unit value="day" />
                    <system value="http://unitsofmeasure.org" />
                    <code value="d" />
                </boundsDuration>
                <frequency value="1" />
                <period value="1" />
                <periodUnit value="d" />
            </repeat>
        </timing>
        <doseAndRate>
            <doseQuantity>
                <value value="60" />
                <unit value="milligram" />
                <system value="http://unitsofmeasure.org" />
                <code value="mg" />
            </doseQuantity>
        </doseAndRate>
    </dosageInstruction>
    <dosageInstruction>
        <sequence value="2" />
        <text value="50 milligram - once a day - for 1 day" />
        <timing>
            <repeat>
                <boundsDuration>
                    <value value="1" />
                    <unit value="day" />
                    <system value="http://unitsofmeasure.org" />
                    <code value="d" />
                </boundsDuration>
                <frequency value="1" />
                <period value="1" />
                <periodUnit value="d" />
            </repeat>
        </timing>
        <doseAndRate>
            <doseQuantity>
                <value value="50" />
                <unit value="milligram" />
                <system value="http://unitsofmeasure.org" />
                <code value="mg" />
            </doseQuantity>
        </doseAndRate>
    </dosageInstruction>
    <dosageInstruction>
        <sequence value="3" />
        <text value="40 milligram - once a day - for 1 day" />
        <timing>
            <repeat>
                <boundsDuration>
                    <value value="1" />
                    <unit value="day" />
                    <system value="http://unitsofmeasure.org" />
                    <code value="d" />
                </boundsDuration>
                <frequency value="1" />
                <period value="1" />
                <periodUnit value="d" />
            </repeat>
        </timing>
        <doseAndRate>
            <doseQuantity>
                <value value="40" />
                <unit value="milligram" />
                <system value="http://unitsofmeasure.org" />
                <code value="mg" />
            </doseQuantity>
        </doseAndRate>
    </dosageInstruction>
    <dosageInstruction>
        <sequence value="4" />
        <text value="30 milligram - once a day - for 1 day" />
        <timing>
            <repeat>
                <boundsDuration>
                    <value value="1" />
                    <unit value="day" />
                    <system value="http://unitsofmeasure.org" />
                    <code value="d" />
                </boundsDuration>
                <frequency value="1" />
                <period value="1" />
                <periodUnit value="d" />
            </repeat>
        </timing>
        <doseAndRate>
            <doseQuantity>
                <value value="30" />
                <unit value="milligram" />
                <system value="http://unitsofmeasure.org" />
                <code value="mg" />
            </doseQuantity>
        </doseAndRate>
    </dosageInstruction>
    <dosageInstruction>
        <sequence value="5" />
        <text value="20 milligram - once a day - for 1 day" />
        <timing>
            <repeat>
                <boundsDuration>
                    <value value="1" />
                    <unit value="day" />
                    <system value="http://unitsofmeasure.org" />
                    <code value="d" />
                </boundsDuration>
                <frequency value="1" />
                <period value="1" />
                <periodUnit value="d" />
            </repeat>
        </timing>
        <doseAndRate>
            <doseQuantity>
                <value value="20" />
                <unit value="milligram" />
                <system value="http://unitsofmeasure.org" />
                <code value="mg" />
            </doseQuantity>
        </doseAndRate>
    </dosageInstruction>
    <dosageInstruction>
        <sequence value="6" />
        <text value="10 milligram - once a day - for 1 day - Then stop" />
        <additionalInstruction>
            <coding>
                <system value="http://snomed.info/sct" />
                <code value="422327006" />
                <display value="Then stop" />
            </coding>
        </additionalInstruction>
        <timing>
            <repeat>
                <boundsDuration>
                    <value value="1" />
                    <unit value="day" />
                    <system value="http://unitsofmeasure.org" />
                    <code value="d" />
                </boundsDuration>
                <frequency value="1" />
                <period value="1" />
                <periodUnit value="d" />
            </repeat>
        </timing>
        <doseAndRate>
            <doseQuantity>
                <value value="10" />
                <unit value="milligram" />
                <system value="http://unitsofmeasure.org" />
                <code value="mg" />
            </doseQuantity>
        </doseAndRate>
    </dosageInstruction>
    <substitution>
        <allowedBoolean value="false" />
    </substitution>
</MedicationRequest>
{
    "resourceType": "MedicationRequest",
    "id": "43955772-3136-49be-829e-ac04b56894d5",
    "meta": {
        "profile":  [
            "https://fhir.hl7.org.uk/StructureDefinition/UKCore-MedicationRequest"
        ]
    },
    "status": "active",
    "intent": "order",
    "category":  [
        {
            "coding":  [
                {
                    "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category",
                    "code": "inpatient",
                    "display": "inpatient"
                }
            ]
        }
    ],
    "priority": "routine",
    "medicationCodeableConcept": {
        "coding":  [
            {
                "system": "https://dmd.nhs.uk",
                "code": "52388000",
                "display": "Prednisolone"
            }
        ]
    },
    "subject": {
        "identifier": {
            "system": "https://fhir.nhs.uk/Id/nhs-number",
            "value": "9999999999"
        }
    },
    "authoredOn": "2020-05-15T15:00:00Z",
    "requester": {
        "reference": "urn:staff-1112",
        "display": "Dr Maikeu Well"
    },
    "recorder": {
        "reference": "urn:staff-1112",
        "display": "Dr Maikeu Well"
    },
    "dosageInstruction":  [
        {
            "sequence": 1,
            "text": "60 milligram - once a day - for 4 days",
            "timing": {
                "repeat": {
                    "boundsDuration": {
                        "value": 4,
                        "unit": "day",
                        "system": "http://unitsofmeasure.org",
                        "code": "d"
                    },
                    "frequency": 1,
                    "period": 1,
                    "periodUnit": "d"
                }
            },
            "doseAndRate":  [
                {
                    "doseQuantity": {
                        "value": 60,
                        "unit": "milligram",
                        "system": "http://unitsofmeasure.org",
                        "code": "mg"
                    }
                }
            ]
        },
        {
            "sequence": 2,
            "text": "50 milligram - once a day - for 1 day",
            "timing": {
                "repeat": {
                    "boundsDuration": {
                        "value": 1,
                        "unit": "day",
                        "system": "http://unitsofmeasure.org",
                        "code": "d"
                    },
                    "frequency": 1,
                    "period": 1,
                    "periodUnit": "d"
                }
            },
            "doseAndRate":  [
                {
                    "doseQuantity": {
                        "value": 50,
                        "unit": "milligram",
                        "system": "http://unitsofmeasure.org",
                        "code": "mg"
                    }
                }
            ]
        },
        {
            "sequence": 3,
            "text": "40 milligram - once a day - for 1 day",
            "timing": {
                "repeat": {
                    "boundsDuration": {
                        "value": 1,
                        "unit": "day",
                        "system": "http://unitsofmeasure.org",
                        "code": "d"
                    },
                    "frequency": 1,
                    "period": 1,
                    "periodUnit": "d"
                }
            },
            "doseAndRate":  [
                {
                    "doseQuantity": {
                        "value": 40,
                        "unit": "milligram",
                        "system": "http://unitsofmeasure.org",
                        "code": "mg"
                    }
                }
            ]
        },
        {
            "sequence": 4,
            "text": "30 milligram - once a day - for 1 day",
            "timing": {
                "repeat": {
                    "boundsDuration": {
                        "value": 1,
                        "unit": "day",
                        "system": "http://unitsofmeasure.org",
                        "code": "d"
                    },
                    "frequency": 1,
                    "period": 1,
                    "periodUnit": "d"
                }
            },
            "doseAndRate":  [
                {
                    "doseQuantity": {
                        "value": 30,
                        "unit": "milligram",
                        "system": "http://unitsofmeasure.org",
                        "code": "mg"
                    }
                }
            ]
        },
        {
            "sequence": 5,
            "text": "20 milligram - once a day - for 1 day",
            "timing": {
                "repeat": {
                    "boundsDuration": {
                        "value": 1,
                        "unit": "day",
                        "system": "http://unitsofmeasure.org",
                        "code": "d"
                    },
                    "frequency": 1,
                    "period": 1,
                    "periodUnit": "d"
                }
            },
            "doseAndRate":  [
                {
                    "doseQuantity": {
                        "value": 20,
                        "unit": "milligram",
                        "system": "http://unitsofmeasure.org",
                        "code": "mg"
                    }
                }
            ]
        },
        {
            "sequence": 6,
            "text": "10 milligram - once a day - for 1 day - Then stop",
            "additionalInstruction":  [
                {
                    "coding":  [
                        {
                            "system": "http://snomed.info/sct",
                            "code": "422327006",
                            "display": "Then stop"
                        }
                    ]
                }
            ],
            "timing": {
                "repeat": {
                    "boundsDuration": {
                        "value": 1,
                        "unit": "day",
                        "system": "http://unitsofmeasure.org",
                        "code": "d"
                    },
                    "frequency": 1,
                    "period": 1,
                    "periodUnit": "d"
                }
            },
            "doseAndRate":  [
                {
                    "doseQuantity": {
                        "value": 10,
                        "unit": "milligram",
                        "system": "http://unitsofmeasure.org",
                        "code": "mg"
                    }
                }
            ]
        }
    ],
    "substitution": {
        "allowedBoolean": false
    }
}
MedicationRequest.id[0]43955772-3136-49be-829e-ac04b56894d5
MedicationRequest.meta[0].profile[0]https://fhir.hl7.org.uk/StructureDefinition/UKCore-MedicationRequest
MedicationRequest.status[0]active
MedicationRequest.intent[0]order
MedicationRequest.category[0].coding[0].system[0]http://terminology.hl7.org/CodeSystem/medicationrequest-category
MedicationRequest.category[0].coding[0].code[0]inpatient
MedicationRequest.category[0].coding[0].display[0]inpatient
MedicationRequest.priority[0]routine
MedicationRequest.medication[0].coding[0].system[0]https://dmd.nhs.uk
MedicationRequest.medication[0].coding[0].code[0]52388000
MedicationRequest.medication[0].coding[0].display[0]Prednisolone
MedicationRequest.subject[0].identifier[0].system[0]https://fhir.nhs.uk/Id/nhs-number
MedicationRequest.subject[0].identifier[0].value[0]9999999999
MedicationRequest.authoredOn[0]2020-05-15T15:00:00Z
MedicationRequest.requester[0].reference[0]urn:staff-1112
MedicationRequest.requester[0].display[0]Dr Maikeu Well
MedicationRequest.recorder[0].reference[0]urn:staff-1112
MedicationRequest.recorder[0].display[0]Dr Maikeu Well
MedicationRequest.dosageInstruction[0].sequence[0]1
MedicationRequest.dosageInstruction[0].text[0]60 milligram - once a day - for 4 days
MedicationRequest.dosageInstruction[0].timing[0].repeat[0].bounds[0].value[0]4
MedicationRequest.dosageInstruction[0].timing[0].repeat[0].bounds[0].unit[0]day
MedicationRequest.dosageInstruction[0].timing[0].repeat[0].bounds[0].system[0]http://unitsofmeasure.org
MedicationRequest.dosageInstruction[0].timing[0].repeat[0].bounds[0].code[0]d
MedicationRequest.dosageInstruction[0].timing[0].repeat[0].frequency[0]1
MedicationRequest.dosageInstruction[0].timing[0].repeat[0].period[0]1
MedicationRequest.dosageInstruction[0].timing[0].repeat[0].periodUnit[0]d
MedicationRequest.dosageInstruction[0].doseAndRate[0].dose[0].value[0]60
MedicationRequest.dosageInstruction[0].doseAndRate[0].dose[0].unit[0]milligram
MedicationRequest.dosageInstruction[0].doseAndRate[0].dose[0].system[0]http://unitsofmeasure.org
MedicationRequest.dosageInstruction[0].doseAndRate[0].dose[0].code[0]mg
MedicationRequest.dosageInstruction[1].sequence[0]2
MedicationRequest.dosageInstruction[1].text[0]50 milligram - once a day - for 1 day
MedicationRequest.dosageInstruction[1].timing[0].repeat[0].bounds[0].value[0]1
MedicationRequest.dosageInstruction[1].timing[0].repeat[0].bounds[0].unit[0]day
MedicationRequest.dosageInstruction[1].timing[0].repeat[0].bounds[0].system[0]http://unitsofmeasure.org
MedicationRequest.dosageInstruction[1].timing[0].repeat[0].bounds[0].code[0]d
MedicationRequest.dosageInstruction[1].timing[0].repeat[0].frequency[0]1
MedicationRequest.dosageInstruction[1].timing[0].repeat[0].period[0]1
MedicationRequest.dosageInstruction[1].timing[0].repeat[0].periodUnit[0]d
MedicationRequest.dosageInstruction[1].doseAndRate[0].dose[0].value[0]50
MedicationRequest.dosageInstruction[1].doseAndRate[0].dose[0].unit[0]milligram
MedicationRequest.dosageInstruction[1].doseAndRate[0].dose[0].system[0]http://unitsofmeasure.org
MedicationRequest.dosageInstruction[1].doseAndRate[0].dose[0].code[0]mg
MedicationRequest.dosageInstruction[2].sequence[0]3
MedicationRequest.dosageInstruction[2].text[0]40 milligram - once a day - for 1 day
MedicationRequest.dosageInstruction[2].timing[0].repeat[0].bounds[0].value[0]1
MedicationRequest.dosageInstruction[2].timing[0].repeat[0].bounds[0].unit[0]day
MedicationRequest.dosageInstruction[2].timing[0].repeat[0].bounds[0].system[0]http://unitsofmeasure.org
MedicationRequest.dosageInstruction[2].timing[0].repeat[0].bounds[0].code[0]d
MedicationRequest.dosageInstruction[2].timing[0].repeat[0].frequency[0]1
MedicationRequest.dosageInstruction[2].timing[0].repeat[0].period[0]1
MedicationRequest.dosageInstruction[2].timing[0].repeat[0].periodUnit[0]d
MedicationRequest.dosageInstruction[2].doseAndRate[0].dose[0].value[0]40
MedicationRequest.dosageInstruction[2].doseAndRate[0].dose[0].unit[0]milligram
MedicationRequest.dosageInstruction[2].doseAndRate[0].dose[0].system[0]http://unitsofmeasure.org
MedicationRequest.dosageInstruction[2].doseAndRate[0].dose[0].code[0]mg
MedicationRequest.dosageInstruction[3].sequence[0]4
MedicationRequest.dosageInstruction[3].text[0]30 milligram - once a day - for 1 day
MedicationRequest.dosageInstruction[3].timing[0].repeat[0].bounds[0].value[0]1
MedicationRequest.dosageInstruction[3].timing[0].repeat[0].bounds[0].unit[0]day
MedicationRequest.dosageInstruction[3].timing[0].repeat[0].bounds[0].system[0]http://unitsofmeasure.org
MedicationRequest.dosageInstruction[3].timing[0].repeat[0].bounds[0].code[0]d
MedicationRequest.dosageInstruction[3].timing[0].repeat[0].frequency[0]1
MedicationRequest.dosageInstruction[3].timing[0].repeat[0].period[0]1
MedicationRequest.dosageInstruction[3].timing[0].repeat[0].periodUnit[0]d
MedicationRequest.dosageInstruction[3].doseAndRate[0].dose[0].value[0]30
MedicationRequest.dosageInstruction[3].doseAndRate[0].dose[0].unit[0]milligram
MedicationRequest.dosageInstruction[3].doseAndRate[0].dose[0].system[0]http://unitsofmeasure.org
MedicationRequest.dosageInstruction[3].doseAndRate[0].dose[0].code[0]mg
MedicationRequest.dosageInstruction[4].sequence[0]5
MedicationRequest.dosageInstruction[4].text[0]20 milligram - once a day - for 1 day
MedicationRequest.dosageInstruction[4].timing[0].repeat[0].bounds[0].value[0]1
MedicationRequest.dosageInstruction[4].timing[0].repeat[0].bounds[0].unit[0]day
MedicationRequest.dosageInstruction[4].timing[0].repeat[0].bounds[0].system[0]http://unitsofmeasure.org
MedicationRequest.dosageInstruction[4].timing[0].repeat[0].bounds[0].code[0]d
MedicationRequest.dosageInstruction[4].timing[0].repeat[0].frequency[0]1
MedicationRequest.dosageInstruction[4].timing[0].repeat[0].period[0]1
MedicationRequest.dosageInstruction[4].timing[0].repeat[0].periodUnit[0]d
MedicationRequest.dosageInstruction[4].doseAndRate[0].dose[0].value[0]20
MedicationRequest.dosageInstruction[4].doseAndRate[0].dose[0].unit[0]milligram
MedicationRequest.dosageInstruction[4].doseAndRate[0].dose[0].system[0]http://unitsofmeasure.org
MedicationRequest.dosageInstruction[4].doseAndRate[0].dose[0].code[0]mg
MedicationRequest.dosageInstruction[5].sequence[0]6
MedicationRequest.dosageInstruction[5].text[0]10 milligram - once a day - for 1 day - Then stop
MedicationRequest.dosageInstruction[5].additionalInstruction[0].coding[0].system[0]http://snomed.info/sct
MedicationRequest.dosageInstruction[5].additionalInstruction[0].coding[0].code[0]422327006
MedicationRequest.dosageInstruction[5].additionalInstruction[0].coding[0].display[0]Then stop
MedicationRequest.dosageInstruction[5].timing[0].repeat[0].bounds[0].value[0]1
MedicationRequest.dosageInstruction[5].timing[0].repeat[0].bounds[0].unit[0]day
MedicationRequest.dosageInstruction[5].timing[0].repeat[0].bounds[0].system[0]http://unitsofmeasure.org
MedicationRequest.dosageInstruction[5].timing[0].repeat[0].bounds[0].code[0]d
MedicationRequest.dosageInstruction[5].timing[0].repeat[0].frequency[0]1
MedicationRequest.dosageInstruction[5].timing[0].repeat[0].period[0]1
MedicationRequest.dosageInstruction[5].timing[0].repeat[0].periodUnit[0]d
MedicationRequest.dosageInstruction[5].doseAndRate[0].dose[0].value[0]10
MedicationRequest.dosageInstruction[5].doseAndRate[0].dose[0].unit[0]milligram
MedicationRequest.dosageInstruction[5].doseAndRate[0].dose[0].system[0]http://unitsofmeasure.org
MedicationRequest.dosageInstruction[5].doseAndRate[0].dose[0].code[0]mg
MedicationRequest.substitution[0].allowed[0]False
MedicationRequest

Concurrent Instructions

Where the same integer value of sequence is defines it means a concurrent instruction.

<MedicationRequest xmlns="http://hl7.org/fhir">
    <id value="79159c4f-13c4-457a-8962-67fa22432c15" />
    <meta>
        <profile value="https://fhir.hl7.org.uk/StructureDefinition/UKCore-MedicationRequest" />
    </meta>
    <status value="active" />
    <intent value="order" />
    <category>
        <coding>
            <system value="http://terminology.hl7.org/CodeSystem/medicationrequest-category" />
            <code value="inpatient" />
            <display value="inpatient" />
        </coding>
    </category>
    <priority value="routine" />
    <medicationCodeableConcept>
        <coding>
            <system value="https://dmd.nhs.uk" />
            <code value="317972000" />
            <display value="Furosemide 40mg tablets" />
        </coding>
    </medicationCodeableConcept>
    <subject>
        <identifier>
            <system value="https://fhir.nhs.uk/Id/nhs-number" />
            <value value="9999999999" />
        </identifier>
    </subject>
    <authoredOn value="2020-05-15T15:00:00Z" />
    <requester>
        <reference value="urn:staff-1112" />
        <display value="Dr Maikeu Well" />
    </requester>
    <recorder>
        <reference value="urn:staff-1112" />
        <display value="Dr Maikeu Well" />
    </recorder>
    <dosageInstruction>
        <sequence value="1" />
        <text value="2 tablet - daily - at 08:00 - for 1 week" />
        <timing>
            <repeat>
                <boundsDuration>
                    <value value="1" />
                    <unit value="week" />
                    <system value="http://unitsofmeasure.org" />
                    <code value="wk" />
                </boundsDuration>
                <period value="1" />
                <periodUnit value="d" />
                <timeOfDay value="08:00:00" />
            </repeat>
        </timing>
        <doseAndRate>
            <doseQuantity>
                <value value="2" />
                <unit value="tablet" />
                <system value="http://snomed.info/sct" />
                <code value="428673006" />
            </doseQuantity>
        </doseAndRate>
    </dosageInstruction>
    <dosageInstruction>
        <sequence value="1" />
        <text value="1 tablet - daily - at 12:00 - for 1 week" />
        <timing>
            <repeat>
                <boundsDuration>
                    <value value="1" />
                    <unit value="week" />
                    <system value="http://unitsofmeasure.org" />
                    <code value="wk" />
                </boundsDuration>
                <period value="1" />
                <periodUnit value="d" />
                <timeOfDay value="12:00:00" />
            </repeat>
        </timing>
        <doseAndRate>
            <doseQuantity>
                <value value="1" />
                <unit value="tablet" />
                <system value="http://snomed.info/sct" />
                <code value="428673006" />
            </doseQuantity>
        </doseAndRate>
    </dosageInstruction>
    <substitution>
        <allowedBoolean value="false" />
    </substitution>
</MedicationRequest>
{
    "resourceType": "MedicationRequest",
    "id": "79159c4f-13c4-457a-8962-67fa22432c15",
    "meta": {
        "profile":  [
            "https://fhir.hl7.org.uk/StructureDefinition/UKCore-MedicationRequest"
        ]
    },
    "status": "active",
    "intent": "order",
    "category":  [
        {
            "coding":  [
                {
                    "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category",
                    "code": "inpatient",
                    "display": "inpatient"
                }
            ]
        }
    ],
    "priority": "routine",
    "medicationCodeableConcept": {
        "coding":  [
            {
                "system": "https://dmd.nhs.uk",
                "code": "317972000",
                "display": "Furosemide 40mg tablets"
            }
        ]
    },
    "subject": {
        "identifier": {
            "system": "https://fhir.nhs.uk/Id/nhs-number",
            "value": "9999999999"
        }
    },
    "authoredOn": "2020-05-15T15:00:00Z",
    "requester": {
        "reference": "urn:staff-1112",
        "display": "Dr Maikeu Well"
    },
    "recorder": {
        "reference": "urn:staff-1112",
        "display": "Dr Maikeu Well"
    },
    "dosageInstruction":  [
        {
            "sequence": 1,
            "text": "2 tablet - daily - at 08:00 - for 1 week",
            "timing": {
                "repeat": {
                    "boundsDuration": {
                        "value": 1,
                        "unit": "week",
                        "system": "http://unitsofmeasure.org",
                        "code": "wk"
                    },
                    "period": 1,
                    "periodUnit": "d",
                    "timeOfDay":  [
                        "08:00:00"
                    ]
                }
            },
            "doseAndRate":  [
                {
                    "doseQuantity": {
                        "value": 2,
                        "unit": "tablet",
                        "system": "http://snomed.info/sct",
                        "code": "428673006"
                    }
                }
            ]
        },
        {
            "sequence": 1,
            "text": "1 tablet - daily - at 12:00 - for 1 week",
            "timing": {
                "repeat": {
                    "boundsDuration": {
                        "value": 1,
                        "unit": "week",
                        "system": "http://unitsofmeasure.org",
                        "code": "wk"
                    },
                    "period": 1,
                    "periodUnit": "d",
                    "timeOfDay":  [
                        "12:00:00"
                    ]
                }
            },
            "doseAndRate":  [
                {
                    "doseQuantity": {
                        "value": 1,
                        "unit": "tablet",
                        "system": "http://snomed.info/sct",
                        "code": "428673006"
                    }
                }
            ]
        }
    ],
    "substitution": {
        "allowedBoolean": false
    }
}
MedicationRequest.id[0]79159c4f-13c4-457a-8962-67fa22432c15
MedicationRequest.meta[0].profile[0]https://fhir.hl7.org.uk/StructureDefinition/UKCore-MedicationRequest
MedicationRequest.status[0]active
MedicationRequest.intent[0]order
MedicationRequest.category[0].coding[0].system[0]http://terminology.hl7.org/CodeSystem/medicationrequest-category
MedicationRequest.category[0].coding[0].code[0]inpatient
MedicationRequest.category[0].coding[0].display[0]inpatient
MedicationRequest.priority[0]routine
MedicationRequest.medication[0].coding[0].system[0]https://dmd.nhs.uk
MedicationRequest.medication[0].coding[0].code[0]317972000
MedicationRequest.medication[0].coding[0].display[0]Furosemide 40mg tablets
MedicationRequest.subject[0].identifier[0].system[0]https://fhir.nhs.uk/Id/nhs-number
MedicationRequest.subject[0].identifier[0].value[0]9999999999
MedicationRequest.authoredOn[0]2020-05-15T15:00:00Z
MedicationRequest.requester[0].reference[0]urn:staff-1112
MedicationRequest.requester[0].display[0]Dr Maikeu Well
MedicationRequest.recorder[0].reference[0]urn:staff-1112
MedicationRequest.recorder[0].display[0]Dr Maikeu Well
MedicationRequest.dosageInstruction[0].sequence[0]1
MedicationRequest.dosageInstruction[0].text[0]2 tablet - daily - at 08:00 - for 1 week
MedicationRequest.dosageInstruction[0].timing[0].repeat[0].bounds[0].value[0]1
MedicationRequest.dosageInstruction[0].timing[0].repeat[0].bounds[0].unit[0]week
MedicationRequest.dosageInstruction[0].timing[0].repeat[0].bounds[0].system[0]http://unitsofmeasure.org
MedicationRequest.dosageInstruction[0].timing[0].repeat[0].bounds[0].code[0]wk
MedicationRequest.dosageInstruction[0].timing[0].repeat[0].period[0]1
MedicationRequest.dosageInstruction[0].timing[0].repeat[0].periodUnit[0]d
MedicationRequest.dosageInstruction[0].timing[0].repeat[0].timeOfDay[0]08:00:00
MedicationRequest.dosageInstruction[0].doseAndRate[0].dose[0].value[0]2
MedicationRequest.dosageInstruction[0].doseAndRate[0].dose[0].unit[0]tablet
MedicationRequest.dosageInstruction[0].doseAndRate[0].dose[0].system[0]http://snomed.info/sct
MedicationRequest.dosageInstruction[0].doseAndRate[0].dose[0].code[0]428673006
MedicationRequest.dosageInstruction[1].sequence[0]1
MedicationRequest.dosageInstruction[1].text[0]1 tablet - daily - at 12:00 - for 1 week
MedicationRequest.dosageInstruction[1].timing[0].repeat[0].bounds[0].value[0]1
MedicationRequest.dosageInstruction[1].timing[0].repeat[0].bounds[0].unit[0]week
MedicationRequest.dosageInstruction[1].timing[0].repeat[0].bounds[0].system[0]http://unitsofmeasure.org
MedicationRequest.dosageInstruction[1].timing[0].repeat[0].bounds[0].code[0]wk
MedicationRequest.dosageInstruction[1].timing[0].repeat[0].period[0]1
MedicationRequest.dosageInstruction[1].timing[0].repeat[0].periodUnit[0]d
MedicationRequest.dosageInstruction[1].timing[0].repeat[0].timeOfDay[0]12:00:00
MedicationRequest.dosageInstruction[1].doseAndRate[0].dose[0].value[0]1
MedicationRequest.dosageInstruction[1].doseAndRate[0].dose[0].unit[0]tablet
MedicationRequest.dosageInstruction[1].doseAndRate[0].dose[0].system[0]http://snomed.info/sct
MedicationRequest.dosageInstruction[1].doseAndRate[0].dose[0].code[0]428673006
MedicationRequest.substitution[0].allowed[0]False
MedicationRequest

Element: text

IMPORTANT: This guidance differs from the international FHIR specification. The FHIR standard is ambiguous with contradictory statements for what may or may not be contained within the text element.
Recommendation: We recommend text is populated with a textual representation of the complete dosage instruction, in terms understood by a healthcare professional, excluding;
  • Name or description of the medication (Note 1)
  • Problem or condition to which the medicine relates (Note 2)
  • Any patientInstruction string (Note 3)

  • This approach allows the text to be safely used by clinical systems that cannot (yet) consume the complete FHIR Dosage structure. All dosing instructions within text should also be contained within the relevant structured elements of the FHIR Dosage to allow the clinical system to consume the FHIR Dosage without requiring the human user to interpret the contents of text.

    Note 1: The name or description of the medication is conveyed as a codeableConcept or referenced Medication resource in the resource that contains the Dosage structure.

    Note 2: The reason for medication is conveyed within the reasonCode or reasonReference within the MedicationRequest and MedicationStatement resources.

    Note 3: The patientInstruction element contains equivalent information to text but in terms that are understood by the patient or consumer so should not be repeated within text.

    Exception: EPS FHIR Facade Implementation
    An exception to note 2 above relates to the current implementation of the Electronic Prescription Service - FHIR API. The text may be appended with the reason for the medication (indication). The current implementation of the EPS converts the FHIR payload to HL7v3 for backwards compatibility. Wthin the HL7v3 data model, there is nowhere to hold the indication other than as an appendment to the free-text dosage instruction.

    The textual representation must align with what the clinical user selects or sees on-screen. A textual and clinical equivalent of every element within the Dosage structure, excluding text, must be contained within text, with the exception of any patientInstruction string.

    This approach allows clinically safe dosage interoperability between systems that do and do not support the full Dosage structure. A consumer system that can only handle a dosage text string will consume text and ignore all other elements of the Dosage structure. A provider system that can only handle a dosage text string will only populate the text element of the Dosage structure.

    The approach we recommend allows a fully FHIR-compliant consumer system to process all elements of Dosage excluding text. A system that only supports text-based dosage instructions will process only text for clinical users or patientInstruction for the patient user. Both implementations will consume an equivalent dosage instruction, albiet one as text and one that is machine readable.

    Implementation Example A

    A provider system allows the user to pick an order sentence, e.g. “Two tablet(s), two times a day, with food. Please do not chew the tablets”. This string goes into text and in the background, the provider system constructs the coded Dosage structure.

    <dosageInstruction>
         <text value="Two tablet(s), two times a day, with food. Please do not chew the tablets" />
         <timing>
              <repeat>
                  <frequency value="2" />
                  <period value="1" />
                  <periodUnit value="d" />
                  <when value="C"/>
              </repeat>
         </timing>
         <doseAndRate>
              <doseQuantity>
                  <value value="2" />
                  <unit value="tablet" />
                  <system value="http://snomed.info/sct" />
                  <code value="428673006" />
              </doseQuantity>
         </doseAndRate>
         <additionalInstruction>
             <text value=”Please do not chew the tablets” />
         </additionalInstruction>
    </dosageInstruction>
    
    

    Implementation Example B

    A provider system allows the user to construct a dosage instruction using various user interface components. The system translatesAd the coded information into a text string for text. Refer to our translation algorithm for guidance for such a translation. In the background, the provider system constructs the coded Dosage structure.

    <dosageInstruction>
         <text value="2 tablets - twice a day – at a meal - Please do not chew the tablets" />
         <timing>
              <repeat>
                  <frequency value="2" />
                  <period value="1" />
                  <periodUnit value="d" />
                  <when value="C"/>
              </repeat>
         </timing>
         <doseAndRate>
              <doseQuantity>
                  <value value="2" />
                  <unit value="tablet" />
                  <system value="http://snomed.info/sct" />
                  <code value="428673006" />
              </doseQuantity>
         </doseAndRate>
         <additionalInstruction>
             <text value=”Please do not chew the tablets” />
         </additionalInstruction>
    </dosageInstruction>
    
    

    Element: additionalInstruction

    Additional dosage instructions that can be either SNOMED-CT coded terms or free-text instructions.

    Where suitable SNOMED-CT coded terms exist, use them instead of free-text instructions. See the SNOMED-CT hierarchy descendants of 419492006 Additional dosage instructions (qualifier value). These terms are also available from the example FHIR valueset binding.

    Note: Where no code exists, additionalInstructions can be conveyed as free-text; however, if free-text is used rather than a SNOMED-CT coded term, the `MedicationRequest` cannot be computable, and requires human intervention in the case of conditional or contradictory instructions.

    Coded instruction

    <additionalInstruction>
        <coding> 
            <system value="http://snomed.info/sct"/> 
            <code value="419529008"/> 
            <display value="Dissolved under the tongue "/> 
        </coding>
    </additionalInstruction>
    
    

    Multiple coded instructions

    <additionalInstruction>
        <coding> 
            <system value="http://snomed.info/sct"/> 
            <code value="417995008"/> 
            <display value="Dissolve or mix with water before taking"/> 
        </coding>
    </additionalInstruction>
    <additionalInstruction>
        <coding> 
            <system value="http://snomed.info/sct"/> 
            <code value="417980006"/> 
            <display value="Contains aspirin"/> 
        </coding>
    </additionalInstruction>
    
    

    Free-text instruction

    <additionalInstruction>
        <text value="with dialysis"/>
    </additionalInstruction>
    
    

    additionalInstruction / when overlap

    Note: The value-sets for Timing.when and Dosage.additionalInstruction do contain some overlapping values.

    For example, they can both describe “with or after food”.

    In such cases, use Timing.when instead of a coded Dosage.additionalInstruction.

    continue / stop instructions

    There may be the need for a clinician to give explicit instructions to either stop or continue taking medication. This could be applicable for discharge medication where one medicine may be for short term pain relief and should be stopped after the prescribed quantity has been taken, while another medicine must be continued until further notice.

    The patient’s GP would be informed of this as part of the discharge letter but having these instructions explicitly coded provides a more robust solution.

    Three SNOMED-CT codes exist that can be used for this purpose.

    • “Then stop” (SNOMED concept identifier = 422327006)
    • “Then discontinue” (SNOMED concept identifier = 421484000)
    • “Do not stop taking this medicine except on your doctor’s advice” (SNOMED concept identifier = 419444006)
    Note: It is recognised that such coded terms are akin to timing instructions so may be more logically containing within the various Dosage.timing structures. These do not currently support coded concept terms. Implementation experience will provide evidence to support any future change to the underlying FHIR specification.

    as directed

    The use of a dosage instruction akin to “as directed” should be avoided wherever possible; however, if required then this can be SNOMED coded using 421769005 Follow directions (qualifier value) or conveyed as text as a patient instruction.


    Element: patientInstruction

    FHIR defines as "Instructions in terms that are understood by the patient or consumer".

    It is good practice that this element contains the complete dosage instruction as a text string, in terms that are understood by the patient or consumer. This includes those prescriptions that the patient may not see or will not self administer, for example, during inpatient care.

    There may be occurrences when dosage instructions are designed to be administered only by a healthcare professionals (e.g. IV dosage). In these instances the patientInstruction may be omitted.

    It would be expected that in many cases patientInstruction will contain the same dose string as text. The benefit of this element is when different dosage phrasing is required for the clinician and the patient.

    <patientInstruction value="2 tablet - 4 times a day - at a meal - Dissolve or mix with water before taking - up to a maximum of 12 tablets in 24 hours"/>
    
    

    If omitted, patient-facing use cases should present the string representation of the completed dosage as defined within text.

    Note: The patientInstruction element is not intended to provide instructions for a medication dispensing label.

    Timing Elements: duration, bounds and count

    Adding constraints, bounds or limits to a dosage instruction.

    Sub-elements: duration and durationMax

    A dosage instruction to be administered over a period of time is defined by a duration and / or a durationMax. These relate to the duration of a single administration so would be applicable for an infusion or potentially a transdermal patch.

    The FHIR specification states that if there is a durationMax, there must be a duration.

    The use of duration does not apply to medicines that are swallowed or otherwise instantly administered.

    over 8 hours

    <timing>
    	<repeat>
    		<duration value="8"/>
    		<durationUnit value="h" />
    	</repeat>
    </timing>
    
    

    over 10 to 15 minutes

    <timing>
    	<repeat>
    		<duration value="10"/>
    		<durationMax value="15"/>
    		<durationUnit value="min"/>
    	</repeat>
    </timing>
    
    

    Sub-element: boundsDuration

    An instruction to limit a single course of medication uses the bounds structure. This can be implemented in three ways;

    • boundsDuration - a period of time, for example: for 7 days
    • boundsRange - a low / high quantity, for example: for 2 to 3 weeks
    • boundsPeriod - a date / time start to end period, for example: from 22/02/2021 to 04/03/2021

    for 7 days

    <timing>
    	<repeat>
    		<boundsDuration>
    			<value value="7"/>
    			<unit value="day"/> 
    			<system value="http://unitsofmeasure.org"/>
    			<code value="d"/>
    		</boundsDuration>
    
    	</repeat>
    </timing>
    
    

    for 2 to 3 weeks

    <timing> 
    	<repeat>
    		<boundsRange>
    			<low>
    				<value value="2"/>
    				<unit value="week"/> 
    				<system value="http://unitsofmeasure.org"/>
    				<code value="wk"/>
    			</low>
    			<high>
    				<value value="3"/>
    				<unit value="week"/>
    				<system value="http://unitsofmeasure.org"/>
    				<code value="wk"/>
    			</high>
    		</boundsRange>
    	</repeat>
    </timing>
    
    

    from 22/02/2021 to 04/03/2021

    <timing>  
    	<repeat>
            <boundsPeriod>
                <start value="2021-02-22"/>
                <end value="2021-03-04"/>
            </boundsPeriod>
    	</repeat>	
    </timing>
    
    

    at least 2 weeks

    <timing> 
    	<repeat>
    		<boundsRange>
    			<low>
    				<value value="2"/>
    				<unit value="week"/> 
    				<system value="http://unitsofmeasure.org"/>
    				<code value="wk"/>
    			</low>
    		</boundsRange>
    	</repeat>
    </timing>
    
    

    Sub-elements: count and countMax

    Note: Use count and countMax with caution as there are other elements within the Dosage structure that will often be more appropriate.

    An instruction for a set number of doses, including the use case of “once”, plus also any maximum number of doses, is defined by count and countMax.

    Whilst the count is within repeat it does not mean repeat a number of additional times.

    • A count of 1 means adminster a dose once.
    • A count of 3 means administer 3 doses.

    The FHIR specification states if there is a countMax, there must be a count.

    take once

    <timing>
    	<repeat>
    		<count value="1"/>
    	</repeat>
    </timing>
    
    

    take twice

    <timing>
    	<repeat>
    		<count value="2"/>
    	</repeat>
    </timing>
    
    

    take three times

    Clincal Example: Teicoplanin - 10 mg/kg - every 12 hours - for 3 doses, then 6 to 10 mg/kg - daily

    <timing>
    	<repeat>
    		<count value="3"/>
    	</repeat>
    </timing>
    
    

    take three to five times

    <timing>
    	<repeat>
    		<count value="3"/>
    		<countMax value="5"/>
    	</repeat>
    </timing>
    
    
    Alternatives: Examples where alternatives to using count within a Dosage instruction would be more appropriate.

    take once

    Instead of using <count value="1"/> use <frequency value="1"/>.

    an oral solid - 2 tablets - twice a day - take 14 times

    Using a <count value="14"/> is confusing. Is this "take 2 tablets twice a day for 14 days" or "take 2 tablets twice a day and take 14 tablets in total, hence for 7 days"? It would be better to express as a duration.

    <duration value="7"/>
    <durationUnit value="d" />
    
    

    Timing Elements: when, offset, dayOfWeek, timeOfDay, event and code

    A dosage instruction can be tied to the specific days, dates and times, plus life events related to eating or sleeping.

    Sub-elements: when and offset

    The when element ties to the regular life events of sleeping and eating, for example:

    • C = event occurs at a meal
    • WAKE = event occurs [offset] after waking

    An offset allows the event to be tied x minutes before or after.

    The offset is an unsigned integer value so different codes within the when value-set are used to define before or after.

    Note: Guidance for the use of timing codes for event occurs before/at/after a meal is currently under review and may be subject to change.

    Event occurs at breakfast

    <timing>
        <repeat>
            <when value="CM"/>
        </repeat>
    </timing>
    
    

    Event occurs at 1 hour before breakfast

    <timing>
        <repeat>
            <when value="ACM"/>
            <offset value="60" />
        </repeat>
    </timing>
    
    

    Event occurs at 1 hour after breakfast

    <timing>
        <repeat>
            <when value="PCM"/>
            <offset value="60" />
        </repeat>
    </timing>
    
    

    Sub-elements: dayOfWeek and timeOfDay

    A dosage instruction can specify days of a week and/or specific times within a day for administration.

    on Monday and Thursday at 09:00 and 15:00

    <timing>
        <repeat>
            <dayOfWeek value="mon" />
            <dayOfWeek value="thu" />
            <timeOfDay value="09:00:00" />
            <timeOfDay value="15:00:00" />
        </repeat>
    </timing>
    
    
    FHIR Inconsistency: The FHIR R4 standard includes a comment that the elements frequency, period and when cannot be used with dayOfWeek and/or timeOfDay. However the rule defined in FHIR R4 only applies to when plus an example exists in the FHIR standard for "Daily at 10:00". Within FHIR R5, the comment has been amended to only apply to when. This guidance is based on the rules defined in FHIR R4 and latest ballot release of FHIR R5.

    Daily at 10:00

    <timing>
        <repeat>
            <frequency value="1"/>
            <period value="1"/>
            <periodUnit value="d"/>
            <timeOfDay value="10:00:00" />  
        </repeat>
    </timing>
    
    

    Sub-element: event

    A dosage instruction can specify specific dates and times for administration.

    on 1st Nov 2019

    <timing>
        <event value="2019-11-01" />
    </timing>
    
    

    on 1st Nov 2019 at 10:30 and again on 1st Dec 2019 at 22:30

    <timing>
        <event value="2019-11-01T10:30" />
        <event value="2019-12-01T22:30" />
    </timing>
    
    

    Sub-element: code

    Allows a code, often a Latin abbreviation, for a timing schedule to be specified, for example: BID = twice a day

    Note: It is recommended that such codes are not used when the rest of the Dosage structure is supported by the system. Use the structures like frequency and period instead, so that a timing schedule can be computable.

    Timing Elements: frequency and period

    A large proportion of cases, especially those where the medication are described using a VMP or AMP concept, can have a dosage instruction defined with a combination of frequency and period elements within the Timing structure.

    Simple dosage timing instructions can be described using frequency and period.

    The combination of frequency and period allows for the two commonly used expressions of:

    • x times a period
    • every x period

    The unit of the period must be one of the UCUM units:

    UCUM Unit Definition
    s second
    min minute
    h hour
    d day
    wk week
    mo month
    a year

    A frequencyMax and/or periodMax can also be used to define ranges. The FHIR specification states if there's a periodMax, there must be a period.

    Every 8 hours

    <timing>
        <repeat>
            <frequency value="1"/>
            <period value="8"/>
            <periodUnit value="h"/>
        </repeat>
    </timing>
    
    

    4 times a day

    <timing>
        <repeat>
            <frequency value="4"/>
            <period value="1"/>
            <periodUnit value="d"/>
        </repeat>
    </timing>
    
    

    2 to 4 times a day

    <timing>
        <repeat>
            <frequency value="2"/>
            <frequencyMax value="4"/>
            <period value="1"/>
            <periodUnit value="d"/>
        </repeat>
    </timing>
    
    

    up to 4 times a day

    <timing>
        <repeat>
            <frequencyMax value="4"/>
            <period value="1"/>
            <periodUnit value="d"/>
        </repeat>
    </timing>
    
    

    every 3 to 4 weeks

    <timing>
        <repeat>
            <frequency value="1"/>
            <period value="3"/>
            <periodMax value="4"/>
            <periodUnit value="wk"/>
        </repeat>
    </timing>
    
    

    3 to 4 times every 1 to 2 weeks

    <timing>
        <repeat>
            <frequency value="3"/>
            <frequencyMax value="4"/>
            <period value="1"/>
            <periodMax value="2"/>
            <periodUnit value="wk"/>
        </repeat>
    </timing>
    
    

    daily

    <timing>
        <repeat>
            <frequency value="1"/>
            <period value="1"/>
            <periodUnit value="d"/>
        </repeat>
    </timing>
    
    

    twice a week

    <timing>
        <repeat>
            <frequency value="2"/>
            <period value="1"/>
            <periodUnit value="wk"/>
        </repeat>
    </timing>
    
    

    Examples of potentially confusing timing instructions

    When converting the information into a FHIR message to a human readable version the frequency could be misconstrued.

    For example:

    take twice a week on a Monday and Thursday

    Is the patient being instructed to take the medication twice per day on a Monday and Thursday (4 individual doses), or twice per week on a Monday and Thursday (2 individual doses)?

    Bad ambiguious example:
    on Monday and Thursday - take twice
    <timing>
        <repeat>
            <count value="2" />
            <dayOfWeek value="mon" />
            <dayOfWeek value="thu" />
        </repeat>
    </timing>
    
    

    Using the dose-to-text guidance within this documentation the above would be displayed as:

    on Monday and Thursday - take twice

    Better specific example:
    twice a week - on Monday and Thursday
    <timing>
        <repeat>
            <frequency value="2"/>
            <period value="1" />
            <periodUnit value="wk"/>
            <dayOfWeek value="mon" />
            <dayOfWeek value="thu" />
        </repeat>
    </timing>
    
    

    Using the dose-to-text guidance within this documentation the above would be displayed as:

    twice a week - on Monday and Thursday

    Alternative better specific example:
    on Monday and Thursday
    <timing>
        <repeat>
            <dayOfWeek value="mon" />
            <dayOfWeek value="thu" />
        </repeat>
    </timing>
    
    

    Using the dose-to-text guidance within this documentation the above would be displayed as:

    on Monday and Thursday


    Real-World Example

    This prescription is used for immunocompromised patients to provide prophylaxis against a particular strain of pneumonia.

    Co-trimoxazole 80mg/400mg tablets (Actavis UK Ltd) - 1 tablet - twice a day - on Monday, Wednesday and Friday.


    Element: asNeeded

    Dosing 'asNeeded' and 'asNeededCodeableConcept' instructions.

    Sub-element: Dosage.asNeeded[x]

    The asNeeded structure can be used to define a simple “as required” (or “pro re nata” expressed as “PRN” for those who still prefer to use Latin abbreviations) instructions.

    In this case use the asNeededBoolean option. The absence of asNeededBoolean is equivalent to where asNeededBoolean has a value of false.

    The asNeededCodeableConcept option is used to bound the dosage instruction to a coded term. Any number of coded terms can be used from the SNOMED-CT hierarchy as a descendant of 404684003 Clinical Finding (finding). An extensive medication-as-needed-reason value-set is defined within FHIR which is a subset of the SNOMED-CT clinical findings hierarchy.

    Example #1: Dosage.asNeeded

    <MedicationRequest xmlns="http://hl7.org/fhir">
        <id value="c804eca2-8b32-44d7-b654-b88bb9b1edd2" />
        <meta>
            <profile value="https://fhir.hl7.org.uk/StructureDefinition/UKCore-MedicationRequest" />
        </meta>
        <status value="active" />
        <intent value="order" />
        <category>
            <coding>
                <system value="http://terminology.hl7.org/CodeSystem/medicationrequest-category" />
                <code value="community" />
                <display value="community" />
            </coding>
        </category>
        <medicationCodeableConcept>
            <coding>
                <system value="https://dmd.nhs.uk" />
                <code value="321177003" />
                <display value="Zopiclone 3.75mg tablets" />
            </coding>
        </medicationCodeableConcept>
        <subject>
            <identifier>
                <system value="https://fhir.nhs.uk/Id/nhs-number" />
                <value value="9999999999" />
            </identifier>
        </subject>
        <authoredOn value="2020-05-15T15:00:00Z" />
        <requester>
            <reference value="urn:staff-1112" />
            <display value="Dr Maikeu Well" />
        </requester>
        <recorder>
            <reference value="urn:staff-1112" />
            <display value="Dr Maikeu Well" />
        </recorder>
        <dosageInstruction>
            <text value="1 tablet - during the night - oral - as required - up to a maximum of 7.5 milligram in 24 hours" />
            <timing>
                <repeat>
                    <when value="NIGHT" />
                </repeat>
            </timing>
            <asNeededBoolean value="true" />
            <route>
                <coding>
                    <system value="http://snomed.info/sct" />
                    <code value="26643006" />
                    <display value="oral" />
                </coding>
            </route>
            <doseAndRate>
                <doseQuantity>
                    <value value="1" />
                    <unit value="tablet" />
                    <system value="http://snomed.info/sct" />
                    <code value="428673006" />
                </doseQuantity>
            </doseAndRate>
            <maxDosePerPeriod>
                <numerator>
                    <value value="7.5" />
                    <unit value="milligram" />
                    <system value="http://unitsofmeasure.org" />
                    <code value="mg" />
                </numerator>
                <denominator>
                    <value value="24" />
                    <unit value="hour" />
                    <system value="http://unitsofmeasure.org" />
                    <code value="h" />
                </denominator>
            </maxDosePerPeriod>
        </dosageInstruction>
        <substitution>
            <allowedBoolean value="false" />
        </substitution>
    </MedicationRequest>
    
    {
        "resourceType": "MedicationRequest",
        "id": "c804eca2-8b32-44d7-b654-b88bb9b1edd2",
        "meta": {
            "profile":  [
                "https://fhir.hl7.org.uk/StructureDefinition/UKCore-MedicationRequest"
            ]
        },
        "status": "active",
        "intent": "order",
        "category":  [
            {
                "coding":  [
                    {
                        "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category",
                        "code": "community",
                        "display": "community"
                    }
                ]
            }
        ],
        "medicationCodeableConcept": {
            "coding":  [
                {
                    "system": "https://dmd.nhs.uk",
                    "code": "321177003",
                    "display": "Zopiclone 3.75mg tablets"
                }
            ]
        },
        "subject": {
            "identifier": {
                "system": "https://fhir.nhs.uk/Id/nhs-number",
                "value": "9999999999"
            }
        },
        "authoredOn": "2020-05-15T15:00:00Z",
        "requester": {
            "reference": "urn:staff-1112",
            "display": "Dr Maikeu Well"
        },
        "recorder": {
            "reference": "urn:staff-1112",
            "display": "Dr Maikeu Well"
        },
        "dosageInstruction":  [
            {
                "text": "1 tablet - during the night - oral - as required - up to a maximum of 7.5 milligram in 24 hours",
                "timing": {
                    "repeat": {
                        "when":  [
                            "NIGHT"
                        ]
                    }
                },
                "asNeededBoolean": true,
                "route": {
                    "coding":  [
                        {
                            "system": "http://snomed.info/sct",
                            "code": "26643006",
                            "display": "oral"
                        }
                    ]
                },
                "doseAndRate":  [
                    {
                        "doseQuantity": {
                            "value": 1,
                            "unit": "tablet",
                            "system": "http://snomed.info/sct",
                            "code": "428673006"
                        }
                    }
                ],
                "maxDosePerPeriod": {
                    "numerator": {
                        "value": 7.5,
                        "unit": "milligram",
                        "system": "http://unitsofmeasure.org",
                        "code": "mg"
                    },
                    "denominator": {
                        "value": 24,
                        "unit": "hour",
                        "system": "http://unitsofmeasure.org",
                        "code": "h"
                    }
                }
            }
        ],
        "substitution": {
            "allowedBoolean": false
        }
    }
    MedicationRequest.id[0]c804eca2-8b32-44d7-b654-b88bb9b1edd2
    MedicationRequest.meta[0].profile[0]https://fhir.hl7.org.uk/StructureDefinition/UKCore-MedicationRequest
    MedicationRequest.status[0]active
    MedicationRequest.intent[0]order
    MedicationRequest.category[0].coding[0].system[0]http://terminology.hl7.org/CodeSystem/medicationrequest-category
    MedicationRequest.category[0].coding[0].code[0]community
    MedicationRequest.category[0].coding[0].display[0]community
    MedicationRequest.medication[0].coding[0].system[0]https://dmd.nhs.uk
    MedicationRequest.medication[0].coding[0].code[0]321177003
    MedicationRequest.medication[0].coding[0].display[0]Zopiclone 3.75mg tablets
    MedicationRequest.subject[0].identifier[0].system[0]https://fhir.nhs.uk/Id/nhs-number
    MedicationRequest.subject[0].identifier[0].value[0]9999999999
    MedicationRequest.authoredOn[0]2020-05-15T15:00:00Z
    MedicationRequest.requester[0].reference[0]urn:staff-1112
    MedicationRequest.requester[0].display[0]Dr Maikeu Well
    MedicationRequest.recorder[0].reference[0]urn:staff-1112
    MedicationRequest.recorder[0].display[0]Dr Maikeu Well
    MedicationRequest.dosageInstruction[0].text[0]1 tablet - during the night - oral - as required - up to a maximum of 7.5 milligram in 24 hours
    MedicationRequest.dosageInstruction[0].timing[0].repeat[0].when[0]NIGHT
    MedicationRequest.dosageInstruction[0].asNeeded[0]True
    MedicationRequest.dosageInstruction[0].route[0].coding[0].system[0]http://snomed.info/sct
    MedicationRequest.dosageInstruction[0].route[0].coding[0].code[0]26643006
    MedicationRequest.dosageInstruction[0].route[0].coding[0].display[0]oral
    MedicationRequest.dosageInstruction[0].doseAndRate[0].dose[0].value[0]1
    MedicationRequest.dosageInstruction[0].doseAndRate[0].dose[0].unit[0]tablet
    MedicationRequest.dosageInstruction[0].doseAndRate[0].dose[0].system[0]http://snomed.info/sct
    MedicationRequest.dosageInstruction[0].doseAndRate[0].dose[0].code[0]428673006
    MedicationRequest.dosageInstruction[0].maxDosePerPeriod[0].numerator[0].value[0]7.5
    MedicationRequest.dosageInstruction[0].maxDosePerPeriod[0].numerator[0].unit[0]milligram
    MedicationRequest.dosageInstruction[0].maxDosePerPeriod[0].numerator[0].system[0]http://unitsofmeasure.org
    MedicationRequest.dosageInstruction[0].maxDosePerPeriod[0].numerator[0].code[0]mg
    MedicationRequest.dosageInstruction[0].maxDosePerPeriod[0].denominator[0].value[0]24
    MedicationRequest.dosageInstruction[0].maxDosePerPeriod[0].denominator[0].unit[0]hour
    MedicationRequest.dosageInstruction[0].maxDosePerPeriod[0].denominator[0].system[0]http://unitsofmeasure.org
    MedicationRequest.dosageInstruction[0].maxDosePerPeriod[0].denominator[0].code[0]h
    MedicationRequest.substitution[0].allowed[0]False
    MedicationRequest

    Zopiclone 3.75mg tablets, 1 tablet, at BEDTIME, PRN, oral


    Example #2: Dosage.asNeededCodeableConcept

    <!--    Metoclopramide, orally 10mg to be taken when required for nausea up to three times daily    -->
    <MedicationRequest xmlns="http://hl7.org/fhir">
        <id value="e02e462c-12db-4162-95f6-0436a60c5bc4" />
        <meta>
            <profile value="https://fhir.hl7.org.uk/StructureDefinition/UKCore-MedicationRequest" />
        </meta>
        <status value="active" />
        <intent value="order" />
        <category>
            <coding>
                <system value="http://terminology.hl7.org/CodeSystem/medicationrequest-category" />
                <code value="inpatient" />
                <display value="inpatient" />
            </coding>
        </category>
        <medicationCodeableConcept>
            <coding>
                <system value="https://dmd.nhs.uk" />
                <code value="56549003" />
                <display value="Metoclopramide" />
            </coding>
        </medicationCodeableConcept>
        <subject>
            <identifier>
                <system value="https://fhir.nhs.uk/Id/nhs-number" />
                <value value="9999999999" />
            </identifier>
        </subject>
        <authoredOn value="2020-05-15T15:00:00Z" />
        <requester>
            <reference value="urn:staff-3040" />
            <display value="Dr Jim Bean" />
        </requester>
        <recorder>
            <reference value="urn:staff-3040" />
            <display value="Dr Jim Beam" />
        </recorder>
        <dosageInstruction>
            <text value="10 milligram - up to 3 times a day - oral - as required for nausea" />
            <timing>
                <repeat>
                    <frequencyMax value="3" />
                    <period value="1" />
                    <periodUnit value="d" />
                </repeat>
            </timing>
            <asNeededCodeableConcept>
                <coding>
                    <system value="http://snomed.info/sct" />
                    <code value="422587007" />
                    <display value="nausea" />
                </coding>
            </asNeededCodeableConcept>
            <route>
                <coding>
                    <system value="http://snomed.info/sct" />
                    <code value="26643006" />
                    <display value="oral" />
                </coding>
            </route>
            <doseAndRate>
                <doseQuantity>
                    <value value="10" />
                    <unit value="milligram" />
                    <system value="http://unitsofmeasure.org" />
                    <code value="mg" />
                </doseQuantity>
            </doseAndRate>
        </dosageInstruction>
        <substitution>
            <allowedBoolean value="false" />
        </substitution>
    </MedicationRequest>
    
    {
        "resourceType": "MedicationRequest",
        "id": "e02e462c-12db-4162-95f6-0436a60c5bc4",
        "meta": {
            "profile":  [
                "https://fhir.hl7.org.uk/StructureDefinition/UKCore-MedicationRequest"
            ]
        },
        "status": "active",
        "intent": "order",
        "category":  [
            {
                "coding":  [
                    {
                        "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category",
                        "code": "inpatient",
                        "display": "inpatient"
                    }
                ]
            }
        ],
        "medicationCodeableConcept": {
            "coding":  [
                {
                    "system": "https://dmd.nhs.uk",
                    "code": "56549003",
                    "display": "Metoclopramide"
                }
            ]
        },
        "subject": {
            "identifier": {
                "system": "https://fhir.nhs.uk/Id/nhs-number",
                "value": "9999999999"
            }
        },
        "authoredOn": "2020-05-15T15:00:00Z",
        "requester": {
            "reference": "urn:staff-3040",
            "display": "Dr Jim Bean"
        },
        "recorder": {
            "reference": "urn:staff-3040",
            "display": "Dr Jim Beam"
        },
        "dosageInstruction":  [
            {
                "text": "10 milligram - up to 3 times a day - oral - as required for nausea",
                "timing": {
                    "repeat": {
                        "frequencyMax": 3,
                        "period": 1,
                        "periodUnit": "d"
                    }
                },
                "asNeededCodeableConcept": {
                    "coding":  [
                        {
                            "system": "http://snomed.info/sct",
                            "code": "422587007",
                            "display": "nausea"
                        }
                    ]
                },
                "route": {
                    "coding":  [
                        {
                            "system": "http://snomed.info/sct",
                            "code": "26643006",
                            "display": "oral"
                        }
                    ]
                },
                "doseAndRate":  [
                    {
                        "doseQuantity": {
                            "value": 10,
                            "unit": "milligram",
                            "system": "http://unitsofmeasure.org",
                            "code": "mg"
                        }
                    }
                ]
            }
        ],
        "substitution": {
            "allowedBoolean": false
        }
    }
    MedicationRequest.id[0]e02e462c-12db-4162-95f6-0436a60c5bc4
    MedicationRequest.meta[0].profile[0]https://fhir.hl7.org.uk/StructureDefinition/UKCore-MedicationRequest
    MedicationRequest.status[0]active
    MedicationRequest.intent[0]order
    MedicationRequest.category[0].coding[0].system[0]http://terminology.hl7.org/CodeSystem/medicationrequest-category
    MedicationRequest.category[0].coding[0].code[0]inpatient
    MedicationRequest.category[0].coding[0].display[0]inpatient
    MedicationRequest.medication[0].coding[0].system[0]https://dmd.nhs.uk
    MedicationRequest.medication[0].coding[0].code[0]56549003
    MedicationRequest.medication[0].coding[0].display[0]Metoclopramide
    MedicationRequest.subject[0].identifier[0].system[0]https://fhir.nhs.uk/Id/nhs-number
    MedicationRequest.subject[0].identifier[0].value[0]9999999999
    MedicationRequest.authoredOn[0]2020-05-15T15:00:00Z
    MedicationRequest.requester[0].reference[0]urn:staff-3040
    MedicationRequest.requester[0].display[0]Dr Jim Bean
    MedicationRequest.recorder[0].reference[0]urn:staff-3040
    MedicationRequest.recorder[0].display[0]Dr Jim Beam
    MedicationRequest.dosageInstruction[0].text[0]10 milligram - up to 3 times a day - oral - as required for nausea
    MedicationRequest.dosageInstruction[0].timing[0].repeat[0].frequencyMax[0]3
    MedicationRequest.dosageInstruction[0].timing[0].repeat[0].period[0]1
    MedicationRequest.dosageInstruction[0].timing[0].repeat[0].periodUnit[0]d
    MedicationRequest.dosageInstruction[0].asNeeded[0].coding[0].system[0]http://snomed.info/sct
    MedicationRequest.dosageInstruction[0].asNeeded[0].coding[0].code[0]422587007
    MedicationRequest.dosageInstruction[0].asNeeded[0].coding[0].display[0]nausea
    MedicationRequest.dosageInstruction[0].route[0].coding[0].system[0]http://snomed.info/sct
    MedicationRequest.dosageInstruction[0].route[0].coding[0].code[0]26643006
    MedicationRequest.dosageInstruction[0].route[0].coding[0].display[0]oral
    MedicationRequest.dosageInstruction[0].doseAndRate[0].dose[0].value[0]10
    MedicationRequest.dosageInstruction[0].doseAndRate[0].dose[0].unit[0]milligram
    MedicationRequest.dosageInstruction[0].doseAndRate[0].dose[0].system[0]http://unitsofmeasure.org
    MedicationRequest.dosageInstruction[0].doseAndRate[0].dose[0].code[0]mg
    MedicationRequest.substitution[0].allowed[0]False
    MedicationRequest
    Metoclopramide, orally 10mg to be taken when required for nausea up to three times daily

    Element: site

    Any site can be used from the SNOMED-CT hierarchy as a descendant of the concept 123037004 Body structure (body structure).

    <!-- Site -->
    <site>
        <coding>
            <system value="http://snomed.info/sct"/>
            <code value="59380008"/>
            <display value="Anterior abdominal wall structure"/>
        </coding>
    </site>
    
    

    Element: route

    UKCore uses codes within the ePrescribing route of administration simple reference set (foundation metadata concept).

    <!-- Route -->
    <route>
        <coding>
            <system value="http://snomed.info/sct"/>
            <code value="78421000"/>
            <display value="Intramuscular route (qualifier value)"/>
        </coding>
    </route>
    
    

    Element: method

    Note: Guidance on method under review to consider including use cases for when a free-text method instruction may be required.

    The 999000041000001103 ePrescribing method simple reference set (foundation metadata concept) reference set collates the commonly used terms for method for use in the United Kingdom. Additional terms can be requested to be added to this reference set.

    For example:

    <!-- Method, using a preferred term -->
    <method>
        <coding>
            <system value="http://snomed.info/sct"/>
            <code value="71791000001107"/>
            <display value="Nebulise - method of drug administration (qualifier value)"/>
        </coding>
    </method>
    
    

    and

    <!-- Method, using a synonym -->
    <method>
        <coding>
            <extension url="https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-CodingSCTDescDisplay">
                <valueString value="Injection" />
            </extension>
            <system value="http://snomed.info/sct"/>
            <code value="129326001"/>
            <display value="Injection - action"/>
        </coding>
    </method>
    
    

    Whilst a FHIR value-set for method does exist, together with two separate hierarchies within SNOMED-CT (Dose form administration method and Dosing instruction fragment), it is recommended to use the ePrescribing reference set in the first instance.

    Use of a free-text method

    The method element with the Dosage structure can be populated with a free-text instruction. However, where a suitable coded SNOMED term exists, the coded term should always be used to allow the instruction to be machine-readable.

    Scenarios exist where a suitable coded SNOMED term for method does not exist. For example, some paediatric-suitable methods of medication administration and where complex methods are required.

    Example: Nystatin 100,000units/ml oral suspension sugar free for paediatric use.

    <method>
       <text value="Rub onto the inside of the mouth and gums"/>
    </method>
    
    

    Example: Tiotropium bromide 18microgram inhalation powder capsules with device

    <method>
       <text value="Inhale the contents"/>
    </method>
    
    

    Example: Creon capsules

    <method>
       <text value="Swallowed whole or for ease of administration may be opened and the granules taken with acidic fluid or soft food but without chewing"/>
    </method>
    
    

    Considerations when mapping legacy dosage instructions to FHIR Dosage

    Where an implementation approach is based on mapping of legacy text-based dosage instructions to the FHIR Dosage structure, the method described in text may not a like-for-like match a coded SNOMED method. In some cases there will be a suitable SNOMED coded term so we recommend involving clinicians during any mapping exercise.

    For example. Some historic mouthwash medication records may use the text-based method within the dosage of "Rinse or Gargle". There is a coded SNOMED term of "Use as a mouthwash" (93481000001108) which could be more suitable.


    Element: doseAndRate

    The dose[x] and rate[x] elements within the Dosage structure have been combined in the FHIR R4 standard within doseAndRate. The underlying purpose and use is the same as per FHIR STU3 specification.

    A dose or rate of medication can be described via one of the following methods. In both instances when considering Units of Measure note that UCUM is preferred.

    Sub-element: Dosage.doseAndRate.doseQuantity

    The amount of medication per dose, as a simple coded quantity.

    <!-- Example A: 1 capsule -->
    <doseAndRate>
        <doseQuantity>
            <value value="1"/>
            <unit value="capsule"/>
            <system value="http://snomed.info/sct"/>
            <code value="732937005"/>
        </doseQuantity>
    </doseAndRate>
    
    <!-- Example B: 30 milligrams -->
    <doseAndRate>
        <doseQuantity>
            <value value="30"/>
            <unit value="milligram"/>
            <system value="http://unitsofmeasure.org"/>
            <code value="mg"/>
        </doseQuantity>
    </doseAndRate>
    
    

    Sub-element: Dosage.doseAndRate.doseRange

    A dose that may be in a given low / high range.

    <!-- for a dose between 7.5 to 30 milligram -->
    <doseAndRate>
        <doseRange>
            <low>
                <value value="7.5"/>
                <unit value="milligram"/>
                <code value="mg"/>
                <system value="http://unitsofmeasure.org"/>
            </low>
            <high>
                <value value="30"/>
                <unit value="milligram"/>
                <code value="mg"/>
                <system value="http://unitsofmeasure.org"/>
            </high>
        </doseRange>
    </doseAndRate>
    
    

    A rate-based quantity, such as 30 ml per hour, can be expressed as a rateRatio with coded numerator and denominator values.

    Where the unit of measure for the ratio is defined within UCUM (see Common UCUM Units), for example, “milliliter per hour”, it can also be expressed using the simpler rateQuantity structure.

    If the doseRange.low is omitted it should be interpreted as as dose "up to" the upper limit.

    <!-- for a dose up to 30 milligram -->
    <doseAndRate>
        <doseRange>
            <high>
                <value value="30"/>
                <unit value="milligram"/>
                <code value="mg"/>
                <system value="http://unitsofmeasure.org"/>
            </high>
        </doseRange>
    </doseAndRate>
    
    
    Recommendation: The FHIR standard allows the doseRange.high to be omitted but it is recommended not to support this. The absence of an upper limit for a dose range would be clinical bad practice.

    Sub-element: Dosage.doseAndRate.rateRatio

    Where the rate is expressed as coded numerator and denominator values.

    at a rate of 30ml/hour using rateRatio

    <doseAndRate>
    	<rateRatio>
    		<numerator>
    			<value value="30"/>
    			<unit value="millilitre"/>
    			<system value="http://unitsofmeasure.org"/>
    			<code value="mL"/>
    		</numerator>
    		<denominator>
    			<value value="1"/>
    			<unit value="hour"/>
    			<system value="http://unitsofmeasure.org"/>
    			<code value="h"/>
    		</denominator>
    	</rateRatio>
    </doseAndRate>
    
    

    Sub-element: Dosage.doseAndRate.rateQuantity

    Where the unit of measure applicable to a rate is defined within UCUM which is mathematically equivalent to defining the rate using the more complex rateRatio structure.

    at a rate of 30ml/hour using rateQuantity

    <rateQuantity>
    	<value value="30"/>
    	<unit value="milliliters per hour"/>
    	<system value="http://unitsofmeasure.org"/>
    	<code value="mL/h"/>
    </rateQuantity>
    
    

    at a rate of 1mcg/kg/hour using rateQuantity

    <doseAndRate>
    	<rateQuantity>
    		<value value="1"/>
    		<unit value="microgram per kilogram per hour"/>
    		<system value="http://unitsofmeasure.org"/>
    		<code value="ug/kg/h"/>
    	</rateQuantity>
    </doseAndRate>
    
    

    Sub-element: Dosage.doseAndRate.rateRange

    Where the unit of measure applicable to a rate range is defined within UCUM the rateRange structure can be used.

    give at 1-2 litres per minute using rateRange

    <doseAndRate>
        <rateRange>
    		<low>
    			<value value="1"/>
    			<unit value="liter per minute"/>
    			<system value="http://unitsofmeasure.org"/>
    			<code value="L/min"/>
    		</low>
    		<high>
    			<value value="2"/>
    			<unit value="liter per minute"/>
    			<system value="http://unitsofmeasure.org"/>
    			<code value="L/min"/>
    		</high>
    	</rateRange>
    </doseAndRate>
    
    

    Period of no (zero) administration

    Where a dosage instruction includes a defined period of no (zero) administration then the doseAndRate element can be specified with a 0 (zero) quantity.

    <rateQuantity>
        <value value="0" />
        <unit value="millilitre per hour" />
        <system value="http://unitsofmeasure.org" />
        <code value="mL/h" />
    </rateQuantity>
    
    

    or

    <rateQuantity>
        <value value="0" />
        <unit value="capsule"/>
        <system value="http://snomed.info/sct"/>
        <code value="732937005"/>
    </rateQuantity>
    
    

    Element: maxDosePer

    Sub-element: Dosage.maxDosePerPeriod

    Used to define a maxiumum dose over a given time period.

    An example would be a Sumatriptan 6mg injection which can be repeated after an hour but not again over a 24 hour period. The maxDosePerPeriod is defined as 12mg/24hours.

    The maxDosePerPeriod is defined for each dosage instruction. For a multi-sequence instruction it would therefore be possible to define different maximum dosing periods within different sequences of the complete instruction.

    A real-world example of where this would be required has not yet been identified.

    Maximum dose per period of 12mg/24 hour

    <maxDosePerPeriod>
        <numerator>
            <value value="12"/>
            <unit value="milligram"/>
            <system value="http://unitsofmeasure.org"/>
            <code value="mg"/>
        </numerator>
        <denominator>
            <value value="24"/>
            <unit value="hour"/>
            <system value="http://unitsofmeasure.org"/>
            <code value="h"/>
        </denominator>
    </maxDosePerPeriod>
    
    

    Sub-element: Dosage.maxDosePerAdministration

    Used to define a maximum dose for a single administration.

    An example would be Anagrelide for which a single dose should not exceed 2.5 mg. The maxDosePerAdministration is defined as 2.5mg.

    In many scenarios it is expected that the dosage.doseRange would be used instead of maxDosePerAdministration.

    The maxDosePerAdministration is defined for each dosage instruction. For a multi-sequence instruction it would therefore be possible to define different maximum dose administrations within different sequences of the complete instruction.

    A real-world example of where this would be required has not yet been identified.

    Maximum dose per administration of 2.5mg

    <maxDosePerAdministration>
        <value value="2.5"/>
        <unit value="milligram"/>
        <system value="http://unitsofmeasure.org"/>
        <code value="mg"/>
    </maxDosePerAdministration>
    
    

    Sub-element: Dosage.maxDosePerLifetime

    Used to define the maximum cumulative dose over the lifetime of a patient.

    An example would be Daunorubicin which may have a maximum cumulative dose of 600mg/m2 (based on the size of the patient). The maxDosePerLifetime is defined as 600 mg/m2.

    The maxDosePerLifetime can be defined for each dosage instruction; which, for a multi-sequence instruction is illogical, as any maxDosePerLifetime is equally applicable to all dosage sequence that relate to the single medication coded concept.

    Note: If a maxDosePerLifetime statement is required with a multi-sequence instruction, it is recommended to define it within the last / final sequence to ensure that the information is presented at the end of a the complete instruction, rather than th middle which could be overlooked.

    Maximum dose over lifetime of the patient of 600 mg/m2

    <maxDosePerLifetime>
        <value value="600"/>
        <unit value="milligram per square metre"/>
        <system value="http://unitsofmeasure.org"/>
        <code value="mg/m2"/>
    </maxDosePerLifetime>
    
    
    back to top