<StructureDefinition xmlns="http://hl7.org/fhir">
  <id value="EPMedDispenseLine-23a31d45-7c0b-4217-81f5-210c4238efd4" />
  <extension url="http://hl7.org/fhir/StructureDefinition/structuredefinition-category">
    <valueString value="Clinical.Medications" />
  </extension>
  <extension url="http://hl7.org/fhir/StructureDefinition/structuredefinition-security-category">
    <valueCode value="patient" />
  </extension>
  <url value="https://www.esante.lu/fhir-spec/StructureDefinition/EPMedDispenseLine" />
  <version value="0.1.0" />
  <name value="EPMedDispenseLine" />
  <status value="draft" />
  <fhirVersion value="4.0.1" />
  <mapping>
    <identity value="workflow" />
    <uri value="http://hl7.org/fhir/workflow" />
    <name value="Workflow Pattern" />
  </mapping>
  <mapping>
    <identity value="rim" />
    <uri value="http://hl7.org/v3" />
    <name value="RIM Mapping" />
  </mapping>
  <mapping>
    <identity value="w5" />
    <uri value="http://hl7.org/fhir/fivews" />
    <name value="FiveWs Pattern Mapping" />
  </mapping>
  <mapping>
    <identity value="rx-dispense-rmim" />
    <uri value="http://www.hl7.org/v3/PORX_RM020070UV" />
    <name value="V3 Pharmacy Dispense RMIM" />
  </mapping>
  <mapping>
    <identity value="v2" />
    <uri value="http://hl7.org/v2" />
    <name value="HL7 v2 Mapping" />
  </mapping>
  <kind value="resource" />
  <abstract value="false" />
  <type value="MedicationDispense" />
  <baseDefinition value="http://hl7.org/fhir/StructureDefinition/MedicationDispense" />
  <derivation value="constraint" />
  <differential>
    <element id="MedicationDispense">
      <path value="MedicationDispense" />
      <short value="The dispensation line" />
    </element>
    <element id="MedicationDispense.id">
      <path value="MedicationDispense.id" />
      <definition value="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.&#xD;&#xA;Is assigned by the server, do not provide a value." />
    </element>
    <element id="MedicationDispense.meta">
      <path value="MedicationDispense.meta" />
      <min value="1" />
    </element>
    <element id="MedicationDispense.meta.id">
      <path value="MedicationDispense.meta.id" />
      <max value="0" />
    </element>
    <element id="MedicationDispense.meta.versionId">
      <path value="MedicationDispense.meta.versionId" />
      <max value="0" />
    </element>
    <element id="MedicationDispense.meta.lastUpdated">
      <path value="MedicationDispense.meta.lastUpdated" />
      <max value="0" />
    </element>
    <element id="MedicationDispense.meta.source">
      <path value="MedicationDispense.meta.source" />
      <max value="0" />
    </element>
    <element id="MedicationDispense.meta.profile">
      <path value="MedicationDispense.meta.profile" />
      <min value="1" />
      <max value="1" />
      <fixedCanonical value="https://www.esante.lu/fhir-spec/StructureDefinition/EPMedDispenseLine" />
    </element>
    <element id="MedicationDispense.meta.security">
      <path value="MedicationDispense.meta.security" />
      <max value="0" />
    </element>
    <element id="MedicationDispense.meta.tag">
      <path value="MedicationDispense.meta.tag" />
      <max value="0" />
    </element>
    <element id="MedicationDispense.implicitRules">
      <path value="MedicationDispense.implicitRules" />
      <max value="0" />
    </element>
    <element id="MedicationDispense.language">
      <path value="MedicationDispense.language" />
      <max value="0" />
    </element>
    <element id="MedicationDispense.text">
      <path value="MedicationDispense.text" />
      <max value="0" />
    </element>
    <element id="MedicationDispense.contained">
      <path value="MedicationDispense.contained" />
      <max value="0" />
    </element>
    <element id="MedicationDispense.identifier">
      <path value="MedicationDispense.identifier" />
      <short value="Identifier for the dispense line" />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="Identifier" />
        <profile value="https://www.esante.lu/fhir-spec/StructureDefinition/EPSimpleIdentifier" />
      </type>
    </element>
    <element id="MedicationDispense.partOf">
      <path value="MedicationDispense.partOf" />
      <max value="0" />
    </element>
    <element id="MedicationDispense.status">
      <path value="MedicationDispense.status" />
      <definition value="Constant because the dispense line itself is completed, even though the prescription line may still be open" />
      <fixedCode value="completed" />
    </element>
    <element id="MedicationDispense.statusReason[x]">
      <path value="MedicationDispense.statusReason[x]" />
      <max value="0" />
    </element>
    <element id="MedicationDispense.category">
      <path value="MedicationDispense.category" />
      <definition value="Constant" />
      <min value="1" />
    </element>
    <element id="MedicationDispense.category.id">
      <path value="MedicationDispense.category.id" />
      <max value="0" />
    </element>
    <element id="MedicationDispense.category.coding">
      <path value="MedicationDispense.category.coding" />
      <min value="1" />
      <max value="1" />
      <fixedCoding>
        <system value="urn:oid:1.3.182.5.56" />
        <code value="MED_DISPLINE" />
      </fixedCoding>
    </element>
    <element id="MedicationDispense.category.coding.id">
      <path value="MedicationDispense.category.coding.id" />
      <max value="0" />
    </element>
    <element id="MedicationDispense.category.coding.system">
      <path value="MedicationDispense.category.coding.system" />
      <min value="1" />
    </element>
    <element id="MedicationDispense.category.coding.version">
      <path value="MedicationDispense.category.coding.version" />
      <max value="0" />
    </element>
    <element id="MedicationDispense.category.coding.code">
      <path value="MedicationDispense.category.coding.code" />
      <min value="1" />
    </element>
    <element id="MedicationDispense.category.coding.display">
      <path value="MedicationDispense.category.coding.display" />
      <max value="0" />
    </element>
    <element id="MedicationDispense.category.coding.userSelected">
      <path value="MedicationDispense.category.coding.userSelected" />
      <max value="0" />
    </element>
    <element id="MedicationDispense.category.text">
      <path value="MedicationDispense.category.text" />
      <max value="0" />
    </element>
    <element id="MedicationDispense.medication[x]">
      <path value="MedicationDispense.medication[x]" />
      <type>
        <code value="Reference" />
        <targetProfile value="https://www.esante.lu/fhir-spec/StructureDefinition/EPMedicationDispensation" />
        <targetProfile value="https://www.esante.lu/fhir-spec/StructureDefinition/EPMedicationNoRef" />
        <aggregation value="referenced" />
        <aggregation value="bundled" />
      </type>
    </element>
    <element id="MedicationDispense.medication[x].id">
      <path value="MedicationDispense.medication[x].id" />
      <max value="0" />
    </element>
    <element id="MedicationDispense.medication[x].reference">
      <path value="MedicationDispense.medication[x].reference" />
      <short value="The dispensed medication" />
      <definition value="See examples:&#xD;&#xA;If the medication is in the referential, simply link to it through the dispensation code&#xD;&#xA;If the medication is not in the referential, you have to create it, put it in the Bundle and link to it through its fullURL" />
      <min value="1" />
      <example>
        <label value="Known medication" />
        <valueString value="Medication?identifier=urn:oid:1.3.182.5.48|0277072" />
      </example>
      <example>
        <label value="Medication not in the referential" />
        <valueString value="Medication/urn:uuid:595bbd26-b841-4028-817d-adbcc4cdad3b" />
      </example>
      <condition value="val-medicationByFullURLOrLocal" />
      <constraint>
        <key value="val-medicationByFullURLOrLocal" />
        <severity value="error" />
        <human value="SHALL reference a dispensable medication by its identifier or by its fullURL" />
        <expression value="(startsWith('Medication?identifier=urn:oid:1.3.182.5.48|') and length()=50) or (startsWith('Medication/urn:uuid:') and length()=56)" />
        <source value="https://www.esante.lu/fhir-spec/StructureDefinition/EPMedDispenseLine" />
      </constraint>
    </element>
    <element id="MedicationDispense.medication[x].type">
      <path value="MedicationDispense.medication[x].type" />
      <max value="0" />
    </element>
    <element id="MedicationDispense.medication[x].identifier">
      <path value="MedicationDispense.medication[x].identifier" />
      <max value="0" />
    </element>
    <element id="MedicationDispense.medication[x].display">
      <path value="MedicationDispense.medication[x].display" />
      <max value="0" />
    </element>
    <element id="MedicationDispense.subject">
      <path value="MedicationDispense.subject" />
      <short value="The patient" />
      <min value="1" />
      <type>
        <code value="Reference" />
        <targetProfile value="https://www.esante.lu/fhir-spec/StructureDefinition/EPPatient" />
        <aggregation value="referenced" />
      </type>
    </element>
    <element id="MedicationDispense.subject.id">
      <path value="MedicationDispense.subject.id" />
      <max value="0" />
    </element>
    <element id="MedicationDispense.subject.reference">
      <path value="MedicationDispense.subject.reference" />
      <short value="The patient referenced by its matricule" />
      <min value="1" />
      <example>
        <label value="Example" />
        <valueString value="Patient?identifier=urn:oid:1.3.182.4.4|1904112000166" />
      </example>
      <constraint>
        <key value="val-patByMatricule" />
        <severity value="error" />
        <human value="The Patient SHALL be referenced by its matricule" />
        <expression value="startsWith('Patient?identifier=urn:oid:1.3.182.4.4|') and length()=52" />
        <source value="https://www.esante.lu/fhir-spec/StructureDefinition/EPMedDispenseLine" />
      </constraint>
    </element>
    <element id="MedicationDispense.subject.type">
      <path value="MedicationDispense.subject.type" />
      <max value="0" />
    </element>
    <element id="MedicationDispense.subject.identifier">
      <path value="MedicationDispense.subject.identifier" />
      <max value="0" />
    </element>
    <element id="MedicationDispense.subject.display">
      <path value="MedicationDispense.subject.display" />
      <max value="0" />
    </element>
    <element id="MedicationDispense.context">
      <path value="MedicationDispense.context" />
      <short value="The dispense containing this dispense line" />
      <min value="1" />
      <type>
        <code value="Reference" />
        <targetProfile value="https://www.esante.lu/fhir-spec/StructureDefinition/EPMedDispense" />
      </type>
    </element>
    <element id="MedicationDispense.context.id">
      <path value="MedicationDispense.context.id" />
      <max value="0" />
    </element>
    <element id="MedicationDispense.context.reference">
      <path value="MedicationDispense.context.reference" />
      <short value="The dispensation document (Encounter) referenced bi its fullUrl" />
      <min value="1" />
      <example>
        <label value="Example" />
        <valueString value="Encounter/urn:uuid:20215b63-6b42-4d1d-970f-ffcc08426a9a" />
      </example>
      <condition value="val-encounterLocal" />
      <constraint>
        <key value="val-encounterLocal" />
        <severity value="error" />
        <human value="SHALL reference the Encounter by its fullURL" />
        <expression value="startsWith('Encounter/urn:uuid:') and length()=55" />
        <source value="https://www.esante.lu/fhir-spec/StructureDefinition/EPMedDispenseLine" />
      </constraint>
    </element>
    <element id="MedicationDispense.context.type">
      <path value="MedicationDispense.context.type" />
      <max value="0" />
    </element>
    <element id="MedicationDispense.context.identifier">
      <path value="MedicationDispense.context.identifier" />
      <max value="0" />
    </element>
    <element id="MedicationDispense.context.display">
      <path value="MedicationDispense.context.display" />
      <max value="0" />
    </element>
    <element id="MedicationDispense.supportingInformation">
      <path value="MedicationDispense.supportingInformation" />
      <max value="0" />
    </element>
    <element id="MedicationDispense.performer">
      <path value="MedicationDispense.performer" />
      <slicing>
        <discriminator>
          <type value="value" />
          <path value="actor.type" />
        </discriminator>
        <rules value="closed" />
      </slicing>
      <short value="Who dispensed: the parmacist and the pharmacy" />
      <min value="2" />
      <max value="2" />
    </element>
    <element id="MedicationDispense.performer:Pharmacist">
      <path value="MedicationDispense.performer" />
      <sliceName value="Pharmacist" />
      <short value="The pharmacist" />
      <min value="1" />
      <max value="1" />
    </element>
    <element id="MedicationDispense.performer:Pharmacist.id">
      <path value="MedicationDispense.performer.id" />
      <max value="0" />
    </element>
    <element id="MedicationDispense.performer:Pharmacist.function">
      <path value="MedicationDispense.performer.function" />
      <max value="0" />
    </element>
    <element id="MedicationDispense.performer:Pharmacist.actor">
      <path value="MedicationDispense.performer.actor" />
      <short value="The pharmacist" />
      <type>
        <code value="Reference" />
        <targetProfile value="https://www.esante.lu/fhir-spec/StructureDefinition/EPPractitioner" />
        <aggregation value="referenced" />
      </type>
    </element>
    <element id="MedicationDispense.performer:Pharmacist.actor.id">
      <path value="MedicationDispense.performer.actor.id" />
      <max value="0" />
    </element>
    <element id="MedicationDispense.performer:Pharmacist.actor.reference">
      <path value="MedicationDispense.performer.actor.reference" />
      <short value="The health professional referenced by its eHealthID" />
      <min value="1" />
      <example>
        <label value="Example" />
        <valueString value="Practitioner?identifier=urn:oid:1.3.182.4.1|2999254871" />
      </example>
      <condition value="val-1" />
      <constraint>
        <key value="val-1" />
        <severity value="error" />
        <human value="A Practitioner SHALL be referenced by its eHealthID" />
        <expression value="startsWith('Practitioner?identifier=urn:oid:1.3.182.4.1|2') and length()=54" />
        <source value="https://www.esante.lu/fhir-spec/StructureDefinition/EPMedDispenseLine" />
      </constraint>
    </element>
    <element id="MedicationDispense.performer:Pharmacist.actor.type">
      <path value="MedicationDispense.performer.actor.type" />
      <min value="1" />
      <fixedUri value="Practitioner" />
    </element>
    <element id="MedicationDispense.performer:Pharmacist.actor.identifier">
      <path value="MedicationDispense.performer.actor.identifier" />
      <max value="0" />
    </element>
    <element id="MedicationDispense.performer:Pharmacist.actor.display">
      <path value="MedicationDispense.performer.actor.display" />
      <max value="0" />
    </element>
    <element id="MedicationDispense.performer:Pharmacy">
      <path value="MedicationDispense.performer" />
      <sliceName value="Pharmacy" />
      <short value="The pharmacy" />
      <min value="1" />
      <max value="1" />
    </element>
    <element id="MedicationDispense.performer:Pharmacy.id">
      <path value="MedicationDispense.performer.id" />
      <max value="0" />
    </element>
    <element id="MedicationDispense.performer:Pharmacy.function">
      <path value="MedicationDispense.performer.function" />
      <max value="0" />
    </element>
    <element id="MedicationDispense.performer:Pharmacy.actor">
      <path value="MedicationDispense.performer.actor" />
      <short value="The pharmacy" />
      <type>
        <code value="Reference" />
        <targetProfile value="http://hl7.org/fhir/StructureDefinition/Organization" />
        <aggregation value="referenced" />
      </type>
    </element>
    <element id="MedicationDispense.performer:Pharmacy.actor.id">
      <path value="MedicationDispense.performer.actor.id" />
      <max value="0" />
    </element>
    <element id="MedicationDispense.performer:Pharmacy.actor.reference">
      <path value="MedicationDispense.performer.actor.reference" />
      <short value="The pharmacy referenced by its eHealthID" />
      <min value="1" />
      <example>
        <label value="Example" />
        <valueString value="Organization?identifier=urn:oid:1.3.182.4.1|1000180763" />
      </example>
      <condition value="val-orgByEhealthID" />
      <constraint>
        <key value="val-orgByEhealthID" />
        <severity value="error" />
        <human value="SHALL reference an organization by its eHealthID" />
        <expression value="startsWith('Organization?identifier=urn:oid:1.3.182.4.1|1') and length()=54" />
        <source value="https://www.esante.lu/fhir-spec/StructureDefinition/EPMedDispenseLine" />
      </constraint>
    </element>
    <element id="MedicationDispense.performer:Pharmacy.actor.type">
      <path value="MedicationDispense.performer.actor.type" />
      <min value="1" />
      <fixedUri value="Organization" />
    </element>
    <element id="MedicationDispense.performer:Pharmacy.actor.identifier">
      <path value="MedicationDispense.performer.actor.identifier" />
      <max value="0" />
    </element>
    <element id="MedicationDispense.performer:Pharmacy.actor.display">
      <path value="MedicationDispense.performer.actor.display" />
      <max value="0" />
    </element>
    <element id="MedicationDispense.location">
      <path value="MedicationDispense.location" />
      <max value="0" />
    </element>
    <element id="MedicationDispense.authorizingPrescription">
      <path value="MedicationDispense.authorizingPrescription" />
      <short value="The corresponding prescription line" />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="Reference" />
        <targetProfile value="https://www.esante.lu/fhir-spec/StructureDefinition/EPMedPrescriptionLine" />
        <aggregation value="referenced" />
      </type>
    </element>
    <element id="MedicationDispense.authorizingPrescription.id">
      <path value="MedicationDispense.authorizingPrescription.id" />
      <max value="0" />
    </element>
    <element id="MedicationDispense.authorizingPrescription.reference">
      <path value="MedicationDispense.authorizingPrescription.reference" />
      <short value="The prescriptoin line identifier by its identifier" />
      <min value="1" />
      <example>
        <label value="Example" />
        <valueString value="MedicationRequest?identifier=urn:ietf:rfc:3986|urn:uuid:c734092c-b7d4-4d63-a839-9d829fcd33e8" />
      </example>
      <condition value="val-refMedRequest" />
      <constraint>
        <key value="val-refMedRequest" />
        <severity value="error" />
        <human value="SHALL reference the prescription line by its identifier" />
        <expression value="startsWith('MedicationRequest?identifier=urn:ietf:rfc:3986|urn:uuid:') and length()=92" />
        <source value="https://www.esante.lu/fhir-spec/StructureDefinition/EPMedDispenseLine" />
      </constraint>
    </element>
    <element id="MedicationDispense.authorizingPrescription.type">
      <path value="MedicationDispense.authorizingPrescription.type" />
      <max value="0" />
    </element>
    <element id="MedicationDispense.authorizingPrescription.identifier">
      <path value="MedicationDispense.authorizingPrescription.identifier" />
      <max value="0" />
    </element>
    <element id="MedicationDispense.authorizingPrescription.display">
      <path value="MedicationDispense.authorizingPrescription.display" />
      <max value="0" />
    </element>
    <element id="MedicationDispense.type">
      <path value="MedicationDispense.type" />
      <max value="0" />
    </element>
    <element id="MedicationDispense.quantity">
      <path value="MedicationDispense.quantity" />
      <min value="1" />
    </element>
    <element id="MedicationDispense.quantity.id">
      <path value="MedicationDispense.quantity.id" />
      <max value="0" />
    </element>
    <element id="MedicationDispense.quantity.code">
      <path value="MedicationDispense.quantity.code" />
      <comment value="The preferred system is UCUM." />
    </element>
    <element id="MedicationDispense.daysSupply">
      <path value="MedicationDispense.daysSupply" />
      <max value="0" />
    </element>
    <element id="MedicationDispense.whenPrepared">
      <path value="MedicationDispense.whenPrepared" />
      <max value="0" />
    </element>
    <element id="MedicationDispense.whenHandedOver">
      <path value="MedicationDispense.whenHandedOver" />
      <short value="Dispensation date" />
      <min value="1" />
    </element>
    <element id="MedicationDispense.destination">
      <path value="MedicationDispense.destination" />
      <max value="0" />
    </element>
    <element id="MedicationDispense.receiver">
      <path value="MedicationDispense.receiver" />
      <max value="0" />
    </element>
    <element id="MedicationDispense.note">
      <path value="MedicationDispense.note" />
      <max value="0" />
    </element>
    <element id="MedicationDispense.note.author[x]">
      <path value="MedicationDispense.note.author[x]" />
      <max value="0" />
    </element>
    <element id="MedicationDispense.note.time">
      <path value="MedicationDispense.note.time" />
      <max value="0" />
    </element>
    <element id="MedicationDispense.dosageInstruction">
      <path value="MedicationDispense.dosageInstruction" />
      <max value="0" />
    </element>
    <element id="MedicationDispense.substitution">
      <path value="MedicationDispense.substitution" />
      <short value="Indicates that a substitution was don" />
      <definition value="Only use if there actually was a substitution." />
    </element>
    <element id="MedicationDispense.substitution.id">
      <path value="MedicationDispense.substitution.id" />
      <max value="0" />
    </element>
    <element id="MedicationDispense.substitution.wasSubstituted">
      <path value="MedicationDispense.substitution.wasSubstituted" />
      <short value="A substitution was done" />
      <definition value="As the substitution element is only present when a substitution is done, this element can only be true." />
      <fixedBoolean value="true" />
    </element>
    <element id="MedicationDispense.substitution.type">
      <path value="MedicationDispense.substitution.type" />
      <max value="0" />
    </element>
    <element id="MedicationDispense.substitution.reason">
      <path value="MedicationDispense.substitution.reason" />
      <max value="0" />
    </element>
    <element id="MedicationDispense.substitution.responsibleParty">
      <path value="MedicationDispense.substitution.responsibleParty" />
      <max value="0" />
    </element>
    <element id="MedicationDispense.detectedIssue">
      <path value="MedicationDispense.detectedIssue" />
      <max value="0" />
    </element>
    <element id="MedicationDispense.eventHistory">
      <path value="MedicationDispense.eventHistory" />
      <max value="0" />
    </element>
  </differential>
</StructureDefinition>