Release 4
This page is part of the FHIR Specification (v4.0.1: R4 - Mixed Normative and STU ). This is the current published version in it's permanent home (it will always be available at this URL). For a full list of available versions, see the Directory of published versions

11.10.0 Dosage

Pharmacy Work Group Maturity Level : 3 Standards Status : Trial Use

The Dosage structure defines general dosage instruction information typically represented in medication requests, medication dispenses and medication statements.

Note: the Dosage structure allows modifier extensions .

Structure

Name Flags Card. Type Description & Constraints doco
. . Dosage Σ TU BackBoneElement Element How the medication is/was taken or should be taken
Elements defined in Ancestors: id , extension , modifierExtension
. . . sequence Σ 0..1 integer The order of the dosage instructions
. . . text Σ 0..1 string Free text dosage instructions e.g. SIG
. . . additionalInstruction Σ 0..* CodeableConcept Supplemental instruction or warnings to the patient - e.g. "with meals", "may cause drowsiness"
SNOMED CT Additional Dosage Instructions ( Example )
. . . timing Σ 0..1 Timing When medication should be administered
. . . asNeeded[x] Σ 0..1 Take "as needed" (for x)
SNOMED CT Medication As Needed Reason Codes ( Example )
. . . . asNeededBoolean boolean
. . . . asNeededCodeableConcept CodeableConcept
. . . site Σ 0..1 CodeableConcept Body site to administer to
SNOMED CT Anatomical Structure for Administration Site Codes ( Example )
. . . route Σ 0..1 CodeableConcept How drug should enter body
SNOMED CT Route Codes ( Example )
. . . method Σ 0..1 CodeableConcept Technique for administering medication
SNOMED CT Administration Method Codes ( Example )
. . . doseAndRate Σ 0..* Element Amount of medication administered
. . . . type Σ 0..1 CodeableConcept The kind of dose or rate specified
DoseAndRateType ( Example )
. . . . dose[x] Σ 0..1 Amount of medication per dose
. . . . . doseRange Range
. . . . . doseQuantity SimpleQuantity
. . . . rate[x] Σ 0..1 Amount of medication per unit of time
. . . . . rateRatio Ratio
. . . . . rateRange Range
. . . . . rateQuantity SimpleQuantity
. . . maxDosePerPeriod Σ 0..1 Ratio Upper limit on medication per unit of time
. . . maxDosePerAdministration Σ 0..1 SimpleQuantity Upper limit on medication per administration
. . . maxDosePerLifetime Σ 0..1 SimpleQuantity Upper limit on medication per lifetime of the patient

doco Documentation for this format

UML Diagram ( Legend )

BackboneElement Extensions - as described for all elements: additional information that is not part of the basic definition of the resource / type extension : Extension 0..* Modifier Extensions - as described for some elements: additional information that is not part of the basic definition of the resource / type that modifies the interpretation of the containing element modifierExtension : Extension 0..* Dosage Indicates the order in which the dosage instructions should be applied or interpreted sequence : integer [0..1] Free text dosage instructions e.g. SIG text : string [0..1] Supplemental 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") additionalInstruction : CodeableConcept [0..*] « A coded concept identifying additional instructions such as "take with water" or "avoid operating heavy machinery". (Strength=Example) SNOMEDCTAdditionalDosageInstr... ?? » Instructions in terms that are understood by the patient or consumer patientInstruction : string [0..1] When medication should be administered timing : Timing [0..1] Indicates 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) asNeeded[x] : Type DataType [0..1] « boolean | CodeableConcept ; 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. (Strength=Example) SNOMEDCTMedicationAsNeededRea... ?? » Body site to administer to site : CodeableConcept [0..1] « A coded concept describing the site location the medicine enters into or onto the body. (Strength=Example) SNOMEDCTAnatomicalStructureFo... ?? » How drug should enter body route : CodeableConcept [0..1] « A coded concept describing the route or physiological path of administration of a therapeutic agent into or onto the body of a subject. (Strength=Example) SNOMEDCTRouteCodes ?? » Technique for administering medication method : CodeableConcept [0..1] « A coded concept describing the technique by which the medicine is administered. (Strength=Example) SNOMEDCTAdministrationMethodC... ?? » Upper limit on medication per unit of time maxDosePerPeriod : Ratio [0..1] Upper limit on medication per administration maxDosePerAdministration : Quantity ( SimpleQuantity ) [0..1] Upper limit on medication per lifetime of the patient maxDosePerLifetime : Quantity ( SimpleQuantity ) [0..1] DoseAndRate The kind of dose or rate specified, for example, ordered or calculated type : CodeableConcept [0..1] « The kind of dose or rate specified. (Strength=Example) DoseAndRateType ?? » Amount of medication per dose dose[x] : Type DataType [0..1] « Range | Quantity ( SimpleQuantity ) » Amount of medication per unit of time rate[x] : Type DataType [0..1] « Ratio | Range | Quantity ( SimpleQuantity ) » BackboneType May 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) (this element modifies the meaning of other elements) modifierExtension : Extension [0..*] The amount of medication administered doseAndRate [0..*]

