CH EMED EPR
2.0.0-ci-build - ci-build Switzerland flag

CH EMED EPR, published by CARA. This guide is not an authorized publication; it is the continuous build for version 2.0.0-ci-build built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/CARA-ch/ch-emed-epr/ and changes regularly. See the Directory of published versions

Data Type Profile: Dosage Split

Official URL: http://fhir.ch/ig/ch-emed-epr/StructureDefinition/ch-emed-epr-dosage-split Version: 2.0.0-ci-build
Draft as of 2024-12-20 Computable Name: CHEMEDEPRDosageSplit

Copyright/Legal: CC0-1.0

Definition of the split dosage element

Usage:

Formal Views of Profile Content

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

This structure is derived from CHEMEDDosageSplit

NameFlagsCard.TypeDescription & Constraintsdoco
.. Dosage CHEMEDDosageSplit
... extension D 0..* Extension ✕ This element is not supported
... modifierExtension 0..0
... text D 0..0 string
.... modifierExtension 0..0
.... event D 0..* dateTime ✕ This element is not supported
.... repeat
..... bounds[x] 0..0
..... when C 1..* code ... It shall only contain values from Event Timings
only-standard-event-timings: The timing event shall only be 'MORN', 'NOON', 'EVE' or 'NIGHT'.
.... code D 0..1 CodeableConcept ✕ This element is not supported
... doseAndRate
.... type D 0..1 CodeableConcept ✕ This element is not supported
.... Slices for dose[x] 1..1 CHCoreRangeWithEmedUnits, CHCoreQuantityWithEmedUnits Amount of medication per dose
Slice: Unordered, Open by type:$this
..... dose[x]:doseQuantity 0..1 CHEMEDEPRAmountQuantity A fixed quantity (no comparator)
..... dose[x]:doseRange 0..1 CHEMEDEPRAmountRange Set of values bounded by low and high
.... rate[x] 0..1 CHEMEDEPRRatioAmountPerTime A ratio of two Quantity values - a numerator and a denominator

doco Documentation for this format

Constraints

IdGradePath(s)DetailsRequirements
only-standard-event-timingserrorDosage.timing.repeat.whenThe timing event shall only be 'MORN', 'NOON', 'EVE' or 'NIGHT'.
: $this = 'MORN' or $this = 'NOON' or $this = 'EVE' or $this = 'NIGHT'
NameFlagsCard.TypeDescription & Constraintsdoco
.. Dosage 0..* CHEMEDDosageSplit CH EMED Dosage Split (MedicationStatement / MedicationDispense / MedicationRequest)
ele-1: All FHIR elements must have a @value or children
... extension D 0..* Extension ✕ This element is not supported
Slice: Unordered, Open by value:url
ele-1: All FHIR elements must have a @value or children
ext-1: Must have either extensions or value[x], not both
... sequence ΣC 1..1 integer The order of the dosage instructions
ele-1: All FHIR elements must have a @value or children
ch-dosage-2: The sequence number must be greater than 1
... timing Σ 1..1 Timing When medication should be administered
ele-1: All FHIR elements must have a @value or children
.... event ΣD 0..* dateTime ✕ This element is not supported
ele-1: All FHIR elements must have a @value or children
.... repeat ΣC 1..1 Element When the event is to occur
ele-1: All FHIR elements must have a @value or children
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
..... when SΣC 1..* code ... It shall only contain values from Event Timings
Binding: EventTiming (required): Real world event relating to the schedule.


ele-1: All FHIR elements must have a @value or children
ch-emed-event-timing: For the representation of the time of administration according to the 1-1-1-1 scheme, the values MORN-NOON-EVE-NIGHT are highly recommended.
only-standard-event-timings: The timing event shall only be 'MORN', 'NOON', 'EVE' or 'NIGHT'.
.... code ΣD 0..1 CodeableConcept ✕ This element is not supported
Binding: TimingAbbreviation (preferred): Code for a known / defined timing pattern.


ele-1: All FHIR elements must have a @value or children
.... type ΣD 0..1 CodeableConcept ✕ This element is not supported
Binding: DoseAndRateType (example): The kind of dose or rate specified.


