Healthcare Financial Services IG Edition 1
0.3.0 - ci-build Saudi Arabia flag

Healthcare Financial Services IG Edition 1 - Local Development build (v0.3.0) built by the FHIR (HL7® FHIR® Standard) Build Tools. See the Directory of published versions

Data Type Profile: DP_Timing

Official URL: http://nphies.sa/fhir/ksa/nphies-fs/StructureDefinition/DP-Timing Version: 0.3.0
Draft as of 2025-06-23 Computable Name: DP_Timing

Timing datatype requiring boundsPeriod, duration, durationUnit and periodUnit.

Usage:

Formal Views of Profile Content

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

This structure is derived from Timing

NameFlagsCard.TypeDescription & Constraintsdoco
.. Timing Timing
... repeat 1..1 Element When the event is to occur
.... Slices for bounds[x] 1..1 Period Length/Range of lengths, or (Start and/or end) limits
Slice: Unordered, Open by type:$this
..... bounds[x]:boundsPeriod 1..1 DP_Period_3 Length/Range of lengths, or (Start and/or end) limits
.... count S 0..1 DP_positiveInt Number of times to repeat
.... duration 1..1 DP_decimal How long when it happens
.... durationUnit 1..1 DP_code s | min | h | d | wk | mo | a - unit of time (UCUM)
.... frequency S 0..1 DP_positiveInt Event occurs frequency times per period
.... period S 0..1 DP_decimal Event occurs frequency times per period
.... periodUnit 1..1 DP_code s | min | h | d | wk | mo | a - unit of time (UCUM)
... code S 0..1 DP_CodeableConcept BID | TID | QID | AM | PM | QD | QOD | +
Binding: TimingAbbreviation (required)

doco Documentation for this format

Terminology Bindings (Differential)

PathConformanceValueSetURI
Timing.coderequiredTimingAbbreviation
http://hl7.org/fhir/ValueSet/timing-abbreviation
from the FHIR Standard
NameFlagsCard.TypeDescription & Constraintsdoco
.. Timing 0..* Timing A timing schedule that specifies an event that may occur multiple times
ele-1: All FHIR elements must have a @value or children
... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
ele-1: All FHIR elements must have a @value or children
ext-1: Must have either extensions or value[x], not both
... repeat ΣC 1..1 Element When the event is to occur
ele-1: All FHIR elements must have a @value or children
tim-1: if there's a duration, there needs to be duration units
tim-2: if there's a period, there needs to be period units
tim-4: duration SHALL be a non-negative value
tim-5: period SHALL be a non-negative value
tim-6: If there's a periodMax, there must be a period
tim-7: If there's a durationMax, there must be a duration
tim-8: If there's a countMax, there must be a count
tim-9: If there's an offset, there must be a when (and not C, CM, CD, CV)
tim-10: If there's a timeOfDay, there cannot be a when, or vice versa
.... Slices for bounds[x] Σ 1..1 Period Length/Range of lengths, or (Start and/or end) limits
Slice: Unordered, Closed by type:$this
ele-1: All FHIR elements must have a @value or children
..... bounds[x]:boundsPeriod Σ 1..1 DP_Period_3 Length/Range of lengths, or (Start and/or end) limits
ele-1: All FHIR elements must have a @value or children
.... count SΣ 0..1 DP_positiveInt Number of times to repeat
ele-1: All FHIR elements must have a @value or children
.... duration Σ 1..1 DP_decimal How long when it happens
ele-1: All FHIR elements must have a @value or children
.... durationUnit Σ 1..1 DP_code s | min | h | d | wk | mo | a - unit of time (UCUM)
Binding: UnitsOfTime (required): A unit of time (units from UCUM).


ele-1: All FHIR elements must have a @value or children
.... frequency SΣ 0..1 DP_positiveInt Event occurs frequency times per period
ele-1: All FHIR elements must have a @value or children
.... period SΣ 0..1 DP_decimal Event occurs frequency times per period
ele-1: All FHIR elements must have a @value or children
.... periodUnit Σ 1..1 DP_code s | min | h | d | wk | mo | a - unit of time (UCUM)
Binding: UnitsOfTime (required): A unit of time (units from UCUM).