XML Template

<Dosage xmlns="http://hl7.org/fhir">
 <!-- from BackboneElement:  -->

 <!-- from Element: extension -->

 <sequence value="[integer]"/><!-- 0..1 The order of the dosage instructions -->
 <text value="[string]"/><!-- 0..1 Free text dosage instructions e.g. SIG -->
 <additionalInstruction><!-- 0..* CodeableConcept Supplemental instruction or warnings to the patient - e.g. "with meals", "may cause drowsiness" --></additionalInstruction>
 <patientInstruction value="[string]"/><!-- 0..1 Patient or consumer oriented instructions -->
 <timing><!-- 0..1 Timing When medication should be administered --></timing>
 <asNeeded[x]><!-- 0..1 boolean|CodeableConcept Take "as needed" (for x) --></asNeeded[x]>
 <site><!-- 0..1 CodeableConcept Body site to administer to --></site>
 <route><!-- 0..1 CodeableConcept How drug should enter body --></route>
 <method><!-- 0..1 CodeableConcept Technique for administering medication --></method>
 <doseAndRate>  <!-- 0..* Amount of medication administered -->
  <type><!-- 0..1 CodeableConcept The kind of dose or rate specified --></type>
  <dose[x]><!-- 0..1 Range|Quantity(SimpleQuantity) Amount of medication per dose --></dose[x]>
  <rate[x]><!-- 0..1 Ratio|Range|Quantity(SimpleQuantity) Amount of medication per unit of time --></rate[x]>
 </doseAndRate>
 <maxDosePerPeriod><!-- 0..1 Ratio Upper limit on medication per unit of time --></maxDosePerPeriod>
 <maxDosePerAdministration><!-- 0..1 Quantity(SimpleQuantity) Upper limit on medication per administration --></maxDosePerAdministration>
 <maxDosePerLifetime><!-- 0..1 Quantity(SimpleQuantity) Upper limit on medication per lifetime of the patient --></maxDosePerLifetime>
</Dosage>

JSON Template