ele-1: All FHIR elements must have a @value or children
.... Slices for dose[x] SΣ 1..1 Amount of medication per dose
Slice: Unordered, Closed by type:$this
ele-1: All FHIR elements must have a @value or children
..... doseRange Range(CHCoreRangeWithEmedUnits)
..... doseQuantity Quantity(CHCoreQuantityWithEmedUnits)
..... dose[x]:doseQuantity SC 0..1 CHEMEDEPRAmountQuantity A fixed quantity (no comparator)
ele-1: All FHIR elements must have a @value or children
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
..... dose[x]:doseRange SC 0..1 CHEMEDEPRAmountRange Set of values bounded by low and high
ele-1: All FHIR elements must have a @value or children
rng-2: If present, low SHALL have a lower value than high
.... rate[x] C 0..1 CHEMEDEPRRatioAmountPerTime A ratio of two Quantity values - a numerator and a denominator
ele-1: All FHIR elements must have a @value or children
rat-1: Numerator and denominator SHALL both be present, or both are absent. If both are absent, there SHALL be some extension present

doco Documentation for this format

Terminology Bindings

PathConformanceValueSetURI
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.doseAndRate.typeexampleDoseAndRateType
http://hl7.org/fhir/ValueSet/dose-rate-type
from the FHIR Standard

Constraints

IdGradePath(s)DetailsRequirements
ch-dosage-2errorDosage.sequenceThe sequence number must be greater than 1
: $this > 1
ch-emed-event-timingwarningDosage.timing.repeat.whenFor the representation of the time of administration according to the 1-1-1-1 scheme, the values MORN-NOON-EVE-NIGHT are highly recommended.
: $this='MORN' or $this='NOON' or $this='EVE' or $this='NIGHT'
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()
only-standard-event-timingserrorDosage.timing.repeat.whenThe timing event shall only be 'MORN', 'NOON', 'EVE' or 'NIGHT'.
: $this = 'MORN' or $this = 'NOON' or $this = 'EVE' or $this = 'NIGHT'
qty-3errorDosage.doseAndRate.dose[x]:doseQuantityIf a code for the unit is present, the system SHALL also be present
: code.empty() or system.exists()
rat-1errorDosage.doseAndRate.rate[x]Numerator and denominator SHALL both be present, or both are absent. If both are absent, there SHALL be some extension present
: (numerator.empty() xor denominator.exists()) and (numerator.exists() or extension.exists())
rng-2errorDosage.doseAndRate.dose[x]:doseRangeIf present, low SHALL have a lower value than high
: low.empty() or high.empty() or (low <= high)
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()
NameFlagsCard.TypeDescription & Constraintsdoco
.. Dosage 0..* CHEMEDDosageSplit CH EMED Dosage Split (MedicationStatement / MedicationDispense / MedicationRequest)
... id 0..1 string Unique id for inter-element referencing
... extension D 0..* Extension ✕ This element is not supported
Slice: Unordered, Open by value:url
... sequence ΣC 1..1 integer The order of the dosage instructions
ch-dosage-2: The sequence number must be greater than 1
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
.... event ΣD 0..* dateTime ✕ This element is not supported
.... repeat ΣC 1..1 Element When 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..1 string Unique id for inter-element referencing
..... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
..... 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 SΣC 1..* code ... It shall only contain values from Event Timings
Binding: EventTiming (required): Real world event relating to the schedule.


ch-emed-event-timing: For the representation of the time of administration according to the 1-1-1-1 scheme, the values MORN-NOON-EVE-NIGHT are highly recommended.
only-standard-event-timings: The timing event shall only be 'MORN', 'NOON', 'EVE' or 'NIGHT'.
..... offset Σ 0..1 unsignedInt Minutes from event (before or after)
.... code ΣD 0..1 CodeableConcept ✕ This element is not supported
Binding: TimingAbbreviation (preferred): Code for a known / defined timing pattern.

... doseAndRate Σ 1..1 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 ΣD 0..1 CodeableConcept ✕ This element is not supported
Binding: DoseAndRateType (example): The kind of dose or rate specified.

