Standard Health Record FHIR Implementation Guide

SHR Timing Profile

 

The official URL for this profile is:

http://standardhealthrecord.org/fhir/StructureDefinition/shr-core-Timing

A timing schedule that specifies an event that may occur multiple times. Timing offers a choice of multiple OccurrenceTime (used is used to specify specific times), or recurrence patterns.

This profile builds on Timing.

This profile was published on Wed Dec 20 00:00:00 EST 2017 as a draft by The MITRE Corporation: Standard Health Record Collaborative.

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

Summary

Prohibited: 1 element

Extensions

This structure refers to these extensions:

SHR Mapping Source

This structure represents the following SHR mapping definition:

shr.core.Timing maps to Timing:
  OccurrenceTime maps to event
  TimingCode maps to code
  EventDuration.DurationRange.LowerBound maps to repeat.duration
  EventDuration.DurationRange.UpperBound maps to repeat.durationMax
  EventDuration.DurationRange.LowerBound.Quantity.Units.Coding.code maps to repeat.durationUnit
  RecurrencePattern.RecurrenceInterval.Duration maps to repeat.period
  constrain repeat.periodMax to 0..0
  RecurrencePattern.RecurrenceInterval.Duration.Units.Coding.code maps to repeat.periodUnit
  RecurrencePattern.DayOfWeek maps to repeat.dayOfWeek
  RecurrencePattern.TimeOfDay maps to repeat.timeOfDay
  RecurrencePattern.DailyLifeEvent maps to repeat.when
  RecurrencePattern.LifeEventOffset maps to repeat.offset
  RecurrencePattern.CountPerInterval.MinCount maps to repeat.frequency
  RecurrencePattern.CountPerInterval.MaxCount maps to repeat.frequencyMax

NameFlagsCard.TypeDescription & Constraintsdoco
.. Timing SHR Timing Profile
... repeat
.... periodMax 0..0
... code Binding: TimingAbbreviation (extensible)
... shr-core-RecurrenceRange-extension 0..1(Complex)SHR RecurrenceRange Extension
URL: http://standardhealthrecord.org/fhir/StructureDefinition/shr-core-RecurrenceRange-extension
Slice: Unordered, Open by value:url

doco Documentation for this format
NameFlagsCard.TypeDescription & Constraintsdoco
.. Timing I0..*SHR Timing Profile
... id 0..1stringxml:id (or equivalent in JSON)
... shr-core-RecurrenceRange-extension 0..1(Complex)SHR RecurrenceRange Extension
URL: http://standardhealthrecord.org/fhir/StructureDefinition/shr-core-RecurrenceRange-extension
Slice: Unordered, Open by value:url
... event Σ0..*dateTimeWhen the event occurs
... repeat ΣI0..1ElementWhen the event is to occur
tim-9: If there's an offset, there must be a when (and not C, CM, CD, CV)
tim-5: period SHALL be a non-negative value
tim-6: If there's a periodMax, there must be a period
tim-7: If there's a durationMax, there must be a duration
tim-8: If there's a countMax, there must be a count
tim-1: if there's a duration, there needs to be duration units
tim-10: If there's a timeOfDay, there cannot be be a when, or vice versa
tim-2: if there's a period, there needs to be period units
tim-4: duration SHALL be a non-negative value
.... id 0..1stringxml:id (or equivalent in JSON)
.... bounds[x] Σ0..1Duration, Range, PeriodLength/Range of lengths, or (Start and/or end) limits
.... count Σ0..1integerNumber of times to repeat
.... countMax Σ0..1integerMaximum number of times to repeat
.... duration Σ0..1decimalHow long when it happens
.... durationMax Σ0..1decimalHow long when it happens (Max)
.... durationUnit Σ0..1codes | min | h | d | wk | mo | a - unit of time (UCUM)
Binding: UnitsOfTime (required)
.... frequency Σ0..1integerEvent occurs frequency times per period
.... frequencyMax Σ0..1integerEvent occurs up to frequencyMax times per period
.... period Σ0..1decimalEvent occurs frequency times per period
.... periodUnit Σ0..1codes | min | h | d | wk | mo | a - unit of time (UCUM)
Binding: UnitsOfTime (required)
.... dayOfWeek Σ0..*codemon | tue | wed | thu | fri | sat | sun
Binding: DaysOfWeek (required)
.... timeOfDay Σ0..*timeTime of day for action
.... when Σ0..*codeRegular life events the event is tied to
Binding: EventTiming (required)
.... offset Σ0..1unsignedIntMinutes from event (before or after)
... code Σ0..1CodeableConceptBID | TID | QID | AM | PM | QD | QOD | Q4H | Q6H +
Binding: TimingAbbreviation (extensible)

doco Documentation for this format

Summary

Prohibited: 1 element

Extensions

This structure refers to these extensions:

SHR Mapping Source

This structure represents the following SHR mapping definition:

shr.core.Timing maps to Timing:
  OccurrenceTime maps to event
  TimingCode maps to code
  EventDuration.DurationRange.LowerBound maps to repeat.duration
  EventDuration.DurationRange.UpperBound maps to repeat.durationMax
  EventDuration.DurationRange.LowerBound.Quantity.Units.Coding.code maps to repeat.durationUnit
  RecurrencePattern.RecurrenceInterval.Duration maps to repeat.period
  constrain repeat.periodMax to 0..0
  RecurrencePattern.RecurrenceInterval.Duration.Units.Coding.code maps to repeat.periodUnit
  RecurrencePattern.DayOfWeek maps to repeat.dayOfWeek
  RecurrencePattern.TimeOfDay maps to repeat.timeOfDay
  RecurrencePattern.DailyLifeEvent maps to repeat.when
  RecurrencePattern.LifeEventOffset maps to repeat.offset
  RecurrencePattern.CountPerInterval.MinCount maps to repeat.frequency
  RecurrencePattern.CountPerInterval.MaxCount maps to repeat.frequencyMax