{doco
  // from BackboneElement: 

  // from Element: extension

  "sequence" : <integer>, // The order of the dosage instructions
  "text" : "<string>", // Free text dosage instructions e.g. SIG
  "additionalInstruction" : [{ CodeableConcept }], // Supplemental instruction or warnings to the patient - e.g. "with meals", "may cause drowsiness"
  "patientInstruction" : "<string>", // Patient or consumer oriented instructions
  "timing" : { Timing }, // When medication should be administered
  // asNeeded[x]: Take "as needed" (for x). One of these 2:
  "asNeededBoolean" : <boolean>,
  "asNeededCodeableConcept" : { CodeableConcept },
  "site" : { CodeableConcept }, // Body site to administer to
  "route" : { CodeableConcept }, // How drug should enter body
  "method" : { CodeableConcept }, // Technique for administering medication
  "doseAndRate" : [{ // Amount of medication administered
    "type" : { CodeableConcept }, // The kind of dose or rate specified
    // dose[x]: Amount of medication per dose. One of these 2:
    "doseRange" : { Range },
    "doseQuantity" : { Quantity(SimpleQuantity) },
    // rate[x]: Amount of medication per unit of time. One of these 3:
    "rateRatio" : { Ratio }
    "rateRange" : { Range }
    "rateQuantity" : { Quantity(SimpleQuantity) }
  }],
  "maxDosePerPeriod" : { Ratio }, // Upper limit on medication per unit of time
  "maxDosePerAdministration" : { Quantity(SimpleQuantity) }, // Upper limit on medication per administration
  "maxDosePerLifetime" : { Quantity(SimpleQuantity) } // Upper limit on medication per lifetime of the patient
}

Turtle Template

@prefix fhir: <http://hl7.org/fhir/> .
[
 # from BackboneElement: 

 # from Element: Element.extension

  fhir:Dosage.sequence [ integer ]; # 0..1 The order of the dosage instructions
  fhir:Dosage.text [ string ]; # 0..1 Free text dosage instructions e.g. SIG
  fhir:Dosage.additionalInstruction [ CodeableConcept ], ... ; # 0..* Supplemental instruction or warnings to the patient - e.g. "with meals", "may cause drowsiness"
  fhir:Dosage.patientInstruction [ string ]; # 0..1 Patient or consumer oriented instructions
  fhir:Dosage.timing [ Timing ]; # 0..1 When medication should be administered
  # Dosage.asNeeded[x] : 0..1 Take "as needed" (for x). One of these 2
    fhir:Dosage.asNeededBoolean [ boolean ]
    fhir:Dosage.asNeededCodeableConcept [ CodeableConcept ]
  fhir:Dosage.site [ CodeableConcept ]; # 0..1 Body site to administer to
  fhir:Dosage.route [ CodeableConcept ]; # 0..1 How drug should enter body
  fhir:Dosage.method [ CodeableConcept ]; # 0..1 Technique for administering medication
  fhir:Dosage.doseAndRate [ # 0..* Amount of medication administered
    fhir:Dosage.doseAndRate.type [ CodeableConcept ]; # 0..1 The kind of dose or rate specified
    # Dosage.doseAndRate.dose[x] : 0..1 Amount of medication per dose. One of these 2
      fhir:Dosage.doseAndRate.doseRange [ Range ]
      fhir:Dosage.doseAndRate.doseSimpleQuantity [ Quantity(SimpleQuantity) ]
    # Dosage.doseAndRate.rate[x] : 0..1 Amount of medication per unit of time. One of these 3
      fhir:Dosage.doseAndRate.rateRatio [ Ratio ]
      fhir:Dosage.doseAndRate.rateRange [ Range ]
      fhir:Dosage.doseAndRate.rateSimpleQuantity [ Quantity(SimpleQuantity) ]
  ], ...;
  fhir:Dosage.maxDosePerPeriod [ Ratio ]; # 0..1 Upper limit on medication per unit of time
  fhir:Dosage.maxDosePerAdministration [ Quantity(SimpleQuantity) ]; # 0..1 Upper limit on medication per administration
  fhir:Dosage.maxDosePerLifetime [ Quantity(SimpleQuantity) ]; # 0..1 Upper limit on medication per lifetime of the patient
]

Changes since Release 3

Dosage.doseAndRate Added Element Dosage.doseAndRate.type Added Element
Dosage
Dosage.doseAndRate.dose[x]
  • Added Element Add Type Quantity()
  • Dosage.doseAndRate.rate[x]
  • Added Element Remove Type Quantity()
