MediRecords FHIR Implementation Guide
1.4.1 - release


Data Type Profile: MR Dosage

Defining URL:https://fhir.medirecords.com/StructureDefinition/mr-medication-dosage
Version:1.4.1
Name:MRDosage
Title:MR Dosage
Status:Active as of 2024-10-28 02:34:31+0000
Definition:

MediRecords Medication Dosage profile to record details about the dosage prescribed

Source Resource:XML / JSON / Turtle

The official URL for this profile is:

https://fhir.medirecords.com/StructureDefinition/mr-medication-dosage

Formal Views of Profile Content

Description of Profiles, Differentials, Snapshots and how the different presentations work.

This structure is derived from AUBaseDosage

Summary

Mandatory: 1 element
Must-Support: 11 elements

Structures

This structure refers to these other structures:

This structure is derived from AUBaseDosage

NameFlagsCard.TypeDescription & Constraintsdoco
.. Dosage 0..*AUBaseDosageDosage information in an Australian healthcare context
... text S1..1stringFree text dosage instructions e.g. SIG
... additionalInstruction S0..*CodeableConceptSupplemental instruction or warnings to the patient - e.g. "with meals", "may cause drowsiness"
... timing
.... repeat
..... boundsPeriod 0..1PeriodLength/Range of lengths, or (Start and/or end) limits
...... start S0..1dateTimeEstimated start of course based on prescription start date
...... end S0..1dateTimeEstimated end of course based on prescription start date and number of doses supplied
..... frequency S0..1positiveIntEvent occurs frequency times per period
..... period S0..1decimalEvent occurs frequency times per period
..... periodUnit S0..1codes | min | h | d | wk | mo | a - unit of time (UCUM)
.... code
..... text S0..1stringFree text description of the frequency
... route S0..1CodeableConceptHow drug should enter body
... doseAndRate 0..1ElementAmount of medication administered
.... doseQuantity 0..1SimpleQuantityA fixed quantity (no comparator)
..... value S0..1decimalNumerical value (with implicit precision)

doco Documentation for this format
NameFlagsCard.TypeDescription & Constraintsdoco
.. Dosage 0..*AUBaseDosageDosage information in an Australian healthcare context
... id 0..1stringUnique id for inter-element referencing
... extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
... text SΣ1..1stringFree text dosage instructions e.g. SIG
... additionalInstruction SΣ0..*CodeableConceptSupplemental instruction or warnings to the patient - e.g. "with meals", "may cause drowsiness"
Binding: SNOMEDCTAdditionalDosageInstructions (preferred)
... patientInstruction Σ0..1stringPatient or consumer oriented instructions
... timing Σ0..1TimingWhen medication should be administered
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... event Σ0..*dateTimeWhen the event occurs
.... repeat ΣC0..1ElementWhen the event is to occur
tim-1: if there's a duration, there needs to be duration units
tim-2: if there's a period, there needs to be period units
tim-4: duration SHALL be a non-negative value
tim-5: period SHALL be a non-negative value
tim-6: If there's a periodMax, there must be a period
tim-7: If there's a durationMax, there must be a duration
tim-8: If there's a countMax, there must be a count
tim-9: If there's an offset, there must be a when (and not C, CM, CD, CV)
tim-10: If there's a timeOfDay, there cannot be a when, or vice versa
..... id 0..1stringUnique id for inter-element referencing
..... extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
..... Slices for bounds[x] Σ0..1Length/Range of lengths, or (Start and/or end) limits
Slice: Unordered, Open by type:$this
...... boundsDurationDuration
...... boundsRangeRange
...... boundsPeriodPeriod
...... bounds[x]:boundsPeriod Σ0..1PeriodLength/Range of lengths, or (Start and/or end) limits
....... id 0..1stringUnique id for inter-element referencing
....... extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
....... start SΣC0..1dateTimeEstimated start of course based on prescription start date
....... end SΣC0..1dateTimeEstimated end of course based on prescription start date and number of doses supplied
..... count Σ0..1positiveIntNumber of times to repeat
..... countMax Σ0..1positiveIntMaximum number of times to repeat
..... duration Σ0..1decimalHow long when it happens
..... durationMax Σ0..1decimalHow long when it happens (Max)
..... durationUnit Σ0..1codes | min | h | d | wk | mo | a - unit of time (UCUM)
Binding: UnitsOfTime (required): A unit of time (units from UCUM).

