Medication IG DE
2.0.0-ballot - ballot

Medication IG DE, published by HL7 Deutschland e.V.. This guide is not an authorized publication; it is the continuous build for version 2.0.0-ballot built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/hl7germany/medication-ig-de-r4/ and changes regularly. See the Directory of published versions

Data Type Profile: Timing DE

Official URL: http://ig.fhir.de/igs/medication/StructureDefinition/TimingDE Version: 2.0.0-ballot
Active as of 2026-10-16 Computable Name: TimingDE

Beschreibt ein Ereignis, das mehrfach auftreten kann. Zeitpläne werden verwendet, um festzuhalten, wann etwas geplant, erwartet oder angefordert ist. Die häufigste Anwendung ist in Dosierungsanweisungen für Medikamente. Sie werden aber auch für die Planung verschiedener Versorgungsleistungen genutzt und können zur Dokumentation von bereits erfolgten oder laufenden Aktivitäten verwendet werden.

Hinweise zur Verwendung

Invariante: tim-9
Die Invariante tim-9 enthält einen bekannten Fehler. Dieser wurde in einigen Validatoren bereits behoben. Sollte ein Validator ohne den entsprechenden Fix verwendet werden, ist die tim-9-Definition aus FHIR R5 zu verwenden:
offset.empty() or (when.exists() and when.select($this in ('C' | 'CM' | 'CD' | 'CV')).allFalse())
Siehe auch die entsprechende Beschreibung in FHIR R5 (Timing).

Usages:

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: doco
Timing 0..* Timing A timing schedule that specifies an event that may occur multiple times
Timing.modifierExtension This element is a modifier element. This element is included in summaries. 0..* Extension Extensions that cannot be ignored even if unrecognized
Timing.repeat This element must be supported. This element is included in summaries. C 0..1 Element Wann das Ereignis stattfinden soll
Constraints: tim-1, tim-2, tim-4, tim-5, tim-6, tim-7, tim-8, tim-9, tim-10, TimingSingleDosageForTimeOfDayWarning, TimingSingleDosageForWhenWarning, TimingBoundsUnitMatchesCodeWarning, TimingFreqOrPeriodGtOneWarning, TimingValuesPositiveWarning
Timing.repeat.Slices for bounds[x] This element must be supported. This element is included in summaries. 0..1 Länge/Bereich der Längen oder (Start- und/oder End-)Grenzen
Slice: Unordered, Closed by type:$this
Slicing Note: The rules on this element (including its children) apply to all the slices, but are not repeated in them Other type slices that contain no new information are not shown in this view
Timing.repeat.Slices for bounds[x].boundsDuration Duration
Timing.repeat.Slices for bounds[x].boundsRange Range
Timing.repeat.Slices for bounds[x].boundsPeriod Period
Timing.repeat.Slices for bounds[x].bounds[x]:boundsDuration This element must be supported. This element is included in summaries. 0..1 Duration Dauer der Dosieranweisung ausgedrückt in UCUM-Einheiten
Timing.repeat.Slices for bounds[x].bounds[x]:boundsDuration.value This element must be supported. This element is included in summaries. 0..1 decimal Numerical value (with implicit precision)
Timing.repeat.Slices for bounds[x].bounds[x]:boundsDuration.comparator This element is a modifier element. This element is included in summaries. 0..1 code < | <= | >= | > - how to understand the value
Binding: QuantityComparator (required): How the Quantity should be understood and represented.
Timing.repeat.Slices for bounds[x].bounds[x]:boundsDuration.unit This element must be supported. This element is included in summaries. 0..1 string Unit representation
Timing.repeat.Slices for bounds[x].bounds[x]:boundsDuration.system This element must be supported. This element is included in summaries. C 0..1 uri UCUM-Einheit für die Dauer
Fixed Value: http://unitsofmeasure.org (no extensions allowed)
Timing.repeat.Slices for bounds[x].bounds[x]:boundsDuration.code This element must be supported. This element is included in summaries. 0..1 code Coded form of the unit
Timing.repeat.Slices for bounds[x].bounds[x]:boundsPeriod This element must be supported. This element is included in summaries. 0..1 Period Start und Enddatum der Dosieranweisung ausgedrückt in Datum mit optional Uhrzeit.
Timing.repeat.Slices for bounds[x].bounds[x]:boundsPeriod.start This element must be supported. This element is included in summaries. C 0..1 dateTime Starting time with inclusive boundary
Timing.repeat.Slices for bounds[x].bounds[x]:boundsPeriod.end This element must be supported. This element is included in summaries. C 0..1 dateTime End time with inclusive boundary, if not ongoing
Timing.repeat.frequency This element must be supported. This element is included in summaries. 0..1 positiveInt Ereignis tritt frequency-mal pro Zeitraum auf
Timing.repeat.frequencyMax This element must be supported. This element is included in summaries. 0..1 positiveInt Event occurs up to frequencyMax times per period
Timing.repeat.period This element must be supported. This element is included in summaries. 0..1 decimal Ereignis tritt frequency-mal pro Zeitraum auf
Timing.repeat.periodMax This element must be supported. This element is included in summaries. 0..1 decimal Upper limit of period (3-4 hours)
Timing.repeat.periodUnit This element must be supported. This element is included in summaries. 0..1 code s | min | h | d | wk | mo | a - Zeiteinheit (UCUM)
Binding: UnitsOfTime (required): A unit of time (units from UCUM).
Timing.repeat.dayOfWeek This element must be supported. This element is included in summaries. 0..* code mon | tue | wed | thu | fri | sat | sun
Binding: DaysOfWeek (required)
Timing.repeat.timeOfDay This element must be supported. This element is included in summaries. 0..* time Tageszeit für die Aktion
Timing.repeat.when This element must be supported. This element is included in summaries. 0..* code Code für den Zeitraum des Auftretens
Binding: EventTiming (required): Real world event relating to the schedule.

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
Timing.repeat.bounds[x]:boundsDuration.​comparator Base required QuantityComparator 📍4.0.1 FHIR Std.
Timing.repeat.periodUnit Base required UnitsOfTime 📍4.0.1 FHIR Std.
Timing.repeat.dayOfWeek Base required DaysOfWeek 📍4.0.1 FHIR Std.
Timing.repeat.when Base required EventTiming 📍4.0.1 FHIR Std.

Constraints