Dosage.dose[x] Dosage.doseAndRate.rate[x]
  • deleted Add Type Quantity()
  • Dosage.rate[x]
  • deleted Remove Type Quantity()

See the Full Difference for further information

Structure

Name Flags Card. Type Description & Constraints doco
. . Dosage Σ TU BackBoneElement Element How the medication is/was taken or should be taken
Elements defined in Ancestors: id , extension , modifierExtension
. . . sequence Σ 0..1 integer The order of the dosage instructions
. . . text Σ 0..1 string Free text dosage instructions e.g. SIG
. . . additionalInstruction Σ 0..* CodeableConcept Supplemental instruction or warnings to the patient - e.g. "with meals", "may cause drowsiness"
SNOMED CT Additional Dosage Instructions ( Example )
. . . timing Σ 0..1 Timing When medication should be administered
. . . asNeeded[x] Σ 0..1 Take "as needed" (for x)
SNOMED CT Medication As Needed Reason Codes ( Example )
. . . . asNeededBoolean boolean
. . . . asNeededCodeableConcept CodeableConcept
. . . site Σ 0..1 CodeableConcept Body site to administer to
SNOMED CT Anatomical Structure for Administration Site Codes ( Example )
. . . route Σ 0..1 CodeableConcept How drug should enter body
SNOMED CT Route Codes ( Example )
. . . method Σ 0..1 CodeableConcept Technique for administering medication
SNOMED CT Administration Method Codes ( Example )
. . . doseAndRate Σ 0..* Element Amount of medication administered
. . . . type Σ 0..1 CodeableConcept The kind of dose or rate specified
DoseAndRateType ( Example )
. . . . dose[x] Σ 0..1 Amount of medication per dose
. . . . . doseRange Range
. . . . . doseQuantity SimpleQuantity
. . . . rate[x] Σ 0..1 Amount of medication per unit of time
. . . . . rateRatio Ratio
. . . . . rateRange Range
. . . . . rateQuantity SimpleQuantity
. . . maxDosePerPeriod Σ 0..1 Ratio Upper limit on medication per unit of time
. . . maxDosePerAdministration Σ 0..1 SimpleQuantity Upper limit on medication per administration
. . . maxDosePerLifetime Σ 0..1 SimpleQuantity Upper limit on medication per lifetime of the patient

doco Documentation for this format

UML Diagram ( Legend )

BackboneElement Extensions - as described for all elements: additional information that is not part of the basic definition of the resource / type extension : Extension 0..* Modifier Extensions - as described for some elements: additional information that is not part of the basic definition of the resource / type that modifies the interpretation of the containing element modifierExtension : Extension 0..* Dosage Indicates the order in which the dosage instructions should be applied or interpreted sequence : integer [0..1] Free text dosage instructions e.g. SIG text : string [0..1] Supplemental 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") additionalInstruction : CodeableConcept [0..*] « A coded concept identifying additional instructions such as "take with water" or "avoid operating heavy machinery". (Strength=Example) SNOMEDCTAdditionalDosageInstr... ?? » Instructions in terms that are understood by the patient or consumer patientInstruction : string [0..1] When medication should be administered timing : Timing [0..1] Indicates 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) asNeeded[x] : Type DataType [0..1] « boolean | CodeableConcept ; 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. (Strength=Example) SNOMEDCTMedicationAsNeededRea... ?? » Body site to administer to site : CodeableConcept [0..1] « A coded concept describing the site location the medicine enters into or onto the body. (Strength=Example) SNOMEDCTAnatomicalStructureFo... ?? » How drug should enter body route : CodeableConcept [0..1] « A coded concept describing the route or physiological path of administration of a therapeutic agent into or onto the body of a subject. (Strength=Example) SNOMEDCTRouteCodes ?? » Technique for administering medication method : CodeableConcept [0..1] « A coded concept describing the technique by which the medicine is administered. (Strength=Example) SNOMEDCTAdministrationMethodC... ?? » Upper limit on medication per unit of time maxDosePerPeriod : Ratio [0..1] Upper limit on medication per administration maxDosePerAdministration : Quantity ( SimpleQuantity ) [0..1] Upper limit on medication per lifetime of the patient maxDosePerLifetime : Quantity ( SimpleQuantity ) [0..1] DoseAndRate The kind of dose or rate specified, for example, ordered or calculated type : CodeableConcept [0..1] « The kind of dose or rate specified. (Strength=Example) DoseAndRateType ?? » Amount of medication per dose dose[x] : Type DataType [0..1] « Range | Quantity ( SimpleQuantity ) » Amount of medication per unit of time rate[x] : Type DataType [0..1] « Ratio | Range | Quantity ( SimpleQuantity ) » BackboneType May 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) (this element modifies the meaning of other elements) modifierExtension : Extension [0..*] The amount of medication administered doseAndRate [0..*]