.... Slices for dose[x] SΣ 1..1 Amount of medication per dose
Slice: Unordered, Closed by type:$this
..... doseRange Range(CHCoreRangeWithEmedUnits)
..... doseQuantity Quantity(CHCoreQuantityWithEmedUnits)
..... dose[x]:doseQuantity SC 0..1 CHEMEDEPRAmountQuantity A 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
..... dose[x]:doseRange SC 0..1 CHEMEDEPRAmountRange Set of values bounded by low and high
rng-2: If present, low SHALL have a lower value than high
.... rate[x] C 0..1 CHEMEDEPRRatioAmountPerTime A ratio of two Quantity values - a numerator and a denominator
rat-1: Numerator and denominator SHALL both be present, or both are absent. If both are absent, there SHALL be some extension present

doco Documentation for this format

Terminology Bindings

PathConformanceValueSetURI
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.doseAndRate.typeexampleDoseAndRateType
http://hl7.org/fhir/ValueSet/dose-rate-type
from the FHIR Standard

Constraints

IdGradePath(s)DetailsRequirements
ch-dosage-2errorDosage.sequenceThe sequence number must be greater than 1
: $this > 1
ch-emed-event-timingwarningDosage.timing.repeat.whenFor the representation of the time of administration according to the 1-1-1-1 scheme, the values MORN-NOON-EVE-NIGHT are highly recommended.
: $this='MORN' or $this='NOON' or $this='EVE' or $this='NIGHT'
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()
only-standard-event-timingserrorDosage.timing.repeat.whenThe timing event shall only be 'MORN', 'NOON', 'EVE' or 'NIGHT'.
: $this = 'MORN' or $this = 'NOON' or $this = 'EVE' or $this = 'NIGHT'
qty-3errorDosage.doseAndRate.dose[x]:doseQuantityIf a code for the unit is present, the system SHALL also be present
: code.empty() or system.exists()
rat-1errorDosage.doseAndRate.rate[x]Numerator and denominator SHALL both be present, or both are absent. If both are absent, there SHALL be some extension present
: (numerator.empty() xor denominator.exists()) and (numerator.exists() or extension.exists())
rng-2errorDosage.doseAndRate.dose[x]:doseRangeIf present, low SHALL have a lower value than high
: low.empty() or high.empty() or (low <= high)
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()

This structure is derived from CHEMEDDosageSplit

Summary

Prohibited: 3 elements

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.doseAndRate.dose[x]

Differential View

This structure is derived from CHEMEDDosageSplit

NameFlagsCard.TypeDescription & Constraintsdoco
.. Dosage CHEMEDDosageSplit
... extension D 0..* Extension ✕ This element is not supported
... modifierExtension 0..0
... text D 0..0 string
.... modifierExtension 0..0
.... event D 0..* dateTime ✕ This element is not supported
.... repeat
..... bounds[x] 0..0
..... when C 1..* code ... It shall only contain values from Event Timings
only-standard-event-timings: The timing event shall only be 'MORN', 'NOON', 'EVE' or 'NIGHT'.
.... code D 0..1 CodeableConcept ✕ This element is not supported
... doseAndRate
.... type D 0..1 CodeableConcept ✕ This element is not supported
.... Slices for dose[x] 1..1 CHCoreRangeWithEmedUnits, CHCoreQuantityWithEmedUnits Amount of medication per dose
Slice: Unordered, Open by type:$this
..... dose[x]:doseQuantity 0..1 CHEMEDEPRAmountQuantity A fixed quantity (no comparator)
..... dose[x]:doseRange 0..1 CHEMEDEPRAmountRange Set of values bounded by low and high
.... rate[x] 0..1 CHEMEDEPRRatioAmountPerTime A ratio of two Quantity values - a numerator and a denominator

doco Documentation for this format

Constraints

IdGradePath(s)DetailsRequirements
only-standard-event-timingserrorDosage.timing.repeat.whenThe timing event shall only be 'MORN', 'NOON', 'EVE' or 'NIGHT'.
: $this = 'MORN' or $this = 'NOON' or $this = 'EVE' or $this = 'NIGHT'

Key Elements View

