<StructureDefinition xmlns="http://hl7.org/fhir">
  <url value="https://noma.no/fhir/StructureDefinition/SubstanceSpecification_NOMA_v3_1" />
  <version value="3.1" />
  <name value="SubstanceSpecification_NOMA_v3_1" />
  <title value="SubstanceSpecification_NOMA_v3_1" />
  <status value="draft" />
  <description value="Representing the Substances in the Norwegian Substance database" />
  <fhirVersion value="4.0.1" />
  <kind value="resource" />
  <abstract value="false" />
  <type value="SubstanceSpecification" />
  <baseDefinition value="http://hl7.org/fhir/StructureDefinition/SubstanceSpecification" />
  <derivation value="constraint" />
  <differential>
    <element id="SubstanceSpecification">
      <path value="SubstanceSpecification" />
      <comment value="Based on ISO 11238" />
      <alias value="SubstanceDefinition (FHIR R5)" />
    </element>
    <element id="SubstanceSpecification.extension">
      <path value="SubstanceSpecification.extension" />
      <min value="1" />
    </element>
    <element id="SubstanceSpecification.extension:SMSID">
      <path value="SubstanceSpecification.extension" />
      <sliceName value="SMSID" />
      <type>
        <code value="Extension" />
        <profile value="https://mpd.noma.no/identifier/sms-id" />
      </type>
      <isModifier value="false" />
    </element>
    <element id="SubstanceSpecification.extension:UniiCode">
      <path value="SubstanceSpecification.extension" />
      <sliceName value="UniiCode" />
      <type>
        <code value="Extension" />
        <profile value="https://mpd.noma.no/identifier/unii-code" />
      </type>
      <isModifier value="false" />
    </element>
    <element id="SubstanceSpecification.extension:FestId">
      <path value="SubstanceSpecification.extension" />
      <sliceName value="FestId" />
      <type>
        <code value="Extension" />
        <profile value="https://mpd.noma.no/identifier/fest-substans-id" />
      </type>
      <isModifier value="false" />
    </element>
    <element id="SubstanceSpecification.extension:classification">
      <path value="SubstanceSpecification.extension" />
      <sliceName value="classification" />
      <type>
        <code value="Extension" />
        <profile value="http://noma.no/fhir/StructureDefinition/SubstanceSpecification_ClassificationExtension_NOMA_GUPRI" />
      </type>
      <isModifier value="false" />
    </element>
    <element id="SubstanceSpecification.extension:classification.url">
      <path value="SubstanceSpecification.extension.url" />
      <fixedUri value="http://noma.no/fhir/StructureDefinition/SubstanceSpecification_ClassificationExtension_NOMA_GUPRI" />
    </element>
    <element id="SubstanceSpecification.modifierExtension">
      <path value="SubstanceSpecification.modifierExtension" />
      <max value="0" />
    </element>
    <element id="SubstanceSpecification.identifier">
      <path value="SubstanceSpecification.identifier" />
      <short value="Indentifier for the substance." />
      <definition value="Identifier by which this substance is known, specific to NoMA's FHIR API&#xD;&#xA;Url (preliminary): http://legemiddelverket.no/fhir/SAFEST/SafestSubstanceDefinitionID  &#xD;&#xA;Alternative (business) identifiers - SMS ID, UniiCode and FEST ID - are provided in the extension. since the identifier attribute can provide at most one identifier." />
      <alias value="nomaSubstanceDefinitionID" />
      <min value="1" />
    </element>
    <element id="SubstanceSpecification.identifier.extension">
      <path value="SubstanceSpecification.identifier.extension" />
      <max value="0" />
    </element>
    <element id="SubstanceSpecification.identifier.use">
      <path value="SubstanceSpecification.identifier.use" />
      <max value="0" />
    </element>
    <element id="SubstanceSpecification.identifier.type">
      <path value="SubstanceSpecification.identifier.type" />
      <max value="0" />
    </element>
    <element id="SubstanceSpecification.identifier.system">
      <path value="SubstanceSpecification.identifier.system" />
      <fixedUri value="https://mpd.noma.no/identifier/substance-definition-id" />
    </element>
    <element id="SubstanceSpecification.identifier.period">
      <path value="SubstanceSpecification.identifier.period" />
      <max value="0" />
    </element>
    <element id="SubstanceSpecification.identifier.assigner">
      <path value="SubstanceSpecification.identifier.assigner" />
      <max value="0" />
    </element>
    <element id="SubstanceSpecification.type">
      <path value="SubstanceSpecification.type" />
      <short value="High level categorization, e.g. chemical, polymer or nucleic acid" />
      <definition value="High level categorization, e.g. chemical, polymer or nucleic acid  &#xD;&#xA;&#xD;&#xA;System URL: [https://mpd.noma.no/codesystem/substance-type](https://mpd.noma.no/codesystem/substance-type)" />
      <alias value="category" />
      <binding>
        <strength value="example" />
        <description value="SPOR RMS Substance Types" />
        <valueSet value="https://spor.ema.europa.eu/rmswi/#/lists/100000075826/terms" />
      </binding>
    </element>
    <element id="SubstanceSpecification.type.extension">
      <path value="SubstanceSpecification.type.extension" />
      <max value="0" />
    </element>
    <element id="SubstanceSpecification.type.coding.extension">
      <path value="SubstanceSpecification.type.coding.extension" />
      <max value="0" />
    </element>
    <element id="SubstanceSpecification.type.coding.system">
      <path value="SubstanceSpecification.type.coding.system" />
      <definition value="The identification of the code system that defines the meaning of the symbol in the code.&#xD;&#xA;The system URL is preliminary and will be replaced with a stable &quot;GUPRI&quot;" />
      <fixedUri value="https://mpd.noma.no/codesystem/substance-type" />
    </element>
    <element id="SubstanceSpecification.type.coding.version">
      <path value="SubstanceSpecification.type.coding.version" />
      <max value="0" />
    </element>
    <element id="SubstanceSpecification.type.coding.userSelected">
      <path value="SubstanceSpecification.type.coding.userSelected" />
      <max value="0" />
    </element>
    <element id="SubstanceSpecification.type.text">
      <path value="SubstanceSpecification.type.text" />
      <max value="0" />
    </element>
    <element id="SubstanceSpecification.status">
      <path value="SubstanceSpecification.status" />
      <max value="0" />
    </element>
    <element id="SubstanceSpecification.domain">
      <path value="SubstanceSpecification.domain" />
      <max value="0" />
    </element>
    <element id="SubstanceSpecification.description">
      <path value="SubstanceSpecification.description" />
      <max value="0" />
    </element>
    <element id="SubstanceSpecification.source">
      <path value="SubstanceSpecification.source" />
      <max value="0" />
    </element>
    <element id="SubstanceSpecification.comment">
      <path value="SubstanceSpecification.comment" />
      <max value="0" />
    </element>
    <element id="SubstanceSpecification.moiety">
      <path value="SubstanceSpecification.moiety" />
      <max value="0" />
    </element>
    <element id="SubstanceSpecification.property">
      <path value="SubstanceSpecification.property" />
      <max value="0" />
    </element>
    <element id="SubstanceSpecification.referenceInformation">
      <path value="SubstanceSpecification.referenceInformation" />
      <max value="0" />
    </element>
    <element id="SubstanceSpecification.structure">
      <path value="SubstanceSpecification.structure" />
      <max value="0" />
    </element>
    <element id="SubstanceSpecification.code">
      <path value="SubstanceSpecification.code" />
      <max value="0" />
    </element>
    <element id="SubstanceSpecification.name">
      <path value="SubstanceSpecification.name" />
      <definition value="Names applicable to this substance.. Provided in Norwegian, English and (if exists) Latin" />
    </element>
    <element id="SubstanceSpecification.name.extension">
      <path value="SubstanceSpecification.name.extension" />
      <alias value="alias" />
    </element>
    <element id="SubstanceSpecification.name.extension:alias">
      <path value="SubstanceSpecification.name.extension" />
      <sliceName value="alias" />
      <type>
        <code value="Extension" />
        <profile value="https://mpd.noma.no/structuredefinition/alias-name" />
      </type>
      <isModifier value="false" />
    </element>
    <element id="SubstanceSpecification.name.modifierExtension">
      <path value="SubstanceSpecification.name.modifierExtension" />
      <max value="0" />
    </element>
    <element id="SubstanceSpecification.name.type">
      <path value="SubstanceSpecification.name.type" />
      <max value="0" />
    </element>
    <element id="SubstanceSpecification.name.status">
      <path value="SubstanceSpecification.name.status" />
      <max value="0" />
    </element>
    <element id="SubstanceSpecification.name.preferred">
      <path value="SubstanceSpecification.name.preferred" />
      <max value="0" />
    </element>
    <element id="SubstanceSpecification.name.language">
      <path value="SubstanceSpecification.name.language" />
      <definition value="Language of the name. Norwegian, English or (if exists) Latin" />
    </element>
    <element id="SubstanceSpecification.name.language.extension">
      <path value="SubstanceSpecification.name.language.extension" />
      <max value="0" />
    </element>
    <element id="SubstanceSpecification.name.language.coding.extension">
      <path value="SubstanceSpecification.name.language.coding.extension" />
      <max value="0" />
    </element>
    <element id="SubstanceSpecification.name.language.coding.system">
      <path value="SubstanceSpecification.name.language.coding.system" />
      <fixedUri value="https://mpd.noma.no/codesystem/language-codes" />
    </element>
    <element id="SubstanceSpecification.name.language.coding.version">
      <path value="SubstanceSpecification.name.language.coding.version" />
      <max value="0" />
    </element>
    <element id="SubstanceSpecification.name.language.coding.userSelected">
      <path value="SubstanceSpecification.name.language.coding.userSelected" />
      <max value="0" />
    </element>
    <element id="SubstanceSpecification.name.language.text">
      <path value="SubstanceSpecification.name.language.text" />
      <max value="0" />
    </element>
    <element id="SubstanceSpecification.name.domain">
      <path value="SubstanceSpecification.name.domain" />
      <max value="0" />
    </element>
    <element id="SubstanceSpecification.name.jurisdiction">
      <path value="SubstanceSpecification.name.jurisdiction" />
      <max value="0" />
    </element>
    <element id="SubstanceSpecification.name.synonym">
      <path value="SubstanceSpecification.name.synonym" />
      <max value="0" />
    </element>
    <element id="SubstanceSpecification.name.translation">
      <path value="SubstanceSpecification.name.translation" />
      <max value="0" />
    </element>
    <element id="SubstanceSpecification.name.official">
      <path value="SubstanceSpecification.name.official" />
      <max value="0" />
    </element>
    <element id="SubstanceSpecification.name.source">
      <path value="SubstanceSpecification.name.source" />
      <max value="0" />
    </element>
    <element id="SubstanceSpecification.molecularWeight">
      <path value="SubstanceSpecification.molecularWeight" />
      <max value="0" />
    </element>
    <element id="SubstanceSpecification.relationship.extension">
      <path value="SubstanceSpecification.relationship.extension" />
      <max value="0" />
    </element>
    <element id="SubstanceSpecification.relationship.modifierExtension">
      <path value="SubstanceSpecification.relationship.modifierExtension" />
      <max value="0" />
    </element>
    <element id="SubstanceSpecification.relationship.substance[x]">
      <path value="SubstanceSpecification.relationship.substance[x]" />
      <type>
        <code value="Reference" />
        <targetProfile value="https://noma.no/fhir/StructureDefinition/SubstanceSpecification_NOMA_v3_1" />
      </type>
      <type>
        <code value="CodeableConcept" />
      </type>
    </element>
    <element id="SubstanceSpecification.relationship.relationship">
      <path value="SubstanceSpecification.relationship.relationship" />
      <alias value="type" />
    </element>
    <element id="SubstanceSpecification.relationship.relationship.extension">
      <path value="SubstanceSpecification.relationship.relationship.extension" />
      <max value="0" />
    </element>
    <element id="SubstanceSpecification.relationship.relationship.coding.extension">
      <path value="SubstanceSpecification.relationship.relationship.coding.extension" />
      <max value="0" />
    </element>
    <element id="SubstanceSpecification.relationship.relationship.coding.system">
      <path value="SubstanceSpecification.relationship.relationship.coding.system" />
      <fixedUri value="https://mpd.noma.no/codesystem/substance-relationship-role" />
    </element>
    <element id="SubstanceSpecification.relationship.relationship.coding.version">
      <path value="SubstanceSpecification.relationship.relationship.coding.version" />
      <max value="0" />
    </element>
    <element id="SubstanceSpecification.relationship.relationship.coding.userSelected">
      <path value="SubstanceSpecification.relationship.relationship.coding.userSelected" />
      <max value="0" />
    </element>
    <element id="SubstanceSpecification.relationship.isDefining">
      <path value="SubstanceSpecification.relationship.isDefining" />
      <max value="0" />
    </element>
    <element id="SubstanceSpecification.relationship.amount[x]">
      <path value="SubstanceSpecification.relationship.amount[x]" />
      <slicing>
        <discriminator>
          <type value="type" />
          <path value="$this" />
        </discriminator>
        <rules value="open" />
      </slicing>
      <max value="0" />
    </element>
    <element id="SubstanceSpecification.relationship.amount[x]:amountQuantity">
      <path value="SubstanceSpecification.relationship.amount[x]" />
      <sliceName value="amountQuantity" />
      <max value="0" />
      <type>
        <code value="Quantity" />
      </type>
    </element>
    <element id="SubstanceSpecification.relationship.amount[x]:amountRange">
      <path value="SubstanceSpecification.relationship.amount[x]" />
      <sliceName value="amountRange" />
      <max value="0" />
      <type>
        <code value="Range" />
      </type>
    </element>
    <element id="SubstanceSpecification.relationship.amount[x]:amountRatio">
      <path value="SubstanceSpecification.relationship.amount[x]" />
      <sliceName value="amountRatio" />
      <max value="0" />
      <type>
        <code value="Ratio" />
      </type>
    </element>
    <element id="SubstanceSpecification.relationship.amount[x]:amountString">
      <path value="SubstanceSpecification.relationship.amount[x]" />
      <sliceName value="amountString" />
      <max value="0" />
      <type>
        <code value="string" />
      </type>
    </element>
    <element id="SubstanceSpecification.relationship.amountRatioLowLimit">
      <path value="SubstanceSpecification.relationship.amountRatioLowLimit" />
      <max value="0" />
    </element>
    <element id="SubstanceSpecification.relationship.amountType">
      <path value="SubstanceSpecification.relationship.amountType" />
      <max value="0" />
    </element>
    <element id="SubstanceSpecification.relationship.source">
      <path value="SubstanceSpecification.relationship.source" />
      <max value="0" />
    </element>
    <element id="SubstanceSpecification.nucleicAcid">
      <path value="SubstanceSpecification.nucleicAcid" />
      <max value="0" />
    </element>
    <element id="SubstanceSpecification.polymer">
      <path value="SubstanceSpecification.polymer" />
      <max value="0" />
    </element>
    <element id="SubstanceSpecification.protein">
      <path value="SubstanceSpecification.protein" />
      <max value="0" />
    </element>
    <element id="SubstanceSpecification.sourceMaterial">
      <path value="SubstanceSpecification.sourceMaterial" />
      <max value="0" />
    </element>
  </differential>
</StructureDefinition>