XML Template

<Dosage xmlns="http://hl7.org/fhir">
 <!-- from BackboneElement:  -->

 <!-- from Element: extension -->

 <sequence value="[integer]"/><!-- 0..1 The order of the dosage instructions -->
 <text value="[string]"/><!-- 0..1 Free text dosage instructions e.g. SIG -->
 <additionalInstruction><!-- 0..* CodeableConcept Supplemental instruction or warnings to the patient - e.g. "with meals", "may cause drowsiness" --></additionalInstruction>
 <patientInstruction value="[string]"/><!-- 0..1 Patient or consumer oriented instructions -->
 <timing><!-- 0..1 Timing When medication should be administered --></timing>
 <asNeeded[x]><!-- 0..1 boolean|CodeableConcept Take "as needed" (for x) --></asNeeded[x]>
 <site><!-- 0..1 CodeableConcept Body site to administer to --></site>
 <route><!-- 0..1 CodeableConcept How drug should enter body --></route>
 <method><!-- 0..1 CodeableConcept Technique for administering medication --></method>
 <doseAndRate>  <!-- 0..* Amount of medication administered -->
  <type><!-- 0..1 CodeableConcept The kind of dose or rate specified --></type>
  <dose[x]><!-- 0..1 Range|Quantity(SimpleQuantity) Amount of medication per dose --></dose[x]>
  <rate[x]><!-- 0..1 Ratio|Range|Quantity(SimpleQuantity) Amount of medication per unit of time --></rate[x]>
 </doseAndRate>
 <maxDosePerPeriod><!-- 0..1 Ratio Upper limit on medication per unit of time --></maxDosePerPeriod>
 <maxDosePerAdministration><!-- 0..1 Quantity(SimpleQuantity) Upper limit on medication per administration --></maxDosePerAdministration>
 <maxDosePerLifetime><!-- 0..1 Quantity(SimpleQuantity) Upper limit on medication per lifetime of the patient --></maxDosePerLifetime>
</Dosage>

JSON Template

{doco
  // from BackboneElement: 

  // from Element: extension

  "sequence" : <integer>, // The order of the dosage instructions
  "text" : "<string>", // Free text dosage instructions e.g. SIG
  "additionalInstruction" : [{ CodeableConcept }], // Supplemental instruction or warnings to the patient - e.g. "with meals", "may cause drowsiness"
  "patientInstruction" : "<string>", // Patient or consumer oriented instructions
  "timing" : { Timing }, // When medication should be administered
  // asNeeded[x]: Take "as needed" (for x). One of these 2:
  "asNeededBoolean" : <boolean>,
  "asNeededCodeableConcept" : { CodeableConcept },
  "site" : { CodeableConcept }, // Body site to administer to
  "route" : { CodeableConcept }, // How drug should enter body
  "method" : { CodeableConcept }, // Technique for administering medication
  "doseAndRate" : [{ // Amount of medication administered
    "type" : { CodeableConcept }, // The kind of dose or rate specified
    // dose[x]: Amount of medication per dose. One of these 2:
    "doseRange" : { Range },
    "doseQuantity" : { Quantity(SimpleQuantity) },
    // rate[x]: Amount of medication per unit of time. One of these 3:
    "rateRatio" : { Ratio }
    "rateRange" : { Range }
    "rateQuantity" : { Quantity(SimpleQuantity) }
  }],
  "maxDosePerPeriod" : { Ratio }, // Upper limit on medication per unit of time
  "maxDosePerAdministration" : { Quantity(SimpleQuantity) }, // Upper limit on medication per administration
  "maxDosePerLifetime" : { Quantity(SimpleQuantity) } // Upper limit on medication per lifetime of the patient
}