Id Grade Path(s) Description Expression
TimingBoundsUnitMatchesCodeWarning warning Timing.repeat boundsDuration.unit must match the UCUM boundsDuration.code (e.g. 'Woche(n)' only with code='wk'). bounds.ofType(Duration).exists().not() or ( ( bounds.ofType(Duration).code = 'd' implies ( bounds.ofType(Duration).unit = 'Tag(e)' or bounds.ofType(Duration).unit = 'Tag' or bounds.ofType(Duration).unit = 'Tage' ) ) and ( bounds.ofType(Duration).code = 'wk' implies ( bounds.ofType(Duration).unit = 'Woche(n)' or bounds.ofType(Duration).unit = 'Woche' or bounds.ofType(Duration).unit = 'Wochen' ) ) and ( bounds.ofType(Duration).code = 'mo' implies ( bounds.ofType(Duration).unit = 'Monat(e)' or bounds.ofType(Duration).unit = 'Monat' or bounds.ofType(Duration).unit = 'Monate' ) ) and ( bounds.ofType(Duration).code = 'a' implies ( bounds.ofType(Duration).unit = 'Jahr(e)' or bounds.ofType(Duration).unit = 'Jahr' or bounds.ofType(Duration).unit = 'Jahre' ) ) )
TimingFreqOrPeriodGtOneWarning warning Timing.repeat If frequency and period are given together, only one of them may exceed 1 - either the frequency including frequencyMax or the period including periodMax. A statement in which both exceed 1, such as 'six times within three hours', is hard to express in language and is not needed: the same meaning can be conveyed by adapting the period, e.g. 'every 30 minutes'. This also rules out combining a variable frequency with a variable period, such as '1 to 3 times every 2 to 3 days', because frequencyMax and periodMax are then both greater than 1. /* Detect Interval only */ ( timeOfDay.empty() and when.empty() and dayOfWeek.empty() and frequency.exists() and period.exists() ) implies ( ( (frequency > 1 or (frequencyMax.exists() and frequencyMax > 1)) implies ( period = 1 and (periodMax.empty() or periodMax = 1) ) ) and ( (period > 1 or (periodMax.exists() and periodMax > 1)) implies ( frequency = 1 and (frequencyMax.empty() or frequencyMax = 1) ) ) )
TimingSingleDosageForTimeOfDayWarning warning Timing.repeat If only timeOfDay is used (without dayOfWeek), the times should be modelled in a single Dosage element, both for daily dosing and in an interval combination. Multiple Dosage elements are only allowed if every element carries a distinct dose, including its data type. ( %resource.ofType(MedicationRequest).dosageInstruction.combine(%resource.ofType(MedicationDispense).dosageInstruction).combine(%resource.ofType(MedicationStatement).dosage) ).all( ( timing.repeat.dayOfWeek.empty() and timing.repeat.timeOfDay.exists() and timing.repeat.when.empty() ) implies ( ( ( %resource.ofType(MedicationRequest).dosageInstruction.combine(%resource.ofType(MedicationDispense).dosageInstruction).combine(%resource.ofType(MedicationStatement).dosage) ).where( timing.repeat.dayOfWeek.empty() and timing.repeat.timeOfDay.exists() and timing.repeat.when.empty() ).count() = 1 ) or ( ( %resource.ofType(MedicationRequest).dosageInstruction.combine(%resource.ofType(MedicationDispense).dosageInstruction).combine(%resource.ofType(MedicationStatement).dosage) ).where( timing.repeat.dayOfWeek.empty() and timing.repeat.timeOfDay.exists() and timing.repeat.when.empty() ).doseAndRate.dose.distinct().count() = ( %resource.ofType(MedicationRequest).dosageInstruction.combine(%resource.ofType(MedicationDispense).dosageInstruction).combine(%resource.ofType(MedicationStatement).dosage) ).where( timing.repeat.dayOfWeek.empty() and timing.repeat.timeOfDay.exists() and timing.repeat.when.empty() ).count() ) ) )
TimingSingleDosageForWhenWarning warning Timing.repeat If only when is used (without dayOfWeek), the times of day should be modelled in a single Dosage element, both for daily dosing and in an interval combination. Multiple Dosage elements are only allowed if every element carries a distinct dose, including its data type. ( %resource.ofType(MedicationRequest).dosageInstruction.combine(%resource.ofType(MedicationDispense).dosageInstruction).combine(%resource.ofType(MedicationStatement).dosage) ).all( ( timing.repeat.dayOfWeek.empty() and timing.repeat.when.exists() and timing.repeat.timeOfDay.empty() ) implies ( ( ( %resource.ofType(MedicationRequest).dosageInstruction.combine(%resource.ofType(MedicationDispense).dosageInstruction).combine(%resource.ofType(MedicationStatement).dosage) ).where( timing.repeat.dayOfWeek.empty() and timing.repeat.when.exists() and timing.repeat.timeOfDay.empty() ).count() = 1 ) or ( ( %resource.ofType(MedicationRequest).dosageInstruction.combine(%resource.ofType(MedicationDispense).dosageInstruction).combine(%resource.ofType(MedicationStatement).dosage) ).where( timing.repeat.dayOfWeek.empty() and timing.repeat.when.exists() and timing.repeat.timeOfDay.empty() ).doseAndRate.dose.distinct().count() = ( %resource.ofType(MedicationRequest).dosageInstruction.combine(%resource.ofType(MedicationDispense).dosageInstruction).combine(%resource.ofType(MedicationStatement).dosage) ).where( timing.repeat.dayOfWeek.empty() and timing.repeat.when.exists() and timing.repeat.timeOfDay.empty() ).count() ) ) )
TimingValuesPositiveWarning warning Timing.repeat period, periodMax, boundsDuration.value and boundsRange.high.value should be greater than 0; boundsRange.low.value should not be negative. (period.exists() implies period > 0) and (periodMax.exists() implies periodMax > 0) and bounds.ofType(Duration).value.all($this > 0) and bounds.ofType(Range).low.value.all($this >= 0) and bounds.ofType(Range).high.value.all($this > 0)
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 Timing.repeat if there's a duration, there needs to be duration units duration.empty() or durationUnit.exists()
tim-2 error Timing.repeat if there's a period, there needs to be period units period.empty() or periodUnit.exists()
tim-4 error Timing.repeat duration SHALL be a non-negative value duration.exists() implies duration >= 0
tim-5 error Timing.repeat period SHALL be a non-negative value period.exists() implies period >= 0
tim-6 error Timing.repeat If there's a periodMax, there must be a period periodMax.empty() or period.exists()
tim-7 error Timing.repeat If there's a durationMax, there must be a duration durationMax.empty() or duration.exists()
tim-8 error Timing.repeat If there's a countMax, there must be a count countMax.empty() or count.exists()
tim-9 error 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 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 Timing

NameFlagsCard.TypeDescription & Constraints    Filter: doco
Timing Timing
Timing.repeat This element must be supported. C 0..1 Element Wann das Ereignis stattfinden soll
Constraints: TimingSingleDosageForTimeOfDayWarning, TimingSingleDosageForWhenWarning, TimingBoundsUnitMatchesCodeWarning, TimingFreqOrPeriodGtOneWarning, TimingValuesPositiveWarning
Timing.repeat.Slices for bounds[x] This element must be supported. 0..1 Duration, Range, Period Länge/Bereich der Längen oder (Start- und/oder End-)Grenzen
Slice: Unordered, Open by type:$this
Slicing Note: The rules on this element (including its children) apply to all the slices, but are not repeated in them Other type slices that contain no new information are not shown in this view
Timing.repeat.Slices for bounds[x].bounds[x]:boundsDuration This element must be supported. 0..1 Duration Dauer der Dosieranweisung ausgedrückt in UCUM-Einheiten
Timing.repeat.Slices for bounds[x].bounds[x]:boundsDuration.value This element must be supported. 0..1 decimal Numerical value (with implicit precision)
Timing.repeat.Slices for bounds[x].bounds[x]:boundsDuration.unit This element must be supported. 0..1 string Unit representation
Timing.repeat.Slices for bounds[x].bounds[x]:boundsDuration.system This element must be supported. 0..1 uri UCUM-Einheit für die Dauer
Fixed Value: http://unitsofmeasure.org (no extensions allowed)
Timing.repeat.Slices for bounds[x].bounds[x]:boundsDuration.code This element must be supported. 0..1 code Coded form of the unit
Timing.repeat.Slices for bounds[x].bounds[x]:boundsPeriod This element must be supported. 0..1 Period Start und Enddatum der Dosieranweisung ausgedrückt in Datum mit optional Uhrzeit.
Timing.repeat.Slices for bounds[x].bounds[x]:boundsPeriod.start This element must be supported. 0..1 dateTime Starting time with inclusive boundary
Timing.repeat.Slices for bounds[x].bounds[x]:boundsPeriod.end This element must be supported. 0..1 dateTime End time with inclusive boundary, if not ongoing
Timing.repeat.frequency This element must be supported. 0..1 positiveInt Ereignis tritt frequency-mal pro Zeitraum auf
Timing.repeat.frequencyMax This element must be supported. 0..1 positiveInt Event occurs up to frequencyMax times per period
Timing.repeat.period This element must be supported. 0..1 decimal Ereignis tritt frequency-mal pro Zeitraum auf
Timing.repeat.periodMax This element must be supported. 0..1 decimal Upper limit of period (3-4 hours)
Timing.repeat.periodUnit This element must be supported. 0..1 code s | min | h | d | wk | mo | a - Zeiteinheit (UCUM)
Timing.repeat.dayOfWeek This element must be supported. 0..* code mon | tue | wed | thu | fri | sat | sun
Timing.repeat.timeOfDay This element must be supported. 0..* time Tageszeit für die Aktion
Timing.repeat.when This element must be supported. 0..* code Code für den Zeitraum des Auftretens

doco Documentation for this format

Constraints

