Release 5

This page is part of the FHIR Specification (v5.0.0: R5 - STU). This is the current published version. For a full list of available versions, see the Directory of published versions . Page versions: R5 R4B R4 R3 R2

Example StructureDefinition/Period (XML)

Modeling and Methodology Work GroupMaturity Level: N/AStandards Status: Informative

Raw XML (canonical form + also see XML Format Specification)

StructureDefinition for Period

<?xml version="1.0" encoding="UTF-8"?>

<StructureDefinition xmlns="http://hl7.org/fhir">
  <id value="Period"/> 
  <text> 
    <status value="generated"/> 
    <div xmlns="http://www.w3.org/1999/xhtml">
      <table border="0" cellpadding="0" cellspacing="0" style="border: 0px #F0F0F0 solid; font-size: 11px; font-family: verdana; vertical-align:
       top;">
        <tr style="border: 1px #F0F0F0 solid; font-size: 11px; font-family: verdana; vertical-align:
         top">
          <th class="hierarchy" style="vertical-align: top; text-align : left; background-color: white; border: 0px #F0F0F0
           solid; padding:0px 4px 0px 4px">
            <a href="https://build.fhir.org/ig/FHIR/ig-guidance/readingIgs.html#table-views" title="The logical name of the element">Name</a> 
          </th> 
          <th class="hierarchy" style="vertical-align: top; text-align : left; background-color: white; border: 0px #F0F0F0
           solid; padding:0px 4px 0px 4px">
            <a href="https://build.fhir.org/ig/FHIR/ig-guidance/readingIgs.html#table-views" title="Information about the use of the element">Flags</a> 
          </th> 
          <th class="hierarchy" style="vertical-align: top; text-align : left; background-color: white; border: 0px #F0F0F0
           solid; padding:0px 4px 0px 4px">
            <a href="https://build.fhir.org/ig/FHIR/ig-guidance/readingIgs.html#table-views" title="Minimum and Maximum # of times the the element can appear in the instance">Card.</a> 
          </th> 
          <th class="hierarchy" style="width: 100px">
            <a href="https://build.fhir.org/ig/FHIR/ig-guidance/readingIgs.html#table-views" title="Reference to the type of the element">Type</a> 
          </th> 
          <th class="hierarchy" style="vertical-align: top; text-align : left; background-color: white; border: 0px #F0F0F0
           solid; padding:0px 4px 0px 4px">
            <a href="https://build.fhir.org/ig/FHIR/ig-guidance/readingIgs.html#table-views" title="Additional information about the element">Description &amp; Constraints</a> 
            <span style="float: right">
              <a href="https://build.fhir.org/ig/FHIR/ig-guidance/readingIgs.html#table-views" title="Legend for this format">
                <img alt="doco" src="data:(snipped in html view)" style="background-color: inherit"/> 
              </a> 
            </span> 
          </th> 
        </tr> 
        <tr style="border: 0px #F0F0F0 solid; padding:0px; vertical-align: top; background-color:
         white">
          <td class="hierarchy" style="vertical-align: top; text-align : left; background-color: white; border: 0px #F0F0F0
           solid; padding:0px 4px 0px 4px; white-space: nowrap; background-image: url(data:image/png;bas
          e64,iVBORw0KGgoAAAANSUhEUgAAAyAAAAACCAYAAACg/LjIAAAAJUlEQVR4Xu3IIQEAAAgDsHd9/w4EQIOamFnaBgAA4M
          MKAACAKwNp30CqZFfFmwAAAABJRU5ErkJggg==)">
            <img alt="." class="hierarchy" src="data:(snipped in html view)" style="background-color: inherit"/> 
            <img alt="." class="hierarchy" src="data:(snipped in html view)" style="background-color: white; background-color: inherit" title="Element"/>  
            <a href="datatypes-definitions.html#Period" title="Period : A time period defined by a start and end date and optionally time.">Period</a> 
          </td> 
          <td class="hierarchy" style="vertical-align: top; text-align : left; background-color: white; border: 0px #F0F0F0
           solid; padding:0px 4px 0px 4px">
            <a href="elementdefinition-definitions.html#ElementDefinition.isSummary" style="padding-left: 3px; padding-right: 3px; color: black; null" title="This element is included in summaries">Σ</a> 
            <a href="versions.html#std-process" style="padding-left: 3px; padding-right: 3px; border: 1px grey solid; font-weight: bold;
             color: black; background-color: #e6ffe6" title="Standards Status = Normative">N</a> 
          </td> 
          <td class="hierarchy" style="vertical-align: top; text-align : left; background-color: white; border: 0px #F0F0F0
           solid; padding:0px 4px 0px 4px"/> 
          <td class="hierarchy" style="vertical-align: top; text-align : left; background-color: white; border: 0px #F0F0F0
           solid; padding:0px 4px 0px 4px">
            <a href="types.html#Element">Element</a> 
          </td> 
          <td class="hierarchy" style="vertical-align: top; text-align : left; background-color: white; border: 0px #F0F0F0
           solid; padding:0px 4px 0px 4px">Time range defined by start and end date/time
            <br/>  
            <span style="font-style: italic" title="per-1">+ Rule: If present, start SHALL have a lower or equal value than end</span> 
            <br/>  
            <br/>  Elements defined in Ancestors: 
            <a href="types.html#Element" title="Unique id for the element within a resource (for internal references). This may
             be any string value that does not contain spaces.">id</a> , 
            <a href="types.html#Element" title="May be used to represent additional information that is not part of the basic definition
             of the element. To make the use of extensions safe and managable, there is a strict
             set of governance applied to the definition and use of extensions. Though any implementer
             can define an extension, there is a set of requirements that SHALL be met as part
             of the definition of the extension.">extension</a> 
          </td> 
        </tr> 

        <tr style="border: 0px #F0F0F0 solid; padding:0px; vertical-align: top; background-color:
         #F7F7F7">
          <td class="hierarchy" style="vertical-align: top; text-align : left; background-color: #F7F7F7; border: 0px
           #F0F0F0 solid; padding:0px 4px 0px 4px; white-space: nowrap; background-image:
           url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAyAAAAACCAYAAACg/LjIAAAALUlEQVR4Xu3IoREAIAw
          EwfT6/ddA0GBAxO3NrLlKUj9263wAAAAvrgEAADClAVWFQIBRHMicAAAAAElFTkSuQmCC)">
            <img alt="." class="hierarchy" src="data:(snipped in html view)" style="background-color: inherit"/> 
            <img alt="." class="hierarchy" src="data:(snipped in html view)" style="background-color: inherit"/> 
            <img alt="." class="hierarchy" src="data:(snipped in html view)" style="background-color: #F7F7F7; background-color: inherit" title="Primitive Data Type"/>  
            <a href="datatypes-definitions.html#Period.start" title="Period.start : The start of the period. The boundary is inclusive.">start</a> 
          </td> 
          <td class="hierarchy" style="vertical-align: top; text-align : left; background-color: #F7F7F7; border: 0px
           #F0F0F0 solid; padding:0px 4px 0px 4px">
            <a href="elementdefinition-definitions.html#ElementDefinition.isSummary" style="padding-left: 3px; padding-right: 3px; color: black; null" title="This element is included in summaries">Σ</a> 
            <a href="conformance-rules.html#constraints" style="padding-left: 3px; padding-right: 3px; border: 1px maroon solid; font-weight: bold;
             color: #301212; background-color: #fdf4f4;" title="This element has or is affected by some invariants">C</a> 
          </td> 
          <td class="hierarchy" style="vertical-align: top; text-align : left; background-color: #F7F7F7; border: 0px
           #F0F0F0 solid; padding:0px 4px 0px 4px">0..1</td> 
          <td class="hierarchy" style="vertical-align: top; text-align : left; background-color: #F7F7F7; border: 0px
           #F0F0F0 solid; padding:0px 4px 0px 4px">
            <a href="datatypes.html#dateTime">dateTime</a> 
          </td> 
          <td class="hierarchy" style="vertical-align: top; text-align : left; background-color: #F7F7F7; border: 0px
           #F0F0F0 solid; padding:0px 4px 0px 4px">Starting time with inclusive boundary
            <br/>  
          </td> 
        </tr> 

        <tr style="border: 0px #F0F0F0 solid; padding:0px; vertical-align: top; background-color:
         white">
          <td class="hierarchy" style="vertical-align: top; text-align : left; background-color: white; border: 0px #F0F0F0
           solid; padding:0px 4px 0px 4px; white-space: nowrap; background-image: url(data:image/png;bas
          e64,iVBORw0KGgoAAAANSUhEUgAAAyAAAAACCAYAAACg/LjIAAAAJUlEQVR4Xu3IIQEAAAgDsHd9/w4EQIOamFnaBgAA4M
          MKAACAKwNp30CqZFfFmwAAAABJRU5ErkJggg==)">
            <img alt="." class="hierarchy" src="data:(snipped in html view)" style="background-color: inherit"/> 
            <img alt="." class="hierarchy" src="data:(snipped in html view)" style="background-color: inherit"/> 
            <img alt="." class="hierarchy" src="data:(snipped in html view)" style="background-color: white; background-color: inherit" title="Primitive Data Type"/>  
            <a href="datatypes-definitions.html#Period.end" title="Period.end : The end of the period. If the end of the period is missing, it means
             no end was known or planned at the time the instance was created. The start may
             be in the past, and the end date in the future, which means that period is expected/planned
             to end at that time.">end</a> 
          </td> 
          <td class="hierarchy" style="vertical-align: top; text-align : left; background-color: white; border: 0px #F0F0F0
           solid; padding:0px 4px 0px 4px">
            <a href="elementdefinition-definitions.html#ElementDefinition.isSummary" style="padding-left: 3px; padding-right: 3px; color: black; null" title="This element is included in summaries">Σ</a> 
            <a href="conformance-rules.html#constraints" style="padding-left: 3px; padding-right: 3px; border: 1px maroon solid; font-weight: bold;
             color: #301212; background-color: #fdf4f4;" title="This element has or is affected by some invariants">C</a> 
          </td> 
          <td class="hierarchy" style="vertical-align: top; text-align : left; background-color: white; border: 0px #F0F0F0
           solid; padding:0px 4px 0px 4px">0..1</td> 
          <td class="hierarchy" style="vertical-align: top; text-align : left; background-color: white; border: 0px #F0F0F0
           solid; padding:0px 4px 0px 4px">
            <a href="datatypes.html#dateTime">dateTime</a> 
          </td> 
          <td class="hierarchy" style="vertical-align: top; text-align : left; background-color: white; border: 0px #F0F0F0
           solid; padding:0px 4px 0px 4px">End time with inclusive boundary, if not ongoing
            <br/>  
          </td> 
        </tr> 

        <tr> 
          <td class="hierarchy" colspan="5">
            <br/>  
            <a href="https://build.fhir.org/ig/FHIR/ig-guidance/readingIgs.html#table-views" title="Legend for this format">
              <img alt="doco" src="data:(snipped in html view)" style="background-color: inherit"/>  Documentation for this format
            </a> 
          </td> 
        </tr> 
      </table> 
    </div> 
  </text> 
  <extension url="http://hl7.org/fhir/StructureDefinition/structuredefinition-standards-status">
    <valueCode value="normative"/> 
  </extension> 
  <extension url="http://hl7.org/fhir/StructureDefinition/structuredefinition-normative-version">
    <valueCode value="4.0.0"/> 
  </extension> 
  <url value="http://hl7.org/fhir/StructureDefinition/Period"/> 
  <version value="5.0.0"/> 
  <name value="Period"/> 
  <status value="active"/> 
  <experimental value="false"/> 
  <date value="2023-03-26T15:21:02+11:00"/> 
  <publisher value="HL7 FHIR Standard"/> 
  <contact> 
    <telecom> 
      <system value="url"/> 
      <value value="http://hl7.org/fhir"/> 
    </telecom> 
  </contact> 
  <description value="Period Type: A time period defined by a start and end date and optionally time."/> 
  <jurisdiction> 
    <coding> 
      <system value="http://unstats.un.org/unsd/methods/m49/m49.htm"/> 
      <code value="001"/> 
      <display value="World"/> 
    </coding> 
  </jurisdiction> 
  <fhirVersion value="5.0.0"/> 
  <mapping> 
    <identity value="v2"/> 
    <uri value="http://hl7.org/v2"/> 
    <name value="HL7 V2 Mapping"/> 
  </mapping> 
  <mapping> 
    <identity value="rim"/> 
    <uri value="http://hl7.org/v3"/> 
    <name value="RIM Mapping"/> 
  </mapping> 
  <kind value="complex-type"/> 
  <abstract value="false"/> 
  <type value="Period"/> 
  <baseDefinition value="http://hl7.org/fhir/StructureDefinition/DataType"/> 
  <derivation value="specialization"/> 
  <snapshot> 
    <element id="Period">
      <extension url="http://hl7.org/fhir/StructureDefinition/structuredefinition-standards-status">
        <valueCode value="normative"/> 
      </extension> 
      <extension url="http://hl7.org/fhir/StructureDefinition/structuredefinition-normative-version">
        <valueCode value="4.0.0"/> 
      </extension> 
      <path value="Period"/> 
      <short value="Time range defined by start and end date/time"/> 
      <definition value="A time period defined by a start and end date and optionally time."/> 
      <comment value="A Period specifies a range of time; the context of use will specify whether the
       entire range applies (e.g. &quot;the patient was an inpatient of the hospital for
       this time range&quot;) or one value from the range applies (e.g. &quot;give to
       the patient between these two times&quot;).