Turtle Template

@prefix fhir: <http://hl7.org/fhir/> .
[
 # from BackboneElement: 

 # from Element: Element.extension

  fhir:Dosage.sequence [ integer ]; # 0..1 The order of the dosage instructions
  fhir:Dosage.text [ string ]; # 0..1 Free text dosage instructions e.g. SIG
  fhir:Dosage.additionalInstruction [ CodeableConcept ], ... ; # 0..* Supplemental instruction or warnings to the patient - e.g. "with meals", "may cause drowsiness"
  fhir:Dosage.patientInstruction [ string ]; # 0..1 Patient or consumer oriented instructions
  fhir:Dosage.timing [ Timing ]; # 0..1 When medication should be administered
  # Dosage.asNeeded[x] : 0..1 Take "as needed" (for x). One of these 2
    fhir:Dosage.asNeededBoolean [ boolean ]
    fhir:Dosage.asNeededCodeableConcept [ CodeableConcept ]
  fhir:Dosage.site [ CodeableConcept ]; # 0..1 Body site to administer to
  fhir:Dosage.route [ CodeableConcept ]; # 0..1 How drug should enter body
  fhir:Dosage.method [ CodeableConcept ]; # 0..1 Technique for administering medication
  fhir:Dosage.doseAndRate [ # 0..* Amount of medication administered
    fhir:Dosage.doseAndRate.type [ CodeableConcept ]; # 0..1 The kind of dose or rate specified
    # Dosage.doseAndRate.dose[x] : 0..1 Amount of medication per dose. One of these 2
      fhir:Dosage.doseAndRate.doseRange [ Range ]
      fhir:Dosage.doseAndRate.doseSimpleQuantity [ Quantity(SimpleQuantity) ]
    # Dosage.doseAndRate.rate[x] : 0..1 Amount of medication per unit of time. One of these 3
      fhir:Dosage.doseAndRate.rateRatio [ Ratio ]
      fhir:Dosage.doseAndRate.rateRange [ Range ]
      fhir:Dosage.doseAndRate.rateSimpleQuantity [ Quantity(SimpleQuantity) ]
  ], ...;
  fhir:Dosage.maxDosePerPeriod [ Ratio ]; # 0..1 Upper limit on medication per unit of time
  fhir:Dosage.maxDosePerAdministration [ Quantity(SimpleQuantity) ]; # 0..1 Upper limit on medication per administration
  fhir:Dosage.maxDosePerLifetime [ Quantity(SimpleQuantity) ]; # 0..1 Upper limit on medication per lifetime of the patient
]

Changes since Release 3

Dosage.doseAndRate Added Element Dosage.doseAndRate.type Added Element
Dosage
Dosage.doseAndRate.dose[x]
  • Added Element Add Type Quantity()
  • Dosage.doseAndRate.rate[x]
  • Added Element Remove Type Quantity()
Dosage.dose[x] Dosage.doseAndRate.rate[x]
  • deleted Add Type Quantity()
  • Dosage.rate[x]
  • deleted Remove Type Quantity()

See the Full Difference for further information

Constraints

Dosage is used in the following places: ActivityDefinition , MedicationDispense , MedicationKnowledge , MedicationRequest and MedicationStatement MedicationUsage