Id Grade Path(s) Description Expression
TimingBoundsUnitMatchesCodeWarning warning Timing.repeat boundsDuration.unit must match the UCUM boundsDuration.code (e.g. 'Woche(n)' only with code='wk'). bounds.ofType(Duration).exists().not() or ( ( bounds.ofType(Duration).code = 'd' implies ( bounds.ofType(Duration).unit = 'Tag(e)' or bounds.ofType(Duration).unit = 'Tag' or bounds.ofType(Duration).unit = 'Tage' ) ) and ( bounds.ofType(Duration).code = 'wk' implies ( bounds.ofType(Duration).unit = 'Woche(n)' or bounds.ofType(Duration).unit = 'Woche' or bounds.ofType(Duration).unit = 'Wochen' ) ) and ( bounds.ofType(Duration).code = 'mo' implies ( bounds.ofType(Duration).unit = 'Monat(e)' or bounds.ofType(Duration).unit = 'Monat' or bounds.ofType(Duration).unit = 'Monate' ) ) and ( bounds.ofType(Duration).code = 'a' implies ( bounds.ofType(Duration).unit = 'Jahr(e)' or bounds.ofType(Duration).unit = 'Jahr' or bounds.ofType(Duration).unit = 'Jahre' ) ) )
TimingFreqOrPeriodGtOneWarning warning Timing.repeat If frequency and period are given together, only one of them may exceed 1 - either the frequency including frequencyMax or the period including periodMax. A statement in which both exceed 1, such as 'six times within three hours', is hard to express in language and is not needed: the same meaning can be conveyed by adapting the period, e.g. 'every 30 minutes'. This also rules out combining a variable frequency with a variable period, such as '1 to 3 times every 2 to 3 days', because frequencyMax and periodMax are then both greater than 1. /* Detect Interval only */ ( timeOfDay.empty() and when.empty() and dayOfWeek.empty() and frequency.exists() and period.exists() ) implies ( ( (frequency > 1 or (frequencyMax.exists() and frequencyMax > 1)) implies ( period = 1 and (periodMax.empty() or periodMax = 1) ) ) and ( (period > 1 or (periodMax.exists() and periodMax > 1)) implies ( frequency = 1 and (frequencyMax.empty() or frequencyMax = 1) ) ) )
TimingSingleDosageForTimeOfDayWarning warning Timing.repeat If only timeOfDay is used (without dayOfWeek), the times should be modelled in a single Dosage element, both for daily dosing and in an interval combination. Multiple Dosage elements are only allowed if every element carries a distinct dose, including its data type. ( %resource.ofType(MedicationRequest).dosageInstruction.combine(%resource.ofType(MedicationDispense).dosageInstruction).combine(%resource.ofType(MedicationStatement).dosage) ).all( ( timing.repeat.dayOfWeek.empty() and timing.repeat.timeOfDay.exists() and timing.repeat.when.empty() ) implies ( ( ( %resource.ofType(MedicationRequest).dosageInstruction.combine(%resource.ofType(MedicationDispense).dosageInstruction).combine(%resource.ofType(MedicationStatement).dosage) ).where( timing.repeat.dayOfWeek.empty() and timing.repeat.timeOfDay.exists() and timing.repeat.when.empty() ).count() = 1 ) or ( ( %resource.ofType(MedicationRequest).dosageInstruction.combine(%resource.ofType(MedicationDispense).dosageInstruction).combine(%resource.ofType(MedicationStatement).dosage) ).where( timing.repeat.dayOfWeek.empty() and timing.repeat.timeOfDay.exists() and timing.repeat.when.empty() ).doseAndRate.dose.distinct().count() = ( %resource.ofType(MedicationRequest).dosageInstruction.combine(%resource.ofType(MedicationDispense).dosageInstruction).combine(%resource.ofType(MedicationStatement).dosage) ).where( timing.repeat.dayOfWeek.empty() and timing.repeat.timeOfDay.exists() and timing.repeat.when.empty() ).count() ) ) )
TimingSingleDosageForWhenWarning warning Timing.repeat If only when is used (without dayOfWeek), the times of day should be modelled in a single Dosage element, both for daily dosing and in an interval combination. Multiple Dosage elements are only allowed if every element carries a distinct dose, including its data type. ( %resource.ofType(MedicationRequest).dosageInstruction.combine(%resource.ofType(MedicationDispense).dosageInstruction).combine(%resource.ofType(MedicationStatement).dosage) ).all( ( timing.repeat.dayOfWeek.empty() and timing.repeat.when.exists() and timing.repeat.timeOfDay.empty() ) implies ( ( ( %resource.ofType(MedicationRequest).dosageInstruction.combine(%resource.ofType(MedicationDispense).dosageInstruction).combine(%resource.ofType(MedicationStatement).dosage) ).where( timing.repeat.dayOfWeek.empty() and timing.repeat.when.exists() and timing.repeat.timeOfDay.empty() ).count() = 1 ) or ( ( %resource.ofType(MedicationRequest).dosageInstruction.combine(%resource.ofType(MedicationDispense).dosageInstruction).combine(%resource.ofType(MedicationStatement).dosage) ).where( timing.repeat.dayOfWeek.empty() and timing.repeat.when.exists() and timing.repeat.timeOfDay.empty() ).doseAndRate.dose.distinct().count() = ( %resource.ofType(MedicationRequest).dosageInstruction.combine(%resource.ofType(MedicationDispense).dosageInstruction).combine(%resource.ofType(MedicationStatement).dosage) ).where( timing.repeat.dayOfWeek.empty() and timing.repeat.when.exists() and timing.repeat.timeOfDay.empty() ).count() ) ) )
TimingValuesPositiveWarning warning Timing.repeat period, periodMax, boundsDuration.value and boundsRange.high.value should be greater than 0; boundsRange.low.value should not be negative. (period.exists() implies period > 0) and (periodMax.exists() implies periodMax > 0) and bounds.ofType(Duration).value.all($this > 0) and bounds.ofType(Range).low.value.all($this >= 0) and bounds.ofType(Range).high.value.all($this > 0)
NameFlagsCard.TypeDescription & Constraints    Filter: doco
Timing 0..* Timing A timing schedule that specifies an event that may occur multiple times
Timing.id 0..1 string Unique id for inter-element referencing
Timing.extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
Timing.modifierExtension This element is a modifier element. This element is included in summaries. 0..* Extension Extensions that cannot be ignored even if unrecognized
Timing.event This element is included in summaries. 0..* dateTime When the event occurs
Timing.repeat This element must be supported. This element is included in summaries. C 0..1 Element Wann das Ereignis stattfinden soll
Constraints: tim-1, tim-2, tim-4, tim-5, tim-6, tim-7, tim-8, tim-9, tim-10, TimingSingleDosageForTimeOfDayWarning, TimingSingleDosageForWhenWarning, TimingBoundsUnitMatchesCodeWarning, TimingFreqOrPeriodGtOneWarning, TimingValuesPositiveWarning
Timing.repeat.id 0..1 string Unique id for inter-element referencing
Timing.repeat.extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
Timing.repeat.Slices for bounds[x] This element must be supported. This element is included in summaries. 0..1 Länge/Bereich der Längen oder (Start- und/oder End-)Grenzen
Slice: Unordered, Closed by type:$this
Slicing Note: The rules on this element (including its children) apply to all the slices, but are not repeated in them Other type slices that contain no new information are not shown in this view
Timing.repeat.Slices for bounds[x].boundsDuration Duration
Timing.repeat.Slices for bounds[x].boundsRange Range
Timing.repeat.Slices for bounds[x].boundsPeriod Period
Timing.repeat.Slices for bounds[x].bounds[x]:boundsDuration This element must be supported. This element is included in summaries. 0..1 Duration Dauer der Dosieranweisung ausgedrückt in UCUM-Einheiten
Timing.repeat.Slices for bounds[x].bounds[x]:boundsDuration.id 0..1 string Unique id for inter-element referencing
Timing.repeat.Slices for bounds[x].bounds[x]:boundsDuration.extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
Timing.repeat.Slices for bounds[x].bounds[x]:boundsDuration.value This element must be supported. This element is included in summaries. 0..1 decimal Numerical value (with implicit precision)
Timing.repeat.Slices for bounds[x].bounds[x]:boundsDuration.comparator This element is a modifier element. This element is included in summaries. 0..1 code < | <= | >= | > - how to understand the value
Binding: QuantityComparator (required): How the Quantity should be understood and represented.
Timing.repeat.Slices for bounds[x].bounds[x]:boundsDuration.unit This element must be supported. This element is included in summaries. 0..1 string Unit representation
Timing.repeat.Slices for bounds[x].bounds[x]:boundsDuration.system This element must be supported. This element is included in summaries. C 0..1 uri UCUM-Einheit für die Dauer
Fixed Value: http://unitsofmeasure.org (no extensions allowed)
Timing.repeat.Slices for bounds[x].bounds[x]:boundsDuration.code This element must be supported. This element is included in summaries. 0..1 code Coded form of the unit
Timing.repeat.Slices for bounds[x].bounds[x]:boundsPeriod This element must be supported. This element is included in summaries. 0..1 Period Start und Enddatum der Dosieranweisung ausgedrückt in Datum mit optional Uhrzeit.
Timing.repeat.Slices for bounds[x].bounds[x]:boundsPeriod.id 0..1 string Unique id for inter-element referencing
Timing.repeat.Slices for bounds[x].bounds[x]:boundsPeriod.extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
Timing.repeat.Slices for bounds[x].bounds[x]:boundsPeriod.start This element must be supported. This element is included in summaries. C 0..1 dateTime Starting time with inclusive boundary
Timing.repeat.Slices for bounds[x].bounds[x]:boundsPeriod.end This element must be supported. This element is included in summaries. C 0..1 dateTime End time with inclusive boundary, if not ongoing
Timing.repeat.count This element is included in summaries. 0..1 positiveInt Number of times to repeat
Timing.repeat.countMax This element is included in summaries. 0..1 positiveInt Maximum number of times to repeat
Timing.repeat.duration This element is included in summaries. 0..1 decimal How long when it happens
Timing.repeat.durationMax This element is included in summaries. 0..1 decimal How long when it happens (Max)
Timing.repeat.durationUnit This element is included in summaries. 0..1 code s | min | h | d | wk | mo | a - unit of time (UCUM)
Binding: UnitsOfTime (required): A unit of time (units from UCUM).
Timing.repeat.frequency This element must be supported. This element is included in summaries. 0..1 positiveInt Ereignis tritt frequency-mal pro Zeitraum auf
Timing.repeat.frequencyMax This element must be supported. This element is included in summaries. 0..1 positiveInt Event occurs up to frequencyMax times per period
Timing.repeat.period This element must be supported. This element is included in summaries. 0..1 decimal Ereignis tritt frequency-mal pro Zeitraum auf
Timing.repeat.periodMax This element must be supported. This element is included in summaries. 0..1 decimal Upper limit of period (3-4 hours)
Timing.repeat.periodUnit This element must be supported. This element is included in summaries. 0..1 code s | min | h | d | wk | mo | a - Zeiteinheit (UCUM)
Binding: UnitsOfTime (required): A unit of time (units from UCUM).
Timing.repeat.dayOfWeek This element must be supported. This element is included in summaries. 0..* code mon | tue | wed | thu | fri | sat | sun
Binding: DaysOfWeek (required)
Timing.repeat.timeOfDay This element must be supported. This element is included in summaries. 0..* time Tageszeit für die Aktion
Timing.repeat.when This element must be supported. This element is included in summaries. 0..* code Code für den Zeitraum des Auftretens
Binding: EventTiming (required): Real world event relating to the schedule.
Timing.repeat.offset This element is included in summaries. 0..1 unsignedInt Minutes from event (before or after)
Timing.code This element is included in summaries. 0..1 CodeableConcept BID | TID | QID | AM | PM | QD | QOD | +
Binding: TimingAbbreviation (preferred): Code for a known / defined timing pattern.

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
Timing.repeat.bounds[x]:boundsDuration.​comparator Base required QuantityComparator 📍4.0.1 FHIR Std.
Timing.repeat.durationUnit Base required UnitsOfTime 📍4.0.1 FHIR Std.
Timing.repeat.periodUnit Base required UnitsOfTime 📍4.0.1 FHIR Std.
Timing.repeat.dayOfWeek Base required DaysOfWeek 📍4.0.1 FHIR Std.
Timing.repeat.when Base required EventTiming 📍4.0.1 FHIR Std.
Timing.code Base preferred TimingAbbreviation 📍4.0.1 FHIR Std.

