PackagesCanonicalsLogsProblems
    Packages
    rs/de.gematik.epa.medication@1.0.0
    https://gematik.de/fhir/epa-medication/StructureDefinition/epa-medication-request
description: Defines the medication request resource for the Medication Service in the ePA system.
package_name: rs/de.gematik.epa.medication
derivation: constraint
name: EPAMedicationRequest
type: MedicationRequest
elements:
  substitution:
    mustSupport: true
    index: 48
    elements:
      allowed:
        mustSupport: true
        choices: [allowedBoolean]
        index: 50
      allowedBoolean: {type: boolean, mustSupport: true, choiceOf: allowed, index: 51}
  dispenseRequest:
    mustSupport: true
    index: 43
    elements:
      quantity:
        mustSupport: true
        index: 44
        elements:
          value: {short: Number of Prescribed Packages, mustSupport: true, index: 45}
          system:
            pattern: {type: uri, value: 'http://unitsofmeasure.org'}
            mustSupport: true
            type: uri
            index: 46
          code:
            mustSupport: true
            pattern: {type: code, value: '{Package}'}
            type: code
            index: 47
        required: [code, system, value]
    required: [quantity]
  authoredOn: {short: Issue Date, mustSupport: true, index: 36}
  note:
    mustSupport: true
    index: 38
    elements:
      text: {short: Dispensing Note, mustSupport: true, index: 39}
  extension:
    index: 0
    slicing:
      rules: open
      discriminator:
      - {path: url, type: value}
      min: null
      slices:
        multiplePrescription:
          match: {url: null}
          schema:
            type: Extension
            mustSupport: true
            url: https://gematik.de/fhir/epa-medication/StructureDefinition/multiple-prescription-extension
            index: 1
            extensions:
              indicator:
                url: null
                mustSupport: true
                index: 2
                elements:
                  value:
                    mustSupport: true
                    choices: [valueBoolean]
                    index: 4
                    slicing:
                      slices:
                        valueBoolean:
                          match: {}
                          schema:
                            mustSupport: true
                            choices: [valueBoolean]
                            index: 4
                  valueBoolean:
                    type: boolean
                    mustSupport: true
                    choiceOf: value
                    index: 5
                    slicing:
                      slices:
                        valueBoolean:
                          match: {}
                          schema: {type: boolean, mustSupport: true, choiceOf: value, index: 5}
              counter:
                url: null
                mustSupport: true
                index: 6
                elements:
                  value:
                    mustSupport: true
                    choices: [valueRatio]
                    index: 8
                    slicing:
                      slices:
                        valueRatio:
                          match: {}
                          schema:
                            mustSupport: true
                            choices: [valueRatio]
                            index: 8
                  valueRatio:
                    type: Ratio
                    mustSupport: true
                    choiceOf: value
                    index: 9
                    slicing:
                      slices:
                        valueRatio:
                          match: {}
                          schema: {type: Ratio, mustSupport: true, choiceOf: value, index: 9}
                  value[x]:
                    elements:
                      numerator:
                        mustSupport: true
                        index: 10
                        elements:
                          value: {mustSupport: true, index: 11}
                      denominator:
                        mustSupport: true
                        index: 12
                        elements:
                          value: {mustSupport: true, index: 13}
              period:
                url: null
                mustSupport: true
                index: 14
                elements:
                  value:
                    mustSupport: true
                    choices: [valuePeriod]
                    index: 16
                    slicing:
                      slices:
                        valuePeriod:
                          match: {}
                          schema:
                            mustSupport: true
                            choices: [valuePeriod]
                            index: 16
                  valuePeriod:
                    type: Period
                    mustSupport: true
                    choiceOf: value
                    index: 17
                    slicing:
                      slices:
                        valuePeriod:
                          match: {}
                          schema: {type: Period, mustSupport: true, choiceOf: value, index: 17}
                  value[x]:
                    elements:
                      start: {mustSupport: true, index: 18}
                      end: {mustSupport: true, index: 19}
              id:
                url: null
                mustSupport: true
                index: 20
                elements:
                  value:
                    mustSupport: true
                    choices: [valueIdentifier]
                    index: 22
                    slicing:
                      slices:
                        valueIdentifier:
                          match: {}
                          schema:
                            mustSupport: true
                            choices: [valueIdentifier]
                            index: 22
                  valueIdentifier:
                    type: Identifier
                    mustSupport: true
                    choiceOf: value
                    index: 23
                    slicing:
                      slices:
                        valueIdentifier:
                          match: {}
                          schema: {type: Identifier, mustSupport: true, choiceOf: value, index: 23}
                  value[x]:
                    elements:
                      system: {mustSupport: true, index: 24}
                      value: {mustSupport: true, index: 25}
            elements:
              extension:
                mustSupport: true
                index: 2
                slicing:
                  slices:
                    indicator:
                      match: {}
                      schema:
                        mustSupport: true
                        index: 2
                        elements:
                          value:
                            mustSupport: true
                            choices: [valueBoolean]
                            index: 4
                            slicing:
                              slices:
                                valueBoolean:
                                  match: {}
                                  schema:
                                    mustSupport: true
                                    choices: [valueBoolean]
                                    index: 4
                          valueBoolean:
                            type: boolean
                            mustSupport: true
                            choiceOf: value
                            index: 5
                            slicing:
                              slices:
                                valueBoolean:
                                  match: {}
                                  schema: {type: boolean, mustSupport: true, choiceOf: value, index: 5}
                    counter:
                      match: {}
                      schema:
                        mustSupport: true
                        index: 6
                        elements:
                          value:
                            mustSupport: true
                            choices: [valueRatio]
                            index: 8
                            slicing:
                              slices:
                                valueRatio:
                                  match: {}
                                  schema:
                                    mustSupport: true
                                    choices: [valueRatio]
                                    index: 8
                          valueRatio:
                            type: Ratio
                            mustSupport: true
                            choiceOf: value
                            index: 9
                            slicing:
                              slices:
                                valueRatio:
                                  match: {}
                                  schema: {type: Ratio, mustSupport: true, choiceOf: value, index: 9}
                          value[x]:
                            elements:
                              numerator:
                                mustSupport: true
                                index: 10
                                elements:
                                  value: {mustSupport: true, index: 11}
                              denominator:
                                mustSupport: true
                                index: 12
                                elements:
                                  value: {mustSupport: true, index: 13}
                    period:
                      match: {}
                      schema:
                        mustSupport: true
                        index: 14
                        elements:
                          value:
                            mustSupport: true
                            choices: [valuePeriod]
                            index: 16
                            slicing:
                              slices:
                                valuePeriod:
                                  match: {}
                                  schema:
                                    mustSupport: true
                                    choices: [valuePeriod]
                                    index: 16
                          valuePeriod:
                            type: Period
                            mustSupport: true
                            choiceOf: value
                            index: 17
                            slicing:
                              slices:
                                valuePeriod:
                                  match: {}
                                  schema: {type: Period, mustSupport: true, choiceOf: value, index: 17}
                          value[x]:
                            elements:
                              start: {mustSupport: true, index: 18}
                              end: {mustSupport: true, index: 19}
                    id:
                      match: {}
                      schema:
                        mustSupport: true
                        index: 20
                        elements:
                          value:
                            mustSupport: true
                            choices: [valueIdentifier]
                            index: 22
                            slicing:
                              slices:
                                valueIdentifier:
                                  match: {}
                                  schema:
                                    mustSupport: true
                                    choices: [valueIdentifier]
                                    index: 22
                          valueIdentifier:
                            type: Identifier
                            mustSupport: true
                            choiceOf: value
                            index: 23
                            slicing:
                              slices:
                                valueIdentifier:
                                  match: {}
                                  schema: {type: Identifier, mustSupport: true, choiceOf: value, index: 23}
                          value[x]:
                            elements:
                              system: {mustSupport: true, index: 24}
                              value: {mustSupport: true, index: 25}
  requester:
    type: Reference
    mustSupport: true
    refers: ['http://hl7.org/fhir/StructureDefinition/PractitionerRole']
    index: 37
  status:
    binding: {strength: required, valueSet: 'https://gematik.de/fhir/epa-medication/ValueSet/epa-medication-request-vs'}
    index: 29
  dosageInstruction:
    mustSupport: true
    index: 40
    elements:
      text: {short: Dosage Instructions, mustSupport: true, index: 41}
      patientInstruction: {short: Instructions for Use, mustSupport: true, index: 42}
  identifier:
    index: 26
    slicing:
      rules: open
      ordered: false
      description: ePrescription identifier and overall transaction identifier
      discriminator:
      - {path: $this, type: pattern}
      min: null
      slices:
        RxPrescriptionProcessIdentifier:
          match: {system: 'https://gematik.de/fhir/epa-medication/sid/rx-prescription-process-identifier'}
          schema:
            type: Identifier
            pattern:
              type: Identifier
              value: {system: 'https://gematik.de/fhir/epa-medication/sid/rx-prescription-process-identifier'}
            index: 27
          min: 0
          max: 1
        RxOriginatorProcessIdentifier:
          match: {system: 'https://gematik.de/fhir/epa-medication/sid/rx-originator-process-identifier'}
          schema:
            type: Identifier
            pattern:
              type: Identifier
              value: {system: 'https://gematik.de/fhir/epa-medication/sid/rx-originator-process-identifier'}
            index: 28
          min: 0
          max: 1
  intent: {short: filler-order, mustSupport: true, index: 30}
  medicationReference:
    type: Reference
    mustSupport: true
    choiceOf: medication
    refers: ['http://hl7.org/fhir/StructureDefinition/Medication']
    index: 33
  subject:
    mustSupport: true
    index: 34
    elements:
      identifier: {type: Identifier, mustSupport: true, index: 35}
  medication:
    mustSupport: true
    choices: [medicationReference]
    index: 32
