MediRecords FHIR Implementation Guide
1.4.2 - release


Data Type Profile: MR Dosage Admission (Draft)

Defining URL:https://fhir.medirecords.com/StructureDefinition/mr-medication-dosage-admission
Version:1.4.2
Name:MRDosageAdmission
Title:MR Dosage Admission (Draft)
Status:Active as of 2025-09-12 07:08:18+0000
Definition:

MediRecords Medication Dosage profile to record details about the dosage prescribed in an admission context.

Source Resource:XML / JSON / Turtle

The official URL for this profile is:

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

Formal Views of Profile Content

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

This structure is derived from AUBaseDosage

Summary

Mandatory: 10 elements(5 nested mandatory elements)
Must-Support: 21 elements
Fixed: 1 element

Structures

This structure refers to these other structures:

Slices

This structure defines the following Slices:

  • The element 1 is sliced based on the value of Dosage.timing.repeat.bounds[x]
  • The element 1 is sliced based on the value of Dosage.doseAndRate.dose[x]

This structure is derived from AUBaseDosage

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Dosage AUBaseDosage
... text S 1..1 string Free text dosage instructions e.g. SIG
... timing S 1..1 Timing When medication should be administered
.... repeat S 1..1 Element When the event is to occur
..... Slices for bounds[x] 1..1 Period Length/Range of lengths, or (Start and/or end) limits
Slice: Unordered, Open by type:$this
...... bounds[x]:boundsPeriod S 1..1 Period Length/Range of lengths, or (Start and/or end) limits
....... start S 1..1 dateTime Starting time with inclusive boundary
....... end S 0..1 dateTime End time with inclusive boundary, if not ongoing
..... frequency S 0..1 positiveInt Event occurs frequency times per period
..... period S 0..1 decimal Event occurs frequency times per period
..... periodUnit S 0..1 code s | min | h | d | wk | mo | a - unit of time (UCUM)
..... dayOfWeek S 0..* code mon | tue | wed | thu | fri | sat | sun
..... timeOfDay S 0..* time Time of day for action
.... code S 1..1 CodeableConcept BID | TID | QID | AM | PM | QD | QOD | +
..... coding S 0..1 Coding Code defined by a terminology system
..... text S 1..1 string Plain text representation of the concept
... route S 1..1 CodeableConcept How drug should enter body
.... coding S 0..1 Coding Code defined by a terminology system
..... system 0..1 uri Identity of the terminology system
Fixed Value: http://snomed.info/sct
..... code S 1..1 code Symbol in syntax defined by the system
.... text S 1..1 string Plain text representation of the concept
.... Slices for dose[x] 1..1 SimpleQuantity Amount of medication per dose
Slice: Unordered, Open by type:$this
..... dose[x]:doseQuantity S 1..1 SimpleQuantity Amount of medication per dose
...... value S 1..1 decimal Numerical value (with implicit precision)
...... unit S 1..1 string Unit representation