..... frequency SΣ0..1positiveIntEvent occurs frequency times per period
..... frequencyMax Σ0..1positiveIntEvent occurs up to frequencyMax times per period
..... period SΣ0..1decimalEvent occurs frequency times per period
..... periodMax Σ0..1decimalUpper limit of period (3-4 hours)
..... periodUnit SΣ0..1codes | min | h | d | wk | mo | a - unit of time (UCUM)
Binding: UnitsOfTime (required): A unit of time (units from UCUM).

..... dayOfWeek Σ0..*codemon | tue | wed | thu | fri | sat | sun
Binding: DaysOfWeek (required)
..... timeOfDay Σ0..*timeTime of day for action
..... when Σ0..*codeCode for time period of occurrence
Binding: EventTiming (required): Real world event relating to the schedule.


..... offset Σ0..1unsignedIntMinutes from event (before or after)
.... code Σ0..1CodeableConceptBID | TID | QID | AM | PM | QD | QOD | +
Binding: TimingAbbreviation (preferred): Code for a known / defined timing pattern.

..... id 0..1stringUnique id for inter-element referencing
..... extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
..... coding Σ0..*CodingCode defined by a terminology system
..... text SΣ0..1stringFree text description of the frequency
... Slices for asNeeded[x] Σ0..1Take "as needed" (for x)
Slice: Unordered, Open by type:$this
Binding: Clinical Finding . (preferred)
.... asNeededBooleanboolean
.... asNeededCodeableConceptCodeableConcept
.... asNeeded[x]:asNeededBoolean SΣ0..1booleanTake "as needed" (for x)
... site Σ0..1CodeableConceptBody site to administer to
Binding: Body Site . (preferred)
... route SΣ0..1CodeableConceptHow drug should enter body
Binding: Route of Administration . (preferred)
... method Σ0..1CodeableConceptTechnique for administering medication
Binding: SNOMEDCTAdministrationMethodCodes (preferred)
... doseAndRate Σ0..1ElementAmount of medication administered
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
.... type Σ0..1CodeableConceptThe kind of dose or rate specified
Binding: DoseAndRateType (example): The kind of dose or rate specified.

.... Slices for dose[x] Σ0..1Amount of medication per dose
Slice: Unordered, Open by type:$this
..... doseRangeRange
..... doseQuantityQuantity(SimpleQuantity)
..... dose[x]:doseQuantity C0..1SimpleQuantityA fixed quantity (no comparator)
qty-3: If a code for the unit is present, the system SHALL also be present
sqty-1: The comparator is not used on a SimpleQuantity
...... id 0..1stringUnique id for inter-element referencing
...... extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
...... value SΣ0..1decimalNumerical value (with implicit precision)
...... unit Σ0..1stringUnit representation
...... system ΣC0..1uriSystem that defines coded unit form
...... code Σ0..1codeCoded form of the unit
.... rate[x] Σ0..1Amount of medication per unit of time
..... rateRatioRatio
..... rateRangeRange
..... rateQuantityQuantity(SimpleQuantity)
... maxDosePerPeriod Σ0..1RatioUpper limit on medication per unit of time
... maxDosePerAdministration Σ0..1SimpleQuantityUpper limit on medication per administration
... maxDosePerLifetime Σ0..1SimpleQuantityUpper limit on medication per lifetime of the patient