ele-1: All FHIR elements must have a @value or children
... code SΣ 0..1 DP_CodeableConcept BID | TID | QID | AM | PM | QD | QOD | +
Binding: TimingAbbreviation (required)
ele-1: All FHIR elements must have a @value or children

doco Documentation for this format

Terminology Bindings

PathConformanceValueSetURI
Timing.repeat.durationUnitrequiredUnitsOfTime
http://hl7.org/fhir/ValueSet/units-of-time|4.0.1
from the FHIR Standard
Timing.repeat.periodUnitrequiredUnitsOfTime
http://hl7.org/fhir/ValueSet/units-of-time|4.0.1
from the FHIR Standard
Timing.coderequiredTimingAbbreviation
http://hl7.org/fhir/ValueSet/timing-abbreviation
from the FHIR Standard

Constraints

IdGradePath(s)DetailsRequirements
ele-1error**ALL** elementsAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1error**ALL** extensionsMust have either extensions or value[x], not both
: extension.exists() != value.exists()
tim-1errorTiming.repeatif there's a duration, there needs to be duration units
: duration.empty() or durationUnit.exists()
tim-2errorTiming.repeatif there's a period, there needs to be period units
: period.empty() or periodUnit.exists()
tim-4errorTiming.repeatduration SHALL be a non-negative value
: duration.exists() implies duration >= 0
tim-5errorTiming.repeatperiod SHALL be a non-negative value
: period.exists() implies period >= 0
tim-6errorTiming.repeatIf there's a periodMax, there must be a period
: periodMax.empty() or period.exists()
tim-7errorTiming.repeatIf there's a durationMax, there must be a duration
: durationMax.empty() or duration.exists()
tim-8errorTiming.repeatIf there's a countMax, there must be a count
: countMax.empty() or count.exists()
tim-9errorTiming.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-10errorTiming.repeatIf there's a timeOfDay, there cannot be a when, or vice versa
: timeOfDay.empty() or when.empty()
NameFlagsCard.TypeDescription & Constraintsdoco
.. 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 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
... repeat ΣC 1..1 Element When the event is to occur
tim-1: if there's a duration, there needs to be duration units
tim-2: if there's a period, there needs to be period units
tim-4: duration SHALL be a non-negative value
tim-5: period SHALL be a non-negative value
tim-6: If there's a periodMax, there must be a period
tim-7: If there's a durationMax, there must be a duration
tim-8: If there's a countMax, there must be a count
tim-9: If there's an offset, there must be a when (and not C, CM, CD, CV)
tim-10: If there's a timeOfDay, there cannot be a when, or vice versa
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
.... Slices for bounds[x] Σ 1..1 Period Length/Range of lengths, or (Start and/or end) limits
Slice: Unordered, Closed by type:$this
..... bounds[x]:boundsPeriod Σ 1..1 DP_Period_3 Length/Range of lengths, or (Start and/or end) limits
.... count SΣ 0..1 DP_positiveInt Number of times to repeat
.... countMax Σ 0..1 positiveInt Maximum number of times to repeat
.... duration Σ 1..1 DP_decimal How long when it happens
.... durationMax Σ 0..1 decimal How long when it happens (Max)
.... durationUnit Σ 1..1 DP_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 DP_positiveInt Event occurs frequency times per period
.... frequencyMax Σ 0..1 positiveInt Event occurs up to frequencyMax times per period
.... period SΣ 0..1 DP_decimal Event occurs frequency times per period
.... periodMax Σ 0..1 decimal Upper limit of period (3-4 hours)
.... periodUnit Σ 1..1 DP_code s | min | h | d | wk | mo | a - unit of time (UCUM)
Binding: UnitsOfTime (required): A unit of time (units from UCUM).

.... dayOfWeek Σ 0..* code mon | tue | wed | thu | fri | sat | sun
Binding: DaysOfWeek (required)
.... timeOfDay Σ 0..* time Time of day for action
.... when Σ 0..* code Code for time period of occurrence
Binding: EventTiming (required): Real world event relating to the schedule.