doco Documentation for this format
NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Dosage 0..* AUBaseDosage Dosage information in an Australian healthcare context
... id 0..1 string Unique id for inter-element referencing
... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
... text SΣ 1..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"
Binding: SNOMEDCTAdditionalDosageInstructions (preferred)
... patientInstruction Σ 0..1 string Patient or consumer oriented instructions
... timing SΣ 1..1 Timing When medication should be administered
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
.... event Σ 0..* dateTime When the event occurs
.... repeat SΣC 1..1 Element When the event is to occur
Constraints: tim-1, tim-2, tim-4, tim-5, tim-6, tim-7, tim-8, tim-9, tim-10
..... id 0..1 string Unique id for inter-element referencing
..... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
..... Slices for bounds[x] Σ 1..1 Period Length/Range of lengths, or (Start and/or end) limits
Slice: Unordered, Closed by type:$this
...... bounds[x]:boundsPeriod SΣ 1..1 Period Length/Range of lengths, or (Start and/or end) limits
....... id 0..1 string Unique id for inter-element referencing
....... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
....... start SΣC 1..1 dateTime Starting time with inclusive boundary
....... end SΣC 0..1 dateTime End time with inclusive boundary, if not ongoing
..... count Σ 0..1 positiveInt Number of times to repeat
..... countMax Σ 0..1 positiveInt Maximum number of times to repeat
..... duration Σ 0..1 decimal How long when it happens
..... durationMax Σ 0..1 decimal How long when it happens (Max)
..... durationUnit Σ 0..1 code s | min | h | d | wk | mo | a - unit of time (UCUM)
Binding: UnitsOfTime (required): A unit of time (units from UCUM).
..... frequency SΣ 0..1 positiveInt Event occurs frequency times per period
..... frequencyMax Σ 0..1 positiveInt Event occurs up to frequencyMax times per period
..... period SΣ 0..1 decimal Event occurs frequency times per period
..... periodMax Σ 0..1 decimal Upper limit of period (3-4 hours)
..... periodUnit SΣ 0..1 code s | min | h | d | wk | mo | a - unit of time (UCUM)
Binding: UnitsOfTime (required): A unit of time (units from UCUM).
..... dayOfWeek SΣ 0..* code mon | tue | wed | thu | fri | sat | sun
Binding: DaysOfWeek (required)
..... timeOfDay SΣ 0..* time Time of day for action
..... when Σ 0..* code Code for time period of occurrence
Binding: EventTiming (required): Real world event relating to the schedule.
..... offset Σ 0..1 unsignedInt Minutes from event (before or after)
.... code SΣ 1..1 CodeableConcept BID | TID | QID | AM | PM | QD | QOD | +
Binding: TimingAbbreviation (preferred): Code for a known / defined timing pattern.
..... id 0..1 string Unique id for inter-element referencing
..... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
..... coding SΣ 0..1 Coding Code defined by a terminology system
..... text SΣ 1..1 string Plain text representation of the concept
... asNeeded[x] Σ 0..1 Take "as needed" (for x)
Binding: Clinical Finding . (preferred)
.... asNeededBoolean boolean
.... asNeededCodeableConcept CodeableConcept
... site Σ 0..1 CodeableConcept Body site to administer to
Binding: Body Site . (preferred)
... route SΣ 1..1 CodeableConcept How drug should enter body
Binding: Route of Administration . (preferred)
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
.... coding SΣ 0..1 Coding Code defined by a terminology system
..... id 0..1 string Unique id for inter-element referencing
..... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
..... system Σ 0..1 uri Identity of the terminology system
Fixed Value: http://snomed.info/sct
..... version Σ 0..1 string Version of the system - if relevant
..... code SΣ 1..1 code Symbol in syntax defined by the system
..... display Σ 0..1 string Representation defined by the system
..... userSelected Σ 0..1 boolean If this coding was chosen directly by the user
.... text SΣ 1..1 string Plain text representation of the concept
... method Σ 0..1 CodeableConcept Technique for administering medication
Binding: SNOMEDCTAdministrationMethodCodes (preferred)
... doseAndRate Σ 0..* Element Amount of medication administered
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
.... type Σ 0..1 CodeableConcept The kind of dose or rate specified
Binding: DoseAndRateType (example): The kind of dose or rate specified.
.... Slices for dose[x] Σ 1..1 SimpleQuantity Amount of medication per dose
Slice: Unordered, Closed by type:$this
..... dose[x]:doseQuantity SΣ 1..1 SimpleQuantity Amount of medication per dose
...... id 0..1 string Unique id for inter-element referencing
...... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
...... value SΣ 1..1 decimal Numerical value (with implicit precision)
...... unit SΣ 1..1 string Unit representation
...... system ΣC 0..1 uri System that defines coded unit form
...... code Σ 0..1 code Coded form of the unit
.... rate[x] Σ 0..1 Amount of medication per unit of time
..... rateRatio Ratio
..... rateRange Range
..... rateQuantity Quantity(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
NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Dosage 0..* AUBaseDosage Dosage information in an Australian healthcare context
... text Σ 1..1 string Free text dosage instructions e.g. SIG
... timing Σ 1..1 Timing When medication should be administered
.... repeat ΣC 1..1 Element When the event is to occur
..... Slices for bounds[x] Content/Rules for all slices
...... bounds[x]:boundsPeriod Σ 1..1 Period Length/Range of lengths, or (Start and/or end) limits
....... start ΣC 1..1 dateTime Starting time with inclusive boundary
....... end ΣC 0..1 dateTime End time with inclusive boundary, if not ongoing
..... frequency Σ 0..1 positiveInt Event occurs frequency times per period
..... period Σ 0..1 decimal Event occurs frequency times per period
..... periodUnit Σ 0..1 code s | min | h | d | wk | mo | a - unit of time (UCUM)
Binding: UnitsOfTime (required): A unit of time (units from UCUM).
..... dayOfWeek Σ 0..* code mon | tue | wed | thu | fri | sat | sun
Binding: DaysOfWeek (required)
..... timeOfDay Σ 0..* time Time of day for action
.... code Σ 1..1 CodeableConcept BID | TID | QID | AM | PM | QD | QOD | +
Binding: TimingAbbreviation (preferred): Code for a known / defined timing pattern.
..... coding Σ 0..1 Coding Code defined by a terminology system
..... text Σ 1..1 string Plain text representation of the concept
... route Σ 1..1 CodeableConcept How drug should enter body
Binding: Route of Administration . (preferred)
.... coding Σ 0..1 Coding Code defined by a terminology system
..... code Σ 1..1 code Symbol in syntax defined by the system
.... text Σ 1..1 string Plain text representation of the concept
.... Slices for dose[x] Content/Rules for all slices
..... dose[x]:doseQuantity Σ 1..1 SimpleQuantity Amount of medication per dose
...... value Σ 1..1 decimal Numerical value (with implicit precision)
...... unit Σ 1..1 string Unit representation

doco Documentation for this format

This structure is derived from AUBaseDosage

Summary

Mandatory: 10 elements(5 nested mandatory elements)
Must-Support: 21 elements
Fixed: 1 element

Structures

This structure refers to these other structures:

Slices

This structure defines the following Slices:

  • The element 1 is sliced based on the value of Dosage.timing.repeat.bounds[x]
  • The element 1 is sliced based on the value of Dosage.doseAndRate.dose[x]

Differential View

This structure is derived from AUBaseDosage

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Dosage AUBaseDosage
... text S 1..1 string Free text dosage instructions e.g. SIG
... timing S 1..1 Timing When medication should be administered
.... repeat S 1..1 Element When the event is to occur
..... Slices for bounds[x] 1..1 Period Length/Range of lengths, or (Start and/or end) limits
Slice: Unordered, Open by type:$this
...... bounds[x]:boundsPeriod S 1..1 Period Length/Range of lengths, or (Start and/or end) limits
....... start S 1..1 dateTime Starting time with inclusive boundary
....... end S 0..1 dateTime End time with inclusive boundary, if not ongoing
..... frequency S 0..1 positiveInt Event occurs frequency times per period
..... period S 0..1 decimal Event occurs frequency times per period
..... periodUnit S 0..1 code s | min | h | d | wk | mo | a - unit of time (UCUM)
..... dayOfWeek S 0..* code mon | tue | wed | thu | fri | sat | sun
..... timeOfDay S 0..* time Time of day for action
.... code S 1..1 CodeableConcept BID | TID | QID | AM | PM | QD | QOD | +
..... coding S 0..1 Coding Code defined by a terminology system
..... text S 1..1 string Plain text representation of the concept
... route S 1..1 CodeableConcept How drug should enter body
.... coding S 0..1 Coding Code defined by a terminology system
..... system 0..1 uri Identity of the terminology system
Fixed Value: http://snomed.info/sct
..... code S 1..1 code Symbol in syntax defined by the system
.... text S 1..1 string Plain text representation of the concept
.... Slices for dose[x] 1..1 SimpleQuantity Amount of medication per dose
Slice: Unordered, Open by type:$this
..... dose[x]:doseQuantity S 1..1 SimpleQuantity Amount of medication per dose
...... value S 1..1 decimal Numerical value (with implicit precision)
...... unit S 1..1 string Unit representation

doco Documentation for this format

Snapshot View

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Dosage 0..* AUBaseDosage Dosage information in an Australian healthcare context
... id 0..1 string Unique id for inter-element referencing
... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
... text SΣ 1..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"
Binding: SNOMEDCTAdditionalDosageInstructions (preferred)
... patientInstruction Σ 0..1 string Patient or consumer oriented instructions
... timing SΣ 1..1 Timing When medication should be administered
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
.... event Σ 0..* dateTime When the event occurs
.... repeat SΣC 1..1 Element When the event is to occur
Constraints: tim-1, tim-2, tim-4, tim-5, tim-6, tim-7, tim-8, tim-9, tim-10
..... id 0..1 string Unique id for inter-element referencing
..... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
..... Slices for bounds[x] Σ 1..1 Period Length/Range of lengths, or (Start and/or end) limits
Slice: Unordered, Closed by type:$this
...... bounds[x]:boundsPeriod SΣ 1..1 Period Length/Range of lengths, or (Start and/or end) limits
....... id 0..1 string Unique id for inter-element referencing
....... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
....... start SΣC 1..1 dateTime Starting time with inclusive boundary
....... end SΣC 0..1 dateTime End time with inclusive boundary, if not ongoing
..... count Σ 0..1 positiveInt Number of times to repeat
..... countMax Σ 0..1 positiveInt Maximum number of times to repeat
..... duration Σ 0..1 decimal How long when it happens
..... durationMax Σ 0..1 decimal How long when it happens (Max)
..... durationUnit Σ 0..1 code s | min | h | d | wk | mo | a - unit of time (UCUM)
Binding: UnitsOfTime (required): A unit of time (units from UCUM).
..... frequency SΣ 0..1 positiveInt Event occurs frequency times per period
..... frequencyMax Σ 0..1 positiveInt Event occurs up to frequencyMax times per period
..... period SΣ 0..1 decimal Event occurs frequency times per period
..... periodMax Σ 0..1 decimal Upper limit of period (3-4 hours)
..... periodUnit SΣ 0..1 code s | min | h | d | wk | mo | a - unit of time (UCUM)
Binding: UnitsOfTime (required): A unit of time (units from UCUM).
..... dayOfWeek SΣ 0..* code mon | tue | wed | thu | fri | sat | sun
Binding: DaysOfWeek (required)
..... timeOfDay SΣ 0..* time Time of day for action
..... when Σ 0..* code Code for time period of occurrence
Binding: EventTiming (required): Real world event relating to the schedule.
..... offset Σ 0..1 unsignedInt Minutes from event (before or after)
.... code SΣ 1..1 CodeableConcept BID | TID | QID | AM | PM | QD | QOD | +
Binding: TimingAbbreviation (preferred): Code for a known / defined timing pattern.
..... id 0..1 string Unique id for inter-element referencing
..... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
..... coding SΣ 0..1 Coding Code defined by a terminology system
..... text SΣ 1..1 string Plain text representation of the concept
... asNeeded[x] Σ 0..1 Take "as needed" (for x)
Binding: Clinical Finding . (preferred)
.... asNeededBoolean boolean
.... asNeededCodeableConcept CodeableConcept
... site Σ 0..1 CodeableConcept Body site to administer to
Binding: Body Site . (preferred)
... route SΣ 1..1 CodeableConcept How drug should enter body
Binding: Route of Administration . (preferred)
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
.... coding SΣ 0..1 Coding Code defined by a terminology system
..... id 0..1 string Unique id for inter-element referencing
..... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
..... system Σ 0..1 uri Identity of the terminology system
Fixed Value: http://snomed.info/sct
..... version Σ 0..1 string Version of the system - if relevant
..... code SΣ 1..1 code Symbol in syntax defined by the system
..... display Σ 0..1 string Representation defined by the system
..... userSelected Σ 0..1 boolean If this coding was chosen directly by the user
.... text SΣ 1..1 string Plain text representation of the concept
... method Σ 0..1 CodeableConcept Technique for administering medication
Binding: SNOMEDCTAdministrationMethodCodes (preferred)
... doseAndRate Σ 0..* Element Amount of medication administered
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
.... type Σ 0..1 CodeableConcept The kind of dose or rate specified
Binding: DoseAndRateType (example): The kind of dose or rate specified.
.... Slices for dose[x] Σ 1..1 SimpleQuantity Amount of medication per dose
Slice: Unordered, Closed by type:$this
..... dose[x]:doseQuantity SΣ 1..1 SimpleQuantity Amount of medication per dose
...... id 0..1 string Unique id for inter-element referencing
...... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
...... value SΣ 1..1 decimal Numerical value (with implicit precision)
...... unit SΣ 1..1 string Unit representation
...... system ΣC 0..1 uri System that defines coded unit form
...... code Σ 0..1 code Coded form of the unit
.... rate[x] Σ 0..1 Amount of medication per unit of time
..... rateRatio Ratio
..... rateRange Range
..... rateQuantity Quantity(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

 

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()
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()