Constraints

Id Grade Path(s) Description Expression
TimingBoundsUnitMatchesCodeWarning warning Timing.repeat boundsDuration.unit must match the UCUM boundsDuration.code (e.g. 'Woche(n)' only with code='wk'). bounds.ofType(Duration).exists().not() or ( ( bounds.ofType(Duration).code = 'd' implies ( bounds.ofType(Duration).unit = 'Tag(e)' or bounds.ofType(Duration).unit = 'Tag' or bounds.ofType(Duration).unit = 'Tage' ) ) and ( bounds.ofType(Duration).code = 'wk' implies ( bounds.ofType(Duration).unit = 'Woche(n)' or bounds.ofType(Duration).unit = 'Woche' or bounds.ofType(Duration).unit = 'Wochen' ) ) and ( bounds.ofType(Duration).code = 'mo' implies ( bounds.ofType(Duration).unit = 'Monat(e)' or bounds.ofType(Duration).unit = 'Monat' or bounds.ofType(Duration).unit = 'Monate' ) ) and ( bounds.ofType(Duration).code = 'a' implies ( bounds.ofType(Duration).unit = 'Jahr(e)' or bounds.ofType(Duration).unit = 'Jahr' or bounds.ofType(Duration).unit = 'Jahre' ) ) )
TimingFreqOrPeriodGtOneWarning warning Timing.repeat If frequency and period are given together, only one of them may exceed 1 - either the frequency including frequencyMax or the period including periodMax. A statement in which both exceed 1, such as 'six times within three hours', is hard to express in language and is not needed: the same meaning can be conveyed by adapting the period, e.g. 'every 30 minutes'. This also rules out combining a variable frequency with a variable period, such as '1 to 3 times every 2 to 3 days', because frequencyMax and periodMax are then both greater than 1. /* Detect Interval only */ ( timeOfDay.empty() and when.empty() and dayOfWeek.empty() and frequency.exists() and period.exists() ) implies ( ( (frequency > 1 or (frequencyMax.exists() and frequencyMax > 1)) implies ( period = 1 and (periodMax.empty() or periodMax = 1) ) ) and ( (period > 1 or (periodMax.exists() and periodMax > 1)) implies ( frequency = 1 and (frequencyMax.empty() or frequencyMax = 1) ) ) )
TimingSingleDosageForTimeOfDayWarning warning Timing.repeat If only timeOfDay is used (without dayOfWeek), the times should be modelled in a single Dosage element, both for daily dosing and in an interval combination. Multiple Dosage elements are only allowed if every element carries a distinct dose, including its data type. ( %resource.ofType(MedicationRequest).dosageInstruction.combine(%resource.ofType(MedicationDispense).dosageInstruction).combine(%resource.ofType(MedicationStatement).dosage) ).all( ( timing.repeat.dayOfWeek.empty() and timing.repeat.timeOfDay.exists() and timing.repeat.when.empty() ) implies ( ( ( %resource.ofType(MedicationRequest).dosageInstruction.combine(%resource.ofType(MedicationDispense).dosageInstruction).combine(%resource.ofType(MedicationStatement).dosage) ).where( timing.repeat.dayOfWeek.empty() and timing.repeat.timeOfDay.exists() and timing.repeat.when.empty() ).count() = 1 ) or ( ( %resource.ofType(MedicationRequest).dosageInstruction.combine(%resource.ofType(MedicationDispense).dosageInstruction).combine(%resource.ofType(MedicationStatement).dosage) ).where( timing.repeat.dayOfWeek.empty() and timing.repeat.timeOfDay.exists() and timing.repeat.when.empty() ).doseAndRate.dose.distinct().count() = ( %resource.ofType(MedicationRequest).dosageInstruction.combine(%resource.ofType(MedicationDispense).dosageInstruction).combine(%resource.ofType(MedicationStatement).dosage) ).where( timing.repeat.dayOfWeek.empty() and timing.repeat.timeOfDay.exists() and timing.repeat.when.empty() ).count() ) ) )
TimingSingleDosageForWhenWarning warning Timing.repeat If only when is used (without dayOfWeek), the times of day should be modelled in a single Dosage element, both for daily dosing and in an interval combination. Multiple Dosage elements are only allowed if every element carries a distinct dose, including its data type. ( %resource.ofType(MedicationRequest).dosageInstruction.combine(%resource.ofType(MedicationDispense).dosageInstruction).combine(%resource.ofType(MedicationStatement).dosage) ).all( ( timing.repeat.dayOfWeek.empty() and timing.repeat.when.exists() and timing.repeat.timeOfDay.empty() ) implies ( ( ( %resource.ofType(MedicationRequest).dosageInstruction.combine(%resource.ofType(MedicationDispense).dosageInstruction).combine(%resource.ofType(MedicationStatement).dosage) ).where( timing.repeat.dayOfWeek.empty() and timing.repeat.when.exists() and timing.repeat.timeOfDay.empty() ).count() = 1 ) or ( ( %resource.ofType(MedicationRequest).dosageInstruction.combine(%resource.ofType(MedicationDispense).dosageInstruction).combine(%resource.ofType(MedicationStatement).dosage) ).where( timing.repeat.dayOfWeek.empty() and timing.repeat.when.exists() and timing.repeat.timeOfDay.empty() ).doseAndRate.dose.distinct().count() = ( %resource.ofType(MedicationRequest).dosageInstruction.combine(%resource.ofType(MedicationDispense).dosageInstruction).combine(%resource.ofType(MedicationStatement).dosage) ).where( timing.repeat.dayOfWeek.empty() and timing.repeat.when.exists() and timing.repeat.timeOfDay.empty() ).count() ) ) )
TimingValuesPositiveWarning warning Timing.repeat period, periodMax, boundsDuration.value and boundsRange.high.value should be greater than 0; boundsRange.low.value should not be negative. (period.exists() implies period > 0) and (periodMax.exists() implies periodMax > 0) and bounds.ofType(Duration).value.all($this > 0) and bounds.ofType(Range).low.value.all($this >= 0) and bounds.ofType(Range).high.value.all($this > 0)
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 Timing.repeat if there's a duration, there needs to be duration units duration.empty() or durationUnit.exists()
tim-2 error Timing.repeat if there's a period, there needs to be period units period.empty() or periodUnit.exists()
tim-4 error Timing.repeat duration SHALL be a non-negative value duration.exists() implies duration >= 0
tim-5 error Timing.repeat period SHALL be a non-negative value period.exists() implies period >= 0
tim-6 error Timing.repeat If there's a periodMax, there must be a period periodMax.empty() or period.exists()
tim-7 error Timing.repeat If there's a durationMax, there must be a duration durationMax.empty() or duration.exists()
tim-8 error Timing.repeat If there's a countMax, there must be a count countMax.empty() or count.exists()
tim-9 error 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 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 Timing

