View raw Markdown
type: docsource: source/dosage.html

[%settitle Dosage%] [%file newheader%] [%file newnavbar%] <%dtxheader base Dosage%>

Dosage Regimes

Responsible Owner: [[%wgt phx%]]([%wg phx%]) Work GroupStandards Status:Normative

Types Framework Cross Reference: Base Types | Datatypes | Resources | Patterns

The Dosage related structures define general dosage instruction information typically represented in medication requests, medication dispenses and medication statements.

There are four different types involved in the representation of Dosage Information:

The examples page shows how many different complex dosage regimes are represented using these structures.

Note to Balloters: The way Medication dosage regimes are represented and used has undergone extensive reorganization with breaking changes in R6:

  • The dosageInstruction element in MedicationRequest, MedicationDispense, and MedicationStatement has changed from multiple Dosage elements (0..*) to a single DosageDetails element (0..1)
  • Complex dosing regimes are now represented within DosageDetails using steps and components rather than multiple Dosage instances
  • The DosageDetails data type allows combining multiple dosages and replaces the use of .sequence.
  • There are changes to the Boundaries for MedicationRequest
  • The Timing datatype has related changes - namely the addition of startOffset and endOffset.

Balloters should pay careful attention to these structures and the examples.

Dosage text and structured Data

Dosages may contain renderedInstruction and/or structured data (as a simple dosage or a complex sequence of step elements).

The rendered instructions are typical prescription instructions, with a relatively concise expression that is mostly understood by human. If the Medication related resources (request, dispense, or statement) are only serving the purpose of human mediated medication functionality, it's sufficient to populate renderedInstruction, and leave the rest of the structure empty.

However in many contexts, it is good to augment the human readable instructions with precisely formulated dosage regimes so that medication management systems can assist with correct and safe administration. As of the publication of this specification, GenAI services are mostly able to decode correct renderedInstructions correctly, but this can't be assumed correct (and not just because of AI limitations), so in any context where there is interest in providing medication management support, the dosage structure should be fully populated.

However, even after it's fully populated, it's not unusual for the renderedInstruction to contain additional details not found in the structure, or found in the structure in extensions that not all systems can understand, so the renderedInstruction is always important to show to huamns. Even in the presence of fully populated structures, it's a challenge to produce good concise and readable renderedInstruction, so applications SHOULD always consider populating renderedInstruction.

Limitations of Use

The dosage model presented on this page does not address the following aspects of medication management:

For all of these challenges, the management and orchestration of the care process starts with PlanDefinition and/or RequestOrchestration. See also the MedicationRequest Boundaries.

DosageDetails

The DosageDetails type is the container type for dosing information, and contains:

[%dt DosageDetails 2%]

Constraints

[%dt.constraints DosageDetails%] [%tx DosageDetails%]

Note: the DosageDetails structure allows modifier extensions.

When a DosageDetails contains multiple steps, the steps are sequential - the dosage course follows through the steps one at a time. Each step has to specify an end condition - either by explicitly linking the step to some external event, or by specifying a limit on the timing of the event using either Timing.repeat.bounds[x] or Timing.repeat.count on the Timing data type.

Each step may include one or more component entries.

When there more than one component dosages in a step, all components within the same step are considered concurrent. Typically, there are multiple components for the following reasons:

If there are multiple components, and they specify different bounds for their repeating events, the step lasts as long as the longest component.

DosageDetails is used in the following places: [%dtusage DosageDetails%]

Dosage

The Dosage data type describes a single course of medication application. The course is a consistent application of a medication one or more times, as specified by the dosage details.

[%dt Dosage 1%]

Note: the Dosage structure allows modifier extensions.

Constraints

[%dt.constraints Dosage%] [%tx Dosage%]

Dosage is used in the following places: [%dtusage Dosage%]

DosageSafety

The DosageSafety type represents safety information about the medicine - that is, dosage limitations associated with medications for which safety issues exists.

[%dt DosageSafety 3%]

A period can only be specified if the scope is 'period', in which case it must be present.

The DosageSafety type allows for representing multiple limits. Limits can defined for four different scopes of interest:

administrationA dose limit that applies for a single administration
dosageA dose limit that applies to the dosage structure where it is applied - either the entire dosage course, a specific step in the sequence, or a specific component
periodA dose limit that applies over the specified time period, irrespective of the details of the dosage course (and, in principle, other medications that include the same active agent)
lifetimeA dose limit that is a lifetime dose limit for the medication across all medication applications

There is no rule that there can only be one limit per scope, because there might be both absolute and context dependent limits, such as 'no more than 1g', and also 'no more than 5 ug/kg of body weight'.

Constraints

[%dt.constraints DosageSafety%] [%tx DosageSafety%]

DosageSafety is used in the following places: [%dtusage DosageSafety%]

DosageCondition

DosageCondition describes when the dosage regime is dependent on external events or conditions. Some examples of it's use:

[%dt DosageCondition 3%]

Constraints

[%dt.constraints DosageCondition%] [%tx DosageCondition%]

DosageCondition is used in the following places: [%dtusage DosageCondition%]

[%file newfooter%] try { var currentTabIndex = sessionStorage.getItem('fhir-resource-tab-index'); } catch(exception){ } if (!currentTabIndex) currentTabIndex = '0'; $( '#tabs-Dosage' ).tabs({ active: currentTabIndex, activate: function( event, ui ) { store(ui.newTab.index()); } }); $( '#tabs-DosageDetails' ).tabs({ active: currentTabIndex, activate: function( event, ui ) { store(ui.newTab.index()); } }); $( '#tabs-DosageSafety' ).tabs({ active: currentTabIndex, activate: function( event, ui ) { store(ui.newTab.index()); } }); $( '#tabs-DosageCondition' ).tabs({ active: currentTabIndex, activate: function( event, ui ) { store(ui.newTab.index()); } }); function store(currentTab) { document.activeElement.blur(); try { sessionStorage.setItem('fhir-resource-tab-index', currentTab); } catch(exception){ } $( '#tabs-Dosage' ).tabs('option', 'active', currentTab); $( '#tabs-DosageDetails' ).tabs('option', 'active', currentTab); $( '#tabs-DosageSafety' ).tabs('option', 'active', currentTab); $( '#tabs-DosageCondition' ).tabs('option', 'active', currentTab); }