description: Base StructureDefinition for Timing Type package_name: hl7.fhir.r2b.core derivation: specialization name: Timing type: null elements: event: isModifier: false short: When the event occurs index: 0 type: dateTime mustSupport: false array: true maxLength: 0 base: {max: '*', min: 0, path: Timing.event} isSummary: true repeat: constraint: tim-3: {human: 'Either frequency or when can exist, not both', severity: error, expression: ((period.exists() or frequency.exists()) and when.exists()).not()} tim-1: {human: 'if there''s a duration, there needs to be duration units', severity: error, expression: duration.empty() or durationUnit.exists()} tim-2: {human: 'if there''s a period, there needs to be period units', severity: error, expression: period.empty() or periodUnit.exists()} tim-9: {human: 'If there''s an offset, there must be a when', severity: error, expression: offset.empty() or when.exists()} tim-6: {human: 'If there''s a periodMax, there must be a period', severity: error, expression: periodMax.empty() or period.exists()} tim-8: {human: 'If there''s a countMax, there must be a count', severity: error, expression: countMax.empty() or count.exists()} tim-7: {human: 'If there''s a durationMax, there must be a duration', severity: error, expression: durationMax.empty() or duration.exists()} isModifier: false short: When the event is to occur index: 1 type: Element mustSupport: false elements: boundsRange: isModifier: false short: Length/Range of lengths, or (Start and/or end) limits index: 5 type: Range mustSupport: false maxLength: 0 base: {max: '1', min: 0, path: 'Timing.repeat.bounds[x]'} choiceOf: bounds isSummary: true frequencyMax: isModifier: false short: Event occurs up to frequencyMax times per period type: integer mustSupport: false maxLength: 0 base: {max: '1', min: 0, path: Timing.repeat.frequencyMax} isSummary: true index: 13 boundsPeriod: isModifier: false short: Length/Range of lengths, or (Start and/or end) limits index: 6 type: Period mustSupport: false maxLength: 0 base: {max: '1', min: 0, path: 'Timing.repeat.bounds[x]'} choiceOf: bounds isSummary: true when: isModifier: false short: Regular life events the event is tied to type: code mustSupport: false maxLength: 0 base: {max: '1', min: 0, path: Timing.repeat.when} isSummary: true index: 17 offset: isModifier: false short: Minutes from event (before or after) type: unsignedInt mustSupport: false maxLength: 0 base: {max: '1', min: 0, path: Timing.repeat.offset} isSummary: true index: 18 periodUnit: isModifier: false short: s | min | h | d | wk | mo | a - unit of time (UCUM) type: code mustSupport: false maxLength: 0 base: {max: '1', min: 0, path: Timing.repeat.periodUnit} isSummary: true index: 16 frequency: isModifier: false short: Event occurs frequency times per period index: 12 type: integer mustSupport: false maxLength: 0 base: {max: '1', min: 0, path: Timing.repeat.frequency} defaultValueInteger: 1 isSummary: true durationMax: isModifier: false short: How long when it happens (Max) index: 10 comments: For some events the duration is part of the definition of the event (e.g. IV infusions, where the duration is implicit in the specified quantity and rate). For others, it's part of the timing specification (e.g. exercise). type: decimal mustSupport: false maxLength: 0 base: {max: '1', min: 0, path: Timing.repeat.durationMax} isSummary: true duration: constraint: tim-4: {human: duration SHALL be a non-negative value, severity: error, expression: duration.exists() implies duration >= 0} tim-5: {human: period SHALL be a non-negative value, severity: error, expression: period.exists() implies period >= 0} isModifier: false short: How long when it happens index: 9 comments: For some events the duration is part of the definition of the event (e.g. IV infusions, where the duration is implicit in the specified quantity and rate). For others, it's part of the timing specification (e.g. exercise). type: decimal mustSupport: false maxLength: 0 base: {max: '1', min: 0, path: Timing.repeat.duration} isSummary: true boundsQuantity: isModifier: false short: Length/Range of lengths, or (Start and/or end) limits index: 4 type: Quantity mustSupport: false maxLength: 0 base: {max: '1', min: 0, path: 'Timing.repeat.bounds[x]'} choiceOf: bounds isSummary: true bounds: isModifier: false short: Length/Range of lengths, or (Start and/or end) limits mustSupport: false choices: [boundsQuantity, boundsRange, boundsPeriod] maxLength: 0 base: {max: '1', min: 0, path: 'Timing.repeat.bounds[x]'} isSummary: true index: 3 durationUnit: isModifier: false short: s | min | h | d | wk | mo | a - unit of time (UCUM) type: code mustSupport: false maxLength: 0 base: {max: '1', min: 0, path: Timing.repeat.durationUnit} isSummary: true index: 11 count: isModifier: false short: Number of times to repeat index: 7 comments: If you have both bounds and count, then this should be understood as within the bounds period, until count times happens. type: integer mustSupport: false maxLength: 0 base: {max: '1', min: 0, path: Timing.repeat.count} isSummary: true periodMax: isModifier: false short: Upper limit of period (3-4 hours) type: decimal mustSupport: false maxLength: 0 base: {max: '1', min: 0, path: Timing.repeat.periodMax} isSummary: true index: 15 period: constraint: tim-5: {human: period SHALL be a non-negative value, severity: error, expression: period.exists() implies period >= 0} isModifier: false short: Event occurs frequency times per period index: 14 type: decimal mustSupport: false maxLength: 0 base: {max: '1', min: 0, path: Timing.repeat.period} isSummary: true countMax: isModifier: false short: Maximum number of times to repeat type: integer mustSupport: false maxLength: 0 base: {max: '1', min: 0, path: Timing.repeat.countMax} isSummary: true index: 8 maxLength: 0 base: {max: '1', min: 0, path: Timing.repeat} isSummary: true code: isModifier: false short: QD | QOD | Q4H | Q6H | BID | TID | QID | AM | PM + index: 19 comments: BID etc are defined as 'at institutionally specified times'. For example, an institution may choose that BID is "always at 7am and 6pm". If it is inappropriate for this choice to be made, the code BID should not be used. Instead, a distinct organization-specific code should be used in place of the HL7-defined BID code and/or the a structured representation should be used (in this case, specifying the two event times). type: CodeableConcept mustSupport: false maxLength: 0 base: {max: '1', min: 0, path: Timing.code} isSummary: true package_version: 1.4.0 class: datatype kind: datatype url: http://hl7.org/fhir/StructureDefinition/Timing base: http://hl7.org/fhir/StructureDefinition/Element version: null