Period is not used for a duration (a measure of elapsed time). See [Duration](datatypes.html#
      Duration)."/> 
      <min value="0"/> 
      <max value="*"/> 
      <base> 
        <path value="Period"/> 
        <min value="0"/> 
        <max value="*"/> 
      </base> 
      <constraint> 
        <key value="ele-1"/> 
        <severity value="error"/> 
        <human value="All FHIR elements must have a @value or children"/> 
        <expression value="hasValue() or (children().count() &gt; id.count())"/> 
        <source value="http://hl7.org/fhir/StructureDefinition/Element"/> 
      </constraint> 
      <constraint> 
        <key value="per-1"/> 
        <severity value="error"/> 
        <human value="If present, start SHALL have a lower or equal value than end"/> 
        <expression value="start.hasValue().not() or end.hasValue().not() or (start.lowBoundary() &lt;= end.highBoundary
        ())"/> 
        <source value="http://hl7.org/fhir/StructureDefinition/Period"/> 
      </constraint> 
      <isModifier value="false"/> 
      <mapping> 
        <identity value="rim"/> 
        <map value="n/a,IVL&lt;TS&gt;[lowClosed=&quot;true&quot; and highClosed=&quot;true&quot;] or
         URG&lt;TS&gt;[lowClosed=&quot;true&quot; and highClosed=&quot;true&quot;]"/> 
      </mapping> 
      <mapping> 
        <identity value="v2"/> 
        <map value="DR"/> 
      </mapping> 
    </element> 
    <element id="Period.id">
      <path value="Period.id"/> 
      <representation value="xmlAttr"/> 
      <short value="Unique id for inter-element referencing"/> 
      <definition value="Unique id for the element within a resource (for internal references). This may
       be any string value that does not contain spaces."/> 
      <min value="0"/> 
      <max value="1"/> 
      <base> 
        <path value="Element.id"/> 
        <min value="0"/> 
        <max value="1"/> 
      </base> 
      <!--  Note: special primitive values have a FHIRPath system type. e.g. this is compiler
       magic (j)  -->
      <type> 
        <extension url="http://hl7.org/fhir/StructureDefinition/structuredefinition-fhir-type">
          <valueUrl value="id"/> 
        </extension> 
        <code value="http://hl7.org/fhirpath/System.String"/> 
      </type> 
      <condition value="ele-1"/> 
      <isModifier value="false"/> 
      <isSummary value="false"/> 
      <mapping> 
        <identity value="rim"/> 
        <map value="n/a"/> 
      </mapping> 
    </element> 
    <element id="Period.extension">
      <path value="Period.extension"/> 
      <slicing> 
        <discriminator> 
          <type value="value"/> 
          <path value="url"/> 
        </discriminator> 
        <description value="Extensions are always sliced by (at least) url"/> 
        <rules value="open"/> 
      </slicing> 
      <short value="Additional content defined by implementations"/> 
      <definition value="May be used to represent additional information that is not part of the basic definition
       of the element. To make the use of extensions safe and managable, there is a strict
       set of governance applied to the definition and use of extensions. Though any implementer
       can define an extension, there is a set of requirements that SHALL be met as part
       of the definition of the extension."/> 
      <comment value="There can be no stigma associated with the use of extensions by any application,
       project, or standard - regardless of the institution or jurisdiction that uses
       or defines the extensions.  The use of extensions is what allows the FHIR specification
       to retain a core level of simplicity for everyone."/> 
      <alias value="extensions"/> 
      <alias value="user content"/> 
      <min value="0"/> 
      <max value="*"/> 
      <base> 
        <path value="Element.extension"/> 
        <min value="0"/> 
        <max value="*"/> 
      </base> 
      <type> 
        <code value="Extension"/> 
      </type> 
      <constraint> 
        <key value="ele-1"/> 
        <severity value="error"/> 
        <human value="All FHIR elements must have a @value or children"/> 
        <expression value="hasValue() or (children().count() &gt; id.count())"/> 
        <source value="http://hl7.org/fhir/StructureDefinition/Element"/> 
      </constraint> 
      <constraint> 
        <key value="ext-1"/> 
        <severity value="error"/> 
        <human value="Must have either extensions or value[x], not both"/> 
        <expression value="extension.exists() != value.exists()"/> 
        <source value="http://hl7.org/fhir/StructureDefinition/Extension"/> 
      </constraint> 
      <isModifier value="false"/> 
      <isSummary value="false"/> 
      <mapping> 
        <identity value="rim"/> 
        <map value="n/a"/> 
      </mapping> 
    </element> 
    <element id="Period.start">
      <path value="Period.start"/> 
      <short value="Starting time with inclusive boundary"/> 
      <definition value="The start of the period. The boundary is inclusive."/> 
      <comment value="If the low element is missing, the meaning is that the low boundary is not known."/> 
      <min value="0"/> 
      <max value="1"/> 
      <base> 
        <path value="Period.start"/> 
        <min value="0"/> 
        <max value="1"/> 
      </base> 
      <type> 
        <code value="dateTime"/> 
      </type> 
      <condition value="per-1"/> 
      <constraint> 
        <key value="ele-1"/> 
        <severity value="error"/> 
        <human value="All FHIR elements must have a @value or children"/> 
        <expression value="hasValue() or (children().count() &gt; id.count())"/> 
        <source value="http://hl7.org/fhir/StructureDefinition/Element"/> 
      </constraint> 
      <isModifier value="false"/> 
      <isSummary value="true"/> 
      <mapping> 
        <identity value="v2"/> 
        <map value="DR.1"/> 
      </mapping> 
      <mapping> 
        <identity value="rim"/> 
        <map value="./low"/> 
      </mapping> 
    </element> 
    <element id="Period.end">
      <path value="Period.end"/> 
      <short value="End time with inclusive boundary, if not ongoing"/> 
      <definition value="The end of the period. If the end of the period is missing, it means no end was
       known or planned at the time the instance was created. The start may be in the
       past, and the end date in the future, which means that period is expected/planned
       to end at that time."/> 
      <comment value="The end value includes any matching date/time. i.e. 2012-02-03T10:00:00 is in a
       period that has an end value of 2012-02-03."/> 
      <min value="0"/> 
      <max value="1"/> 
      <base> 
        <path value="Period.end"/> 
        <min value="0"/> 
        <max value="1"/> 
      </base> 
      <type> 
        <code value="dateTime"/> 
      </type> 
      <meaningWhenMissing value="If the end of the period is missing, it means that the period is ongoing"/> 
      <condition value="per-1"/> 
      <constraint> 
        <key value="ele-1"/> 
        <severity value="error"/> 
        <human value="All FHIR elements must have a @value or children"/> 
        <expression value="hasValue() or (children().count() &gt; id.count())"/> 
        <source value="http://hl7.org/fhir/StructureDefinition/Element"/> 
      </constraint> 
      <isModifier value="false"/> 
      <isSummary value="true"/> 
      <mapping> 
        <identity value="v2"/> 
        <map value="DR.2"/> 
      </mapping> 
      <mapping> 
        <identity value="rim"/> 
        <map value="./high"/> 
      </mapping> 
    </element> 
  </snapshot> 
  <differential> 
    <element id="Period">
      <extension url="http://hl7.org/fhir/StructureDefinition/structuredefinition-standards-status">
        <valueCode value="normative"/> 
      </extension> 
      <extension url="http://hl7.org/fhir/StructureDefinition/structuredefinition-normative-version">
        <valueCode value="4.0.0"/> 
      </extension> 
      <path value="Period"/> 
      <short value="Time range defined by start and end date/time"/> 
      <definition value="A time period defined by a start and end date and optionally time."/> 
      <comment value="A Period specifies a range of time; the context of use will specify whether the
       entire range applies (e.g. &quot;the patient was an inpatient of the hospital for
       this time range&quot;) or one value from the range applies (e.g. &quot;give to
       the patient between these two times&quot;).