Summary

Must-Support: 18 elements
Fixed: 1 element

Slices

This structure defines the following Slices:

  • The element 1 is sliced based on the value of Timing.repeat.bounds[x]

Key Elements View

NameFlagsCard.TypeDescription & Constraints    Filter: doco
Timing 0..* Timing A timing schedule that specifies an event that may occur multiple times
Timing.modifierExtension This element is a modifier element. This element is included in summaries. 0..* Extension Extensions that cannot be ignored even if unrecognized
Timing.repeat This element must be supported. This element is included in summaries. C 0..1 Element Wann das Ereignis stattfinden soll
Constraints: tim-1, tim-2, tim-4, tim-5, tim-6, tim-7, tim-8, tim-9, tim-10, TimingSingleDosageForTimeOfDayWarning, TimingSingleDosageForWhenWarning, TimingBoundsUnitMatchesCodeWarning, TimingFreqOrPeriodGtOneWarning, TimingValuesPositiveWarning
Timing.repeat.Slices for bounds[x] This element must be supported. This element is included in summaries. 0..1 Länge/Bereich der Längen oder (Start- und/oder End-)Grenzen
Slice: Unordered, Closed by type:$this
Slicing Note: The rules on this element (including its children) apply to all the slices, but are not repeated in them Other type slices that contain no new information are not shown in this view
Timing.repeat.Slices for bounds[x].boundsDuration Duration
Timing.repeat.Slices for bounds[x].boundsRange Range
Timing.repeat.Slices for bounds[x].boundsPeriod Period
Timing.repeat.Slices for bounds[x].bounds[x]:boundsDuration This element must be supported. This element is included in summaries. 0..1 Duration Dauer der Dosieranweisung ausgedrückt in UCUM-Einheiten
Timing.repeat.Slices for bounds[x].bounds[x]:boundsDuration.value This element must be supported. This element is included in summaries. 0..1 decimal Numerical value (with implicit precision)
Timing.repeat.Slices for bounds[x].bounds[x]:boundsDuration.comparator This element is a modifier element. This element is included in summaries. 0..1 code < | <= | >= | > - how to understand the value
Binding: QuantityComparator (required): How the Quantity should be understood and represented.
Timing.repeat.Slices for bounds[x].bounds[x]:boundsDuration.unit This element must be supported. This element is included in summaries. 0..1 string Unit representation
Timing.repeat.Slices for bounds[x].bounds[x]:boundsDuration.system This element must be supported. This element is included in summaries. C 0..1 uri UCUM-Einheit für die Dauer
Fixed Value: http://unitsofmeasure.org (no extensions allowed)
Timing.repeat.Slices for bounds[x].bounds[x]:boundsDuration.code This element must be supported. This element is included in summaries. 0..1 code Coded form of the unit
Timing.repeat.Slices for bounds[x].bounds[x]:boundsPeriod This element must be supported. This element is included in summaries. 0..1 Period Start und Enddatum der Dosieranweisung ausgedrückt in Datum mit optional Uhrzeit.
Timing.repeat.Slices for bounds[x].bounds[x]:boundsPeriod.start This element must be supported. This element is included in summaries. C 0..1 dateTime Starting time with inclusive boundary
Timing.repeat.Slices for bounds[x].bounds[x]:boundsPeriod.end This element must be supported. This element is included in summaries. C 0..1 dateTime End time with inclusive boundary, if not ongoing
Timing.repeat.frequency This element must be supported. This element is included in summaries. 0..1 positiveInt Ereignis tritt frequency-mal pro Zeitraum auf
Timing.repeat.frequencyMax This element must be supported. This element is included in summaries. 0..1 positiveInt Event occurs up to frequencyMax times per period
Timing.repeat.period This element must be supported. This element is included in summaries. 0..1 decimal Ereignis tritt frequency-mal pro Zeitraum auf
Timing.repeat.periodMax This element must be supported. This element is included in summaries. 0..1 decimal Upper limit of period (3-4 hours)
Timing.repeat.periodUnit This element must be supported. This element is included in summaries. 0..1 code s | min | h | d | wk | mo | a - Zeiteinheit (UCUM)
Binding: UnitsOfTime (required): A unit of time (units from UCUM).
Timing.repeat.dayOfWeek This element must be supported. This element is included in summaries. 0..* code mon | tue | wed | thu | fri | sat | sun
Binding: DaysOfWeek (required)
Timing.repeat.timeOfDay This element must be supported. This element is included in summaries. 0..* time Tageszeit für die Aktion
Timing.repeat.when This element must be supported. This element is included in summaries. 0..* code Code für den Zeitraum des Auftretens
Binding: EventTiming (required): Real world event relating to the schedule.

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
Timing.repeat.bounds[x]:boundsDuration.​comparator Base required QuantityComparator 📍4.0.1 FHIR Std.
Timing.repeat.periodUnit Base required UnitsOfTime 📍4.0.1 FHIR Std.
Timing.repeat.dayOfWeek Base required DaysOfWeek 📍4.0.1 FHIR Std.
Timing.repeat.when Base required EventTiming 📍4.0.1 FHIR Std.

Constraints

