<StructureDefinition xmlns="http://hl7.org/fhir">
  <meta>
    <lastUpdated value="2026-04-01T11:37:56.8675685+00:00" />
  </meta>
  <url value="http://hl7.org/fhir/StructureDefinition/Address" />
  <name value="Address" />
  <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 Address Type" />
  <purpose value="Need to be able to record postal addresses, along with notes about their use." />
  <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>
  <mapping>
    <identity value="vcard" />
    <uri value="http://w3.org/vcard" />
    <name value="vCard Mapping" />
  </mapping>
  <kind value="complex-type" />
  <abstract value="false" />
  <type value="Address" />
  <baseDefinition value="http://hl7.org/fhir/StructureDefinition/Element" />
  <derivation value="specialization" />
  <differential>
    <element id="Address">
      <path value="Address" />
      <short value="An address expressed using postal conventions (as opposed to GPS or other location definition formats)" />
      <definition value="An address expressed using postal conventions (as opposed to GPS or other location definition formats).  This data type may be used to convey addresses for use in delivering mail as well as for visiting locations which might not be valid for mail delivery.  There are a variety of postal address formats defined around the world." />
      <comment value="Note: address is for postal addresses, not physical locations." />
      <mapping>
        <identity value="v2" />
        <map value="XAD" />
      </mapping>
      <mapping>
        <identity value="rim" />
        <map value="AD" />
      </mapping>
      <mapping>
        <identity value="servd" />
        <map value="Address" />
      </mapping>
    </element>
    <element id="Address.use">
      <path value="Address.use" />
      <short value="home | work | temp | old - purpose of this address" />
      <definition value="The purpose of this address." />
      <comment value="This is labeled as &quot;Is Modifier&quot; because applications should not mistake a temporary or old address etc.for a current/permanent one. Applications can assume that an address is current unless it explicitly says that it is temporary or old." />
      <requirements value="Allows an appropriate address to be chosen from a list of many." />
      <max value="1" />
      <type>
        <code value="code" />
      </type>
      <example>
        <label value="General" />
        <valueCode value="home" />
      </example>
      <isModifier value="true" />
      <isSummary value="true" />
      <binding>
        <extension url="http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName">
          <valueString value="AddressUse" />
        </extension>
        <strength value="required" />
        <description value="The use of an address" />
        <valueSetReference>
          <reference value="http://hl7.org/fhir/ValueSet/address-use" />
        </valueSetReference>
      </binding>
      <mapping>
        <identity value="v2" />
        <map value="XAD.7" />
      </mapping>
      <mapping>
        <identity value="rim" />
        <map value="unique(./use)" />
      </mapping>
      <mapping>
        <identity value="servd" />
        <map value="./AddressPurpose" />
      </mapping>
    </element>
    <element id="Address.type">
      <path value="Address.type" />
      <short value="postal | physical | both" />
      <definition value="Distinguishes between physical addresses (those you can visit) and mailing addresses (e.g. PO Boxes and care-of addresses). Most addresses are both." />
      <max value="1" />
      <type>
        <code value="code" />
      </type>
      <example>
        <label value="General" />
        <valueCode value="both" />
      </example>
      <isSummary value="true" />
      <binding>
        <extension url="http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName">
          <valueString value="AddressType" />
        </extension>
        <strength value="required" />
        <description value="The type of an address (physical / postal)" />
        <valueSetReference>
          <reference value="http://hl7.org/fhir/ValueSet/address-type" />
        </valueSetReference>
      </binding>
      <mapping>
        <identity value="v2" />
        <map value="XAD.18" />
      </mapping>
      <mapping>
        <identity value="rim" />
        <map value="unique(./use)" />
      </mapping>
      <mapping>
        <identity value="vcard" />
        <map value="address type parameter" />
      </mapping>
    </element>
    <element id="Address.text">
      <path value="Address.text" />
      <short value="Text representation of the address" />
      <definition value="A full text representation of the address." />
      <comment value="Can provide both a text representation and parts." />
      <requirements value="A renderable, unencoded form." />
      <max value="1" />
      <type>
        <code value="string" />
      </type>
      <example>
        <label value="General" />
        <valueString value="137 Nowhere Street, Erewhon 9132" />
      </example>
      <isSummary value="true" />
      <mapping>
        <identity value="v2" />
        <map value="XAD.1 + XAD.2 + XAD.3 + XAD.4 + XAD.5 + XAD.6" />
      </mapping>
      <mapping>
        <identity value="rim" />
        <map value="./formatted" />
      </mapping>
      <mapping>
        <identity value="vcard" />
        <map value="address label parameter" />
      </mapping>
    </element>
    <element id="Address.line">
      <path value="Address.line" />
      <short value="Street name, number, direction &amp; P.O. Box etc." />
      <definition value="This component contains the house number, apartment number, street name, street direction,  P.O. Box number, delivery hints, and similar address information." />
      <requirements value="home | work | temp | old - purpose of this address." />
      <type>
        <code value="string" />
      </type>
      <orderMeaning value="The order in which lines should appear in an address label" />
      <example>
        <label value="General" />
        <valueString value="137 Nowhere Street" />
      </example>
      <isSummary value="true" />
      <mapping>
        <identity value="v2" />
        <map value="XAD.1 + XAD.2 (note: XAD.1 and XAD.2 have different meanings for a company address than for a person address)" />
      </mapping>
      <mapping>
        <identity value="rim" />
        <map value="AD.part[parttype = AL]" />
      </mapping>
      <mapping>
        <identity value="vcard" />
        <map value="street" />
      </mapping>
      <mapping>
        <identity value="servd" />
        <map value="./StreetAddress (newline delimitted)" />
      </mapping>
    </element>
    <element id="Address.city">
      <path value="Address.city" />
      <short value="Name of city, town etc." />
      <definition value="The name of the city, town, village or other community or delivery center." />
      <alias value="Municpality" />
      <max value="1" />
      <type>
        <code value="string" />
      </type>
      <example>
        <label value="General" />
        <valueString value="Erewhon" />
      </example>
      <isSummary value="true" />
      <mapping>
        <identity value="v2" />
        <map value="XAD.3" />
      </mapping>
      <mapping>
        <identity value="rim" />
        <map value="AD.part[parttype = CTY]" />
      </mapping>
      <mapping>
        <identity value="vcard" />
        <map value="locality" />
      </mapping>
      <mapping>
        <identity value="servd" />
        <map value="./Jurisdiction" />
      </mapping>
    </element>
    <element id="Address.district">
      <path value="Address.district" />
      <short value="District name (aka county)" />
      <definition value="The name of the administrative area (county)." />
      <comment value="District is sometimes known as county, but in some regions 'county' is used in place of city (municipality), so county name should be conveyed in city instead." />
      <alias value="County" />
      <max value="1" />
      <type>
        <code value="string" />
      </type>
      <example>
        <label value="General" />
        <valueString value="Madison" />
      </example>
      <isSummary value="true" />
      <mapping>
        <identity value="v2" />
        <map value="XAD.9" />
      </mapping>
      <mapping>
        <identity value="rim" />
        <map value="AD.part[parttype = CNT | CPA]" />
      </mapping>
    </element>
    <element id="Address.state">
      <path value="Address.state" />
      <short value="Sub-unit of country (abbreviations ok)" />
      <definition value="Sub-unit of a country with limited sovereignty in a federally organized country. A code may be used if codes are in common use (i.e. US 2 letter state codes)." />
      <alias value="Province" />
      <alias value="Territory" />
      <max value="1" />
      <type>
        <code value="string" />
      </type>
      <isSummary value="true" />
      <mapping>
        <identity value="v2" />
        <map value="XAD.4" />
      </mapping>
      <mapping>
        <identity value="rim" />
        <map value="AD.part[parttype = STA]" />
      </mapping>
      <mapping>
        <identity value="vcard" />
        <map value="region" />
      </mapping>
      <mapping>
        <identity value="servd" />
        <map value="./Region" />
      </mapping>
    </element>
    <element id="Address.postalCode">
      <path value="Address.postalCode" />
      <short value="Postal code for area" />
      <definition value="A postal code designating a region defined by the postal service." />
      <alias value="Zip" />
      <max value="1" />
      <type>
        <code value="string" />
      </type>
      <example>
        <label value="General" />
        <valueString value="9132" />
      </example>
      <isSummary value="true" />
      <mapping>
        <identity value="v2" />
        <map value="XAD.5" />
      </mapping>
      <mapping>
        <identity value="rim" />
        <map value="AD.part[parttype = ZIP]" />
      </mapping>
      <mapping>
        <identity value="vcard" />
        <map value="code" />
      </mapping>
      <mapping>
        <identity value="servd" />
        <map value="./PostalIdentificationCode" />
      </mapping>
    </element>
    <element id="Address.country">
      <path value="Address.country" />
      <short value="Country (e.g. can be ISO 3166 2 or 3 letter code)" />
      <definition value="Country - a nation as commonly understood or generally accepted." />
      <comment value="ISO 3166 3 letter codes can be used in place of a full country name." />
      <max value="1" />
      <type>
        <code value="string" />
      </type>
      <isSummary value="true" />
      <mapping>
        <identity value="v2" />
        <map value="XAD.6" />
      </mapping>
      <mapping>
        <identity value="rim" />
        <map value="AD.part[parttype = CNT]" />
      </mapping>
      <mapping>
        <identity value="vcard" />
        <map value="country" />
      </mapping>
      <mapping>
        <identity value="servd" />
        <map value="./Country" />
      </mapping>
    </element>
    <element id="Address.period">
      <path value="Address.period" />
      <short value="Time period when address was/is in use" />
      <definition value="Time period when address was/is in use." />
      <requirements value="Allows addresses to be placed in historical context." />
      <max value="1" />
      <type>
        <code value="Period" />
      </type>
      <example>
        <label value="General" />
        <valuePeriod>
          <start value="2010-03-23" />
          <end value="2010-07-01" />
        </valuePeriod>
      </example>
      <isSummary value="true" />
      <mapping>
        <identity value="v2" />
        <map value="XAD.12 / XAD.13 + XAD.14" />
      </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>