PackagesCanonicalsLogsProblems
    Packages
    rs/de.gematik.epa.medication@1.0.2
    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:
  meta:
    mustSupport: true
    index: 0
    elements:
      versionId: {mustSupport: true, index: 1}
      lastUpdated: {mustSupport: true, index: 2}
  substitution:
    mustSupport: true
    index: 56
    elements:
      allowed:
        mustSupport: true
        choices: [allowedBoolean]
        index: 58
      allowedBoolean: {type: boolean, mustSupport: true, choiceOf: allowed, index: 59}
  dispenseRequest:
    mustSupport: true
    index: 51
    elements:
      quantity:
        mustSupport: true
        index: 52
        elements:
          value: {short: Number of Prescribed Packages, mustSupport: true, index: 53}
          system:
            pattern: {type: uri, value: 'http://unitsofmeasure.org'}
            mustSupport: true
            type: uri
            index: 54
          code:
            mustSupport: true
            pattern: {type: code, value: '{Package}'}
            type: code
            index: 55
        required: [code, system, value]
    required: [quantity]
  authoredOn: {short: Issue Date, mustSupport: true, index: 44}
  note:
    mustSupport: true
    index: 46
    elements:
      text: {short: Dispensing Note, mustSupport: true, index: 47}
  extension:
    type: Extension
    mustSupport: true
    url: https://gematik.de/fhir/epa-medication/StructureDefinition/multiple-prescription-extension
    index: 3
    slicing:
      slices:
        multiplePrescription:
          match: {}
          schema:
            type: Extension
            mustSupport: true
            url: https://gematik.de/fhir/epa-medication/StructureDefinition/multiple-prescription-extension
            index: 3
            extensions:
              indicator:
                url: null
                index: 4
                elements:
                  value:
                    mustSupport: true
                    choices: [valueBoolean]
                    index: 6
                    slicing:
                      slices:
                        valueBoolean:
                          match: {}
                          schema:
                            mustSupport: true
                            choices: [valueBoolean]
                            index: 6
                  valueBoolean:
                    type: boolean
                    mustSupport: true
                    choiceOf: value
                    index: 7
                    slicing:
                      slices:
                        valueBoolean:
                          match: {}
                          schema: {type: boolean, mustSupport: true, choiceOf: value, index: 7}
              counter:
                url: null
                index: 8
                elements:
                  value:
                    mustSupport: true
                    choices: [valueRatio]
                    index: 10
                    slicing:
                      slices:
                        valueRatio:
                          match: {}
                          schema:
                            mustSupport: true
                            choices: [valueRatio]
                            index: 10
                  valueRatio:
                    type: Ratio
                    mustSupport: true
                    choiceOf: value
                    index: 11
                    slicing:
                      slices:
                        valueRatio:
                          match: {}
                          schema: {type: Ratio, mustSupport: true, choiceOf: value, index: 11}
                  value[x]:
                    elements:
                      numerator:
                        mustSupport: true
                        index: 12
                        elements:
                          value: {mustSupport: true, index: 13}
                      denominator:
                        mustSupport: true
                        index: 14
                        elements:
                          value: {mustSupport: true, index: 15}
              period:
                url: null
                index: 16
                elements:
                  value:
                    mustSupport: true
                    choices: [valuePeriod]
                    index: 18
                    slicing:
                      slices:
                        valuePeriod:
                          match: {}
                          schema:
                            mustSupport: true
                            choices: [valuePeriod]
                            index: 18
                  valuePeriod:
                    type: Period
                    mustSupport: true
                    choiceOf: value
                    index: 19
                    slicing:
                      slices:
                        valuePeriod:
                          match: {}
                          schema: {type: Period, mustSupport: true, choiceOf: value, index: 19}
                  value[x]:
                    elements:
                      start: {mustSupport: true, index: 20}
                      end: {mustSupport: true, index: 21}
              id:
                url: null
                index: 22
                elements:
                  value:
                    mustSupport: true
                    choices: [valueIdentifier]
                    index: 24
                    slicing:
                      slices:
                        valueIdentifier:
                          match: {}
                          schema:
                            mustSupport: true
                            choices: [valueIdentifier]
                            index: 24
                  valueIdentifier:
                    type: Identifier
                    mustSupport: true
                    choiceOf: value
                    index: 25
                    slicing:
                      slices:
                        valueIdentifier:
                          match: {}
                          schema: {type: Identifier, mustSupport: true, choiceOf: value, index: 25}
                  value[x]:
                    elements:
                      system: {mustSupport: true, index: 26}
                      value: {mustSupport: true, index: 27}
            elements:
              extension:
                index: 4
                slicing:
                  slices:
                    indicator:
                      match: {}
                      schema:
                        index: 4
                        elements:
                          value:
                            mustSupport: true
                            choices: [valueBoolean]
                            index: 6
                            slicing:
                              slices:
                                valueBoolean:
                                  match: {}
                                  schema:
                                    mustSupport: true
                                    choices: [valueBoolean]
                                    index: 6
                          valueBoolean:
                            type: boolean
                            mustSupport: true
                            choiceOf: value
                            index: 7
                            slicing:
                              slices:
                                valueBoolean:
                                  match: {}
                                  schema: {type: boolean, mustSupport: true, choiceOf: value, index: 7}
                    counter:
                      match: {}
                      schema:
                        index: 8
                        elements:
                          value:
                            mustSupport: true
                            choices: [valueRatio]
                            index: 10
                            slicing:
                              slices:
                                valueRatio:
                                  match: {}
                                  schema:
                                    mustSupport: true
                                    choices: [valueRatio]
                                    index: 10
                          valueRatio:
                            type: Ratio
                            mustSupport: true
                            choiceOf: value
                            index: 11
                            slicing:
                              slices:
                                valueRatio:
                                  match: {}
                                  schema: {type: Ratio, mustSupport: true, choiceOf: value, index: 11}
                          value[x]:
                            elements:
                              numerator:
                                mustSupport: true
                                index: 12
                                elements:
                                  value: {mustSupport: true, index: 13}
                              denominator:
                                mustSupport: true
                                index: 14
                                elements:
                                  value: {mustSupport: true, index: 15}
                    period:
                      match: {}
                      schema:
                        index: 16
                        elements:
                          value:
                            mustSupport: true
                            choices: [valuePeriod]
                            index: 18
                            slicing:
                              slices:
                                valuePeriod:
                                  match: {}
                                  schema:
                                    mustSupport: true
                                    choices: [valuePeriod]
                                    index: 18
                          valuePeriod:
                            type: Period
                            mustSupport: true
                            choiceOf: value
                            index: 19
                            slicing:
                              slices:
                                valuePeriod:
                                  match: {}
                                  schema: {type: Period, mustSupport: true, choiceOf: value, index: 19}
                          value[x]:
                            elements:
                              start: {mustSupport: true, index: 20}
                              end: {mustSupport: true, index: 21}
                    id:
                      match: {}
                      schema:
                        index: 22
                        elements:
                          value:
                            mustSupport: true
                            choices: [valueIdentifier]
                            index: 24
                            slicing:
                              slices:
                                valueIdentifier:
                                  match: {}
                                  schema:
                                    mustSupport: true
                                    choices: [valueIdentifier]
                                    index: 24
                          valueIdentifier:
                            type: Identifier
                            mustSupport: true
                            choiceOf: value
                            index: 25
                            slicing:
                              slices:
                                valueIdentifier:
                                  match: {}
                                  schema: {type: Identifier, mustSupport: true, choiceOf: value, index: 25}
                          value[x]:
                            elements:
                              system: {mustSupport: true, index: 26}
                              value: {mustSupport: true, index: 27}
        isBvg:
          match: {}
          schema:
            type: Extension
            mustSupport: true
            url: https://gematik.de/fhir/epa-medication/StructureDefinition/indicator-bvg-extension
            index: 28
            elements:
              value:
                mustSupport: true
                choices: []
                index: 30
                slicing:
                  slices:
                    valueBoolean:
                      match: {}
                      schema:
                        mustSupport: true
                        choices: [valueBoolean]
                        index: 32
              valueBoolean:
                type: boolean
                mustSupport: true
                choiceOf: value
                index: 33
                slicing:
                  slices:
                    valueBoolean:
                      match: {}
                      schema: {type: boolean, mustSupport: true, choiceOf: value, index: 33}
  requester:
    type: Reference
    mustSupport: true
    refers: ['http://hl7.org/fhir/StructureDefinition/PractitionerRole']
    index: 45
  status:
    binding: {strength: required, valueSet: 'https://gematik.de/fhir/epa-medication/ValueSet/epa-medication-request-vs'}
    index: 37
  dosageInstruction:
    mustSupport: true
    index: 48
    elements:
      text: {short: Dosage Instructions, mustSupport: true, index: 49}
      patientInstruction: {short: Instructions for Use, mustSupport: true, index: 50}
  identifier:
    index: 34
    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: 35
          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: 36
          min: 0
          max: 1
  intent: {short: filler-order, mustSupport: true, index: 38}
  medicationReference:
    type: Reference
    mustSupport: true
    choiceOf: medication
    refers: ['http://hl7.org/fhir/StructureDefinition/Medication']
    index: 41
  subject:
    type: Reference
    mustSupport: true
    refers: ['http://hl7.org/fhir/StructureDefinition/Patient']
    index: 42
    elements:
      identifier: {type: Identifier, mustSupport: true, index: 43}
  medication:
    mustSupport: true
    choices: [medicationReference]
    index: 40
