HL7® FHIR® Te Aho o Te Kahu, Cancer Control Agency Implementation Guide
0.1.0 - CI Build

HL7® FHIR® Te Aho o Te Kahu, Cancer Control Agency Implementation Guide, published by Te Aho o Te Kahu, Cancer Control Agency. This guide is not an authorized publication; it is the continuous build for version 0.1.0 built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/HL7NZ/cca/ and changes regularly. See the Directory of published versions

Data Type Profile: Dosage

Official URL: http://hl7.org.nz/fhir/StructureDefinition/CcaDosage Version: 0.1.0
Active as of 2026-05-21 Computable Name: CcaDosage

CCA Regimen Dosage.

Usages:

  • This DataType Profile is not used by any profiles in this Implementation Guide

You can also check for usages in the FHIR IG Statistics

Formal Views of Profile Content

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

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Dosage 0..* Dosage How the medication is/was taken or should be taken
... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
... route Σ 0..1 CodeableConcept How drug should enter body
Binding: Route (required)

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
Dosage.route Base required Route 📦0.1.0 This IG

Constraints

Id Grade Path(s) Description Expression
ele-1 error **ALL** elements All FHIR elements must have a @value or children hasValue() or (children().count() > id.count())
ext-1 error **ALL** extensions Must have either extensions or value[x], not both extension.exists() != value.exists()

This structure is derived from Dosage

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Dosage 0..* Dosage How the medication is/was taken or should be taken
... additionalInstruction 0..0 Supplemental instruction or warnings to the patient - e.g. "with meals", "may cause drowsiness"
... patientInstruction 0..0 Patient or consumer oriented instructions
... timing
.... code 0..1 CodeableConcept BID | TID | QID | AM | PM | QD | QOD | +
Binding: Medication dose administration frequency (required)
... route 0..1 CodeableConcept How drug should enter body
Binding: Route (required)
... method 0..0 Technique for administering medication
... doseAndRate
.... type 0..0 The kind of dose or rate specified
... maxDosePerPeriod 0..0 Upper limit on medication per unit of time
... maxDosePerLifetime 0..0 Upper limit on medication per lifetime of the patient

doco Documentation for this format

Terminology Bindings (Differential)

Path Status Usage ValueSet Version Source
Dosage.timing.code Base required Medication dose administration frequency 📦0.1.0 This IG
Dosage.route Base required Route 📦0.1.0 This IG
NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Dosage 0..* Dosage How the medication is/was taken or should be taken
... 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 Σ 0..1 string Free text dosage instructions e.g. SIG
... timing Σ 0..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 ΣC 0..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
..... bounds[x] Σ 0..1 Length/Range of lengths, or (Start and/or end) limits
...... boundsDuration Duration
...... boundsRange Range
...... boundsPeriod Period
..... 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 Σ 0..1 positiveInt Event occurs frequency times per period
..... frequencyMax Σ 0..1 positiveInt Event occurs up to frequencyMax times per period
..... period Σ 0..1 decimal Event occurs frequency times per period
..... periodMax Σ 0..1 decimal Upper limit of period (3-4 hours)
..... 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
..... 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 Σ 0..1 CodeableConcept BID | TID | QID | AM | PM | QD | QOD | +
Binding: Medication dose administration frequency (required)
... asNeeded[x] Σ 0..1 Take "as needed" (for x)
Binding: SNOMEDCTMedicationAsNeededReasonCodes (example): 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.
.... asNeededBoolean boolean
.... asNeededCodeableConcept CodeableConcept
... route Σ 0..1 CodeableConcept How drug should enter body
Binding: Route (required)
... 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
.... dose[x] Σ 0..1 Amount of medication per dose
..... doseRange Range
..... doseQuantity Quantity(SimpleQuantity)
.... rate[x] Σ 0..1 Amount of medication per unit of time
..... rateRatio Ratio
..... rateRange Range
..... rateQuantity Quantity(SimpleQuantity)
... maxDosePerAdministration Σ 0..1 SimpleQuantity(4.0.1) Upper limit on medication per administration

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
Dosage.timing.repeat.​durationUnit Base required UnitsOfTime 📍4.0.1 FHIR Std.
Dosage.timing.repeat.​periodUnit Base required UnitsOfTime 📍4.0.1 FHIR Std.
Dosage.timing.repeat.​dayOfWeek Base required DaysOfWeek 📍4.0.1 FHIR Std.
Dosage.timing.repeat.​when Base required EventTiming 📍4.0.1 FHIR Std.
Dosage.timing.code Base required Medication dose administration frequency 📦0.1.0 This IG
Dosage.asNeeded[x] Base example SNOMED CT Medication As Needed Reason Codes 📍4.0.1 FHIR Std.
Dosage.route Base required Route 📦0.1.0 This IG

Constraints

Id Grade Path(s) Description Expression
ele-1 error **ALL** elements All FHIR elements must have a @value or children hasValue() or (children().count() > id.count())
ext-1 error **ALL** extensions Must have either extensions or value[x], not both extension.exists() != value.exists()
tim-1 error Dosage.timing.repeat if there's a duration, there needs to be duration units duration.empty() or durationUnit.exists()
tim-2 error Dosage.timing.repeat if there's a period, there needs to be period units period.empty() or periodUnit.exists()
tim-4 error Dosage.timing.repeat duration SHALL be a non-negative value duration.exists() implies duration >= 0
tim-5 error Dosage.timing.repeat period SHALL be a non-negative value period.exists() implies period >= 0
tim-6 error Dosage.timing.repeat If there's a periodMax, there must be a period periodMax.empty() or period.exists()
tim-7 error Dosage.timing.repeat If there's a durationMax, there must be a duration durationMax.empty() or duration.exists()
tim-8 error Dosage.timing.repeat If there's a countMax, there must be a count countMax.empty() or count.exists()
tim-9 error Dosage.timing.repeat If 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-10 error Dosage.timing.repeat If there's a timeOfDay, there cannot be a when, or vice versa timeOfDay.empty() or when.empty()