package_version: 1.0.0
extensions:
  multiplePrescription:
    url: https://gematik.de/fhir/epa-medication/StructureDefinition/multiple-prescription-extension
    type: Extension
    mustSupport: true
    index: 1
    extensions:
      indicator:
        url: null
        mustSupport: true
        index: 2
        elements:
          value:
            mustSupport: true
            choices: [valueBoolean]
            index: 4
            slicing:
              slices:
                valueBoolean:
                  match: {}
                  schema:
                    mustSupport: true
                    choices: [valueBoolean]
                    index: 4
          valueBoolean:
            type: boolean
            mustSupport: true
            choiceOf: value
            index: 5
            slicing:
              slices:
                valueBoolean:
                  match: {}
                  schema: {type: boolean, mustSupport: true, choiceOf: value, index: 5}
      counter:
        url: null
        mustSupport: true
        index: 6
        elements:
          value:
            mustSupport: true
            choices: [valueRatio]
            index: 8
            slicing:
              slices:
                valueRatio:
                  match: {}
                  schema:
                    mustSupport: true
                    choices: [valueRatio]
                    index: 8
          valueRatio:
            type: Ratio
            mustSupport: true
            choiceOf: value
            index: 9
            slicing:
              slices:
                valueRatio:
                  match: {}
                  schema: {type: Ratio, mustSupport: true, choiceOf: value, index: 9}
          value[x]:
            elements:
              numerator:
                mustSupport: true
                index: 10
                elements:
                  value: {mustSupport: true, index: 11}
              denominator:
                mustSupport: true
                index: 12
                elements:
                  value: {mustSupport: true, index: 13}
      period:
        url: null
        mustSupport: true
        index: 14
        elements:
          value:
            mustSupport: true
            choices: [valuePeriod]
            index: 16
            slicing:
              slices:
                valuePeriod:
                  match: {}
                  schema:
                    mustSupport: true
                    choices: [valuePeriod]
                    index: 16
          valuePeriod:
            type: Period
            mustSupport: true
            choiceOf: value
            index: 17
            slicing:
              slices:
                valuePeriod:
                  match: {}
                  schema: {type: Period, mustSupport: true, choiceOf: value, index: 17}
          value[x]:
            elements:
              start: {mustSupport: true, index: 18}
              end: {mustSupport: true, index: 19}
      id:
        url: null
        mustSupport: true
        index: 20
        elements:
          value:
            mustSupport: true
            choices: [valueIdentifier]
            index: 22
            slicing:
              slices:
                valueIdentifier:
                  match: {}
                  schema:
                    mustSupport: true
                    choices: [valueIdentifier]
                    index: 22
          valueIdentifier:
            type: Identifier
            mustSupport: true
            choiceOf: value
            index: 23
            slicing:
              slices:
                valueIdentifier:
                  match: {}
                  schema: {type: Identifier, mustSupport: true, choiceOf: value, index: 23}
          value[x]:
            elements:
              system: {mustSupport: true, index: 24}
              value: {mustSupport: true, index: 25}
    elements:
      extension:
        mustSupport: true
        index: 2
        slicing:
          slices:
            indicator:
              match: {}
              schema:
                mustSupport: true
                index: 2
                elements:
                  value:
                    mustSupport: true
                    choices: [valueBoolean]
                    index: 4
                    slicing:
                      slices:
                        valueBoolean:
                          match: {}
                          schema:
                            mustSupport: true
                            choices: [valueBoolean]
                            index: 4
                  valueBoolean:
                    type: boolean
                    mustSupport: true
                    choiceOf: value
                    index: 5
                    slicing:
                      slices:
                        valueBoolean:
                          match: {}
                          schema: {type: boolean, mustSupport: true, choiceOf: value, index: 5}
            counter:
              match: {}
              schema:
                mustSupport: true
                index: 6
                elements:
                  value:
                    mustSupport: true
                    choices: [valueRatio]
                    index: 8
                    slicing:
                      slices:
                        valueRatio:
                          match: {}
                          schema:
                            mustSupport: true
                            choices: [valueRatio]
                            index: 8
                  valueRatio:
                    type: Ratio
                    mustSupport: true
                    choiceOf: value
                    index: 9
                    slicing:
                      slices:
                        valueRatio:
                          match: {}
                          schema: {type: Ratio, mustSupport: true, choiceOf: value, index: 9}
                  value[x]:
                    elements:
                      numerator:
                        mustSupport: true
                        index: 10
                        elements:
                          value: {mustSupport: true, index: 11}
                      denominator:
                        mustSupport: true
                        index: 12
                        elements:
                          value: {mustSupport: true, index: 13}
            period:
              match: {}
              schema:
                mustSupport: true
                index: 14
                elements:
                  value:
                    mustSupport: true
                    choices: [valuePeriod]
                    index: 16
                    slicing:
                      slices:
                        valuePeriod:
                          match: {}
                          schema:
                            mustSupport: true
                            choices: [valuePeriod]
                            index: 16
                  valuePeriod:
                    type: Period
                    mustSupport: true
                    choiceOf: value
                    index: 17
                    slicing:
                      slices:
                        valuePeriod:
                          match: {}
                          schema: {type: Period, mustSupport: true, choiceOf: value, index: 17}
                  value[x]:
                    elements:
                      start: {mustSupport: true, index: 18}
                      end: {mustSupport: true, index: 19}
            id:
              match: {}
              schema:
                mustSupport: true
                index: 20
                elements:
                  value:
                    mustSupport: true
                    choices: [valueIdentifier]
                    index: 22
                    slicing:
                      slices:
                        valueIdentifier:
                          match: {}
                          schema:
                            mustSupport: true
                            choices: [valueIdentifier]
                            index: 22
                  valueIdentifier:
                    type: Identifier
                    mustSupport: true
                    choiceOf: value
                    index: 23
                    slicing:
                      slices:
                        valueIdentifier:
                          match: {}
                          schema: {type: Identifier, mustSupport: true, choiceOf: value, index: 23}
                  value[x]:
                    elements:
                      system: {mustSupport: true, index: 24}
                      value: {mustSupport: true, index: 25}
class: profile
kind: resource
url: https://gematik.de/fhir/epa-medication/StructureDefinition/epa-medication-request
base: http://hl7.org/fhir/StructureDefinition/MedicationRequest
version: 1.0.0
required: [authoredOn, dispenseRequest]