Medication IG DE
1.0.1 - STU1

Medication IG DE - Downloaded Version 1.0.1 See the Directory of published versions

## Data Type Profile: Timing DE

Official URL: http://ig.fhir.de/igs/medication/StructureDefinition/TimingDE | Version: 1.0.1
Active as of 2025-10-20 | 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.

Usages:

- Derived from this DataType Profile: Timing dgMP
- Use this DataType Profile: Dosage DE

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.

- Key Elements Table
- Differential Table
- Snapshot Table
- Statistics/References
- All

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Timing |  | 0..* | Timing | A timing schedule that specifies an event that may occur multiple times
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
repeat | S Σ C | 0..1 | Element | Wann das Ereignis stattfinden soll Constraints: tim-9, tim-5, tim-6, tim-7, tim-8, tim-1, tim-10, tim-2, tim-4, TimingSingleDosageForTimeOfDay, TimingSingleDosageForWhen, TimingBoundsUnitMatchesCode
Slices for bounds[x] | S Σ | 0..1 |  | Länge/Bereich der Längen oder (Start- und/oder End-)Grenzen Slice: Unordered, Open by type:$this
boundsDuration |  |  | Duration |
boundsRange |  |  | Range |
boundsPeriod |  |  | Period |
bounds[x]:boundsDuration | S Σ | 0..1 | Duration | Dauer der Dosieranweisung ausgedrückt in UCUM-Einheiten
value | S Σ | 0..1 | decimal | Numerical value (with implicit precision)
comparator | ?!Σ | 0..1 | code | < | <= | >= | > - how to understand the value Binding: QuantityComparator (required): How the Quantity should be understood and represented.
unit | S Σ | 0..1 | string | Unit representation
system | S Σ C | 0..1 | uri | UCUM-Einheit für die Dauer Fixed Value: http://unitsofmeasure.org
code | S Σ | 0..1 | code | Coded form of the unit
frequency | S Σ | 0..1 | positiveInt | Ereignis tritt frequency-mal pro Zeitraum auf
period | S Σ | 0..1 | decimal | Ereignis tritt frequency-mal pro Zeitraum auf
periodUnit | S Σ | 0..1 | code | s | min | h | d | wk | mo | a - Zeiteinheit (UCUM) Binding: UnitsOfTime (required): A unit of time (units from UCUM).
dayOfWeek | S Σ | 0..* | code | mon | tue | wed | thu | fri | sat | sun Binding: DaysOfWeek (required)
timeOfDay | S Σ | 0..* | time | Tageszeit für die Aktion
when | S Σ | 0..* | code | Code für den Zeitraum des Auftretens Binding: EventTiming (required): Real world event relating to the schedule.
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
TimingBoundsUnitMatchesCode | error | Timing.repeat | boundsDuration.unit muss zur UCUM boundsDuration.code passen (z. B. 'Woche(n)' nur mit 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' ) ) )`
TimingSingleDosageForTimeOfDay | error | Timing.repeat | Wenn nur timeOfDay verwendet wird und täglich dosiert wird, ist die Angabe in einem einzigen Dosage-Element zu modellieren. Mehrere Dosage-Elemente sind nur zulässig, wenn sich die Dosis (Wert) unterscheidet. | `( %resource.ofType(MedicationRequest).dosageInstruction | %resource.ofType(MedicationDispense).dosageInstruction | %resource.ofType(MedicationStatement).dosage ).all( ( timing.repeat.dayOfWeek.empty() and timing.repeat.timeOfDay.exists() and timing.repeat.when.empty() and (timing.repeat.period.exists() and timing.repeat.period = 1) and (timing.repeat.periodUnit.exists() and timing.repeat.periodUnit = 'd') ) implies ( ( ( %resource.ofType(MedicationRequest).dosageInstruction | %resource.ofType(MedicationDispense).dosageInstruction | %resource.ofType(MedicationStatement).dosage ).where( timing.repeat.dayOfWeek.empty() and timing.repeat.timeOfDay.exists() and timing.repeat.when.empty() and (timing.repeat.period.exists() and timing.repeat.period = 1) and (timing.repeat.periodUnit.exists() and timing.repeat.periodUnit = 'd') ).count() = 1 ) or ( ( %resource.ofType(MedicationRequest).dosageInstruction | %resource.ofType(MedicationDispense).dosageInstruction | %resource.ofType(MedicationStatement).dosage ).where( timing.repeat.dayOfWeek.empty() and timing.repeat.timeOfDay.exists() and timing.repeat.when.empty() and (timing.repeat.period.exists() and timing.repeat.period = 1) and (timing.repeat.periodUnit.exists() and timing.repeat.periodUnit = 'd') ).doseAndRate.dose.ofType(Quantity).value.distinct().count() > 1 ) ) )`
TimingSingleDosageForWhen | error | Timing.repeat | Wenn nur when verwendet wird und täglich dosiert wird, ist die Angabe in einem einzigen Dosage-Element zu modellieren. Mehrere Dosage-Elemente sind nur zulässig, wenn sich die Dosis (Wert) unterscheidet. | `( %resource.ofType(MedicationRequest).dosageInstruction | %resource.ofType(MedicationDispense).dosageInstruction | %resource.ofType(MedicationStatement).dosage ).all( ( timing.repeat.dayOfWeek.empty() and timing.repeat.when.exists() and timing.repeat.timeOfDay.empty() and (timing.repeat.period.exists() and timing.repeat.period = 1) and (timing.repeat.periodUnit.exists() and timing.repeat.periodUnit = 'd') ) implies ( ( ( %resource.ofType(MedicationRequest).dosageInstruction | %resource.ofType(MedicationDispense).dosageInstruction | %resource.ofType(MedicationStatement).dosage ).where( timing.repeat.dayOfWeek.empty() and timing.repeat.when.exists() and timing.repeat.timeOfDay.empty() and (timing.repeat.period.exists() and timing.repeat.period = 1) and (timing.repeat.periodUnit.exists() and timing.repeat.periodUnit = 'd') ).count() = 1 ) or ( ( %resource.ofType(MedicationRequest).dosageInstruction | %resource.ofType(MedicationDispense).dosageInstruction | %resource.ofType(MedicationStatement).dosage ).where( timing.repeat.dayOfWeek.empty() and timing.repeat.when.exists() and timing.repeat.timeOfDay.empty() and (timing.repeat.period.exists() and timing.repeat.period = 1) and (timing.repeat.periodUnit.exists() and timing.repeat.periodUnit = 'd') ).doseAndRate.dose.ofType(Quantity).value.distinct().count() > 1 ) ) )`
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

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Timing |  |  | Timing |
repeat | S C | 0..1 | Element | Wann das Ereignis stattfinden soll Constraints: TimingSingleDosageForTimeOfDay, TimingSingleDosageForWhen, TimingBoundsUnitMatchesCode
Slices for bounds[x] | S | 0..1 | Duration, Range, Period | Länge/Bereich der Längen oder (Start- und/oder End-)Grenzen Slice: Unordered, Open by type:$this
bounds[x]:boundsDuration | S | 0..1 | Duration | Dauer der Dosieranweisung ausgedrückt in UCUM-Einheiten
value | S | 0..1 | decimal | Numerical value (with implicit precision)
unit | S | 0..1 | string | Unit representation
system | S | 0..1 | uri | UCUM-Einheit für die Dauer Fixed Value: http://unitsofmeasure.org
code | S | 0..1 | code | Coded form of the unit
frequency | S | 0..1 | positiveInt | Ereignis tritt frequency-mal pro Zeitraum auf
period | S | 0..1 | decimal | Ereignis tritt frequency-mal pro Zeitraum auf
periodUnit | S | 0..1 | code | s | min | h | d | wk | mo | a - Zeiteinheit (UCUM)
dayOfWeek | S | 0..* | code | mon | tue | wed | thu | fri | sat | sun
timeOfDay | S | 0..* | time | Tageszeit für die Aktion
when | S | 0..* | code | Code für den Zeitraum des Auftretens
Documentation for this format

#### Constraints

Id | Grade | Path(s) | Description | Expression
TimingBoundsUnitMatchesCode | error | Timing.repeat | boundsDuration.unit muss zur UCUM boundsDuration.code passen (z. B. 'Woche(n)' nur mit 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' ) ) )`
TimingSingleDosageForTimeOfDay | error | Timing.repeat | Wenn nur timeOfDay verwendet wird und täglich dosiert wird, ist die Angabe in einem einzigen Dosage-Element zu modellieren. Mehrere Dosage-Elemente sind nur zulässig, wenn sich die Dosis (Wert) unterscheidet. | `( %resource.ofType(MedicationRequest).dosageInstruction | %resource.ofType(MedicationDispense).dosageInstruction | %resource.ofType(MedicationStatement).dosage ).all( ( timing.repeat.dayOfWeek.empty() and timing.repeat.timeOfDay.exists() and timing.repeat.when.empty() and (timing.repeat.period.exists() and timing.repeat.period = 1) and (timing.repeat.periodUnit.exists() and timing.repeat.periodUnit = 'd') ) implies ( ( ( %resource.ofType(MedicationRequest).dosageInstruction | %resource.ofType(MedicationDispense).dosageInstruction | %resource.ofType(MedicationStatement).dosage ).where( timing.repeat.dayOfWeek.empty() and timing.repeat.timeOfDay.exists() and timing.repeat.when.empty() and (timing.repeat.period.exists() and timing.repeat.period = 1) and (timing.repeat.periodUnit.exists() and timing.repeat.periodUnit = 'd') ).count() = 1 ) or ( ( %resource.ofType(MedicationRequest).dosageInstruction | %resource.ofType(MedicationDispense).dosageInstruction | %resource.ofType(MedicationStatement).dosage ).where( timing.repeat.dayOfWeek.empty() and timing.repeat.timeOfDay.exists() and timing.repeat.when.empty() and (timing.repeat.period.exists() and timing.repeat.period = 1) and (timing.repeat.periodUnit.exists() and timing.repeat.periodUnit = 'd') ).doseAndRate.dose.ofType(Quantity).value.distinct().count() > 1 ) ) )`
TimingSingleDosageForWhen | error | Timing.repeat | Wenn nur when verwendet wird und täglich dosiert wird, ist die Angabe in einem einzigen Dosage-Element zu modellieren. Mehrere Dosage-Elemente sind nur zulässig, wenn sich die Dosis (Wert) unterscheidet. | `( %resource.ofType(MedicationRequest).dosageInstruction | %resource.ofType(MedicationDispense).dosageInstruction | %resource.ofType(MedicationStatement).dosage ).all( ( timing.repeat.dayOfWeek.empty() and timing.repeat.when.exists() and timing.repeat.timeOfDay.empty() and (timing.repeat.period.exists() and timing.repeat.period = 1) and (timing.repeat.periodUnit.exists() and timing.repeat.periodUnit = 'd') ) implies ( ( ( %resource.ofType(MedicationRequest).dosageInstruction | %resource.ofType(MedicationDispense).dosageInstruction | %resource.ofType(MedicationStatement).dosage ).where( timing.repeat.dayOfWeek.empty() and timing.repeat.when.exists() and timing.repeat.timeOfDay.empty() and (timing.repeat.period.exists() and timing.repeat.period = 1) and (timing.repeat.periodUnit.exists() and timing.repeat.periodUnit = 'd') ).count() = 1 ) or ( ( %resource.ofType(MedicationRequest).dosageInstruction | %resource.ofType(MedicationDispense).dosageInstruction | %resource.ofType(MedicationStatement).dosage ).where( timing.repeat.dayOfWeek.empty() and timing.repeat.when.exists() and timing.repeat.timeOfDay.empty() and (timing.repeat.period.exists() and timing.repeat.period = 1) and (timing.repeat.periodUnit.exists() and timing.repeat.periodUnit = 'd') ).doseAndRate.dose.ofType(Quantity).value.distinct().count() > 1 ) ) )`

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Timing |  | 0..* | Timing | A timing schedule that specifies an event that may occur multiple times
id |  | 0..1 | string | Unique id for inter-element referencing
extension | N | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
event | Σ | 0..* | dateTime | When the event occurs
repeat | S Σ C | 0..1 | Element | Wann das Ereignis stattfinden soll Constraints: tim-9, tim-5, tim-6, tim-7, tim-8, tim-1, tim-10, tim-2, tim-4, TimingSingleDosageForTimeOfDay, TimingSingleDosageForWhen, TimingBoundsUnitMatchesCode
id |  | 0..1 | string | Unique id for inter-element referencing
extension | N | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url
Slices for bounds[x] | S Σ | 0..1 |  | Länge/Bereich der Längen oder (Start- und/oder End-)Grenzen Slice: Unordered, Open by type:$this
boundsDuration |  |  | Duration |
boundsRange |  |  | Range |
boundsPeriod |  |  | Period |
bounds[x]:boundsDuration | S Σ | 0..1 | Duration | Dauer der Dosieranweisung ausgedrückt in UCUM-Einheiten
id |  | 0..1 | string | Unique id for inter-element referencing
extension | N | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url
value | S Σ | 0..1 | decimal | Numerical value (with implicit precision)
comparator | ?!Σ | 0..1 | code | < | <= | >= | > - how to understand the value Binding: QuantityComparator (required): How the Quantity should be understood and represented.
unit | S Σ | 0..1 | string | Unit representation
system | S Σ C | 0..1 | uri | UCUM-Einheit für die Dauer Fixed Value: http://unitsofmeasure.org
code | S Σ | 0..1 | code | Coded form of the unit
count | Σ | 0..1 | positiveInt | Number of times to repeat
countMax | Σ | 0..1 | positiveInt | Maximum number of times to repeat
duration | Σ | 0..1 | decimal | How long when it happens
durationMax | Σ | 0..1 | decimal | How long when it happens (Max)
durationUnit | Σ | 0..1 | code | s | min | h | d | wk | mo | a - unit of time (UCUM) Binding: UnitsOfTime (required): A unit of time (units from UCUM).
frequency | S Σ | 0..1 | positiveInt | Ereignis tritt frequency-mal pro Zeitraum auf
frequencyMax | Σ | 0..1 | positiveInt | Event occurs up to frequencyMax times per period
period | S Σ | 0..1 | decimal | Ereignis tritt frequency-mal pro Zeitraum auf
periodMax | Σ | 0..1 | decimal | Upper limit of period (3-4 hours)
periodUnit | S Σ | 0..1 | code | s | min | h | d | wk | mo | a - Zeiteinheit (UCUM) Binding: UnitsOfTime (required): A unit of time (units from UCUM).
dayOfWeek | S Σ | 0..* | code | mon | tue | wed | thu | fri | sat | sun Binding: DaysOfWeek (required)
timeOfDay | S Σ | 0..* | time | Tageszeit für die Aktion
when | S Σ | 0..* | code | Code für den Zeitraum des Auftretens Binding: EventTiming (required): Real world event relating to the schedule.
offset | Σ | 0..1 | unsignedInt | Minutes from event (before or after)
code | Σ | 0..1 | CodeableConcept | BID | TID | QID | AM | PM | QD | QOD | + Binding: TimingAbbreviation (preferred): Code for a known / defined timing pattern.
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
TimingBoundsUnitMatchesCode | error | Timing.repeat | boundsDuration.unit muss zur UCUM boundsDuration.code passen (z. B. 'Woche(n)' nur mit 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' ) ) )`
TimingSingleDosageForTimeOfDay | error | Timing.repeat | Wenn nur timeOfDay verwendet wird und täglich dosiert wird, ist die Angabe in einem einzigen Dosage-Element zu modellieren. Mehrere Dosage-Elemente sind nur zulässig, wenn sich die Dosis (Wert) unterscheidet. | `( %resource.ofType(MedicationRequest).dosageInstruction | %resource.ofType(MedicationDispense).dosageInstruction | %resource.ofType(MedicationStatement).dosage ).all( ( timing.repeat.dayOfWeek.empty() and timing.repeat.timeOfDay.exists() and timing.repeat.when.empty() and (timing.repeat.period.exists() and timing.repeat.period = 1) and (timing.repeat.periodUnit.exists() and timing.repeat.periodUnit = 'd') ) implies ( ( ( %resource.ofType(MedicationRequest).dosageInstruction | %resource.ofType(MedicationDispense).dosageInstruction | %resource.ofType(MedicationStatement).dosage ).where( timing.repeat.dayOfWeek.empty() and timing.repeat.timeOfDay.exists() and timing.repeat.when.empty() and (timing.repeat.period.exists() and timing.repeat.period = 1) and (timing.repeat.periodUnit.exists() and timing.repeat.periodUnit = 'd') ).count() = 1 ) or ( ( %resource.ofType(MedicationRequest).dosageInstruction | %resource.ofType(MedicationDispense).dosageInstruction | %resource.ofType(MedicationStatement).dosage ).where( timing.repeat.dayOfWeek.empty() and timing.repeat.timeOfDay.exists() and timing.repeat.when.empty() and (timing.repeat.period.exists() and timing.repeat.period = 1) and (timing.repeat.periodUnit.exists() and timing.repeat.periodUnit = 'd') ).doseAndRate.dose.ofType(Quantity).value.distinct().count() > 1 ) ) )`
TimingSingleDosageForWhen | error | Timing.repeat | Wenn nur when verwendet wird und täglich dosiert wird, ist die Angabe in einem einzigen Dosage-Element zu modellieren. Mehrere Dosage-Elemente sind nur zulässig, wenn sich die Dosis (Wert) unterscheidet. | `( %resource.ofType(MedicationRequest).dosageInstruction | %resource.ofType(MedicationDispense).dosageInstruction | %resource.ofType(MedicationStatement).dosage ).all( ( timing.repeat.dayOfWeek.empty() and timing.repeat.when.exists() and timing.repeat.timeOfDay.empty() and (timing.repeat.period.exists() and timing.repeat.period = 1) and (timing.repeat.periodUnit.exists() and timing.repeat.periodUnit = 'd') ) implies ( ( ( %resource.ofType(MedicationRequest).dosageInstruction | %resource.ofType(MedicationDispense).dosageInstruction | %resource.ofType(MedicationStatement).dosage ).where( timing.repeat.dayOfWeek.empty() and timing.repeat.when.exists() and timing.repeat.timeOfDay.empty() and (timing.repeat.period.exists() and timing.repeat.period = 1) and (timing.repeat.periodUnit.exists() and timing.repeat.periodUnit = 'd') ).count() = 1 ) or ( ( %resource.ofType(MedicationRequest).dosageInstruction | %resource.ofType(MedicationDispense).dosageInstruction | %resource.ofType(MedicationStatement).dosage ).where( timing.repeat.dayOfWeek.empty() and timing.repeat.when.exists() and timing.repeat.timeOfDay.empty() and (timing.repeat.period.exists() and timing.repeat.period = 1) and (timing.repeat.periodUnit.exists() and timing.repeat.periodUnit = 'd') ).doseAndRate.dose.ofType(Quantity).value.distinct().count() > 1 ) ) )`
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: 13 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

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Timing |  | 0..* | Timing | A timing schedule that specifies an event that may occur multiple times
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
repeat | S Σ C | 0..1 | Element | Wann das Ereignis stattfinden soll Constraints: tim-9, tim-5, tim-6, tim-7, tim-8, tim-1, tim-10, tim-2, tim-4, TimingSingleDosageForTimeOfDay, TimingSingleDosageForWhen, TimingBoundsUnitMatchesCode
Slices for bounds[x] | S Σ | 0..1 |  | Länge/Bereich der Längen oder (Start- und/oder End-)Grenzen Slice: Unordered, Open by type:$this
boundsDuration |  |  | Duration |
boundsRange |  |  | Range |
boundsPeriod |  |  | Period |
bounds[x]:boundsDuration | S Σ | 0..1 | Duration | Dauer der Dosieranweisung ausgedrückt in UCUM-Einheiten
value | S Σ | 0..1 | decimal | Numerical value (with implicit precision)
comparator | ?!Σ | 0..1 | code | < | <= | >= | > - how to understand the value Binding: QuantityComparator (required): How the Quantity should be understood and represented.
unit | S Σ | 0..1 | string | Unit representation
system | S Σ C | 0..1 | uri | UCUM-Einheit für die Dauer Fixed Value: http://unitsofmeasure.org
code | S Σ | 0..1 | code | Coded form of the unit
frequency | S Σ | 0..1 | positiveInt | Ereignis tritt frequency-mal pro Zeitraum auf
period | S Σ | 0..1 | decimal | Ereignis tritt frequency-mal pro Zeitraum auf
periodUnit | S Σ | 0..1 | code | s | min | h | d | wk | mo | a - Zeiteinheit (UCUM) Binding: UnitsOfTime (required): A unit of time (units from UCUM).
dayOfWeek | S Σ | 0..* | code | mon | tue | wed | thu | fri | sat | sun Binding: DaysOfWeek (required)
timeOfDay | S Σ | 0..* | time | Tageszeit für die Aktion
when | S Σ | 0..* | code | Code für den Zeitraum des Auftretens Binding: EventTiming (required): Real world event relating to the schedule.
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
TimingBoundsUnitMatchesCode | error | Timing.repeat | boundsDuration.unit muss zur UCUM boundsDuration.code passen (z. B. 'Woche(n)' nur mit 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' ) ) )`
TimingSingleDosageForTimeOfDay | error | Timing.repeat | Wenn nur timeOfDay verwendet wird und täglich dosiert wird, ist die Angabe in einem einzigen Dosage-Element zu modellieren. Mehrere Dosage-Elemente sind nur zulässig, wenn sich die Dosis (Wert) unterscheidet. | `( %resource.ofType(MedicationRequest).dosageInstruction | %resource.ofType(MedicationDispense).dosageInstruction | %resource.ofType(MedicationStatement).dosage ).all( ( timing.repeat.dayOfWeek.empty() and timing.repeat.timeOfDay.exists() and timing.repeat.when.empty() and (timing.repeat.period.exists() and timing.repeat.period = 1) and (timing.repeat.periodUnit.exists() and timing.repeat.periodUnit = 'd') ) implies ( ( ( %resource.ofType(MedicationRequest).dosageInstruction | %resource.ofType(MedicationDispense).dosageInstruction | %resource.ofType(MedicationStatement).dosage ).where( timing.repeat.dayOfWeek.empty() and timing.repeat.timeOfDay.exists() and timing.repeat.when.empty() and (timing.repeat.period.exists() and timing.repeat.period = 1) and (timing.repeat.periodUnit.exists() and timing.repeat.periodUnit = 'd') ).count() = 1 ) or ( ( %resource.ofType(MedicationRequest).dosageInstruction | %resource.ofType(MedicationDispense).dosageInstruction | %resource.ofType(MedicationStatement).dosage ).where( timing.repeat.dayOfWeek.empty() and timing.repeat.timeOfDay.exists() and timing.repeat.when.empty() and (timing.repeat.period.exists() and timing.repeat.period = 1) and (timing.repeat.periodUnit.exists() and timing.repeat.periodUnit = 'd') ).doseAndRate.dose.ofType(Quantity).value.distinct().count() > 1 ) ) )`
TimingSingleDosageForWhen | error | Timing.repeat | Wenn nur when verwendet wird und täglich dosiert wird, ist die Angabe in einem einzigen Dosage-Element zu modellieren. Mehrere Dosage-Elemente sind nur zulässig, wenn sich die Dosis (Wert) unterscheidet. | `( %resource.ofType(MedicationRequest).dosageInstruction | %resource.ofType(MedicationDispense).dosageInstruction | %resource.ofType(MedicationStatement).dosage ).all( ( timing.repeat.dayOfWeek.empty() and timing.repeat.when.exists() and timing.repeat.timeOfDay.empty() and (timing.repeat.period.exists() and timing.repeat.period = 1) and (timing.repeat.periodUnit.exists() and timing.repeat.periodUnit = 'd') ) implies ( ( ( %resource.ofType(MedicationRequest).dosageInstruction | %resource.ofType(MedicationDispense).dosageInstruction | %resource.ofType(MedicationStatement).dosage ).where( timing.repeat.dayOfWeek.empty() and timing.repeat.when.exists() and timing.repeat.timeOfDay.empty() and (timing.repeat.period.exists() and timing.repeat.period = 1) and (timing.repeat.periodUnit.exists() and timing.repeat.periodUnit = 'd') ).count() = 1 ) or ( ( %resource.ofType(MedicationRequest).dosageInstruction | %resource.ofType(MedicationDispense).dosageInstruction | %resource.ofType(MedicationStatement).dosage ).where( timing.repeat.dayOfWeek.empty() and timing.repeat.when.exists() and timing.repeat.timeOfDay.empty() and (timing.repeat.period.exists() and timing.repeat.period = 1) and (timing.repeat.periodUnit.exists() and timing.repeat.periodUnit = 'd') ).doseAndRate.dose.ofType(Quantity).value.distinct().count() > 1 ) ) )`
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

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Timing |  |  | Timing |
repeat | S C | 0..1 | Element | Wann das Ereignis stattfinden soll Constraints: TimingSingleDosageForTimeOfDay, TimingSingleDosageForWhen, TimingBoundsUnitMatchesCode
Slices for bounds[x] | S | 0..1 | Duration, Range, Period | Länge/Bereich der Längen oder (Start- und/oder End-)Grenzen Slice: Unordered, Open by type:$this
bounds[x]:boundsDuration | S | 0..1 | Duration | Dauer der Dosieranweisung ausgedrückt in UCUM-Einheiten
value | S | 0..1 | decimal | Numerical value (with implicit precision)
unit | S | 0..1 | string | Unit representation
system | S | 0..1 | uri | UCUM-Einheit für die Dauer Fixed Value: http://unitsofmeasure.org
code | S | 0..1 | code | Coded form of the unit
frequency | S | 0..1 | positiveInt | Ereignis tritt frequency-mal pro Zeitraum auf
period | S | 0..1 | decimal | Ereignis tritt frequency-mal pro Zeitraum auf
periodUnit | S | 0..1 | code | s | min | h | d | wk | mo | a - Zeiteinheit (UCUM)
dayOfWeek | S | 0..* | code | mon | tue | wed | thu | fri | sat | sun
timeOfDay | S | 0..* | time | Tageszeit für die Aktion
when | S | 0..* | code | Code für den Zeitraum des Auftretens
Documentation for this format

#### Constraints

Id | Grade | Path(s) | Description | Expression
TimingBoundsUnitMatchesCode | error | Timing.repeat | boundsDuration.unit muss zur UCUM boundsDuration.code passen (z. B. 'Woche(n)' nur mit 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' ) ) )`
TimingSingleDosageForTimeOfDay | error | Timing.repeat | Wenn nur timeOfDay verwendet wird und täglich dosiert wird, ist die Angabe in einem einzigen Dosage-Element zu modellieren. Mehrere Dosage-Elemente sind nur zulässig, wenn sich die Dosis (Wert) unterscheidet. | `( %resource.ofType(MedicationRequest).dosageInstruction | %resource.ofType(MedicationDispense).dosageInstruction | %resource.ofType(MedicationStatement).dosage ).all( ( timing.repeat.dayOfWeek.empty() and timing.repeat.timeOfDay.exists() and timing.repeat.when.empty() and (timing.repeat.period.exists() and timing.repeat.period = 1) and (timing.repeat.periodUnit.exists() and timing.repeat.periodUnit = 'd') ) implies ( ( ( %resource.ofType(MedicationRequest).dosageInstruction | %resource.ofType(MedicationDispense).dosageInstruction | %resource.ofType(MedicationStatement).dosage ).where( timing.repeat.dayOfWeek.empty() and timing.repeat.timeOfDay.exists() and timing.repeat.when.empty() and (timing.repeat.period.exists() and timing.repeat.period = 1) and (timing.repeat.periodUnit.exists() and timing.repeat.periodUnit = 'd') ).count() = 1 ) or ( ( %resource.ofType(MedicationRequest).dosageInstruction | %resource.ofType(MedicationDispense).dosageInstruction | %resource.ofType(MedicationStatement).dosage ).where( timing.repeat.dayOfWeek.empty() and timing.repeat.timeOfDay.exists() and timing.repeat.when.empty() and (timing.repeat.period.exists() and timing.repeat.period = 1) and (timing.repeat.periodUnit.exists() and timing.repeat.periodUnit = 'd') ).doseAndRate.dose.ofType(Quantity).value.distinct().count() > 1 ) ) )`
TimingSingleDosageForWhen | error | Timing.repeat | Wenn nur when verwendet wird und täglich dosiert wird, ist die Angabe in einem einzigen Dosage-Element zu modellieren. Mehrere Dosage-Elemente sind nur zulässig, wenn sich die Dosis (Wert) unterscheidet. | `( %resource.ofType(MedicationRequest).dosageInstruction | %resource.ofType(MedicationDispense).dosageInstruction | %resource.ofType(MedicationStatement).dosage ).all( ( timing.repeat.dayOfWeek.empty() and timing.repeat.when.exists() and timing.repeat.timeOfDay.empty() and (timing.repeat.period.exists() and timing.repeat.period = 1) and (timing.repeat.periodUnit.exists() and timing.repeat.periodUnit = 'd') ) implies ( ( ( %resource.ofType(MedicationRequest).dosageInstruction | %resource.ofType(MedicationDispense).dosageInstruction | %resource.ofType(MedicationStatement).dosage ).where( timing.repeat.dayOfWeek.empty() and timing.repeat.when.exists() and timing.repeat.timeOfDay.empty() and (timing.repeat.period.exists() and timing.repeat.period = 1) and (timing.repeat.periodUnit.exists() and timing.repeat.periodUnit = 'd') ).count() = 1 ) or ( ( %resource.ofType(MedicationRequest).dosageInstruction | %resource.ofType(MedicationDispense).dosageInstruction | %resource.ofType(MedicationStatement).dosage ).where( timing.repeat.dayOfWeek.empty() and timing.repeat.when.exists() and timing.repeat.timeOfDay.empty() and (timing.repeat.period.exists() and timing.repeat.period = 1) and (timing.repeat.periodUnit.exists() and timing.repeat.periodUnit = 'd') ).doseAndRate.dose.ofType(Quantity).value.distinct().count() > 1 ) ) )`

Snapshot View

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Timing |  | 0..* | Timing | A timing schedule that specifies an event that may occur multiple times
id |  | 0..1 | string | Unique id for inter-element referencing
extension | N | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
event | Σ | 0..* | dateTime | When the event occurs
repeat | S Σ C | 0..1 | Element | Wann das Ereignis stattfinden soll Constraints: tim-9, tim-5, tim-6, tim-7, tim-8, tim-1, tim-10, tim-2, tim-4, TimingSingleDosageForTimeOfDay, TimingSingleDosageForWhen, TimingBoundsUnitMatchesCode
id |  | 0..1 | string | Unique id for inter-element referencing
extension | N | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url
Slices for bounds[x] | S Σ | 0..1 |  | Länge/Bereich der Längen oder (Start- und/oder End-)Grenzen Slice: Unordered, Open by type:$this
boundsDuration |  |  | Duration |
boundsRange |  |  | Range |
boundsPeriod |  |  | Period |
bounds[x]:boundsDuration | S Σ | 0..1 | Duration | Dauer der Dosieranweisung ausgedrückt in UCUM-Einheiten
id |  | 0..1 | string | Unique id for inter-element referencing
extension | N | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url
value | S Σ | 0..1 | decimal | Numerical value (with implicit precision)
comparator | ?!Σ | 0..1 | code | < | <= | >= | > - how to understand the value Binding: QuantityComparator (required): How the Quantity should be understood and represented.
unit | S Σ | 0..1 | string | Unit representation
system | S Σ C | 0..1 | uri | UCUM-Einheit für die Dauer Fixed Value: http://unitsofmeasure.org
code | S Σ | 0..1 | code | Coded form of the unit
count | Σ | 0..1 | positiveInt | Number of times to repeat
countMax | Σ | 0..1 | positiveInt | Maximum number of times to repeat
duration | Σ | 0..1 | decimal | How long when it happens
durationMax | Σ | 0..1 | decimal | How long when it happens (Max)
durationUnit | Σ | 0..1 | code | s | min | h | d | wk | mo | a - unit of time (UCUM) Binding: UnitsOfTime (required): A unit of time (units from UCUM).
frequency | S Σ | 0..1 | positiveInt | Ereignis tritt frequency-mal pro Zeitraum auf
frequencyMax | Σ | 0..1 | positiveInt | Event occurs up to frequencyMax times per period
period | S Σ | 0..1 | decimal | Ereignis tritt frequency-mal pro Zeitraum auf
periodMax | Σ | 0..1 | decimal | Upper limit of period (3-4 hours)
periodUnit | S Σ | 0..1 | code | s | min | h | d | wk | mo | a - Zeiteinheit (UCUM) Binding: UnitsOfTime (required): A unit of time (units from UCUM).
dayOfWeek | S Σ | 0..* | code | mon | tue | wed | thu | fri | sat | sun Binding: DaysOfWeek (required)
timeOfDay | S Σ | 0..* | time | Tageszeit für die Aktion
when | S Σ | 0..* | code | Code für den Zeitraum des Auftretens Binding: EventTiming (required): Real world event relating to the schedule.
offset | Σ | 0..1 | unsignedInt | Minutes from event (before or after)
code | Σ | 0..1 | CodeableConcept | BID | TID | QID | AM | PM | QD | QOD | + Binding: TimingAbbreviation (preferred): Code for a known / defined timing pattern.
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
TimingBoundsUnitMatchesCode | error | Timing.repeat | boundsDuration.unit muss zur UCUM boundsDuration.code passen (z. B. 'Woche(n)' nur mit 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' ) ) )`
TimingSingleDosageForTimeOfDay | error | Timing.repeat | Wenn nur timeOfDay verwendet wird und täglich dosiert wird, ist die Angabe in einem einzigen Dosage-Element zu modellieren. Mehrere Dosage-Elemente sind nur zulässig, wenn sich die Dosis (Wert) unterscheidet. | `( %resource.ofType(MedicationRequest).dosageInstruction | %resource.ofType(MedicationDispense).dosageInstruction | %resource.ofType(MedicationStatement).dosage ).all( ( timing.repeat.dayOfWeek.empty() and timing.repeat.timeOfDay.exists() and timing.repeat.when.empty() and (timing.repeat.period.exists() and timing.repeat.period = 1) and (timing.repeat.periodUnit.exists() and timing.repeat.periodUnit = 'd') ) implies ( ( ( %resource.ofType(MedicationRequest).dosageInstruction | %resource.ofType(MedicationDispense).dosageInstruction | %resource.ofType(MedicationStatement).dosage ).where( timing.repeat.dayOfWeek.empty() and timing.repeat.timeOfDay.exists() and timing.repeat.when.empty() and (timing.repeat.period.exists() and timing.repeat.period = 1) and (timing.repeat.periodUnit.exists() and timing.repeat.periodUnit = 'd') ).count() = 1 ) or ( ( %resource.ofType(MedicationRequest).dosageInstruction | %resource.ofType(MedicationDispense).dosageInstruction | %resource.ofType(MedicationStatement).dosage ).where( timing.repeat.dayOfWeek.empty() and timing.repeat.timeOfDay.exists() and timing.repeat.when.empty() and (timing.repeat.period.exists() and timing.repeat.period = 1) and (timing.repeat.periodUnit.exists() and timing.repeat.periodUnit = 'd') ).doseAndRate.dose.ofType(Quantity).value.distinct().count() > 1 ) ) )`
TimingSingleDosageForWhen | error | Timing.repeat | Wenn nur when verwendet wird und täglich dosiert wird, ist die Angabe in einem einzigen Dosage-Element zu modellieren. Mehrere Dosage-Elemente sind nur zulässig, wenn sich die Dosis (Wert) unterscheidet. | `( %resource.ofType(MedicationRequest).dosageInstruction | %resource.ofType(MedicationDispense).dosageInstruction | %resource.ofType(MedicationStatement).dosage ).all( ( timing.repeat.dayOfWeek.empty() and timing.repeat.when.exists() and timing.repeat.timeOfDay.empty() and (timing.repeat.period.exists() and timing.repeat.period = 1) and (timing.repeat.periodUnit.exists() and timing.repeat.periodUnit = 'd') ) implies ( ( ( %resource.ofType(MedicationRequest).dosageInstruction | %resource.ofType(MedicationDispense).dosageInstruction | %resource.ofType(MedicationStatement).dosage ).where( timing.repeat.dayOfWeek.empty() and timing.repeat.when.exists() and timing.repeat.timeOfDay.empty() and (timing.repeat.period.exists() and timing.repeat.period = 1) and (timing.repeat.periodUnit.exists() and timing.repeat.periodUnit = 'd') ).count() = 1 ) or ( ( %resource.ofType(MedicationRequest).dosageInstruction | %resource.ofType(MedicationDispense).dosageInstruction | %resource.ofType(MedicationStatement).dosage ).where( timing.repeat.dayOfWeek.empty() and timing.repeat.when.exists() and timing.repeat.timeOfDay.empty() and (timing.repeat.period.exists() and timing.repeat.period = 1) and (timing.repeat.periodUnit.exists() and timing.repeat.periodUnit = 'd') ).doseAndRate.dose.ofType(Quantity).value.distinct().count() > 1 ) ) )`
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: 13 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