OpenEHR Base package
0.1.0 - First Draft
OpenEHR Base package, published by openEHR + HL7. This guide is not an authorized publication; it is the continuous build for version 0.1.0 built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/FHIR/openehr-base-ig/ and changes regularly. See the Directory of published versions
| Page standards status: Informative | Maturity Level: 3 |
XML representation of the DV-INTERVAL logical model.
<StructureDefinition xmlns="http://hl7.org/fhir">
<id value="DV-INTERVAL"/>
<language value="en"/>
<text>
<status value="extensions"/>
<div xmlns="http://www.w3.org/1999/xhtml"><p class="res-header-id"><b>Generated Narrative: StructureDefinition DV-INTERVAL</b></p><a name="DV-INTERVAL"> </a><a name="hcDV-INTERVAL"> </a><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 style="vertical-align: top; text-align : var(--ig-left,left); background-color: white; border: 0px #F0F0F0 solid; padding:0px 4px 0px 4px; padding-top: 3px; padding-bottom: 3px" class="hierarchy"><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 style="vertical-align: top; text-align : var(--ig-left,left); background-color: white; border: 0px #F0F0F0 solid; padding:0px 4px 0px 4px; padding-top: 3px; padding-bottom: 3px" class="hierarchy"><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 style="vertical-align: top; text-align : var(--ig-left,left); background-color: white; border: 0px #F0F0F0 solid; padding:0px 4px 0px 4px; padding-top: 3px; padding-bottom: 3px" class="hierarchy"><a href="https://build.fhir.org/ig/FHIR/ig-guidance/readingIgs.html#table-views" title="Minimum and Maximum # of times the element can appear in the instance">Card.</a></th><th style="vertical-align: top; text-align : var(--ig-left,left); background-color: white; border: 0px #F0F0F0 solid; padding:0px 4px 0px 4px; padding-top: 3px; padding-bottom: 3px; width: 100px" class="hierarchy"><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 style="vertical-align: top; text-align : var(--ig-left,left); background-color: white; border: 0px #F0F0F0 solid; padding:0px 4px 0px 4px; padding-top: 3px; padding-bottom: 3px" class="hierarchy"><a href="https://build.fhir.org/ig/FHIR/ig-guidance/readingIgs.html#table-views" title="Additional information about the element">Description & 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 src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH3goXBCwdPqAP0wAAAldJREFUOMuNk0tIlFEYhp9z/vE2jHkhxXA0zJCMitrUQlq4lnSltEqCFhFG2MJFhIvIFpkEWaTQqjaWZRkp0g26URZkTpbaaOJkDqk10szoODP//7XIMUe0elcfnPd9zsfLOYplGrpRwZaqTtw3K7PtGem7Q6FoidbGgqHVy/HRb669R+56zx7eRV1L31JGxYbBtjKK93cxeqfyQHbehkZbUkK20goELEuIzEd+dHS+qz/Y8PTSif0FnGkbiwcAjHaU1+QWOptFiyCLp/LnKptpqIuXHx6rbR26kJcBX3yLgBfnd7CxwJmflpP2wUg0HIAoUUpZBmKzELGWcN8nAr6Gpu7tLU/CkwAaoKTWRSQyt89Q8w6J+oVQkKnBoblH7V0PPvUOvDYXfopE/SJmALsxnVm6LbkotrUtNowMeIrVrBcBpaMmdS0j9df7abpSuy7HWehwJdt1lhVwi/J58U5beXGAF6c3UXLycw1wdFklArBn87xdh0ZsZtArghBdAA3+OEDVubG4UEzP6x1FOWneHh2VDAHBAt80IbdXDcesNoCvs3E5AFyNSU5nbrDPZpcUEQQTFZiEVx+51fxMhhyJEAgvlriadIJZZksRuwBYMOPBbO3hePVVqgEJhFeUuFLhIPkRP6BQLIBrmMenujm/3g4zc398awIe90Zb5A1vREALqneMcYgP/xVQWlG+Ncu5vgwwlaUNx+3799rfe96u9K0JSDXcOzOTJg4B6IgmXfsygc7/Bvg9g9E58/cDVmGIBOP/zT8Bz1zqWqpbXIsd0O9hajXfL6u4BaOS6SeWAAAAAElFTkSuQmCC" alt="doco" style="background-color: inherit"/></a></span></th></tr><tr style="border: 0px #F0F0F0 solid; padding:0px; vertical-align: top; background-color: white"><td style="vertical-align: top; text-align : var(--ig-left,left); background-color: white; border: 0px #F0F0F0 solid; padding:0px 4px 0px 4px; white-space: nowrap; background-image: url(tbl_bck1.png)" class="hierarchy"><img src="tbl_spacer.png" alt="." style="background-color: inherit" class="hierarchy"/><img src="icon_element.gif" alt="." style="background-color: white; background-color: inherit" title="Element" class="hierarchy"/> <a href="StructureDefinition-DV-INTERVAL-definitions.html#DV_INTERVAL" title="Generic class defining an interval (i.e. range) of a comparable type. An interval is a contiguous subrange of a comparable base type. Used to define intervals of dates, times, quantities (whose units match) and so on. The type parameter, `T`, must be a descendant of the type `DV_ORDERED`, which is necessary (but not sufficient) for instances to be compared (`_strictly_comparable_` is also needed).
Without the `DV_INTERVAL` class, quite a few more `DV_` classes would be needed to express logical intervals, namely interval versions of all the date/time classes, and of quantity classes. Further, it allows the semantics of intervals to be stated in one place unequivocally, including the conditions for strict comparison.
The basic semantics are derived from the class `Interval<T>`, described in the support RM.">DV_INTERVAL</a><T : http://openehr.org/fhir/StructureDefinition/DV-ORDERED><a name="DV_INTERVAL"> </a></td><td style="vertical-align: top; text-align : var(--ig-left,left); background-color: white; border: 0px #F0F0F0 solid; padding:0px 4px 0px 4px" class="hierarchy"><a style="padding-left: 3px; padding-right: 3px; border: 1px maroon solid; font-weight: bold; color: #301212; background-color: #fdf4f4;; padding-left: 3px; padding-right: 3px; border: 1px maroon solid; font-weight: bold; color: #301212; background-color: #fdf4f4;" href="http://hl7.org/fhir/R5/conformance-rules.html#constraints" title="This element has or is affected by constraints ( limits-consistent )">C</a></td><td style="vertical-align: top; text-align : var(--ig-left,left); background-color: white; border: 0px #F0F0F0 solid; padding:0px 4px 0px 4px" class="hierarchy">0..*</td><td style="vertical-align: top; text-align : var(--ig-left,left); background-color: white; border: 0px #F0F0F0 solid; padding:0px 4px 0px 4px" class="hierarchy"><a href="StructureDefinition-DATA-VALUE.html">DATA_VALUE</a></td><td style="vertical-align: top; text-align : var(--ig-left,left); background-color: white; border: 0px #F0F0F0 solid; padding:0px 4px 0px 4px" class="hierarchy">Generic class defining an interval<br/><br/>Elements defined in Ancestors:<a href="StructureDefinition-BASIC-DEFINITIONS.html" title="Carriage return character.">CR</a>, <a href="StructureDefinition-BASIC-DEFINITIONS.html" title="Line feed character.">LF</a>, <a href="StructureDefinition-OPENEHR-DEFINITIONS.html" title="Predefined terminology identifier to indicate it is local to the knowledge resource in which it occurs, e.g. an archetype">Local_terminology_id</a><br class="constraint"/><span title="null" class="constraint">Constraints: </span><span style="font-weight:bold" title="Limits consistent must satisfy range constraints" class="constraint">limits-consistent</span><br/></td></tr>
<tr style="border: 0px #F0F0F0 solid; padding:0px; vertical-align: top; background-color: #F7F7F7"><td style="vertical-align: top; text-align : var(--ig-left,left); background-color: #F7F7F7; border: 0px #F0F0F0 solid; padding:0px 4px 0px 4px; white-space: nowrap; background-image: url(tbl_bck10.png)" class="hierarchy"><img src="tbl_spacer.png" alt="." style="background-color: inherit" class="hierarchy"/><img src="tbl_vjoin.png" alt="." style="background-color: inherit" class="hierarchy"/><img src="icon_resource.png" alt="." style="background-color: #F7F7F7; background-color: inherit" title="Resource" class="hierarchy"/> <a href="StructureDefinition-DV-INTERVAL-definitions.html#DV_INTERVAL.lower" title="Lower bound of the interval. Void if the interval is lower-unbounded.">lower</a><T : http://openehr.org/fhir/StructureDefinition/DV-ORDERED><a name="DV_INTERVAL.lower"> </a></td><td style="vertical-align: top; text-align : var(--ig-left,left); background-color: #F7F7F7; border: 0px #F0F0F0 solid; padding:0px 4px 0px 4px" class="hierarchy"/><td style="vertical-align: top; text-align : var(--ig-left,left); background-color: #F7F7F7; border: 0px #F0F0F0 solid; padding:0px 4px 0px 4px" class="hierarchy">0..1</td><td style="vertical-align: top; text-align : var(--ig-left,left); background-color: #F7F7F7; border: 0px #F0F0F0 solid; padding:0px 4px 0px 4px" class="hierarchy"><a href="StructureDefinition-DV-ORDERED.html">DV_ORDERED</a></td><td style="vertical-align: top; text-align : var(--ig-left,left); background-color: #F7F7F7; border: 0px #F0F0F0 solid; padding:0px 4px 0px 4px" class="hierarchy">Lower bound of the interval.</td></tr>
<tr style="border: 0px #F0F0F0 solid; padding:0px; vertical-align: top; background-color: white"><td style="vertical-align: top; text-align : var(--ig-left,left); background-color: white; border: 0px #F0F0F0 solid; padding:0px 4px 0px 4px; white-space: nowrap; background-image: url(tbl_bck10.png)" class="hierarchy"><img src="tbl_spacer.png" alt="." style="background-color: inherit" class="hierarchy"/><img src="tbl_vjoin.png" alt="." style="background-color: inherit" class="hierarchy"/><img src="icon_resource.png" alt="." style="background-color: white; background-color: inherit" title="Resource" class="hierarchy"/> <a href="StructureDefinition-DV-INTERVAL-definitions.html#DV_INTERVAL.upper" title="Upper bound of the interval. Void if the interval is upper-unbounded.">upper</a><T : http://openehr.org/fhir/StructureDefinition/DV-ORDERED><a name="DV_INTERVAL.upper"> </a></td><td style="vertical-align: top; text-align : var(--ig-left,left); background-color: white; border: 0px #F0F0F0 solid; padding:0px 4px 0px 4px" class="hierarchy"/><td style="vertical-align: top; text-align : var(--ig-left,left); background-color: white; border: 0px #F0F0F0 solid; padding:0px 4px 0px 4px" class="hierarchy">0..1</td><td style="vertical-align: top; text-align : var(--ig-left,left); background-color: white; border: 0px #F0F0F0 solid; padding:0px 4px 0px 4px" class="hierarchy"><a href="StructureDefinition-DV-ORDERED.html">DV_ORDERED</a></td><td style="vertical-align: top; text-align : var(--ig-left,left); background-color: white; border: 0px #F0F0F0 solid; padding:0px 4px 0px 4px" class="hierarchy">Upper bound of the interval.</td></tr>
<tr style="border: 0px #F0F0F0 solid; padding:0px; vertical-align: top; background-color: #F7F7F7"><td style="vertical-align: top; text-align : var(--ig-left,left); background-color: #F7F7F7; border: 0px #F0F0F0 solid; padding:0px 4px 0px 4px; white-space: nowrap; background-image: url(tbl_bck10.png)" class="hierarchy"><img src="tbl_spacer.png" alt="." style="background-color: inherit" class="hierarchy"/><img src="tbl_vjoin.png" alt="." style="background-color: inherit" class="hierarchy"/><img src="icon_primitive.png" alt="." style="background-color: #F7F7F7; background-color: inherit" title="Primitive Data Type" class="hierarchy"/> <a href="StructureDefinition-DV-INTERVAL-definitions.html#DV_INTERVAL.lower-unbounded" title="True if the interval has no lower bound. If True, lower is Void.">lower_unbounded</a><T : http://openehr.org/fhir/StructureDefinition/DV-ORDERED><a name="DV_INTERVAL.lower-unbounded"> </a></td><td style="vertical-align: top; text-align : var(--ig-left,left); background-color: #F7F7F7; border: 0px #F0F0F0 solid; padding:0px 4px 0px 4px" class="hierarchy"/><td style="vertical-align: top; text-align : var(--ig-left,left); background-color: #F7F7F7; border: 0px #F0F0F0 solid; padding:0px 4px 0px 4px" class="hierarchy">1..1</td><td style="vertical-align: top; text-align : var(--ig-left,left); background-color: #F7F7F7; border: 0px #F0F0F0 solid; padding:0px 4px 0px 4px" class="hierarchy"><a href="http://hl7.org/fhir/R5/datatypes.html#boolean">boolean</a></td><td style="vertical-align: top; text-align : var(--ig-left,left); background-color: #F7F7F7; border: 0px #F0F0F0 solid; padding:0px 4px 0px 4px" class="hierarchy">True if the interval has no lower bound.</td></tr>
<tr style="border: 0px #F0F0F0 solid; padding:0px; vertical-align: top; background-color: white"><td style="vertical-align: top; text-align : var(--ig-left,left); background-color: white; border: 0px #F0F0F0 solid; padding:0px 4px 0px 4px; white-space: nowrap; background-image: url(tbl_bck10.png)" class="hierarchy"><img src="tbl_spacer.png" alt="." style="background-color: inherit" class="hierarchy"/><img src="tbl_vjoin.png" alt="." style="background-color: inherit" class="hierarchy"/><img src="icon_primitive.png" alt="." style="background-color: white; background-color: inherit" title="Primitive Data Type" class="hierarchy"/> <a href="StructureDefinition-DV-INTERVAL-definitions.html#DV_INTERVAL.upper-unbounded" title="True if the interval has no upper bound. If True, upper is Void.">upper_unbounded</a><T : http://openehr.org/fhir/StructureDefinition/DV-ORDERED><a name="DV_INTERVAL.upper-unbounded"> </a></td><td style="vertical-align: top; text-align : var(--ig-left,left); background-color: white; border: 0px #F0F0F0 solid; padding:0px 4px 0px 4px" class="hierarchy"/><td style="vertical-align: top; text-align : var(--ig-left,left); background-color: white; border: 0px #F0F0F0 solid; padding:0px 4px 0px 4px" class="hierarchy">1..1</td><td style="vertical-align: top; text-align : var(--ig-left,left); background-color: white; border: 0px #F0F0F0 solid; padding:0px 4px 0px 4px" class="hierarchy"><a href="http://hl7.org/fhir/R5/datatypes.html#boolean">boolean</a></td><td style="vertical-align: top; text-align : var(--ig-left,left); background-color: white; border: 0px #F0F0F0 solid; padding:0px 4px 0px 4px" class="hierarchy">True if the interval has no upper bound.</td></tr>
<tr style="border: 0px #F0F0F0 solid; padding:0px; vertical-align: top; background-color: #F7F7F7"><td style="vertical-align: top; text-align : var(--ig-left,left); background-color: #F7F7F7; border: 0px #F0F0F0 solid; padding:0px 4px 0px 4px; white-space: nowrap; background-image: url(tbl_bck10.png)" class="hierarchy"><img src="tbl_spacer.png" alt="." style="background-color: inherit" class="hierarchy"/><img src="tbl_vjoin.png" alt="." style="background-color: inherit" class="hierarchy"/><img src="icon_primitive.png" alt="." style="background-color: #F7F7F7; background-color: inherit" title="Primitive Data Type" class="hierarchy"/> <a href="StructureDefinition-DV-INTERVAL-definitions.html#DV_INTERVAL.lower-included" title="True if the lower bound is included in the interval. Only meaningful if lower_unbounded is False.">lower_included</a><T : http://openehr.org/fhir/StructureDefinition/DV-ORDERED><a name="DV_INTERVAL.lower-included"> </a></td><td style="vertical-align: top; text-align : var(--ig-left,left); background-color: #F7F7F7; border: 0px #F0F0F0 solid; padding:0px 4px 0px 4px" class="hierarchy"/><td style="vertical-align: top; text-align : var(--ig-left,left); background-color: #F7F7F7; border: 0px #F0F0F0 solid; padding:0px 4px 0px 4px" class="hierarchy">1..1</td><td style="vertical-align: top; text-align : var(--ig-left,left); background-color: #F7F7F7; border: 0px #F0F0F0 solid; padding:0px 4px 0px 4px" class="hierarchy"><a href="http://hl7.org/fhir/R5/datatypes.html#boolean">boolean</a></td><td style="vertical-align: top; text-align : var(--ig-left,left); background-color: #F7F7F7; border: 0px #F0F0F0 solid; padding:0px 4px 0px 4px" class="hierarchy">True if the lower bound is included in the interval.</td></tr>
<tr style="border: 0px #F0F0F0 solid; padding:0px; vertical-align: top; background-color: white"><td style="vertical-align: top; text-align : var(--ig-left,left); background-color: white; border: 0px #F0F0F0 solid; padding:0px 4px 0px 4px; white-space: nowrap; background-image: url(tbl_bck00.png)" class="hierarchy"><img src="tbl_spacer.png" alt="." style="background-color: inherit" class="hierarchy"/><img src="tbl_vjoin_end.png" alt="." style="background-color: inherit" class="hierarchy"/><img src="icon_primitive.png" alt="." style="background-color: white; background-color: inherit" title="Primitive Data Type" class="hierarchy"/> <a href="StructureDefinition-DV-INTERVAL-definitions.html#DV_INTERVAL.upper-included" title="True if the upper bound is included in the interval. Only meaningful if upper_unbounded is False.">upper_included</a><T : http://openehr.org/fhir/StructureDefinition/DV-ORDERED><a name="DV_INTERVAL.upper-included"> </a></td><td style="vertical-align: top; text-align : var(--ig-left,left); background-color: white; border: 0px #F0F0F0 solid; padding:0px 4px 0px 4px" class="hierarchy"/><td style="vertical-align: top; text-align : var(--ig-left,left); background-color: white; border: 0px #F0F0F0 solid; padding:0px 4px 0px 4px" class="hierarchy">1..1</td><td style="vertical-align: top; text-align : var(--ig-left,left); background-color: white; border: 0px #F0F0F0 solid; padding:0px 4px 0px 4px" class="hierarchy"><a href="http://hl7.org/fhir/R5/datatypes.html#boolean">boolean</a></td><td style="vertical-align: top; text-align : var(--ig-left,left); background-color: white; border: 0px #F0F0F0 solid; padding:0px 4px 0px 4px" class="hierarchy">True if the upper bound is included in the interval.</td></tr>
<tr><td colspan="5" class="hierarchy"><br/><a href="https://build.fhir.org/ig/FHIR/ig-guidance/readingIgs.html#table-views" title="Legend for this format"><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH3goXBCwdPqAP0wAAAldJREFUOMuNk0tIlFEYhp9z/vE2jHkhxXA0zJCMitrUQlq4lnSltEqCFhFG2MJFhIvIFpkEWaTQqjaWZRkp0g26URZkTpbaaOJkDqk10szoODP//7XIMUe0elcfnPd9zsfLOYplGrpRwZaqTtw3K7PtGem7Q6FoidbGgqHVy/HRb669R+56zx7eRV1L31JGxYbBtjKK93cxeqfyQHbehkZbUkK20goELEuIzEd+dHS+qz/Y8PTSif0FnGkbiwcAjHaU1+QWOptFiyCLp/LnKptpqIuXHx6rbR26kJcBX3yLgBfnd7CxwJmflpP2wUg0HIAoUUpZBmKzELGWcN8nAr6Gpu7tLU/CkwAaoKTWRSQyt89Q8w6J+oVQkKnBoblH7V0PPvUOvDYXfopE/SJmALsxnVm6LbkotrUtNowMeIrVrBcBpaMmdS0j9df7abpSuy7HWehwJdt1lhVwi/J58U5beXGAF6c3UXLycw1wdFklArBn87xdh0ZsZtArghBdAA3+OEDVubG4UEzP6x1FOWneHh2VDAHBAt80IbdXDcesNoCvs3E5AFyNSU5nbrDPZpcUEQQTFZiEVx+51fxMhhyJEAgvlriadIJZZksRuwBYMOPBbO3hePVVqgEJhFeUuFLhIPkRP6BQLIBrmMenujm/3g4zc398awIe90Zb5A1vREALqneMcYgP/xVQWlG+Ncu5vgwwlaUNx+3799rfe96u9K0JSDXcOzOTJg4B6IgmXfsygc7/Bvg9g9E58/cDVmGIBOP/zT8Bz1zqWqpbXIsd0O9hajXfL6u4BaOS6SeWAAAAAElFTkSuQmCC" alt="doco" style="background-color: inherit"/> Documentation for this format</a></td></tr></table></div>
</text>
<extension url="http://hl7.org/fhir/StructureDefinition/web-source">
<valueUrl
value="https://specifications.openehr.org/releases/RM/Release-1.1.0/data_types.html#_dv_interval_class"/>
</extension>
<extension
url="http://hl7.org/fhir/tools/StructureDefinition/type-parameter">
<extension url="name">
<valueCode value="T"/>
</extension>
<extension url="type">
<valueUri
value="http://openehr.org/fhir/StructureDefinition/DV-ORDERED"/>
</extension>
</extension>
<extension
url="http://hl7.org/fhir/StructureDefinition/structuredefinition-wg">
<valueCode value="fhir"/>
</extension>
<extension url="http://hl7.org/fhir/tools/StructureDefinition/view-hint">
<valueCode value="element-view-as-leaf"/>
</extension>
<extension url="http://hl7.org/fhir/tools/StructureDefinition/view-hint">
<valueCode value="element-view-defns-parent"/>
</extension>
<extension url="http://hl7.org/fhir/tools/StructureDefinition/view-hint">
<valueCode value="element-view-replace-cardinality"/>
</extension>
<extension
url="http://hl7.org/fhir/StructureDefinition/structuredefinition-fmm">
<valueInteger value="3">
<extension
url="http://hl7.org/fhir/StructureDefinition/structuredefinition-conformance-derivedFrom">
<valueCanonical
value="http://openehr.org/fhir/ImplementationGuide/openehr.base"/>
</extension>
</valueInteger>
</extension>
<extension
url="http://hl7.org/fhir/StructureDefinition/structuredefinition-standards-status">
<valueCode value="informative">
<extension
url="http://hl7.org/fhir/StructureDefinition/structuredefinition-conformance-derivedFrom">
<valueCanonical
value="http://openehr.org/fhir/ImplementationGuide/openehr.base"/>
</extension>
</valueCode>
</extension>
<url value="http://openehr.org/fhir/StructureDefinition/DV_INTERVAL"/>
<version value="0.1.0"/>
<name value="DV_INTERVAL"/>
<title value="DV_INTERVAL"/>
<status value="active"/>
<experimental value="false"/>
<date value="2025-09-06T15:35:39+10:00"/>
<publisher value="openEHR + HL7"/>
<contact>
<telecom>
<system value="url"/>
<value value="http://www.openehr.org"/>
</telecom>
</contact>
<description
value="Generic class defining an interval (i.e. range) of a comparable type. An interval is a contiguous subrange of a comparable base type. Used to define intervals of dates, times, quantities (whose units match) and so on. The type parameter, `T`, must be a descendant of the type `DV_ORDERED`, which is necessary (but not sufficient) for instances to be compared (`_strictly_comparable_` is also needed).
Without the `DV_INTERVAL` class, quite a few more `DV_` classes would be needed to express logical intervals, namely interval versions of all the date/time classes, and of quantity classes. Further, it allows the semantics of intervals to be stated in one place unequivocally, including the conditions for strict comparison.
The basic semantics are derived from the class `Interval<T>`, described in the support RM."/>
<jurisdiction>
<coding>
<system value="http://unstats.un.org/unsd/methods/m49/m49.htm"/>
<code value="001"/>
</coding>
</jurisdiction>
<fhirVersion value="5.0.0"/>
<mapping>
<identity value="rim"/>
<uri value="http://hl7.org/v3"/>
<name value="RIM Mapping"/>
</mapping>
<kind value="logical"/>
<abstract value="false"/>
<type value="http://openehr.org/fhir/StructureDefinition/DV_INTERVAL"/>
<baseDefinition
value="http://openehr.org/fhir/StructureDefinition/DATA_VALUE"/>
<derivation value="specialization"/>
<snapshot>
<extension
url="http://hl7.org/fhir/tools/StructureDefinition/snapshot-base-version">
<valueString value="0.1.0"/>
</extension>
<element id="DV_INTERVAL">
<path value="DV_INTERVAL"/>
<short value="Generic class defining an interval"/>
<definition
value="Generic class defining an interval (i.e. range) of a comparable type. An interval is a contiguous subrange of a comparable base type. Used to define intervals of dates, times, quantities (whose units match) and so on. The type parameter, `T`, must be a descendant of the type `DV_ORDERED`, which is necessary (but not sufficient) for instances to be compared (`_strictly_comparable_` is also needed).
Without the `DV_INTERVAL` class, quite a few more `DV_` classes would be needed to express logical intervals, namely interval versions of all the date/time classes, and of quantity classes. Further, it allows the semantics of intervals to be stated in one place unequivocally, including the conditions for strict comparison.
The basic semantics are derived from the class `Interval<T>`, described in the support RM."/>
<min value="0"/>
<max value="*"/>
<base>
<path value="Base"/>
<min value="0"/>
<max value="*"/>
</base>
<constraint>
<key value="limits-consistent"/>
<severity value="error"/>
<human value="Limits consistent must satisfy range constraints"/>
<expression
value="(upper_unbounded.not() and lower_unbounded.not()) implies (lower.is_strictly_comparable_to(upper) and lower <= upper)"/>
</constraint>
<isModifier value="false"/>
<mapping>
<identity value="rim"/>
<map value="n/a"/>
</mapping>
</element>
<element id="DV_INTERVAL.CR">
<path value="DV_INTERVAL.CR"/>
<short value="Carriage return character."/>
<definition value="Carriage return character."/>
<min value="1"/>
<max value="1"/>
<base>
<path value="BASIC_DEFINITIONS.CR"/>
<min value="1"/>
<max value="1"/>
</base>
<type>
<code value="string"/>
</type>
<isModifier value="false"/>
</element>
<element id="DV_INTERVAL.LF">
<path value="DV_INTERVAL.LF"/>
<short value="Line feed character."/>
<definition value="Line feed character."/>
<min value="1"/>
<max value="1"/>
<base>
<path value="BASIC_DEFINITIONS.LF"/>
<min value="1"/>
<max value="1"/>
</base>
<type>
<code value="string"/>
</type>
<isModifier value="false"/>
</element>
<element id="DV_INTERVAL.Local-terminology-id">
<path value="DV_INTERVAL.Local_terminology_id"/>
<short value="Predefined terminology identifier"/>
<definition
value="Predefined terminology identifier to indicate it is local to the knowledge resource in which it occurs, e.g. an archetype"/>
<min value="1"/>
<max value="1"/>
<base>
<path value="OPENEHR_DEFINITIONS.Local_terminology_id"/>
<min value="1"/>
<max value="1"/>
</base>
<type>
<code value="string"/>
</type>
<isModifier value="false"/>
</element>
<element id="DV_INTERVAL.lower">
<path value="DV_INTERVAL.lower"/>
<short value="Lower bound of the interval."/>
<definition
value="Lower bound of the interval. Void if the interval is lower-unbounded."/>
<min value="0"/>
<max value="1"/>
<base>
<path value="DV_INTERVAL.lower"/>
<min value="0"/>
<max value="1"/>
</base>
<type>
<code value="http://openehr.org/fhir/StructureDefinition/DV_ORDERED"/>
</type>
<isModifier value="false"/>
</element>
<element id="DV_INTERVAL.upper">
<path value="DV_INTERVAL.upper"/>
<short value="Upper bound of the interval."/>
<definition
value="Upper bound of the interval. Void if the interval is upper-unbounded."/>
<min value="0"/>
<max value="1"/>
<base>
<path value="DV_INTERVAL.upper"/>
<min value="0"/>
<max value="1"/>
</base>
<type>
<code value="http://openehr.org/fhir/StructureDefinition/DV_ORDERED"/>
</type>
<isModifier value="false"/>
</element>
<element id="DV_INTERVAL.lower-unbounded">
<path value="DV_INTERVAL.lower_unbounded"/>
<short value="True if the interval has no lower bound."/>
<definition
value="True if the interval has no lower bound. If True, lower is Void."/>
<min value="1"/>
<max value="1"/>
<base>
<path value="DV_INTERVAL.lower_unbounded"/>
<min value="1"/>
<max value="1"/>
</base>
<type>
<code value="boolean"/>
</type>
<isModifier value="false"/>
</element>
<element id="DV_INTERVAL.upper-unbounded">
<path value="DV_INTERVAL.upper_unbounded"/>
<short value="True if the interval has no upper bound."/>
<definition
value="True if the interval has no upper bound. If True, upper is Void."/>
<min value="1"/>
<max value="1"/>
<base>
<path value="DV_INTERVAL.upper_unbounded"/>
<min value="1"/>
<max value="1"/>
</base>
<type>
<code value="boolean"/>
</type>
<isModifier value="false"/>
</element>
<element id="DV_INTERVAL.lower-included">
<path value="DV_INTERVAL.lower_included"/>
<short value="True if the lower bound is included in the interval."/>
<definition
value="True if the lower bound is included in the interval. Only meaningful if lower_unbounded is False."/>
<min value="1"/>
<max value="1"/>
<base>
<path value="DV_INTERVAL.lower_included"/>
<min value="1"/>
<max value="1"/>
</base>
<type>
<code value="boolean"/>
</type>
<isModifier value="false"/>
</element>
<element id="DV_INTERVAL.upper-included">
<path value="DV_INTERVAL.upper_included"/>
<short value="True if the upper bound is included in the interval."/>
<definition
value="True if the upper bound is included in the interval. Only meaningful if upper_unbounded is False."/>
<min value="1"/>
<max value="1"/>
<base>
<path value="DV_INTERVAL.upper_included"/>
<min value="1"/>
<max value="1"/>
</base>
<type>
<code value="boolean"/>
</type>
<isModifier value="false"/>
</element>
</snapshot>
<differential>
<element id="DV_INTERVAL">
<path value="DV_INTERVAL"/>
<short value="Generic class defining an interval"/>
<definition
value="Generic class defining an interval (i.e. range) of a comparable type. An interval is a contiguous subrange of a comparable base type. Used to define intervals of dates, times, quantities (whose units match) and so on. The type parameter, `T`, must be a descendant of the type `DV_ORDERED`, which is necessary (but not sufficient) for instances to be compared (`_strictly_comparable_` is also needed).
Without the `DV_INTERVAL` class, quite a few more `DV_` classes would be needed to express logical intervals, namely interval versions of all the date/time classes, and of quantity classes. Further, it allows the semantics of intervals to be stated in one place unequivocally, including the conditions for strict comparison.
The basic semantics are derived from the class `Interval<T>`, described in the support RM."/>
<min value="0"/>
<max value="*"/>
<constraint>
<key value="limits-consistent"/>
<severity value="error"/>
<human value="Limits consistent must satisfy range constraints"/>
<expression
value="(upper_unbounded.not() and lower_unbounded.not()) implies (lower.is_strictly_comparable_to(upper) and lower <= upper)"/>
</constraint>
<isModifier value="false"/>
</element>
<element id="DV_INTERVAL.lower">
<path value="DV_INTERVAL.lower"/>
<short value="Lower bound of the interval."/>
<definition
value="Lower bound of the interval. Void if the interval is lower-unbounded."/>
<min value="0"/>
<max value="1"/>
<type>
<code value="http://openehr.org/fhir/StructureDefinition/DV_ORDERED"/>
</type>
<isModifier value="false"/>
</element>
<element id="DV_INTERVAL.upper">
<path value="DV_INTERVAL.upper"/>
<short value="Upper bound of the interval."/>
<definition
value="Upper bound of the interval. Void if the interval is upper-unbounded."/>
<min value="0"/>
<max value="1"/>
<type>
<code value="http://openehr.org/fhir/StructureDefinition/DV_ORDERED"/>
</type>
<isModifier value="false"/>
</element>
<element id="DV_INTERVAL.lower-unbounded">
<path value="DV_INTERVAL.lower_unbounded"/>
<short value="True if the interval has no lower bound."/>
<definition
value="True if the interval has no lower bound. If True, lower is Void."/>
<min value="1"/>
<max value="1"/>
<type>
<code value="boolean"/>
</type>
<isModifier value="false"/>
</element>
<element id="DV_INTERVAL.upper-unbounded">
<path value="DV_INTERVAL.upper_unbounded"/>
<short value="True if the interval has no upper bound."/>
<definition
value="True if the interval has no upper bound. If True, upper is Void."/>
<min value="1"/>
<max value="1"/>
<type>
<code value="boolean"/>
</type>
<isModifier value="false"/>
</element>
<element id="DV_INTERVAL.lower-included">
<path value="DV_INTERVAL.lower_included"/>
<short value="True if the lower bound is included in the interval."/>
<definition
value="True if the lower bound is included in the interval. Only meaningful if lower_unbounded is False."/>
<min value="1"/>
<max value="1"/>
<type>
<code value="boolean"/>
</type>
<isModifier value="false"/>
</element>
<element id="DV_INTERVAL.upper-included">
<path value="DV_INTERVAL.upper_included"/>
<short value="True if the upper bound is included in the interval."/>
<definition
value="True if the upper bound is included in the interval. Only meaningful if upper_unbounded is False."/>
<min value="1"/>
<max value="1"/>
<type>
<code value="boolean"/>
</type>
<isModifier value="false"/>
</element>
</differential>
</StructureDefinition>