Id Grade Path(s) Description Expression
TimingBoundsUnitMatchesCodeWarning warning Timing.repeat boundsDuration.unit must match the UCUM boundsDuration.code (e.g. 'Woche(n)' only with code='wk'). bounds.ofType(Duration).exists().not() or ( ( bounds.ofType(Duration).code = 'd' implies ( bounds.ofType(Duration).unit = 'Tag(e)' or bounds.ofType(Duration).unit = 'Tag' or bounds.ofType(Duration).unit = 'Tage' ) ) and ( bounds.ofType(Duration).code = 'wk' implies ( bounds.ofType(Duration).unit = 'Woche(n)' or bounds.ofType(Duration).unit = 'Woche' or bounds.ofType(Duration).unit = 'Wochen' ) ) and ( bounds.ofType(Duration).code = 'mo' implies ( bounds.ofType(Duration).unit = 'Monat(e)' or bounds.ofType(Duration).unit = 'Monat' or bounds.ofType(Duration).unit = 'Monate' ) ) and ( bounds.ofType(Duration).code = 'a' implies ( bounds.ofType(Duration).unit = 'Jahr(e)' or bounds.ofType(Duration).unit = 'Jahr' or bounds.ofType(Duration).unit = 'Jahre' ) ) )
TimingFreqOrPeriodGtOneWarning warning Timing.repeat If frequency and period are given together, only one of them may exceed 1 - either the frequency including frequencyMax or the period including periodMax. A statement in which both exceed 1, such as 'six times within three hours', is hard to express in language and is not needed: the same meaning can be conveyed by adapting the period, e.g. 'every 30 minutes'. This also rules out combining a variable frequency with a variable period, such as '1 to 3 times every 2 to 3 days', because frequencyMax and periodMax are then both greater than 1. /* Detect Interval only */ ( timeOfDay.empty() and when.empty() and dayOfWeek.empty() and frequency.exists() and period.exists() ) implies ( ( (frequency > 1 or (frequencyMax.exists() and frequencyMax > 1)) implies ( period = 1 and (periodMax.empty() or periodMax = 1) ) ) and ( (period > 1 or (periodMax.exists() and periodMax > 1)) implies ( frequency = 1 and (frequencyMax.empty() or frequencyMax = 1) ) ) )
TimingSingleDosageForTimeOfDayWarning warning Timing.repeat If only timeOfDay is used (without dayOfWeek), the times should be modelled in a single Dosage element, both for daily dosing and in an interval combination. Multiple Dosage elements are only allowed if every element carries a distinct dose, including its data type. ( %resource.ofType(MedicationRequest).dosageInstruction.combine(%resource.ofType(MedicationDispense).dosageInstruction).combine(%resource.ofType(MedicationStatement).dosage) ).all( ( timing.repeat.dayOfWeek.empty() and timing.repeat.timeOfDay.exists() and timing.repeat.when.empty() ) implies ( ( ( %resource.ofType(MedicationRequest).dosageInstruction.combine(%resource.ofType(MedicationDispense).dosageInstruction).combine(%resource.ofType(MedicationStatement).dosage) ).where( timing.repeat.dayOfWeek.empty() and timing.repeat.timeOfDay.exists() and timing.repeat.when.empty() ).count() = 1 ) or ( ( %resource.ofType(MedicationRequest).dosageInstruction.combine(%resource.ofType(MedicationDispense).dosageInstruction).combine(%resource.ofType(MedicationStatement).dosage) ).where( timing.repeat.dayOfWeek.empty() and timing.repeat.timeOfDay.exists() and timing.repeat.when.empty() ).doseAndRate.dose.distinct().count() = ( %resource.ofType(MedicationRequest).dosageInstruction.combine(%resource.ofType(MedicationDispense).dosageInstruction).combine(%resource.ofType(MedicationStatement).dosage) ).where( timing.repeat.dayOfWeek.empty() and timing.repeat.timeOfDay.exists() and timing.repeat.when.empty() ).count() ) ) )
TimingSingleDosageForWhenWarning warning Timing.repeat If only when is used (without dayOfWeek), the times of day should be modelled in a single Dosage element, both for daily dosing and in an interval combination. Multiple Dosage elements are only allowed if every element carries a distinct dose, including its data type. ( %resource.ofType(MedicationRequest).dosageInstruction.combine(%resource.ofType(MedicationDispense).dosageInstruction).combine(%resource.ofType(MedicationStatement).dosage) ).all( ( timing.repeat.dayOfWeek.empty() and timing.repeat.when.exists() and timing.repeat.timeOfDay.empty() ) implies ( ( ( %resource.ofType(MedicationRequest).dosageInstruction.combine(%resource.ofType(MedicationDispense).dosageInstruction).combine(%resource.ofType(MedicationStatement).dosage) ).where( timing.repeat.dayOfWeek.empty() and timing.repeat.when.exists() and timing.repeat.timeOfDay.empty() ).count() = 1 ) or ( ( %resource.ofType(MedicationRequest).dosageInstruction.combine(%resource.ofType(MedicationDispense).dosageInstruction).combine(%resource.ofType(MedicationStatement).dosage) ).where( timing.repeat.dayOfWeek.empty() and timing.repeat.when.exists() and timing.repeat.timeOfDay.empty() ).doseAndRate.dose.distinct().count() = ( %resource.ofType(MedicationRequest).dosageInstruction.combine(%resource.ofType(MedicationDispense).dosageInstruction).combine(%resource.ofType(MedicationStatement).dosage) ).where( timing.repeat.dayOfWeek.empty() and timing.repeat.when.exists() and timing.repeat.timeOfDay.empty() ).count() ) ) )
TimingValuesPositiveWarning warning Timing.repeat period, periodMax, boundsDuration.value and boundsRange.high.value should be greater than 0; boundsRange.low.value should not be negative. (period.exists() implies period > 0) and (periodMax.exists() implies periodMax > 0) and bounds.ofType(Duration).value.all($this > 0) and bounds.ofType(Range).low.value.all($this >= 0) and bounds.ofType(Range).high.value.all($this > 0)
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 Timing.repeat if there's a duration, there needs to be duration units duration.empty() or durationUnit.exists()
tim-2 error Timing.repeat if there's a period, there needs to be period units period.empty() or periodUnit.exists()
tim-4 error Timing.repeat duration SHALL be a non-negative value duration.exists() implies duration >= 0
tim-5 error Timing.repeat period SHALL be a non-negative value period.exists() implies period >= 0
tim-6 error Timing.repeat If there's a periodMax, there must be a period periodMax.empty() or period.exists()
tim-7 error Timing.repeat If there's a durationMax, there must be a duration durationMax.empty() or duration.exists()
tim-8 error Timing.repeat If there's a countMax, there must be a count countMax.empty() or count.exists()
tim-9 error 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 Timing.repeat If there's a timeOfDay, there cannot be a when, or vice versa timeOfDay.empty() or when.empty()

Differential View

This structure is derived from Timing

NameFlagsCard.TypeDescription & Constraints    Filter: doco
Timing Timing
Timing.repeat This element must be supported. C 0..1 Element Wann das Ereignis stattfinden soll
Constraints: TimingSingleDosageForTimeOfDayWarning, TimingSingleDosageForWhenWarning, TimingBoundsUnitMatchesCodeWarning, TimingFreqOrPeriodGtOneWarning, TimingValuesPositiveWarning
Timing.repeat.Slices for bounds[x] This element must be supported. 0..1 Duration, Range, Period Länge/Bereich der Längen oder (Start- und/oder End-)Grenzen
Slice: Unordered, Open by type:$this
Slicing Note: The rules on this element (including its children) apply to all the slices, but are not repeated in them Other type slices that contain no new information are not shown in this view
Timing.repeat.Slices for bounds[x].bounds[x]:boundsDuration This element must be supported. 0..1 Duration Dauer der Dosieranweisung ausgedrückt in UCUM-Einheiten
Timing.repeat.Slices for bounds[x].bounds[x]:boundsDuration.value This element must be supported. 0..1 decimal Numerical value (with implicit precision)
Timing.repeat.Slices for bounds[x].bounds[x]:boundsDuration.unit This element must be supported. 0..1 string Unit representation
Timing.repeat.Slices for bounds[x].bounds[x]:boundsDuration.system This element must be supported. 0..1 uri UCUM-Einheit für die Dauer
Fixed Value: http://unitsofmeasure.org (no extensions allowed)
Timing.repeat.Slices for bounds[x].bounds[x]:boundsDuration.code This element must be supported. 0..1 code Coded form of the unit
Timing.repeat.Slices for bounds[x].bounds[x]:boundsPeriod This element must be supported. 0..1 Period Start und Enddatum der Dosieranweisung ausgedrückt in Datum mit optional Uhrzeit.
Timing.repeat.Slices for bounds[x].bounds[x]:boundsPeriod.start This element must be supported. 0..1 dateTime Starting time with inclusive boundary
Timing.repeat.Slices for bounds[x].bounds[x]:boundsPeriod.end This element must be supported. 0..1 dateTime End time with inclusive boundary, if not ongoing
Timing.repeat.frequency This element must be supported. 0..1 positiveInt Ereignis tritt frequency-mal pro Zeitraum auf
Timing.repeat.frequencyMax This element must be supported. 0..1 positiveInt Event occurs up to frequencyMax times per period
Timing.repeat.period This element must be supported. 0..1 decimal Ereignis tritt frequency-mal pro Zeitraum auf
Timing.repeat.periodMax This element must be supported. 0..1 decimal Upper limit of period (3-4 hours)
Timing.repeat.periodUnit This element must be supported. 0..1 code s | min | h | d | wk | mo | a - Zeiteinheit (UCUM)
Timing.repeat.dayOfWeek This element must be supported. 0..* code mon | tue | wed | thu | fri | sat | sun
Timing.repeat.timeOfDay This element must be supported. 0..* time Tageszeit für die Aktion
Timing.repeat.when This element must be supported. 0..* code Code für den Zeitraum des Auftretens

doco Documentation for this format

Constraints

