PackagesCanonicalsLogsProblems
    Packages
    synapxe.nde@1.0.0
    https://fhir.synapxe.sg/StructureDefinition/profile-medicationstatement
description: null
package_name: synapxe.nde
derivation: constraint
name: MedicationStatement
type: MedicationStatement
elements:
  category: {index: 21}
  dosage:
    index: 69
    elements:
      site: {index: 91}
      asNeeded: {index: 78}
      method: {index: 104}
      patientInstruction: {index: 76}
      maxDosePerLifetime: {index: 116}
      maxDosePerAdministration: {index: 115}
      route:
        index: 92
        elements:
          id: {index: 93}
          extension: {index: 94}
          coding:
            index: 95
            elements:
              id: {index: 96}
              extension: {index: 97}
              system: {index: 98}
              version: {index: 99}
              code: {index: 100}
              display: {index: 101}
              userSelected: {index: 102}
            extensions: {}
            required: [code, display, system]
          text: {index: 103}
        extensions: {}
        required: [coding]
      extension: {index: 71}
      id: {index: 70}
      timing: {index: 77}
      additionalInstruction: {index: 75}
      sequence: {index: 73}
      maxDosePerPeriod: {index: 114}
      asNeededFor:
        index: 79
        elements:
          id: {index: 80}
          extension: {index: 81}
          coding:
            index: 82
            elements:
              id: {index: 83}
              extension: {index: 84}
              system: {index: 85}
              version: {index: 86}
              code: {index: 87}
              display: {index: 88}
              userSelected: {index: 89}
            extensions: {}
            required: [code, display, system]
          text: {index: 90}
        extensions: {}
        required: [coding]
      doseAndRate:
        index: 105
        elements:
          id: {index: 106}
          extension: {index: 107}
          type: {index: 108}
          dose:
            choices: [doseRange]
            index: 110
          doseRange: {type: Range, choiceOf: dose, index: 111}
          rate:
            choices: []
            index: 113
        extensions: {}
        required: [dose, doseRange]
      modifierExtension: {index: 72}
      text: {index: 74}
    extensions: {}
    required: [asNeededFor, doseAndRate, route, text]
  derivedFrom:
    index: 37
    elements:
      id: {index: 38}
      extension: {index: 39}
      reference: {index: 40}
      type: {index: 41}
      identifier: {index: 42}
      display: {index: 43}
    extensions: {}
    required: [reference]
    slicing:
      rules: open
      discriminator:
      - {path: reference, type: type}
      min: 1
      slices:
        MedicationRequest:
          match: {}
          schema:
            type: Reference
            refers: ['https://fhir.synapxe.sg/StructureDefinition/profile-medicationrequest']
            _required: true
            index: 44
          min: 1
          max: 1
        MedicationDispense:
          match: {}
          schema:
            type: Reference
            refers: ['https://fhir.synapxe.sg/StructureDefinition/profile-medicationdispense']
            _required: true
            index: 45
          min: 1
          max: 1
  encounter: {index: 32}
  adherence: {index: 117}
  note:
    index: 61
    elements:
      id: {index: 62}
      extension: {index: 63}
      author:
        choices: []
        index: 65
      time: {index: 66}
    extensions: {}
  reason:
    index: 46
    elements:
      id: {index: 47}
      extension: {index: 48}
      concept:
        index: 49
        elements:
          id: {index: 50}
          extension: {index: 51}
          coding:
            index: 52
            elements:
              id: {index: 53}
              extension: {index: 54}
              system: {index: 55}
              version: {index: 56}
              code: {index: 57}
              display: {index: 58}
              userSelected: {index: 59}
            extensions: {}
            required: [code, display, system]
          text: {index: 60}
        extensions: {}
        required: [coding]
    extensions: {}
    required: [concept]
  extension:
    array: true
    min: 4
    index: 4
    slicing:
      slices:
        sequenceNo:
          match: {}
          schema: {type: Extension, url: 'https://fhir.synapxe.sg/StructureDefinition/ext-sequenceno', index: 5}
          min: 1
          max: 1
        groupNo:
          match: {}
          schema: {type: Extension, url: 'https://fhir.synapxe.sg/StructureDefinition/ext-groupno', index: 6}
          min: 1
          max: 1
        groupSequenceNo:
          match: {}
          schema: {type: Extension, url: 'https://fhir.synapxe.sg/StructureDefinition/ext-groupsequenceno', index: 7}
          min: 1
          max: 1
        changesMade:
          match: {}
          schema: {type: Extension, url: 'https://fhir.synapxe.sg/StructureDefinition/ext-changesmade', index: 8}
          max: 1
        reasonForChange:
          match: {}
          schema: {type: Extension, url: 'https://fhir.synapxe.sg/StructureDefinition/ext-reasonforchange', index: 9}
          min: 1
          max: 1
  contained:
    constraint:
      dom-2: {human: 'If the resource is contained in another resource, it SHALL NOT contain nested Resources', source: 'http://hl7.org/fhir/StructureDefinition/DomainResource', severity: error, expression: contained.contained.empty()}
      dom-4: {human: 'If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated', source: 'http://hl7.org/fhir/StructureDefinition/DomainResource', severity: error, expression: contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()}
      dom-3: {human: 'If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource', source: 'http://hl7.org/fhir/StructureDefinition/DomainResource', severity: error, expression: 'contained.where(((''#''+id in (%resource.descendants().reference | %resource.descendants().ofType(canonical) | %resource.descendants().ofType(uri) | %resource.descendants().ofType(url))) or descendants().where(reference = ''#'').exists() or descendants().where(ofType(canonical) = ''#'').exists() or descendants().where(ofType(canonical) = ''#'').exists()).not()).trace(''unmatched'', id).empty()'}
      dom-6: {human: A resource should have narrative for robust management, source: 'http://hl7.org/fhir/StructureDefinition/DomainResource', severity: warning, expression: text.`div`.exists()}
      dom-5: {human: 'If a resource is contained in another resource, it SHALL NOT have a security label', source: 'http://hl7.org/fhir/StructureDefinition/DomainResource', severity: error, expression: contained.meta.security.empty()}
      mdd-1: {human: whenHandedOver cannot be before whenPrepared, source: 'http://hl7.org/fhir/StructureDefinition/MedicationDispense', severity: error, expression: whenHandedOver.empty() or whenPrepared.empty() or whenHandedOver >= whenPrepared}
    short: Ordering of medication for patient or group
    index: 0
    slicing:
      rules: open
      discriminator:
      - {path: $this, type: type}
      min: 1
      slices:
        MedicationRequest:
          match: {}
          schema: {type: Resource, short: 'Contained, inline Resources', _required: true, index: 1}
          min: 1
          max: 1
        MedicationDispense:
          match: {}
          schema: {type: Resource, short: 'Contained, inline Resources', _required: true, index: 2}
          min: 1
          max: 1
        Medication:
          match: {}
          schema: {type: Resource, _required: true, index: 3}
          min: 1
          max: 1
  effective:
    choices: []
    index: 34
  identifier:
    index: 11
    elements:
      id: {index: 12}
      extension: {index: 13}
      use: {index: 14}
      type: {index: 15}
      system: {index: 16}
      value: {index: 17}
      period: {index: 18}
      assigner: {index: 19}
    extensions: {}
    required: [system, value]
  relatedClinicalInformation: {index: 67}
  renderedDosageInstruction: {index: 68}
  dateAsserted: {index: 35}
  partOf: {index: 20}
  informationSource: {index: 36}
  modifierExtension: {index: 10}
  medication:
    elements:
      id: {index: 22}
      extension: {index: 23}
      concept: {index: 24}
      reference:
        index: 25
        elements:
          id: {index: 26}
          extension: {index: 27}
          reference: {index: 28}
          type: {index: 29}
          identifier: {index: 30}
          display: {index: 31}
        extensions: {}
        required: [reference]
    extensions: {}
    required: [reference]
package_version: 1.0.0
extensions:
  sequenceNo: {url: 'https://fhir.synapxe.sg/StructureDefinition/ext-sequenceno', min: 1, max: 1, type: Extension, index: 5}
  groupNo: {url: 'https://fhir.synapxe.sg/StructureDefinition/ext-groupno', min: 1, max: 1, type: Extension, index: 6}
  groupSequenceNo: {url: 'https://fhir.synapxe.sg/StructureDefinition/ext-groupsequenceno', min: 1, max: 1, type: Extension, index: 7}
  changesMade: {url: 'https://fhir.synapxe.sg/StructureDefinition/ext-changesmade', max: 1, type: Extension, index: 8}
  reasonForChange: {url: 'https://fhir.synapxe.sg/StructureDefinition/ext-reasonforchange', min: 1, max: 1, type: Extension, index: 9}
class: profile
kind: resource
url: https://fhir.synapxe.sg/StructureDefinition/profile-medicationstatement
base: http://hl7.org/fhir/StructureDefinition/MedicationStatement
version: null
required: [contained, dateAsserted, derivedFrom, dosage, identifier, note, reason]