<StructureDefinition xmlns="http://hl7.org/fhir">
  <language value="pt-BR" />
  <url value="http://rnds.saude.gov.br/fhir/r4/StructureDefinition/rnds-humanname-1.0" />
  <version value="1.0" />
  <name value="RNDSHumanName" />
  <title value="RNDS Human Name" />
  <status value="draft" />
  <publisher value="Datasus" />
  <description value="Tipo com representações de nomes de pessoas, como definido para o projeto RNDS (Rede Nacional de Dados em Saúde) no Brasil." />
  <purpose value="No Brasil não se faz a separação de partes de nomes, por isso é necessário adaptação desse tipo." />
  <fhirVersion value="4.0.0" />
  <kind value="complex-type" />
  <abstract value="false" />
  <type value="HumanName" />
  <baseDefinition value="http://hl7.org/fhir/StructureDefinition/HumanName" />
  <derivation value="constraint" />
  <snapshot>
    <element id="HumanName">
      <path value="HumanName" />
      <short value="Nomes atribuídos à uma pessoa" />
      <definition value="Um nome humano com a capacidade de identificar pedaços e uso." />
      <comment value="Os nomes podem ser alterados, ou repudiados, ou as pessoas podem ter nomes diferentes em contextos diferentes. Os nomes podem ser divididos em partes de tipos diferentes que têm significância variável dependendo do contexto, embora a divisão em partes nem sempre importe. Com nomes pessoais, as diferentes partes podem ou não estar imbuídas de algum significado implícito; várias culturas associam importância diferente às partes do nome e o grau em que os sistemas devem se preocupar com as partes do nome em todo o mundo varia muito." />
      <min value="0" />
      <max value="*" />
      <base>
        <path value="HumanName" />
        <min value="0" />
        <max value="*" />
      </base>
      <condition value="ele-1" />
      <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())" />
        <xpath value="@value|f:*|h:div" />
        <source value="http://hl7.org/fhir/StructureDefinition/Element" />
      </constraint>
      <mustSupport value="false" />
      <mapping>
        <identity value="rim" />
        <map value="n/a" />
      </mapping>
      <mapping>
        <identity value="v2" />
        <map value="XPN" />
      </mapping>
      <mapping>
        <identity value="rim" />
        <map value="EN (actually, PN)" />
      </mapping>
      <mapping>
        <identity value="servd" />
        <map value="ProviderName" />
      </mapping>
    </element>
    <element id="HumanName.id">
      <path value="HumanName.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>
        <code>
          <extension url="http://hl7.org/fhir/StructureDefinition/structuredefinition-json-type">
            <valueString value="string" />
          </extension>
          <extension url="http://hl7.org/fhir/StructureDefinition/structuredefinition-xml-type">
            <valueString value="xsd:string" />
          </extension>
          <extension url="http://hl7.org/fhir/StructureDefinition/structuredefinition-rdf-type">
            <valueString value="xsd:string" />
          </extension>
        </code>
      </type>
      <mapping>
        <identity value="rim" />
        <map value="n/a" />
      </mapping>
    </element>
    <element id="HumanName.extension">
      <path value="HumanName.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 manageable, 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>
      <condition value="ele-1" />
      <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())" />
        <xpath value="@value|f:*|h:div" />
        <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()" />
        <xpath value="exists(f:extension)!=exists(f:*[starts-with(local-name(.), 'value')])" />
        <source value="http://hl7.org/fhir/StructureDefinition/Extension" />
      </constraint>
      <mapping>
        <identity value="rim" />
        <map value="n/a" />
      </mapping>
      <mapping>
        <identity value="rim" />
        <map value="N/A" />
      </mapping>
    </element>
    <element id="HumanName.use">
      <path value="HumanName.use" />
      <short value="usual | official" />
      <definition value="Identifies the purpose for this name." />
      <comment value="Applications can assume that a name is current unless it explicitly says that it is temporary or old." />
      <requirements value="Allows the appropriate name for a particular context of use to be selected from among a set of names." />
      <min value="0" />
      <max value="1" />
      <base>
        <path value="HumanName.use" />
        <min value="0" />
        <max value="1" />
      </base>
      <type>
        <code value="code" />
      </type>
      <condition value="ele-1" />
      <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())" />
        <xpath value="@value|f:*|h:div" />
        <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 name etc.for a current/permanent one" />
      <isSummary value="true" />
      <binding>
        <extension url="http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName">
          <valueString value="NameUse" />
        </extension>
        <strength value="required" />
        <description value="Tipo especificando o uso do nome" />
        <valueSet value="http://rnds.saude.gov.br/fhir/r4/ValueSet/rnds-nameuse-1.0" />
      </binding>
      <mapping>
        <identity value="rim" />
        <map value="n/a" />
      </mapping>
      <mapping>
        <identity value="v2" />
        <map value="XPN.7, but often indicated by which field contains the name" />
      </mapping>
      <mapping>
        <identity value="rim" />
        <map value="unique(./use)" />
      </mapping>
      <mapping>
        <identity value="servd" />
        <map value="./NamePurpose" />
      </mapping>
    </element>
    <element id="HumanName.text">
      <path value="HumanName.text" />
      <short value="Representação de texto do nome completo" />
      <definition value="Especifica o nome inteiro como deve ser exibido, por ex. na interface do usuário de um aplicativo. Isso pode ser fornecido em vez de ou juntamento com as partes específicas." />
      <comment value="Can provide both a text representation and parts. Applications updating a name SHALL ensure that when both text and parts are present,  no content is included in the text that isn't found in a part." />
      <requirements value="A renderable, unencoded form." />
      <alias value="nome completo" />
      <min value="0" />
      <max value="1" />
      <base>
        <path value="HumanName.text" />
        <min value="0" />
        <max value="1" />
      </base>
      <type>
        <code value="string" />
      </type>
      <condition value="ele-1" />
      <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())" />
        <xpath value="@value|f:*|h:div" />
        <source value="http://hl7.org/fhir/StructureDefinition/Element" />
      </constraint>
      <isSummary value="true" />
      <mapping>
        <identity value="rim" />
        <map value="n/a" />
      </mapping>
      <mapping>
        <identity value="v2" />
        <map value="implied by XPN.11" />
      </mapping>
      <mapping>
        <identity value="rim" />
        <map value="./formatted" />
      </mapping>
    </element>
    <element id="HumanName.family">
      <path value="HumanName.family" />
      <short value="Nome de família" />
      <definition value="Nome de família" />
      <comment value="Nome de família" />
      <alias value="surname" />
      <alias value="nome de família" />
      <min value="0" />
      <max value="1" />
      <base>
        <path value="HumanName.family" />
        <min value="0" />
        <max value="1" />
      </base>
      <type>
        <code value="string" />
      </type>
      <condition value="ele-1" />
      <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())" />
        <xpath value="@value|f:*|h:div" />
        <source value="http://hl7.org/fhir/StructureDefinition/Element" />
      </constraint>
      <isSummary value="true" />
      <mapping>
        <identity value="rim" />
        <map value="n/a" />
      </mapping>
      <mapping>
        <identity value="v2" />
        <map value="XPN.1/FN.1" />
      </mapping>
      <mapping>
        <identity value="rim" />
        <map value="./part[partType = FAM]" />
      </mapping>
      <mapping>
        <identity value="servd" />
        <map value="./FamilyName" />
      </mapping>
    </element>
    <element id="HumanName.given">
      <path value="HumanName.given" />
      <short value="Nomes próprios (nem sempre 'primeiro'). Inclui nomes do meio" />
      <definition value="Nomes próprios (nem sempre 'primeiro'). Inclui nomes do meio" />
      <comment value="If only initials are recorded, they may be used in place of the full name parts. Initials may be separated into multiple given names but often aren't due to paractical limitations.  This element is not called &quot;first name&quot; since given names do not always come first." />
      <alias value="first name" />
      <alias value="middle name" />
      <alias value="nome próprio" />
      <alias value="primeiro nome" />
      <min value="0" />
      <max value="*" />
      <base>
        <path value="HumanName.given" />
        <min value="0" />
        <max value="*" />
      </base>
      <type>
        <code value="string" />
      </type>
      <orderMeaning value="Os nomes exibidos aparecem na ordem correta para apresentar o nome" />
      <condition value="ele-1" />
      <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())" />
        <xpath value="@value|f:*|h:div" />
        <source value="http://hl7.org/fhir/StructureDefinition/Element" />
      </constraint>
      <isSummary value="true" />
      <mapping>
        <identity value="rim" />
        <map value="n/a" />
      </mapping>
      <mapping>
        <identity value="v2" />
        <map value="XPN.2 + XPN.3" />
      </mapping>
      <mapping>
        <identity value="rim" />
        <map value="./part[partType = GIV]" />
      </mapping>
      <mapping>
        <identity value="servd" />
        <map value="./GivenNames" />
      </mapping>
    </element>
    <element id="HumanName.prefix">
      <path value="HumanName.prefix" />
      <short value="Parts that come before the name" />
      <definition value="Part of the name that is acquired as a title due to academic, legal, employment or nobility status, etc. and that appears at the start of the name." />
      <comment value="Note that FHIR strings SHALL NOT exceed 1MB in size" />
      <min value="0" />
      <max value="0" />
      <base>
        <path value="HumanName.prefix" />
        <min value="0" />
        <max value="*" />
      </base>
      <type>
        <code value="string" />
      </type>
      <orderMeaning value="Prefixes appear in the correct order for presenting the name" />
      <condition value="ele-1" />
      <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())" />
        <xpath value="@value|f:*|h:div" />
        <source value="http://hl7.org/fhir/StructureDefinition/Element" />
      </constraint>
      <isSummary value="true" />
      <mapping>
        <identity value="rim" />
        <map value="n/a" />
      </mapping>
      <mapping>
        <identity value="v2" />
        <map value="XPN.5" />
      </mapping>
      <mapping>
        <identity value="rim" />
        <map value="./part[partType = PFX]" />
      </mapping>
      <mapping>
        <identity value="servd" />
        <map value="./TitleCode" />
      </mapping>
    </element>
    <element id="HumanName.suffix">
      <path value="HumanName.suffix" />
      <short value="Parts that come after the name" />
      <definition value="Part of the name that is acquired as a title due to academic, legal, employment or nobility status, etc. and that appears at the end of the name." />
      <comment value="Note that FHIR strings SHALL NOT exceed 1MB in size" />
      <min value="0" />
      <max value="0" />
      <base>
        <path value="HumanName.suffix" />
        <min value="0" />
        <max value="*" />
      </base>
      <type>
        <code value="string" />
      </type>
      <orderMeaning value="Suffixes appear in the correct order for presenting the name" />
      <condition value="ele-1" />
      <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())" />
        <xpath value="@value|f:*|h:div" />
        <source value="http://hl7.org/fhir/StructureDefinition/Element" />
      </constraint>
      <isSummary value="true" />
      <mapping>
        <identity value="rim" />
        <map value="n/a" />
      </mapping>
      <mapping>
        <identity value="v2" />
        <map value="XPN/4" />
      </mapping>
      <mapping>
        <identity value="rim" />
        <map value="./part[partType = SFX]" />
      </mapping>
    </element>
    <element id="HumanName.period">
      <path value="HumanName.period" />
      <short value="Time period when name was/is in use" />
      <definition value="Indicates the period of time when this name was valid for the named person." />
      <comment value="A Period specifies a range of time; the context of use will specify whether the entire range applies (e.g. &quot;the patient was an inpatient of the hospital for this time range&quot;) or one value from the range applies (e.g. &quot;give to the patient between these two times&quot;).&#xA;&#xA;Period is not used for a duration (a measure of elapsed time). See [Duration](datatypes.html#Duration)." />
      <requirements value="Allows names to be placed in historical context." />
      <min value="0" />
      <max value="0" />
      <base>
        <path value="HumanName.period" />
        <min value="0" />
        <max value="1" />
      </base>
      <type>
        <code value="Period" />
      </type>
      <condition value="ele-1" />
      <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())" />
        <xpath value="@value|f:*|h:div" />
        <source value="http://hl7.org/fhir/StructureDefinition/Element" />
      </constraint>
      <constraint>
        <key value="per-1" />
        <severity value="error" />
        <human value="If present, start SHALL have a lower value than end" />
        <expression value="start.hasValue().not() or end.hasValue().not() or (start &lt;= end)" />
        <xpath value="not(exists(f:start/@value)) or not(exists(f:end/@value)) or (xs:dateTime(f:start/@value) &lt;= xs:dateTime(f:end/@value))" />
        <source value="http://hl7.org/fhir/StructureDefinition/Period" />
      </constraint>
      <isSummary value="true" />
      <mapping>
        <identity value="rim" />
        <map value="n/a" />
      </mapping>
      <mapping>
        <identity value="v2" />
        <map value="DR" />
      </mapping>
      <mapping>
        <identity value="rim" />
        <map value="IVL&lt;TS&gt;[lowClosed=&quot;true&quot; and highClosed=&quot;true&quot;] or URG&lt;TS&gt;[lowClosed=&quot;true&quot; and highClosed=&quot;true&quot;]" />
      </mapping>
      <mapping>
        <identity value="v2" />
        <map value="XPN.13 + XPN.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>
  </snapshot>
  <differential>
    <element id="HumanName">
      <path value="HumanName" />
      <short value="Nomes atribuídos à uma pessoa" />
      <definition value="Um nome humano com a capacidade de identificar pedaços e uso." />
      <comment value="Os nomes podem ser alterados, ou repudiados, ou as pessoas podem ter nomes diferentes em contextos diferentes. Os nomes podem ser divididos em partes de tipos diferentes que têm significância variável dependendo do contexto, embora a divisão em partes nem sempre importe. Com nomes pessoais, as diferentes partes podem ou não estar imbuídas de algum significado implícito; várias culturas associam importância diferente às partes do nome e o grau em que os sistemas devem se preocupar com as partes do nome em todo o mundo varia muito." />
      <mustSupport value="false" />
    </element>
    <element id="HumanName.use">
      <path value="HumanName.use" />
      <short value="usual | official" />
      <binding>
        <strength value="required" />
        <description value="Tipo especificando o uso do nome" />
        <valueSet value="http://rnds.saude.gov.br/fhir/r4/ValueSet/rnds-nameuse-1.0" />
      </binding>
    </element>
    <element id="HumanName.text">
      <path value="HumanName.text" />
      <short value="Representação de texto do nome completo" />
      <definition value="Especifica o nome inteiro como deve ser exibido, por ex. na interface do usuário de um aplicativo. Isso pode ser fornecido em vez de ou juntamento com as partes específicas." />
      <alias value="nome completo" />
    </element>
    <element id="HumanName.family">
      <path value="HumanName.family" />
      <short value="Nome de família" />
      <definition value="Nome de família" />
      <comment value="Nome de família" />
      <alias value="nome de família" />
    </element>
    <element id="HumanName.given">
      <path value="HumanName.given" />
      <short value="Nomes próprios (nem sempre 'primeiro'). Inclui nomes do meio" />
      <definition value="Nomes próprios (nem sempre 'primeiro'). Inclui nomes do meio" />
      <alias value="nome próprio" />
      <alias value="primeiro nome" />
      <orderMeaning value="Os nomes exibidos aparecem na ordem correta para apresentar o nome" />
    </element>
    <element id="HumanName.prefix">
      <path value="HumanName.prefix" />
      <max value="0" />
    </element>
    <element id="HumanName.suffix">
      <path value="HumanName.suffix" />
      <max value="0" />
    </element>
    <element id="HumanName.period">
      <path value="HumanName.period" />
      <max value="0" />
    </element>
  </differential>
</StructureDefinition>