<StructureDefinition xmlns="http://hl7.org/fhir">
  <id value="nl-core-humanname" />
  <url value="http://fhir.nl/fhir/StructureDefinition/nl-core-humanname" />
  <version value="2.0.10" />
  <name value="nl-core-humanname" />
  <title value="nl-core-humanname" />
  <status value="active" />
  <publisher value="HL7 Netherlands" />
  <contact>
    <name value="Nictiz" />
    <telecom>
      <system value="url" />
      <value value="https://www.nictiz.nl" />
      <use value="work" />
    </telecom>
  </contact>
  <description value="Base datatype for HumanName Type with additions for Dutch realm names. Dutch names break down the family into maximum of 4 parts that are important to know separately in some if not most use cases." />
  <purpose value="Name information is used to identify and address person." />
  <copyright value="CC0" />
  <fhirVersion value="3.0.2" />
  <mapping>
    <identity value="hcim-nameinformation-v1.0.1-2017EN" />
    <uri value="https://zibs.nl/wiki/NameInformation-v1.0.1(2017EN)" />
    <name value="HCIM NameInformation-v1.0.1(2017EN)" />
  </mapping>
  <mapping>
    <identity value="hcim-nameinformation-v3.0-2016EN" />
    <uri value="https://zibs.nl/wiki/Patient-v3.0(2016EN)" />
    <name value="NameInformation as part of HCIM Patient-v3.0(2016EN)" />
    <comment value="NameInformation has become an independent information model as of release 2017 of the HCIMs" />
  </mapping>
  <mapping>
    <identity value="hcim-nameinformation-v2.0.1-2015EN" />
    <uri value="https://zibs.nl/wiki/Patient-v2.0.1(2015EN)" />
    <name value="NameInformation as part of HCIM Patient-v2.0.1(2015EN)" />
    <comment value="NameInformation has become an independent information model as of release 2017 of the HCIMs" />
  </mapping>
  <mapping>
    <identity value="BRP" />
    <uri value="https://nl.wikipedia.org/wiki/Basisregistratie_Personen" />
    <name value="Basisregistratie Personen" />
    <comment value="Voorheen GBA - Gemeentelijke basisregistratie" />
  </mapping>
  <kind value="complex-type" />
  <abstract value="false" />
  <type value="HumanName" />
  <baseDefinition value="http://hl7.org/fhir/StructureDefinition/HumanName" />
  <derivation value="constraint" />
  <differential>
    <element id="HumanName">
      <path value="HumanName" />
      <comment value="Dutch names require that certain name parts are separately communicable. For this reason, extensions are added onto the base HumanName element to mark the meaning of each part. A Dutch HumanName is still a proper FHIR HumanName; however, there might be an incompatibilty with the default FHIR mechanism for communicating given names. See the compatibility note below for more information.&#xD;&#xA;&#xD;&#xA;The extension elements cover birth name (NL: eigennaam / geslachtsnaam) and partner/spouse name. Both may have a prefix (NL: voorvoegsel). When a person marries, he or she may keep their own name, assume the partner name, append the partner name to their own name, or the other way around.&#xD;&#xA;&#xD;&#xA;**Incompatibility note**: It has come to light that this specification deviates from the way that the HumanName datatype is normally used. This will be fixed in a future release. However, current implementations should be aware of the special considerations regarding the use of this specification. &#xD;&#xA;&#xD;&#xA;The issue at hand is the way alternative representations of a name, like initials or a nickname, are communicated. Normally this is done using multiple HumanName instances, which are differentiated using the `.use` element. However, this specification allows for including all alternative representations in the _same_ HumanName instance, with the expectation that the extensions provide enough information for receiving systems to differentiate them. However, this means that contrary to the normal usage of this datatype, repetitions of `.given` names cannot be concatenated to get the full list of given names; the list might be a mix of full names, nicknames and initials.&#xD;&#xA;&#xD;&#xA;Since multiple implementations are based on this specification, sending systems are advised (but not required) to keep the approach with one HumanName instance, while receiving systems should be able to handle this one-instance approach. More specifically:&#xD;&#xA;&#xD;&#xA;* Sending and receiving systems SHOULD always use the specified extensions when using this datatype.&#xD;&#xA;* Sending systems are encouraged to populate the `.text` element to unambigiously communicate the person's name.&#xD;&#xA;* Sending systems are encouraged to send either the full given names or the initials, but not both. This alleviates the duplication of names in `.given`.&#xD;&#xA;* When a sending system uses the current one-instance approach for communicating multiple representations, `.use` MAY NOT be populated. After all, it is not possible to select a single `.use` when the instance contains different representations.&#xD;&#xA;* When a receiving system interprets the instance as the single-instance-multiple-representations approach, the `.given` names marked as initials SHOULD be interpreted as alternatives to the full given names. Note the underlying HCIM expects both the _list_ of full names and _list_ of initials to be a single string; there's no match for an initial to a full name. The instance SHOULD be regarded as using this approach when:&#xD;&#xA;  * They encounter a single instance&#xD;&#xA;  * And the `.use` element is absent&#xD;&#xA;  * And all the name parts are differentiated using the specified extensions&#xD;&#xA;* In any other circumstance, receiving systems SHOULD interpret the usage as the normal use.&#xD;&#xA;&#xD;&#xA;Example: miss Irma XXX_Helleman marries mister de Haas and assumes the name Irma XXX_Helleman-de Haas:&#xD;&#xA;&#xD;&#xA;* `.family` = &quot;XXX_Helleman-de Haas&quot;&#xD;&#xA;* `.given` = &quot;Irma&quot; (with `.given:iso21090EnQualifier` = _BR_)&#xD;&#xA;* `.family:humannameOwnName` = &quot;XXX_Helleman&quot;&#xD;&#xA;* `.family:humannamePartnerPrefix` = &quot;de &quot;&#xD;&#xA;* `.family:humannamePartnerName` = &quot;Haas&quot;" />
      <example>
        <label value="Structured HumanName (preferred above unstructured)" />
        <valueHumanName>
          <extension url="http://hl7.org/fhir/StructureDefinition/humanname-assembly-order">
            <valueCode value="NL4" />
          </extension>
          <text value="Irma XXX_Helleman-de Haas" />
          <family value="XXX_Helleman-de Haas">
            <extension url="http://hl7.org/fhir/StructureDefinition/humanname-own-name">
              <valueString value="XXX_Helleman" />
            </extension>
            <extension url="http://hl7.org/fhir/StructureDefinition/humanname-partner-prefix">
              <valueString value="de" />
            </extension>
            <extension url="http://hl7.org/fhir/StructureDefinition/humanname-partner-name">
              <valueString value="Haas" />
            </extension>
          </family>
          <given value="Irma">
            <extension url="http://hl7.org/fhir/StructureDefinition/iso21090-EN-qualifier">
              <valueCode value="CL" />
            </extension>
          </given>
        </valueHumanName>
      </example>
      <example>
        <label value="Unstructured HumanName" />
        <valueHumanName>
          <text value="Irma XXX_Helleman-de Haas" />
        </valueHumanName>
      </example>
      <constraint>
        <key value="nl-core-humanname-1" />
        <severity value="error" />
        <human value="if you specify a prefix for an own name then an own name is also expected" />
        <expression value="name.family.extension('http://hl7.org/fhir/StructureDefinition/humanname-own-prefix').empty().not() implies name.family.extension('http://hl7.org/fhir/StructureDefinition/humanname-own-name').empty().not()" />
        <xpath value="not(f:extension[@url='http://hl7.org/fhir/StructureDefinition/humanname-own-prefix']) or f:extension[@url='http://hl7.org/fhir/StructureDefinition/humanname-own-name']" />
      </constraint>
      <constraint>
        <key value="nl-core-humanname-2" />
        <severity value="error" />
        <human value="if you specify a voorvoegsel for a partner name then a partner name is also expected" />
        <expression value="name.family.extension('http://hl7.org/fhir/StructureDefinition/humanname-partner-prefix').empty().not() implies name.family.extension('http://hl7.org/fhir/StructureDefinition/humanname-partner-name').empty().not()" />
        <xpath value="not(f:extension[@url='http://hl7.org/fhir/StructureDefinition/humanname-partner-prefix']) or f:extension[@url='http://hl7.org/fhir/StructureDefinition/humanname-partner-name']" />
      </constraint>
      <mapping>
        <identity value="hcim-nameinformation-v2.0.1-2015EN" />
        <map value="NL-CM:0.1.6" />
        <comment value="NameInformation" />
      </mapping>
      <mapping>
        <identity value="hcim-nameinformation-v3.0-2016EN" />
        <map value="NL-CM:0.1.6" />
        <comment value="NameInformation" />
      </mapping>
      <mapping>
        <identity value="hcim-nameinformation-v1.0.1-2017EN" />
        <map value="NL-CM:20.4.1" />
        <comment value="NameInformation" />
      </mapping>
      <mapping>
        <identity value="BRP" />
        <map value="02" />
        <comment value="Naam" />
      </mapping>
    </element>
    <element id="HumanName.extension">
      <path value="HumanName.extension" />
      <slicing>
        <discriminator>
          <type value="value" />
          <path value="url" />
        </discriminator>
        <rules value="open" />
      </slicing>
    </element>
    <element id="HumanName.extension:humannameAssemblyOrder">
      <path value="HumanName.extension" />
      <sliceName value="humannameAssemblyOrder" />
      <alias value="Voorkeursvolgorde van de naamdelen." />
      <type>
        <code value="Extension" />
        <profile value="http://hl7.org/fhir/StructureDefinition/humanname-assembly-order" />
      </type>
      <binding>
        <strength value="required" />
        <description value="Human Name Assembly Order" />
        <valueSetReference>
          <extension url="http://hl7.org/fhir/StructureDefinition/11179-permitted-value-conceptmap">
            <valueReference>
              <reference value="http://nictiz.nl/fhir/ConceptMap/NaamgebruikCodelijst-to-HumanNameAssemblyOrder" />
              <display value="NaamgebruikCodelijst-to-HumanNameAssemblyOrder" />
            </valueReference>
          </extension>
          <reference value="http://hl7.org/fhir/ValueSet/name-assembly-order" />
        </valueSetReference>
      </binding>
      <mapping>
        <identity value="hcim-nameinformation-v2.0.1-2015EN" />
        <map value="NL-CM:0.1.34" />
        <comment value="NameUsage. Use FHIR Core ConceptMap for HCIM mapping: http://nictiz.nl/fhir/ConceptMap/NaamgebruikCodelijst-to-HumanNameAssemblyOrder" />
      </mapping>
      <mapping>
        <identity value="hcim-nameinformation-v3.0-2016EN" />
        <map value="NL-CM:0.1.34" />
        <comment value="NameUsage. Use FHIR Core ConceptMap for HCIM mapping: http://nictiz.nl/fhir/ConceptMap/NaamgebruikCodelijst-to-HumanNameAssemblyOrder" />
      </mapping>
      <mapping>
        <identity value="hcim-nameinformation-v1.0.1-2017EN" />
        <map value="NL-CM:20.4.7" />
        <comment value="NameUsage. Use FHIR Core ConceptMap for HCIM mapping: http://nictiz.nl/fhir/ConceptMap/NaamgebruikCodelijst-to-HumanNameAssemblyOrder" />
      </mapping>
    </element>
    <element id="HumanName.extension:humannameAssemblyOrder.valueCode:valueCode">
      <path value="HumanName.extension.valueCode" />
      <sliceName value="valueCode" />
    </element>
    <element id="HumanName.text">
      <path value="HumanName.text" />
      <mapping>
        <identity value="hcim-payer-v1.2-2015EN" />
        <map value="NL-CM:1.1.5" />
        <comment value="PayerName" />
      </mapping>
      <mapping>
        <identity value="hcim-payer-v3.0-2016EN" />
        <map value="NL-CM:1.1.5" />
        <comment value="PayerName" />
      </mapping>
      <mapping>
        <identity value="hcim-payer-v3.1-2017EN" />
        <map value="NL-CM:1.1.5" />
        <comment value="PayerName" />
      </mapping>
    </element>
    <element id="HumanName.family">
      <path value="HumanName.family" />
      <short value="Surname" />
      <alias value="Achternaam" />
    </element>
    <element id="HumanName.family.extension">
      <path value="HumanName.family.extension" />
      <slicing>
        <discriminator>
          <type value="value" />
          <path value="url" />
        </discriminator>
        <rules value="open" />
      </slicing>
    </element>
    <element id="HumanName.family.extension:humannameOwnPrefix">
      <path value="HumanName.family.extension" />
      <sliceName value="humannameOwnPrefix" />
      <short value="PrefixOwnName" />
      <definition value="The prefix portion (e.g. voorvoegsel) inclusive of the space between the prefix and the surname, if applicable, of the family name that is derived from the person's own surname, as distinguished from any portion that is derived from the surname of the person's partner or spouse." />
      <alias value="VoorvoegselGeslachtsnaam" />
      <type>
        <code value="Extension" />
        <profile value="http://hl7.org/fhir/StructureDefinition/humanname-own-prefix" />
      </type>
      <mapping>
        <identity value="hcim-nameinformation-v2.0.1-2015EN" />
        <map value="NL-CM:0.1.38" />
        <comment value="Prefix" />
      </mapping>
      <mapping>
        <identity value="hcim-nameinformation-v3.0-2016EN" />
        <map value="NL-CM:0.1.38" />
        <comment value="Prefix" />
      </mapping>
      <mapping>
        <identity value="hcim-nameinformation-v1.0.1-2017EN" />
        <map value="NL-CM:20.4.11" />
        <comment value="Prefix" />
      </mapping>
    </element>
    <element id="HumanName.family.extension:humannameOwnPrefix.valueString:valueString">
      <path value="HumanName.family.extension.valueString" />
      <sliceName value="valueString" />
    </element>
    <element id="HumanName.family.extension:humannameOwnName">
      <path value="HumanName.family.extension" />
      <sliceName value="humannameOwnName" />
      <short value="OwnName" />
      <definition value="The person’s official last name." />
      <comment value="The portion of the family name that is derived from the person's own surname, as distinguished from any portion that is derived from the surname of the person's partner or spouse. If the person's surname has legally changed to become (or incorporate) the surname of the person's partner or spouse, this is the person's surname immediately prior to such change. Often this is the person's &quot;maiden name&quot;." />
      <alias value="Geslachtsnaam" />
      <type>
        <code value="Extension" />
        <profile value="http://hl7.org/fhir/StructureDefinition/humanname-own-name" />
      </type>
      <mapping>
        <identity value="hcim-nameinformation-v2.0.1-2015EN" />
        <map value="NL-CM:0.1.24" />
        <comment value="LastName" />
      </mapping>
      <mapping>
        <identity value="hcim-nameinformation-v3.0-2016EN" />
        <map value="NL-CM:0.1.24" />
        <comment value="LastName" />
      </mapping>
      <mapping>
        <identity value="hcim-nameinformation-v1.0.1-2017EN" />
        <map value="NL-CM:20.4.10" />
        <comment value="LastName" />
      </mapping>
    </element>
    <element id="HumanName.family.extension:humannameOwnName.valueString:valueString">
      <path value="HumanName.family.extension.valueString" />
      <sliceName value="valueString" />
    </element>
    <element id="HumanName.family.extension:humannamePartnerPrefix">
      <path value="HumanName.family.extension" />
      <sliceName value="humannamePartnerPrefix" />
      <short value="PrefixSurname" />
      <definition value="Voorvoegsel derived from person's partner's surname inclusive of the space between the prefix and the surname, if applicable." />
      <alias value="VoorvoegselGeslachtsnaamPartner" />
      <type>
        <code value="Extension" />
        <profile value="http://hl7.org/fhir/StructureDefinition/humanname-partner-prefix" />
      </type>
      <mapping>
        <identity value="hcim-nameinformation-v2.0.1-2015EN" />
        <map value="NL-CM:0.1.39" />
        <comment value="PartnerPrefix" />
      </mapping>
      <mapping>
        <identity value="hcim-nameinformation-v3.0-2016EN" />
        <map value="NL-CM:0.1.39" />
        <comment value="PartnerPrefix" />
      </mapping>
      <mapping>
        <identity value="hcim-nameinformation-v1.0.1-2017EN" />
        <map value="NL-CM:20.4.9" />
        <comment value="PartnerPrefix" />
      </mapping>
    </element>
    <element id="HumanName.family.extension:humannamePartnerPrefix.valueString:valueString">
      <path value="HumanName.family.extension.valueString" />
      <sliceName value="valueString" />
    </element>
    <element id="HumanName.family.extension:humannamePartnerName">
      <path value="HumanName.family.extension" />
      <sliceName value="humannamePartnerName" />
      <short value="LastNamePartner" />
      <definition value="Partner’s official last name." />
      <comment value="The portion of the family name that is derived from the person's partner's surname, as distinguished from any portion that is derived from the surname of the person's own name. If the person's surname has legally changed to become (or incorporate) the surname of the person's partner or spouse, this is the person's surname immediately prior to such change. Often this is the person's &quot;maiden name&quot;." />
      <alias value="GeslachtsnaamPartner" />
      <type>
        <code value="Extension" />
        <profile value="http://hl7.org/fhir/StructureDefinition/humanname-partner-name" />
      </type>
      <mapping>
        <identity value="hcim-nameinformation-v2.0.1-2015EN" />
        <map value="NL-CM:0.1.25" />
        <comment value="PartnerLastName" />
      </mapping>
      <mapping>
        <identity value="hcim-nameinformation-v3.0-2016EN" />
        <map value="NL-CM:0.1.25" />
        <comment value="PartnerLastName" />
      </mapping>
      <mapping>
        <identity value="hcim-nameinformation-v1.0.1-2017EN" />
        <map value="NL-CM:20.4.8" />
        <comment value="PartnerLastName" />
      </mapping>
    </element>
    <element id="HumanName.family.extension:humannamePartnerName.valueString:valueString">
      <path value="HumanName.family.extension.valueString" />
      <sliceName value="valueString" />
    </element>
    <element id="HumanName.given">
      <path value="HumanName.given" />
      <short value="Given" />
      <definition value="Note that in order to mark the type of a given name, the FHIR standard extension for ISO 21090 EN Qualifiers is to be used. Examples include call me name (Dutch: roepnaam) and initials. Each initial is expected to be delimited by a dot." />
      <comment value="Note that in order to mark the type of a given name, the FHIR standard extension for ISO 21090 EN Qualifiers is to be used. Examples include call me name (Dutch: roepnaam) and initials. Each initial is expected to be delimited by a dot. To be conformant to the HCIM for NameInformation, at least the following qualifiers SHALL be supported: _BR_, _IN_ and _CL_. The qualifier _BR_ maps to the HCIM concept FirstNames, _IN_ maps to Initials and _CL_ to GivenName.&#xD;&#xA;&#xD;&#xA;Please see the compatibility note on the containing element as well!" />
      <alias value="Voornamen" />
      <alias value="Initialen" />
      <alias value="Roepnaam" />
      <mapping>
        <identity value="hcim-nameinformation-v2.0.1-2015EN" />
        <map value="NL-CM:0.1.26" />
        <comment value="FirstNames. Qualifier 'BR'" />
      </mapping>
      <mapping>
        <identity value="hcim-nameinformation-v2.0.1-2015EN" />
        <map value="NL-CM:0.1.35" />
        <comment value="Initials. Qualifier 'IN'" />
      </mapping>
      <mapping>
        <identity value="hcim-nameinformation-v2.0.1-2015EN" />
        <map value="NL-CM:0.1.27" />
        <comment value="GivenName. Qualifier 'CL'" />
      </mapping>
      <mapping>
        <identity value="BRP" />
        <map value="02.10" />
        <comment value="Voornamen" />
      </mapping>
      <mapping>
        <identity value="hcim-nameinformation-v3.0-2016EN" />
        <map value="NL-CM:0.1.26" />
        <comment value="FirstNames. Qualifier 'BR'" />
      </mapping>
      <mapping>
        <identity value="hcim-nameinformation-v3.0-2016EN" />
        <map value="NL-CM:0.1.35" />
        <comment value="Initials. Qualifier 'IN'" />
      </mapping>
      <mapping>
        <identity value="hcim-nameinformation-v3.0-2016EN" />
        <map value="NL-CM:0.1.27" />
        <comment value="GivenName. Qualifier 'CL'" />
      </mapping>
      <mapping>
        <identity value="hcim-nameinformation-v1.0.1-2017EN" />
        <map value="NL-CM:20.4.4" />
        <comment value="FirstNames. Qualifier 'BR'" />
      </mapping>
      <mapping>
        <identity value="hcim-nameinformation-v1.0.1-2017EN" />
        <map value="NL-CM:20.4.5" />
        <comment value="Initials. Qualifier 'IN'" />
      </mapping>
      <mapping>
        <identity value="hcim-nameinformation-v1.0.1-2017EN" />
        <map value="NL-CM:20.4.6" />
        <comment value="GivenName. Qualifier 'CL'" />
      </mapping>
    </element>
    <element id="HumanName.given.extension">
      <path value="HumanName.given.extension" />
      <slicing>
        <discriminator>
          <type value="value" />
          <path value="url" />
        </discriminator>
        <rules value="open" />
      </slicing>
    </element>
    <element id="HumanName.given.extension:iso21090EnQualifier">
      <path value="HumanName.given.extension" />
      <sliceName value="iso21090EnQualifier" />
      <max value="1" />
      <type>
        <code value="Extension" />
        <profile value="http://hl7.org/fhir/StructureDefinition/iso21090-EN-qualifier" />
      </type>
    </element>
    <element id="HumanName.given.extension:iso21090EnQualifier.valueCode:valueCode">
      <path value="HumanName.given.extension.valueCode" />
      <sliceName value="valueCode" />
    </element>
  </differential>
</StructureDefinition>