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_Period_4

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

Period datatype which constrains the start and end to complete dates. Only end is required.

Usage:

  • This DataType Constraint is not used by any profiles in this Implementation Guide

Formal Views of Profile Content

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

This structure is derived from Period

NameFlagsCard.TypeDescription & Constraintsdoco
.. Period 0..* Period Time range defined by start and end date/time
... start SC 0..1 dateTime Starting time with inclusive boundary
ksa-date-1: Must provide a complete date YYYY-MM-DD
... end C 1..1 dateTime End time with inclusive boundary, if not ongoing
ksa-date-1: Must provide a complete date YYYY-MM-DD

doco Documentation for this format

Constraints

IdGradePath(s)DetailsRequirements
ksa-date-1errorPeriod.start, Period.endMust provide a complete date YYYY-MM-DD
: toString().matches('([0-9][0-9][0-9][0-9])-(1[0-2]|0[1-9])-(3[01]|[12][0-9]|0[1-9])')
NameFlagsCard.TypeDescription & Constraintsdoco
.. Period C 0..* Period Time range defined by start and end date/time
ele-1: All FHIR elements must have a @value or children
per-1: If present, start SHALL have a lower value than end
... start SΣC 0..1 dateTime Starting time with inclusive boundary
ele-1: All FHIR elements must have a @value or children
ksa-date-1: Must provide a complete date YYYY-MM-DD
... end ΣC 1..1 dateTime End time with inclusive boundary, if not ongoing
ele-1: All FHIR elements must have a @value or children
ksa-date-1: Must provide a complete date YYYY-MM-DD

doco Documentation for this format

Constraints

IdGradePath(s)DetailsRequirements
ele-1error**ALL** elementsAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ksa-date-1errorPeriod.start, Period.endMust provide a complete date YYYY-MM-DD
: toString().matches('([0-9][0-9][0-9][0-9])-(1[0-2]|0[1-9])-(3[01]|[12][0-9]|0[1-9])')
per-1errorPeriodIf present, start SHALL have a lower value than end
: start.hasValue().not() or end.hasValue().not() or (start <= end)
NameFlagsCard.TypeDescription & Constraintsdoco
.. Period C 0..* Period Time range defined by start and end date/time
per-1: If present, start SHALL have a lower value than end
... id 0..1 string Unique id for inter-element referencing
... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
... start SΣC 0..1 dateTime Starting time with inclusive boundary
ksa-date-1: Must provide a complete date YYYY-MM-DD

doco Documentation for this format

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()
ksa-date-1errorPeriod.start, Period.endMust provide a complete date YYYY-MM-DD
: toString().matches('([0-9][0-9][0-9][0-9])-(1[0-2]|0[1-9])-(3[01]|[12][0-9]|0[1-9])')
per-1errorPeriodIf present, start SHALL have a lower value than end
: start.hasValue().not() or end.hasValue().not() or (start <= end)

This structure is derived from Period

Summary

Mandatory: 1 element
Must-Support: 1 element

Differential View

This structure is derived from Period

NameFlagsCard.TypeDescription & Constraintsdoco
.. Period 0..* Period Time range defined by start and end date/time
... start SC 0..1 dateTime Starting time with inclusive boundary
ksa-date-1: Must provide a complete date YYYY-MM-DD
... end C 1..1 dateTime End time with inclusive boundary, if not ongoing
ksa-date-1: Must provide a complete date YYYY-MM-DD

doco Documentation for this format

Constraints

IdGradePath(s)DetailsRequirements
ksa-date-1errorPeriod.start, Period.endMust provide a complete date YYYY-MM-DD
: toString().matches('([0-9][0-9][0-9][0-9])-(1[0-2]|0[1-9])-(3[01]|[12][0-9]|0[1-9])')

Key Elements View

NameFlagsCard.TypeDescription & Constraintsdoco
.. Period C 0..* Period Time range defined by start and end date/time
ele-1: All FHIR elements must have a @value or children
per-1: If present, start SHALL have a lower value than end
... start SΣC 0..1 dateTime Starting time with inclusive boundary
ele-1: All FHIR elements must have a @value or children
ksa-date-1: Must provide a complete date YYYY-MM-DD
... end ΣC 1..1 dateTime End time with inclusive boundary, if not ongoing
ele-1: All FHIR elements must have a @value or children
ksa-date-1: Must provide a complete date YYYY-MM-DD

doco Documentation for this format

Constraints

IdGradePath(s)DetailsRequirements
ele-1error**ALL** elementsAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ksa-date-1errorPeriod.start, Period.endMust provide a complete date YYYY-MM-DD
: toString().matches('([0-9][0-9][0-9][0-9])-(1[0-2]|0[1-9])-(3[01]|[12][0-9]|0[1-9])')
per-1errorPeriodIf present, start SHALL have a lower value than end
: start.hasValue().not() or end.hasValue().not() or (start <= end)

Snapshot View

NameFlagsCard.TypeDescription & Constraintsdoco
.. Period C 0..* Period Time range defined by start and end date/time
per-1: If present, start SHALL have a lower value than end
... id 0..1 string Unique id for inter-element referencing
... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
... start SΣC 0..1 dateTime Starting time with inclusive boundary
ksa-date-1: Must provide a complete date YYYY-MM-DD

doco Documentation for this format

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()
ksa-date-1errorPeriod.start, Period.endMust provide a complete date YYYY-MM-DD
: toString().matches('([0-9][0-9][0-9][0-9])-(1[0-2]|0[1-9])-(3[01]|[12][0-9]|0[1-9])')
per-1errorPeriodIf present, start SHALL have a lower value than end
: start.hasValue().not() or end.hasValue().not() or (start <= end)

This structure is derived from Period

Summary

Mandatory: 1 element
Must-Support: 1 element

 

Other representations of profile: CSV, Excel, Schematron