<StructureDefinition xmlns="http://hl7.org/fhir">
  <id value="GEM-ERP-PR-PAR-Close-Operation-Input" />
  <url value="https://gematik.de/fhir/erp/StructureDefinition/GEM_ERP_PR_PAR_CloseOperation_Input" />
  <version value="1.6.1" />
  <name value="GEM_ERP_PR_PAR_CloseOperation_Input" />
  <title value="GEM ERP PR CloseOperation Input" />
  <status value="active" />
  <date value="2025-12-19" />
  <description value="Dieses Profil definiert die Parameter für das Schließen eines Workflows für ein Rezept vom AVS zum E-Rezept-Fachdienst. Dies kann für die Operationen $close und $dispense verwendet werden." />
  <fhirVersion value="4.0.1" />
  <kind value="resource" />
  <abstract value="false" />
  <type value="Parameters" />
  <baseDefinition value="http://hl7.org/fhir/StructureDefinition/Parameters" />
  <derivation value="constraint" />
  <differential>
    <element id="Parameters.meta">
      <path value="Parameters.meta" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Parameters.meta.profile">
      <path value="Parameters.meta.profile" />
      <slicing>
        <discriminator>
          <type value="value" />
          <path value="$this" />
        </discriminator>
        <description value="Slicing für meta profile" />
        <ordered value="false" />
        <rules value="closed" />
      </slicing>
      <min value="1" />
      <max value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Parameters.meta.profile:workflowProfile">
      <path value="Parameters.meta.profile" />
      <sliceName value="workflowProfile" />
      <min value="1" />
      <max value="1" />
      <fixedCanonical value="https://gematik.de/fhir/erp/StructureDefinition/GEM_ERP_PR_PAR_CloseOperation_Input|1.6" />
      <mustSupport value="true" />
    </element>
    <element id="Parameters.parameter">
      <path value="Parameters.parameter" />
      <slicing>
        <discriminator>
          <type value="pattern" />
          <path value="name" />
        </discriminator>
        <rules value="closed" />
      </slicing>
    </element>
    <element id="Parameters.parameter:rxDispensation">
      <path value="Parameters.parameter" />
      <sliceName value="rxDispensation" />
      <min value="0" />
      <max value="*" />
      <constraint>
        <key value="workflow-parameters-close-medication-exists" />
        <severity value="error" />
        <human value="If a reference from a MedicationDispense to a Medication exists, a Medication resource must exist." />
        <expression value="part.where(name = 'medicationDispense').resource.medication.ofType(Reference).reference.exists() implies part.where(name = 'medication').exists()" />
        <source value="https://gematik.de/fhir/erp/StructureDefinition/GEM_ERP_PR_PAR_CloseOperation_Input" />
      </constraint>
      <constraint>
        <key value="workflow-parameters-close-dispense-medication-references" />
        <severity value="error" />
        <human value="If a reference from a MedicationDispense to a Medication exists, the reference must resolve to the Medication." />
        <expression value="part.where(name = 'medicationDispense').resource.medication.ofType(Reference).reference.exists() implies ((part.where(name = 'medicationDispense').resource.medication.reference.split('/').last().split(':').last()) = (part.where(name = 'medication').resource.id))" />
        <source value="https://gematik.de/fhir/erp/StructureDefinition/GEM_ERP_PR_PAR_CloseOperation_Input" />
      </constraint>
    </element>
    <element id="Parameters.parameter:rxDispensation.name">
      <path value="Parameters.parameter.name" />
      <patternString value="rxDispensation" />
      <mustSupport value="true" />
    </element>
    <element id="Parameters.parameter:rxDispensation.value[x]">
      <path value="Parameters.parameter.value[x]" />
      <max value="0" />
    </element>
    <element id="Parameters.parameter:rxDispensation.resource">
      <path value="Parameters.parameter.resource" />
      <max value="0" />
    </element>
    <element id="Parameters.parameter:rxDispensation.part">
      <path value="Parameters.parameter.part" />
      <slicing>
        <discriminator>
          <type value="pattern" />
          <path value="name" />
        </discriminator>
        <rules value="closed" />
      </slicing>
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Parameters.parameter:rxDispensation.part:medicationDispense">
      <path value="Parameters.parameter.part" />
      <sliceName value="medicationDispense" />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="BackboneElement" />
      </type>
    </element>
    <element id="Parameters.parameter:rxDispensation.part:medicationDispense.name">
      <path value="Parameters.parameter.part.name" />
      <patternString value="medicationDispense" />
      <mustSupport value="true" />
    </element>
    <element id="Parameters.parameter:rxDispensation.part:medicationDispense.value[x]">
      <path value="Parameters.parameter.part.value[x]" />
      <max value="0" />
    </element>
    <element id="Parameters.parameter:rxDispensation.part:medicationDispense.resource">
      <path value="Parameters.parameter.part.resource" />
      <min value="1" />
      <type>
        <code value="MedicationDispense" />
        <profile value="https://gematik.de/fhir/erp/StructureDefinition/GEM_ERP_PR_MedicationDispense" />
        <profile value="https://gematik.de/fhir/erp/StructureDefinition/GEM_ERP_PR_MedicationDispense_DiGA" />
      </type>
    </element>
    <element id="Parameters.parameter:rxDispensation.part:medicationDispense.part">
      <path value="Parameters.parameter.part.part" />
      <max value="0" />
    </element>
    <element id="Parameters.parameter:rxDispensation.part:medication">
      <path value="Parameters.parameter.part" />
      <sliceName value="medication" />
      <min value="0" />
      <max value="1" />
      <type>
        <code value="BackboneElement" />
      </type>
    </element>
    <element id="Parameters.parameter:rxDispensation.part:medication.name">
      <path value="Parameters.parameter.part.name" />
      <patternString value="medication" />
      <mustSupport value="true" />
    </element>
    <element id="Parameters.parameter:rxDispensation.part:medication.value[x]">
      <path value="Parameters.parameter.part.value[x]" />
      <max value="0" />
    </element>
    <element id="Parameters.parameter:rxDispensation.part:medication.resource">
      <path value="Parameters.parameter.part.resource" />
      <min value="1" />
      <type>
        <code value="Medication" />
        <profile value="https://gematik.de/fhir/erp/StructureDefinition/GEM_ERP_PR_Medication" />
      </type>
    </element>
    <element id="Parameters.parameter:rxDispensation.part:medication.part">
      <path value="Parameters.parameter.part.part" />
      <max value="0" />
    </element>
  </differential>
</StructureDefinition>