package_version: 1.0.2
extensions:
  multiplePrescription:
    url: https://gematik.de/fhir/epa-medication/StructureDefinition/multiple-prescription-extension
    type: Extension
    mustSupport: true
    index: 3
    extensions:
      indicator:
        url: null
        index: 4
        elements:
          value:
            mustSupport: true
            choices: [valueBoolean]
            index: 6
            slicing:
              slices:
                valueBoolean:
                  match: {}
                  schema:
                    mustSupport: true
                    choices: [valueBoolean]
                    index: 6
          valueBoolean:
            type: boolean
            mustSupport: true
            choiceOf: value
            index: 7
            slicing:
              slices:
                valueBoolean:
                  match: {}
                  schema: {type: boolean, mustSupport: true, choiceOf: value, index: 7}
      counter:
        url: null
        index: 8
        elements:
          value:
            mustSupport: true
            choices: [valueRatio]
            index: 10
            slicing:
              slices:
                valueRatio:
                  match: {}
                  schema:
                    mustSupport: true
                    choices: [valueRatio]
                    index: 10
          valueRatio:
            type: Ratio
            mustSupport: true
            choiceOf: value
            index: 11
            slicing:
              slices:
                valueRatio:
                  match: {}
                  schema: {type: Ratio, mustSupport: true, choiceOf: value, index: 11}
          value[x]:
            elements:
              numerator:
                mustSupport: true
                index: 12
                elements:
                  value: {mustSupport: true, index: 13}
              denominator:
                mustSupport: true
                index: 14
                elements:
                  value: {mustSupport: true, index: 15}
      period:
        url: null
        index: 16
        elements:
          value:
            mustSupport: true
            choices: [valuePeriod]
            index: 18
            slicing:
              slices:
                valuePeriod:
                  match: {}
                  schema:
                    mustSupport: true
                    choices: [valuePeriod]
                    index: 18
          valuePeriod:
            type: Period
            mustSupport: true
            choiceOf: value
            index: 19
            slicing:
              slices:
                valuePeriod:
                  match: {}
                  schema: {type: Period, mustSupport: true, choiceOf: value, index: 19}
          value[x]:
            elements:
              start: {mustSupport: true, index: 20}
              end: {mustSupport: true, index: 21}
      id:
        url: null
        index: 22
        elements:
          value:
            mustSupport: true
            choices: [valueIdentifier]
            index: 24
            slicing:
              slices:
                valueIdentifier:
                  match: {}
                  schema:
                    mustSupport: true
                    choices: [valueIdentifier]
                    index: 24
          valueIdentifier:
            type: Identifier
            mustSupport: true
            choiceOf: value
            index: 25
            slicing:
              slices:
                valueIdentifier:
                  match: {}
                  schema: {type: Identifier, mustSupport: true, choiceOf: value, index: 25}
          value[x]:
            elements:
              system: {mustSupport: true, index: 26}
              value: {mustSupport: true, index: 27}
    elements:
      extension:
        index: 4
        slicing:
          slices:
            indicator:
              match: {}
              schema:
                index: 4
                elements:
                  value:
                    mustSupport: true
                    choices: [valueBoolean]
                    index: 6
                    slicing:
                      slices:
                        valueBoolean:
                          match: {}
                          schema:
                            mustSupport: true
                            choices: [valueBoolean]
                            index: 6
                  valueBoolean:
                    type: boolean
                    mustSupport: true
                    choiceOf: value
                    index: 7
                    slicing:
                      slices:
                        valueBoolean:
                          match: {}
                          schema: {type: boolean, mustSupport: true, choiceOf: value, index: 7}
            counter:
              match: {}
              schema:
                index: 8
                elements:
                  value:
                    mustSupport: true
                    choices: [valueRatio]
                    index: 10
                    slicing:
                      slices:
                        valueRatio:
                          match: {}
                          schema:
                            mustSupport: true
                            choices: [valueRatio]
                            index: 10
                  valueRatio:
                    type: Ratio
                    mustSupport: true
                    choiceOf: value
                    index: 11
                    slicing:
                      slices:
                        valueRatio:
                          match: {}
                          schema: {type: Ratio, mustSupport: true, choiceOf: value, index: 11}
                  value[x]:
                    elements:
                      numerator:
                        mustSupport: true
                        index: 12
                        elements:
                          value: {mustSupport: true, index: 13}
                      denominator:
                        mustSupport: true
                        index: 14
                        elements:
                          value: {mustSupport: true, index: 15}
            period:
              match: {}
              schema:
                index: 16
                elements:
                  value:
                    mustSupport: true
                    choices: [valuePeriod]
                    index: 18
                    slicing:
                      slices:
                        valuePeriod:
                          match: {}
                          schema:
                            mustSupport: true
                            choices: [valuePeriod]
                            index: 18
                  valuePeriod:
                    type: Period
                    mustSupport: true
                    choiceOf: value
                    index: 19
                    slicing:
                      slices:
                        valuePeriod:
                          match: {}
                          schema: {type: Period, mustSupport: true, choiceOf: value, index: 19}
                  value[x]:
                    elements:
                      start: {mustSupport: true, index: 20}
                      end: {mustSupport: true, index: 21}
            id:
              match: {}
              schema:
                index: 22
                elements:
                  value:
                    mustSupport: true
                    choices: [valueIdentifier]
                    index: 24
                    slicing:
                      slices:
                        valueIdentifier:
                          match: {}
                          schema:
                            mustSupport: true
                            choices: [valueIdentifier]
                            index: 24
                  valueIdentifier:
                    type: Identifier
                    mustSupport: true
                    choiceOf: value
                    index: 25
                    slicing:
                      slices:
                        valueIdentifier:
                          match: {}
                          schema: {type: Identifier, mustSupport: true, choiceOf: value, index: 25}
                  value[x]:
                    elements:
                      system: {mustSupport: true, index: 26}
                      value: {mustSupport: true, index: 27}
  isBvg:
    url: https://gematik.de/fhir/epa-medication/StructureDefinition/indicator-bvg-extension
    type: Extension
    mustSupport: true
    index: 28
    elements:
      value:
        mustSupport: true
        choices: []
        index: 30
        slicing:
          slices:
            valueBoolean:
              match: {}
              schema:
                mustSupport: true
                choices: [valueBoolean]
                index: 32
      valueBoolean:
        type: boolean
        mustSupport: true
        choiceOf: value
        index: 33
        slicing:
          slices:
            valueBoolean:
              match: {}
              schema: {type: boolean, mustSupport: true, choiceOf: value, index: 33}
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.2
required: [authoredOn, dispenseRequest]