<StructureDefinition xmlns="http://hl7.org/fhir">
  <meta>
    <lastUpdated value="2026-04-01T11:43:02.2015158+00:00" />
  </meta>
  <url value="http://hl7.org/fhir/StructureDefinition/ContactPoint" />
  <name value="ContactPoint" />
  <status value="draft" />
  <date value="2019-10-24T11:53:00+11:00" />
  <publisher value="HL7 FHIR Standard" />
  <contact>
    <telecom>
      <system value="url" />
      <value value="http://hl7.org/fhir" />
    </telecom>
  </contact>
  <description value="Base StructureDefinition for ContactPoint Type" />
  <purpose value="Need to track phone, fax, mobile, sms numbers, email addresses, twitter tags, etc." />
  <fhirVersion value="3.0.2" />
  <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/Element" />
  <derivation value="specialization" />
  <differential>
    <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." />
      <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()" />
        <xpath value="not(exists(f:value)) or exists(f:system)" />
      </constraint>
      <mapping>
        <identity value="v2" />
        <map value="XTN" />
      </mapping>
      <mapping>
        <identity value="rim" />
        <map value="TEL" />
      </mapping>
      <mapping>
        <identity value="servd" />
        <map value="ContactPoint" />
      </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." />
      <max value="1" />
      <type>
        <code value="code" />
      </type>
      <condition value="cpt-2" />
      <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" />
        <valueSetReference>
          <reference value="http://hl7.org/fhir/ValueSet/contact-point-system" />
        </valueSetReference>
      </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." />
      <max value="1" />
      <type>
        <code value="string" />
      </type>
      <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="This is labeled as &quot;Is Modifier&quot; because applications should not mistake a temporary or old contact etc.for a current/permanent one. 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." />
      <max value="1" />
      <type>
        <code value="code" />
      </type>
      <isModifier value="true" />
      <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" />
        <valueSetReference>
          <reference value="http://hl7.org/fhir/ValueSet/contact-point-use" />
        </valueSetReference>
      </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. Contacts are ranked with lower values coming before higher values." />
      <comment value="Note that rank does not necessarily follow the order in which the contacts are represented in the instance." />
      <max value="1" />
      <type>
        <code value="positiveInt" />
      </type>
      <isSummary value="true" />
      <mapping>
        <identity value="v2" />
        <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." />
      <max value="1" />
      <type>
        <code value="Period" />
      </type>
      <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>
  </differential>
</StructureDefinition>