.... offset Σ 0..1 unsignedInt Minutes from event (before or after)
... code SΣ 0..1 DP_CodeableConcept BID | TID | QID | AM | PM | QD | QOD | +
Binding: TimingAbbreviation (required)

doco Documentation for this format

Terminology Bindings

PathConformanceValueSetURI
Timing.repeat.durationUnitrequiredUnitsOfTime
http://hl7.org/fhir/ValueSet/units-of-time|4.0.1
from the FHIR Standard
Timing.repeat.periodUnitrequiredUnitsOfTime
http://hl7.org/fhir/ValueSet/units-of-time|4.0.1
from the FHIR Standard
Timing.repeat.dayOfWeekrequiredDaysOfWeek
http://hl7.org/fhir/ValueSet/days-of-week|4.0.1
from the FHIR Standard
Timing.repeat.whenrequiredEventTiming
http://hl7.org/fhir/ValueSet/event-timing|4.0.1
from the FHIR Standard
Timing.coderequiredTimingAbbreviation
http://hl7.org/fhir/ValueSet/timing-abbreviation
from the FHIR Standard

Constraints

IdGradePath(s)DetailsRequirements
ele-1error**ALL** elementsAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1error**ALL** extensionsMust have either extensions or value[x], not both
: extension.exists() != value.exists()
tim-1errorTiming.repeatif there's a duration, there needs to be duration units
: duration.empty() or durationUnit.exists()
tim-2errorTiming.repeatif there's a period, there needs to be period units
: period.empty() or periodUnit.exists()
tim-4errorTiming.repeatduration SHALL be a non-negative value
: duration.exists() implies duration >= 0
tim-5errorTiming.repeatperiod SHALL be a non-negative value
: period.exists() implies period >= 0
tim-6errorTiming.repeatIf there's a periodMax, there must be a period
: periodMax.empty() or period.exists()
tim-7errorTiming.repeatIf there's a durationMax, there must be a duration
: durationMax.empty() or duration.exists()
tim-8errorTiming.repeatIf there's a countMax, there must be a count
: countMax.empty() or count.exists()
tim-9errorTiming.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-10errorTiming.repeatIf 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 & Constraintsdoco
.. Timing Timing
... repeat 1..1 Element When the event is to occur
.... Slices for bounds[x] 1..1 Period Length/Range of lengths, or (Start and/or end) limits
Slice: Unordered, Open by type:$this
..... bounds[x]:boundsPeriod 1..1 DP_Period_3 Length/Range of lengths, or (Start and/or end) limits
.... count S 0..1 DP_positiveInt Number of times to repeat
.... duration 1..1 DP_decimal How long when it happens
.... durationUnit 1..1 DP_code s | min | h | d | wk | mo | a - unit of time (UCUM)
.... frequency S 0..1 DP_positiveInt Event occurs frequency times per period
.... period S 0..1 DP_decimal Event occurs frequency times per period
.... periodUnit 1..1 DP_code s | min | h | d | wk | mo | a - unit of time (UCUM)
... code S 0..1 DP_CodeableConcept BID | TID | QID | AM | PM | QD | QOD | +
Binding: TimingAbbreviation (required)

doco Documentation for this format

Terminology Bindings (Differential)

PathConformanceValueSetURI
Timing.coderequiredTimingAbbreviation
http://hl7.org/fhir/ValueSet/timing-abbreviation
from the FHIR Standard

Key Elements View

