PackagesCanonicalsLogsProblems
    Packages
    hl7.fhir.uv.xver-r4.r5@0.0.1-snapshot-1
    http://hl7.org/fhir/4.0/StructureDefinition/extension-SubstanceSpecification
description: This cross-version extension represents SubstanceSpecification from http://hl7.org/fhir/StructureDefinition/SubstanceSpecification|4.0.1 for use in FHIR R5.
package_name: hl7.fhir.uv.xver-r4.r5
derivation: constraint
name: ext_R4_SubstanceSpecification
type: Extension
elements:
  extension:
    array: true
    index: 0
    slicing:
      rules: closed
      ordered: false
      discriminator:
      - {path: url, type: value}
      min: 0
      slices:
        description:
          match: {url: null}
          schema:
            short: Textual description of the substance
            isModifier: false
            index: 13
            elements:
              value:
                base: {path: 'Extension.value[x]'}
                short: Textual description of the substance
                choices: [valueString]
                index: 15
              valueString:
                base: {path: 'Extension.value[x]'}
                type: string
                short: Textual description of the substance
                choiceOf: value
                index: 16
        property:
          match: {url: null}
          schema:
            short: General specifications for this substance, including how it is related to other substances
            isModifier: false
            array: true
            index: 56
            extensions:
              category:
                url: null
                short: A category for this property, e.g. Physical, Chemical, Enzymatic
                isModifier: false
                index: 58
                elements:
                  value:
                    base: {path: 'Extension.value[x]'}
                    short: A category for this property, e.g. Physical, Chemical, Enzymatic
                    choices: [valueCodeableConcept]
                    index: 60
                  valueCodeableConcept:
                    base: {path: 'Extension.value[x]'}
                    type: CodeableConcept
                    short: A category for this property, e.g. Physical, Chemical, Enzymatic
                    choiceOf: value
                    index: 61
              code:
                url: null
                short: Property type e.g. viscosity, pH, isoelectric point
                isModifier: false
                index: 62
                elements:
                  value:
                    base: {path: 'Extension.value[x]'}
                    short: Property type e.g. viscosity, pH, isoelectric point
                    choices: [valueCodeableConcept]
                    index: 64
                  valueCodeableConcept:
                    base: {path: 'Extension.value[x]'}
                    type: CodeableConcept
                    short: Property type e.g. viscosity, pH, isoelectric point
                    choiceOf: value
                    index: 65
              parameters:
                url: null
                short: 'Parameters that were used in the measurement of a property (e.g. for viscosity: measured at 20C with a pH of 7.1)'
                isModifier: false
                index: 66
                elements:
                  value:
                    base: {path: 'Extension.value[x]'}
                    short: 'Parameters that were used in the measurement of a property (e.g. for viscosity: measured at 20C with a pH of 7.1)'
                    choices: [valueString]
                    index: 68
                  valueString:
                    base: {path: 'Extension.value[x]'}
                    type: string
                    short: 'Parameters that were used in the measurement of a property (e.g. for viscosity: measured at 20C with a pH of 7.1)'
                    choiceOf: value
                    index: 69
              definingSubstance[x]:
                url: null
                short: 'A substance upon which a defining property depends (e.g. for solubility: in water, in alcohol)'
                isModifier: false
                index: 70
                elements:
                  value:
                    base: {path: 'Extension.value[x]'}
                    short: 'A substance upon which a defining property depends (e.g. for solubility: in water, in alcohol)'
                    choices: [valueReference, valueCodeableConcept]
                    index: 72
                  valueReference:
                    base: {path: 'Extension.value[x]'}
                    type: Reference
                    short: 'A substance upon which a defining property depends (e.g. for solubility: in water, in alcohol)'
                    choiceOf: value
                    refers: ['http://hl7.org/fhir/StructureDefinition/Substance', 'http://hl7.org/fhir/StructureDefinition/SubstanceSpecification']
                    index: 73
                  valueCodeableConcept:
                    base: {path: 'Extension.value[x]'}
                    type: CodeableConcept
                    short: 'A substance upon which a defining property depends (e.g. for solubility: in water, in alcohol)'
                    choiceOf: value
                    index: 74
              amount[x]:
                url: null
                short: Quantitative value for this property
                isModifier: false
                index: 75
                elements:
                  value:
                    base: {path: 'Extension.value[x]'}
                    short: Quantitative value for this property
                    choices: [valueQuantity, valueString]
                    index: 77
                  valueQuantity:
                    base: {path: 'Extension.value[x]'}
                    type: Quantity
                    short: Quantitative value for this property
                    choiceOf: value
                    index: 78
                  valueString:
                    base: {path: 'Extension.value[x]'}
                    type: string
                    short: Quantitative value for this property
                    choiceOf: value
                    index: 79
            elements:
              extension:
                array: true
                index: 57
                slicing:
                  rules: closed
                  ordered: false
                  discriminator:
                  - {path: url, type: value}
                  min: 0
                  slices:
                    category:
                      match: {url: null}
                      schema:
                        short: A category for this property, e.g. Physical, Chemical, Enzymatic
                        isModifier: false
                        index: 58
                        elements:
                          value:
                            base: {path: 'Extension.value[x]'}
                            short: A category for this property, e.g. Physical, Chemical, Enzymatic
                            choices: [valueCodeableConcept]
                            index: 60
                          valueCodeableConcept:
                            base: {path: 'Extension.value[x]'}
                            type: CodeableConcept
                            short: A category for this property, e.g. Physical, Chemical, Enzymatic
                            choiceOf: value
                            index: 61
                    code:
                      match: {url: null}
                      schema:
                        short: Property type e.g. viscosity, pH, isoelectric point
                        isModifier: false
                        index: 62
                        elements:
                          value:
                            base: {path: 'Extension.value[x]'}
                            short: Property type e.g. viscosity, pH, isoelectric point
                            choices: [valueCodeableConcept]
                            index: 64
                          valueCodeableConcept:
                            base: {path: 'Extension.value[x]'}
                            type: CodeableConcept
                            short: Property type e.g. viscosity, pH, isoelectric point
                            choiceOf: value
                            index: 65
                    parameters:
                      match: {url: null}
                      schema:
                        short: 'Parameters that were used in the measurement of a property (e.g. for viscosity: measured at 20C with a pH of 7.1)'
                        isModifier: false
                        index: 66
                        elements:
                          value:
                            base: {path: 'Extension.value[x]'}
                            short: 'Parameters that were used in the measurement of a property (e.g. for viscosity: measured at 20C with a pH of 7.1)'
                            choices: [valueString]
                            index: 68
                          valueString:
                            base: {path: 'Extension.value[x]'}
                            type: string
                            short: 'Parameters that were used in the measurement of a property (e.g. for viscosity: measured at 20C with a pH of 7.1)'
                            choiceOf: value
                            index: 69
                    definingSubstance[x]:
                      match: {url: null}
                      schema:
                        short: 'A substance upon which a defining property depends (e.g. for solubility: in water, in alcohol)'
                        isModifier: false
                        index: 70
                        elements:
                          value:
                            base: {path: 'Extension.value[x]'}
                            short: 'A substance upon which a defining property depends (e.g. for solubility: in water, in alcohol)'
                            choices: [valueReference, valueCodeableConcept]
                            index: 72
                          valueReference:
                            base: {path: 'Extension.value[x]'}
                            type: Reference
                            short: 'A substance upon which a defining property depends (e.g. for solubility: in water, in alcohol)'
                            choiceOf: value
                            refers: ['http://hl7.org/fhir/StructureDefinition/Substance', 'http://hl7.org/fhir/StructureDefinition/SubstanceSpecification']
                            index: 73
                          valueCodeableConcept:
                            base: {path: 'Extension.value[x]'}
                            type: CodeableConcept
                            short: 'A substance upon which a defining property depends (e.g. for solubility: in water, in alcohol)'
                            choiceOf: value
                            index: 74
                    amount[x]:
                      match: {url: null}
                      schema:
                        short: Quantitative value for this property
                        isModifier: false
                        index: 75
                        elements:
                          value:
                            base: {path: 'Extension.value[x]'}
                            short: Quantitative value for this property
                            choices: [valueQuantity, valueString]
                            index: 77
                          valueQuantity:
                            base: {path: 'Extension.value[x]'}
                            type: Quantity
                            short: Quantitative value for this property
                            choiceOf: value
                            index: 78
                          valueString:
                            base: {path: 'Extension.value[x]'}
                            type: string
                            short: Quantitative value for this property
                            choiceOf: value
                            index: 79
        name:
          match: {url: null}
          schema:
            short: Names applicable to this substance
            isModifier: false
            array: true
            index: 157
            extensions:
              official:
                url: null
                short: Details of the official nature of this name
                isModifier: false
                array: true
                index: 197
                extensions:
                  authority:
                    url: null
                    short: Which authority uses this official name
                    isModifier: false
                    index: 199
                    elements:
                      value:
                        base: {path: 'Extension.value[x]'}
                        short: Which authority uses this official name
                        choices: [valueCodeableConcept]
                        index: 201
                      valueCodeableConcept:
                        base: {path: 'Extension.value[x]'}
                        type: CodeableConcept
                        short: Which authority uses this official name
                        choiceOf: value
                        index: 202
                  status:
                    url: null
                    short: The status of the official name
                    isModifier: false
                    index: 203
                    elements:
                      value:
                        base: {path: 'Extension.value[x]'}
                        short: The status of the official name
                        choices: [valueCodeableConcept]
                        index: 205
                      valueCodeableConcept:
                        base: {path: 'Extension.value[x]'}
                        type: CodeableConcept
                        short: The status of the official name
                        choiceOf: value
                        index: 206
                  date:
                    url: null
                    short: Date of official name change
                    isModifier: false
                    index: 207
                    elements:
                      value:
                        base: {path: 'Extension.value[x]'}
                        short: Date of official name change
                        choices: [valueDateTime]
                        index: 209
                      valueDateTime:
                        base: {path: 'Extension.value[x]'}
                        type: dateTime
                        short: Date of official name change
                        choiceOf: value
                        index: 210
                elements:
                  extension:
                    array: true
                    index: 198
                    slicing:
                      rules: closed
                      ordered: false
                      discriminator:
                      - {path: url, type: value}
                      min: 0
                      slices:
                        authority:
                          match: {url: null}
                          schema:
                            short: Which authority uses this official name
                            isModifier: false
                            index: 199
                            elements:
                              value:
                                base: {path: 'Extension.value[x]'}
                                short: Which authority uses this official name
                                choices: [valueCodeableConcept]
                                index: 201
                              valueCodeableConcept:
                                base: {path: 'Extension.value[x]'}
                                type: CodeableConcept
                                short: Which authority uses this official name
                                choiceOf: value
                                index: 202
                        status:
                          match: {url: null}
                          schema:
                            short: The status of the official name
                            isModifier: false
                            index: 203
                            elements:
                              value:
                                base: {path: 'Extension.value[x]'}
                                short: The status of the official name
                                choices: [valueCodeableConcept]
                                index: 205
                              valueCodeableConcept:
                                base: {path: 'Extension.value[x]'}
                                type: CodeableConcept
                                short: The status of the official name
                                choiceOf: value
                                index: 206
                        date:
                          match: {url: null}
                          schema:
                            short: Date of official name change
                            isModifier: false
                            index: 207
                            elements:
                              value:
                                base: {path: 'Extension.value[x]'}
                                short: Date of official name change
                                choices: [valueDateTime]
                                index: 209
                              valueDateTime:
                                base: {path: 'Extension.value[x]'}
                                type: dateTime
                                short: Date of official name change
                                choiceOf: value
                                index: 210
              jurisdiction:
                url: null
                short: The jurisdiction where this name applies
                isModifier: false
                array: true
                index: 183
                elements:
                  value:
                    base: {path: 'Extension.value[x]'}
                    short: The jurisdiction where this name applies
                    choices: [valueCodeableConcept]
                    index: 185
                  valueCodeableConcept:
                    base: {path: 'Extension.value[x]'}
                    type: CodeableConcept
                    short: The jurisdiction where this name applies
                    choiceOf: value
                    index: 186
              name:
                url: null
                short: The actual name
                isModifier: false
                _required: true
                index: 159
                elements:
                  value:
                    base: {path: 'Extension.value[x]'}
                    short: The actual name
                    choices: [valueString]
                    index: 161
                  valueString:
                    base: {path: 'Extension.value[x]'}
                    type: string
                    short: The actual name
                    choiceOf: value
                    index: 162
              type:
                url: null
                short: Name type
                isModifier: false
                index: 163
                elements:
                  value:
                    base: {path: 'Extension.value[x]'}
                    short: Name type
                    choices: [valueCodeableConcept]
                    index: 165
                  valueCodeableConcept:
                    base: {path: 'Extension.value[x]'}
                    type: CodeableConcept
                    short: Name type
                    choiceOf: value
                    index: 166
              source:
                url: null
                short: Supporting literature
                isModifier: false
                array: true
                index: 211
                elements:
                  value:
                    base: {path: 'Extension.value[x]'}
                    short: Supporting literature
                    choices: [valueReference]
                    index: 213
                  valueReference:
                    base: {path: 'Extension.value[x]'}
                    type: Reference
                    short: Supporting literature
                    choiceOf: value
                    refers: ['http://hl7.org/fhir/StructureDefinition/DocumentReference']
                    index: 214
              status:
                url: null
                short: The status of the name
                isModifier: false
                index: 167
                elements:
                  value:
                    base: {path: 'Extension.value[x]'}
                    short: The status of the name
                    choices: [valueCodeableConcept]
                    index: 169
                  valueCodeableConcept:
                    base: {path: 'Extension.value[x]'}
                    type: CodeableConcept
                    short: The status of the name
                    choiceOf: value
                    index: 170
              language:
                url: null
                short: Language of the name
                isModifier: false
                array: true
                index: 175
                elements:
                  value:
                    base: {path: 'Extension.value[x]'}
                    short: Language of the name
                    choices: [valueCodeableConcept]
                    index: 177
                  valueCodeableConcept:
                    base: {path: 'Extension.value[x]'}
                    type: CodeableConcept
                    short: Language of the name
                    choiceOf: value
                    index: 178
              synonym:
                url: null
                short: A synonym of this name
                isModifier: false
                array: true
                index: 187
                extensions:
                  _datatype:
                    url: http://hl7.org/fhir/StructureDefinition/_datatype
                    type: Extension
                    short: Data type name for SubstanceSpecification.name.synonym from FHIR R4
                    index: 188
                    elements:
                      value:
                        base: {path: 'Extension.value[x]'}
                        pattern: {type: string, value: SubstanceSpecification.name}
                        choices: [valueString]
                        type: string
                        index: 190
                      valueString:
                        type: string
                        pattern: {type: string, value: SubstanceSpecification.name}
                        base: {path: 'Extension.value[x]'}
                        choiceOf: value
                        index: 191
                    required: [value, valueString]
                elements:
                  extension:
                    type: Extension
                    short: Data type name for SubstanceSpecification.name.synonym from FHIR R4
                    url: http://hl7.org/fhir/StructureDefinition/_datatype
                    index: 188
                    slicing:
                      slices:
                        _datatype:
                          match: {}
                          schema:
                            type: Extension
                            short: Data type name for SubstanceSpecification.name.synonym from FHIR R4
                            url: http://hl7.org/fhir/StructureDefinition/_datatype
                            index: 188
                            elements:
                              value:
                                base: {path: 'Extension.value[x]'}
                                pattern: {type: string, value: SubstanceSpecification.name}
                                choices: [valueString]
                                type: string
                                index: 190
                              valueString:
                                type: string
                                pattern: {type: string, value: SubstanceSpecification.name}
                                base: {path: 'Extension.value[x]'}
                                choiceOf: value
                                index: 191
                            required: [value, valueString]
              translation:
                url: null
                short: A translation for this name
                isModifier: false
                array: true
                index: 192
                extensions:
                  _datatype:
                    url: http://hl7.org/fhir/StructureDefinition/_datatype
                    type: Extension
                    short: Data type name for SubstanceSpecification.name.translation from FHIR R4
                    index: 193
                    elements:
                      value:
                        base: {path: 'Extension.value[x]'}
                        pattern: {type: string, value: SubstanceSpecification.name}
                        choices: [valueString]
                        type: string
                        index: 195
                      valueString:
                        type: string
                        pattern: {type: string, value: SubstanceSpecification.name}
                        base: {path: 'Extension.value[x]'}
                        choiceOf: value
                        index: 196
                    required: [value, valueString]
                elements:
                  extension:
                    type: Extension
                    short: Data type name for SubstanceSpecification.name.translation from FHIR R4
                    url: http://hl7.org/fhir/StructureDefinition/_datatype
                    index: 193
                    slicing:
                      slices:
                        _datatype:
                          match: {}
                          schema:
                            type: Extension
                            short: Data type name for SubstanceSpecification.name.translation from FHIR R4
                            url: http://hl7.org/fhir/StructureDefinition/_datatype
                            index: 193
                            elements:
                              value:
                                base: {path: 'Extension.value[x]'}
                                pattern: {type: string, value: SubstanceSpecification.name}
                                choices: [valueString]
                                type: string
                                index: 195
                              valueString:
                                type: string
                                pattern: {type: string, value: SubstanceSpecification.name}
                                base: {path: 'Extension.value[x]'}
                                choiceOf: value
                                index: 196
                            required: [value, valueString]
              preferred:
                url: null
                short: If this is the preferred name for this substance
                isModifier: false
                index: 171
                elements:
                  value:
                    base: {path: 'Extension.value[x]'}
                    short: If this is the preferred name for this substance
                    choices: [valueBoolean]
                    index: 173
                  valueBoolean:
                    base: {path: 'Extension.value[x]'}
                    type: boolean
                    short: If this is the preferred name for this substance
                    choiceOf: value
                    index: 174
              domain:
                url: null
                short: The use context of this name for example if there is a different name a drug active ingredient as opposed to a food colour additive
                isModifier: false
                array: true
                index: 179
                elements:
                  value:
                    base: {path: 'Extension.value[x]'}
                    short: The use context of this name for example if there is a different name a drug active ingredient as opposed to a food colour additive
                    choices: [valueCodeableConcept]
                    index: 181
                  valueCodeableConcept:
                    base: {path: 'Extension.value[x]'}
                    type: CodeableConcept
                    short: The use context of this name for example if there is a different name a drug active ingredient as opposed to a food colour additive
                    choiceOf: value
                    index: 182
            elements:
              extension:
                array: true
                min: 1
                index: 158
                slicing:
                  rules: closed
                  ordered: false
                  discriminator:
                  - {path: url, type: value}
                  min: 1
                  slices:
                    official:
                      match: {url: null}
                      schema:
                        short: Details of the official nature of this name
                        isModifier: false
                        array: true
                        index: 197
                        extensions:
                          authority:
                            url: null
                            short: Which authority uses this official name
                            isModifier: false
                            index: 199
                            elements:
                              value:
                                base: {path: 'Extension.value[x]'}
                                short: Which authority uses this official name
                                choices: [valueCodeableConcept]
                                index: 201
                              valueCodeableConcept:
                                base: {path: 'Extension.value[x]'}
                                type: CodeableConcept
                                short: Which authority uses this official name
                                choiceOf: value
                                index: 202
                          status:
                            url: null
                            short: The status of the official name
                            isModifier: false
                            index: 203
                            elements:
                              value:
                                base: {path: 'Extension.value[x]'}
                                short: The status of the official name
                                choices: [valueCodeableConcept]
                                index: 205
                              valueCodeableConcept:
                                base: {path: 'Extension.value[x]'}
                                type: CodeableConcept
                                short: The status of the official name
                                choiceOf: value
                                index: 206
                          date:
                            url: null
                            short: Date of official name change
                            isModifier: false
                            index: 207
                            elements:
                              value:
                                base: {path: 'Extension.value[x]'}
                                short: Date of official name change
                                choices: [valueDateTime]
                                index: 209
                              valueDateTime:
                                base: {path: 'Extension.value[x]'}
                                type: dateTime
                                short: Date of official name change
                                choiceOf: value
                                index: 210
                        elements:
                          extension:
                            array: true
                            index: 198
                            slicing:
                              rules: closed
                              ordered: false
                              discriminator:
                              - {path: url, type: value}
                              min: 0
                              slices:
                                authority:
                                  match: {url: null}
                                  schema:
                                    short: Which authority uses this official name
                                    isModifier: false
                                    index: 199
                                    elements:
                                      value:
                                        base: {path: 'Extension.value[x]'}
                                        short: Which authority uses this official name
                                        choices: [valueCodeableConcept]
                                        index: 201
                                      valueCodeableConcept:
                                        base: {path: 'Extension.value[x]'}
                                        type: CodeableConcept
                                        short: Which authority uses this official name
                                        choiceOf: value
                                        index: 202
                                status:
                                  match: {url: null}
                                  schema:
                                    short: The status of the official name
                                    isModifier: false
                                    index: 203
                                    elements:
                                      value:
                                        base: {path: 'Extension.value[x]'}
                                        short: The status of the official name
                                        choices: [valueCodeableConcept]
                                        index: 205
                                      valueCodeableConcept:
                                        base: {path: 'Extension.value[x]'}
                                        type: CodeableConcept
                                        short: The status of the official name
                                        choiceOf: value
                                        index: 206
                                date:
                                  match: {url: null}
                                  schema:
                                    short: Date of official name change
                                    isModifier: false
                                    index: 207
                                    elements:
                                      value:
                                        base: {path: 'Extension.value[x]'}
                                        short: Date of official name change
                                        choices: [valueDateTime]
                                        index: 209
                                      valueDateTime:
                                        base: {path: 'Extension.value[x]'}
                                        type: dateTime
                                        short: Date of official name change
                                        choiceOf: value
                                        index: 210
                    jurisdiction:
                      match: {url: null}
                      schema:
                        short: The jurisdiction where this name applies
                        isModifier: false
                        array: true
                        index: 183
                        elements:
                          value:
                            base: {path: 'Extension.value[x]'}
                            short: The jurisdiction where this name applies
                            choices: [valueCodeableConcept]
                            index: 185
                          valueCodeableConcept:
                            base: {path: 'Extension.value[x]'}
                            type: CodeableConcept
                            short: The jurisdiction where this name applies
                            choiceOf: value
                            index: 186
                    name:
                      match: {url: null}
                      schema:
                        short: The actual name
                        isModifier: false
                        _required: true
                        index: 159
                        elements:
                          value:
                            base: {path: 'Extension.value[x]'}
                            short: The actual name
                            choices: [valueString]
                            index: 161
                          valueString:
                            base: {path: 'Extension.value[x]'}
                            type: string
                            short: The actual name
                            choiceOf: value
                            index: 162
                    type:
                      match: {url: null}
                      schema:
                        short: Name type
                        isModifier: false
                        index: 163
                        elements:
                          value:
                            base: {path: 'Extension.value[x]'}
                            short: Name type
                            choices: [valueCodeableConcept]
                            index: 165
                          valueCodeableConcept:
                            base: {path: 'Extension.value[x]'}
                            type: CodeableConcept
                            short: Name type
                            choiceOf: value
                            index: 166
                    source:
                      match: {url: null}
                      schema:
                        short: Supporting literature
                        isModifier: false
                        array: true
                        index: 211
                        elements:
                          value:
                            base: {path: 'Extension.value[x]'}
                            short: Supporting literature
                            choices: [valueReference]
                            index: 213
                          valueReference:
                            base: {path: 'Extension.value[x]'}
                            type: Reference
                            short: Supporting literature
                            choiceOf: value
                            refers: ['http://hl7.org/fhir/StructureDefinition/DocumentReference']
                            index: 214
                    status:
                      match: {url: null}
                      schema:
                        short: The status of the name
                        isModifier: false
                        index: 167
                        elements:
                          value:
                            base: {path: 'Extension.value[x]'}
                            short: The status of the name
                            choices: [valueCodeableConcept]
                            index: 169
                          valueCodeableConcept:
                            base: {path: 'Extension.value[x]'}
                            type: CodeableConcept
                            short: The status of the name
                            choiceOf: value
                            index: 170
                    language:
                      match: {url: null}
                      schema:
                        short: Language of the name
                        isModifier: false
                        array: true
                        index: 175
                        elements:
                          value:
                            base: {path: 'Extension.value[x]'}
                            short: Language of the name
                            choices: [valueCodeableConcept]
                            index: 177
                          valueCodeableConcept:
                            base: {path: 'Extension.value[x]'}
                            type: CodeableConcept
                            short: Language of the name
                            choiceOf: value
                            index: 178
                    synonym:
                      match: {url: null}
                      schema:
                        short: A synonym of this name
                        isModifier: false
                        array: true
                        index: 187
                        extensions:
                          _datatype:
                            url: http://hl7.org/fhir/StructureDefinition/_datatype
                            type: Extension
                            short: Data type name for SubstanceSpecification.name.synonym from FHIR R4
                            index: 188
                            elements:
                              value:
                                base: {path: 'Extension.value[x]'}
                                pattern: {type: string, value: SubstanceSpecification.name}
                                choices: [valueString]
                                type: string
                                index: 190
                              valueString:
                                type: string
                                pattern: {type: string, value: SubstanceSpecification.name}
                                base: {path: 'Extension.value[x]'}
                                choiceOf: value
                                index: 191
                            required: [value, valueString]
                        elements:
                          extension:
                            type: Extension
                            short: Data type name for SubstanceSpecification.name.synonym from FHIR R4
                            url: http://hl7.org/fhir/StructureDefinition/_datatype
                            index: 188
                            slicing:
                              slices:
                                _datatype:
                                  match: {}
                                  schema:
                                    type: Extension
                                    short: Data type name for SubstanceSpecification.name.synonym from FHIR R4
                                    url: http://hl7.org/fhir/StructureDefinition/_datatype
                                    index: 188
                                    elements:
                                      value:
                                        base: {path: 'Extension.value[x]'}
                                        pattern: {type: string, value: SubstanceSpecification.name}
                                        choices: [valueString]
                                        type: string
                                        index: 190
                                      valueString:
                                        type: string
                                        pattern: {type: string, value: SubstanceSpecification.name}
                                        base: {path: 'Extension.value[x]'}
                                        choiceOf: value
                                        index: 191
                                    required: [value, valueString]
                    translation:
                      match: {url: null}
                      schema:
                        short: A translation for this name
                        isModifier: false
                        array: true
                        index: 192
                        extensions:
                          _datatype:
                            url: http://hl7.org/fhir/StructureDefinition/_datatype
                            type: Extension
                            short: Data type name for SubstanceSpecification.name.translation from FHIR R4
                            index: 193
                            elements:
                              value:
                                base: {path: 'Extension.value[x]'}
                                pattern: {type: string, value: SubstanceSpecification.name}
                                choices: [valueString]
                                type: string
                                index: 195
                              valueString:
                                type: string
                                pattern: {type: string, value: SubstanceSpecification.name}
                                base: {path: 'Extension.value[x]'}
                                choiceOf: value
                                index: 196
                            required: [value, valueString]
                        elements:
                          extension:
                            type: Extension
                            short: Data type name for SubstanceSpecification.name.translation from FHIR R4
                            url: http://hl7.org/fhir/StructureDefinition/_datatype
                            index: 193
                            slicing:
                              slices:
                                _datatype:
                                  match: {}
                                  schema:
                                    type: Extension
                                    short: Data type name for SubstanceSpecification.name.translation from FHIR R4
                                    url: http://hl7.org/fhir/StructureDefinition/_datatype
                                    index: 193
                                    elements:
                                      value:
                                        base: {path: 'Extension.value[x]'}
                                        pattern: {type: string, value: SubstanceSpecification.name}
                                        choices: [valueString]
                                        type: string
                                        index: 195
                                      valueString:
                                        type: string
                                        pattern: {type: string, value: SubstanceSpecification.name}
                                        base: {path: 'Extension.value[x]'}
                                        choiceOf: value
                                        index: 196
                                    required: [value, valueString]
                    preferred:
                      match: {url: null}
                      schema:
                        short: If this is the preferred name for this substance
                        isModifier: false
                        index: 171
                        elements:
                          value:
                            base: {path: 'Extension.value[x]'}
                            short: If this is the preferred name for this substance
                            choices: [valueBoolean]
                            index: 173
                          valueBoolean:
                            base: {path: 'Extension.value[x]'}
                            type: boolean
                            short: If this is the preferred name for this substance
                            choiceOf: value
                            index: 174
                    domain:
                      match: {url: null}
                      schema:
                        short: The use context of this name for example if there is a different name a drug active ingredient as opposed to a food colour additive
                        isModifier: false
                        array: true
                        index: 179
                        elements:
                          value:
                            base: {path: 'Extension.value[x]'}
                            short: The use context of this name for example if there is a different name a drug active ingredient as opposed to a food colour additive
                            choices: [valueCodeableConcept]
                            index: 181
                          valueCodeableConcept:
                            base: {path: 'Extension.value[x]'}
                            type: CodeableConcept
                            short: The use context of this name for example if there is a different name a drug active ingredient as opposed to a food colour additive
                            choiceOf: value
                            index: 182
            required: [extension]
        referenceInformation:
          match: {url: null}
          schema:
            short: General information detailing this substance
            isModifier: false
            index: 80
            elements:
              value:
                base: {path: 'Extension.value[x]'}
                short: General information detailing this substance
                choices: [valueReference]
                index: 82
              valueReference:
                base: {path: 'Extension.value[x]'}
                type: Reference
                short: General information detailing this substance
                choiceOf: value
                refers: ['http://hl7.org/fhir/StructureDefinition/SubstanceReferenceInformation']
                index: 83
        relationship:
          match: {url: null}
          schema:
            short: A link between this substance and another, with details of the relationship
            isModifier: false
            array: true
            index: 220
            extensions:
              substance[x]:
                url: null
                short: A pointer to another substance, as a resource or just a representational code
                isModifier: false
                index: 222
                elements:
                  value:
                    base: {path: 'Extension.value[x]'}
                    short: A pointer to another substance, as a resource or just a representational code
                    choices: [valueReference, valueCodeableConcept]
                    index: 224
                  valueReference:
                    base: {path: 'Extension.value[x]'}
                    type: Reference
                    short: A pointer to another substance, as a resource or just a representational code
                    choiceOf: value
                    refers: ['http://hl7.org/fhir/StructureDefinition/SubstanceSpecification']
                    index: 225
                  valueCodeableConcept:
                    base: {path: 'Extension.value[x]'}
                    type: CodeableConcept
                    short: A pointer to another substance, as a resource or just a representational code
                    choiceOf: value
                    index: 226
              relationship:
                url: null
                short: For example "salt to parent", "active moiety", "starting material"
                isModifier: false
                index: 227
                elements:
                  value:
                    base: {path: 'Extension.value[x]'}
                    short: For example "salt to parent", "active moiety", "starting material"
                    choices: [valueCodeableConcept]
                    index: 229
                  valueCodeableConcept:
                    base: {path: 'Extension.value[x]'}
                    type: CodeableConcept
                    short: For example "salt to parent", "active moiety", "starting material"
                    choiceOf: value
                    index: 230
              isDefining:
                url: null
                short: For example where an enzyme strongly bonds with a particular substance, this is a defining relationship for that enzyme, out of several possible substance relationships
                isModifier: false
                index: 231
                elements:
                  value:
                    base: {path: 'Extension.value[x]'}
                    short: For example where an enzyme strongly bonds with a particular substance, this is a defining relationship for that enzyme, out of several possible substance relationships
                    choices: [valueBoolean]
                    index: 233
                  valueBoolean:
                    base: {path: 'Extension.value[x]'}
                    type: boolean
                    short: For example where an enzyme strongly bonds with a particular substance, this is a defining relationship for that enzyme, out of several possible substance relationships
                    choiceOf: value
                    index: 234
              amount[x]:
                url: null
                short: A numeric factor for the relationship, for instance to express that the salt of a substance has some percentage of the active substance in relation to some other
                isModifier: false
                index: 235
                elements:
                  value:
                    base: {path: 'Extension.value[x]'}
                    short: A numeric factor for the relationship, for instance to express that the salt of a substance has some percentage of the active substance in relation to some other
                    choices: [valueQuantity, valueRange, valueRatio, valueString]
                    index: 237
                  valueQuantity:
                    base: {path: 'Extension.value[x]'}
                    type: Quantity
                    short: A numeric factor for the relationship, for instance to express that the salt of a substance has some percentage of the active substance in relation to some other
                    choiceOf: value
                    index: 238
                  valueRange:
                    base: {path: 'Extension.value[x]'}
                    type: Range
                    short: A numeric factor for the relationship, for instance to express that the salt of a substance has some percentage of the active substance in relation to some other
                    choiceOf: value
                    index: 239
                  valueRatio:
                    base: {path: 'Extension.value[x]'}
                    type: Ratio
                    short: A numeric factor for the relationship, for instance to express that the salt of a substance has some percentage of the active substance in relation to some other
                    choiceOf: value
                    index: 240
                  valueString:
                    base: {path: 'Extension.value[x]'}
                    type: string
                    short: A numeric factor for the relationship, for instance to express that the salt of a substance has some percentage of the active substance in relation to some other
                    choiceOf: value
                    index: 241
              amountRatioLowLimit:
                url: null
                short: For use when the numeric
                isModifier: false
                index: 242
                elements:
                  value:
                    base: {path: 'Extension.value[x]'}
                    short: For use when the numeric
                    choices: [valueRatio]
                    index: 244
                  valueRatio:
                    base: {path: 'Extension.value[x]'}
                    type: Ratio
                    short: For use when the numeric
                    choiceOf: value
                    index: 245
              amountType:
                url: null
                short: An operator for the amount, for example "average", "approximately", "less than"
                isModifier: false
                index: 246
                elements:
                  value:
                    base: {path: 'Extension.value[x]'}
                    short: An operator for the amount, for example "average", "approximately", "less than"
                    choices: [valueCodeableConcept]
                    index: 248
                  valueCodeableConcept:
                    base: {path: 'Extension.value[x]'}
                    type: CodeableConcept
                    short: An operator for the amount, for example "average", "approximately", "less than"
                    choiceOf: value
                    index: 249
              source:
                url: null
                short: Supporting literature
                isModifier: false
                array: true
                index: 250
                elements:
                  value:
                    base: {path: 'Extension.value[x]'}
                    short: Supporting literature
                    choices: [valueReference]
                    index: 252
                  valueReference:
                    base: {path: 'Extension.value[x]'}
                    type: Reference
                    short: Supporting literature
                    choiceOf: value
                    refers: ['http://hl7.org/fhir/StructureDefinition/DocumentReference']
                    index: 253
            elements:
              extension:
                array: true
                index: 221
                slicing:
                  rules: closed
                  ordered: false
                  discriminator:
                  - {path: url, type: value}
                  min: 0
                  slices:
                    substance[x]:
                      match: {url: null}
                      schema:
                        short: A pointer to another substance, as a resource or just a representational code
                        isModifier: false
                        index: 222
                        elements:
                          value:
                            base: {path: 'Extension.value[x]'}
                            short: A pointer to another substance, as a resource or just a representational code
                            choices: [valueReference, valueCodeableConcept]
                            index: 224
                          valueReference:
                            base: {path: 'Extension.value[x]'}
                            type: Reference
                            short: A pointer to another substance, as a resource or just a representational code
                            choiceOf: value
                            refers: ['http://hl7.org/fhir/StructureDefinition/SubstanceSpecification']
                            index: 225
                          valueCodeableConcept:
                            base: {path: 'Extension.value[x]'}
                            type: CodeableConcept
                            short: A pointer to another substance, as a resource or just a representational code
                            choiceOf: value
                            index: 226
                    relationship:
                      match: {url: null}
                      schema:
                        short: For example "salt to parent", "active moiety", "starting material"
                        isModifier: false
                        index: 227
                        elements:
                          value:
                            base: {path: 'Extension.value[x]'}
                            short: For example "salt to parent", "active moiety", "starting material"
                            choices: [valueCodeableConcept]
                            index: 229
                          valueCodeableConcept:
                            base: {path: 'Extension.value[x]'}
                            type: CodeableConcept
                            short: For example "salt to parent", "active moiety", "starting material"
                            choiceOf: value
                            index: 230
                    isDefining:
                      match: {url: null}
                      schema:
                        short: For example where an enzyme strongly bonds with a particular substance, this is a defining relationship for that enzyme, out of several possible substance relationships
                        isModifier: false
                        index: 231
                        elements:
                          value:
                            base: {path: 'Extension.value[x]'}
                            short: For example where an enzyme strongly bonds with a particular substance, this is a defining relationship for that enzyme, out of several possible substance relationships
                            choices: [valueBoolean]
                            index: 233
                          valueBoolean:
                            base: {path: 'Extension.value[x]'}
                            type: boolean
                            short: For example where an enzyme strongly bonds with a particular substance, this is a defining relationship for that enzyme, out of several possible substance relationships
                            choiceOf: value
                            index: 234
                    amount[x]:
                      match: {url: null}
                      schema:
                        short: A numeric factor for the relationship, for instance to express that the salt of a substance has some percentage of the active substance in relation to some other
                        isModifier: false
                        index: 235
                        elements:
                          value:
                            base: {path: 'Extension.value[x]'}
                            short: A numeric factor for the relationship, for instance to express that the salt of a substance has some percentage of the active substance in relation to some other
                            choices: [valueQuantity, valueRange, valueRatio, valueString]
                            index: 237
                          valueQuantity:
                            base: {path: 'Extension.value[x]'}
                            type: Quantity
                            short: A numeric factor for the relationship, for instance to express that the salt of a substance has some percentage of the active substance in relation to some other
                            choiceOf: value
                            index: 238
                          valueRange:
                            base: {path: 'Extension.value[x]'}
                            type: Range
                            short: A numeric factor for the relationship, for instance to express that the salt of a substance has some percentage of the active substance in relation to some other
                            choiceOf: value
                            index: 239
                          valueRatio:
                            base: {path: 'Extension.value[x]'}
                            type: Ratio
                            short: A numeric factor for the relationship, for instance to express that the salt of a substance has some percentage of the active substance in relation to some other
                            choiceOf: value
                            index: 240
                          valueString:
                            base: {path: 'Extension.value[x]'}
                            type: string
                            short: A numeric factor for the relationship, for instance to express that the salt of a substance has some percentage of the active substance in relation to some other
                            choiceOf: value
                            index: 241
                    amountRatioLowLimit:
                      match: {url: null}
                      schema:
                        short: For use when the numeric
                        isModifier: false
                        index: 242
                        elements:
                          value:
                            base: {path: 'Extension.value[x]'}
                            short: For use when the numeric
                            choices: [valueRatio]
                            index: 244
                          valueRatio:
                            base: {path: 'Extension.value[x]'}
                            type: Ratio
                            short: For use when the numeric
                            choiceOf: value
                            index: 245
                    amountType:
                      match: {url: null}
                      schema:
                        short: An operator for the amount, for example "average", "approximately", "less than"
                        isModifier: false
                        index: 246
                        elements:
                          value:
                            base: {path: 'Extension.value[x]'}
                            short: An operator for the amount, for example "average", "approximately", "less than"
                            choices: [valueCodeableConcept]
                            index: 248
                          valueCodeableConcept:
                            base: {path: 'Extension.value[x]'}
                            type: CodeableConcept
                            short: An operator for the amount, for example "average", "approximately", "less than"
                            choiceOf: value
                            index: 249
                    source:
                      match: {url: null}
                      schema:
                        short: Supporting literature
                        isModifier: false
                        array: true
                        index: 250
                        elements:
                          value:
                            base: {path: 'Extension.value[x]'}
                            short: Supporting literature
                            choices: [valueReference]
                            index: 252
                          valueReference:
                            base: {path: 'Extension.value[x]'}
                            type: Reference
                            short: Supporting literature
                            choiceOf: value
                            refers: ['http://hl7.org/fhir/StructureDefinition/DocumentReference']
                            index: 253
        type:
          match: {url: null}
          schema:
            short: High level categorization, e.g. polymer or nucleic acid
            isModifier: false
            index: 1
            elements:
              value:
                base: {path: 'Extension.value[x]'}
                short: High level categorization, e.g. polymer or nucleic acid
                choices: [valueCodeableConcept]
                index: 3
              valueCodeableConcept:
                base: {path: 'Extension.value[x]'}
                type: CodeableConcept
                short: High level categorization, e.g. polymer or nucleic acid
                choiceOf: value
                index: 4
        moiety:
          match: {url: null}
          schema:
            short: Moiety, for structural modifications
            isModifier: false
            array: true
            index: 25
            extensions:
              role:
                url: null
                short: Role that the moiety is playing
                isModifier: false
                index: 27
                elements:
                  value:
                    base: {path: 'Extension.value[x]'}
                    short: Role that the moiety is playing
                    choices: [valueCodeableConcept]
                    index: 29
                  valueCodeableConcept:
                    base: {path: 'Extension.value[x]'}
                    type: CodeableConcept
                    short: Role that the moiety is playing
                    choiceOf: value
                    index: 30
              identifier:
                url: null
                short: Identifier by which this moiety substance is known
                isModifier: false
                index: 31
                elements:
                  value:
                    base: {path: 'Extension.value[x]'}
                    short: Identifier by which this moiety substance is known
                    choices: [valueIdentifier]
                    index: 33
                  valueIdentifier:
                    base: {path: 'Extension.value[x]'}
                    type: Identifier
                    short: Identifier by which this moiety substance is known
                    choiceOf: value
                    index: 34
              name:
                url: null
                short: Textual name for this moiety substance
                isModifier: false
                index: 35
                elements:
                  value:
                    base: {path: 'Extension.value[x]'}
                    short: Textual name for this moiety substance
                    choices: [valueString]
                    index: 37
                  valueString:
                    base: {path: 'Extension.value[x]'}
                    type: string
                    short: Textual name for this moiety substance
                    choiceOf: value
                    index: 38
              stereochemistry:
                url: null
                short: Stereochemistry type
                isModifier: false
                index: 39
                elements:
                  value:
                    base: {path: 'Extension.value[x]'}
                    short: Stereochemistry type
                    choices: [valueCodeableConcept]
                    index: 41
                  valueCodeableConcept:
                    base: {path: 'Extension.value[x]'}
                    type: CodeableConcept
                    short: Stereochemistry type
                    choiceOf: value
                    index: 42
              opticalActivity:
                url: null
                short: Optical activity type
                isModifier: false
                index: 43
                elements:
                  value:
                    base: {path: 'Extension.value[x]'}
                    short: Optical activity type
                    choices: [valueCodeableConcept]
                    index: 45
                  valueCodeableConcept:
                    base: {path: 'Extension.value[x]'}
                    type: CodeableConcept
                    short: Optical activity type
                    choiceOf: value
                    index: 46
              molecularFormula:
                url: null
                short: Molecular formula
                isModifier: false
                index: 47
                elements:
                  value:
                    base: {path: 'Extension.value[x]'}
                    short: Molecular formula
                    choices: [valueString]
                    index: 49
                  valueString:
                    base: {path: 'Extension.value[x]'}
                    type: string
                    short: Molecular formula
                    choiceOf: value
                    index: 50
              amount[x]:
                url: null
                short: Quantitative value for this moiety
                isModifier: false
                index: 51
                elements:
                  value:
                    base: {path: 'Extension.value[x]'}
                    short: Quantitative value for this moiety
                    choices: [valueQuantity, valueString]
                    index: 53
                  valueQuantity:
                    base: {path: 'Extension.value[x]'}
                    type: Quantity
                    short: Quantitative value for this moiety
                    choiceOf: value
                    index: 54
                  valueString:
                    base: {path: 'Extension.value[x]'}
                    type: string
                    short: Quantitative value for this moiety
                    choiceOf: value
                    index: 55
            elements:
              extension:
                array: true
                index: 26
                slicing:
                  rules: closed
                  ordered: false
                  discriminator:
                  - {path: url, type: value}
                  min: 0
                  slices:
                    role:
                      match: {url: null}
                      schema:
                        short: Role that the moiety is playing
                        isModifier: false
                        index: 27
                        elements:
                          value:
                            base: {path: 'Extension.value[x]'}
                            short: Role that the moiety is playing
                            choices: [valueCodeableConcept]
                            index: 29
                          valueCodeableConcept:
                            base: {path: 'Extension.value[x]'}
                            type: CodeableConcept
                            short: Role that the moiety is playing
                            choiceOf: value
                            index: 30
                    identifier:
                      match: {url: null}
                      schema:
                        short: Identifier by which this moiety substance is known
                        isModifier: false
                        index: 31
                        elements:
                          value:
                            base: {path: 'Extension.value[x]'}
                            short: Identifier by which this moiety substance is known
                            choices: [valueIdentifier]
                            index: 33
                          valueIdentifier:
                            base: {path: 'Extension.value[x]'}
                            type: Identifier
                            short: Identifier by which this moiety substance is known
                            choiceOf: value
                            index: 34
                    name:
                      match: {url: null}
                      schema:
                        short: Textual name for this moiety substance
                        isModifier: false
                        index: 35
                        elements:
                          value:
                            base: {path: 'Extension.value[x]'}
                            short: Textual name for this moiety substance
                            choices: [valueString]
                            index: 37
                          valueString:
                            base: {path: 'Extension.value[x]'}
                            type: string
                            short: Textual name for this moiety substance
                            choiceOf: value
                            index: 38
                    stereochemistry:
                      match: {url: null}
                      schema:
                        short: Stereochemistry type
                        isModifier: false
                        index: 39
                        elements:
                          value:
                            base: {path: 'Extension.value[x]'}
                            short: Stereochemistry type
                            choices: [valueCodeableConcept]
                            index: 41
                          valueCodeableConcept:
                            base: {path: 'Extension.value[x]'}
                            type: CodeableConcept
                            short: Stereochemistry type
                            choiceOf: value
                            index: 42
                    opticalActivity:
                      match: {url: null}
                      schema:
                        short: Optical activity type
                        isModifier: false
                        index: 43
                        elements:
                          value:
                            base: {path: 'Extension.value[x]'}
                            short: Optical activity type
                            choices: [valueCodeableConcept]
                            index: 45
                          valueCodeableConcept:
                            base: {path: 'Extension.value[x]'}
                            type: CodeableConcept
                            short: Optical activity type
                            choiceOf: value
                            index: 46
                    molecularFormula:
                      match: {url: null}
                      schema:
                        short: Molecular formula
                        isModifier: false
                        index: 47
                        elements:
                          value:
                            base: {path: 'Extension.value[x]'}
                            short: Molecular formula
                            choices: [valueString]
                            index: 49
                          valueString:
                            base: {path: 'Extension.value[x]'}
                            type: string
                            short: Molecular formula
                            choiceOf: value
                            index: 50
                    amount[x]:
                      match: {url: null}
                      schema:
                        short: Quantitative value for this moiety
                        isModifier: false
                        index: 51
                        elements:
                          value:
                            base: {path: 'Extension.value[x]'}
                            short: Quantitative value for this moiety
                            choices: [valueQuantity, valueString]
                            index: 53
                          valueQuantity:
                            base: {path: 'Extension.value[x]'}
                            type: Quantity
                            short: Quantitative value for this moiety
                            choiceOf: value
                            index: 54
                          valueString:
                            base: {path: 'Extension.value[x]'}
                            type: string
                            short: Quantitative value for this moiety
                            choiceOf: value
                            index: 55
        source:
          match: {url: null}
          schema:
            short: Supporting literature
            isModifier: false
            array: true
            index: 17
            elements:
              value:
                base: {path: 'Extension.value[x]'}
                short: Supporting literature
                choices: [valueReference]
                index: 19
              valueReference:
                base: {path: 'Extension.value[x]'}
                type: Reference
                short: Supporting literature
                choiceOf: value
                refers: ['http://hl7.org/fhir/StructureDefinition/DocumentReference']
                index: 20
        nucleicAcid:
          match: {url: null}
          schema:
            short: Data items specific to nucleic acids
            isModifier: false
            index: 254
            elements:
              value:
                base: {path: 'Extension.value[x]'}
                short: Data items specific to nucleic acids
                choices: [valueReference]
                index: 256
              valueReference:
                base: {path: 'Extension.value[x]'}
                type: Reference
                short: Data items specific to nucleic acids
                choiceOf: value
                refers: ['http://hl7.org/fhir/StructureDefinition/SubstanceNucleicAcid']
                index: 257
        structure:
          match: {url: null}
          schema:
            short: Structural information
            isModifier: false
            index: 84
            extensions:
              stereochemistry:
                url: null
                short: Stereochemistry type
                isModifier: false
                index: 86
                elements:
                  value:
                    base: {path: 'Extension.value[x]'}
                    short: Stereochemistry type
                    choices: [valueCodeableConcept]
                    index: 88
                  valueCodeableConcept:
                    base: {path: 'Extension.value[x]'}
                    type: CodeableConcept
                    short: Stereochemistry type
                    choiceOf: value
                    index: 89
              opticalActivity:
                url: null
                short: Optical activity type
                isModifier: false
                index: 90
                elements:
                  value:
                    base: {path: 'Extension.value[x]'}
                    short: Optical activity type
                    choices: [valueCodeableConcept]
                    index: 92
                  valueCodeableConcept:
                    base: {path: 'Extension.value[x]'}
                    type: CodeableConcept
                    short: Optical activity type
                    choiceOf: value
                    index: 93
              molecularFormula:
                url: null
                short: Molecular formula
                isModifier: false
                index: 94
                elements:
                  value:
                    base: {path: 'Extension.value[x]'}
                    short: Molecular formula
                    choices: [valueString]
                    index: 96
                  valueString:
                    base: {path: 'Extension.value[x]'}
                    type: string
                    short: Molecular formula
                    choiceOf: value
                    index: 97
              molecularFormulaByMoiety:
                url: null
                short: Specified per moiety according to the Hill system, i.e. first C, then H, then alphabetical, each moiety separated by a dot
                isModifier: false
                index: 98
                elements:
                  value:
                    base: {path: 'Extension.value[x]'}
                    short: Specified per moiety according to the Hill system, i.e. first C, then H, then alphabetical, each moiety separated by a dot
                    choices: [valueString]
                    index: 100
                  valueString:
                    base: {path: 'Extension.value[x]'}
                    type: string
                    short: Specified per moiety according to the Hill system, i.e. first C, then H, then alphabetical, each moiety separated by a dot
                    choiceOf: value
                    index: 101
              isotope:
                url: null
                short: Applicable for single substances that contain a radionuclide or a non-natural isotopic ratio
                isModifier: false
                array: true
                index: 102
                extensions:
                  identifier:
                    url: null
                    short: Substance identifier for each non-natural or radioisotope
                    isModifier: false
                    index: 104
                    elements:
                      value:
                        base: {path: 'Extension.value[x]'}
                        short: Substance identifier for each non-natural or radioisotope
                        choices: [valueIdentifier]
                        index: 106
                      valueIdentifier:
                        base: {path: 'Extension.value[x]'}
                        type: Identifier
                        short: Substance identifier for each non-natural or radioisotope
                        choiceOf: value
                        index: 107
                  name:
                    url: null
                    short: Substance name for each non-natural or radioisotope
                    isModifier: false
                    index: 108
                    elements:
                      value:
                        base: {path: 'Extension.value[x]'}
                        short: Substance name for each non-natural or radioisotope
                        choices: [valueCodeableConcept]
                        index: 110
                      valueCodeableConcept:
                        base: {path: 'Extension.value[x]'}
                        type: CodeableConcept
                        short: Substance name for each non-natural or radioisotope
                        choiceOf: value
                        index: 111
                  substitution:
                    url: null
                    short: The type of isotopic substitution present in a single substance
                    isModifier: false
                    index: 112
                    elements:
                      value:
                        base: {path: 'Extension.value[x]'}
                        short: The type of isotopic substitution present in a single substance
                        choices: [valueCodeableConcept]
                        index: 114
                      valueCodeableConcept:
                        base: {path: 'Extension.value[x]'}
                        type: CodeableConcept
                        short: The type of isotopic substitution present in a single substance
                        choiceOf: value
                        index: 115
                  halfLife:
                    url: null
                    short: Half life - for a non-natural nuclide
                    isModifier: false
                    index: 116
                    elements:
                      value:
                        base: {path: 'Extension.value[x]'}
                        short: Half life - for a non-natural nuclide
                        choices: [valueQuantity]
                        index: 118
                      valueQuantity:
                        base: {path: 'Extension.value[x]'}
                        type: Quantity
                        short: Half life - for a non-natural nuclide
                        choiceOf: value
                        index: 119
                  molecularWeight:
                    url: null
                    short: The molecular weight or weight range (for proteins, polymers or nucleic acids)
                    isModifier: false
                    index: 120
                    extensions:
                      method:
                        url: null
                        short: The method by which the molecular weight was determined
                        isModifier: false
                        index: 122
                        elements:
                          value:
                            base: {path: 'Extension.value[x]'}
                            short: The method by which the molecular weight was determined
                            choices: [valueCodeableConcept]
                            index: 124
                          valueCodeableConcept:
                            base: {path: 'Extension.value[x]'}
                            type: CodeableConcept
                            short: The method by which the molecular weight was determined
                            choiceOf: value
                            index: 125
                      type:
                        url: null
                        short: Type of molecular weight such as exact, average (also known as. number average), weight average
                        isModifier: false
                        index: 126
                        elements:
                          value:
                            base: {path: 'Extension.value[x]'}
                            short: Type of molecular weight such as exact, average (also known as. number average), weight average
                            choices: [valueCodeableConcept]
                            index: 128
                          valueCodeableConcept:
                            base: {path: 'Extension.value[x]'}
                            type: CodeableConcept
                            short: Type of molecular weight such as exact, average (also known as. number average), weight average
                            choiceOf: value
                            index: 129
                      amount:
                        url: null
                        short: Used to capture quantitative values for a variety of elements. If only limits are given, the arithmetic mean would be the average. If only a single definite value for a given element is given, it would be captured in this field
                        isModifier: false
                        index: 130
                        elements:
                          value:
                            base: {path: 'Extension.value[x]'}
                            short: Used to capture quantitative values for a variety of elements. If only limits are given, the arithmetic mean would be the average. If only a single definite value for a given element is given, it would be captured in this field
                            choices: [valueQuantity]
                            index: 132
                          valueQuantity:
                            base: {path: 'Extension.value[x]'}
                            type: Quantity
                            short: Used to capture quantitative values for a variety of elements. If only limits are given, the arithmetic mean would be the average. If only a single definite value for a given element is given, it would be captured in this field
                            choiceOf: value
                            index: 133
                    elements:
                      extension:
                        array: true
                        index: 121
                        slicing:
                          rules: closed
                          ordered: false
                          discriminator:
                          - {path: url, type: value}
                          min: 0
                          slices:
                            method:
                              match: {url: null}
                              schema:
                                short: The method by which the molecular weight was determined
                                isModifier: false
                                index: 122
                                elements:
                                  value:
                                    base: {path: 'Extension.value[x]'}
                                    short: The method by which the molecular weight was determined
                                    choices: [valueCodeableConcept]
                                    index: 124
                                  valueCodeableConcept:
                                    base: {path: 'Extension.value[x]'}
                                    type: CodeableConcept
                                    short: The method by which the molecular weight was determined
                                    choiceOf: value
                                    index: 125
                            type:
                              match: {url: null}
                              schema:
                                short: Type of molecular weight such as exact, average (also known as. number average), weight average
                                isModifier: false
                                index: 126
                                elements:
                                  value:
                                    base: {path: 'Extension.value[x]'}
                                    short: Type of molecular weight such as exact, average (also known as. number average), weight average
                                    choices: [valueCodeableConcept]
                                    index: 128
                                  valueCodeableConcept:
                                    base: {path: 'Extension.value[x]'}
                                    type: CodeableConcept
                                    short: Type of molecular weight such as exact, average (also known as. number average), weight average
                                    choiceOf: value
                                    index: 129
                            amount:
                              match: {url: null}
                              schema:
                                short: Used to capture quantitative values for a variety of elements. If only limits are given, the arithmetic mean would be the average. If only a single definite value for a given element is given, it would be captured in this field
                                isModifier: false
                                index: 130
                                elements:
                                  value:
                                    base: {path: 'Extension.value[x]'}
                                    short: Used to capture quantitative values for a variety of elements. If only limits are given, the arithmetic mean would be the average. If only a single definite value for a given element is given, it would be captured in this field
                                    choices: [valueQuantity]
                                    index: 132
                                  valueQuantity:
                                    base: {path: 'Extension.value[x]'}
                                    type: Quantity
                                    short: Used to capture quantitative values for a variety of elements. If only limits are given, the arithmetic mean would be the average. If only a single definite value for a given element is given, it would be captured in this field
                                    choiceOf: value
                                    index: 133
                elements:
                  extension:
                    array: true
                    index: 103
                    slicing:
                      rules: closed
                      ordered: false
                      discriminator:
                      - {path: url, type: value}
                      min: 0
                      slices:
                        identifier:
                          match: {url: null}
                          schema:
                            short: Substance identifier for each non-natural or radioisotope
                            isModifier: false
                            index: 104
                            elements:
                              value:
                                base: {path: 'Extension.value[x]'}
                                short: Substance identifier for each non-natural or radioisotope
                                choices: [valueIdentifier]
                                index: 106
                              valueIdentifier:
                                base: {path: 'Extension.value[x]'}
                                type: Identifier
                                short: Substance identifier for each non-natural or radioisotope
                                choiceOf: value
                                index: 107
                        name:
                          match: {url: null}
                          schema:
                            short: Substance name for each non-natural or radioisotope
                            isModifier: false
                            index: 108
                            elements:
                              value:
                                base: {path: 'Extension.value[x]'}
                                short: Substance name for each non-natural or radioisotope
                                choices: [valueCodeableConcept]
                                index: 110
                              valueCodeableConcept:
                                base: {path: 'Extension.value[x]'}
                                type: CodeableConcept
                                short: Substance name for each non-natural or radioisotope
                                choiceOf: value
                                index: 111
                        substitution:
                          match: {url: null}
                          schema:
                            short: The type of isotopic substitution present in a single substance
                            isModifier: false
                            index: 112
                            elements:
                              value:
                                base: {path: 'Extension.value[x]'}
                                short: The type of isotopic substitution present in a single substance
                                choices: [valueCodeableConcept]
                                index: 114
                              valueCodeableConcept:
                                base: {path: 'Extension.value[x]'}
                                type: CodeableConcept
                                short: The type of isotopic substitution present in a single substance
                                choiceOf: value
                                index: 115
                        halfLife:
                          match: {url: null}
                          schema:
                            short: Half life - for a non-natural nuclide
                            isModifier: false
                            index: 116
                            elements:
                              value:
                                base: {path: 'Extension.value[x]'}
                                short: Half life - for a non-natural nuclide
                                choices: [valueQuantity]
                                index: 118
                              valueQuantity:
                                base: {path: 'Extension.value[x]'}
                                type: Quantity
                                short: Half life - for a non-natural nuclide
                                choiceOf: value
                                index: 119
                        molecularWeight:
                          match: {url: null}
                          schema:
                            short: The molecular weight or weight range (for proteins, polymers or nucleic acids)
                            isModifier: false
                            index: 120
                            extensions:
                              method:
                                url: null
                                short: The method by which the molecular weight was determined
                                isModifier: false
                                index: 122
                                elements:
                                  value:
                                    base: {path: 'Extension.value[x]'}
                                    short: The method by which the molecular weight was determined
                                    choices: [valueCodeableConcept]
                                    index: 124
                                  valueCodeableConcept:
                                    base: {path: 'Extension.value[x]'}
                                    type: CodeableConcept
                                    short: The method by which the molecular weight was determined
                                    choiceOf: value
                                    index: 125
                              type:
                                url: null
                                short: Type of molecular weight such as exact, average (also known as. number average), weight average
                                isModifier: false
                                index: 126
                                elements:
                                  value:
                                    base: {path: 'Extension.value[x]'}
                                    short: Type of molecular weight such as exact, average (also known as. number average), weight average
                                    choices: [valueCodeableConcept]
                                    index: 128
                                  valueCodeableConcept:
                                    base: {path: 'Extension.value[x]'}
                                    type: CodeableConcept
                                    short: Type of molecular weight such as exact, average (also known as. number average), weight average
                                    choiceOf: value
                                    index: 129
                              amount:
                                url: null
                                short: Used to capture quantitative values for a variety of elements. If only limits are given, the arithmetic mean would be the average. If only a single definite value for a given element is given, it would be captured in this field
                                isModifier: false
                                index: 130
                                elements:
                                  value:
                                    base: {path: 'Extension.value[x]'}
                                    short: Used to capture quantitative values for a variety of elements. If only limits are given, the arithmetic mean would be the average. If only a single definite value for a given element is given, it would be captured in this field
                                    choices: [valueQuantity]
                                    index: 132
                                  valueQuantity:
                                    base: {path: 'Extension.value[x]'}
                                    type: Quantity
                                    short: Used to capture quantitative values for a variety of elements. If only limits are given, the arithmetic mean would be the average. If only a single definite value for a given element is given, it would be captured in this field
                                    choiceOf: value
                                    index: 133
                            elements:
                              extension:
                                array: true
                                index: 121
                                slicing:
                                  rules: closed
                                  ordered: false
                                  discriminator:
                                  - {path: url, type: value}
                                  min: 0
                                  slices:
                                    method:
                                      match: {url: null}
                                      schema:
                                        short: The method by which the molecular weight was determined
                                        isModifier: false
                                        index: 122
                                        elements:
                                          value:
                                            base: {path: 'Extension.value[x]'}
                                            short: The method by which the molecular weight was determined
                                            choices: [valueCodeableConcept]
                                            index: 124
                                          valueCodeableConcept:
                                            base: {path: 'Extension.value[x]'}
                                            type: CodeableConcept
                                            short: The method by which the molecular weight was determined
                                            choiceOf: value
                                            index: 125
                                    type:
                                      match: {url: null}
                                      schema:
                                        short: Type of molecular weight such as exact, average (also known as. number average), weight average
                                        isModifier: false
                                        index: 126
                                        elements:
                                          value:
                                            base: {path: 'Extension.value[x]'}
                                            short: Type of molecular weight such as exact, average (also known as. number average), weight average
                                            choices: [valueCodeableConcept]
                                            index: 128
                                          valueCodeableConcept:
                                            base: {path: 'Extension.value[x]'}
                                            type: CodeableConcept
                                            short: Type of molecular weight such as exact, average (also known as. number average), weight average
                                            choiceOf: value
                                            index: 129
                                    amount:
                                      match: {url: null}
                                      schema:
                                        short: Used to capture quantitative values for a variety of elements. If only limits are given, the arithmetic mean would be the average. If only a single definite value for a given element is given, it would be captured in this field
                                        isModifier: false
                                        index: 130
                                        elements:
                                          value:
                                            base: {path: 'Extension.value[x]'}
                                            short: Used to capture quantitative values for a variety of elements. If only limits are given, the arithmetic mean would be the average. If only a single definite value for a given element is given, it would be captured in this field
                                            choices: [valueQuantity]
                                            index: 132
                                          valueQuantity:
                                            base: {path: 'Extension.value[x]'}
                                            type: Quantity
                                            short: Used to capture quantitative values for a variety of elements. If only limits are given, the arithmetic mean would be the average. If only a single definite value for a given element is given, it would be captured in this field
                                            choiceOf: value
                                            index: 133
              molecularWeight:
                url: null
                short: The molecular weight or weight range (for proteins, polymers or nucleic acids)
                isModifier: false
                index: 134
                extensions:
                  _datatype:
                    url: http://hl7.org/fhir/StructureDefinition/_datatype
                    type: Extension
                    short: Data type name for SubstanceSpecification.structure.molecularWeight from FHIR R4
                    index: 135
                    elements:
                      value:
                        base: {path: 'Extension.value[x]'}
                        pattern: {type: string, value: SubstanceSpecification.structure.isotope.molecularWeight}
                        choices: [valueString]
                        type: string
                        index: 137
                      valueString:
                        type: string
                        pattern: {type: string, value: SubstanceSpecification.structure.isotope.molecularWeight}
                        base: {path: 'Extension.value[x]'}
                        choiceOf: value
                        index: 138
                    required: [value, valueString]
                elements:
                  extension:
                    type: Extension
                    short: Data type name for SubstanceSpecification.structure.molecularWeight from FHIR R4
                    url: http://hl7.org/fhir/StructureDefinition/_datatype
                    index: 135
                    slicing:
                      slices:
                        _datatype:
                          match: {}
                          schema:
                            type: Extension
                            short: Data type name for SubstanceSpecification.structure.molecularWeight from FHIR R4
                            url: http://hl7.org/fhir/StructureDefinition/_datatype
                            index: 135
                            elements:
                              value:
                                base: {path: 'Extension.value[x]'}
                                pattern: {type: string, value: SubstanceSpecification.structure.isotope.molecularWeight}
                                choices: [valueString]
                                type: string
                                index: 137
                              valueString:
                                type: string
                                pattern: {type: string, value: SubstanceSpecification.structure.isotope.molecularWeight}
                                base: {path: 'Extension.value[x]'}
                                choiceOf: value
                                index: 138
                            required: [value, valueString]
              source:
                url: null
                short: Supporting literature
                isModifier: false
                array: true
                index: 139
                elements:
                  value:
                    base: {path: 'Extension.value[x]'}
                    short: Supporting literature
                    choices: [valueReference]
                    index: 141
                  valueReference:
                    base: {path: 'Extension.value[x]'}
                    type: Reference
                    short: Supporting literature
                    choiceOf: value
                    refers: ['http://hl7.org/fhir/StructureDefinition/DocumentReference']
                    index: 142
              representation:
                url: null
                short: Molecular structural representation
                isModifier: false
                array: true
                index: 143
                extensions:
                  type:
                    url: null
                    short: The type of structure (e.g. Full, Partial, Representative)
                    isModifier: false
                    index: 145
                    elements:
                      value:
                        base: {path: 'Extension.value[x]'}
                        short: The type of structure (e.g. Full, Partial, Representative)
                        choices: [valueCodeableConcept]
                        index: 147
                      valueCodeableConcept:
                        base: {path: 'Extension.value[x]'}
                        type: CodeableConcept
                        short: The type of structure (e.g. Full, Partial, Representative)
                        choiceOf: value
                        index: 148
                  representation:
                    url: null
                    short: The structural representation as text string in a format e.g. InChI, SMILES, MOLFILE, CDX
                    isModifier: false
                    index: 149
                    elements:
                      value:
                        base: {path: 'Extension.value[x]'}
                        short: The structural representation as text string in a format e.g. InChI, SMILES, MOLFILE, CDX
                        choices: [valueString]
                        index: 151
                      valueString:
                        base: {path: 'Extension.value[x]'}
                        type: string
                        short: The structural representation as text string in a format e.g. InChI, SMILES, MOLFILE, CDX
                        choiceOf: value
                        index: 152
                  attachment:
                    url: null
                    short: An attached file with the structural representation
                    isModifier: false
                    index: 153
                    elements:
                      value:
                        base: {path: 'Extension.value[x]'}
                        short: An attached file with the structural representation
                        choices: [valueAttachment]
                        index: 155
                      valueAttachment:
                        base: {path: 'Extension.value[x]'}
                        type: Attachment
                        short: An attached file with the structural representation
                        choiceOf: value
                        index: 156
                elements:
                  extension:
                    array: true
                    index: 144
                    slicing:
                      rules: closed
                      ordered: false
                      discriminator:
                      - {path: url, type: value}
                      min: 0
                      slices:
                        type:
                          match: {url: null}
                          schema:
                            short: The type of structure (e.g. Full, Partial, Representative)
                            isModifier: false
                            index: 145
                            elements:
                              value:
                                base: {path: 'Extension.value[x]'}
                                short: The type of structure (e.g. Full, Partial, Representative)
                                choices: [valueCodeableConcept]
                                index: 147
                              valueCodeableConcept:
                                base: {path: 'Extension.value[x]'}
                                type: CodeableConcept
                                short: The type of structure (e.g. Full, Partial, Representative)
                                choiceOf: value
                                index: 148
                        representation:
                          match: {url: null}
                          schema:
                            short: The structural representation as text string in a format e.g. InChI, SMILES, MOLFILE, CDX
                            isModifier: false
                            index: 149
                            elements:
                              value:
                                base: {path: 'Extension.value[x]'}
                                short: The structural representation as text string in a format e.g. InChI, SMILES, MOLFILE, CDX
                                choices: [valueString]
                                index: 151
                              valueString:
                                base: {path: 'Extension.value[x]'}
                                type: string
                                short: The structural representation as text string in a format e.g. InChI, SMILES, MOLFILE, CDX
                                choiceOf: value
                                index: 152
                        attachment:
                          match: {url: null}
                          schema:
                            short: An attached file with the structural representation
                            isModifier: false
                            index: 153
                            elements:
                              value:
                                base: {path: 'Extension.value[x]'}
                                short: An attached file with the structural representation
                                choices: [valueAttachment]
                                index: 155
                              valueAttachment:
                                base: {path: 'Extension.value[x]'}
                                type: Attachment
                                short: An attached file with the structural representation
                                choiceOf: value
                                index: 156
            elements:
              extension:
                array: true
                index: 85
                slicing:
                  rules: closed
                  ordered: false
                  discriminator:
                  - {path: url, type: value}
                  min: 0
                  slices:
                    stereochemistry:
                      match: {url: null}
                      schema:
                        short: Stereochemistry type
                        isModifier: false
                        index: 86
                        elements:
                          value:
                            base: {path: 'Extension.value[x]'}
                            short: Stereochemistry type
                            choices: [valueCodeableConcept]
                            index: 88
                          valueCodeableConcept:
                            base: {path: 'Extension.value[x]'}
                            type: CodeableConcept
                            short: Stereochemistry type
                            choiceOf: value
                            index: 89
                    opticalActivity:
                      match: {url: null}
                      schema:
                        short: Optical activity type
                        isModifier: false
                        index: 90
                        elements:
                          value:
                            base: {path: 'Extension.value[x]'}
                            short: Optical activity type
                            choices: [valueCodeableConcept]
                            index: 92
                          valueCodeableConcept:
                            base: {path: 'Extension.value[x]'}
                            type: CodeableConcept
                            short: Optical activity type
                            choiceOf: value
                            index: 93
                    molecularFormula:
                      match: {url: null}
                      schema:
                        short: Molecular formula
                        isModifier: false
                        index: 94
                        elements:
                          value:
                            base: {path: 'Extension.value[x]'}
                            short: Molecular formula
                            choices: [valueString]
                            index: 96
                          valueString:
                            base: {path: 'Extension.value[x]'}
                            type: string
                            short: Molecular formula
                            choiceOf: value
                            index: 97
                    molecularFormulaByMoiety:
                      match: {url: null}
                      schema:
                        short: Specified per moiety according to the Hill system, i.e. first C, then H, then alphabetical, each moiety separated by a dot
                        isModifier: false
                        index: 98
                        elements:
                          value:
                            base: {path: 'Extension.value[x]'}
                            short: Specified per moiety according to the Hill system, i.e. first C, then H, then alphabetical, each moiety separated by a dot
                            choices: [valueString]
                            index: 100
                          valueString:
                            base: {path: 'Extension.value[x]'}
                            type: string
                            short: Specified per moiety according to the Hill system, i.e. first C, then H, then alphabetical, each moiety separated by a dot
                            choiceOf: value
                            index: 101
                    isotope:
                      match: {url: null}
                      schema:
                        short: Applicable for single substances that contain a radionuclide or a non-natural isotopic ratio
                        isModifier: false
                        array: true
                        index: 102
                        extensions:
                          identifier:
                            url: null
                            short: Substance identifier for each non-natural or radioisotope
                            isModifier: false
                            index: 104
                            elements:
                              value:
                                base: {path: 'Extension.value[x]'}
                                short: Substance identifier for each non-natural or radioisotope
                                choices: [valueIdentifier]
                                index: 106
                              valueIdentifier:
                                base: {path: 'Extension.value[x]'}
                                type: Identifier
                                short: Substance identifier for each non-natural or radioisotope
                                choiceOf: value
                                index: 107
                          name:
                            url: null
                            short: Substance name for each non-natural or radioisotope
                            isModifier: false
                            index: 108
                            elements:
                              value:
                                base: {path: 'Extension.value[x]'}
                                short: Substance name for each non-natural or radioisotope
                                choices: [valueCodeableConcept]
                                index: 110
                              valueCodeableConcept:
                                base: {path: 'Extension.value[x]'}
                                type: CodeableConcept
                                short: Substance name for each non-natural or radioisotope
                                choiceOf: value
                                index: 111
                          substitution:
                            url: null
                            short: The type of isotopic substitution present in a single substance
                            isModifier: false
                            index: 112
                            elements:
                              value:
                                base: {path: 'Extension.value[x]'}
                                short: The type of isotopic substitution present in a single substance
                                choices: [valueCodeableConcept]
                                index: 114
                              valueCodeableConcept:
                                base: {path: 'Extension.value[x]'}
                                type: CodeableConcept
                                short: The type of isotopic substitution present in a single substance
                                choiceOf: value
                                index: 115
                          halfLife:
                            url: null
                            short: Half life - for a non-natural nuclide
                            isModifier: false
                            index: 116
                            elements:
                              value:
                                base: {path: 'Extension.value[x]'}
                                short: Half life - for a non-natural nuclide
                                choices: [valueQuantity]
                                index: 118
                              valueQuantity:
                                base: {path: 'Extension.value[x]'}
                                type: Quantity
                                short: Half life - for a non-natural nuclide
                                choiceOf: value
                                index: 119
                          molecularWeight:
                            url: null
                            short: The molecular weight or weight range (for proteins, polymers or nucleic acids)
                            isModifier: false
                            index: 120
                            extensions:
                              method:
                                url: null
                                short: The method by which the molecular weight was determined
                                isModifier: false
                                index: 122
                                elements:
                                  value:
                                    base: {path: 'Extension.value[x]'}
                                    short: The method by which the molecular weight was determined
                                    choices: [valueCodeableConcept]
                                    index: 124
                                  valueCodeableConcept:
                                    base: {path: 'Extension.value[x]'}
                                    type: CodeableConcept
                                    short: The method by which the molecular weight was determined
                                    choiceOf: value
                                    index: 125
                              type:
                                url: null
                                short: Type of molecular weight such as exact, average (also known as. number average), weight average
                                isModifier: false
                                index: 126
                                elements:
                                  value:
                                    base: {path: 'Extension.value[x]'}
                                    short: Type of molecular weight such as exact, average (also known as. number average), weight average
                                    choices: [valueCodeableConcept]
                                    index: 128
                                  valueCodeableConcept:
                                    base: {path: 'Extension.value[x]'}
                                    type: CodeableConcept
                                    short: Type of molecular weight such as exact, average (also known as. number average), weight average
                                    choiceOf: value
                                    index: 129
                              amount:
                                url: null
                                short: Used to capture quantitative values for a variety of elements. If only limits are given, the arithmetic mean would be the average. If only a single definite value for a given element is given, it would be captured in this field
                                isModifier: false
                                index: 130
                                elements:
                                  value:
                                    base: {path: 'Extension.value[x]'}
                                    short: Used to capture quantitative values for a variety of elements. If only limits are given, the arithmetic mean would be the average. If only a single definite value for a given element is given, it would be captured in this field
                                    choices: [valueQuantity]
                                    index: 132
                                  valueQuantity:
                                    base: {path: 'Extension.value[x]'}
                                    type: Quantity
                                    short: Used to capture quantitative values for a variety of elements. If only limits are given, the arithmetic mean would be the average. If only a single definite value for a given element is given, it would be captured in this field
                                    choiceOf: value
                                    index: 133
                            elements:
                              extension:
                                array: true
                                index: 121
                                slicing:
                                  rules: closed
                                  ordered: false
                                  discriminator:
                                  - {path: url, type: value}
                                  min: 0
                                  slices:
                                    method:
                                      match: {url: null}
                                      schema:
                                        short: The method by which the molecular weight was determined
                                        isModifier: false
                                        index: 122
                                        elements:
                                          value:
                                            base: {path: 'Extension.value[x]'}
                                            short: The method by which the molecular weight was determined
                                            choices: [valueCodeableConcept]
                                            index: 124
                                          valueCodeableConcept:
                                            base: {path: 'Extension.value[x]'}
                                            type: CodeableConcept
                                            short: The method by which the molecular weight was determined
                                            choiceOf: value
                                            index: 125
                                    type:
                                      match: {url: null}
                                      schema:
                                        short: Type of molecular weight such as exact, average (also known as. number average), weight average
                                        isModifier: false
                                        index: 126
                                        elements:
                                          value:
                                            base: {path: 'Extension.value[x]'}
                                            short: Type of molecular weight such as exact, average (also known as. number average), weight average
                                            choices: [valueCodeableConcept]
                                            index: 128
                                          valueCodeableConcept:
                                            base: {path: 'Extension.value[x]'}
                                            type: CodeableConcept
                                            short: Type of molecular weight such as exact, average (also known as. number average), weight average
                                            choiceOf: value
                                            index: 129
                                    amount:
                                      match: {url: null}
                                      schema:
                                        short: Used to capture quantitative values for a variety of elements. If only limits are given, the arithmetic mean would be the average. If only a single definite value for a given element is given, it would be captured in this field
                                        isModifier: false
                                        index: 130
                                        elements:
                                          value:
                                            base: {path: 'Extension.value[x]'}
                                            short: Used to capture quantitative values for a variety of elements. If only limits are given, the arithmetic mean would be the average. If only a single definite value for a given element is given, it would be captured in this field
                                            choices: [valueQuantity]
                                            index: 132
                                          valueQuantity:
                                            base: {path: 'Extension.value[x]'}
                                            type: Quantity
                                            short: Used to capture quantitative values for a variety of elements. If only limits are given, the arithmetic mean would be the average. If only a single definite value for a given element is given, it would be captured in this field
                                            choiceOf: value
                                            index: 133
                        elements:
                          extension:
                            array: true
                            index: 103
                            slicing:
                              rules: closed
                              ordered: false
                              discriminator:
                              - {path: url, type: value}
                              min: 0
                              slices:
                                identifier:
                                  match: {url: null}
                                  schema:
                                    short: Substance identifier for each non-natural or radioisotope
                                    isModifier: false
                                    index: 104
                                    elements:
                                      value:
                                        base: {path: 'Extension.value[x]'}
                                        short: Substance identifier for each non-natural or radioisotope
                                        choices: [valueIdentifier]
                                        index: 106
                                      valueIdentifier:
                                        base: {path: 'Extension.value[x]'}
                                        type: Identifier
                                        short: Substance identifier for each non-natural or radioisotope
                                        choiceOf: value
                                        index: 107
                                name:
                                  match: {url: null}
                                  schema:
                                    short: Substance name for each non-natural or radioisotope
                                    isModifier: false
                                    index: 108
                                    elements:
                                      value:
                                        base: {path: 'Extension.value[x]'}
                                        short: Substance name for each non-natural or radioisotope
                                        choices: [valueCodeableConcept]
                                        index: 110
                                      valueCodeableConcept:
                                        base: {path: 'Extension.value[x]'}
                                        type: CodeableConcept
                                        short: Substance name for each non-natural or radioisotope
                                        choiceOf: value
                                        index: 111
                                substitution:
                                  match: {url: null}
                                  schema:
                                    short: The type of isotopic substitution present in a single substance
                                    isModifier: false
                                    index: 112
                                    elements:
                                      value:
                                        base: {path: 'Extension.value[x]'}
                                        short: The type of isotopic substitution present in a single substance
                                        choices: [valueCodeableConcept]
                                        index: 114
                                      valueCodeableConcept:
                                        base: {path: 'Extension.value[x]'}
                                        type: CodeableConcept
                                        short: The type of isotopic substitution present in a single substance
                                        choiceOf: value
                                        index: 115
                                halfLife:
                                  match: {url: null}
                                  schema:
                                    short: Half life - for a non-natural nuclide
                                    isModifier: false
                                    index: 116
                                    elements:
                                      value:
                                        base: {path: 'Extension.value[x]'}
                                        short: Half life - for a non-natural nuclide
                                        choices: [valueQuantity]
                                        index: 118
                                      valueQuantity:
                                        base: {path: 'Extension.value[x]'}
                                        type: Quantity
                                        short: Half life - for a non-natural nuclide
                                        choiceOf: value
                                        index: 119
                                molecularWeight:
                                  match: {url: null}
                                  schema:
                                    short: The molecular weight or weight range (for proteins, polymers or nucleic acids)
                                    isModifier: false
                                    index: 120
                                    extensions:
                                      method:
                                        url: null
                                        short: The method by which the molecular weight was determined
                                        isModifier: false
                                        index: 122
                                        elements:
                                          value:
                                            base: {path: 'Extension.value[x]'}
                                            short: The method by which the molecular weight was determined
                                            choices: [valueCodeableConcept]
                                            index: 124
                                          valueCodeableConcept:
                                            base: {path: 'Extension.value[x]'}
                                            type: CodeableConcept
                                            short: The method by which the molecular weight was determined
                                            choiceOf: value
                                            index: 125
                                      type:
                                        url: null
                                        short: Type of molecular weight such as exact, average (also known as. number average), weight average
                                        isModifier: false
                                        index: 126
                                        elements:
                                          value:
                                            base: {path: 'Extension.value[x]'}
                                            short: Type of molecular weight such as exact, average (also known as. number average), weight average
                                            choices: [valueCodeableConcept]
                                            index: 128
                                          valueCodeableConcept:
                                            base: {path: 'Extension.value[x]'}
                                            type: CodeableConcept
                                            short: Type of molecular weight such as exact, average (also known as. number average), weight average
                                            choiceOf: value
                                            index: 129
                                      amount:
                                        url: null
                                        short: Used to capture quantitative values for a variety of elements. If only limits are given, the arithmetic mean would be the average. If only a single definite value for a given element is given, it would be captured in this field
                                        isModifier: false
                                        index: 130
                                        elements:
                                          value:
                                            base: {path: 'Extension.value[x]'}
                                            short: Used to capture quantitative values for a variety of elements. If only limits are given, the arithmetic mean would be the average. If only a single definite value for a given element is given, it would be captured in this field
                                            choices: [valueQuantity]
                                            index: 132
                                          valueQuantity:
                                            base: {path: 'Extension.value[x]'}
                                            type: Quantity
                                            short: Used to capture quantitative values for a variety of elements. If only limits are given, the arithmetic mean would be the average. If only a single definite value for a given element is given, it would be captured in this field
                                            choiceOf: value
                                            index: 133
                                    elements:
                                      extension:
                                        array: true
                                        index: 121
                                        slicing:
                                          rules: closed
                                          ordered: false
                                          discriminator:
                                          - {path: url, type: value}
                                          min: 0
                                          slices:
                                            method:
                                              match: {url: null}
                                              schema:
                                                short: The method by which the molecular weight was determined
                                                isModifier: false
                                                index: 122
                                                elements:
                                                  value:
                                                    base: {path: 'Extension.value[x]'}
                                                    short: The method by which the molecular weight was determined
                                                    choices: [valueCodeableConcept]
                                                    index: 124
                                                  valueCodeableConcept:
                                                    base: {path: 'Extension.value[x]'}
                                                    type: CodeableConcept
                                                    short: The method by which the molecular weight was determined
                                                    choiceOf: value
                                                    index: 125
                                            type:
                                              match: {url: null}
                                              schema:
                                                short: Type of molecular weight such as exact, average (also known as. number average), weight average
                                                isModifier: false
                                                index: 126
                                                elements:
                                                  value:
                                                    base: {path: 'Extension.value[x]'}
                                                    short: Type of molecular weight such as exact, average (also known as. number average), weight average
                                                    choices: [valueCodeableConcept]
                                                    index: 128
                                                  valueCodeableConcept:
                                                    base: {path: 'Extension.value[x]'}
                                                    type: CodeableConcept
                                                    short: Type of molecular weight such as exact, average (also known as. number average), weight average
                                                    choiceOf: value
                                                    index: 129
                                            amount:
                                              match: {url: null}
                                              schema:
                                                short: Used to capture quantitative values for a variety of elements. If only limits are given, the arithmetic mean would be the average. If only a single definite value for a given element is given, it would be captured in this field
                                                isModifier: false
                                                index: 130
                                                elements:
                                                  value:
                                                    base: {path: 'Extension.value[x]'}
                                                    short: Used to capture quantitative values for a variety of elements. If only limits are given, the arithmetic mean would be the average. If only a single definite value for a given element is given, it would be captured in this field
                                                    choices: [valueQuantity]
                                                    index: 132
                                                  valueQuantity:
                                                    base: {path: 'Extension.value[x]'}
                                                    type: Quantity
                                                    short: Used to capture quantitative values for a variety of elements. If only limits are given, the arithmetic mean would be the average. If only a single definite value for a given element is given, it would be captured in this field
                                                    choiceOf: value
                                                    index: 133
                    molecularWeight:
                      match: {url: null}
                      schema:
                        short: The molecular weight or weight range (for proteins, polymers or nucleic acids)
                        isModifier: false
                        index: 134
                        extensions:
                          _datatype:
                            url: http://hl7.org/fhir/StructureDefinition/_datatype
                            type: Extension
                            short: Data type name for SubstanceSpecification.structure.molecularWeight from FHIR R4
                            index: 135
                            elements:
                              value:
                                base: {path: 'Extension.value[x]'}
                                pattern: {type: string, value: SubstanceSpecification.structure.isotope.molecularWeight}
                                choices: [valueString]
                                type: string
                                index: 137
                              valueString:
                                type: string
                                pattern: {type: string, value: SubstanceSpecification.structure.isotope.molecularWeight}
                                base: {path: 'Extension.value[x]'}
                                choiceOf: value
                                index: 138
                            required: [value, valueString]
                        elements:
                          extension:
                            type: Extension
                            short: Data type name for SubstanceSpecification.structure.molecularWeight from FHIR R4
                            url: http://hl7.org/fhir/StructureDefinition/_datatype
                            index: 135
                            slicing:
                              slices:
                                _datatype:
                                  match: {}
                                  schema:
                                    type: Extension
                                    short: Data type name for SubstanceSpecification.structure.molecularWeight from FHIR R4
                                    url: http://hl7.org/fhir/StructureDefinition/_datatype
                                    index: 135
                                    elements:
                                      value:
                                        base: {path: 'Extension.value[x]'}
                                        pattern: {type: string, value: SubstanceSpecification.structure.isotope.molecularWeight}
                                        choices: [valueString]
                                        type: string
                                        index: 137
                                      valueString:
                                        type: string
                                        pattern: {type: string, value: SubstanceSpecification.structure.isotope.molecularWeight}
                                        base: {path: 'Extension.value[x]'}
                                        choiceOf: value
                                        index: 138
                                    required: [value, valueString]
                    source:
                      match: {url: null}
                      schema:
                        short: Supporting literature
                        isModifier: false
                        array: true
                        index: 139
                        elements:
                          value:
                            base: {path: 'Extension.value[x]'}
                            short: Supporting literature
                            choices: [valueReference]
                            index: 141
                          valueReference:
                            base: {path: 'Extension.value[x]'}
                            type: Reference
                            short: Supporting literature
                            choiceOf: value
                            refers: ['http://hl7.org/fhir/StructureDefinition/DocumentReference']
                            index: 142
                    representation:
                      match: {url: null}
                      schema:
                        short: Molecular structural representation
                        isModifier: false
                        array: true
                        index: 143
                        extensions:
                          type:
                            url: null
                            short: The type of structure (e.g. Full, Partial, Representative)
                            isModifier: false
                            index: 145
                            elements:
                              value:
                                base: {path: 'Extension.value[x]'}
                                short: The type of structure (e.g. Full, Partial, Representative)
                                choices: [valueCodeableConcept]
                                index: 147
                              valueCodeableConcept:
                                base: {path: 'Extension.value[x]'}
                                type: CodeableConcept
                                short: The type of structure (e.g. Full, Partial, Representative)
                                choiceOf: value
                                index: 148
                          representation:
                            url: null
                            short: The structural representation as text string in a format e.g. InChI, SMILES, MOLFILE, CDX
                            isModifier: false
                            index: 149
                            elements:
                              value:
                                base: {path: 'Extension.value[x]'}
                                short: The structural representation as text string in a format e.g. InChI, SMILES, MOLFILE, CDX
                                choices: [valueString]
                                index: 151
                              valueString:
                                base: {path: 'Extension.value[x]'}
                                type: string
                                short: The structural representation as text string in a format e.g. InChI, SMILES, MOLFILE, CDX
                                choiceOf: value
                                index: 152
                          attachment:
                            url: null
                            short: An attached file with the structural representation
                            isModifier: false
                            index: 153
                            elements:
                              value:
                                base: {path: 'Extension.value[x]'}
                                short: An attached file with the structural representation
                                choices: [valueAttachment]
                                index: 155
                              valueAttachment:
                                base: {path: 'Extension.value[x]'}
                                type: Attachment
                                short: An attached file with the structural representation
                                choiceOf: value
                                index: 156
                        elements:
                          extension:
                            array: true
                            index: 144
                            slicing:
                              rules: closed
                              ordered: false
                              discriminator:
                              - {path: url, type: value}
                              min: 0
                              slices:
                                type:
                                  match: {url: null}
                                  schema:
                                    short: The type of structure (e.g. Full, Partial, Representative)
                                    isModifier: false
                                    index: 145
                                    elements:
                                      value:
                                        base: {path: 'Extension.value[x]'}
                                        short: The type of structure (e.g. Full, Partial, Representative)
                                        choices: [valueCodeableConcept]
                                        index: 147
                                      valueCodeableConcept:
                                        base: {path: 'Extension.value[x]'}
                                        type: CodeableConcept
                                        short: The type of structure (e.g. Full, Partial, Representative)
                                        choiceOf: value
                                        index: 148
                                representation:
                                  match: {url: null}
                                  schema:
                                    short: The structural representation as text string in a format e.g. InChI, SMILES, MOLFILE, CDX
                                    isModifier: false
                                    index: 149
                                    elements:
                                      value:
                                        base: {path: 'Extension.value[x]'}
                                        short: The structural representation as text string in a format e.g. InChI, SMILES, MOLFILE, CDX
                                        choices: [valueString]
                                        index: 151
                                      valueString:
                                        base: {path: 'Extension.value[x]'}
                                        type: string
                                        short: The structural representation as text string in a format e.g. InChI, SMILES, MOLFILE, CDX
                                        choiceOf: value
                                        index: 152
                                attachment:
                                  match: {url: null}
                                  schema:
                                    short: An attached file with the structural representation
                                    isModifier: false
                                    index: 153
                                    elements:
                                      value:
                                        base: {path: 'Extension.value[x]'}
                                        short: An attached file with the structural representation
                                        choices: [valueAttachment]
                                        index: 155
                                      valueAttachment:
                                        base: {path: 'Extension.value[x]'}
                                        type: Attachment
                                        short: An attached file with the structural representation
                                        choiceOf: value
                                        index: 156
        status:
          match: {url: null}
          schema:
            short: Status of substance within the catalogue e.g. approved
            isModifier: false
            index: 5
            elements:
              value:
                base: {path: 'Extension.value[x]'}
                short: Status of substance within the catalogue e.g. approved
                choices: [valueCodeableConcept]
                index: 7
              valueCodeableConcept:
                base: {path: 'Extension.value[x]'}
                type: CodeableConcept
                short: Status of substance within the catalogue e.g. approved
                choiceOf: value
                index: 8
        comment:
          match: {url: null}
          schema:
            short: Textual comment about this record of a substance
            isModifier: false
            index: 21
            elements:
              value:
                base: {path: 'Extension.value[x]'}
                short: Textual comment about this record of a substance
                choices: [valueString]
                index: 23
              valueString:
                base: {path: 'Extension.value[x]'}
                type: string
                short: Textual comment about this record of a substance
                choiceOf: value
                index: 24
        molecularWeight:
          match: {url: null}
          schema:
            short: The molecular weight or weight range (for proteins, polymers or nucleic acids)
            isModifier: false
            array: true
            index: 215
            extensions:
              _datatype:
                url: http://hl7.org/fhir/StructureDefinition/_datatype
                type: Extension
                short: Data type name for SubstanceSpecification.molecularWeight from FHIR R4
                index: 216
                elements:
                  value:
                    base: {path: 'Extension.value[x]'}
                    pattern: {type: string, value: SubstanceSpecification.structure.isotope.molecularWeight}
                    choices: [valueString]
                    type: string
                    index: 218
                  valueString:
                    type: string
                    pattern: {type: string, value: SubstanceSpecification.structure.isotope.molecularWeight}
                    base: {path: 'Extension.value[x]'}
                    choiceOf: value
                    index: 219
                required: [value, valueString]
            elements:
              extension:
                type: Extension
                short: Data type name for SubstanceSpecification.molecularWeight from FHIR R4
                url: http://hl7.org/fhir/StructureDefinition/_datatype
                index: 216
                slicing:
                  slices:
                    _datatype:
                      match: {}
                      schema:
                        type: Extension
                        short: Data type name for SubstanceSpecification.molecularWeight from FHIR R4
                        url: http://hl7.org/fhir/StructureDefinition/_datatype
                        index: 216
                        elements:
                          value:
                            base: {path: 'Extension.value[x]'}
                            pattern: {type: string, value: SubstanceSpecification.structure.isotope.molecularWeight}
                            choices: [valueString]
                            type: string
                            index: 218
                          valueString:
                            type: string
                            pattern: {type: string, value: SubstanceSpecification.structure.isotope.molecularWeight}
                            base: {path: 'Extension.value[x]'}
                            choiceOf: value
                            index: 219
                        required: [value, valueString]
        polymer:
          match: {url: null}
          schema:
            short: Data items specific to polymers
            isModifier: false
            index: 258
            elements:
              value:
                base: {path: 'Extension.value[x]'}
                short: Data items specific to polymers
                choices: [valueReference]
                index: 260
              valueReference:
                base: {path: 'Extension.value[x]'}
                type: Reference
                short: Data items specific to polymers
                choiceOf: value
                refers: ['http://hl7.org/fhir/StructureDefinition/SubstancePolymer']
                index: 261
        protein:
          match: {url: null}
          schema:
            short: Data items specific to proteins
            isModifier: false
            index: 262
            elements:
              value:
                base: {path: 'Extension.value[x]'}
                short: Data items specific to proteins
                choices: [valueReference]
                index: 264
              valueReference:
                base: {path: 'Extension.value[x]'}
                type: Reference
                short: Data items specific to proteins
                choiceOf: value
                refers: ['http://hl7.org/fhir/StructureDefinition/SubstanceProtein']
                index: 265
        domain:
          match: {url: null}
          schema:
            short: If the substance applies to only human or veterinary use
            isModifier: false
            index: 9
            elements:
              value:
                base: {path: 'Extension.value[x]'}
                short: If the substance applies to only human or veterinary use
                choices: [valueCodeableConcept]
                index: 11
              valueCodeableConcept:
                base: {path: 'Extension.value[x]'}
                type: CodeableConcept
                short: If the substance applies to only human or veterinary use
                choiceOf: value
                index: 12
        sourceMaterial:
          match: {url: null}
          schema:
            short: Material or taxonomic/anatomical source for the substance
            isModifier: false
            index: 266
            elements:
              value:
                base: {path: 'Extension.value[x]'}
                short: Material or taxonomic/anatomical source for the substance
                choices: [valueReference]
                index: 268
              valueReference:
                base: {path: 'Extension.value[x]'}
                type: Reference
                short: Material or taxonomic/anatomical source for the substance
                choiceOf: value
                refers: ['http://hl7.org/fhir/StructureDefinition/SubstanceSourceMaterial']
                index: 269
  url:
    pattern: {type: uri, value: 'http://hl7.org/fhir/4.0/StructureDefinition/extension-SubstanceSpecification'}
    type: uri
    index: 270