Differential View

NameFlagsCard.TypeDescription & Constraintsdoco
.. Timing SHR Timing Profile
... repeat
.... periodMax 0..0
... code Binding: TimingAbbreviation (extensible)
... shr-core-RecurrenceRange-extension 0..1(Complex)SHR RecurrenceRange Extension
URL: http://standardhealthrecord.org/fhir/StructureDefinition/shr-core-RecurrenceRange-extension
Slice: Unordered, Open by value:url

doco Documentation for this format

Snapshot View

NameFlagsCard.TypeDescription & Constraintsdoco
.. Timing I0..*SHR Timing Profile
... id 0..1stringxml:id (or equivalent in JSON)
... shr-core-RecurrenceRange-extension 0..1(Complex)SHR RecurrenceRange Extension
URL: http://standardhealthrecord.org/fhir/StructureDefinition/shr-core-RecurrenceRange-extension
Slice: Unordered, Open by value:url
... event Σ0..*dateTimeWhen the event occurs
... repeat ΣI0..1ElementWhen the event is to occur
tim-9: If there's an offset, there must be a when (and not C, CM, CD, CV)
tim-5: period SHALL be a non-negative value
tim-6: If there's a periodMax, there must be a period
tim-7: If there's a durationMax, there must be a duration
tim-8: If there's a countMax, there must be a count
tim-1: if there's a duration, there needs to be duration units
tim-10: If there's a timeOfDay, there cannot be be a when, or vice versa
tim-2: if there's a period, there needs to be period units
tim-4: duration SHALL be a non-negative value
.... id 0..1stringxml:id (or equivalent in JSON)
.... bounds[x] Σ0..1Duration, Range, PeriodLength/Range of lengths, or (Start and/or end) limits
.... count Σ0..1integerNumber of times to repeat
.... countMax Σ0..1integerMaximum number of times to repeat
.... duration Σ0..1decimalHow long when it happens
.... durationMax Σ0..1decimalHow long when it happens (Max)
.... durationUnit Σ0..1codes | min | h | d | wk | mo | a - unit of time (UCUM)
Binding: UnitsOfTime (required)
.... frequency Σ0..1integerEvent occurs frequency times per period
.... frequencyMax Σ0..1integerEvent occurs up to frequencyMax times per period
.... period Σ0..1decimalEvent occurs frequency times per period
.... periodUnit Σ0..1codes | min | h | d | wk | mo | a - unit of time (UCUM)
Binding: UnitsOfTime (required)
.... dayOfWeek Σ0..*codemon | tue | wed | thu | fri | sat | sun
Binding: DaysOfWeek (required)
.... timeOfDay Σ0..*timeTime of day for action
.... when Σ0..*codeRegular life events the event is tied to
Binding: EventTiming (required)
.... offset Σ0..1unsignedIntMinutes from event (before or after)
... code Σ0..1CodeableConceptBID | TID | QID | AM | PM | QD | QOD | Q4H | Q6H +
Binding: TimingAbbreviation (extensible)

doco Documentation for this format

Downloads: StructureDefinition: (XML, JSON, TTL), Schema: XML Schematron

 

Terminology Bindings

PathNameConformanceValueSet
Timing.repeat.durationUnitUnitsOfTimerequiredUnitsOfTime
Timing.repeat.periodUnitUnitsOfTimerequiredUnitsOfTime
Timing.repeat.dayOfWeekDaysOfWeekrequiredDaysOfWeek
Timing.repeat.whenEventTimingrequiredEventTiming
Timing.codeTimingAbbreviationextensibleTimingAbbreviation

 

Constraints

IdPathDetailsRequirements
ele-1TimingAll FHIR elements must have a @value or children
: hasValue() | (children().count() > id.count())
ele-1Timing.repeatAll FHIR elements must have a @value or children
: hasValue() | (children().count() > id.count())
tim-9Timing.repeatIf there's an offset, there must be a when (and not C, CM, CD, CV)
: offset.empty() or (when.exists() and ((when in ('C' | 'CM' | 'CD' | 'CV')).not()))
tim-5Timing.repeatperiod SHALL be a non-negative value
: period.exists() implies period >= 0
tim-6Timing.repeatIf there's a periodMax, there must be a period
: periodMax.empty() or period.exists()
tim-7Timing.repeatIf there's a durationMax, there must be a duration
: durationMax.empty() or duration.exists()
tim-8Timing.repeatIf there's a countMax, there must be a count
: countMax.empty() or count.exists()
tim-1Timing.repeatif there's a duration, there needs to be duration units
: duration.empty() or durationUnit.exists()
tim-10Timing.repeatIf there's a timeOfDay, there cannot be be a when, or vice versa
: timeOfDay.empty() or when.empty()
tim-2Timing.repeatif there's a period, there needs to be period units
: period.empty() or periodUnit.exists()
tim-4Timing.repeatduration SHALL be a non-negative value
: duration.exists() implies duration >= 0