Id Grade Path(s) Description Expression
TimingBoundsUnitMatchesCodeWarning warning Timing.repeat boundsDuration.unit must match the UCUM boundsDuration.code (e.g. 'Woche(n)' only with code='wk'). bounds.ofType(Duration).exists().not() or ( ( bounds.ofType(Duration).code = 'd' implies ( bounds.ofType(Duration).unit = 'Tag(e)' or bounds.ofType(Duration).unit = 'Tag' or bounds.ofType(Duration).unit = 'Tage' ) ) and ( bounds.ofType(Duration).code = 'wk' implies ( bounds.ofType(Duration).unit = 'Woche(n)' or bounds.ofType(Duration).unit = 'Woche' or bounds.ofType(Duration).unit = 'Wochen' ) ) and ( bounds.ofType(Duration).code = 'mo' implies ( bounds.ofType(Duration).unit = 'Monat(e)' or bounds.ofType(Duration).unit = 'Monat' or bounds.ofType(Duration).unit = 'Monate' ) ) and ( bounds.ofType(Duration).code = 'a' implies ( bounds.ofType(Duration).unit = 'Jahr(e)' or bounds.ofType(Duration).unit = 'Jahr' or bounds.ofType(Duration).unit = 'Jahre' ) ) )
TimingFreqOrPeriodGtOneWarning warning Timing.repeat If frequency and period are given together, only one of them may exceed 1 - either the frequency including frequencyMax or the period including periodMax. A statement in which both exceed 1, such as 'six times within three hours', is hard to express in language and is not needed: the same meaning can be conveyed by adapting the period, e.g. 'every 30 minutes'. This also rules out combining a variable frequency with a variable period, such as '1 to 3 times every 2 to 3 days', because frequencyMax and periodMax are then both greater than 1. /* Detect Interval only */ ( timeOfDay.empty() and when.empty() and dayOfWeek.empty() and frequency.exists() and period.exists() ) implies ( ( (frequency > 1 or (frequencyMax.exists() and frequencyMax > 1)) implies ( period = 1 and (periodMax.empty() or periodMax = 1) ) ) and ( (period > 1 or (periodMax.exists() and periodMax > 1)) implies ( frequency = 1 and (frequencyMax.empty() or frequencyMax = 1) ) ) )
TimingSingleDosageForTimeOfDayWarning warning Timing.repeat If only timeOfDay is used (without dayOfWeek), the times should be modelled in a single Dosage element, both for daily dosing and in an interval combination. Multiple Dosage elements are only allowed if every element carries a distinct dose, including its data type. ( %resource.ofType(MedicationRequest).dosageInstruction.combine(%resource.ofType(MedicationDispense).dosageInstruction).combine(%resource.ofType(MedicationStatement).dosage) ).all( ( timing.repeat.dayOfWeek.empty() and timing.repeat.timeOfDay.exists() and timing.repeat.when.empty() ) implies ( ( ( %resource.ofType(MedicationRequest).dosageInstruction.combine(%resource.ofType(MedicationDispense).dosageInstruction).combine(%resource.ofType(MedicationStatement).dosage) ).where( timing.repeat.dayOfWeek.empty() and timing.repeat.timeOfDay.exists() and timing.repeat.when.empty() ).count() = 1 ) or ( ( %resource.ofType(MedicationRequest).dosageInstruction.combine(%resource.ofType(MedicationDispense).dosageInstruction).combine(%resource.ofType(MedicationStatement).dosage) ).where( timing.repeat.dayOfWeek.empty() and timing.repeat.timeOfDay.exists() and timing.repeat.when.empty() ).doseAndRate.dose.distinct().count() = ( %resource.ofType(MedicationRequest).dosageInstruction.combine(%resource.ofType(MedicationDispense).dosageInstruction).combine(%resource.ofType(MedicationStatement).dosage) ).where( timing.repeat.dayOfWeek.empty() and timing.repeat.timeOfDay.exists() and timing.repeat.when.empty() ).count() ) ) )
TimingSingleDosageForWhenWarning warning Timing.repeat If only when is used (without dayOfWeek), the times of day should be modelled in a single Dosage element, both for daily dosing and in an interval combination. Multiple Dosage elements are only allowed if every element carries a distinct dose, including its data type. ( %resource.ofType(MedicationRequest).dosageInstruction.combine(%resource.ofType(MedicationDispense).dosageInstruction).combine(%resource.ofType(MedicationStatement).dosage) ).all( ( timing.repeat.dayOfWeek.empty() and timing.repeat.when.exists() and timing.repeat.timeOfDay.empty() ) implies ( ( ( %resource.ofType(MedicationRequest).dosageInstruction.combine(%resource.ofType(MedicationDispense).dosageInstruction).combine(%resource.ofType(MedicationStatement).dosage) ).where( timing.repeat.dayOfWeek.empty() and timing.repeat.when.exists() and timing.repeat.timeOfDay.empty() ).count() = 1 ) or ( ( %resource.ofType(MedicationRequest).dosageInstruction.combine(%resource.ofType(MedicationDispense).dosageInstruction).combine(%resource.ofType(MedicationStatement).dosage) ).where( timing.repeat.dayOfWeek.empty() and timing.repeat.when.exists() and timing.repeat.timeOfDay.empty() ).doseAndRate.dose.distinct().count() = ( %resource.ofType(MedicationRequest).dosageInstruction.combine(%resource.ofType(MedicationDispense).dosageInstruction).combine(%resource.ofType(MedicationStatement).dosage) ).where( timing.repeat.dayOfWeek.empty() and timing.repeat.when.exists() and timing.repeat.timeOfDay.empty() ).count() ) ) )
TimingValuesPositiveWarning warning Timing.repeat period, periodMax, boundsDuration.value and boundsRange.high.value should be greater than 0; boundsRange.low.value should not be negative. (period.exists() implies period > 0) and (periodMax.exists() implies periodMax > 0) and bounds.ofType(Duration).value.all($this > 0) and bounds.ofType(Range).low.value.all($this >= 0) and bounds.ofType(Range).high.value.all($this > 0)

Snapshot View

NameFlagsCard.TypeDescription & Constraints    Filter: doco
Timing 0..* Timing A timing schedule that specifies an event that may occur multiple times
Timing.id 0..1 string Unique id for inter-element referencing
Timing.extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
Timing.modifierExtension This element is a modifier element. This element is included in summaries. 0..* Extension Extensions that cannot be ignored even if unrecognized
Timing.event This element is included in summaries. 0..* dateTime When the event occurs
Timing.repeat This element must be supported. This element is included in summaries. C 0..1 Element Wann das Ereignis stattfinden soll
Constraints: tim-1, tim-2, tim-4, tim-5, tim-6, tim-7, tim-8, tim-9, tim-10, TimingSingleDosageForTimeOfDayWarning, TimingSingleDosageForWhenWarning, TimingBoundsUnitMatchesCodeWarning, TimingFreqOrPeriodGtOneWarning, TimingValuesPositiveWarning
Timing.repeat.id 0..1 string Unique id for inter-element referencing
Timing.repeat.extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
Timing.repeat.Slices for bounds[x] This element must be supported. This element is included in summaries. 0..1 Länge/Bereich der Längen oder (Start- und/oder End-)Grenzen
Slice: Unordered, Closed by type:$this
Slicing Note: The rules on this element (including its children) apply to all the slices, but are not repeated in them Other type slices that contain no new information are not shown in this view
Timing.repeat.Slices for bounds[x].boundsDuration Duration
Timing.repeat.Slices for bounds[x].boundsRange Range
Timing.repeat.Slices for bounds[x].boundsPeriod Period
Timing.repeat.Slices for bounds[x].bounds[x]:boundsDuration This element must be supported. This element is included in summaries. 0..1 Duration Dauer der Dosieranweisung ausgedrückt in UCUM-Einheiten
Timing.repeat.Slices for bounds[x].bounds[x]:boundsDuration.id 0..1 string Unique id for inter-element referencing
Timing.repeat.Slices for bounds[x].bounds[x]:boundsDuration.extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
Timing.repeat.Slices for bounds[x].bounds[x]:boundsDuration.value This element must be supported. This element is included in summaries. 0..1 decimal Numerical value (with implicit precision)
Timing.repeat.Slices for bounds[x].bounds[x]:boundsDuration.comparator This element is a modifier element. This element is included in summaries. 0..1 code < | <= | >= | > - how to understand the value
Binding: QuantityComparator (required): How the Quantity should be understood and represented.
Timing.repeat.Slices for bounds[x].bounds[x]:boundsDuration.unit This element must be supported. This element is included in summaries. 0..1 string Unit representation
Timing.repeat.Slices for bounds[x].bounds[x]:boundsDuration.system This element must be supported. This element is included in summaries. C 0..1 uri UCUM-Einheit für die Dauer
Fixed Value: http://unitsofmeasure.org (no extensions allowed)
Timing.repeat.Slices for bounds[x].bounds[x]:boundsDuration.code This element must be supported. This element is included in summaries. 0..1 code Coded form of the unit
Timing.repeat.Slices for bounds[x].bounds[x]:boundsPeriod This element must be supported. This element is included in summaries. 0..1 Period Start und Enddatum der Dosieranweisung ausgedrückt in Datum mit optional Uhrzeit.
Timing.repeat.Slices for bounds[x].bounds[x]:boundsPeriod.id 0..1 string Unique id for inter-element referencing
Timing.repeat.Slices for bounds[x].bounds[x]:boundsPeriod.extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
Timing.repeat.Slices for bounds[x].bounds[x]:boundsPeriod.start This element must be supported. This element is included in summaries. C 0..1 dateTime Starting time with inclusive boundary
Timing.repeat.Slices for bounds[x].bounds[x]:boundsPeriod.end This element must be supported. This element is included in summaries. C 0..1 dateTime End time with inclusive boundary, if not ongoing
Timing.repeat.count This element is included in summaries. 0..1 positiveInt Number of times to repeat
Timing.repeat.countMax This element is included in summaries. 0..1 positiveInt Maximum number of times to repeat
Timing.repeat.duration This element is included in summaries. 0..1 decimal How long when it happens
Timing.repeat.durationMax This element is included in summaries. 0..1 decimal How long when it happens (Max)
Timing.repeat.durationUnit This element is included in summaries. 0..1 code s | min | h | d | wk | mo | a - unit of time (UCUM)
Binding: UnitsOfTime (required): A unit of time (units from UCUM).
Timing.repeat.frequency This element must be supported. This element is included in summaries. 0..1 positiveInt Ereignis tritt frequency-mal pro Zeitraum auf
Timing.repeat.frequencyMax This element must be supported. This element is included in summaries. 0..1 positiveInt Event occurs up to frequencyMax times per period
Timing.repeat.period This element must be supported. This element is included in summaries. 0..1 decimal Ereignis tritt frequency-mal pro Zeitraum auf
Timing.repeat.periodMax This element must be supported. This element is included in summaries. 0..1 decimal Upper limit of period (3-4 hours)
Timing.repeat.periodUnit This element must be supported. This element is included in summaries. 0..1 code s | min | h | d | wk | mo | a - Zeiteinheit (UCUM)
Binding: UnitsOfTime (required): A unit of time (units from UCUM).
Timing.repeat.dayOfWeek This element must be supported. This element is included in summaries. 0..* code mon | tue | wed | thu | fri | sat | sun
Binding: DaysOfWeek (required)
Timing.repeat.timeOfDay This element must be supported. This element is included in summaries. 0..* time Tageszeit für die Aktion
Timing.repeat.when This element must be supported. This element is included in summaries. 0..* code Code für den Zeitraum des Auftretens
Binding: EventTiming (required): Real world event relating to the schedule.
Timing.repeat.offset This element is included in summaries. 0..1 unsignedInt Minutes from event (before or after)
Timing.code This element is included in summaries. 0..1 CodeableConcept BID | TID | QID | AM | PM | QD | QOD | +
Binding: TimingAbbreviation (preferred): Code for a known / defined timing pattern.

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
Timing.repeat.bounds[x]:boundsDuration.​comparator Base required QuantityComparator 📍4.0.1 FHIR Std.
Timing.repeat.durationUnit Base required UnitsOfTime 📍4.0.1 FHIR Std.
Timing.repeat.periodUnit Base required UnitsOfTime 📍4.0.1 FHIR Std.
Timing.repeat.dayOfWeek Base required DaysOfWeek 📍4.0.1 FHIR Std.
Timing.repeat.when Base required EventTiming 📍4.0.1 FHIR Std.
Timing.code Base preferred TimingAbbreviation 📍4.0.1 FHIR Std.