package_version: 0.0.1-snapshot-1
extensions:
  description:
    url: null
    short: Textual description of the substance
    isModifier: false
    index: 13
    elements:
      value:
        base: {path: 'Extension.value[x]'}
        short: Textual description of the substance
        choices: [valueString]
        index: 15
      valueString:
        base: {path: 'Extension.value[x]'}
        type: string
        short: Textual description of the substance
        choiceOf: value
        index: 16
  property:
    url: null
    short: General specifications for this substance, including how it is related to other substances
    isModifier: false
    array: true
    index: 56
    extensions:
      category:
        url: null
        short: A category for this property, e.g. Physical, Chemical, Enzymatic
        isModifier: false
        index: 58
        elements:
          value:
            base: {path: 'Extension.value[x]'}
            short: A category for this property, e.g. Physical, Chemical, Enzymatic
            choices: [valueCodeableConcept]
            index: 60
          valueCodeableConcept:
            base: {path: 'Extension.value[x]'}
            type: CodeableConcept
            short: A category for this property, e.g. Physical, Chemical, Enzymatic
            choiceOf: value
            index: 61
      code:
        url: null
        short: Property type e.g. viscosity, pH, isoelectric point
        isModifier: false
        index: 62
        elements:
          value:
            base: {path: 'Extension.value[x]'}
            short: Property type e.g. viscosity, pH, isoelectric point
            choices: [valueCodeableConcept]
            index: 64
          valueCodeableConcept:
            base: {path: 'Extension.value[x]'}
            type: CodeableConcept
            short: Property type e.g. viscosity, pH, isoelectric point
            choiceOf: value
            index: 65
      parameters:
        url: null
        short: 'Parameters that were used in the measurement of a property (e.g. for viscosity: measured at 20C with a pH of 7.1)'
        isModifier: false
        index: 66
        elements:
          value:
            base: {path: 'Extension.value[x]'}
            short: 'Parameters that were used in the measurement of a property (e.g. for viscosity: measured at 20C with a pH of 7.1)'
            choices: [valueString]
            index: 68
          valueString:
            base: {path: 'Extension.value[x]'}
            type: string
            short: 'Parameters that were used in the measurement of a property (e.g. for viscosity: measured at 20C with a pH of 7.1)'
            choiceOf: value
            index: 69
      definingSubstance[x]:
        url: null
        short: 'A substance upon which a defining property depends (e.g. for solubility: in water, in alcohol)'
        isModifier: false
        index: 70
        elements:
          value:
            base: {path: 'Extension.value[x]'}
            short: 'A substance upon which a defining property depends (e.g. for solubility: in water, in alcohol)'
            choices: [valueReference, valueCodeableConcept]
            index: 72
          valueReference:
            base: {path: 'Extension.value[x]'}
            type: Reference
            short: 'A substance upon which a defining property depends (e.g. for solubility: in water, in alcohol)'
            choiceOf: value
            refers: ['http://hl7.org/fhir/StructureDefinition/Substance', 'http://hl7.org/fhir/StructureDefinition/SubstanceSpecification']
            index: 73
          valueCodeableConcept:
            base: {path: 'Extension.value[x]'}
            type: CodeableConcept
            short: 'A substance upon which a defining property depends (e.g. for solubility: in water, in alcohol)'
            choiceOf: value
            index: 74
      amount[x]:
        url: null
        short: Quantitative value for this property
        isModifier: false
        index: 75
        elements:
          value:
            base: {path: 'Extension.value[x]'}
            short: Quantitative value for this property
            choices: [valueQuantity, valueString]
            index: 77
          valueQuantity:
            base: {path: 'Extension.value[x]'}
            type: Quantity
            short: Quantitative value for this property
            choiceOf: value
            index: 78
          valueString:
            base: {path: 'Extension.value[x]'}
            type: string
            short: Quantitative value for this property
            choiceOf: value
            index: 79
    elements:
      extension:
        array: true
        index: 57
        slicing:
          rules: closed
          ordered: false
          discriminator:
          - {path: url, type: value}
          min: 0
          slices:
            category:
              match: {url: null}
              schema:
                short: A category for this property, e.g. Physical, Chemical, Enzymatic
                isModifier: false
                index: 58
                elements:
                  value:
                    base: {path: 'Extension.value[x]'}
                    short: A category for this property, e.g. Physical, Chemical, Enzymatic
                    choices: [valueCodeableConcept]
                    index: 60
                  valueCodeableConcept:
                    base: {path: 'Extension.value[x]'}
                    type: CodeableConcept
                    short: A category for this property, e.g. Physical, Chemical, Enzymatic
                    choiceOf: value
                    index: 61
            code:
              match: {url: null}
              schema:
                short: Property type e.g. viscosity, pH, isoelectric point
                isModifier: false
                index: 62
                elements:
                  value:
                    base: {path: 'Extension.value[x]'}
                    short: Property type e.g. viscosity, pH, isoelectric point
                    choices: [valueCodeableConcept]
                    index: 64
                  valueCodeableConcept:
                    base: {path: 'Extension.value[x]'}
                    type: CodeableConcept
                    short: Property type e.g. viscosity, pH, isoelectric point
                    choiceOf: value
                    index: 65
            parameters:
              match: {url: null}
              schema:
                short: 'Parameters that were used in the measurement of a property (e.g. for viscosity: measured at 20C with a pH of 7.1)'
                isModifier: false
                index: 66
                elements:
                  value:
                    base: {path: 'Extension.value[x]'}
                    short: 'Parameters that were used in the measurement of a property (e.g. for viscosity: measured at 20C with a pH of 7.1)'
                    choices: [valueString]
                    index: 68
                  valueString:
                    base: {path: 'Extension.value[x]'}
                    type: string
                    short: 'Parameters that were used in the measurement of a property (e.g. for viscosity: measured at 20C with a pH of 7.1)'
                    choiceOf: value
                    index: 69
            definingSubstance[x]:
              match: {url: null}
              schema:
                short: 'A substance upon which a defining property depends (e.g. for solubility: in water, in alcohol)'
                isModifier: false
                index: 70
                elements:
                  value:
                    base: {path: 'Extension.value[x]'}
                    short: 'A substance upon which a defining property depends (e.g. for solubility: in water, in alcohol)'
                    choices: [valueReference, valueCodeableConcept]
                    index: 72
                  valueReference:
                    base: {path: 'Extension.value[x]'}
                    type: Reference
                    short: 'A substance upon which a defining property depends (e.g. for solubility: in water, in alcohol)'
                    choiceOf: value
                    refers: ['http://hl7.org/fhir/StructureDefinition/Substance', 'http://hl7.org/fhir/StructureDefinition/SubstanceSpecification']
                    index: 73
                  valueCodeableConcept:
                    base: {path: 'Extension.value[x]'}
                    type: CodeableConcept
                    short: 'A substance upon which a defining property depends (e.g. for solubility: in water, in alcohol)'
                    choiceOf: value
                    index: 74
            amount[x]:
              match: {url: null}
              schema:
                short: Quantitative value for this property
                isModifier: false
                index: 75
                elements:
                  value:
                    base: {path: 'Extension.value[x]'}
                    short: Quantitative value for this property
                    choices: [valueQuantity, valueString]
                    index: 77
                  valueQuantity:
                    base: {path: 'Extension.value[x]'}
                    type: Quantity
                    short: Quantitative value for this property
                    choiceOf: value
                    index: 78
                  valueString:
                    base: {path: 'Extension.value[x]'}
                    type: string
                    short: Quantitative value for this property
                    choiceOf: value
                    index: 79
  name:
    url: null
    short: Names applicable to this substance
    isModifier: false
    array: true
    index: 157
    extensions:
      official:
        url: null
        short: Details of the official nature of this name
        isModifier: false
        array: true
        index: 197
        extensions:
          authority:
            url: null
            short: Which authority uses this official name
            isModifier: false
            index: 199
            elements:
              value:
                base: {path: 'Extension.value[x]'}
                short: Which authority uses this official name
                choices: [valueCodeableConcept]
                index: 201
              valueCodeableConcept:
                base: {path: 'Extension.value[x]'}
                type: CodeableConcept
                short: Which authority uses this official name
                choiceOf: value
                index: 202
          status:
            url: null
            short: The status of the official name
            isModifier: false
            index: 203
            elements:
              value:
                base: {path: 'Extension.value[x]'}
                short: The status of the official name
                choices: [valueCodeableConcept]
                index: 205
              valueCodeableConcept:
                base: {path: 'Extension.value[x]'}
                type: CodeableConcept
                short: The status of the official name
                choiceOf: value
                index: 206
          date:
            url: null
            short: Date of official name change
            isModifier: false
            index: 207
            elements:
              value:
                base: {path: 'Extension.value[x]'}
                short: Date of official name change
                choices: [valueDateTime]
                index: 209
              valueDateTime:
                base: {path: 'Extension.value[x]'}
                type: dateTime
                short: Date of official name change
                choiceOf: value
                index: 210
        elements:
          extension:
            array: true
            index: 198
            slicing:
              rules: closed
              ordered: false
              discriminator:
              - {path: url, type: value}
              min: 0
              slices:
                authority:
                  match: {url: null}
                  schema:
                    short: Which authority uses this official name
                    isModifier: false
                    index: 199
                    elements:
                      value:
                        base: {path: 'Extension.value[x]'}
                        short: Which authority uses this official name
                        choices: [valueCodeableConcept]
                        index: 201
                      valueCodeableConcept:
                        base: {path: 'Extension.value[x]'}
                        type: CodeableConcept
                        short: Which authority uses this official name
                        choiceOf: value
                        index: 202
                status:
                  match: {url: null}
                  schema:
                    short: The status of the official name
                    isModifier: false
                    index: 203
                    elements:
                      value:
                        base: {path: 'Extension.value[x]'}
                        short: The status of the official name
                        choices: [valueCodeableConcept]
                        index: 205
                      valueCodeableConcept:
                        base: {path: 'Extension.value[x]'}
                        type: CodeableConcept
                        short: The status of the official name
                        choiceOf: value
                        index: 206
                date:
                  match: {url: null}
                  schema:
                    short: Date of official name change
                    isModifier: false
                    index: 207
                    elements:
                      value:
                        base: {path: 'Extension.value[x]'}
                        short: Date of official name change
                        choices: [valueDateTime]
                        index: 209
                      valueDateTime:
                        base: {path: 'Extension.value[x]'}
                        type: dateTime
                        short: Date of official name change
                        choiceOf: value
                        index: 210
      jurisdiction:
        url: null
        short: The jurisdiction where this name applies
        isModifier: false
        array: true
        index: 183
        elements:
          value:
            base: {path: 'Extension.value[x]'}
            short: The jurisdiction where this name applies
            choices: [valueCodeableConcept]
            index: 185
          valueCodeableConcept:
            base: {path: 'Extension.value[x]'}
            type: CodeableConcept
            short: The jurisdiction where this name applies
            choiceOf: value
            index: 186
      name:
        url: null
        short: The actual name
        isModifier: false
        _required: true
        index: 159
        elements:
          value:
            base: {path: 'Extension.value[x]'}
            short: The actual name
            choices: [valueString]
            index: 161
          valueString:
            base: {path: 'Extension.value[x]'}
            type: string
            short: The actual name
            choiceOf: value
            index: 162
      type:
        url: null
        short: Name type
        isModifier: false
        index: 163
        elements:
          value:
            base: {path: 'Extension.value[x]'}
            short: Name type
            choices: [valueCodeableConcept]
            index: 165
          valueCodeableConcept:
            base: {path: 'Extension.value[x]'}
            type: CodeableConcept
            short: Name type
            choiceOf: value
            index: 166
      source:
        url: null
        short: Supporting literature
        isModifier: false
        array: true
        index: 211
        elements:
          value:
            base: {path: 'Extension.value[x]'}
            short: Supporting literature
            choices: [valueReference]
            index: 213
          valueReference:
            base: {path: 'Extension.value[x]'}
            type: Reference
            short: Supporting literature
            choiceOf: value
            refers: ['http://hl7.org/fhir/StructureDefinition/DocumentReference']
            index: 214
      status:
        url: null
        short: The status of the name
        isModifier: false
        index: 167
        elements:
          value:
            base: {path: 'Extension.value[x]'}
            short: The status of the name
            choices: [valueCodeableConcept]
            index: 169
          valueCodeableConcept:
            base: {path: 'Extension.value[x]'}
            type: CodeableConcept
            short: The status of the name
            choiceOf: value
            index: 170
      language:
        url: null
        short: Language of the name
        isModifier: false
        array: true
        index: 175
        elements:
          value:
            base: {path: 'Extension.value[x]'}
            short: Language of the name
            choices: [valueCodeableConcept]
            index: 177
          valueCodeableConcept:
            base: {path: 'Extension.value[x]'}
            type: CodeableConcept
            short: Language of the name
            choiceOf: value
            index: 178
      synonym:
        url: null
        short: A synonym of this name
        isModifier: false
        array: true
        index: 187
        extensions:
          _datatype:
            url: http://hl7.org/fhir/StructureDefinition/_datatype
            type: Extension
            short: Data type name for SubstanceSpecification.name.synonym from FHIR R4
            index: 188
            elements:
              value:
                base: {path: 'Extension.value[x]'}
                pattern: {type: string, value: SubstanceSpecification.name}
                choices: [valueString]
                type: string
                index: 190
              valueString:
                type: string
                pattern: {type: string, value: SubstanceSpecification.name}
                base: {path: 'Extension.value[x]'}
                choiceOf: value
                index: 191
            required: [value, valueString]
        elements:
          extension:
            type: Extension
            short: Data type name for SubstanceSpecification.name.synonym from FHIR R4
            url: http://hl7.org/fhir/StructureDefinition/_datatype
            index: 188
            slicing:
              slices:
                _datatype:
                  match: {}
                  schema:
                    type: Extension
                    short: Data type name for SubstanceSpecification.name.synonym from FHIR R4
                    url: http://hl7.org/fhir/StructureDefinition/_datatype
                    index: 188
                    elements:
                      value:
                        base: {path: 'Extension.value[x]'}
                        pattern: {type: string, value: SubstanceSpecification.name}
                        choices: [valueString]
                        type: string
                        index: 190
                      valueString:
                        type: string
                        pattern: {type: string, value: SubstanceSpecification.name}
                        base: {path: 'Extension.value[x]'}
                        choiceOf: value
                        index: 191
                    required: [value, valueString]
      translation:
        url: null
        short: A translation for this name
        isModifier: false
        array: true
        index: 192
        extensions:
          _datatype:
            url: http://hl7.org/fhir/StructureDefinition/_datatype
            type: Extension
            short: Data type name for SubstanceSpecification.name.translation from FHIR R4
            index: 193
            elements:
              value:
                base: {path: 'Extension.value[x]'}
                pattern: {type: string, value: SubstanceSpecification.name}
                choices: [valueString]
                type: string
                index: 195
              valueString:
                type: string
                pattern: {type: string, value: SubstanceSpecification.name}
                base: {path: 'Extension.value[x]'}
                choiceOf: value
                index: 196
            required: [value, valueString]
        elements:
          extension:
            type: Extension
            short: Data type name for SubstanceSpecification.name.translation from FHIR R4
            url: http://hl7.org/fhir/StructureDefinition/_datatype
            index: 193
            slicing:
              slices:
                _datatype:
                  match: {}
                  schema:
                    type: Extension
                    short: Data type name for SubstanceSpecification.name.translation from FHIR R4
                    url: http://hl7.org/fhir/StructureDefinition/_datatype
                    index: 193
                    elements:
                      value:
                        base: {path: 'Extension.value[x]'}
                        pattern: {type: string, value: SubstanceSpecification.name}
                        choices: [valueString]
                        type: string
                        index: 195
                      valueString:
                        type: string
                        pattern: {type: string, value: SubstanceSpecification.name}
                        base: {path: 'Extension.value[x]'}
                        choiceOf: value
                        index: 196
                    required: [value, valueString]
      preferred:
        url: null
        short: If this is the preferred name for this substance
        isModifier: false
        index: 171
        elements:
          value:
            base: {path: 'Extension.value[x]'}
            short: If this is the preferred name for this substance
            choices: [valueBoolean]
            index: 173
          valueBoolean:
            base: {path: 'Extension.value[x]'}
            type: boolean
            short: If this is the preferred name for this substance
            choiceOf: value
            index: 174
      domain:
        url: null
        short: The use context of this name for example if there is a different name a drug active ingredient as opposed to a food colour additive
        isModifier: false
        array: true
        index: 179
        elements:
          value:
            base: {path: 'Extension.value[x]'}
            short: The use context of this name for example if there is a different name a drug active ingredient as opposed to a food colour additive
            choices: [valueCodeableConcept]
            index: 181
          valueCodeableConcept:
            base: {path: 'Extension.value[x]'}
            type: CodeableConcept
            short: The use context of this name for example if there is a different name a drug active ingredient as opposed to a food colour additive
            choiceOf: value
            index: 182
    elements:
      extension:
        array: true
        min: 1
        index: 158
        slicing:
          rules: closed
          ordered: false
          discriminator:
          - {path: url, type: value}
          min: 1
          slices:
            official:
              match: {url: null}
              schema:
                short: Details of the official nature of this name
                isModifier: false
                array: true
                index: 197
                extensions:
                  authority:
                    url: null
                    short: Which authority uses this official name
                    isModifier: false
                    index: 199
                    elements:
                      value:
                        base: {path: 'Extension.value[x]'}
                        short: Which authority uses this official name
                        choices: [valueCodeableConcept]
                        index: 201
                      valueCodeableConcept:
                        base: {path: 'Extension.value[x]'}
                        type: CodeableConcept
                        short: Which authority uses this official name
                        choiceOf: value
                        index: 202
                  status:
                    url: null
                    short: The status of the official name
                    isModifier: false
                    index: 203
                    elements:
                      value:
                        base: {path: 'Extension.value[x]'}
                        short: The status of the official name
                        choices: [valueCodeableConcept]
                        index: 205
                      valueCodeableConcept:
                        base: {path: 'Extension.value[x]'}
                        type: CodeableConcept
                        short: The status of the official name
                        choiceOf: value
                        index: 206
                  date:
                    url: null
                    short: Date of official name change
                    isModifier: false
                    index: 207
                    elements:
                      value:
                        base: {path: 'Extension.value[x]'}
                        short: Date of official name change
                        choices: [valueDateTime]
                        index: 209
                      valueDateTime:
                        base: {path: 'Extension.value[x]'}
                        type: dateTime
                        short: Date of official name change
                        choiceOf: value
                        index: 210
                elements:
                  extension:
                    array: true
                    index: 198
                    slicing:
                      rules: closed
                      ordered: false
                      discriminator:
                      - {path: url, type: value}
                      min: 0
                      slices:
                        authority:
                          match: {url: null}
                          schema:
                            short: Which authority uses this official name
                            isModifier: false
                            index: 199
                            elements:
                              value:
                                base: {path: 'Extension.value[x]'}
                                short: Which authority uses this official name
                                choices: [valueCodeableConcept]
                                index: 201
                              valueCodeableConcept:
                                base: {path: 'Extension.value[x]'}
                                type: CodeableConcept
                                short: Which authority uses this official name
                                choiceOf: value
                                index: 202
                        status:
                          match: {url: null}
                          schema:
                            short: The status of the official name
                            isModifier: false
                            index: 203
                            elements:
                              value:
                                base: {path: 'Extension.value[x]'}
                                short: The status of the official name
                                choices: [valueCodeableConcept]
                                index: 205
                              valueCodeableConcept:
                                base: {path: 'Extension.value[x]'}
                                type: CodeableConcept
                                short: The status of the official name
                                choiceOf: value
                                index: 206
                        date:
                          match: {url: null}
                          schema:
                            short: Date of official name change
                            isModifier: false
                            index: 207
                            elements:
                              value:
                                base: {path: 'Extension.value[x]'}
                                short: Date of official name change
                                choices: [valueDateTime]
                                index: 209
                              valueDateTime:
                                base: {path: 'Extension.value[x]'}
                                type: dateTime
                                short: Date of official name change
                                choiceOf: value
                                index: 210
            jurisdiction:
              match: {url: null}
              schema:
                short: The jurisdiction where this name applies
                isModifier: false
                array: true
                index: 183
                elements:
                  value:
                    base: {path: 'Extension.value[x]'}
                    short: The jurisdiction where this name applies
                    choices: [valueCodeableConcept]
                    index: 185
                  valueCodeableConcept:
                    base: {path: 'Extension.value[x]'}
                    type: CodeableConcept
                    short: The jurisdiction where this name applies
                    choiceOf: value
                    index: 186
            name:
              match: {url: null}
              schema:
                short: The actual name
                isModifier: false
                _required: true
                index: 159
                elements:
                  value:
                    base: {path: 'Extension.value[x]'}
                    short: The actual name
                    choices: [valueString]
                    index: 161
                  valueString:
                    base: {path: 'Extension.value[x]'}
                    type: string
                    short: The actual name
                    choiceOf: value
                    index: 162
            type:
              match: {url: null}
              schema:
                short: Name type
                isModifier: false
                index: 163
                elements:
                  value:
                    base: {path: 'Extension.value[x]'}
                    short: Name type
                    choices: [valueCodeableConcept]
                    index: 165
                  valueCodeableConcept:
                    base: {path: 'Extension.value[x]'}
                    type: CodeableConcept
                    short: Name type
                    choiceOf: value
                    index: 166
            source:
              match: {url: null}
              schema:
                short: Supporting literature
                isModifier: false
                array: true
                index: 211
                elements:
                  value:
                    base: {path: 'Extension.value[x]'}
                    short: Supporting literature
                    choices: [valueReference]
                    index: 213
                  valueReference:
                    base: {path: 'Extension.value[x]'}
                    type: Reference
                    short: Supporting literature
                    choiceOf: value
                    refers: ['http://hl7.org/fhir/StructureDefinition/DocumentReference']
                    index: 214
            status:
              match: {url: null}
              schema:
                short: The status of the name
                isModifier: false
                index: 167
                elements:
                  value:
                    base: {path: 'Extension.value[x]'}
                    short: The status of the name
                    choices: [valueCodeableConcept]
                    index: 169
                  valueCodeableConcept:
                    base: {path: 'Extension.value[x]'}
                    type: CodeableConcept
                    short: The status of the name
                    choiceOf: value
                    index: 170
            language:
              match: {url: null}
              schema:
                short: Language of the name
                isModifier: false
                array: true
                index: 175
                elements:
                  value:
                    base: {path: 'Extension.value[x]'}
                    short: Language of the name
                    choices: [valueCodeableConcept]
                    index: 177
                  valueCodeableConcept:
                    base: {path: 'Extension.value[x]'}
                    type: CodeableConcept
                    short: Language of the name
                    choiceOf: value
                    index: 178
            synonym:
              match: {url: null}
              schema:
                short: A synonym of this name
                isModifier: false
                array: true
                index: 187
                extensions:
                  _datatype:
                    url: http://hl7.org/fhir/StructureDefinition/_datatype
                    type: Extension
                    short: Data type name for SubstanceSpecification.name.synonym from FHIR R4
                    index: 188
                    elements:
                      value:
                        base: {path: 'Extension.value[x]'}
                        pattern: {type: string, value: SubstanceSpecification.name}
                        choices: [valueString]
                        type: string
                        index: 190
                      valueString:
                        type: string
                        pattern: {type: string, value: SubstanceSpecification.name}
                        base: {path: 'Extension.value[x]'}
                        choiceOf: value
                        index: 191
                    required: [value, valueString]
                elements:
                  extension:
                    type: Extension
                    short: Data type name for SubstanceSpecification.name.synonym from FHIR R4
                    url: http://hl7.org/fhir/StructureDefinition/_datatype
                    index: 188
                    slicing:
                      slices:
                        _datatype:
                          match: {}
                          schema:
                            type: Extension
                            short: Data type name for SubstanceSpecification.name.synonym from FHIR R4
                            url: http://hl7.org/fhir/StructureDefinition/_datatype
                            index: 188
                            elements:
                              value:
                                base: {path: 'Extension.value[x]'}
                                pattern: {type: string, value: SubstanceSpecification.name}
                                choices: [valueString]
                                type: string
                                index: 190
                              valueString:
                                type: string
                                pattern: {type: string, value: SubstanceSpecification.name}
                                base: {path: 'Extension.value[x]'}
                                choiceOf: value
                                index: 191
                            required: [value, valueString]
            translation:
              match: {url: null}
              schema:
                short: A translation for this name
                isModifier: false
                array: true
                index: 192
                extensions:
                  _datatype:
                    url: http://hl7.org/fhir/StructureDefinition/_datatype
                    type: Extension
                    short: Data type name for SubstanceSpecification.name.translation from FHIR R4
                    index: 193
                    elements:
                      value:
                        base: {path: 'Extension.value[x]'}
                        pattern: {type: string, value: SubstanceSpecification.name}
                        choices: [valueString]
                        type: string
                        index: 195
                      valueString:
                        type: string
                        pattern: {type: string, value: SubstanceSpecification.name}
                        base: {path: 'Extension.value[x]'}
                        choiceOf: value
                        index: 196
                    required: [value, valueString]
                elements:
                  extension:
                    type: Extension
                    short: Data type name for SubstanceSpecification.name.translation from FHIR R4
                    url: http://hl7.org/fhir/StructureDefinition/_datatype
                    index: 193
                    slicing:
                      slices:
                        _datatype:
                          match: {}
                          schema:
                            type: Extension
                            short: Data type name for SubstanceSpecification.name.translation from FHIR R4
                            url: http://hl7.org/fhir/StructureDefinition/_datatype
                            index: 193
                            elements:
                              value:
                                base: {path: 'Extension.value[x]'}
                                pattern: {type: string, value: SubstanceSpecification.name}
                                choices: [valueString]
                                type: string
                                index: 195
                              valueString:
                                type: string
                                pattern: {type: string, value: SubstanceSpecification.name}
                                base: {path: 'Extension.value[x]'}
                                choiceOf: value
                                index: 196
                            required: [value, valueString]
            preferred:
              match: {url: null}
              schema:
                short: If this is the preferred name for this substance
                isModifier: false
                index: 171
                elements:
                  value:
                    base: {path: 'Extension.value[x]'}
                    short: If this is the preferred name for this substance
                    choices: [valueBoolean]
                    index: 173
                  valueBoolean:
                    base: {path: 'Extension.value[x]'}
                    type: boolean
                    short: If this is the preferred name for this substance
                    choiceOf: value
                    index: 174
            domain:
              match: {url: null}
              schema:
                short: The use context of this name for example if there is a different name a drug active ingredient as opposed to a food colour additive
                isModifier: false
                array: true
                index: 179
                elements:
                  value:
                    base: {path: 'Extension.value[x]'}
                    short: The use context of this name for example if there is a different name a drug active ingredient as opposed to a food colour additive
                    choices: [valueCodeableConcept]
                    index: 181
                  valueCodeableConcept:
                    base: {path: 'Extension.value[x]'}
                    type: CodeableConcept
                    short: The use context of this name for example if there is a different name a drug active ingredient as opposed to a food colour additive
                    choiceOf: value
                    index: 182
    required: [extension]
  referenceInformation:
    url: null
    short: General information detailing this substance
    isModifier: false
    index: 80
    elements:
      value:
        base: {path: 'Extension.value[x]'}
        short: General information detailing this substance
        choices: [valueReference]
        index: 82
      valueReference:
        base: {path: 'Extension.value[x]'}
        type: Reference
        short: General information detailing this substance
        choiceOf: value
        refers: ['http://hl7.org/fhir/StructureDefinition/SubstanceReferenceInformation']
        index: 83
  relationship:
    url: null
    short: A link between this substance and another, with details of the relationship
    isModifier: false
    array: true
    index: 220
    extensions:
      substance[x]:
        url: null
        short: A pointer to another substance, as a resource or just a representational code
        isModifier: false
        index: 222
        elements:
          value:
            base: {path: 'Extension.value[x]'}
            short: A pointer to another substance, as a resource or just a representational code
            choices: [valueReference, valueCodeableConcept]
            index: 224
          valueReference:
            base: {path: 'Extension.value[x]'}
            type: Reference
            short: A pointer to another substance, as a resource or just a representational code
            choiceOf: value
            refers: ['http://hl7.org/fhir/StructureDefinition/SubstanceSpecification']
            index: 225
          valueCodeableConcept:
            base: {path: 'Extension.value[x]'}
            type: CodeableConcept
            short: A pointer to another substance, as a resource or just a representational code
            choiceOf: value
            index: 226
      relationship:
        url: null
        short: For example "salt to parent", "active moiety", "starting material"
        isModifier: false
        index: 227
        elements:
          value:
            base: {path: 'Extension.value[x]'}
            short: For example "salt to parent", "active moiety", "starting material"
            choices: [valueCodeableConcept]
            index: 229
          valueCodeableConcept:
            base: {path: 'Extension.value[x]'}
            type: CodeableConcept
            short: For example "salt to parent", "active moiety", "starting material"
            choiceOf: value
            index: 230
      isDefining:
        url: null
        short: For example where an enzyme strongly bonds with a particular substance, this is a defining relationship for that enzyme, out of several possible substance relationships
        isModifier: false
        index: 231
        elements:
          value:
            base: {path: 'Extension.value[x]'}
            short: For example where an enzyme strongly bonds with a particular substance, this is a defining relationship for that enzyme, out of several possible substance relationships
            choices: [valueBoolean]
            index: 233
          valueBoolean:
            base: {path: 'Extension.value[x]'}
            type: boolean
            short: For example where an enzyme strongly bonds with a particular substance, this is a defining relationship for that enzyme, out of several possible substance relationships
            choiceOf: value
            index: 234
      amount[x]:
        url: null
        short: A numeric factor for the relationship, for instance to express that the salt of a substance has some percentage of the active substance in relation to some other
        isModifier: false
        index: 235
        elements:
          value:
            base: {path: 'Extension.value[x]'}
            short: A numeric factor for the relationship, for instance to express that the salt of a substance has some percentage of the active substance in relation to some other
            choices: [valueQuantity, valueRange, valueRatio, valueString]
            index: 237
          valueQuantity:
            base: {path: 'Extension.value[x]'}
            type: Quantity
            short: A numeric factor for the relationship, for instance to express that the salt of a substance has some percentage of the active substance in relation to some other
            choiceOf: value
            index: 238
          valueRange:
            base: {path: 'Extension.value[x]'}
            type: Range
            short: A numeric factor for the relationship, for instance to express that the salt of a substance has some percentage of the active substance in relation to some other
            choiceOf: value
            index: 239
          valueRatio:
            base: {path: 'Extension.value[x]'}
            type: Ratio
            short: A numeric factor for the relationship, for instance to express that the salt of a substance has some percentage of the active substance in relation to some other
            choiceOf: value
            index: 240
          valueString:
            base: {path: 'Extension.value[x]'}
            type: string
            short: A numeric factor for the relationship, for instance to express that the salt of a substance has some percentage of the active substance in relation to some other
            choiceOf: value
            index: 241
      amountRatioLowLimit:
        url: null
        short: For use when the numeric
        isModifier: false
        index: 242
        elements:
          value:
            base: {path: 'Extension.value[x]'}
            short: For use when the numeric
            choices: [valueRatio]
            index: 244
          valueRatio:
            base: {path: 'Extension.value[x]'}
            type: Ratio
            short: For use when the numeric
            choiceOf: value
            index: 245
      amountType:
        url: null
        short: An operator for the amount, for example "average", "approximately", "less than"
        isModifier: false
        index: 246
        elements:
          value:
            base: {path: 'Extension.value[x]'}
            short: An operator for the amount, for example "average", "approximately", "less than"
            choices: [valueCodeableConcept]
            index: 248
          valueCodeableConcept:
            base: {path: 'Extension.value[x]'}
            type: CodeableConcept
            short: An operator for the amount, for example "average", "approximately", "less than"
            choiceOf: value
            index: 249
      source:
        url: null
        short: Supporting literature
        isModifier: false
        array: true
        index: 250
        elements:
          value:
            base: {path: 'Extension.value[x]'}
            short: Supporting literature
            choices: [valueReference]
            index: 252
          valueReference:
            base: {path: 'Extension.value[x]'}
            type: Reference
            short: Supporting literature
            choiceOf: value
            refers: ['http://hl7.org/fhir/StructureDefinition/DocumentReference']
            index: 253
    elements:
      extension:
        array: true
        index: 221
        slicing:
          rules: closed
          ordered: false
          discriminator:
          - {path: url, type: value}
          min: 0
          slices:
            substance[x]:
              match: {url: null}
              schema:
                short: A pointer to another substance, as a resource or just a representational code
                isModifier: false
                index: 222
                elements:
                  value:
                    base: {path: 'Extension.value[x]'}
                    short: A pointer to another substance, as a resource or just a representational code
                    choices: [valueReference, valueCodeableConcept]
                    index: 224
                  valueReference:
                    base: {path: 'Extension.value[x]'}
                    type: Reference
                    short: A pointer to another substance, as a resource or just a representational code
                    choiceOf: value
                    refers: ['http://hl7.org/fhir/StructureDefinition/SubstanceSpecification']
                    index: 225
                  valueCodeableConcept:
                    base: {path: 'Extension.value[x]'}
                    type: CodeableConcept
                    short: A pointer to another substance, as a resource or just a representational code
                    choiceOf: value
                    index: 226
            relationship:
              match: {url: null}
              schema:
                short: For example "salt to parent", "active moiety", "starting material"
                isModifier: false
                index: 227
                elements:
                  value:
                    base: {path: 'Extension.value[x]'}
                    short: For example "salt to parent", "active moiety", "starting material"
                    choices: [valueCodeableConcept]
                    index: 229
                  valueCodeableConcept:
                    base: {path: 'Extension.value[x]'}
                    type: CodeableConcept
                    short: For example "salt to parent", "active moiety", "starting material"
                    choiceOf: value
                    index: 230
            isDefining:
              match: {url: null}
              schema:
                short: For example where an enzyme strongly bonds with a particular substance, this is a defining relationship for that enzyme, out of several possible substance relationships
                isModifier: false
                index: 231
                elements:
                  value:
                    base: {path: 'Extension.value[x]'}
                    short: For example where an enzyme strongly bonds with a particular substance, this is a defining relationship for that enzyme, out of several possible substance relationships
                    choices: [valueBoolean]
                    index: 233
                  valueBoolean:
                    base: {path: 'Extension.value[x]'}
                    type: boolean
                    short: For example where an enzyme strongly bonds with a particular substance, this is a defining relationship for that enzyme, out of several possible substance relationships
                    choiceOf: value
                    index: 234
            amount[x]:
              match: {url: null}
              schema:
                short: A numeric factor for the relationship, for instance to express that the salt of a substance has some percentage of the active substance in relation to some other
                isModifier: false
                index: 235
                elements:
                  value:
                    base: {path: 'Extension.value[x]'}
                    short: A numeric factor for the relationship, for instance to express that the salt of a substance has some percentage of the active substance in relation to some other
                    choices: [valueQuantity, valueRange, valueRatio, valueString]
                    index: 237
                  valueQuantity:
                    base: {path: 'Extension.value[x]'}
                    type: Quantity
                    short: A numeric factor for the relationship, for instance to express that the salt of a substance has some percentage of the active substance in relation to some other
                    choiceOf: value
                    index: 238
                  valueRange:
                    base: {path: 'Extension.value[x]'}
                    type: Range
                    short: A numeric factor for the relationship, for instance to express that the salt of a substance has some percentage of the active substance in relation to some other
                    choiceOf: value
                    index: 239
                  valueRatio:
                    base: {path: 'Extension.value[x]'}
                    type: Ratio
                    short: A numeric factor for the relationship, for instance to express that the salt of a substance has some percentage of the active substance in relation to some other
                    choiceOf: value
                    index: 240
                  valueString:
                    base: {path: 'Extension.value[x]'}
                    type: string
                    short: A numeric factor for the relationship, for instance to express that the salt of a substance has some percentage of the active substance in relation to some other
                    choiceOf: value
                    index: 241
            amountRatioLowLimit:
              match: {url: null}
              schema:
                short: For use when the numeric
                isModifier: false
                index: 242
                elements:
                  value:
                    base: {path: 'Extension.value[x]'}
                    short: For use when the numeric
                    choices: [valueRatio]
                    index: 244
                  valueRatio:
                    base: {path: 'Extension.value[x]'}
                    type: Ratio
                    short: For use when the numeric
                    choiceOf: value
                    index: 245
            amountType:
              match: {url: null}
              schema:
                short: An operator for the amount, for example "average", "approximately", "less than"
                isModifier: false
                index: 246
                elements:
                  value:
                    base: {path: 'Extension.value[x]'}
                    short: An operator for the amount, for example "average", "approximately", "less than"
                    choices: [valueCodeableConcept]
                    index: 248
                  valueCodeableConcept:
                    base: {path: 'Extension.value[x]'}
                    type: CodeableConcept
                    short: An operator for the amount, for example "average", "approximately", "less than"
                    choiceOf: value
                    index: 249
            source:
              match: {url: null}
              schema:
                short: Supporting literature
                isModifier: false
                array: true
                index: 250
                elements:
                  value:
                    base: {path: 'Extension.value[x]'}
                    short: Supporting literature
                    choices: [valueReference]
                    index: 252
                  valueReference:
                    base: {path: 'Extension.value[x]'}
                    type: Reference
                    short: Supporting literature
                    choiceOf: value
                    refers: ['http://hl7.org/fhir/StructureDefinition/DocumentReference']
                    index: 253
  type:
    url: null
    short: High level categorization, e.g. polymer or nucleic acid
    isModifier: false
    index: 1
    elements:
      value:
        base: {path: 'Extension.value[x]'}
        short: High level categorization, e.g. polymer or nucleic acid
        choices: [valueCodeableConcept]
        index: 3
      valueCodeableConcept:
        base: {path: 'Extension.value[x]'}
        type: CodeableConcept
        short: High level categorization, e.g. polymer or nucleic acid
        choiceOf: value
        index: 4
  moiety:
    url: null
    short: Moiety, for structural modifications
    isModifier: false
    array: true
    index: 25
    extensions:
      role:
        url: null
        short: Role that the moiety is playing
        isModifier: false
        index: 27
        elements:
          value:
            base: {path: 'Extension.value[x]'}
            short: Role that the moiety is playing
            choices: [valueCodeableConcept]
            index: 29
          valueCodeableConcept:
            base: {path: 'Extension.value[x]'}
            type: CodeableConcept
            short: Role that the moiety is playing
            choiceOf: value
            index: 30
      identifier:
        url: null
        short: Identifier by which this moiety substance is known
        isModifier: false
        index: 31
        elements:
          value:
            base: {path: 'Extension.value[x]'}
            short: Identifier by which this moiety substance is known
            choices: [valueIdentifier]
            index: 33
          valueIdentifier:
            base: {path: 'Extension.value[x]'}
            type: Identifier
            short: Identifier by which this moiety substance is known
            choiceOf: value
            index: 34
      name:
        url: null
        short: Textual name for this moiety substance
        isModifier: false
        index: 35
        elements:
          value:
            base: {path: 'Extension.value[x]'}
            short: Textual name for this moiety substance
            choices: [valueString]
            index: 37
          valueString:
            base: {path: 'Extension.value[x]'}
            type: string
            short: Textual name for this moiety substance
            choiceOf: value
            index: 38
      stereochemistry:
        url: null
        short: Stereochemistry type
        isModifier: false
        index: 39
        elements:
          value:
            base: {path: 'Extension.value[x]'}
            short: Stereochemistry type
            choices: [valueCodeableConcept]
            index: 41
          valueCodeableConcept:
            base: {path: 'Extension.value[x]'}
            type: CodeableConcept
            short: Stereochemistry type
            choiceOf: value
            index: 42
      opticalActivity:
        url: null
        short: Optical activity type
        isModifier: false
        index: 43
        elements:
          value:
            base: {path: 'Extension.value[x]'}
            short: Optical activity type
            choices: [valueCodeableConcept]
            index: 45
          valueCodeableConcept:
            base: {path: 'Extension.value[x]'}
            type: CodeableConcept
            short: Optical activity type
            choiceOf: value
            index: 46
      molecularFormula:
        url: null
        short: Molecular formula
        isModifier: false
        index: 47
        elements:
          value:
            base: {path: 'Extension.value[x]'}
            short: Molecular formula
            choices: [valueString]
            index: 49
          valueString:
            base: {path: 'Extension.value[x]'}
            type: string
            short: Molecular formula
            choiceOf: value
            index: 50
      amount[x]:
        url: null
        short: Quantitative value for this moiety
        isModifier: false
        index: 51
        elements:
          value:
            base: {path: 'Extension.value[x]'}
            short: Quantitative value for this moiety
            choices: [valueQuantity, valueString]
            index: 53
          valueQuantity:
            base: {path: 'Extension.value[x]'}
            type: Quantity
            short: Quantitative value for this moiety
            choiceOf: value
            index: 54
          valueString:
            base: {path: 'Extension.value[x]'}
            type: string
            short: Quantitative value for this moiety
            choiceOf: value
            index: 55
    elements:
      extension:
        array: true
        index: 26
        slicing:
          rules: closed
          ordered: false
          discriminator:
          - {path: url, type: value}
          min: 0
          slices:
            role:
              match: {url: null}
              schema:
                short: Role that the moiety is playing
                isModifier: false
                index: 27
                elements:
                  value:
                    base: {path: 'Extension.value[x]'}
                    short: Role that the moiety is playing
                    choices: [valueCodeableConcept]
                    index: 29
                  valueCodeableConcept:
                    base: {path: 'Extension.value[x]'}
                    type: CodeableConcept
                    short: Role that the moiety is playing
                    choiceOf: value
                    index: 30
            identifier:
              match: {url: null}
              schema:
                short: Identifier by which this moiety substance is known
                isModifier: false
                index: 31
                elements:
                  value:
                    base: {path: 'Extension.value[x]'}
                    short: Identifier by which this moiety substance is known
                    choices: [valueIdentifier]
                    index: 33
                  valueIdentifier:
                    base: {path: 'Extension.value[x]'}
                    type: Identifier
                    short: Identifier by which this moiety substance is known
                    choiceOf: value
                    index: 34
            name:
              match: {url: null}
              schema:
                short: Textual name for this moiety substance
                isModifier: false
                index: 35
                elements:
                  value:
                    base: {path: 'Extension.value[x]'}
                    short: Textual name for this moiety substance
                    choices: [valueString]
                    index: 37
                  valueString:
                    base: {path: 'Extension.value[x]'}
                    type: string
                    short: Textual name for this moiety substance
                    choiceOf: value
                    index: 38
            stereochemistry:
              match: {url: null}
              schema:
                short: Stereochemistry type
                isModifier: false
                index: 39
                elements:
                  value:
                    base: {path: 'Extension.value[x]'}
                    short: Stereochemistry type
                    choices: [valueCodeableConcept]
                    index: 41
                  valueCodeableConcept:
                    base: {path: 'Extension.value[x]'}
                    type: CodeableConcept
                    short: Stereochemistry type
                    choiceOf: value
                    index: 42
            opticalActivity:
              match: {url: null}
              schema:
                short: Optical activity type
                isModifier: false
                index: 43
                elements:
                  value:
                    base: {path: 'Extension.value[x]'}
                    short: Optical activity type
                    choices: [valueCodeableConcept]
                    index: 45
                  valueCodeableConcept:
                    base: {path: 'Extension.value[x]'}
                    type: CodeableConcept
                    short: Optical activity type
                    choiceOf: value
                    index: 46
            molecularFormula:
              match: {url: null}
              schema:
                short: Molecular formula
                isModifier: false
                index: 47
                elements:
                  value:
                    base: {path: 'Extension.value[x]'}
                    short: Molecular formula
                    choices: [valueString]
                    index: 49
                  valueString:
                    base: {path: 'Extension.value[x]'}
                    type: string
                    short: Molecular formula
                    choiceOf: value
                    index: 50
            amount[x]:
              match: {url: null}
              schema:
                short: Quantitative value for this moiety
                isModifier: false
                index: 51
                elements:
                  value:
                    base: {path: 'Extension.value[x]'}
                    short: Quantitative value for this moiety
                    choices: [valueQuantity, valueString]
                    index: 53
                  valueQuantity:
                    base: {path: 'Extension.value[x]'}
                    type: Quantity
                    short: Quantitative value for this moiety
                    choiceOf: value
                    index: 54
                  valueString:
                    base: {path: 'Extension.value[x]'}
                    type: string
                    short: Quantitative value for this moiety
                    choiceOf: value
                    index: 55
  source:
    url: null
    short: Supporting literature
    isModifier: false
    array: true
    index: 17
    elements:
      value:
        base: {path: 'Extension.value[x]'}
        short: Supporting literature
        choices: [valueReference]
        index: 19
      valueReference:
        base: {path: 'Extension.value[x]'}
        type: Reference
        short: Supporting literature
        choiceOf: value
        refers: ['http://hl7.org/fhir/StructureDefinition/DocumentReference']
        index: 20
  nucleicAcid:
    url: null
    short: Data items specific to nucleic acids
    isModifier: false
    index: 254
    elements:
      value:
        base: {path: 'Extension.value[x]'}
        short: Data items specific to nucleic acids
        choices: [valueReference]
        index: 256
      valueReference:
        base: {path: 'Extension.value[x]'}
        type: Reference
        short: Data items specific to nucleic acids
        choiceOf: value
        refers: ['http://hl7.org/fhir/StructureDefinition/SubstanceNucleicAcid']
        index: 257
  structure:
    url: null
    short: Structural information
    isModifier: false
    index: 84
    extensions:
      stereochemistry:
        url: null
        short: Stereochemistry type
        isModifier: false
        index: 86
        elements:
          value:
            base: {path: 'Extension.value[x]'}
            short: Stereochemistry type
            choices: [valueCodeableConcept]
            index: 88
          valueCodeableConcept:
            base: {path: 'Extension.value[x]'}
            type: CodeableConcept
            short: Stereochemistry type
            choiceOf: value
            index: 89
      opticalActivity:
        url: null
        short: Optical activity type
        isModifier: false
        index: 90
        elements:
          value:
            base: {path: 'Extension.value[x]'}
            short: Optical activity type
            choices: [valueCodeableConcept]
            index: 92
          valueCodeableConcept:
            base: {path: 'Extension.value[x]'}
            type: CodeableConcept
            short: Optical activity type
            choiceOf: value
            index: 93
      molecularFormula:
        url: null
        short: Molecular formula
        isModifier: false
        index: 94
        elements:
          value:
            base: {path: 'Extension.value[x]'}
            short: Molecular formula
            choices: [valueString]
            index: 96
          valueString:
            base: {path: 'Extension.value[x]'}
            type: string
            short: Molecular formula
            choiceOf: value
            index: 97
      molecularFormulaByMoiety:
        url: null
        short: Specified per moiety according to the Hill system, i.e. first C, then H, then alphabetical, each moiety separated by a dot
        isModifier: false
        index: 98
        elements:
          value:
            base: {path: 'Extension.value[x]'}
            short: Specified per moiety according to the Hill system, i.e. first C, then H, then alphabetical, each moiety separated by a dot
            choices: [valueString]
            index: 100
          valueString:
            base: {path: 'Extension.value[x]'}
            type: string
            short: Specified per moiety according to the Hill system, i.e. first C, then H, then alphabetical, each moiety separated by a dot
            choiceOf: value
            index: 101
      isotope:
        url: null
        short: Applicable for single substances that contain a radionuclide or a non-natural isotopic ratio
        isModifier: false
        array: true
        index: 102
        extensions:
          identifier:
            url: null
            short: Substance identifier for each non-natural or radioisotope
            isModifier: false
            index: 104
            elements:
              value:
                base: {path: 'Extension.value[x]'}
                short: Substance identifier for each non-natural or radioisotope
                choices: [valueIdentifier]
                index: 106
              valueIdentifier:
                base: {path: 'Extension.value[x]'}
                type: Identifier
                short: Substance identifier for each non-natural or radioisotope
                choiceOf: value
                index: 107
          name:
            url: null
            short: Substance name for each non-natural or radioisotope
            isModifier: false
            index: 108
            elements:
              value:
                base: {path: 'Extension.value[x]'}
                short: Substance name for each non-natural or radioisotope
                choices: [valueCodeableConcept]
                index: 110
              valueCodeableConcept:
                base: {path: 'Extension.value[x]'}
                type: CodeableConcept
                short: Substance name for each non-natural or radioisotope
                choiceOf: value
                index: 111
          substitution:
            url: null
            short: The type of isotopic substitution present in a single substance
            isModifier: false
            index: 112
            elements:
              value:
                base: {path: 'Extension.value[x]'}
                short: The type of isotopic substitution present in a single substance
                choices: [valueCodeableConcept]
                index: 114
              valueCodeableConcept:
                base: {path: 'Extension.value[x]'}
                type: CodeableConcept
                short: The type of isotopic substitution present in a single substance
                choiceOf: value
                index: 115
          halfLife:
            url: null
            short: Half life - for a non-natural nuclide
            isModifier: false
            index: 116
            elements:
              value:
                base: {path: 'Extension.value[x]'}
                short: Half life - for a non-natural nuclide
                choices: [valueQuantity]
                index: 118
              valueQuantity:
                base: {path: 'Extension.value[x]'}
                type: Quantity
                short: Half life - for a non-natural nuclide
                choiceOf: value
                index: 119
          molecularWeight:
            url: null
            short: The molecular weight or weight range (for proteins, polymers or nucleic acids)
            isModifier: false
            index: 120
            extensions:
              method:
                url: null
                short: The method by which the molecular weight was determined
                isModifier: false
                index: 122
                elements:
                  value:
                    base: {path: 'Extension.value[x]'}
                    short: The method by which the molecular weight was determined
                    choices: [valueCodeableConcept]
                    index: 124
                  valueCodeableConcept:
                    base: {path: 'Extension.value[x]'}
                    type: CodeableConcept
                    short: The method by which the molecular weight was determined
                    choiceOf: value
                    index: 125
              type:
                url: null
                short: Type of molecular weight such as exact, average (also known as. number average), weight average
                isModifier: false
                index: 126
                elements:
                  value:
                    base: {path: 'Extension.value[x]'}
                    short: Type of molecular weight such as exact, average (also known as. number average), weight average
                    choices: [valueCodeableConcept]
                    index: 128
                  valueCodeableConcept:
                    base: {path: 'Extension.value[x]'}
                    type: CodeableConcept
                    short: Type of molecular weight such as exact, average (also known as. number average), weight average
                    choiceOf: value
                    index: 129
              amount:
                url: null
                short: Used to capture quantitative values for a variety of elements. If only limits are given, the arithmetic mean would be the average. If only a single definite value for a given element is given, it would be captured in this field
                isModifier: false
                index: 130
                elements:
                  value:
                    base: {path: 'Extension.value[x]'}
                    short: Used to capture quantitative values for a variety of elements. If only limits are given, the arithmetic mean would be the average. If only a single definite value for a given element is given, it would be captured in this field
                    choices: [valueQuantity]
                    index: 132
                  valueQuantity:
                    base: {path: 'Extension.value[x]'}
                    type: Quantity
                    short: Used to capture quantitative values for a variety of elements. If only limits are given, the arithmetic mean would be the average. If only a single definite value for a given element is given, it would be captured in this field
                    choiceOf: value
                    index: 133
            elements:
              extension:
                array: true
                index: 121
                slicing:
                  rules: closed
                  ordered: false
                  discriminator:
                  - {path: url, type: value}
                  min: 0
                  slices:
                    method:
                      match: {url: null}
                      schema:
                        short: The method by which the molecular weight was determined
                        isModifier: false
                        index: 122
                        elements:
                          value:
                            base: {path: 'Extension.value[x]'}
                            short: The method by which the molecular weight was determined
                            choices: [valueCodeableConcept]
                            index: 124
                          valueCodeableConcept:
                            base: {path: 'Extension.value[x]'}
                            type: CodeableConcept
                            short: The method by which the molecular weight was determined
                            choiceOf: value
                            index: 125
                    type:
                      match: {url: null}
                      schema:
                        short: Type of molecular weight such as exact, average (also known as. number average), weight average
                        isModifier: false
                        index: 126
                        elements:
                          value:
                            base: {path: 'Extension.value[x]'}
                            short: Type of molecular weight such as exact, average (also known as. number average), weight average
                            choices: [valueCodeableConcept]
                            index: 128
                          valueCodeableConcept:
                            base: {path: 'Extension.value[x]'}
                            type: CodeableConcept
                            short: Type of molecular weight such as exact, average (also known as. number average), weight average
                            choiceOf: value
                            index: 129
                    amount:
                      match: {url: null}
                      schema:
                        short: Used to capture quantitative values for a variety of elements. If only limits are given, the arithmetic mean would be the average. If only a single definite value for a given element is given, it would be captured in this field
                        isModifier: false
                        index: 130
                        elements:
                          value:
                            base: {path: 'Extension.value[x]'}
                            short: Used to capture quantitative values for a variety of elements. If only limits are given, the arithmetic mean would be the average. If only a single definite value for a given element is given, it would be captured in this field
                            choices: [valueQuantity]
                            index: 132
                          valueQuantity:
                            base: {path: 'Extension.value[x]'}
                            type: Quantity
                            short: Used to capture quantitative values for a variety of elements. If only limits are given, the arithmetic mean would be the average. If only a single definite value for a given element is given, it would be captured in this field
                            choiceOf: value
                            index: 133
        elements:
          extension:
            array: true
            index: 103
            slicing:
              rules: closed
              ordered: false
              discriminator:
              - {path: url, type: value}
              min: 0
              slices:
                identifier:
                  match: {url: null}
                  schema:
                    short: Substance identifier for each non-natural or radioisotope
                    isModifier: false
                    index: 104
                    elements:
                      value:
                        base: {path: 'Extension.value[x]'}
                        short: Substance identifier for each non-natural or radioisotope
                        choices: [valueIdentifier]
                        index: 106
                      valueIdentifier:
                        base: {path: 'Extension.value[x]'}
                        type: Identifier
                        short: Substance identifier for each non-natural or radioisotope
                        choiceOf: value
                        index: 107
                name:
                  match: {url: null}
                  schema:
                    short: Substance name for each non-natural or radioisotope
                    isModifier: false
                    index: 108
                    elements:
                      value:
                        base: {path: 'Extension.value[x]'}
                        short: Substance name for each non-natural or radioisotope
                        choices: [valueCodeableConcept]
                        index: 110
                      valueCodeableConcept:
                        base: {path: 'Extension.value[x]'}
                        type: CodeableConcept
                        short: Substance name for each non-natural or radioisotope
                        choiceOf: value
                        index: 111
                substitution:
                  match: {url: null}
                  schema:
                    short: The type of isotopic substitution present in a single substance
                    isModifier: false
                    index: 112
                    elements:
                      value:
                        base: {path: 'Extension.value[x]'}
                        short: The type of isotopic substitution present in a single substance
                        choices: [valueCodeableConcept]
                        index: 114
                      valueCodeableConcept:
                        base: {path: 'Extension.value[x]'}
                        type: CodeableConcept
                        short: The type of isotopic substitution present in a single substance
                        choiceOf: value
                        index: 115
                halfLife:
                  match: {url: null}
                  schema:
                    short: Half life - for a non-natural nuclide
                    isModifier: false
                    index: 116
                    elements:
                      value:
                        base: {path: 'Extension.value[x]'}
                        short: Half life - for a non-natural nuclide
                        choices: [valueQuantity]
                        index: 118
                      valueQuantity:
                        base: {path: 'Extension.value[x]'}
                        type: Quantity
                        short: Half life - for a non-natural nuclide
                        choiceOf: value
                        index: 119
                molecularWeight:
                  match: {url: null}
                  schema:
                    short: The molecular weight or weight range (for proteins, polymers or nucleic acids)
                    isModifier: false
                    index: 120
                    extensions:
                      method:
                        url: null
                        short: The method by which the molecular weight was determined
                        isModifier: false
                        index: 122
                        elements:
                          value:
                            base: {path: 'Extension.value[x]'}
                            short: The method by which the molecular weight was determined
                            choices: [valueCodeableConcept]
                            index: 124
                          valueCodeableConcept:
                            base: {path: 'Extension.value[x]'}
                            type: CodeableConcept
                            short: The method by which the molecular weight was determined
                            choiceOf: value
                            index: 125
                      type:
                        url: null
                        short: Type of molecular weight such as exact, average (also known as. number average), weight average
                        isModifier: false
                        index: 126
                        elements:
                          value:
                            base: {path: 'Extension.value[x]'}
                            short: Type of molecular weight such as exact, average (also known as. number average), weight average
                            choices: [valueCodeableConcept]
                            index: 128
                          valueCodeableConcept:
                            base: {path: 'Extension.value[x]'}
                            type: CodeableConcept
                            short: Type of molecular weight such as exact, average (also known as. number average), weight average
                            choiceOf: value
                            index: 129
                      amount:
                        url: null
                        short: Used to capture quantitative values for a variety of elements. If only limits are given, the arithmetic mean would be the average. If only a single definite value for a given element is given, it would be captured in this field
                        isModifier: false
                        index: 130
                        elements:
                          value:
                            base: {path: 'Extension.value[x]'}
                            short: Used to capture quantitative values for a variety of elements. If only limits are given, the arithmetic mean would be the average. If only a single definite value for a given element is given, it would be captured in this field
                            choices: [valueQuantity]
                            index: 132
                          valueQuantity:
                            base: {path: 'Extension.value[x]'}
                            type: Quantity
                            short: Used to capture quantitative values for a variety of elements. If only limits are given, the arithmetic mean would be the average. If only a single definite value for a given element is given, it would be captured in this field
                            choiceOf: value
                            index: 133
                    elements:
                      extension:
                        array: true
                        index: 121
                        slicing:
                          rules: closed
                          ordered: false
                          discriminator:
                          - {path: url, type: value}
                          min: 0
                          slices:
                            method:
                              match: {url: null}
                              schema:
                                short: The method by which the molecular weight was determined
                                isModifier: false
                                index: 122
                                elements:
                                  value:
                                    base: {path: 'Extension.value[x]'}
                                    short: The method by which the molecular weight was determined
                                    choices: [valueCodeableConcept]
                                    index: 124
                                  valueCodeableConcept:
                                    base: {path: 'Extension.value[x]'}
                                    type: CodeableConcept
                                    short: The method by which the molecular weight was determined
                                    choiceOf: value
                                    index: 125
                            type:
                              match: {url: null}
                              schema:
                                short: Type of molecular weight such as exact, average (also known as. number average), weight average
                                isModifier: false
                                index: 126
                                elements:
                                  value:
                                    base: {path: 'Extension.value[x]'}
                                    short: Type of molecular weight such as exact, average (also known as. number average), weight average
                                    choices: [valueCodeableConcept]
                                    index: 128
                                  valueCodeableConcept:
                                    base: {path: 'Extension.value[x]'}
                                    type: CodeableConcept
                                    short: Type of molecular weight such as exact, average (also known as. number average), weight average
                                    choiceOf: value
                                    index: 129
                            amount:
                              match: {url: null}
                              schema:
                                short: Used to capture quantitative values for a variety of elements. If only limits are given, the arithmetic mean would be the average. If only a single definite value for a given element is given, it would be captured in this field
                                isModifier: false
                                index: 130
                                elements:
                                  value:
                                    base: {path: 'Extension.value[x]'}
                                    short: Used to capture quantitative values for a variety of elements. If only limits are given, the arithmetic mean would be the average. If only a single definite value for a given element is given, it would be captured in this field
                                    choices: [valueQuantity]
                                    index: 132
                                  valueQuantity:
                                    base: {path: 'Extension.value[x]'}
                                    type: Quantity
                                    short: Used to capture quantitative values for a variety of elements. If only limits are given, the arithmetic mean would be the average. If only a single definite value for a given element is given, it would be captured in this field
                                    choiceOf: value
                                    index: 133
      molecularWeight:
        url: null
        short: The molecular weight or weight range (for proteins, polymers or nucleic acids)
        isModifier: false
        index: 134
        extensions:
          _datatype:
            url: http://hl7.org/fhir/StructureDefinition/_datatype
            type: Extension
            short: Data type name for SubstanceSpecification.structure.molecularWeight from FHIR R4
            index: 135
            elements:
              value:
                base: {path: 'Extension.value[x]'}
                pattern: {type: string, value: SubstanceSpecification.structure.isotope.molecularWeight}
                choices: [valueString]
                type: string
                index: 137
              valueString:
                type: string
                pattern: {type: string, value: SubstanceSpecification.structure.isotope.molecularWeight}
                base: {path: 'Extension.value[x]'}
                choiceOf: value
                index: 138
            required: [value, valueString]
        elements:
          extension:
            type: Extension
            short: Data type name for SubstanceSpecification.structure.molecularWeight from FHIR R4
            url: http://hl7.org/fhir/StructureDefinition/_datatype
            index: 135
            slicing:
              slices:
                _datatype:
                  match: {}
                  schema:
                    type: Extension
                    short: Data type name for SubstanceSpecification.structure.molecularWeight from FHIR R4
                    url: http://hl7.org/fhir/StructureDefinition/_datatype
                    index: 135
                    elements:
                      value:
                        base: {path: 'Extension.value[x]'}
                        pattern: {type: string, value: SubstanceSpecification.structure.isotope.molecularWeight}
                        choices: [valueString]
                        type: string
                        index: 137
                      valueString:
                        type: string
                        pattern: {type: string, value: SubstanceSpecification.structure.isotope.molecularWeight}
                        base: {path: 'Extension.value[x]'}
                        choiceOf: value
                        index: 138
                    required: [value, valueString]
      source:
        url: null
        short: Supporting literature
        isModifier: false
        array: true
        index: 139
        elements:
          value:
            base: {path: 'Extension.value[x]'}
            short: Supporting literature
            choices: [valueReference]
            index: 141
          valueReference:
            base: {path: 'Extension.value[x]'}
            type: Reference
            short: Supporting literature
            choiceOf: value
            refers: ['http://hl7.org/fhir/StructureDefinition/DocumentReference']
            index: 142
      representation:
        url: null
        short: Molecular structural representation
        isModifier: false
        array: true
        index: 143
        extensions:
          type:
            url: null
            short: The type of structure (e.g. Full, Partial, Representative)
            isModifier: false
            index: 145
            elements:
              value:
                base: {path: 'Extension.value[x]'}
                short: The type of structure (e.g. Full, Partial, Representative)
                choices: [valueCodeableConcept]
                index: 147
              valueCodeableConcept:
                base: {path: 'Extension.value[x]'}
                type: CodeableConcept
                short: The type of structure (e.g. Full, Partial, Representative)
                choiceOf: value
                index: 148
          representation:
            url: null
            short: The structural representation as text string in a format e.g. InChI, SMILES, MOLFILE, CDX
            isModifier: false
            index: 149
            elements:
              value:
                base: {path: 'Extension.value[x]'}
                short: The structural representation as text string in a format e.g. InChI, SMILES, MOLFILE, CDX
                choices: [valueString]
                index: 151
              valueString:
                base: {path: 'Extension.value[x]'}
                type: string
                short: The structural representation as text string in a format e.g. InChI, SMILES, MOLFILE, CDX
                choiceOf: value
                index: 152
          attachment:
            url: null
            short: An attached file with the structural representation
            isModifier: false
            index: 153
            elements:
              value:
                base: {path: 'Extension.value[x]'}
                short: An attached file with the structural representation
                choices: [valueAttachment]
                index: 155
              valueAttachment:
                base: {path: 'Extension.value[x]'}
                type: Attachment
                short: An attached file with the structural representation
                choiceOf: value
                index: 156
        elements:
          extension:
            array: true
            index: 144
            slicing:
              rules: closed
              ordered: false
              discriminator:
              - {path: url, type: value}
              min: 0
              slices:
                type:
                  match: {url: null}
                  schema:
                    short: The type of structure (e.g. Full, Partial, Representative)
                    isModifier: false
                    index: 145
                    elements:
                      value:
                        base: {path: 'Extension.value[x]'}
                        short: The type of structure (e.g. Full, Partial, Representative)
                        choices: [valueCodeableConcept]
                        index: 147
                      valueCodeableConcept:
                        base: {path: 'Extension.value[x]'}
                        type: CodeableConcept
                        short: The type of structure (e.g. Full, Partial, Representative)
                        choiceOf: value
                        index: 148
                representation:
                  match: {url: null}
                  schema:
                    short: The structural representation as text string in a format e.g. InChI, SMILES, MOLFILE, CDX
                    isModifier: false
                    index: 149
                    elements:
                      value:
                        base: {path: 'Extension.value[x]'}
                        short: The structural representation as text string in a format e.g. InChI, SMILES, MOLFILE, CDX
                        choices: [valueString]
                        index: 151
                      valueString:
                        base: {path: 'Extension.value[x]'}
                        type: string
                        short: The structural representation as text string in a format e.g. InChI, SMILES, MOLFILE, CDX
                        choiceOf: value
                        index: 152
                attachment:
                  match: {url: null}
                  schema:
                    short: An attached file with the structural representation
                    isModifier: false
                    index: 153
                    elements:
                      value:
                        base: {path: 'Extension.value[x]'}
                        short: An attached file with the structural representation
                        choices: [valueAttachment]
                        index: 155
                      valueAttachment:
                        base: {path: 'Extension.value[x]'}
                        type: Attachment
                        short: An attached file with the structural representation
                        choiceOf: value
                        index: 156
    elements:
      extension:
        array: true
        index: 85
        slicing:
          rules: closed
          ordered: false
          discriminator:
          - {path: url, type: value}
          min: 0
          slices:
            stereochemistry:
              match: {url: null}
              schema:
                short: Stereochemistry type
                isModifier: false
                index: 86
                elements:
                  value:
                    base: {path: 'Extension.value[x]'}
                    short: Stereochemistry type
                    choices: [valueCodeableConcept]
                    index: 88
                  valueCodeableConcept:
                    base: {path: 'Extension.value[x]'}
                    type: CodeableConcept
                    short: Stereochemistry type
                    choiceOf: value
                    index: 89
            opticalActivity:
              match: {url: null}
              schema:
                short: Optical activity type
                isModifier: false
                index: 90
                elements:
                  value:
                    base: {path: 'Extension.value[x]'}
                    short: Optical activity type
                    choices: [valueCodeableConcept]
                    index: 92
                  valueCodeableConcept:
                    base: {path: 'Extension.value[x]'}
                    type: CodeableConcept
                    short: Optical activity type
                    choiceOf: value
                    index: 93
            molecularFormula:
              match: {url: null}
              schema:
                short: Molecular formula
                isModifier: false
                index: 94
                elements:
                  value:
                    base: {path: 'Extension.value[x]'}
                    short: Molecular formula
                    choices: [valueString]
                    index: 96
                  valueString:
                    base: {path: 'Extension.value[x]'}
                    type: string
                    short: Molecular formula
                    choiceOf: value
                    index: 97
            molecularFormulaByMoiety:
              match: {url: null}
              schema:
                short: Specified per moiety according to the Hill system, i.e. first C, then H, then alphabetical, each moiety separated by a dot
                isModifier: false
                index: 98
                elements:
                  value:
                    base: {path: 'Extension.value[x]'}
                    short: Specified per moiety according to the Hill system, i.e. first C, then H, then alphabetical, each moiety separated by a dot
                    choices: [valueString]
                    index: 100
                  valueString:
                    base: {path: 'Extension.value[x]'}
                    type: string
                    short: Specified per moiety according to the Hill system, i.e. first C, then H, then alphabetical, each moiety separated by a dot
                    choiceOf: value
                    index: 101
            isotope:
              match: {url: null}
              schema:
                short: Applicable for single substances that contain a radionuclide or a non-natural isotopic ratio
                isModifier: false
                array: true
                index: 102
                extensions:
                  identifier:
                    url: null
                    short: Substance identifier for each non-natural or radioisotope
                    isModifier: false
                    index: 104
                    elements:
                      value:
                        base: {path: 'Extension.value[x]'}
                        short: Substance identifier for each non-natural or radioisotope
                        choices: [valueIdentifier]
                        index: 106
                      valueIdentifier:
                        base: {path: 'Extension.value[x]'}
                        type: Identifier
                        short: Substance identifier for each non-natural or radioisotope
                        choiceOf: value
                        index: 107
                  name:
                    url: null
                    short: Substance name for each non-natural or radioisotope
                    isModifier: false
                    index: 108
                    elements:
                      value:
                        base: {path: 'Extension.value[x]'}
                        short: Substance name for each non-natural or radioisotope
                        choices: [valueCodeableConcept]
                        index: 110
                      valueCodeableConcept:
                        base: {path: 'Extension.value[x]'}
                        type: CodeableConcept
                        short: Substance name for each non-natural or radioisotope
                        choiceOf: value
                        index: 111
                  substitution:
                    url: null
                    short: The type of isotopic substitution present in a single substance
                    isModifier: false
                    index: 112
                    elements:
                      value:
                        base: {path: 'Extension.value[x]'}
                        short: The type of isotopic substitution present in a single substance
                        choices: [valueCodeableConcept]
                        index: 114
                      valueCodeableConcept:
                        base: {path: 'Extension.value[x]'}
                        type: CodeableConcept
                        short: The type of isotopic substitution present in a single substance
                        choiceOf: value
                        index: 115
                  halfLife:
                    url: null
                    short: Half life - for a non-natural nuclide
                    isModifier: false
                    index: 116
                    elements:
                      value:
                        base: {path: 'Extension.value[x]'}
                        short: Half life - for a non-natural nuclide
                        choices: [valueQuantity]
                        index: 118
                      valueQuantity:
                        base: {path: 'Extension.value[x]'}
                        type: Quantity
                        short: Half life - for a non-natural nuclide
                        choiceOf: value
                        index: 119
                  molecularWeight:
                    url: null
                    short: The molecular weight or weight range (for proteins, polymers or nucleic acids)
                    isModifier: false
                    index: 120
                    extensions:
                      method:
                        url: null
                        short: The method by which the molecular weight was determined
                        isModifier: false
                        index: 122
                        elements:
                          value:
                            base: {path: 'Extension.value[x]'}
                            short: The method by which the molecular weight was determined
                            choices: [valueCodeableConcept]
                            index: 124
                          valueCodeableConcept:
                            base: {path: 'Extension.value[x]'}
                            type: CodeableConcept
                            short: The method by which the molecular weight was determined
                            choiceOf: value
                            index: 125
                      type:
                        url: null
                        short: Type of molecular weight such as exact, average (also known as. number average), weight average
                        isModifier: false
                        index: 126
                        elements:
                          value:
                            base: {path: 'Extension.value[x]'}
                            short: Type of molecular weight such as exact, average (also known as. number average), weight average
                            choices: [valueCodeableConcept]
                            index: 128
                          valueCodeableConcept:
                            base: {path: 'Extension.value[x]'}
                            type: CodeableConcept
                            short: Type of molecular weight such as exact, average (also known as. number average), weight average
                            choiceOf: value
                            index: 129
                      amount:
                        url: null
                        short: Used to capture quantitative values for a variety of elements. If only limits are given, the arithmetic mean would be the average. If only a single definite value for a given element is given, it would be captured in this field
                        isModifier: false
                        index: 130
                        elements:
                          value:
                            base: {path: 'Extension.value[x]'}
                            short: Used to capture quantitative values for a variety of elements. If only limits are given, the arithmetic mean would be the average. If only a single definite value for a given element is given, it would be captured in this field
                            choices: [valueQuantity]
                            index: 132
                          valueQuantity:
                            base: {path: 'Extension.value[x]'}
                            type: Quantity
                            short: Used to capture quantitative values for a variety of elements. If only limits are given, the arithmetic mean would be the average. If only a single definite value for a given element is given, it would be captured in this field
                            choiceOf: value
                            index: 133
                    elements:
                      extension:
                        array: true
                        index: 121
                        slicing:
                          rules: closed
                          ordered: false
                          discriminator:
                          - {path: url, type: value}
                          min: 0
                          slices:
                            method:
                              match: {url: null}
                              schema:
                                short: The method by which the molecular weight was determined
                                isModifier: false
                                index: 122
                                elements:
                                  value:
                                    base: {path: 'Extension.value[x]'}
                                    short: The method by which the molecular weight was determined
                                    choices: [valueCodeableConcept]
                                    index: 124
                                  valueCodeableConcept:
                                    base: {path: 'Extension.value[x]'}
                                    type: CodeableConcept
                                    short: The method by which the molecular weight was determined
                                    choiceOf: value
                                    index: 125
                            type:
                              match: {url: null}
                              schema:
                                short: Type of molecular weight such as exact, average (also known as. number average), weight average
                                isModifier: false
                                index: 126
                                elements:
                                  value:
                                    base: {path: 'Extension.value[x]'}
                                    short: Type of molecular weight such as exact, average (also known as. number average), weight average
                                    choices: [valueCodeableConcept]
                                    index: 128
                                  valueCodeableConcept:
                                    base: {path: 'Extension.value[x]'}
                                    type: CodeableConcept
                                    short: Type of molecular weight such as exact, average (also known as. number average), weight average
                                    choiceOf: value
                                    index: 129
                            amount:
                              match: {url: null}
                              schema:
                                short: Used to capture quantitative values for a variety of elements. If only limits are given, the arithmetic mean would be the average. If only a single definite value for a given element is given, it would be captured in this field
                                isModifier: false
                                index: 130
                                elements:
                                  value:
                                    base: {path: 'Extension.value[x]'}
                                    short: Used to capture quantitative values for a variety of elements. If only limits are given, the arithmetic mean would be the average. If only a single definite value for a given element is given, it would be captured in this field
                                    choices: [valueQuantity]
                                    index: 132
                                  valueQuantity:
                                    base: {path: 'Extension.value[x]'}
                                    type: Quantity
                                    short: Used to capture quantitative values for a variety of elements. If only limits are given, the arithmetic mean would be the average. If only a single definite value for a given element is given, it would be captured in this field
                                    choiceOf: value
                                    index: 133
                elements:
                  extension:
                    array: true
                    index: 103
                    slicing:
                      rules: closed
                      ordered: false
                      discriminator:
                      - {path: url, type: value}
                      min: 0
                      slices:
                        identifier:
                          match: {url: null}
                          schema:
                            short: Substance identifier for each non-natural or radioisotope
                            isModifier: false
                            index: 104
                            elements:
                              value:
                                base: {path: 'Extension.value[x]'}
                                short: Substance identifier for each non-natural or radioisotope
                                choices: [valueIdentifier]
                                index: 106
                              valueIdentifier:
                                base: {path: 'Extension.value[x]'}
                                type: Identifier
                                short: Substance identifier for each non-natural or radioisotope
                                choiceOf: value
                                index: 107
                        name:
                          match: {url: null}
                          schema:
                            short: Substance name for each non-natural or radioisotope
                            isModifier: false
                            index: 108
                            elements:
                              value:
                                base: {path: 'Extension.value[x]'}
                                short: Substance name for each non-natural or radioisotope
                                choices: [valueCodeableConcept]
                                index: 110
                              valueCodeableConcept:
                                base: {path: 'Extension.value[x]'}
                                type: CodeableConcept
                                short: Substance name for each non-natural or radioisotope
                                choiceOf: value
                                index: 111
                        substitution:
                          match: {url: null}
                          schema:
                            short: The type of isotopic substitution present in a single substance
                            isModifier: false
                            index: 112
                            elements:
                              value:
                                base: {path: 'Extension.value[x]'}
                                short: The type of isotopic substitution present in a single substance
                                choices: [valueCodeableConcept]
                                index: 114
                              valueCodeableConcept:
                                base: {path: 'Extension.value[x]'}
                                type: CodeableConcept
                                short: The type of isotopic substitution present in a single substance
                                choiceOf: value
                                index: 115
                        halfLife:
                          match: {url: null}
                          schema:
                            short: Half life - for a non-natural nuclide
                            isModifier: false
                            index: 116
                            elements:
                              value:
                                base: {path: 'Extension.value[x]'}
                                short: Half life - for a non-natural nuclide
                                choices: [valueQuantity]
                                index: 118
                              valueQuantity:
                                base: {path: 'Extension.value[x]'}
                                type: Quantity
                                short: Half life - for a non-natural nuclide
                                choiceOf: value
                                index: 119
                        molecularWeight:
                          match: {url: null}
                          schema:
                            short: The molecular weight or weight range (for proteins, polymers or nucleic acids)
                            isModifier: false
                            index: 120
                            extensions:
                              method:
                                url: null
                                short: The method by which the molecular weight was determined
                                isModifier: false
                                index: 122
                                elements:
                                  value:
                                    base: {path: 'Extension.value[x]'}
                                    short: The method by which the molecular weight was determined
                                    choices: [valueCodeableConcept]
                                    index: 124
                                  valueCodeableConcept:
                                    base: {path: 'Extension.value[x]'}
                                    type: CodeableConcept
                                    short: The method by which the molecular weight was determined
                                    choiceOf: value
                                    index: 125
                              type:
                                url: null
                                short: Type of molecular weight such as exact, average (also known as. number average), weight average
                                isModifier: false
                                index: 126
                                elements:
                                  value:
                                    base: {path: 'Extension.value[x]'}
                                    short: Type of molecular weight such as exact, average (also known as. number average), weight average
                                    choices: [valueCodeableConcept]
                                    index: 128
                                  valueCodeableConcept:
                                    base: {path: 'Extension.value[x]'}
                                    type: CodeableConcept
                                    short: Type of molecular weight such as exact, average (also known as. number average), weight average
                                    choiceOf: value
                                    index: 129
                              amount:
                                url: null
                                short: Used to capture quantitative values for a variety of elements. If only limits are given, the arithmetic mean would be the average. If only a single definite value for a given element is given, it would be captured in this field
                                isModifier: false
                                index: 130
                                elements:
                                  value:
                                    base: {path: 'Extension.value[x]'}
                                    short: Used to capture quantitative values for a variety of elements. If only limits are given, the arithmetic mean would be the average. If only a single definite value for a given element is given, it would be captured in this field
                                    choices: [valueQuantity]
                                    index: 132
                                  valueQuantity:
                                    base: {path: 'Extension.value[x]'}
                                    type: Quantity
                                    short: Used to capture quantitative values for a variety of elements. If only limits are given, the arithmetic mean would be the average. If only a single definite value for a given element is given, it would be captured in this field
                                    choiceOf: value
                                    index: 133
                            elements:
                              extension:
                                array: true
                                index: 121
                                slicing:
                                  rules: closed
                                  ordered: false
                                  discriminator:
                                  - {path: url, type: value}
                                  min: 0
                                  slices:
                                    method:
                                      match: {url: null}
                                      schema:
                                        short: The method by which the molecular weight was determined
                                        isModifier: false
                                        index: 122
                                        elements:
                                          value:
                                            base: {path: 'Extension.value[x]'}
                                            short: The method by which the molecular weight was determined
                                            choices: [valueCodeableConcept]
                                            index: 124
                                          valueCodeableConcept:
                                            base: {path: 'Extension.value[x]'}
                                            type: CodeableConcept
                                            short: The method by which the molecular weight was determined
                                            choiceOf: value
                                            index: 125
                                    type:
                                      match: {url: null}
                                      schema:
                                        short: Type of molecular weight such as exact, average (also known as. number average), weight average
                                        isModifier: false
                                        index: 126
                                        elements:
                                          value:
                                            base: {path: 'Extension.value[x]'}
                                            short: Type of molecular weight such as exact, average (also known as. number average), weight average
                                            choices: [valueCodeableConcept]
                                            index: 128
                                          valueCodeableConcept:
                                            base: {path: 'Extension.value[x]'}
                                            type: CodeableConcept
                                            short: Type of molecular weight such as exact, average (also known as. number average), weight average
                                            choiceOf: value
                                            index: 129
                                    amount:
                                      match: {url: null}
                                      schema:
                                        short: Used to capture quantitative values for a variety of elements. If only limits are given, the arithmetic mean would be the average. If only a single definite value for a given element is given, it would be captured in this field
                                        isModifier: false
                                        index: 130
                                        elements:
                                          value:
                                            base: {path: 'Extension.value[x]'}
                                            short: Used to capture quantitative values for a variety of elements. If only limits are given, the arithmetic mean would be the average. If only a single definite value for a given element is given, it would be captured in this field
                                            choices: [valueQuantity]
                                            index: 132
                                          valueQuantity:
                                            base: {path: 'Extension.value[x]'}
                                            type: Quantity
                                            short: Used to capture quantitative values for a variety of elements. If only limits are given, the arithmetic mean would be the average. If only a single definite value for a given element is given, it would be captured in this field
                                            choiceOf: value
                                            index: 133
            molecularWeight:
              match: {url: null}
              schema:
                short: The molecular weight or weight range (for proteins, polymers or nucleic acids)
                isModifier: false
                index: 134
                extensions:
                  _datatype:
                    url: http://hl7.org/fhir/StructureDefinition/_datatype
                    type: Extension
                    short: Data type name for SubstanceSpecification.structure.molecularWeight from FHIR R4
                    index: 135
                    elements:
                      value:
                        base: {path: 'Extension.value[x]'}
                        pattern: {type: string, value: SubstanceSpecification.structure.isotope.molecularWeight}
                        choices: [valueString]
                        type: string
                        index: 137
                      valueString:
                        type: string
                        pattern: {type: string, value: SubstanceSpecification.structure.isotope.molecularWeight}
                        base: {path: 'Extension.value[x]'}
                        choiceOf: value
                        index: 138
                    required: [value, valueString]
                elements:
                  extension:
                    type: Extension
                    short: Data type name for SubstanceSpecification.structure.molecularWeight from FHIR R4
                    url: http://hl7.org/fhir/StructureDefinition/_datatype
                    index: 135
                    slicing:
                      slices:
                        _datatype:
                          match: {}
                          schema:
                            type: Extension
                            short: Data type name for SubstanceSpecification.structure.molecularWeight from FHIR R4
                            url: http://hl7.org/fhir/StructureDefinition/_datatype
                            index: 135
                            elements:
                              value:
                                base: {path: 'Extension.value[x]'}
                                pattern: {type: string, value: SubstanceSpecification.structure.isotope.molecularWeight}
                                choices: [valueString]
                                type: string
                                index: 137
                              valueString:
                                type: string
                                pattern: {type: string, value: SubstanceSpecification.structure.isotope.molecularWeight}
                                base: {path: 'Extension.value[x]'}
                                choiceOf: value
                                index: 138
                            required: [value, valueString]
            source:
              match: {url: null}
              schema:
                short: Supporting literature
                isModifier: false
                array: true
                index: 139
                elements:
                  value:
                    base: {path: 'Extension.value[x]'}
                    short: Supporting literature
                    choices: [valueReference]
                    index: 141
                  valueReference:
                    base: {path: 'Extension.value[x]'}
                    type: Reference
                    short: Supporting literature
                    choiceOf: value
                    refers: ['http://hl7.org/fhir/StructureDefinition/DocumentReference']
                    index: 142
            representation:
              match: {url: null}
              schema:
                short: Molecular structural representation
                isModifier: false
                array: true
                index: 143
                extensions:
                  type:
                    url: null
                    short: The type of structure (e.g. Full, Partial, Representative)
                    isModifier: false
                    index: 145
                    elements:
                      value:
                        base: {path: 'Extension.value[x]'}
                        short: The type of structure (e.g. Full, Partial, Representative)
                        choices: [valueCodeableConcept]
                        index: 147
                      valueCodeableConcept:
                        base: {path: 'Extension.value[x]'}
                        type: CodeableConcept
                        short: The type of structure (e.g. Full, Partial, Representative)
                        choiceOf: value
                        index: 148
                  representation:
                    url: null
                    short: The structural representation as text string in a format e.g. InChI, SMILES, MOLFILE, CDX
                    isModifier: false
                    index: 149
                    elements:
                      value:
                        base: {path: 'Extension.value[x]'}
                        short: The structural representation as text string in a format e.g. InChI, SMILES, MOLFILE, CDX
                        choices: [valueString]
                        index: 151
                      valueString:
                        base: {path: 'Extension.value[x]'}
                        type: string
                        short: The structural representation as text string in a format e.g. InChI, SMILES, MOLFILE, CDX
                        choiceOf: value
                        index: 152
                  attachment:
                    url: null
                    short: An attached file with the structural representation
                    isModifier: false
                    index: 153
                    elements:
                      value:
                        base: {path: 'Extension.value[x]'}
                        short: An attached file with the structural representation
                        choices: [valueAttachment]
                        index: 155
                      valueAttachment:
                        base: {path: 'Extension.value[x]'}
                        type: Attachment
                        short: An attached file with the structural representation
                        choiceOf: value
                        index: 156
                elements:
                  extension:
                    array: true
                    index: 144
                    slicing:
                      rules: closed
                      ordered: false
                      discriminator:
                      - {path: url, type: value}
                      min: 0
                      slices:
                        type:
                          match: {url: null}
                          schema:
                            short: The type of structure (e.g. Full, Partial, Representative)
                            isModifier: false
                            index: 145
                            elements:
                              value:
                                base: {path: 'Extension.value[x]'}
                                short: The type of structure (e.g. Full, Partial, Representative)
                                choices: [valueCodeableConcept]
                                index: 147
                              valueCodeableConcept:
                                base: {path: 'Extension.value[x]'}
                                type: CodeableConcept
                                short: The type of structure (e.g. Full, Partial, Representative)
                                choiceOf: value
                                index: 148
                        representation:
                          match: {url: null}
                          schema:
                            short: The structural representation as text string in a format e.g. InChI, SMILES, MOLFILE, CDX
                            isModifier: false
                            index: 149
                            elements:
                              value:
                                base: {path: 'Extension.value[x]'}
                                short: The structural representation as text string in a format e.g. InChI, SMILES, MOLFILE, CDX
                                choices: [valueString]
                                index: 151
                              valueString:
                                base: {path: 'Extension.value[x]'}
                                type: string
                                short: The structural representation as text string in a format e.g. InChI, SMILES, MOLFILE, CDX
                                choiceOf: value
                                index: 152
                        attachment:
                          match: {url: null}
                          schema:
                            short: An attached file with the structural representation
                            isModifier: false
                            index: 153
                            elements:
                              value:
                                base: {path: 'Extension.value[x]'}
                                short: An attached file with the structural representation
                                choices: [valueAttachment]
                                index: 155
                              valueAttachment:
                                base: {path: 'Extension.value[x]'}
                                type: Attachment
                                short: An attached file with the structural representation
                                choiceOf: value
                                index: 156
  status:
    url: null
    short: Status of substance within the catalogue e.g. approved
    isModifier: false
    index: 5
    elements:
      value:
        base: {path: 'Extension.value[x]'}
        short: Status of substance within the catalogue e.g. approved
        choices: [valueCodeableConcept]
        index: 7
      valueCodeableConcept:
        base: {path: 'Extension.value[x]'}
        type: CodeableConcept
        short: Status of substance within the catalogue e.g. approved
        choiceOf: value
        index: 8
  comment:
    url: null
    short: Textual comment about this record of a substance
    isModifier: false
    index: 21
    elements:
      value:
        base: {path: 'Extension.value[x]'}
        short: Textual comment about this record of a substance
        choices: [valueString]
        index: 23
      valueString:
        base: {path: 'Extension.value[x]'}
        type: string
        short: Textual comment about this record of a substance
        choiceOf: value
        index: 24
  molecularWeight:
    url: null
    short: The molecular weight or weight range (for proteins, polymers or nucleic acids)
    isModifier: false
    array: true
    index: 215
    extensions:
      _datatype:
        url: http://hl7.org/fhir/StructureDefinition/_datatype
        type: Extension
        short: Data type name for SubstanceSpecification.molecularWeight from FHIR R4
        index: 216
        elements:
          value:
            base: {path: 'Extension.value[x]'}
            pattern: {type: string, value: SubstanceSpecification.structure.isotope.molecularWeight}
            choices: [valueString]
            type: string
            index: 218
          valueString:
            type: string
            pattern: {type: string, value: SubstanceSpecification.structure.isotope.molecularWeight}
            base: {path: 'Extension.value[x]'}
            choiceOf: value
            index: 219
        required: [value, valueString]
    elements:
      extension:
        type: Extension
        short: Data type name for SubstanceSpecification.molecularWeight from FHIR R4
        url: http://hl7.org/fhir/StructureDefinition/_datatype
        index: 216
        slicing:
          slices:
            _datatype:
              match: {}
              schema:
                type: Extension
                short: Data type name for SubstanceSpecification.molecularWeight from FHIR R4
                url: http://hl7.org/fhir/StructureDefinition/_datatype
                index: 216
                elements:
                  value:
                    base: {path: 'Extension.value[x]'}
                    pattern: {type: string, value: SubstanceSpecification.structure.isotope.molecularWeight}
                    choices: [valueString]
                    type: string
                    index: 218
                  valueString:
                    type: string
                    pattern: {type: string, value: SubstanceSpecification.structure.isotope.molecularWeight}
                    base: {path: 'Extension.value[x]'}
                    choiceOf: value
                    index: 219
                required: [value, valueString]
  polymer:
    url: null
    short: Data items specific to polymers
    isModifier: false
    index: 258
    elements:
      value:
        base: {path: 'Extension.value[x]'}
        short: Data items specific to polymers
        choices: [valueReference]
        index: 260
      valueReference:
        base: {path: 'Extension.value[x]'}
        type: Reference
        short: Data items specific to polymers
        choiceOf: value
        refers: ['http://hl7.org/fhir/StructureDefinition/SubstancePolymer']
        index: 261
  protein:
    url: null
    short: Data items specific to proteins
    isModifier: false
    index: 262
    elements:
      value:
        base: {path: 'Extension.value[x]'}
        short: Data items specific to proteins
        choices: [valueReference]
        index: 264
      valueReference:
        base: {path: 'Extension.value[x]'}
        type: Reference
        short: Data items specific to proteins
        choiceOf: value
        refers: ['http://hl7.org/fhir/StructureDefinition/SubstanceProtein']
        index: 265
  domain:
    url: null
    short: If the substance applies to only human or veterinary use
    isModifier: false
    index: 9
    elements:
      value:
        base: {path: 'Extension.value[x]'}
        short: If the substance applies to only human or veterinary use
        choices: [valueCodeableConcept]
        index: 11
      valueCodeableConcept:
        base: {path: 'Extension.value[x]'}
        type: CodeableConcept
        short: If the substance applies to only human or veterinary use
        choiceOf: value
        index: 12
  sourceMaterial:
    url: null
    short: Material or taxonomic/anatomical source for the substance
    isModifier: false
    index: 266
    elements:
      value:
        base: {path: 'Extension.value[x]'}
        short: Material or taxonomic/anatomical source for the substance
        choices: [valueReference]
        index: 268
      valueReference:
        base: {path: 'Extension.value[x]'}
        type: Reference
        short: Material or taxonomic/anatomical source for the substance
        choiceOf: value
        refers: ['http://hl7.org/fhir/StructureDefinition/SubstanceSourceMaterial']
        index: 269
class: extension
kind: complex-type
url: http://hl7.org/fhir/4.0/StructureDefinition/extension-SubstanceSpecification
base: http://hl7.org/fhir/StructureDefinition/Extension
version: 0.0.1-snapshot-1
required: [url]