This structure is derived from Dosage

Summary

Prohibited: 7 elements

Key Elements View

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Dosage 0..* Dosage How the medication is/was taken or should be taken
... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
... route Σ 0..1 CodeableConcept How drug should enter body
Binding: Route (required)

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
Dosage.route Base required Route 📦0.1.0 This IG

Constraints

Id Grade Path(s) Description Expression
ele-1 error **ALL** elements All FHIR elements must have a @value or children hasValue() or (children().count() > id.count())
ext-1 error **ALL** extensions Must have either extensions or value[x], not both extension.exists() != value.exists()

Differential View

This structure is derived from Dosage

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Dosage 0..* Dosage How the medication is/was taken or should be taken
... additionalInstruction 0..0 Supplemental instruction or warnings to the patient - e.g. "with meals", "may cause drowsiness"
... patientInstruction 0..0 Patient or consumer oriented instructions
... timing
.... code 0..1 CodeableConcept BID | TID | QID | AM | PM | QD | QOD | +
Binding: Medication dose administration frequency (required)
... route 0..1 CodeableConcept How drug should enter body
Binding: Route (required)
... method 0..0 Technique for administering medication
... doseAndRate
.... type 0..0 The kind of dose or rate specified
... maxDosePerPeriod 0..0 Upper limit on medication per unit of time
... maxDosePerLifetime 0..0 Upper limit on medication per lifetime of the patient

doco Documentation for this format

Terminology Bindings (Differential)

Path Status Usage ValueSet Version Source
Dosage.timing.code Base required Medication dose administration frequency 📦0.1.0 This IG
Dosage.route Base required Route 📦0.1.0 This IG

Snapshot View

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Dosage 0..* Dosage How the medication is/was taken or should be taken
... 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 Σ 0..1 string Free text dosage instructions e.g. SIG
... timing Σ 0..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 ΣC 0..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
..... bounds[x] Σ 0..1 Length/Range of lengths, or (Start and/or end) limits
...... boundsDuration Duration
...... boundsRange Range
...... boundsPeriod Period
..... 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 Σ 0..1 positiveInt Event occurs frequency times per period
..... frequencyMax Σ 0..1 positiveInt Event occurs up to frequencyMax times per period
..... period Σ 0..1 decimal Event occurs frequency times per period
..... periodMax Σ 0..1 decimal Upper limit of period (3-4 hours)
..... 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
..... 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 Σ 0..1 CodeableConcept BID | TID | QID | AM | PM | QD | QOD | +
Binding: Medication dose administration frequency (required)
... asNeeded[x] Σ 0..1 Take "as needed" (for x)
Binding: SNOMEDCTMedicationAsNeededReasonCodes (example): 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.
.... asNeededBoolean boolean
.... asNeededCodeableConcept CodeableConcept
... route Σ 0..1 CodeableConcept How drug should enter body
Binding: Route (required)
... 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
.... dose[x] Σ 0..1 Amount of medication per dose
..... doseRange Range
..... doseQuantity Quantity(SimpleQuantity)
.... rate[x] Σ 0..1 Amount of medication per unit of time
..... rateRatio Ratio
..... rateRange Range
..... rateQuantity Quantity(SimpleQuantity)
... maxDosePerAdministration Σ 0..1 SimpleQuantity(4.0.1) Upper limit on medication per administration

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
Dosage.timing.repeat.​durationUnit Base required UnitsOfTime 📍4.0.1 FHIR Std.
Dosage.timing.repeat.​periodUnit Base required UnitsOfTime 📍4.0.1 FHIR Std.
Dosage.timing.repeat.​dayOfWeek Base required DaysOfWeek 📍4.0.1 FHIR Std.
Dosage.timing.repeat.​when Base required EventTiming 📍4.0.1 FHIR Std.
Dosage.timing.code Base required Medication dose administration frequency 📦0.1.0 This IG
Dosage.asNeeded[x] Base example SNOMED CT Medication As Needed Reason Codes 📍4.0.1 FHIR Std.
Dosage.route Base required Route 📦0.1.0 This IG

Constraints

Id Grade Path(s) Description Expression
ele-1 error **ALL** elements All FHIR elements must have a @value or children hasValue() or (children().count() > id.count())
ext-1 error **ALL** extensions Must have either extensions or value[x], not both extension.exists() != value.exists()
tim-1 error Dosage.timing.repeat if there's a duration, there needs to be duration units duration.empty() or durationUnit.exists()
tim-2 error Dosage.timing.repeat if there's a period, there needs to be period units period.empty() or periodUnit.exists()
tim-4 error Dosage.timing.repeat duration SHALL be a non-negative value duration.exists() implies duration >= 0
tim-5 error Dosage.timing.repeat period SHALL be a non-negative value period.exists() implies period >= 0
tim-6 error Dosage.timing.repeat If there's a periodMax, there must be a period periodMax.empty() or period.exists()
tim-7 error Dosage.timing.repeat If there's a durationMax, there must be a duration durationMax.empty() or duration.exists()
tim-8 error Dosage.timing.repeat If there's a countMax, there must be a count countMax.empty() or count.exists()
tim-9 error Dosage.timing.repeat If 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-10 error Dosage.timing.repeat If there's a timeOfDay, there cannot be a when, or vice versa timeOfDay.empty() or when.empty()

This structure is derived from Dosage

Summary

Prohibited: 7 elements

 

Other representations of profile: CSV, Excel, Schematron