doco Documentation for this format
NameFlagsCard.TypeDescription & Constraintsdoco
.. Dosage 0..*AUBaseDosageDosage information in an Australian healthcare context
... text Σ1..1stringFree text dosage instructions e.g. SIG
... additionalInstruction Σ0..*CodeableConceptSupplemental instruction or warnings to the patient - e.g. "with meals", "may cause drowsiness"
Binding: SNOMEDCTAdditionalDosageInstructions (preferred)
... timing Σ0..1TimingWhen medication should be administered
.... repeat Σ0..1ElementWhen the event is to occur
..... bounds[x]:boundsPeriod Σ0..1PeriodLength/Range of lengths, or (Start and/or end) limits
...... start ΣC0..1dateTimeEstimated start of course based on prescription start date
...... end ΣC0..1dateTimeEstimated end of course based on prescription start date and number of doses supplied
..... frequency Σ0..1positiveIntEvent occurs frequency times per period
..... period Σ0..1decimalEvent occurs frequency times per period
..... periodUnit Σ0..1codes | min | h | d | wk | mo | a - unit of time (UCUM)
Binding: UnitsOfTime (required): A unit of time (units from UCUM).

.... code Σ0..1CodeableConceptBID | TID | QID | AM | PM | QD | QOD | +
..... text Σ0..1stringFree text description of the frequency
... route Σ0..1CodeableConceptHow drug should enter body
Binding: Route of Administration . (preferred)
... doseAndRate Σ0..1ElementAmount of medication administered
.... dose[x]:doseQuantity 0..1SimpleQuantityA fixed quantity (no comparator)
..... value Σ0..1decimalNumerical value (with implicit precision)

doco Documentation for this format

This structure is derived from AUBaseDosage

Summary

Mandatory: 1 element
Must-Support: 11 elements

Structures

This structure refers to these other structures:

Differential View

This structure is derived from AUBaseDosage

NameFlagsCard.TypeDescription & Constraintsdoco
.. Dosage 0..*AUBaseDosageDosage information in an Australian healthcare context
... text S1..1stringFree text dosage instructions e.g. SIG
... additionalInstruction S0..*CodeableConceptSupplemental instruction or warnings to the patient - e.g. "with meals", "may cause drowsiness"
... timing
.... repeat
..... boundsPeriod 0..1PeriodLength/Range of lengths, or (Start and/or end) limits
...... start S0..1dateTimeEstimated start of course based on prescription start date
...... end S0..1dateTimeEstimated end of course based on prescription start date and number of doses supplied
..... frequency S0..1positiveIntEvent occurs frequency times per period
..... period S0..1decimalEvent occurs frequency times per period
..... periodUnit S0..1codes | min | h | d | wk | mo | a - unit of time (UCUM)
.... code
..... text S0..1stringFree text description of the frequency
... route S0..1CodeableConceptHow drug should enter body
... doseAndRate 0..1ElementAmount of medication administered
.... doseQuantity 0..1SimpleQuantityA fixed quantity (no comparator)
..... value S0..1decimalNumerical value (with implicit precision)

doco Documentation for this format

Snapshot View

NameFlagsCard.TypeDescription & Constraintsdoco
.. Dosage 0..*AUBaseDosageDosage information in an Australian healthcare context
... id 0..1stringUnique id for inter-element referencing
... extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
... text SΣ1..1stringFree text dosage instructions e.g. SIG
... additionalInstruction SΣ0..*CodeableConceptSupplemental instruction or warnings to the patient - e.g. "with meals", "may cause drowsiness"
Binding: SNOMEDCTAdditionalDosageInstructions (preferred)
... patientInstruction Σ0..1stringPatient or consumer oriented instructions
... timing Σ0..1TimingWhen medication should be administered
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... event Σ0..*dateTimeWhen the event occurs
.... repeat ΣC0..1ElementWhen the event is to occur
tim-1: if there's a duration, there needs to be duration units
tim-2: if there's a period, there needs to be period units
tim-4: duration SHALL be a non-negative value
tim-5: period SHALL be a non-negative value
tim-6: If there's a periodMax, there must be a period
tim-7: If there's a durationMax, there must be a duration
tim-8: If there's a countMax, there must be a count
tim-9: If there's an offset, there must be a when (and not C, CM, CD, CV)
tim-10: If there's a timeOfDay, there cannot be a when, or vice versa
..... id 0..1stringUnique id for inter-element referencing
..... extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
..... Slices for bounds[x] Σ0..1Length/Range of lengths, or (Start and/or end) limits
Slice: Unordered, Open by type:$this
...... boundsDurationDuration
...... boundsRangeRange
...... boundsPeriodPeriod
...... bounds[x]:boundsPeriod Σ0..1PeriodLength/Range of lengths, or (Start and/or end) limits
....... id 0..1stringUnique id for inter-element referencing
....... extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
....... start SΣC0..1dateTimeEstimated start of course based on prescription start date
....... end SΣC0..1dateTimeEstimated end of course based on prescription start date and number of doses supplied
..... count Σ0..1positiveIntNumber of times to repeat
..... countMax Σ0..1positiveIntMaximum number of times to repeat
..... duration Σ0..1decimalHow long when it happens
..... durationMax Σ0..1decimalHow long when it happens (Max)
..... durationUnit Σ0..1codes | min | h | d | wk | mo | a - unit of time (UCUM)
Binding: UnitsOfTime (required): A unit of time (units from UCUM).