NameFlagsCard.TypeDescription & Constraintsdoco
.. Timing 0..* Timing A timing schedule that specifies an event that may occur multiple times
ele-1: All FHIR elements must have a @value or children
... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
ele-1: All FHIR elements must have a @value or children
ext-1: Must have either extensions or value[x], not both
... repeat ΣC 1..1 Element When the event is to occur
ele-1: All FHIR elements must have a @value or children
tim-1: if there's a duration, there needs to be duration units
tim-2: if there's a period, there needs to be period units
tim-4: duration SHALL be a non-negative value
tim-5: period SHALL be a non-negative value
tim-6: If there's a periodMax, there must be a period
tim-7: If there's a durationMax, there must be a duration
tim-8: If there's a countMax, there must be a count
tim-9: If there's an offset, there must be a when (and not C, CM, CD, CV)
tim-10: If there's a timeOfDay, there cannot be a when, or vice versa
.... Slices for bounds[x] Σ 1..1 Period Length/Range of lengths, or (Start and/or end) limits
Slice: Unordered, Closed by type:$this
ele-1: All FHIR elements must have a @value or children
..... bounds[x]:boundsPeriod Σ 1..1 DP_Period_3 Length/Range of lengths, or (Start and/or end) limits
ele-1: All FHIR elements must have a @value or children
.... count SΣ 0..1 DP_positiveInt Number of times to repeat
ele-1: All FHIR elements must have a @value or children
.... duration Σ 1..1 DP_decimal How long when it happens
ele-1: All FHIR elements must have a @value or children
.... durationUnit Σ 1..1 DP_code s | min | h | d | wk | mo | a - unit of time (UCUM)
Binding: UnitsOfTime (required): A unit of time (units from UCUM).


ele-1: All FHIR elements must have a @value or children
.... frequency SΣ 0..1 DP_positiveInt Event occurs frequency times per period
ele-1: All FHIR elements must have a @value or children
.... period SΣ 0..1 DP_decimal Event occurs frequency times per period
ele-1: All FHIR elements must have a @value or children
.... periodUnit Σ 1..1 DP_code s | min | h | d | wk | mo | a - unit of time (UCUM)
Binding: UnitsOfTime (required): A unit of time (units from UCUM).


ele-1: All FHIR elements must have a @value or children
... code SΣ 0..1 DP_CodeableConcept BID | TID | QID | AM | PM | QD | QOD | +
Binding: TimingAbbreviation (required)
ele-1: All FHIR elements must have a @value or children

doco Documentation for this format

Terminology Bindings

PathConformanceValueSetURI
Timing.repeat.durationUnitrequiredUnitsOfTime
http://hl7.org/fhir/ValueSet/units-of-time|4.0.1
from the FHIR Standard
Timing.repeat.periodUnitrequiredUnitsOfTime
http://hl7.org/fhir/ValueSet/units-of-time|4.0.1
from the FHIR Standard
Timing.coderequiredTimingAbbreviation
http://hl7.org/fhir/ValueSet/timing-abbreviation
from the FHIR Standard

Constraints

IdGradePath(s)DetailsRequirements
ele-1error**ALL** elementsAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1error**ALL** extensionsMust have either extensions or value[x], not both
: extension.exists() != value.exists()
tim-1errorTiming.repeatif there's a duration, there needs to be duration units
: duration.empty() or durationUnit.exists()
tim-2errorTiming.repeatif there's a period, there needs to be period units
: period.empty() or periodUnit.exists()
tim-4errorTiming.repeatduration SHALL be a non-negative value
: duration.exists() implies duration >= 0
tim-5errorTiming.repeatperiod SHALL be a non-negative value
: period.exists() implies period >= 0
tim-6errorTiming.repeatIf there's a periodMax, there must be a period
: periodMax.empty() or period.exists()
tim-7errorTiming.repeatIf there's a durationMax, there must be a duration
: durationMax.empty() or duration.exists()
tim-8errorTiming.repeatIf there's a countMax, there must be a count
: countMax.empty() or count.exists()
tim-9errorTiming.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-10errorTiming.repeatIf there's a timeOfDay, there cannot be a when, or vice versa
: timeOfDay.empty() or when.empty()

Snapshot View

