SGHI FHIR Profile Implementation Guide
0.1.0 - ci-build

SGHI FHIR Profile Implementation Guide, published by Kathurima Kimathi. 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/savannahghi/sil_fhir_profile_ig/ and changes regularly. See the Directory of published versions

## Data Type Profile: SGHIContactPoint - XML Profile

Draft as of 2026-04-27

XML representation of the contact-point data type profile.

Raw xml | Download

    <StructureDefinition xmlns="http://hl7.org/fhir">
      <id value="contact-point"/>
      <text>
        <status value="extensions"/>
        <div xmlns="http://www.w3.org/1999/xhtml"><p class="res-header-id"><b>Generated Narrative: StructureDefinition contact-point</b></p><a name="contact-point"> </a><a name="hccontact-point"> </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 &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 src="data:image/png;base64, " 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-contact-point-definitions.html#ContactPoint">ContactPoint</a><a name="ContactPoint"> </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"><span style="opacity: 0.5">0</span><span style="opacity: 0.5">..</span><span style="opacity: 0.5">*</span></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#ContactPoint">ContactPoint</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"><span style="opacity: 0.5">Details of a Technology mediated contact point (phone, fax, email, etc.)</span></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_element.gif" alt="." style="background-color: #F7F7F7; background-color: inherit" title="Element" class="hierarchy"/> <a href="StructureDefinition-contact-point-definitions.html#ContactPoint.system">system</a><a name="ContactPoint.system"> </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..<span style="opacity: 0.5">1</span></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 style="opacity: 0.5; opacity: 0.5" href="http://hl7.org/fhir/R5/datatypes.html#code">code</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"><span style="opacity: 0.5">phone | fax | email | pager | url | sms | other</span></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_element.gif" alt="." style="background-color: white; background-color: inherit" title="Element" class="hierarchy"/> <a href="StructureDefinition-contact-point-definitions.html#ContactPoint.value">value</a><a name="ContactPoint.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"/><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..<span style="opacity: 0.5">1</span></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="opacity: 0.5; opacity: 0.5" href="http://hl7.org/fhir/R5/datatypes.html#string">string</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"><span style="opacity: 0.5">The actual contact point details</span></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, " alt="doco" style="background-color: inherit"/> Documentation for this format</a></td></tr></table></div>
      </text>
      <url
           value="https://fhir.slade360.co.ke/fhir/StructureDefinition/contact-point"/>
      <version value="0.1.0"/>
      <name value="SGHIContactPoint"/>
      <title value="SGHI ContactPoint"/>
      <status value="draft"/>
      <date value="2026-04-27T09:21:43+00:00"/>
      <publisher value="Kathurima Kimathi"/>
      <contact>
        <name value="Kathurima Kimathi"/>
        <telecom>
          <system value="url"/>
          <value value="https://www.linkedin.com/in/kathurima-kimathi/"/>
        </telecom>
        <telecom>
          <system value="email"/>
          <value value="kathurimakimathi415@gmail.com"/>
        </telecom>
      </contact>
      <contact>
        <name value="Oscar John"/>
        <telecom>
          <system value="email"/>
          <value value="oscarjohnotieno@gmail.com"/>
          <use value="work"/>
        </telecom>
      </contact>
      <contact>
        <name value="Kennedy Omondi"/>
        <telecom>
          <system value="email"/>
          <value value="kennankole@gmail.com"/>
          <use value="work"/>
        </telecom>
      </contact>
      <description value="A custom contact point with stricter cardinality"/>
      <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>
      <mapping>
        <identity value="servd"/>
        <uri value="http://www.omg.org/spec/ServD/1.0/"/>
        <name value="ServD"/>
      </mapping>
      <kind value="complex-type"/>
      <abstract value="false"/>
      <type value="ContactPoint"/>
      <baseDefinition
                      value="http://hl7.org/fhir/StructureDefinition/ContactPoint"/>
      <derivation value="constraint"/>
      <snapshot>
        <extension
                   url="http://hl7.org/fhir/tools/StructureDefinition/snapshot-base-version">
          <valueString value="5.0.0"/>
        </extension>
        <element id="ContactPoint">
          <path value="ContactPoint"/>
          <short
                 value="Details of a Technology mediated contact point (phone, fax, email, etc.)"/>
          <definition
                      value="Details for all kinds of technology mediated contact points for a person or organization, including telephone, email, etc."/>
          <min value="0"/>
          <max value="*"/>
          <base>
            <path value="ContactPoint"/>
            <min value="0"/>
            <max value="*"/>
          </base>
          <constraint>
            <key value="cpt-2"/>
            <severity value="error"/>
            <human value="A system is required if a value is provided."/>
            <expression value="value.empty() or system.exists()"/>
            <source value="http://hl7.org/fhir/StructureDefinition/ContactPoint"/>
          </constraint>
          <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"/>
          <mapping>
            <identity value="rim"/>
            <map value="n/a,TEL"/>
          </mapping>
          <mapping>
            <identity value="v2"/>
            <map value="XTN"/>
          </mapping>
          <mapping>
            <identity value="servd"/>
            <map value="ContactPoint"/>
          </mapping>
        </element>
        <element id="ContactPoint.id">
          <path value="ContactPoint.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>
          <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="ContactPoint.extension">
          <path value="ContactPoint.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="ContactPoint.system">
          <path value="ContactPoint.system"/>
          <short value="phone | fax | email | pager | url | sms | other"/>
          <definition
                      value="Telecommunications form for contact point - what communications system is required to make use of the contact."/>
          <min value="1"/>
          <max value="1"/>
          <base>
            <path value="ContactPoint.system"/>
            <min value="0"/>
            <max value="1"/>
          </base>
          <type>
            <code value="code"/>
          </type>
          <condition value="cpt-2"/>
          <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"/>
          <binding>
            <extension
                       url="http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName">
              <valueString value="ContactPointSystem"/>
            </extension>
            <strength value="required"/>
            <description value="Telecommunications form for contact point."/>
            <valueSet
                      value="http://hl7.org/fhir/ValueSet/contact-point-system|5.0.0"/>
          </binding>
          <mapping>
            <identity value="v2"/>
            <map value="XTN.3"/>
          </mapping>
          <mapping>
            <identity value="rim"/>
            <map value="./scheme"/>
          </mapping>
          <mapping>
            <identity value="servd"/>
            <map value="./ContactPointType"/>
          </mapping>
        </element>
        <element id="ContactPoint.value">
          <path value="ContactPoint.value"/>
          <short value="The actual contact point details"/>
          <definition
                      value="The actual contact point details, in a form that is meaningful to the designated communication system (i.e. phone number or email address)."/>
          <comment
                   value="Additional text data such as phone extension numbers, or notes about use of the contact are sometimes included in the value."/>
          <requirements
                        value="Need to support legacy numbers that are not in a tightly controlled format."/>
          <min value="1"/>
          <max value="1"/>
          <base>
            <path value="ContactPoint.value"/>
            <min value="0"/>
            <max value="1"/>
          </base>
          <type>
            <code value="string"/>
          </type>
          <condition value="cpt-2"/>
          <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="XTN.1 (or XTN.12)"/>
          </mapping>
          <mapping>
            <identity value="rim"/>
            <map value="./url"/>
          </mapping>
          <mapping>
            <identity value="servd"/>
            <map value="./Value"/>
          </mapping>
        </element>
        <element id="ContactPoint.use">
          <path value="ContactPoint.use"/>
          <short
                 value="home | work | temp | old | mobile - purpose of this contact point"/>
          <definition value="Identifies the purpose for the contact point."/>
          <comment
                   value="Applications can assume that a contact is current unless it explicitly says that it is temporary or old."/>
          <requirements
                        value="Need to track the way a person uses this contact, so a user can choose which is appropriate for their purpose."/>
          <min value="0"/>
          <max value="1"/>
          <base>
            <path value="ContactPoint.use"/>
            <min value="0"/>
            <max value="1"/>
          </base>
          <type>
            <code value="code"/>
          </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>
          <isModifier value="true"/>
          <isModifierReason
                            value="This is labeled as &quot;Is Modifier&quot; because applications should not mistake a temporary or old contact etc.for a current/permanent one"/>
          <isSummary value="true"/>
          <binding>
            <extension
                       url="http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName">
              <valueString value="ContactPointUse"/>
            </extension>
            <strength value="required"/>
            <description value="Use of contact point."/>
            <valueSet
                      value="http://hl7.org/fhir/ValueSet/contact-point-use|5.0.0"/>
          </binding>
          <mapping>
            <identity value="v2"/>
            <map value="XTN.2 - but often indicated by field"/>
          </mapping>
          <mapping>
            <identity value="rim"/>
            <map value="unique(./use)"/>
          </mapping>
          <mapping>
            <identity value="servd"/>
            <map value="./ContactPointPurpose"/>
          </mapping>
        </element>
        <element id="ContactPoint.rank">
          <path value="ContactPoint.rank"/>
          <short value="Specify preferred order of use (1 = highest)"/>
          <definition
                      value="Specifies a preferred order in which to use a set of contacts. ContactPoints with lower rank values are more preferred than those with higher rank values."/>
          <comment
                   value="Note that rank does not necessarily follow the order in which the contacts are represented in the instance.

    Ranks need not be unique.  E.g. it's possible to have multiple contacts with rank=1.  If the ranks have different systems or uses, this would be interpreted to mean &quot;X is my most preferred phone number, Y is my most preferred email address&quot; or &quot;X is my preferred home email and Y is my preferred work email&quot;.  If the system and use for equally-ranked contacts are the same, then the level of preference is equivalent for both repetitions.

    Ranks need not be sequential and not all repetitions must have a rank.  For example, it's possible to have 4 contacts with ranks of 2, 5 and two with no rank specified.  That would be interpreted to mean the first is preferred over the second and no preference stated for the remaining contacts."/>
          <min value="0"/>
          <max value="1"/>
          <base>
            <path value="ContactPoint.rank"/>
            <min value="0"/>
            <max value="1"/>
          </base>
          <type>
            <code value="positiveInt"/>
          </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>
          <isModifier value="false"/>
          <isSummary value="true"/>
          <mapping>
            <identity value="v2"/>
            <map value="n/a"/>
          </mapping>
          <mapping>
            <identity value="rim"/>
            <map value="n/a"/>
          </mapping>
        </element>
        <element id="ContactPoint.period">
          <path value="ContactPoint.period"/>
          <short value="Time period when the contact point was/is in use"/>
          <definition value="Time period when the contact point was/is in use."/>
          <min value="0"/>
          <max value="1"/>
          <base>
            <path value="ContactPoint.period"/>
            <min value="0"/>
            <max value="1"/>
          </base>
          <type>
            <code value="Period"/>
          </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>
          <isModifier value="false"/>
          <isSummary value="true"/>
          <mapping>
            <identity value="v2"/>
            <map value="N/A"/>
          </mapping>
          <mapping>
            <identity value="rim"/>
            <map value="./usablePeriod[type=&quot;IVL&lt;TS&gt;&quot;]"/>
          </mapping>
          <mapping>
            <identity value="servd"/>
            <map value="./StartDate and ./EndDate"/>
          </mapping>
        </element>
      </snapshot>
      <differential>
        <element id="ContactPoint">
          <path value="ContactPoint"/>
        </element>
        <element id="ContactPoint.system">
          <path value="ContactPoint.system"/>
          <min value="1"/>
        </element>
        <element id="ContactPoint.value">
          <path value="ContactPoint.value"/>
          <min value="1"/>
        </element>
      </differential>
    </StructureDefinition>