..... frequency SΣ0..1positiveIntEvent occurs frequency times per period
..... frequencyMax Σ0..1positiveIntEvent occurs up to frequencyMax times per period
..... period SΣ0..1decimalEvent occurs frequency times per period
..... periodMax Σ0..1decimalUpper limit of period (3-4 hours)
..... periodUnit SΣ0..1codes | min | h | d | wk | mo | a - unit of time (UCUM)
Binding: UnitsOfTime (required): A unit of time (units from UCUM).

..... dayOfWeek Σ0..*codemon | tue | wed | thu | fri | sat | sun
Binding: DaysOfWeek (required)
..... timeOfDay Σ0..*timeTime of day for action
..... when Σ0..*codeCode for time period of occurrence
Binding: EventTiming (required): Real world event relating to the schedule.


..... offset Σ0..1unsignedIntMinutes from event (before or after)
.... code Σ0..1CodeableConceptBID | TID | QID | AM | PM | QD | QOD | +
Binding: TimingAbbreviation (preferred): Code for a known / defined timing pattern.

..... id 0..1stringUnique id for inter-element referencing
..... extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
..... coding Σ0..*CodingCode defined by a terminology system
..... text SΣ0..1stringFree text description of the frequency
... Slices for asNeeded[x] Σ0..1Take "as needed" (for x)
Slice: Unordered, Open by type:$this
Binding: Clinical Finding . (preferred)
.... asNeededBooleanboolean
.... asNeededCodeableConceptCodeableConcept
.... asNeeded[x]:asNeededBoolean SΣ0..1booleanTake "as needed" (for x)
... site Σ0..1CodeableConceptBody site to administer to
Binding: Body Site . (preferred)
... route SΣ0..1CodeableConceptHow drug should enter body
Binding: Route of Administration . (preferred)
... method Σ0..1CodeableConceptTechnique for administering medication
Binding: SNOMEDCTAdministrationMethodCodes (preferred)
... doseAndRate Σ0..1ElementAmount of medication administered
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
.... type Σ0..1CodeableConceptThe kind of dose or rate specified
Binding: DoseAndRateType (example): The kind of dose or rate specified.

.... Slices for dose[x] Σ0..1Amount of medication per dose
Slice: Unordered, Open by type:$this
..... doseRangeRange
..... doseQuantityQuantity(SimpleQuantity)
..... dose[x]:doseQuantity C0..1SimpleQuantityA fixed quantity (no comparator)
qty-3: If a code for the unit is present, the system SHALL also be present
sqty-1: The comparator is not used on a SimpleQuantity
...... id 0..1stringUnique id for inter-element referencing
...... extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
...... value SΣ0..1decimalNumerical value (with implicit precision)
...... unit Σ0..1stringUnit representation
...... system ΣC0..1uriSystem that defines coded unit form
...... code Σ0..1codeCoded form of the unit
.... rate[x] Σ0..1Amount of medication per unit of time
..... rateRatioRatio
..... rateRangeRange
..... rateQuantityQuantity(SimpleQuantity)
... maxDosePerPeriod Σ0..1RatioUpper limit on medication per unit of time
... maxDosePerAdministration Σ0..1SimpleQuantityUpper limit on medication per administration
... maxDosePerLifetime Σ0..1SimpleQuantityUpper limit on medication per lifetime of the patient