NameFlagsCard.TypeDescription & Constraintsdoco
.. 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 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
... repeat ΣC 1..1 Element When the event is to occur
tim-1: if there's a duration, there needs to be duration units
tim-2: if there's a period, there needs to be period units
tim-4: duration SHALL be a non-negative value
tim-5: period SHALL be a non-negative value
tim-6: If there's a periodMax, there must be a period
tim-7: If there's a durationMax, there must be a duration
tim-8: If there's a countMax, there must be a count
tim-9: If there's an offset, there must be a when (and not C, CM, CD, CV)
tim-10: If there's a timeOfDay, there cannot be a when, or vice versa
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
.... Slices for bounds[x] Σ 1..1 Period Length/Range of lengths, or (Start and/or end) limits
Slice: Unordered, Closed by type:$this
..... bounds[x]:boundsPeriod Σ 1..1 DP_Period_3 Length/Range of lengths, or (Start and/or end) limits
.... count SΣ 0..1 DP_positiveInt Number of times to repeat
.... countMax Σ 0..1 positiveInt Maximum number of times to repeat
.... duration Σ 1..1 DP_decimal How long when it happens
.... durationMax Σ 0..1 decimal How long when it happens (Max)
.... durationUnit Σ 1..1 DP_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 DP_positiveInt Event occurs frequency times per period
.... frequencyMax Σ 0..1 positiveInt Event occurs up to frequencyMax times per period
.... period SΣ 0..1 DP_decimal Event occurs frequency times per period
.... periodMax Σ 0..1 decimal Upper limit of period (3-4 hours)
.... periodUnit Σ 1..1 DP_code s | min | h | d | wk | mo | a - unit of time (UCUM)
Binding: UnitsOfTime (required): A unit of time (units from UCUM).

.... dayOfWeek Σ 0..* code mon | tue | wed | thu | fri | sat | sun
Binding: DaysOfWeek (required)
.... timeOfDay Σ 0..* time Time of day for action
.... when Σ 0..* code Code for time period of occurrence
Binding: EventTiming (required): Real world event relating to the schedule.


.... offset Σ 0..1 unsignedInt Minutes from event (before or after)
... code SΣ 0..1 DP_CodeableConcept BID | TID | QID | AM | PM | QD | QOD | +
Binding: TimingAbbreviation (required)

doco Documentation for this format

Terminology Bindings

PathConformanceValueSetURI
Timing.repeat.durationUnitrequiredUnitsOfTime
http://hl7.org/fhir/ValueSet/units-of-time|4.0.1
from the FHIR Standard
Timing.repeat.periodUnitrequiredUnitsOfTime
http://hl7.org/fhir/ValueSet/units-of-time|4.0.1
from the FHIR Standard
Timing.repeat.dayOfWeekrequiredDaysOfWeek
http://hl7.org/fhir/ValueSet/days-of-week|4.0.1
from the FHIR Standard
Timing.repeat.whenrequiredEventTiming
http://hl7.org/fhir/ValueSet/event-timing|4.0.1
from the FHIR Standard
Timing.coderequiredTimingAbbreviation
http://hl7.org/fhir/ValueSet/timing-abbreviation
from the FHIR Standard

Constraints

IdGradePath(s)DetailsRequirements
ele-1error**ALL** elementsAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1error**ALL** extensionsMust have either extensions or value[x], not both
: extension.exists() != value.exists()
tim-1errorTiming.repeatif there's a duration, there needs to be duration units
: duration.empty() or durationUnit.exists()
tim-2errorTiming.repeatif there's a period, there needs to be period units
: period.empty() or periodUnit.exists()
tim-4errorTiming.repeatduration SHALL be a non-negative value
: duration.exists() implies duration >= 0
tim-5errorTiming.repeatperiod SHALL be a non-negative value
: period.exists() implies period >= 0
tim-6errorTiming.repeatIf there's a periodMax, there must be a period
: periodMax.empty() or period.exists()
tim-7errorTiming.repeatIf there's a durationMax, there must be a duration
: durationMax.empty() or duration.exists()
tim-8errorTiming.repeatIf there's a countMax, there must be a count
: countMax.empty() or count.exists()
tim-9errorTiming.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-10errorTiming.repeatIf there's a timeOfDay, there cannot be a when, or vice versa
: timeOfDay.empty() or when.empty()

 

Other representations of profile: CSV, Excel, Schematron