<StructureDefinition xmlns="http://hl7.org/fhir">
  <url value="http://electronichealth.se/fhir/StructureDefinition/NLLPatient" />
  <version value="1.0.2" />
  <name value="NLLPatient" />
  <status value="active" />
  <date value="2023-06-12" />
  <publisher value="Swedish eHealth Agency" />
  <fhirVersion value="4.0.1" />
  <mapping>
    <identity value="EHM" />
    <name value="E-hälsomyndigheten concept" />
  </mapping>
  <kind value="resource" />
  <abstract value="false" />
  <type value="Patient" />
  <baseDefinition value="http://hl7.org/fhir/StructureDefinition/Patient" />
  <derivation value="constraint" />
  <differential>
    <element id="Patient">
      <path value="Patient" />
      <short value="Information about an individual as a patient in the Swedish National Medications List" />
      <definition value="Administrative information, such as name and identification number, about an individual which may exists as a patient in the Swedish National Medications List" />
      <mapping>
        <identity value="EHM" />
        <map value="Patient" />
      </mapping>
    </element>
    <element id="Patient.id">
      <path value="Patient.id" />
      <mustSupport value="true" />
      <mapping>
        <identity value="EHM" />
        <map value="Patient-id" />
      </mapping>
    </element>
    <element id="Patient.meta">
      <path value="Patient.meta" />
      <mustSupport value="true" />
    </element>
    <element id="Patient.meta.lastUpdated">
      <path value="Patient.meta.lastUpdated" />
      <mustSupport value="true" />
    </element>
    <element id="Patient.meta.security">
      <path value="Patient.meta.security" />
      <comment value="Security labels are used for two purposes in this resourse.&#xD;&#xA;The SUBSETTED label indicates that the resource is an incomplete representation of the information in the Swedish Population Registry.&#xD;&#xA;The PROTECTIDENT label indicates that the person's record is marked with an protected identity label of some kind in the Swedish Population Registry.&#xD;&#xA;The DEMO label work in tandem with the PROTECTIDENT flag." />
      <mustSupport value="true" />
      <binding>
        <strength value="extensible" />
        <valueSet value="http://ehalsomyndigheten.se/fhir/ValueSet/security-labels" />
      </binding>
    </element>
    <element id="Patient.meta.security.system">
      <path value="Patient.meta.security.system" />
      <mustSupport value="true" />
    </element>
    <element id="Patient.meta.security.version">
      <path value="Patient.meta.security.version" />
      <mustSupport value="true" />
    </element>
    <element id="Patient.meta.security.code">
      <path value="Patient.meta.security.code" />
      <mustSupport value="true" />
    </element>
    <element id="Patient.extension:nllPopulationRegistered">
      <path value="Patient.extension" />
      <sliceName value="nllPopulationRegistered" />
      <max value="1" />
      <type>
        <code value="Extension" />
        <profile value="http://electronichealth.se/fhir/StructureDefinition/NLLPopulationRegistered" />
      </type>
      <meaningWhenMissing value="A missing value shall be interpreted as UNKNOWN" />
      <mustSupport value="true" />
      <binding>
        <strength value="extensible" />
        <valueSet value="http://ehalsomyndigheten.se/fhir/ValueSet/population-registered-status" />
      </binding>
      <mapping>
        <identity value="EHM" />
        <map value="Folkbokförd" />
      </mapping>
    </element>
    <element id="Patient.extension:nllPopulationRegistered.value[x]">
      <path value="Patient.extension.value[x]" />
    </element>
    <element id="Patient.extension:nllPopulationRegistered.value[x].system">
      <path value="Patient.extension.value[x].system" />
      <mustSupport value="true" />
    </element>
    <element id="Patient.extension:nllPopulationRegistered.value[x].version">
      <path value="Patient.extension.value[x].version" />
      <mustSupport value="true" />
    </element>
    <element id="Patient.extension:nllPopulationRegistered.value[x].code">
      <path value="Patient.extension.value[x].code" />
      <mustSupport value="true" />
    </element>
    <element id="Patient.identifier">
      <path value="Patient.identifier" />
      <slicing>
        <discriminator>
          <type value="value" />
          <path value="system" />
        </discriminator>
        <rules value="open" />
      </slicing>
      <definition value="A national identification number. The only supported type of identification is currently Swedish personal identity number." />
      <mustSupport value="true" />
    </element>
    <element id="Patient.identifier:pnr">
      <path value="Patient.identifier" />
      <sliceName value="pnr" />
      <short value="Swedish personal identity number" />
      <definition value="Swedish personal identity number (sv: personnummer)" />
      <max value="1" />
      <mustSupport value="true" />
      <mapping>
        <identity value="EHM" />
        <map value="Personnummer" />
      </mapping>
    </element>
    <element id="Patient.identifier:pnr.system">
      <path value="Patient.identifier.system" />
      <min value="1" />
      <fixedUri value="http://electronichealth.se/identifier/personnummer" />
      <mustSupport value="true" />
    </element>
    <element id="Patient.identifier:pnr.value">
      <path value="Patient.identifier.value" />
      <short value="Swedish personal identity number" />
      <definition value="Swedish personal identity number expressed as 12 digits without hyphen." />
      <min value="1" />
      <maxLength value="12" />
      <constraint>
        <key value="swe-id-rule" />
        <severity value="error" />
        <human value="A personal identity number must have 12 digits" />
        <expression value="$this.matches('^\\d{12}$')" />
        <source value="Patient" />
      </constraint>
      <mustSupport value="true" />
    </element>
    <element id="Patient.active">
      <path value="Patient.active" />
      <mustSupport value="true" />
      <mapping>
        <identity value="EHM" />
        <map value="Aktiv" />
      </mapping>
    </element>
    <element id="Patient.name">
      <path value="Patient.name" />
      <max value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Patient.name.text">
      <path value="Patient.name.text" />
      <definition value="Specifies the entire name as it should be displayed. This may be provided instead of or as well as the specific parts. Maximum length 36 characters if the patient is from FOLK and 60 characters if the patient is not from FOLK." />
      <maxLength value="60" />
      <mustSupport value="true" />
      <mapping>
        <identity value="EHM" />
        <map value="Redigerat namn" />
        <comment value="Patient finns i FOLK" />
      </mapping>
      <mapping>
        <identity value="EHM" />
        <map value="Fullständigt namn" />
        <comment value="Patient saknas i FOLK" />
      </mapping>
    </element>
    <element id="Patient.name.family">
      <path value="Patient.name.family" />
      <definition value="In the scenario that the name has been fetched from the Population Register (sv: folkbokföring)  the maximum string length for the family name is 100.&#xD;&#xA;In the scenario that the patient's name is provided by an external system (when a patient does not have a personal identity number) the maxmimun string length for family name is 35." />
      <comment value="Middle name has different definitions in the Swedish Population Registry and FHIR. The middle name in the population registry is seen from an FHIR context as an additional family name. This is mapped as middle name + space + family name (eg &quot;Johansson Svensson&quot;) when this resource represents a person in the populatoin registry." />
      <maxLength value="100" />
      <mustSupport value="true" />
      <mapping>
        <identity value="EHM" />
        <map value="Efternamn" />
      </mapping>
    </element>
    <element id="Patient.name.given">
      <path value="Patient.name.given" />
      <short value="Given names" />
      <definition value="In the scenario that the name has been fetched from the Population Register (sv: folkbokföring) there can be multiple given names. Total maxmimun string length for all given names are 80.&#xD;&#xA;In the scenario that the patient's name is provided by an external system (when a patient does not have a personal identity number) only one (1) given name is allowed. Maxmimun string length for that given name is 35." />
      <comment value="Middle name has different definitions in the Swedish Population Registry and FHIR. The middle name in the population registry is seen from an FHIR context as an additional family name. The &quot;call me&quot; name in a list of multiple given names (first name + middle names in FHIR) is marked with CL by the extension nllNameQualifier." />
      <maxLength value="80" />
      <mustSupport value="true" />
      <mapping>
        <identity value="EHM" />
        <map value="Förnamn" />
      </mapping>
    </element>
    <element id="Patient.name.given.extension:nllNameQualifier">
      <path value="Patient.name.given.extension" />
      <sliceName value="nllNameQualifier" />
      <short value="CL (call me)" />
      <definition value="A set of codes each of which specifies a certain subcategory of the name part in addition to the main name part type. Used to describe &quot;tilltalsnamn&quot;." />
      <type>
        <code value="Extension" />
        <profile value="http://hl7.org/fhir/StructureDefinition/iso21090-EN-qualifier" />
      </type>
      <mustSupport value="true" />
      <binding>
        <strength value="required" />
        <valueSet value="http://electronichealth.se/fhir/ValueSet/name-part-qualifier" />
      </binding>
      <mapping>
        <identity value="EHM" />
        <map value="Tilltalsnamnsmarkering" />
      </mapping>
    </element>
    <element id="Patient.gender">
      <path value="Patient.gender" />
      <short value="male | female | unknown" />
      <definition value="Administrative Gender - the gender that the patient is considered to have for administration and record keeping purposes. Used only when personal identity number is missing." />
      <mustSupport value="true" />
      <binding>
        <strength value="required" />
        <valueSet value="http://electronichealth.se/fhir/ValueSet/administrative-gender" />
      </binding>
      <mapping>
        <identity value="EHM" />
        <map value="Kön" />
        <comment value="Only used when the patient doesn't have a personal identity number" />
      </mapping>
    </element>
    <element id="Patient.birthDate">
      <path value="Patient.birthDate" />
      <definition value="The date of birth for the individual. Used only when personal identity number is missing." />
      <mustSupport value="true" />
      <mapping>
        <identity value="EHM" />
        <map value="Födelsedatum" />
        <comment value="Only used in cases where the patient doesn't have/use the national identification number." />
      </mapping>
    </element>
    <element id="Patient.deceased[x]">
      <path value="Patient.deceased[x]" />
      <definition value="Indicates if the individual is deceased or not. This flag is in the Swedish National Mediations List a translation from status 4 (sv: Person avliden) in FOLK." />
      <comment value="If there's no value in the instance it means there is no statement on whether or not the individual is deceased, should be interpreted that patient is NOT deceased." />
      <type>
        <code value="boolean" />
      </type>
      <meaningWhenMissing value="Person is not deceased" />
      <mustSupport value="true" />
      <mapping>
        <identity value="EHM" />
        <map value="Avliden" />
      </mapping>
    </element>
    <element id="Patient.address">
      <path value="Patient.address" />
      <definition value="The Swedish National Medications List only returns a municipality code (sv kommunkod) and a region code (sv läns-/regionkod)" />
      <max value="1" />
      <mustSupport value="true" />
      <mapping>
        <identity value="EHM" />
        <map value="Personadress" />
      </mapping>
    </element>
    <element id="Patient.address.extension:nllMunicipalityCode">
      <path value="Patient.address.extension" />
      <sliceName value="nllMunicipalityCode" />
      <short value="Municipality code (sv. kommunkod)" />
      <definition value="Municipality code, also called Official Municipality Key (sv: kommunkod) are four letter numeric codes which identfies a municipality (sv: kommun) in Sweden. Codes are decided by SCB.&#xD;&#xA;Example: Kalmar 0880" />
      <type>
        <code value="Extension" />
        <profile value="http://electronichealth.se/fhir/StructureDefinition/NLLMunicipalityCode" />
      </type>
      <mustSupport value="true" />
      <binding>
        <strength value="required" />
        <description value="Statistics in Sweden (SCB)" />
        <valueSet value="http://scb.se" />
      </binding>
      <mapping>
        <identity value="EHM" />
        <map value="Kommun" />
      </mapping>
    </element>
    <element id="Patient.address.extension:nllRegionCode">
      <path value="Patient.address.extension" />
      <sliceName value="nllRegionCode" />
      <short value="Region code (sv: region/länskod)" />
      <definition value="Region code is a two letter numeric code for regions (sv: region/län) in Sweden" />
      <type>
        <code value="Extension" />
        <profile value="http://electronichealth.se/fhir/StructureDefinition/NLLRegionCode" />
      </type>
      <mustSupport value="true" />
      <binding>
        <strength value="required" />
        <description value="Statistics in Sweden (SCB)" />
        <valueSet value="http://scb.se" />
      </binding>
      <mapping>
        <identity value="EHM" />
        <map value="Län" />
      </mapping>
    </element>
  </differential>
</StructureDefinition>