<StructureDefinition xmlns="http://hl7.org/fhir">
  <id value="KT2Patient" />
  <language value="nl-NL" />
  <url value="http://koppeltaal.nl/fhir/StructureDefinition/KT2Patient" />
  <version value="0.8.0" />
  <name value="KT2_Patient" />
  <status value="draft" />
  <date value="2023-01-24" />
  <publisher value="VZVZ" />
  <contact>
    <name value="VZVZ" />
    <telecom>
      <system value="email" />
      <value value="standaardisatie@vzvz.nl" />
      <use value="work" />
    </telecom>
  </contact>
  <description value="The Patient resource represents a person receiving healthcare services within the Koppeltaal ecosystem. Patients can be assigned eHealth activities and are the primary focus of care coordination between different healthcare applications. This profile extends the NlcorePatient profile with Koppeltaal-specific requirements." />
  <jurisdiction>
    <coding>
      <system value="urn:iso:std:iso:3166" />
      <code value="NL" />
      <display value="Netherlands" />
    </coding>
  </jurisdiction>
  <copyright value="VZVZ" />
  <fhirVersion value="4.0.1" />
  <kind value="resource" />
  <abstract value="false" />
  <type value="Patient" />
  <baseDefinition value="http://nictiz.nl/fhir/StructureDefinition/nl-core-Patient" />
  <derivation value="constraint" />
  <differential>
    <element id="Patient.extension:nationality">
      <path value="Patient.extension" />
      <sliceName value="nationality" />
      <max value="0" />
    </element>
    <element id="Patient.extension:resource-origin">
      <path value="Patient.extension" />
      <sliceName value="resource-origin" />
      <min value="0" />
      <max value="1" />
      <type>
        <code value="Extension" />
        <profile value="http://koppeltaal.nl/fhir/StructureDefinition/resource-origin" />
      </type>
    </element>
    <element id="Patient.identifier">
      <path value="Patient.identifier" />
      <min value="1" />
    </element>
    <element id="Patient.active">
      <path value="Patient.active" />
      <min value="1" />
    </element>
    <element id="Patient.name">
      <path value="Patient.name" />
      <min value="1" />
      <constraint>
        <key value="kt2pnu-2" />
        <severity value="error" />
        <human value="Patient name use must not be empty" />
        <expression value="use.hasValue()" />
        <source value="http://koppeltaal.nl/fhir/StructureDefinition/KT2Patient" />
      </constraint>
    </element>
    <element id="Patient.name:nameInformation">
      <path value="Patient.name" />
      <sliceName value="nameInformation" />
      <comment value="This `.name` element represents a Dutch name according to the [zib NameInformation (v1.1, 2020)](https://zibs.nl/wiki/NameInformation-v1.1(2020EN)) (except for the GivenName concept). A Dutch name is represented in FHIR as an ordinary international name, but is augmented using extensions to specify how the last name is built up according to the Dutch rules. See the guidance on `.family` and on `.extension:nameUsage` for more information. Systems that need to work in a Dutch context **MUST** support these extensions as specified here. In addition, systems **MUST** use the core elements according to the FHIR specifications to provide compatibility outside Dutch contexts. It is encouraged to provide a representation of the full name in the `.text` element.&#xD;&#xA;&#xD;&#xA;**Note 1**: The zib cannot be represented straightforward in FHIR. Especially note the guidance on `.given` on how to map the FirstNames and Initials concepts, and on `.prefix`/`.suffix` on how to map the Titles concept.&#xD;&#xA;&#xD;&#xA;**Note 2**: This element should only contain a person's _official_ names. The GivenName concept is represented in another `.name` element with `.name.use` = _usual_.&#xD;&#xA;&#xD;&#xA;**Note 3**: The examples illustrate how the zib is mapped to FHIR." />
    </element>
    <element id="Patient.name:nameInformation.text">
      <path value="Patient.name.text" />
      <comment value="This element is not used in the context of Koppeltaal 2.0" />
    </element>
    <element id="Patient.name:nameInformation.family">
      <path value="Patient.name.family" />
      <min value="1" />
    </element>
    <element id="Patient.name:nameInformation.given">
      <path value="Patient.name.given" />
      <min value="1" />
    </element>
    <element id="Patient.name:nameInformation.prefix">
      <path value="Patient.name.prefix" />
      <comment value="This element is not used in the context of Koppeltaal 2.0" />
    </element>
    <element id="Patient.name:nameInformation.suffix">
      <path value="Patient.name.suffix" />
      <comment value="This element is not used in the context of Koppeltaal 2.0" />
    </element>
    <element id="Patient.name:nameInformation.period">
      <path value="Patient.name.period" />
      <comment value="This element is not used in the context of Koppeltaal 2.0" />
    </element>
    <element id="Patient.name:nameInformation-GivenName">
      <path value="Patient.name" />
      <sliceName value="nameInformation-GivenName" />
    </element>
    <element id="Patient.name:nameInformation-GivenName.text">
      <path value="Patient.name.text" />
      <comment value="This element is not used in the context of Koppeltaal 2.0" />
    </element>
    <element id="Patient.telecom:telephoneNumbers">
      <path value="Patient.telecom" />
      <sliceName value="telephoneNumbers" />
    </element>
    <element id="Patient.telecom:telephoneNumbers.rank">
      <path value="Patient.telecom.rank" />
      <comment value="This element is not used in the context of Koppeltaal 2.0" />
    </element>
    <element id="Patient.telecom:telephoneNumbers.period">
      <path value="Patient.telecom.period" />
      <comment value="This element is not used in the context of Koppeltaal 2.0" />
    </element>
    <element id="Patient.telecom:emailAddresses">
      <path value="Patient.telecom" />
      <sliceName value="emailAddresses" />
    </element>
    <element id="Patient.telecom:emailAddresses.rank">
      <path value="Patient.telecom.rank" />
      <comment value="This element is not used in the context of Koppeltaal 2.0" />
    </element>
    <element id="Patient.telecom:emailAddresses.period">
      <path value="Patient.telecom.period" />
      <comment value="This element is not used in the context of Koppeltaal 2.0" />
    </element>
    <element id="Patient.gender">
      <path value="Patient.gender" />
      <min value="1" />
    </element>
    <element id="Patient.birthDate">
      <path value="Patient.birthDate" />
      <min value="1" />
    </element>
    <element id="Patient.deceased[x]">
      <path value="Patient.deceased[x]" />
      <max value="0" />
    </element>
    <element id="Patient.deceased[x]:deceasedBoolean">
      <path value="Patient.deceased[x]" />
      <sliceName value="deceasedBoolean" />
      <max value="0" />
      <type>
        <code value="boolean" />
      </type>
    </element>
    <element id="Patient.deceased[x]:deceasedDateTime">
      <path value="Patient.deceased[x]" />
      <sliceName value="deceasedDateTime" />
      <max value="0" />
      <type>
        <code value="dateTime" />
      </type>
    </element>
    <element id="Patient.address.extension:addressType">
      <path value="Patient.address.extension" />
      <sliceName value="addressType" />
      <comment value="This element is not used in the context of Koppeltaal 2.0" />
    </element>
    <element id="Patient.address.type">
      <path value="Patient.address.type" />
      <comment value="This element is not used in the context of Koppeltaal 2.0" />
    </element>
    <element id="Patient.address.text">
      <path value="Patient.address.text" />
      <comment value="This element is not used in the context of Koppeltaal 2.0" />
    </element>
    <element id="Patient.address.district">
      <path value="Patient.address.district" />
      <comment value="This element is not used in the context of Koppeltaal 2.0" />
    </element>
    <element id="Patient.address.state">
      <path value="Patient.address.state" />
      <comment value="This element is not used in the context of Koppeltaal 2.0" />
    </element>
    <element id="Patient.address.country.extension:countryCode">
      <path value="Patient.address.country.extension" />
      <sliceName value="countryCode" />
      <comment value="See [Koppeltaal Implementation Guide](https://simplifier.net/guide/koppeltaal/Home/General-Notes/Country-Codes.md?version=current) for more information." />
    </element>
    <element id="Patient.address.country.extension:countryCode.extension">
      <path value="Patient.address.country.extension.extension" />
      <max value="0" />
    </element>
    <element id="Patient.address.country.extension:countryCode.value[x]">
      <path value="Patient.address.country.extension.value[x]" />
      <comment value="See [Koppeltaal Implementation Guide](https://simplifier.net/guide/koppeltaal/Home/General-Notes/Country-Codes.md?version=current) for more information." />
    </element>
    <element id="Patient.address.period">
      <path value="Patient.address.period" />
      <comment value="This element is not used in the context of Koppeltaal 2.0" />
    </element>
    <element id="Patient.maritalStatus">
      <path value="Patient.maritalStatus" />
      <max value="0" />
    </element>
    <element id="Patient.multipleBirth[x]">
      <path value="Patient.multipleBirth[x]" />
      <max value="0" />
    </element>
    <element id="Patient.multipleBirth[x]:multipleBirthBoolean">
      <path value="Patient.multipleBirth[x]" />
      <sliceName value="multipleBirthBoolean" />
      <max value="0" />
      <type>
        <code value="boolean" />
      </type>
    </element>
    <element id="Patient.photo">
      <path value="Patient.photo" />
      <max value="0" />
    </element>
    <element id="Patient.contact">
      <path value="Patient.contact" />
      <max value="0" />
    </element>
    <element id="Patient.communication">
      <path value="Patient.communication" />
      <max value="0" />
    </element>
    <element id="Patient.generalPractitioner">
      <path value="Patient.generalPractitioner" />
      <max value="0" />
    </element>
    <element id="Patient.managingOrganization">
      <path value="Patient.managingOrganization" />
      <type>
        <code value="Reference" />
        <targetProfile value="http://koppeltaal.nl/fhir/StructureDefinition/KT2Organization" />
      </type>
    </element>
    <element id="Patient.link">
      <path value="Patient.link" />
      <max value="0" />
    </element>
  </differential>
</StructureDefinition>