doco Documentation for this format

 

Other representations of profile: CSV, Excel, Schematron

Terminology Bindings

PathConformanceValueSetURI
Dosage.additionalInstructionpreferredSNOMEDCTAdditionalDosageInstructions
http://hl7.org/fhir/ValueSet/additional-instruction-codes
from the FHIR Standard
Dosage.timing.repeat.durationUnitrequiredUnitsOfTime
http://hl7.org/fhir/ValueSet/units-of-time|4.0.1
from the FHIR Standard
Dosage.timing.repeat.periodUnitrequiredUnitsOfTime
http://hl7.org/fhir/ValueSet/units-of-time|4.0.1
from the FHIR Standard
Dosage.timing.repeat.dayOfWeekrequiredDaysOfWeek
http://hl7.org/fhir/ValueSet/days-of-week|4.0.1
from the FHIR Standard
Dosage.timing.repeat.whenrequiredEventTiming
http://hl7.org/fhir/ValueSet/event-timing|4.0.1
from the FHIR Standard
Dosage.timing.codepreferredTimingAbbreviation
http://hl7.org/fhir/ValueSet/timing-abbreviation
from the FHIR Standard
Dosage.asNeeded[x]preferredClinicalFinding .
https://healthterminologies.gov.au/fhir/ValueSet/clinical-finding-1
Dosage.sitepreferredBodySite .
https://healthterminologies.gov.au/fhir/ValueSet/body-site-1
Dosage.routepreferredRouteOfAdministration .
https://healthterminologies.gov.au/fhir/ValueSet/route-of-administration-1
Dosage.methodpreferredSNOMEDCTAdministrationMethodCodes
http://hl7.org/fhir/ValueSet/administration-method-codes
from the FHIR Standard
Dosage.doseAndRate.typeexampleDoseAndRateType
http://hl7.org/fhir/ValueSet/dose-rate-type
from the FHIR Standard

Constraints

IdGradePath(s)DetailsRequirements
ele-1error**ALL** elementsAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1error**ALL** extensionsMust have either extensions or value[x], not both
: extension.exists() != value.exists()
qty-3errorDosage.doseAndRate.dose[x]:doseQuantityIf a code for the unit is present, the system SHALL also be present
: code.empty() or system.exists()
sqty-1errorDosage.doseAndRate.dose[x]:doseQuantityThe comparator is not used on a SimpleQuantity
: comparator.empty()
tim-1errorDosage.timing.repeatif there's a duration, there needs to be duration units
: duration.empty() or durationUnit.exists()
tim-2errorDosage.timing.repeatif there's a period, there needs to be period units
: period.empty() or periodUnit.exists()
tim-4errorDosage.timing.repeatduration SHALL be a non-negative value
: duration.exists() implies duration >= 0
tim-5errorDosage.timing.repeatperiod SHALL be a non-negative value
: period.exists() implies period >= 0
tim-6errorDosage.timing.repeatIf there's a periodMax, there must be a period
: periodMax.empty() or period.exists()
tim-7errorDosage.timing.repeatIf there's a durationMax, there must be a duration
: durationMax.empty() or duration.exists()
tim-8errorDosage.timing.repeatIf there's a countMax, there must be a count
: countMax.empty() or count.exists()
tim-9errorDosage.timing.repeatIf there's an offset, there must be a when (and not C, CM, CD, CV)
: offset.empty() or (when.exists() and ((when in ('C' | 'CM' | 'CD' | 'CV')).not()))
tim-10errorDosage.timing.repeatIf there's a timeOfDay, there cannot be a when, or vice versa
: timeOfDay.empty() or when.empty()