Constraints

Id Grade Path(s) Description Expression
TimingBoundsUnitMatchesCodeWarning warning Timing.repeat boundsDuration.unit must match the UCUM boundsDuration.code (e.g. 'Woche(n)' only with code='wk'). bounds.ofType(Duration).exists().not() or ( ( bounds.ofType(Duration).code = 'd' implies ( bounds.ofType(Duration).unit = 'Tag(e)' or bounds.ofType(Duration).unit = 'Tag' or bounds.ofType(Duration).unit = 'Tage' ) ) and ( bounds.ofType(Duration).code = 'wk' implies ( bounds.ofType(Duration).unit = 'Woche(n)' or bounds.ofType(Duration).unit = 'Woche' or bounds.ofType(Duration).unit = 'Wochen' ) ) and ( bounds.ofType(Duration).code = 'mo' implies ( bounds.ofType(Duration).unit = 'Monat(e)' or bounds.ofType(Duration).unit = 'Monat' or bounds.ofType(Duration).unit = 'Monate' ) ) and ( bounds.ofType(Duration).code = 'a' implies ( bounds.ofType(Duration).unit = 'Jahr(e)' or bounds.ofType(Duration).unit = 'Jahr' or bounds.ofType(Duration).unit = 'Jahre' ) ) )
TimingFreqOrPeriodGtOneWarning warning Timing.repeat If frequency and period are given together, only one of them may exceed 1 - either the frequency including frequencyMax or the period including periodMax. A statement in which both exceed 1, such as 'six times within three hours', is hard to express in language and is not needed: the same meaning can be conveyed by adapting the period, e.g. 'every 30 minutes'. This also rules out combining a variable frequency with a variable period, such as '1 to 3 times every 2 to 3 days', because frequencyMax and periodMax are then both greater than 1. /* Detect Interval only */ ( timeOfDay.empty() and when.empty() and dayOfWeek.empty() and frequency.exists() and period.exists() ) implies ( ( (frequency > 1 or (frequencyMax.exists() and frequencyMax > 1)) implies ( period = 1 and (periodMax.empty() or periodMax = 1) ) ) and ( (period > 1 or (periodMax.exists() and periodMax > 1)) implies ( frequency = 1 and (frequencyMax.empty() or frequencyMax = 1) ) ) )
TimingSingleDosageForTimeOfDayWarning warning Timing.repeat If only timeOfDay is used (without dayOfWeek), the times should be modelled in a single Dosage element, both for daily dosing and in an interval combination. Multiple Dosage elements are only allowed if every element carries a distinct dose, including its data type. ( %resource.ofType(MedicationRequest).dosageInstruction.combine(%resource.ofType(MedicationDispense).dosageInstruction).combine(%resource.ofType(MedicationStatement).dosage) ).all( ( timing.repeat.dayOfWeek.empty() and timing.repeat.timeOfDay.exists() and timing.repeat.when.empty() ) implies ( ( ( %resource.ofType(MedicationRequest).dosageInstruction.combine(%resource.ofType(MedicationDispense).dosageInstruction).combine(%resource.ofType(MedicationStatement).dosage) ).where( timing.repeat.dayOfWeek.empty() and timing.repeat.timeOfDay.exists() and timing.repeat.when.empty() ).count() = 1 ) or ( ( %resource.ofType(MedicationRequest).dosageInstruction.combine(%resource.ofType(MedicationDispense).dosageInstruction).combine(%resource.ofType(MedicationStatement).dosage) ).where( timing.repeat.dayOfWeek.empty() and timing.repeat.timeOfDay.exists() and timing.repeat.when.empty() ).doseAndRate.dose.distinct().count() = ( %resource.ofType(MedicationRequest).dosageInstruction.combine(%resource.ofType(MedicationDispense).dosageInstruction).combine(%resource.ofType(MedicationStatement).dosage) ).where( timing.repeat.dayOfWeek.empty() and timing.repeat.timeOfDay.exists() and timing.repeat.when.empty() ).count() ) ) )
TimingSingleDosageForWhenWarning warning Timing.repeat If only when is used (without dayOfWeek), the times of day should be modelled in a single Dosage element, both for daily dosing and in an interval combination. Multiple Dosage elements are only allowed if every element carries a distinct dose, including its data type. ( %resource.ofType(MedicationRequest).dosageInstruction.combine(%resource.ofType(MedicationDispense).dosageInstruction).combine(%resource.ofType(MedicationStatement).dosage) ).all( ( timing.repeat.dayOfWeek.empty() and timing.repeat.when.exists() and timing.repeat.timeOfDay.empty() ) implies ( ( ( %resource.ofType(MedicationRequest).dosageInstruction.combine(%resource.ofType(MedicationDispense).dosageInstruction).combine(%resource.ofType(MedicationStatement).dosage) ).where( timing.repeat.dayOfWeek.empty() and timing.repeat.when.exists() and timing.repeat.timeOfDay.empty() ).count() = 1 ) or ( ( %resource.ofType(MedicationRequest).dosageInstruction.combine(%resource.ofType(MedicationDispense).dosageInstruction).combine(%resource.ofType(MedicationStatement).dosage) ).where( timing.repeat.dayOfWeek.empty() and timing.repeat.when.exists() and timing.repeat.timeOfDay.empty() ).doseAndRate.dose.distinct().count() = ( %resource.ofType(MedicationRequest).dosageInstruction.combine(%resource.ofType(MedicationDispense).dosageInstruction).combine(%resource.ofType(MedicationStatement).dosage) ).where( timing.repeat.dayOfWeek.empty() and timing.repeat.when.exists() and timing.repeat.timeOfDay.empty() ).count() ) ) )
TimingValuesPositiveWarning warning Timing.repeat period, periodMax, boundsDuration.value and boundsRange.high.value should be greater than 0; boundsRange.low.value should not be negative. (period.exists() implies period > 0) and (periodMax.exists() implies periodMax > 0) and bounds.ofType(Duration).value.all($this > 0) and bounds.ofType(Range).low.value.all($this >= 0) and bounds.ofType(Range).high.value.all($this > 0)
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 Timing.repeat if there's a duration, there needs to be duration units duration.empty() or durationUnit.exists()
tim-2 error Timing.repeat if there's a period, there needs to be period units period.empty() or periodUnit.exists()
tim-4 error Timing.repeat duration SHALL be a non-negative value duration.exists() implies duration >= 0
tim-5 error Timing.repeat period SHALL be a non-negative value period.exists() implies period >= 0
tim-6 error Timing.repeat If there's a periodMax, there must be a period periodMax.empty() or period.exists()
tim-7 error Timing.repeat If there's a durationMax, there must be a duration durationMax.empty() or duration.exists()
tim-8 error Timing.repeat If there's a countMax, there must be a count countMax.empty() or count.exists()
tim-9 error 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 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 Timing

Summary

Must-Support: 18 elements
Fixed: 1 element

Slices

This structure defines the following Slices:

  • The element 1 is sliced based on the value of Timing.repeat.bounds[x]

 

Other representations of profile: CSV, Excel, Schematron