<StructureDefinition xmlns="http://hl7.org/fhir">
  <url value="http://electronichealth.se/fhir/StructureDefinition/NLLMedication" />
  <version value="1.1.3" />
  <name value="NLLMedication" />
  <status value="active" />
  <date value="2025-04-01" />
  <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="Medication" />
  <baseDefinition value="http://hl7.org/fhir/StructureDefinition/Medication" />
  <derivation value="constraint" />
  <differential>
    <element id="Medication">
      <path value="Medication" />
      <short value="Medicinal products and medical consumables" />
      <definition value="This resource is used to represent a medicinal product or a medical consumable. Medicinal products are identified by NPL-pack-id and medical consumables by item number (sv: varunummer)." />
    </element>
    <element id="Medication.id">
      <path value="Medication.id" />
      <mustSupport value="true" />
      <mapping>
        <identity value="EHM" />
        <map value="Artikel-id" />
      </mapping>
    </element>
    <element id="Medication.text">
      <path value="Medication.text" />
      <mustSupport value="true" />
    </element>
    <element id="Medication.text.status">
      <path value="Medication.text.status" />
      <fixedCode value="extensions" />
      <mustSupport value="true" />
    </element>
    <element id="Medication.text.div">
      <path value="Medication.text.div" />
      <definition value="Summary including a sub-set of information.&#xD;&#xA;- Medicinal products:  current product name, form, strength and in specific situations producer (manufacturer).&#xD;&#xA;- Medical consumables: current product name and a description of the  product." />
      <comment value="Maximum string length: 80" />
      <mustSupport value="true" />
      <mapping>
        <identity value="EHM" />
        <map value="Artikelbenämning" />
      </mapping>
    </element>
    <element id="Medication.extension:nllArticleInfo">
      <path value="Medication.extension" />
      <sliceName value="nllArticleInfo" />
      <max value="1" />
      <type>
        <code value="Extension" />
        <profile value="http://electronichealth.se/fhir/StructureDefinition/NLLArticleInfo" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="Medication.extension:nllArticleInfo.extension:medicinalProduct">
      <path value="Medication.extension.extension" />
      <sliceName value="medicinalProduct" />
      <mustSupport value="true" />
    </element>
    <element id="Medication.extension:nllArticleInfo.extension:productType">
      <path value="Medication.extension.extension" />
      <sliceName value="productType" />
      <mustSupport value="true" />
    </element>
    <element id="Medication.extension:nllArticleInfo.extension:productType.value[x].coding">
      <path value="Medication.extension.extension.value[x].coding" />
      <mustSupport value="true" />
    </element>
    <element id="Medication.extension:nllArticleInfo.extension:productType.value[x].coding.system">
      <path value="Medication.extension.extension.value[x].coding.system" />
      <mustSupport value="true" />
    </element>
    <element id="Medication.extension:nllArticleInfo.extension:productType.value[x].coding.version">
      <path value="Medication.extension.extension.value[x].coding.version" />
      <mustSupport value="true" />
    </element>
    <element id="Medication.extension:nllArticleInfo.extension:productType.value[x].coding.code">
      <path value="Medication.extension.extension.value[x].coding.code" />
      <mustSupport value="true" />
    </element>
    <element id="Medication.extension:nllArticleInfo.extension:productType.value[x].text">
      <path value="Medication.extension.extension.value[x].text" />
      <mustSupport value="true" />
    </element>
    <element id="Medication.extension:nllArticleInfo.extension:productName">
      <path value="Medication.extension.extension" />
      <sliceName value="productName" />
      <max value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Medication.extension:nllArticleInfo.extension:productName.extension:currentProductName">
      <path value="Medication.extension.extension.extension" />
      <sliceName value="currentProductName" />
      <mustSupport value="true" />
    </element>
    <element id="Medication.extension:nllArticleInfo.extension:productName.extension:history">
      <path value="Medication.extension.extension.extension" />
      <sliceName value="history" />
      <mustSupport value="true" />
    </element>
    <element id="Medication.extension:nllArticleInfo.extension:productName.extension:history.extension:productName">
      <path value="Medication.extension.extension.extension.extension" />
      <sliceName value="productName" />
      <mustSupport value="true" />
    </element>
    <element id="Medication.extension:nllArticleInfo.extension:productName.extension:history.extension:periodOfUse">
      <path value="Medication.extension.extension.extension.extension" />
      <sliceName value="periodOfUse" />
      <mustSupport value="true" />
    </element>
    <element id="Medication.extension:nllArticleInfo.extension:package">
      <path value="Medication.extension.extension" />
      <sliceName value="package" />
      <mustSupport value="true" />
    </element>
    <element id="Medication.extension:nllArticleInfo.extension:package.extension:packageContainer">
      <path value="Medication.extension.extension.extension" />
      <sliceName value="packageContainer" />
      <mustSupport value="true" />
    </element>
    <element id="Medication.extension:nllArticleInfo.extension:package.extension:packageDescription">
      <path value="Medication.extension.extension.extension" />
      <sliceName value="packageDescription" />
      <mustSupport value="true" />
    </element>
    <element id="Medication.extension:nllArticleInfo.extension:strength">
      <path value="Medication.extension.extension" />
      <sliceName value="strength" />
      <mustSupport value="true" />
    </element>
    <element id="Medication.extension:nllArticleInfo.extension:strength.extension:quantity">
      <path value="Medication.extension.extension.extension" />
      <sliceName value="quantity" />
      <mustSupport value="true" />
    </element>
    <element id="Medication.extension:nllArticleInfo.extension:strength.extension:quantity.value[x].value">
      <path value="Medication.extension.extension.extension.value[x].value" />
      <mustSupport value="true" />
    </element>
    <element id="Medication.extension:nllArticleInfo.extension:strength.extension:quantity.value[x].unit">
      <path value="Medication.extension.extension.extension.value[x].unit" />
      <mustSupport value="true" />
    </element>
    <element id="Medication.extension:nllArticleInfo.extension:strength.extension:text">
      <path value="Medication.extension.extension.extension" />
      <sliceName value="text" />
      <mustSupport value="true" />
    </element>
    <element id="Medication.extension:nllArticleAvailability">
      <path value="Medication.extension" />
      <sliceName value="nllArticleAvailability" />
      <max value="1" />
      <type>
        <code value="Extension" />
        <profile value="http://electronichealth.se/fhir/StructureDefinition/NLLArticleAvailability" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="Medication.extension:nllArticleAvailability.extension:onTheMarket">
      <path value="Medication.extension.extension" />
      <sliceName value="onTheMarket" />
      <mustSupport value="true" />
    </element>
    <element id="Medication.extension:nllArticleAvailability.extension:salesStopped">
      <path value="Medication.extension.extension" />
      <sliceName value="salesStopped" />
      <mustSupport value="true" />
    </element>
    <element id="Medication.extension:nllArticleAvailability.extension:withdrawalDate">
      <path value="Medication.extension.extension" />
      <sliceName value="withdrawalDate" />
      <mustSupport value="true" />
    </element>
    <element id="Medication.extension:nllArticleRegulations">
      <path value="Medication.extension" />
      <sliceName value="nllArticleRegulations" />
      <max value="1" />
      <type>
        <code value="Extension" />
        <profile value="http://electronichealth.se/fhir/StructureDefinition/NLLArticleRegulations" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="Medication.extension:nllArticleRegulations.extension:prescriptiveAuthorityCode">
      <path value="Medication.extension.extension" />
      <sliceName value="prescriptiveAuthorityCode" />
      <mustSupport value="true" />
    </element>
    <element id="Medication.extension:nllArticleRegulations.extension:repeatPrescription">
      <path value="Medication.extension.extension" />
      <sliceName value="repeatPrescription" />
      <mustSupport value="true" />
    </element>
    <element id="Medication.extension:nllArticleRegulations.extension:repeatPrescription.value[x].system">
      <path value="Medication.extension.extension.value[x].system" />
      <mustSupport value="true" />
    </element>
    <element id="Medication.extension:nllArticleRegulations.extension:repeatPrescription.value[x].code">
      <path value="Medication.extension.extension.value[x].code" />
      <mustSupport value="true" />
    </element>
    <element id="Medication.extension:nllArticleRegulations.extension:substitutionDetails">
      <path value="Medication.extension.extension" />
      <sliceName value="substitutionDetails" />
      <mustSupport value="true" />
    </element>
    <element id="Medication.extension:nllArticleRegulations.extension:substitutionDetails.extension:interchangeable">
      <path value="Medication.extension.extension.extension" />
      <sliceName value="interchangeable" />
      <mustSupport value="true" />
    </element>
    <element id="Medication.extension:nllArticleRegulations.extension:substitutionDetails.extension:interchangeSubstanceGroup">
      <path value="Medication.extension.extension.extension" />
      <sliceName value="interchangeSubstanceGroup" />
      <mustSupport value="true" />
    </element>
    <element id="Medication.extension:nllArticleRegulations.extension:dispensingRestriction">
      <path value="Medication.extension.extension" />
      <sliceName value="dispensingRestriction" />
      <mustSupport value="true" />
    </element>
    <element id="Medication.extension:nllArticleRegulations.extension:dispensingRestriction.value[x].coding">
      <path value="Medication.extension.extension.value[x].coding" />
      <mustSupport value="true" />
    </element>
    <element id="Medication.extension:nllArticleRegulations.extension:dispensingRestriction.value[x].coding.system">
      <path value="Medication.extension.extension.value[x].coding.system" />
      <mustSupport value="true" />
    </element>
    <element id="Medication.extension:nllArticleRegulations.extension:dispensingRestriction.value[x].coding.version">
      <path value="Medication.extension.extension.value[x].coding.version" />
      <mustSupport value="true" />
    </element>
    <element id="Medication.extension:nllArticleRegulations.extension:dispensingRestriction.value[x].coding.code">
      <path value="Medication.extension.extension.value[x].coding.code" />
      <mustSupport value="true" />
    </element>
    <element id="Medication.extension:nllArticleRegulations.extension:dispensingRestriction.value[x].text">
      <path value="Medication.extension.extension.value[x].text" />
      <mustSupport value="true" />
    </element>
    <element id="Medication.extension:nllArticleRegulations.extension:controlledMedicinalProduct">
      <path value="Medication.extension.extension" />
      <sliceName value="controlledMedicinalProduct" />
      <mustSupport value="true" />
    </element>
    <element id="Medication.extension:nllArticleRegulations.extension:narcoticClassification">
      <path value="Medication.extension.extension" />
      <sliceName value="narcoticClassification" />
      <mustSupport value="true" />
    </element>
    <element id="Medication.extension:nllArticleRegulations.extension:narcoticClassification.value[x].coding">
      <path value="Medication.extension.extension.value[x].coding" />
      <mustSupport value="true" />
    </element>
    <element id="Medication.extension:nllArticleRegulations.extension:narcoticClassification.value[x].coding.system">
      <path value="Medication.extension.extension.value[x].coding.system" />
      <mustSupport value="true" />
    </element>
    <element id="Medication.extension:nllArticleRegulations.extension:narcoticClassification.value[x].coding.version">
      <path value="Medication.extension.extension.value[x].coding.version" />
      <mustSupport value="true" />
    </element>
    <element id="Medication.extension:nllArticleRegulations.extension:narcoticClassification.value[x].coding.code">
      <path value="Medication.extension.extension.value[x].coding.code" />
      <mustSupport value="true" />
    </element>
    <element id="Medication.extension:nllArticleRegulations.extension:narcoticClassification.value[x].text">
      <path value="Medication.extension.extension.value[x].text" />
      <mustSupport value="true" />
    </element>
    <element id="Medication.extension:nllReimbursement">
      <path value="Medication.extension" />
      <sliceName value="nllReimbursement" />
      <max value="1" />
      <type>
        <code value="Extension" />
        <profile value="http://electronichealth.se/fhir/StructureDefinition/NLLReimbursement" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="Medication.extension:nllReimbursement.extension:eligibleForReimbursement">
      <path value="Medication.extension.extension" />
      <sliceName value="eligibleForReimbursement" />
      <mustSupport value="true" />
    </element>
    <element id="Medication.extension:nllReimbursement.extension:restrictedReimbursement">
      <path value="Medication.extension.extension" />
      <sliceName value="restrictedReimbursement" />
      <mustSupport value="true" />
    </element>
    <element id="Medication.extension:nllReimbursement.extension:productOfThePeriod">
      <path value="Medication.extension.extension" />
      <sliceName value="productOfThePeriod" />
      <mustSupport value="true" />
    </element>
    <element id="Medication.extension:nllReimbursement.extension:productOfThePeriod.extension:currentPeriod">
      <path value="Medication.extension.extension.extension" />
      <sliceName value="currentPeriod" />
      <mustSupport value="true" />
    </element>
    <element id="Medication.extension:nllReimbursement.extension:productOfThePeriod.extension:unavailable">
      <path value="Medication.extension.extension.extension" />
      <sliceName value="unavailable" />
      <mustSupport value="true" />
    </element>
    <element id="Medication.extension:nllReimbursement.extension:productOfThePeriod.extension:previousPeriod">
      <path value="Medication.extension.extension.extension" />
      <sliceName value="previousPeriod" />
      <mustSupport value="true" />
    </element>
    <element id="Medication.identifier">
      <path value="Medication.identifier" />
      <slicing>
        <discriminator>
          <type value="value" />
          <path value="system" />
        </discriminator>
        <rules value="open" />
      </slicing>
      <comment value="Medicinal products is identified by an NPL-package ID and other products by a Varunr" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Medication.identifier:nplpackid">
      <path value="Medication.identifier" />
      <sliceName value="nplpackid" />
      <short value="Medicinal product package ID" />
      <definition value="Unique identifier for a packaged medicinal product (sv: läkemedelsartikel) according to NPL (Nationellt produktregister för läkemedel). A medicinal product can come in more than one package type/size. Each package type/size will have an unique NPL-pack-id but share the same NPL-id." />
      <comment value="NPL is administered by the Swedish Medical Products Agency (Läkemedelsverket)&#xD;&#xA;The similar concepts named SB-pack-id and SB-id are modeled as NPL-pack-id and NPL-id in this resource." />
      <max value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Medication.identifier:nplpackid.use">
      <path value="Medication.identifier.use" />
      <mustSupport value="true" />
    </element>
    <element id="Medication.identifier:nplpackid.system">
      <path value="Medication.identifier.system" />
      <min value="1" />
      <fixedUri value="http://electronichealth.se/fhir/NamingSystem/nplpackid" />
      <mustSupport value="true" />
    </element>
    <element id="Medication.identifier:nplpackid.value">
      <path value="Medication.identifier.value" />
      <comment value="Maximum string length: 14" />
      <min value="1" />
      <maxLength value="14" />
      <mustSupport value="true" />
      <mapping>
        <identity value="EHM" />
        <map value="NPL pack-id" />
      </mapping>
    </element>
    <element id="Medication.identifier:varunr">
      <path value="Medication.identifier" />
      <sliceName value="varunr" />
      <short value="Medical consumables Id" />
      <definition value="Unique identifier for medical consumables (sv: handelsvaror)." />
      <comment value="For packaged medicinal products (sv: läkemedelsartiklar) item number is not always unique and can change over time." />
      <mustSupport value="true" />
    </element>
    <element id="Medication.identifier:varunr.use">
      <path value="Medication.identifier.use" />
      <short value="official | old" />
      <definition value="Defines if the value (varunr) is the current one or an old one." />
      <mustSupport value="true" />
    </element>
    <element id="Medication.identifier:varunr.system">
      <path value="Medication.identifier.system" />
      <min value="1" />
      <fixedUri value="http://electronichealth.se/fhir/NamingSystem/varunr" />
      <mustSupport value="true" />
    </element>
    <element id="Medication.identifier:varunr.value">
      <path value="Medication.identifier.value" />
      <short value="Medical consumables Id" />
      <definition value="The use element defines if this is the current medical consumables Id (sv. varunummer) or an old Id." />
      <comment value="Maximum string length: 8" />
      <min value="1" />
      <mustSupport value="true" />
      <mapping>
        <identity value="EHM" />
        <map value="Varunummer" />
      </mapping>
      <mapping>
        <identity value="EHM" />
        <map value="Historiskt varunummer" />
      </mapping>
    </element>
    <element id="Medication.code">
      <path value="Medication.code" />
      <mustSupport value="true" />
    </element>
    <element id="Medication.code.coding">
      <path value="Medication.code.coding" />
      <slicing>
        <discriminator>
          <type value="value" />
          <path value="system" />
        </discriminator>
        <rules value="open" />
      </slicing>
    </element>
    <element id="Medication.code.coding:atc">
      <path value="Medication.code.coding" />
      <sliceName value="atc" />
      <short value="ATC" />
      <definition value="Classification of medicinal products according to the Anatomical Therapeutic Chemical (ATC) classification system." />
      <max value="1" />
      <mustSupport value="true" />
      <binding>
        <strength value="required" />
        <description value="The Anatomical Therapeutic Chemical (ATC) classification system" />
        <valueSet value="http://www.whocc.no/atc" />
      </binding>
    </element>
    <element id="Medication.code.coding:atc.system">
      <path value="Medication.code.coding.system" />
      <fixedUri value="http://www.whocc.no/atc" />
      <mustSupport value="true" />
    </element>
    <element id="Medication.code.coding:atc.version">
      <path value="Medication.code.coding.version" />
      <mustSupport value="true" />
    </element>
    <element id="Medication.code.coding:atc.code">
      <path value="Medication.code.coding.code" />
      <min value="1" />
      <mustSupport value="true" />
      <mapping>
        <identity value="EHM" />
        <map value="ATC-kod" />
      </mapping>
    </element>
    <element id="Medication.code.coding:nplId">
      <path value="Medication.code.coding" />
      <sliceName value="nplId" />
      <short value="Medcinal product Id" />
      <definition value="Unique identifier for a medicinal product (sv: läkemedelsprodukt) according to NPL (Nationellt produktregister för läkemedel). A medicinal product can come in more than one package type/size. Each package type/size will have an unique NPL package Id but share the same NPL Id." />
      <comment value="NPL is administered by the Swedish Medical Products Agency (Läkemedelsverket)&#xD;&#xA;The similar concepts named SB-pack-id and SB-id are modeled as NPL-pack-id and NPL-id in this resource." />
      <max value="1" />
      <mustSupport value="true" />
      <binding>
        <strength value="required" />
        <description value="NPL Id" />
        <valueSet value="http://electronichealth.se/fhir/NamingSystem/nplid" />
      </binding>
    </element>
    <element id="Medication.code.coding:nplId.system">
      <path value="Medication.code.coding.system" />
      <fixedUri value="http://electronichealth.se/fhir/NamingSystem/nplid" />
      <mustSupport value="true" />
    </element>
    <element id="Medication.code.coding:nplId.version">
      <path value="Medication.code.coding.version" />
      <mustSupport value="true" />
    </element>
    <element id="Medication.code.coding:nplId.code">
      <path value="Medication.code.coding.code" />
      <comment value="Maximum string length: 14" />
      <min value="1" />
      <mustSupport value="true" />
      <mapping>
        <identity value="EHM" />
        <map value="NPL-id" />
      </mapping>
    </element>
    <element id="Medication.code.text">
      <path value="Medication.code.text" />
      <definition value="Plain text representation of the concept as in the textual representation of the ATC code." />
      <comment value="Maximum string length: 240" />
      <maxLength value="240" />
      <mustSupport value="true" />
      <mapping>
        <identity value="EHM" />
        <map value="ATC-klartext" />
      </mapping>
    </element>
    <element id="Medication.status">
      <path value="Medication.status" />
      <short value="active | inactive" />
      <definition value="Status defines whether the article is available for dispense or not." />
      <mustSupport value="true" />
      <mapping>
        <identity value="EHM" />
        <map value="status" />
      </mapping>
    </element>
    <element id="Medication.manufacturer">
      <path value="Medication.manufacturer" />
      <mustSupport value="true" />
    </element>
    <element id="Medication.manufacturer.display">
      <path value="Medication.manufacturer.display" />
      <short value="Responsible organisation" />
      <definition value="Name of the organisation responsible for the article" />
      <comment value="Maximum string length: 160" />
      <maxLength value="160" />
      <mustSupport value="true" />
      <mapping>
        <identity value="EHM" />
        <map value="Intressentnamn" />
      </mapping>
    </element>
    <element id="Medication.form">
      <path value="Medication.form" />
      <short value="Dose form of the medicinal product" />
      <definition value="The authorised pharmaceutical dose form in which the medicinal product is marketed, i.e. tablet, capsule." />
      <mustSupport value="true" />
    </element>
    <element id="Medication.form.text">
      <path value="Medication.form.text" />
      <short value="Dose form of the medicinal product" />
      <definition value="The authorised pharmaceutical dose form in which the medicinal product is marketed, i.e. tablet, capsule." />
      <comment value="Maximum string length: 160" />
      <maxLength value="160" />
      <mustSupport value="true" />
      <mapping>
        <identity value="EHM" />
        <map value="Läkemedelsform" />
      </mapping>
    </element>
    <element id="Medication.amount">
      <path value="Medication.amount" />
      <mustSupport value="true" />
      <mapping>
        <identity value="EHM" />
        <map value="Förpackningsmängd och enhet" />
      </mapping>
    </element>
    <element id="Medication.amount.extension:nllDescription">
      <path value="Medication.amount.extension" />
      <sliceName value="nllDescription" />
      <max value="1" />
      <type>
        <code value="Extension" />
        <profile value="http://electronichealth.se/fhir/StructureDefinition/NLLAmountDescription" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="Medication.amount.numerator">
      <path value="Medication.amount.numerator" />
      <definition value="Amount per package" />
      <mustSupport value="true" />
    </element>
    <element id="Medication.amount.numerator.value">
      <path value="Medication.amount.numerator.value" />
      <short value="Amount per package" />
      <mustSupport value="true" />
      <mapping>
        <identity value="EHM" />
        <map value="Förpackningsmängd" />
      </mapping>
    </element>
    <element id="Medication.amount.numerator.unit">
      <path value="Medication.amount.numerator.unit" />
      <comment value="Maximum string length: 80" />
      <maxLength value="80" />
      <mustSupport value="true" />
      <mapping>
        <identity value="EHM" />
        <map value="Förpackningsenhet" />
      </mapping>
    </element>
    <element id="Medication.amount.denominator">
      <path value="Medication.amount.denominator" />
      <definition value="The denominator is set to 1 to follow the requirements for a Ratio. It can be interpreted as amount per one package." />
      <fixedQuantity>
        <value value="1" />
      </fixedQuantity>
      <mustSupport value="true" />
    </element>
    <element id="Medication.amount.denominator.value">
      <path value="Medication.amount.denominator.value" />
      <mustSupport value="true" />
    </element>
  </differential>
</StructureDefinition>