NameFlagsCard.TypeDescription & Constraintsdoco
.. Dosage 0..* CHEMEDDosageSplit CH EMED Dosage Split (MedicationStatement / MedicationDispense / MedicationRequest)
ele-1: All FHIR elements must have a @value or children
... extension D 0..* Extension ✕ This element is not supported
Slice: Unordered, Open by value:url
ele-1: All FHIR elements must have a @value or children
ext-1: Must have either extensions or value[x], not both
... sequence ΣC 1..1 integer The order of the dosage instructions
ele-1: All FHIR elements must have a @value or children
ch-dosage-2: The sequence number must be greater than 1
... timing Σ 1..1 Timing When medication should be administered
ele-1: All FHIR elements must have a @value or children
.... event ΣD 0..* dateTime ✕ This element is not supported
ele-1: All FHIR elements must have a @value or children
.... repeat ΣC 1..1 Element When the event is to occur
ele-1: All FHIR elements must have a @value or children
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
..... when SΣC 1..* code ... It shall only contain values from Event Timings
Binding: EventTiming (required): Real world event relating to the schedule.


ele-1: All FHIR elements must have a @value or children
ch-emed-event-timing: For the representation of the time of administration according to the 1-1-1-1 scheme, the values MORN-NOON-EVE-NIGHT are highly recommended.
only-standard-event-timings: The timing event shall only be 'MORN', 'NOON', 'EVE' or 'NIGHT'.
.... code ΣD 0..1 CodeableConcept ✕ This element is not supported
Binding: TimingAbbreviation (preferred): Code for a known / defined timing pattern.


ele-1: All FHIR elements must have a @value or children
.... type ΣD 0..1 CodeableConcept ✕ This element is not supported
Binding: DoseAndRateType (example): The kind of dose or rate specified.


ele-1: All FHIR elements must have a @value or children
.... Slices for dose[x] SΣ 1..1 Amount of medication per dose
Slice: Unordered, Closed by type:$this
ele-1: All FHIR elements must have a @value or children
..... doseRange Range(CHCoreRangeWithEmedUnits)
..... doseQuantity Quantity(CHCoreQuantityWithEmedUnits)
..... dose[x]:doseQuantity SC 0..1 CHEMEDEPRAmountQuantity A fixed quantity (no comparator)
ele-1: All FHIR elements must have a @value or children
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
..... dose[x]:doseRange SC 0..1 CHEMEDEPRAmountRange Set of values bounded by low and high
ele-1: All FHIR elements must have a @value or children
rng-2: If present, low SHALL have a lower value than high
.... rate[x] C 0..1 CHEMEDEPRRatioAmountPerTime A ratio of two Quantity values - a numerator and a denominator
ele-1: All FHIR elements must have a @value or children
rat-1: Numerator and denominator SHALL both be present, or both are absent. If both are absent, there SHALL be some extension present

doco Documentation for this format

Terminology Bindings

PathConformanceValueSetURI
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.doseAndRate.typeexampleDoseAndRateType
http://hl7.org/fhir/ValueSet/dose-rate-type
from the FHIR Standard

Constraints

IdGradePath(s)DetailsRequirements
ch-dosage-2errorDosage.sequenceThe sequence number must be greater than 1
: $this > 1
ch-emed-event-timingwarningDosage.timing.repeat.whenFor the representation of the time of administration according to the 1-1-1-1 scheme, the values MORN-NOON-EVE-NIGHT are highly recommended.
: $this='MORN' or $this='NOON' or $this='EVE' or $this='NIGHT'
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()
only-standard-event-timingserrorDosage.timing.repeat.whenThe timing event shall only be 'MORN', 'NOON', 'EVE' or 'NIGHT'.
: $this = 'MORN' or $this = 'NOON' or $this = 'EVE' or $this = 'NIGHT'
qty-3errorDosage.doseAndRate.dose[x]:doseQuantityIf a code for the unit is present, the system SHALL also be present
: code.empty() or system.exists()
rat-1errorDosage.doseAndRate.rate[x]Numerator and denominator SHALL both be present, or both are absent. If both are absent, there SHALL be some extension present
: (numerator.empty() xor denominator.exists()) and (numerator.exists() or extension.exists())
rng-2errorDosage.doseAndRate.dose[x]:doseRangeIf present, low SHALL have a lower value than high
: low.empty() or high.empty() or (low <= high)
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()