Period is not used for a duration (a measure of elapsed time). See [Duration](datatypes.html#
      Duration)."/> 
      <min value="0"/> 
      <max value="*"/> 
      <constraint> 
        <key value="per-1"/> 
        <severity value="error"/> 
        <human value="If present, start SHALL have a lower or equal value than end"/> 
        <expression value="start.hasValue().not() or end.hasValue().not() or (start.lowBoundary() &lt;= end.highBoundary
        ())"/> 
        <source value="http://hl7.org/fhir/StructureDefinition/Period"/> 
      </constraint> 
      <mapping> 
        <identity value="v2"/> 
        <map value="DR"/> 
      </mapping> 
      <mapping> 
        <identity value="rim"/> 
        <map value="IVL&lt;TS&gt;[lowClosed=&quot;true&quot; and highClosed=&quot;true&quot;] or URG&lt;TS&gt;[lo
        wClosed=&quot;true&quot; and highClosed=&quot;true&quot;]"/> 
      </mapping> 
    </element> 
    <element id="Period.start">
      <path value="Period.start"/> 
      <short value="Starting time with inclusive boundary"/> 
      <definition value="The start of the period. The boundary is inclusive."/> 
      <comment value="If the low element is missing, the meaning is that the low boundary is not known."/> 
      <min value="0"/> 
      <max value="1"/> 
      <type> 
        <code value="dateTime"/> 
      </type> 
      <condition value="per-1"/> 
      <isSummary value="true"/> 
      <mapping> 
        <identity value="v2"/> 
        <map value="DR.1"/> 
      </mapping> 
      <mapping> 
        <identity value="rim"/> 
        <map value="./low"/> 
      </mapping> 
    </element> 
    <element id="Period.end">
      <path value="Period.end"/> 
      <short value="End time with inclusive boundary, if not ongoing"/> 
      <definition value="The end of the period. If the end of the period is missing, it means no end was
       known or planned at the time the instance was created. The start may be in the
       past, and the end date in the future, which means that period is expected/planned
       to end at that time."/> 
      <comment value="The end value includes any matching date/time. i.e. 2012-02-03T10:00:00 is in a
       period that has an end value of 2012-02-03."/> 
      <min value="0"/> 
      <max value="1"/> 
      <type> 
        <code value="dateTime"/> 
      </type> 
      <meaningWhenMissing value="If the end of the period is missing, it means that the period is ongoing"/> 
      <condition value="per-1"/> 
      <isSummary value="true"/> 
      <mapping> 
        <identity value="v2"/> 
        <map value="DR.2"/> 
      </mapping> 
      <mapping> 
        <identity value="rim"/> 
        <map value="./high"/> 
      </mapping> 
    </element> 
  </differential> 
</StructureDefinition> 

Usage note: every effort has been made to ensure that the examples are correct and useful, but they are not a normative part of the specification.