Snapshot View

NameFlagsCard.TypeDescription & Constraintsdoco
.. Dosage 0..* CHEMEDDosageSplit CH EMED Dosage Split (MedicationStatement / MedicationDispense / MedicationRequest)
... id 0..1 string Unique id for inter-element referencing
... extension D 0..* Extension ✕ This element is not supported
Slice: Unordered, Open by value:url
... sequence ΣC 1..1 integer The order of the dosage instructions
ch-dosage-2: The sequence number must be greater than 1
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
.... event ΣD 0..* dateTime ✕ This element is not supported
.... repeat ΣC 1..1 Element When 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..1 string Unique id for inter-element referencing
..... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
..... 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 SΣC 1..* code ... It shall only contain values from Event Timings
Binding: EventTiming (required): Real world event relating to the schedule.


ch-emed-event-timing: For the representation of the time of administration according to the 1-1-1-1 scheme, the values MORN-NOON-EVE-NIGHT are highly recommended.
only-standard-event-timings: The timing event shall only be 'MORN', 'NOON', 'EVE' or 'NIGHT'.
..... offset Σ 0..1 unsignedInt Minutes from event (before or after)
.... code ΣD 0..1 CodeableConcept ✕ This element is not supported
Binding: TimingAbbreviation (preferred): Code for a known / defined timing pattern.

... doseAndRate Σ 1..1 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 ΣD 0..1 CodeableConcept ✕ This element is not supported
Binding: DoseAndRateType (example): The kind of dose or rate specified.

.... Slices for dose[x] SΣ 1..1 Amount of medication per dose
Slice: Unordered, Closed by type:$this
..... doseRange Range(CHCoreRangeWithEmedUnits)
..... doseQuantity Quantity(CHCoreQuantityWithEmedUnits)
..... dose[x]:doseQuantity SC 0..1 CHEMEDEPRAmountQuantity A 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
..... dose[x]:doseRange SC 0..1 CHEMEDEPRAmountRange Set of values bounded by low and high
rng-2: If present, low SHALL have a lower value than high
.... rate[x] C 0..1 CHEMEDEPRRatioAmountPerTime A ratio of two Quantity values - a numerator and a denominator
rat-1: Numerator and denominator SHALL both be present, or both are absent. If both are absent, there SHALL be some extension present

doco Documentation for this format

Terminology Bindings

PathConformanceValueSetURI
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.doseAndRate.typeexampleDoseAndRateType
http://hl7.org/fhir/ValueSet/dose-rate-type
from the FHIR Standard

Constraints

IdGradePath(s)DetailsRequirements
ch-dosage-2errorDosage.sequenceThe sequence number must be greater than 1
: $this > 1
ch-emed-event-timingwarningDosage.timing.repeat.whenFor the representation of the time of administration according to the 1-1-1-1 scheme, the values MORN-NOON-EVE-NIGHT are highly recommended.
: $this='MORN' or $this='NOON' or $this='EVE' or $this='NIGHT'
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()
only-standard-event-timingserrorDosage.timing.repeat.whenThe timing event shall only be 'MORN', 'NOON', 'EVE' or 'NIGHT'.
: $this = 'MORN' or $this = 'NOON' or $this = 'EVE' or $this = 'NIGHT'
qty-3errorDosage.doseAndRate.dose[x]:doseQuantityIf a code for the unit is present, the system SHALL also be present
: code.empty() or system.exists()
rat-1errorDosage.doseAndRate.rate[x]Numerator and denominator SHALL both be present, or both are absent. If both are absent, there SHALL be some extension present
: (numerator.empty() xor denominator.exists()) and (numerator.exists() or extension.exists())
rng-2errorDosage.doseAndRate.dose[x]:doseRangeIf present, low SHALL have a lower value than high
: low.empty() or high.empty() or (low <= high)
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()

This structure is derived from CHEMEDDosageSplit

Summary

Prohibited: 3 elements

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.doseAndRate.dose[x]

 

Other representations of profile: CSV, Excel, Schematron