PackagesCanonicalsLogsProblems
    Packages
    hl7.fhir.uv.xver-r4.r5@0.0.1-snapshot-2
    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:
    base: {max: '*', min: 0, path: Extension.extension}
    array: true
    index: 0
    slicing:
      rules: closed
      ordered: false
      discriminator:
      - {path: url, type: value}
      min: 0
      slices:
        description:
          match: {url: description}
          schema:
            base: {max: '*', min: 0, path: Extension.extension}
            short: Textual description of the substance
            index: 16
            elements:
              url:
                base: {max: '1', min: 1, path: Extension.url}
                pattern: {type: Uri, value: description}
                index: 17
              value:
                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                short: Textual description of the substance
                choices: [valueString]
                index: 19
              valueString:
                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                type: string
                short: Textual description of the substance
                choiceOf: value
                index: 20
            required: [url]
        property:
          match: {url: property}
          schema:
            base: {max: '*', min: 0, path: Extension.extension}
            short: General specifications for this substance, including how it is related to other substances
            array: true
            index: 70
            extensions:
              category:
                url: category
                base: {max: '*', min: 0, path: Extension.extension}
                short: A category for this property, e.g. Physical, Chemical, Enzymatic
                index: 72
                elements:
                  url:
                    base: {max: '1', min: 1, path: Extension.url}
                    pattern: {type: Uri, value: category}
                    index: 73
                  value:
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    short: A category for this property, e.g. Physical, Chemical, Enzymatic
                    choices: [valueCodeableConcept]
                    index: 75
                  valueCodeableConcept:
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    type: CodeableConcept
                    short: A category for this property, e.g. Physical, Chemical, Enzymatic
                    choiceOf: value
                    index: 76
                required: [url]
              code:
                url: code
                base: {max: '*', min: 0, path: Extension.extension}
                short: Property type e.g. viscosity, pH, isoelectric point
                index: 77
                elements:
                  url:
                    base: {max: '1', min: 1, path: Extension.url}
                    pattern: {type: Uri, value: code}
                    index: 78
                  value:
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    short: Property type e.g. viscosity, pH, isoelectric point
                    choices: [valueCodeableConcept]
                    index: 80
                  valueCodeableConcept:
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    type: CodeableConcept
                    short: Property type e.g. viscosity, pH, isoelectric point
                    choiceOf: value
                    index: 81
                required: [url]
              parameters:
                url: parameters
                base: {max: '*', min: 0, path: Extension.extension}
                short: 'Parameters that were used in the measurement of a property (e.g. for viscosity: measured at 20C with a pH of 7.1)'
                index: 82
                elements:
                  url:
                    base: {max: '1', min: 1, path: Extension.url}
                    pattern: {type: Uri, value: parameters}
                    index: 83
                  value:
                    base: {max: '1', min: 0, 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: 85
                  valueString:
                    base: {max: '1', min: 0, 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: 86
                required: [url]
              definingSubstance[x]:
                url: definingSubstance[x]
                base: {max: '*', min: 0, path: Extension.extension}
                short: 'A substance upon which a defining property depends (e.g. for solubility: in water, in alcohol)'
                index: 87
                elements:
                  url:
                    base: {max: '1', min: 1, path: Extension.url}
                    pattern: {type: Uri, value: 'definingSubstance[x]'}
                    index: 88
                  value:
                    base: {max: '1', min: 0, 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: 90
                  valueReference:
                    base: {max: '1', min: 0, 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
                    index: 91
                  valueCodeableConcept:
                    base: {max: '1', min: 0, 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: 92
                required: [url]
              amount[x]:
                url: amount[x]
                base: {max: '*', min: 0, path: Extension.extension}
                short: Quantitative value for this property
                index: 93
                elements:
                  url:
                    base: {max: '1', min: 1, path: Extension.url}
                    pattern: {type: Uri, value: 'amount[x]'}
                    index: 94
                  value:
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    short: Quantitative value for this property
                    choices: [valueQuantity, valueString]
                    index: 96
                  valueQuantity:
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    type: Quantity
                    short: Quantitative value for this property
                    choiceOf: value
                    index: 97
                  valueString:
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    type: string
                    short: Quantitative value for this property
                    choiceOf: value
                    index: 98
                required: [url]
            elements:
              extension:
                base: {max: '*', min: 0, path: Extension.extension}
                array: true
                index: 71
                slicing:
                  rules: closed
                  ordered: false
                  discriminator:
                  - {path: url, type: value}
                  min: 0
                  slices:
                    category:
                      match: {url: category}
                      schema:
                        base: {max: '*', min: 0, path: Extension.extension}
                        short: A category for this property, e.g. Physical, Chemical, Enzymatic
                        index: 72
                        elements:
                          url:
                            base: {max: '1', min: 1, path: Extension.url}
                            pattern: {type: Uri, value: category}
                            index: 73
                          value:
                            base: {max: '1', min: 0, path: 'Extension.value[x]'}
                            short: A category for this property, e.g. Physical, Chemical, Enzymatic
                            choices: [valueCodeableConcept]
                            index: 75
                          valueCodeableConcept:
                            base: {max: '1', min: 0, path: 'Extension.value[x]'}
                            type: CodeableConcept
                            short: A category for this property, e.g. Physical, Chemical, Enzymatic
                            choiceOf: value
                            index: 76
                        required: [url]
                    code:
                      match: {url: code}
                      schema:
                        base: {max: '*', min: 0, path: Extension.extension}
                        short: Property type e.g. viscosity, pH, isoelectric point
                        index: 77
                        elements:
                          url:
                            base: {max: '1', min: 1, path: Extension.url}
                            pattern: {type: Uri, value: code}
                            index: 78
                          value:
                            base: {max: '1', min: 0, path: 'Extension.value[x]'}
                            short: Property type e.g. viscosity, pH, isoelectric point
                            choices: [valueCodeableConcept]
                            index: 80
                          valueCodeableConcept:
                            base: {max: '1', min: 0, path: 'Extension.value[x]'}
                            type: CodeableConcept
                            short: Property type e.g. viscosity, pH, isoelectric point
                            choiceOf: value
                            index: 81
                        required: [url]
                    parameters:
                      match: {url: parameters}
                      schema:
                        base: {max: '*', min: 0, path: Extension.extension}
                        short: 'Parameters that were used in the measurement of a property (e.g. for viscosity: measured at 20C with a pH of 7.1)'
                        index: 82
                        elements:
                          url:
                            base: {max: '1', min: 1, path: Extension.url}
                            pattern: {type: Uri, value: parameters}
                            index: 83
                          value:
                            base: {max: '1', min: 0, 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: 85
                          valueString:
                            base: {max: '1', min: 0, 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: 86
                        required: [url]
                    definingSubstance[x]:
                      match: {url: 'definingSubstance[x]'}
                      schema:
                        base: {max: '*', min: 0, path: Extension.extension}
                        short: 'A substance upon which a defining property depends (e.g. for solubility: in water, in alcohol)'
                        index: 87
                        elements:
                          url:
                            base: {max: '1', min: 1, path: Extension.url}
                            pattern: {type: Uri, value: 'definingSubstance[x]'}
                            index: 88
                          value:
                            base: {max: '1', min: 0, 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: 90
                          valueReference:
                            base: {max: '1', min: 0, 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
                            index: 91
                          valueCodeableConcept:
                            base: {max: '1', min: 0, 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: 92
                        required: [url]
                    amount[x]:
                      match: {url: 'amount[x]'}
                      schema:
                        base: {max: '*', min: 0, path: Extension.extension}
                        short: Quantitative value for this property
                        index: 93
                        elements:
                          url:
                            base: {max: '1', min: 1, path: Extension.url}
                            pattern: {type: Uri, value: 'amount[x]'}
                            index: 94
                          value:
                            base: {max: '1', min: 0, path: 'Extension.value[x]'}
                            short: Quantitative value for this property
                            choices: [valueQuantity, valueString]
                            index: 96
                          valueQuantity:
                            base: {max: '1', min: 0, path: 'Extension.value[x]'}
                            type: Quantity
                            short: Quantitative value for this property
                            choiceOf: value
                            index: 97
                          valueString:
                            base: {max: '1', min: 0, path: 'Extension.value[x]'}
                            type: string
                            short: Quantitative value for this property
                            choiceOf: value
                            index: 98
                        required: [url]
              url:
                base: {max: '1', min: 1, path: Extension.url}
                pattern: {type: Uri, value: property}
                index: 99
            required: [url]
        name:
          match: {url: name}
          schema:
            base: {max: '*', min: 0, path: Extension.extension}
            short: Names applicable to this substance
            array: true
            index: 199
            extensions:
              official:
                url: official
                base: {max: '*', min: 0, path: Extension.extension}
                short: Details of the official nature of this name
                array: true
                index: 250
                extensions:
                  authority:
                    url: authority
                    base: {max: '*', min: 0, path: Extension.extension}
                    short: Which authority uses this official name
                    index: 252
                    elements:
                      url:
                        base: {max: '1', min: 1, path: Extension.url}
                        pattern: {type: Uri, value: authority}
                        index: 253
                      value:
                        base: {max: '1', min: 0, path: 'Extension.value[x]'}
                        short: Which authority uses this official name
                        choices: [valueCodeableConcept]
                        index: 255
                      valueCodeableConcept:
                        base: {max: '1', min: 0, path: 'Extension.value[x]'}
                        type: CodeableConcept
                        short: Which authority uses this official name
                        choiceOf: value
                        index: 256
                    required: [url]
                  status:
                    url: status
                    base: {max: '*', min: 0, path: Extension.extension}
                    short: The status of the official name
                    index: 257
                    elements:
                      url:
                        base: {max: '1', min: 1, path: Extension.url}
                        pattern: {type: Uri, value: status}
                        index: 258
                      value:
                        base: {max: '1', min: 0, path: 'Extension.value[x]'}
                        short: The status of the official name
                        choices: [valueCodeableConcept]
                        index: 260
                      valueCodeableConcept:
                        base: {max: '1', min: 0, path: 'Extension.value[x]'}
                        type: CodeableConcept
                        short: The status of the official name
                        choiceOf: value
                        index: 261
                    required: [url]
                  date:
                    url: date
                    base: {max: '*', min: 0, path: Extension.extension}
                    short: Date of official name change
                    index: 262
                    elements:
                      url:
                        base: {max: '1', min: 1, path: Extension.url}
                        pattern: {type: Uri, value: date}
                        index: 263
                      value:
                        base: {max: '1', min: 0, path: 'Extension.value[x]'}
                        short: Date of official name change
                        choices: [valueDateTime]
                        index: 265
                      valueDateTime:
                        base: {max: '1', min: 0, path: 'Extension.value[x]'}
                        type: dateTime
                        short: Date of official name change
                        choiceOf: value
                        index: 266
                    required: [url]
                elements:
                  extension:
                    base: {max: '*', min: 0, path: Extension.extension}
                    array: true
                    index: 251
                    slicing:
                      rules: closed
                      ordered: false
                      discriminator:
                      - {path: url, type: value}
                      min: 0
                      slices:
                        authority:
                          match: {url: authority}
                          schema:
                            base: {max: '*', min: 0, path: Extension.extension}
                            short: Which authority uses this official name
                            index: 252
                            elements:
                              url:
                                base: {max: '1', min: 1, path: Extension.url}
                                pattern: {type: Uri, value: authority}
                                index: 253
                              value:
                                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                short: Which authority uses this official name
                                choices: [valueCodeableConcept]
                                index: 255
                              valueCodeableConcept:
                                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                type: CodeableConcept
                                short: Which authority uses this official name
                                choiceOf: value
                                index: 256
                            required: [url]
                        status:
                          match: {url: status}
                          schema:
                            base: {max: '*', min: 0, path: Extension.extension}
                            short: The status of the official name
                            index: 257
                            elements:
                              url:
                                base: {max: '1', min: 1, path: Extension.url}
                                pattern: {type: Uri, value: status}
                                index: 258
                              value:
                                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                short: The status of the official name
                                choices: [valueCodeableConcept]
                                index: 260
                              valueCodeableConcept:
                                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                type: CodeableConcept
                                short: The status of the official name
                                choiceOf: value
                                index: 261
                            required: [url]
                        date:
                          match: {url: date}
                          schema:
                            base: {max: '*', min: 0, path: Extension.extension}
                            short: Date of official name change
                            index: 262
                            elements:
                              url:
                                base: {max: '1', min: 1, path: Extension.url}
                                pattern: {type: Uri, value: date}
                                index: 263
                              value:
                                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                short: Date of official name change
                                choices: [valueDateTime]
                                index: 265
                              valueDateTime:
                                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                type: dateTime
                                short: Date of official name change
                                choiceOf: value
                                index: 266
                            required: [url]
                  url:
                    base: {max: '1', min: 1, path: Extension.url}
                    pattern: {type: Uri, value: official}
                    index: 267
                required: [url]
              jurisdiction:
                url: jurisdiction
                base: {max: '*', min: 0, path: Extension.extension}
                short: The jurisdiction where this name applies
                array: true
                index: 231
                elements:
                  url:
                    base: {max: '1', min: 1, path: Extension.url}
                    pattern: {type: Uri, value: jurisdiction}
                    index: 232
                  value:
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    short: The jurisdiction where this name applies
                    choices: [valueCodeableConcept]
                    index: 234
                  valueCodeableConcept:
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    type: CodeableConcept
                    short: The jurisdiction where this name applies
                    choiceOf: value
                    index: 235
                required: [url]
              name:
                url: name
                base: {max: '*', min: 0, path: Extension.extension}
                short: The actual name
                _required: true
                index: 201
                elements:
                  url:
                    base: {max: '1', min: 1, path: Extension.url}
                    pattern: {type: Uri, value: name}
                    index: 202
                  value:
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    short: The actual name
                    choices: [valueString]
                    index: 204
                  valueString:
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    type: string
                    short: The actual name
                    choiceOf: value
                    index: 205
                required: [url]
              type:
                url: type
                base: {max: '*', min: 0, path: Extension.extension}
                short: Name type
                index: 206
                elements:
                  url:
                    base: {max: '1', min: 1, path: Extension.url}
                    pattern: {type: Uri, value: type}
                    index: 207
                  value:
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    short: Name type
                    choices: [valueCodeableConcept]
                    index: 209
                  valueCodeableConcept:
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    type: CodeableConcept
                    short: Name type
                    choiceOf: value
                    index: 210
                required: [url]
              source:
                url: source
                base: {max: '*', min: 0, path: Extension.extension}
                short: Supporting literature
                array: true
                index: 268
                elements:
                  url:
                    base: {max: '1', min: 1, path: Extension.url}
                    pattern: {type: Uri, value: source}
                    index: 269
                  value:
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    short: Supporting literature
                    choices: [valueReference]
                    index: 271
                  valueReference:
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    type: Reference
                    short: Supporting literature
                    choiceOf: value
                    index: 272
                required: [url]
              status:
                url: status
                base: {max: '*', min: 0, path: Extension.extension}
                short: The status of the name
                index: 211
                elements:
                  url:
                    base: {max: '1', min: 1, path: Extension.url}
                    pattern: {type: Uri, value: status}
                    index: 212
                  value:
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    short: The status of the name
                    choices: [valueCodeableConcept]
                    index: 214
                  valueCodeableConcept:
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    type: CodeableConcept
                    short: The status of the name
                    choiceOf: value
                    index: 215
                required: [url]
              language:
                url: language
                base: {max: '*', min: 0, path: Extension.extension}
                short: Language of the name
                array: true
                index: 221
                elements:
                  url:
                    base: {max: '1', min: 1, path: Extension.url}
                    pattern: {type: Uri, value: language}
                    index: 222
                  value:
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    short: Language of the name
                    choices: [valueCodeableConcept]
                    index: 224
                  valueCodeableConcept:
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    type: CodeableConcept
                    short: Language of the name
                    choiceOf: value
                    index: 225
                required: [url]
              synonym:
                url: synonym
                base: {max: '*', min: 0, path: Extension.extension}
                short: A synonym of this name
                array: true
                index: 236
                extensions:
                  _datatype:
                    url: http://hl7.org/fhir/StructureDefinition/_datatype|5.2.0
                    type: Extension
                    short: Data type name for SubstanceSpecification.name.synonym from FHIR R4
                    index: 238
                    elements:
                      value:
                        base: {max: '1', min: 0, path: 'Extension.value[x]'}
                        pattern: {type: String, value: SubstanceSpecification.name}
                        choices: [valueString]
                        index: 240
                      valueString:
                        type: string
                        pattern: {type: String, value: SubstanceSpecification.name}
                        base: {max: '1', min: 0, path: 'Extension.value[x]'}
                        choiceOf: value
                        index: 241
                    required: [valueString, value]
                elements:
                  extension:
                    base: {max: '*', min: 0, path: Extension.extension}
                    array: true
                    index: 237
                    slicing:
                      rules: closed
                      ordered: false
                      discriminator:
                      - {path: url, type: value}
                      min: 0
                      slices:
                        _datatype:
                          match: {url: null}
                          schema:
                            type: Extension
                            short: Data type name for SubstanceSpecification.name.synonym from FHIR R4
                            url: http://hl7.org/fhir/StructureDefinition/_datatype|5.2.0
                            index: 238
                            elements:
                              value:
                                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                pattern: {type: String, value: SubstanceSpecification.name}
                                choices: [valueString]
                                index: 240
                              valueString:
                                type: string
                                pattern: {type: String, value: SubstanceSpecification.name}
                                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                choiceOf: value
                                index: 241
                            required: [valueString, value]
                  url:
                    base: {max: '1', min: 1, path: Extension.url}
                    pattern: {type: Uri, value: synonym}
                    index: 242
                required: [url]
              translation:
                url: translation
                base: {max: '*', min: 0, path: Extension.extension}
                short: A translation for this name
                array: true
                index: 243
                extensions:
                  _datatype:
                    url: http://hl7.org/fhir/StructureDefinition/_datatype|5.2.0
                    type: Extension
                    short: Data type name for SubstanceSpecification.name.translation from FHIR R4
                    index: 245
                    elements:
                      value:
                        base: {max: '1', min: 0, path: 'Extension.value[x]'}
                        pattern: {type: String, value: SubstanceSpecification.name}
                        choices: [valueString]
                        index: 247
                      valueString:
                        type: string
                        pattern: {type: String, value: SubstanceSpecification.name}
                        base: {max: '1', min: 0, path: 'Extension.value[x]'}
                        choiceOf: value
                        index: 248
                    required: [valueString, value]
                elements:
                  extension:
                    base: {max: '*', min: 0, path: Extension.extension}
                    array: true
                    index: 244
                    slicing:
                      rules: closed
                      ordered: false
                      discriminator:
                      - {path: url, type: value}
                      min: 0
                      slices:
                        _datatype:
                          match: {url: null}
                          schema:
                            type: Extension
                            short: Data type name for SubstanceSpecification.name.translation from FHIR R4
                            url: http://hl7.org/fhir/StructureDefinition/_datatype|5.2.0
                            index: 245
                            elements:
                              value:
                                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                pattern: {type: String, value: SubstanceSpecification.name}
                                choices: [valueString]
                                index: 247
                              valueString:
                                type: string
                                pattern: {type: String, value: SubstanceSpecification.name}
                                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                choiceOf: value
                                index: 248
                            required: [valueString, value]
                  url:
                    base: {max: '1', min: 1, path: Extension.url}
                    pattern: {type: Uri, value: translation}
                    index: 249
                required: [url]
              preferred:
                url: preferred
                base: {max: '*', min: 0, path: Extension.extension}
                short: If this is the preferred name for this substance
                index: 216
                elements:
                  url:
                    base: {max: '1', min: 1, path: Extension.url}
                    pattern: {type: Uri, value: preferred}
                    index: 217
                  value:
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    short: If this is the preferred name for this substance
                    choices: [valueBoolean]
                    index: 219
                  valueBoolean:
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    type: boolean
                    short: If this is the preferred name for this substance
                    choiceOf: value
                    index: 220
                required: [url]
              domain:
                url: domain
                base: {max: '*', min: 0, path: Extension.extension}
                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
                array: true
                index: 226
                elements:
                  url:
                    base: {max: '1', min: 1, path: Extension.url}
                    pattern: {type: Uri, value: domain}
                    index: 227
                  value:
                    base: {max: '1', min: 0, 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: 229
                  valueCodeableConcept:
                    base: {max: '1', min: 0, 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: 230
                required: [url]
            elements:
              extension:
                base: {max: '*', min: 0, path: Extension.extension}
                array: true
                min: 1
                index: 200
                slicing:
                  rules: closed
                  ordered: false
                  discriminator:
                  - {path: url, type: value}
                  min: 1
                  slices:
                    official:
                      match: {url: official}
                      schema:
                        base: {max: '*', min: 0, path: Extension.extension}
                        short: Details of the official nature of this name
                        array: true
                        index: 250
                        extensions:
                          authority:
                            url: authority
                            base: {max: '*', min: 0, path: Extension.extension}
                            short: Which authority uses this official name
                            index: 252
                            elements:
                              url:
                                base: {max: '1', min: 1, path: Extension.url}
                                pattern: {type: Uri, value: authority}
                                index: 253
                              value:
                                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                short: Which authority uses this official name
                                choices: [valueCodeableConcept]
                                index: 255
                              valueCodeableConcept:
                                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                type: CodeableConcept
                                short: Which authority uses this official name
                                choiceOf: value
                                index: 256
                            required: [url]
                          status:
                            url: status
                            base: {max: '*', min: 0, path: Extension.extension}
                            short: The status of the official name
                            index: 257
                            elements:
                              url:
                                base: {max: '1', min: 1, path: Extension.url}
                                pattern: {type: Uri, value: status}
                                index: 258
                              value:
                                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                short: The status of the official name
                                choices: [valueCodeableConcept]
                                index: 260
                              valueCodeableConcept:
                                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                type: CodeableConcept
                                short: The status of the official name
                                choiceOf: value
                                index: 261
                            required: [url]
                          date:
                            url: date
                            base: {max: '*', min: 0, path: Extension.extension}
                            short: Date of official name change
                            index: 262
                            elements:
                              url:
                                base: {max: '1', min: 1, path: Extension.url}
                                pattern: {type: Uri, value: date}
                                index: 263
                              value:
                                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                short: Date of official name change
                                choices: [valueDateTime]
                                index: 265
                              valueDateTime:
                                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                type: dateTime
                                short: Date of official name change
                                choiceOf: value
                                index: 266
                            required: [url]
                        elements:
                          extension:
                            base: {max: '*', min: 0, path: Extension.extension}
                            array: true
                            index: 251
                            slicing:
                              rules: closed
                              ordered: false
                              discriminator:
                              - {path: url, type: value}
                              min: 0
                              slices:
                                authority:
                                  match: {url: authority}
                                  schema:
                                    base: {max: '*', min: 0, path: Extension.extension}
                                    short: Which authority uses this official name
                                    index: 252
                                    elements:
                                      url:
                                        base: {max: '1', min: 1, path: Extension.url}
                                        pattern: {type: Uri, value: authority}
                                        index: 253
                                      value:
                                        base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                        short: Which authority uses this official name
                                        choices: [valueCodeableConcept]
                                        index: 255
                                      valueCodeableConcept:
                                        base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                        type: CodeableConcept
                                        short: Which authority uses this official name
                                        choiceOf: value
                                        index: 256
                                    required: [url]
                                status:
                                  match: {url: status}
                                  schema:
                                    base: {max: '*', min: 0, path: Extension.extension}
                                    short: The status of the official name
                                    index: 257
                                    elements:
                                      url:
                                        base: {max: '1', min: 1, path: Extension.url}
                                        pattern: {type: Uri, value: status}
                                        index: 258
                                      value:
                                        base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                        short: The status of the official name
                                        choices: [valueCodeableConcept]
                                        index: 260
                                      valueCodeableConcept:
                                        base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                        type: CodeableConcept
                                        short: The status of the official name
                                        choiceOf: value
                                        index: 261
                                    required: [url]
                                date:
                                  match: {url: date}
                                  schema:
                                    base: {max: '*', min: 0, path: Extension.extension}
                                    short: Date of official name change
                                    index: 262
                                    elements:
                                      url:
                                        base: {max: '1', min: 1, path: Extension.url}
                                        pattern: {type: Uri, value: date}
                                        index: 263
                                      value:
                                        base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                        short: Date of official name change
                                        choices: [valueDateTime]
                                        index: 265
                                      valueDateTime:
                                        base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                        type: dateTime
                                        short: Date of official name change
                                        choiceOf: value
                                        index: 266
                                    required: [url]
                          url:
                            base: {max: '1', min: 1, path: Extension.url}
                            pattern: {type: Uri, value: official}
                            index: 267
                        required: [url]
                    jurisdiction:
                      match: {url: jurisdiction}
                      schema:
                        base: {max: '*', min: 0, path: Extension.extension}
                        short: The jurisdiction where this name applies
                        array: true
                        index: 231
                        elements:
                          url:
                            base: {max: '1', min: 1, path: Extension.url}
                            pattern: {type: Uri, value: jurisdiction}
                            index: 232
                          value:
                            base: {max: '1', min: 0, path: 'Extension.value[x]'}
                            short: The jurisdiction where this name applies
                            choices: [valueCodeableConcept]
                            index: 234
                          valueCodeableConcept:
                            base: {max: '1', min: 0, path: 'Extension.value[x]'}
                            type: CodeableConcept
                            short: The jurisdiction where this name applies
                            choiceOf: value
                            index: 235
                        required: [url]
                    name:
                      match: {url: name}
                      schema:
                        base: {max: '*', min: 0, path: Extension.extension}
                        short: The actual name
                        _required: true
                        index: 201
                        elements:
                          url:
                            base: {max: '1', min: 1, path: Extension.url}
                            pattern: {type: Uri, value: name}
                            index: 202
                          value:
                            base: {max: '1', min: 0, path: 'Extension.value[x]'}
                            short: The actual name
                            choices: [valueString]
                            index: 204
                          valueString:
                            base: {max: '1', min: 0, path: 'Extension.value[x]'}
                            type: string
                            short: The actual name
                            choiceOf: value
                            index: 205
                        required: [url]
                    type:
                      match: {url: type}
                      schema:
                        base: {max: '*', min: 0, path: Extension.extension}
                        short: Name type
                        index: 206
                        elements:
                          url:
                            base: {max: '1', min: 1, path: Extension.url}
                            pattern: {type: Uri, value: type}
                            index: 207
                          value:
                            base: {max: '1', min: 0, path: 'Extension.value[x]'}
                            short: Name type
                            choices: [valueCodeableConcept]
                            index: 209
                          valueCodeableConcept:
                            base: {max: '1', min: 0, path: 'Extension.value[x]'}
                            type: CodeableConcept
                            short: Name type
                            choiceOf: value
                            index: 210
                        required: [url]
                    source:
                      match: {url: source}
                      schema:
                        base: {max: '*', min: 0, path: Extension.extension}
                        short: Supporting literature
                        array: true
                        index: 268
                        elements:
                          url:
                            base: {max: '1', min: 1, path: Extension.url}
                            pattern: {type: Uri, value: source}
                            index: 269
                          value:
                            base: {max: '1', min: 0, path: 'Extension.value[x]'}
                            short: Supporting literature
                            choices: [valueReference]
                            index: 271
                          valueReference:
                            base: {max: '1', min: 0, path: 'Extension.value[x]'}
                            type: Reference
                            short: Supporting literature
                            choiceOf: value
                            index: 272
                        required: [url]
                    status:
                      match: {url: status}
                      schema:
                        base: {max: '*', min: 0, path: Extension.extension}
                        short: The status of the name
                        index: 211
                        elements:
                          url:
                            base: {max: '1', min: 1, path: Extension.url}
                            pattern: {type: Uri, value: status}
                            index: 212
                          value:
                            base: {max: '1', min: 0, path: 'Extension.value[x]'}
                            short: The status of the name
                            choices: [valueCodeableConcept]
                            index: 214
                          valueCodeableConcept:
                            base: {max: '1', min: 0, path: 'Extension.value[x]'}
                            type: CodeableConcept
                            short: The status of the name
                            choiceOf: value
                            index: 215
                        required: [url]
                    language:
                      match: {url: language}
                      schema:
                        base: {max: '*', min: 0, path: Extension.extension}
                        short: Language of the name
                        array: true
                        index: 221
                        elements:
                          url:
                            base: {max: '1', min: 1, path: Extension.url}
                            pattern: {type: Uri, value: language}
                            index: 222
                          value:
                            base: {max: '1', min: 0, path: 'Extension.value[x]'}
                            short: Language of the name
                            choices: [valueCodeableConcept]
                            index: 224
                          valueCodeableConcept:
                            base: {max: '1', min: 0, path: 'Extension.value[x]'}
                            type: CodeableConcept
                            short: Language of the name
                            choiceOf: value
                            index: 225
                        required: [url]
                    synonym:
                      match: {url: synonym}
                      schema:
                        base: {max: '*', min: 0, path: Extension.extension}
                        short: A synonym of this name
                        array: true
                        index: 236
                        extensions:
                          _datatype:
                            url: http://hl7.org/fhir/StructureDefinition/_datatype|5.2.0
                            type: Extension
                            short: Data type name for SubstanceSpecification.name.synonym from FHIR R4
                            index: 238
                            elements:
                              value:
                                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                pattern: {type: String, value: SubstanceSpecification.name}
                                choices: [valueString]
                                index: 240
                              valueString:
                                type: string
                                pattern: {type: String, value: SubstanceSpecification.name}
                                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                choiceOf: value
                                index: 241
                            required: [valueString, value]
                        elements:
                          extension:
                            base: {max: '*', min: 0, path: Extension.extension}
                            array: true
                            index: 237
                            slicing:
                              rules: closed
                              ordered: false
                              discriminator:
                              - {path: url, type: value}
                              min: 0
                              slices:
                                _datatype:
                                  match: {url: null}
                                  schema:
                                    type: Extension
                                    short: Data type name for SubstanceSpecification.name.synonym from FHIR R4
                                    url: http://hl7.org/fhir/StructureDefinition/_datatype|5.2.0
                                    index: 238
                                    elements:
                                      value:
                                        base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                        pattern: {type: String, value: SubstanceSpecification.name}
                                        choices: [valueString]
                                        index: 240
                                      valueString:
                                        type: string
                                        pattern: {type: String, value: SubstanceSpecification.name}
                                        base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                        choiceOf: value
                                        index: 241
                                    required: [valueString, value]
                          url:
                            base: {max: '1', min: 1, path: Extension.url}
                            pattern: {type: Uri, value: synonym}
                            index: 242
                        required: [url]
                    translation:
                      match: {url: translation}
                      schema:
                        base: {max: '*', min: 0, path: Extension.extension}
                        short: A translation for this name
                        array: true
                        index: 243
                        extensions:
                          _datatype:
                            url: http://hl7.org/fhir/StructureDefinition/_datatype|5.2.0
                            type: Extension
                            short: Data type name for SubstanceSpecification.name.translation from FHIR R4
                            index: 245
                            elements:
                              value:
                                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                pattern: {type: String, value: SubstanceSpecification.name}
                                choices: [valueString]
                                index: 247
                              valueString:
                                type: string
                                pattern: {type: String, value: SubstanceSpecification.name}
                                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                choiceOf: value
                                index: 248
                            required: [valueString, value]
                        elements:
                          extension:
                            base: {max: '*', min: 0, path: Extension.extension}
                            array: true
                            index: 244
                            slicing:
                              rules: closed
                              ordered: false
                              discriminator:
                              - {path: url, type: value}
                              min: 0
                              slices:
                                _datatype:
                                  match: {url: null}
                                  schema:
                                    type: Extension
                                    short: Data type name for SubstanceSpecification.name.translation from FHIR R4
                                    url: http://hl7.org/fhir/StructureDefinition/_datatype|5.2.0
                                    index: 245
                                    elements:
                                      value:
                                        base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                        pattern: {type: String, value: SubstanceSpecification.name}
                                        choices: [valueString]
                                        index: 247
                                      valueString:
                                        type: string
                                        pattern: {type: String, value: SubstanceSpecification.name}
                                        base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                        choiceOf: value
                                        index: 248
                                    required: [valueString, value]
                          url:
                            base: {max: '1', min: 1, path: Extension.url}
                            pattern: {type: Uri, value: translation}
                            index: 249
                        required: [url]
                    preferred:
                      match: {url: preferred}
                      schema:
                        base: {max: '*', min: 0, path: Extension.extension}
                        short: If this is the preferred name for this substance
                        index: 216
                        elements:
                          url:
                            base: {max: '1', min: 1, path: Extension.url}
                            pattern: {type: Uri, value: preferred}
                            index: 217
                          value:
                            base: {max: '1', min: 0, path: 'Extension.value[x]'}
                            short: If this is the preferred name for this substance
                            choices: [valueBoolean]
                            index: 219
                          valueBoolean:
                            base: {max: '1', min: 0, path: 'Extension.value[x]'}
                            type: boolean
                            short: If this is the preferred name for this substance
                            choiceOf: value
                            index: 220
                        required: [url]
                    domain:
                      match: {url: domain}
                      schema:
                        base: {max: '*', min: 0, path: Extension.extension}
                        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
                        array: true
                        index: 226
                        elements:
                          url:
                            base: {max: '1', min: 1, path: Extension.url}
                            pattern: {type: Uri, value: domain}
                            index: 227
                          value:
                            base: {max: '1', min: 0, 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: 229
                          valueCodeableConcept:
                            base: {max: '1', min: 0, 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: 230
                        required: [url]
              url:
                base: {max: '1', min: 1, path: Extension.url}
                pattern: {type: Uri, value: name}
                index: 273
            required: [url, extension]
        referenceInformation:
          match: {url: referenceInformation}
          schema:
            base: {max: '*', min: 0, path: Extension.extension}
            short: General information detailing this substance
            index: 100
            elements:
              url:
                base: {max: '1', min: 1, path: Extension.url}
                pattern: {type: Uri, value: referenceInformation}
                index: 101
              value:
                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                short: General information detailing this substance
                choices: [valueReference]
                index: 103
              valueReference:
                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                type: Reference
                short: General information detailing this substance
                choiceOf: value
                index: 104
            required: [url]
        relationship:
          match: {url: relationship}
          schema:
            base: {max: '*', min: 0, path: Extension.extension}
            short: A link between this substance and another, with details of the relationship
            array: true
            index: 281
            extensions:
              substance[x]:
                url: substance[x]
                base: {max: '*', min: 0, path: Extension.extension}
                short: A pointer to another substance, as a resource or just a representational code
                index: 283
                elements:
                  url:
                    base: {max: '1', min: 1, path: Extension.url}
                    pattern: {type: Uri, value: 'substance[x]'}
                    index: 284
                  value:
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    short: A pointer to another substance, as a resource or just a representational code
                    choices: [valueReference, valueCodeableConcept]
                    index: 286
                  valueReference:
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    type: Reference
                    short: A pointer to another substance, as a resource or just a representational code
                    choiceOf: value
                    index: 287
                  valueCodeableConcept:
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    type: CodeableConcept
                    short: A pointer to another substance, as a resource or just a representational code
                    choiceOf: value
                    index: 288
                required: [url]
              relationship:
                url: relationship
                base: {max: '*', min: 0, path: Extension.extension}
                short: For example "salt to parent", "active moiety", "starting material"
                index: 289
                elements:
                  url:
                    base: {max: '1', min: 1, path: Extension.url}
                    pattern: {type: Uri, value: relationship}
                    index: 290
                  value:
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    short: For example "salt to parent", "active moiety", "starting material"
                    choices: [valueCodeableConcept]
                    index: 292
                  valueCodeableConcept:
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    type: CodeableConcept
                    short: For example "salt to parent", "active moiety", "starting material"
                    choiceOf: value
                    index: 293
                required: [url]
              isDefining:
                url: isDefining
                base: {max: '*', min: 0, path: Extension.extension}
                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
                index: 294
                elements:
                  url:
                    base: {max: '1', min: 1, path: Extension.url}
                    pattern: {type: Uri, value: isDefining}
                    index: 295
                  value:
                    base: {max: '1', min: 0, 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: 297
                  valueBoolean:
                    base: {max: '1', min: 0, 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: 298
                required: [url]
              amount[x]:
                url: amount[x]
                base: {max: '*', min: 0, path: Extension.extension}
                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
                index: 299
                elements:
                  url:
                    base: {max: '1', min: 1, path: Extension.url}
                    pattern: {type: Uri, value: 'amount[x]'}
                    index: 300
                  value:
                    base: {max: '1', min: 0, 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: 302
                  valueQuantity:
                    base: {max: '1', min: 0, 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: 303
                  valueRange:
                    base: {max: '1', min: 0, 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: 304
                  valueRatio:
                    base: {max: '1', min: 0, 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: 305
                  valueString:
                    base: {max: '1', min: 0, 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: 306
                required: [url]
              amountRatioLowLimit:
                url: amountRatioLowLimit
                base: {max: '*', min: 0, path: Extension.extension}
                short: For use when the numeric
                index: 307
                elements:
                  url:
                    base: {max: '1', min: 1, path: Extension.url}
                    pattern: {type: Uri, value: amountRatioLowLimit}
                    index: 308
                  value:
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    short: For use when the numeric
                    choices: [valueRatio]
                    index: 310
                  valueRatio:
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    type: Ratio
                    short: For use when the numeric
                    choiceOf: value
                    index: 311
                required: [url]
              amountType:
                url: amountType
                base: {max: '*', min: 0, path: Extension.extension}
                short: An operator for the amount, for example "average", "approximately", "less than"
                index: 312
                elements:
                  url:
                    base: {max: '1', min: 1, path: Extension.url}
                    pattern: {type: Uri, value: amountType}
                    index: 313
                  value:
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    short: An operator for the amount, for example "average", "approximately", "less than"
                    choices: [valueCodeableConcept]
                    index: 315
                  valueCodeableConcept:
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    type: CodeableConcept
                    short: An operator for the amount, for example "average", "approximately", "less than"
                    choiceOf: value
                    index: 316
                required: [url]
              source:
                url: source
                base: {max: '*', min: 0, path: Extension.extension}
                short: Supporting literature
                array: true
                index: 317
                elements:
                  url:
                    base: {max: '1', min: 1, path: Extension.url}
                    pattern: {type: Uri, value: source}
                    index: 318
                  value:
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    short: Supporting literature
                    choices: [valueReference]
                    index: 320
                  valueReference:
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    type: Reference
                    short: Supporting literature
                    choiceOf: value
                    index: 321
                required: [url]
            elements:
              extension:
                base: {max: '*', min: 0, path: Extension.extension}
                array: true
                index: 282
                slicing:
                  rules: closed
                  ordered: false
                  discriminator:
                  - {path: url, type: value}
                  min: 0
                  slices:
                    substance[x]:
                      match: {url: 'substance[x]'}
                      schema:
                        base: {max: '*', min: 0, path: Extension.extension}
                        short: A pointer to another substance, as a resource or just a representational code
                        index: 283
                        elements:
                          url:
                            base: {max: '1', min: 1, path: Extension.url}
                            pattern: {type: Uri, value: 'substance[x]'}
                            index: 284
                          value:
                            base: {max: '1', min: 0, path: 'Extension.value[x]'}
                            short: A pointer to another substance, as a resource or just a representational code
                            choices: [valueReference, valueCodeableConcept]
                            index: 286
                          valueReference:
                            base: {max: '1', min: 0, path: 'Extension.value[x]'}
                            type: Reference
                            short: A pointer to another substance, as a resource or just a representational code
                            choiceOf: value
                            index: 287
                          valueCodeableConcept:
                            base: {max: '1', min: 0, path: 'Extension.value[x]'}
                            type: CodeableConcept
                            short: A pointer to another substance, as a resource or just a representational code
                            choiceOf: value
                            index: 288
                        required: [url]
                    relationship:
                      match: {url: relationship}
                      schema:
                        base: {max: '*', min: 0, path: Extension.extension}
                        short: For example "salt to parent", "active moiety", "starting material"
                        index: 289
                        elements:
                          url:
                            base: {max: '1', min: 1, path: Extension.url}
                            pattern: {type: Uri, value: relationship}
                            index: 290
                          value:
                            base: {max: '1', min: 0, path: 'Extension.value[x]'}
                            short: For example "salt to parent", "active moiety", "starting material"
                            choices: [valueCodeableConcept]
                            index: 292
                          valueCodeableConcept:
                            base: {max: '1', min: 0, path: 'Extension.value[x]'}
                            type: CodeableConcept
                            short: For example "salt to parent", "active moiety", "starting material"
                            choiceOf: value
                            index: 293
                        required: [url]
                    isDefining:
                      match: {url: isDefining}
                      schema:
                        base: {max: '*', min: 0, path: Extension.extension}
                        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
                        index: 294
                        elements:
                          url:
                            base: {max: '1', min: 1, path: Extension.url}
                            pattern: {type: Uri, value: isDefining}
                            index: 295
                          value:
                            base: {max: '1', min: 0, 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: 297
                          valueBoolean:
                            base: {max: '1', min: 0, 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: 298
                        required: [url]
                    amount[x]:
                      match: {url: 'amount[x]'}
                      schema:
                        base: {max: '*', min: 0, path: Extension.extension}
                        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
                        index: 299
                        elements:
                          url:
                            base: {max: '1', min: 1, path: Extension.url}
                            pattern: {type: Uri, value: 'amount[x]'}
                            index: 300
                          value:
                            base: {max: '1', min: 0, 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: 302
                          valueQuantity:
                            base: {max: '1', min: 0, 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: 303
                          valueRange:
                            base: {max: '1', min: 0, 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: 304
                          valueRatio:
                            base: {max: '1', min: 0, 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: 305
                          valueString:
                            base: {max: '1', min: 0, 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: 306
                        required: [url]
                    amountRatioLowLimit:
                      match: {url: amountRatioLowLimit}
                      schema:
                        base: {max: '*', min: 0, path: Extension.extension}
                        short: For use when the numeric
                        index: 307
                        elements:
                          url:
                            base: {max: '1', min: 1, path: Extension.url}
                            pattern: {type: Uri, value: amountRatioLowLimit}
                            index: 308
                          value:
                            base: {max: '1', min: 0, path: 'Extension.value[x]'}
                            short: For use when the numeric
                            choices: [valueRatio]
                            index: 310
                          valueRatio:
                            base: {max: '1', min: 0, path: 'Extension.value[x]'}
                            type: Ratio
                            short: For use when the numeric
                            choiceOf: value
                            index: 311
                        required: [url]
                    amountType:
                      match: {url: amountType}
                      schema:
                        base: {max: '*', min: 0, path: Extension.extension}
                        short: An operator for the amount, for example "average", "approximately", "less than"
                        index: 312
                        elements:
                          url:
                            base: {max: '1', min: 1, path: Extension.url}
                            pattern: {type: Uri, value: amountType}
                            index: 313
                          value:
                            base: {max: '1', min: 0, path: 'Extension.value[x]'}
                            short: An operator for the amount, for example "average", "approximately", "less than"
                            choices: [valueCodeableConcept]
                            index: 315
                          valueCodeableConcept:
                            base: {max: '1', min: 0, path: 'Extension.value[x]'}
                            type: CodeableConcept
                            short: An operator for the amount, for example "average", "approximately", "less than"
                            choiceOf: value
                            index: 316
                        required: [url]
                    source:
                      match: {url: source}
                      schema:
                        base: {max: '*', min: 0, path: Extension.extension}
                        short: Supporting literature
                        array: true
                        index: 317
                        elements:
                          url:
                            base: {max: '1', min: 1, path: Extension.url}
                            pattern: {type: Uri, value: source}
                            index: 318
                          value:
                            base: {max: '1', min: 0, path: 'Extension.value[x]'}
                            short: Supporting literature
                            choices: [valueReference]
                            index: 320
                          valueReference:
                            base: {max: '1', min: 0, path: 'Extension.value[x]'}
                            type: Reference
                            short: Supporting literature
                            choiceOf: value
                            index: 321
                        required: [url]
              url:
                base: {max: '1', min: 1, path: Extension.url}
                pattern: {type: Uri, value: relationship}
                index: 322
            required: [url]
        type:
          match: {url: type}
          schema:
            base: {max: '*', min: 0, path: Extension.extension}
            short: High level categorization, e.g. polymer or nucleic acid
            index: 1
            elements:
              url:
                base: {max: '1', min: 1, path: Extension.url}
                pattern: {type: Uri, value: type}
                index: 2
              value:
                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                short: High level categorization, e.g. polymer or nucleic acid
                choices: [valueCodeableConcept]
                index: 4
              valueCodeableConcept:
                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                type: CodeableConcept
                short: High level categorization, e.g. polymer or nucleic acid
                choiceOf: value
                index: 5
            required: [url]
        moiety:
          match: {url: moiety}
          schema:
            base: {max: '*', min: 0, path: Extension.extension}
            short: Moiety, for structural modifications
            array: true
            index: 31
            extensions:
              role:
                url: role
                base: {max: '*', min: 0, path: Extension.extension}
                short: Role that the moiety is playing
                index: 33
                elements:
                  url:
                    base: {max: '1', min: 1, path: Extension.url}
                    pattern: {type: Uri, value: role}
                    index: 34
                  value:
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    short: Role that the moiety is playing
                    choices: [valueCodeableConcept]
                    index: 36
                  valueCodeableConcept:
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    type: CodeableConcept
                    short: Role that the moiety is playing
                    choiceOf: value
                    index: 37
                required: [url]
              identifier:
                url: identifier
                base: {max: '*', min: 0, path: Extension.extension}
                short: Identifier by which this moiety substance is known
                index: 38
                elements:
                  url:
                    base: {max: '1', min: 1, path: Extension.url}
                    pattern: {type: Uri, value: identifier}
                    index: 39
                  value:
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    short: Identifier by which this moiety substance is known
                    choices: [valueIdentifier]
                    index: 41
                  valueIdentifier:
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    type: Identifier
                    short: Identifier by which this moiety substance is known
                    choiceOf: value
                    index: 42
                required: [url]
              name:
                url: name
                base: {max: '*', min: 0, path: Extension.extension}
                short: Textual name for this moiety substance
                index: 43
                elements:
                  url:
                    base: {max: '1', min: 1, path: Extension.url}
                    pattern: {type: Uri, value: name}
                    index: 44
                  value:
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    short: Textual name for this moiety substance
                    choices: [valueString]
                    index: 46
                  valueString:
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    type: string
                    short: Textual name for this moiety substance
                    choiceOf: value
                    index: 47
                required: [url]
              stereochemistry:
                url: stereochemistry
                base: {max: '*', min: 0, path: Extension.extension}
                short: Stereochemistry type
                index: 48
                elements:
                  url:
                    base: {max: '1', min: 1, path: Extension.url}
                    pattern: {type: Uri, value: stereochemistry}
                    index: 49
                  value:
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    short: Stereochemistry type
                    choices: [valueCodeableConcept]
                    index: 51
                  valueCodeableConcept:
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    type: CodeableConcept
                    short: Stereochemistry type
                    choiceOf: value
                    index: 52
                required: [url]
              opticalActivity:
                url: opticalActivity
                base: {max: '*', min: 0, path: Extension.extension}
                short: Optical activity type
                index: 53
                elements:
                  url:
                    base: {max: '1', min: 1, path: Extension.url}
                    pattern: {type: Uri, value: opticalActivity}
                    index: 54
                  value:
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    short: Optical activity type
                    choices: [valueCodeableConcept]
                    index: 56
                  valueCodeableConcept:
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    type: CodeableConcept
                    short: Optical activity type
                    choiceOf: value
                    index: 57
                required: [url]
              molecularFormula:
                url: molecularFormula
                base: {max: '*', min: 0, path: Extension.extension}
                short: Molecular formula
                index: 58
                elements:
                  url:
                    base: {max: '1', min: 1, path: Extension.url}
                    pattern: {type: Uri, value: molecularFormula}
                    index: 59
                  value:
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    short: Molecular formula
                    choices: [valueString]
                    index: 61
                  valueString:
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    type: string
                    short: Molecular formula
                    choiceOf: value
                    index: 62
                required: [url]
              amount[x]:
                url: amount[x]
                base: {max: '*', min: 0, path: Extension.extension}
                short: Quantitative value for this moiety
                index: 63
                elements:
                  url:
                    base: {max: '1', min: 1, path: Extension.url}
                    pattern: {type: Uri, value: 'amount[x]'}
                    index: 64
                  value:
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    short: Quantitative value for this moiety
                    choices: [valueQuantity, valueString]
                    index: 66
                  valueQuantity:
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    type: Quantity
                    short: Quantitative value for this moiety
                    choiceOf: value
                    index: 67
                  valueString:
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    type: string
                    short: Quantitative value for this moiety
                    choiceOf: value
                    index: 68
                required: [url]
            elements:
              extension:
                base: {max: '*', min: 0, path: Extension.extension}
                array: true
                index: 32
                slicing:
                  rules: closed
                  ordered: false
                  discriminator:
                  - {path: url, type: value}
                  min: 0
                  slices:
                    role:
                      match: {url: role}
                      schema:
                        base: {max: '*', min: 0, path: Extension.extension}
                        short: Role that the moiety is playing
                        index: 33
                        elements:
                          url:
                            base: {max: '1', min: 1, path: Extension.url}
                            pattern: {type: Uri, value: role}
                            index: 34
                          value:
                            base: {max: '1', min: 0, path: 'Extension.value[x]'}
                            short: Role that the moiety is playing
                            choices: [valueCodeableConcept]
                            index: 36
                          valueCodeableConcept:
                            base: {max: '1', min: 0, path: 'Extension.value[x]'}
                            type: CodeableConcept
                            short: Role that the moiety is playing
                            choiceOf: value
                            index: 37
                        required: [url]
                    identifier:
                      match: {url: identifier}
                      schema:
                        base: {max: '*', min: 0, path: Extension.extension}
                        short: Identifier by which this moiety substance is known
                        index: 38
                        elements:
                          url:
                            base: {max: '1', min: 1, path: Extension.url}
                            pattern: {type: Uri, value: identifier}
                            index: 39
                          value:
                            base: {max: '1', min: 0, path: 'Extension.value[x]'}
                            short: Identifier by which this moiety substance is known
                            choices: [valueIdentifier]
                            index: 41
                          valueIdentifier:
                            base: {max: '1', min: 0, path: 'Extension.value[x]'}
                            type: Identifier
                            short: Identifier by which this moiety substance is known
                            choiceOf: value
                            index: 42
                        required: [url]
                    name:
                      match: {url: name}
                      schema:
                        base: {max: '*', min: 0, path: Extension.extension}
                        short: Textual name for this moiety substance
                        index: 43
                        elements:
                          url:
                            base: {max: '1', min: 1, path: Extension.url}
                            pattern: {type: Uri, value: name}
                            index: 44
                          value:
                            base: {max: '1', min: 0, path: 'Extension.value[x]'}
                            short: Textual name for this moiety substance
                            choices: [valueString]
                            index: 46
                          valueString:
                            base: {max: '1', min: 0, path: 'Extension.value[x]'}
                            type: string
                            short: Textual name for this moiety substance
                            choiceOf: value
                            index: 47
                        required: [url]
                    stereochemistry:
                      match: {url: stereochemistry}
                      schema:
                        base: {max: '*', min: 0, path: Extension.extension}
                        short: Stereochemistry type
                        index: 48
                        elements:
                          url:
                            base: {max: '1', min: 1, path: Extension.url}
                            pattern: {type: Uri, value: stereochemistry}
                            index: 49
                          value:
                            base: {max: '1', min: 0, path: 'Extension.value[x]'}
                            short: Stereochemistry type
                            choices: [valueCodeableConcept]
                            index: 51
                          valueCodeableConcept:
                            base: {max: '1', min: 0, path: 'Extension.value[x]'}
                            type: CodeableConcept
                            short: Stereochemistry type
                            choiceOf: value
                            index: 52
                        required: [url]
                    opticalActivity:
                      match: {url: opticalActivity}
                      schema:
                        base: {max: '*', min: 0, path: Extension.extension}
                        short: Optical activity type
                        index: 53
                        elements:
                          url:
                            base: {max: '1', min: 1, path: Extension.url}
                            pattern: {type: Uri, value: opticalActivity}
                            index: 54
                          value:
                            base: {max: '1', min: 0, path: 'Extension.value[x]'}
                            short: Optical activity type
                            choices: [valueCodeableConcept]
                            index: 56
                          valueCodeableConcept:
                            base: {max: '1', min: 0, path: 'Extension.value[x]'}
                            type: CodeableConcept
                            short: Optical activity type
                            choiceOf: value
                            index: 57
                        required: [url]
                    molecularFormula:
                      match: {url: molecularFormula}
                      schema:
                        base: {max: '*', min: 0, path: Extension.extension}
                        short: Molecular formula
                        index: 58
                        elements:
                          url:
                            base: {max: '1', min: 1, path: Extension.url}
                            pattern: {type: Uri, value: molecularFormula}
                            index: 59
                          value:
                            base: {max: '1', min: 0, path: 'Extension.value[x]'}
                            short: Molecular formula
                            choices: [valueString]
                            index: 61
                          valueString:
                            base: {max: '1', min: 0, path: 'Extension.value[x]'}
                            type: string
                            short: Molecular formula
                            choiceOf: value
                            index: 62
                        required: [url]
                    amount[x]:
                      match: {url: 'amount[x]'}
                      schema:
                        base: {max: '*', min: 0, path: Extension.extension}
                        short: Quantitative value for this moiety
                        index: 63
                        elements:
                          url:
                            base: {max: '1', min: 1, path: Extension.url}
                            pattern: {type: Uri, value: 'amount[x]'}
                            index: 64
                          value:
                            base: {max: '1', min: 0, path: 'Extension.value[x]'}
                            short: Quantitative value for this moiety
                            choices: [valueQuantity, valueString]
                            index: 66
                          valueQuantity:
                            base: {max: '1', min: 0, path: 'Extension.value[x]'}
                            type: Quantity
                            short: Quantitative value for this moiety
                            choiceOf: value
                            index: 67
                          valueString:
                            base: {max: '1', min: 0, path: 'Extension.value[x]'}
                            type: string
                            short: Quantitative value for this moiety
                            choiceOf: value
                            index: 68
                        required: [url]
              url:
                base: {max: '1', min: 1, path: Extension.url}
                pattern: {type: Uri, value: moiety}
                index: 69
            required: [url]
        source:
          match: {url: source}
          schema:
            base: {max: '*', min: 0, path: Extension.extension}
            short: Supporting literature
            array: true
            index: 21
            elements:
              url:
                base: {max: '1', min: 1, path: Extension.url}
                pattern: {type: Uri, value: source}
                index: 22
              value:
                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                short: Supporting literature
                choices: [valueReference]
                index: 24
              valueReference:
                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                type: Reference
                short: Supporting literature
                choiceOf: value
                index: 25
            required: [url]
        nucleicAcid:
          match: {url: nucleicAcid}
          schema:
            base: {max: '*', min: 0, path: Extension.extension}
            short: Data items specific to nucleic acids
            index: 323
            elements:
              url:
                base: {max: '1', min: 1, path: Extension.url}
                pattern: {type: Uri, value: nucleicAcid}
                index: 324
              value:
                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                short: Data items specific to nucleic acids
                choices: [valueReference]
                index: 326
              valueReference:
                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                type: Reference
                short: Data items specific to nucleic acids
                choiceOf: value
                index: 327
            required: [url]
        structure:
          match: {url: structure}
          schema:
            base: {max: '*', min: 0, path: Extension.extension}
            short: Structural information
            index: 105
            extensions:
              stereochemistry:
                url: stereochemistry
                base: {max: '*', min: 0, path: Extension.extension}
                short: Stereochemistry type
                index: 107
                elements:
                  url:
                    base: {max: '1', min: 1, path: Extension.url}
                    pattern: {type: Uri, value: stereochemistry}
                    index: 108
                  value:
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    short: Stereochemistry type
                    choices: [valueCodeableConcept]
                    index: 110
                  valueCodeableConcept:
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    type: CodeableConcept
                    short: Stereochemistry type
                    choiceOf: value
                    index: 111
                required: [url]
              opticalActivity:
                url: opticalActivity
                base: {max: '*', min: 0, path: Extension.extension}
                short: Optical activity type
                index: 112
                elements:
                  url:
                    base: {max: '1', min: 1, path: Extension.url}
                    pattern: {type: Uri, value: opticalActivity}
                    index: 113
                  value:
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    short: Optical activity type
                    choices: [valueCodeableConcept]
                    index: 115
                  valueCodeableConcept:
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    type: CodeableConcept
                    short: Optical activity type
                    choiceOf: value
                    index: 116
                required: [url]
              molecularFormula:
                url: molecularFormula
                base: {max: '*', min: 0, path: Extension.extension}
                short: Molecular formula
                index: 117
                elements:
                  url:
                    base: {max: '1', min: 1, path: Extension.url}
                    pattern: {type: Uri, value: molecularFormula}
                    index: 118
                  value:
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    short: Molecular formula
                    choices: [valueString]
                    index: 120
                  valueString:
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    type: string
                    short: Molecular formula
                    choiceOf: value
                    index: 121
                required: [url]
              molecularFormulaByMoiety:
                url: molecularFormulaByMoiety
                base: {max: '*', min: 0, path: Extension.extension}
                short: Specified per moiety according to the Hill system, i.e. first C, then H, then alphabetical, each moiety separated by a dot
                index: 122
                elements:
                  url:
                    base: {max: '1', min: 1, path: Extension.url}
                    pattern: {type: Uri, value: molecularFormulaByMoiety}
                    index: 123
                  value:
                    base: {max: '1', min: 0, 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: 125
                  valueString:
                    base: {max: '1', min: 0, 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: 126
                required: [url]
              isotope:
                url: isotope
                base: {max: '*', min: 0, path: Extension.extension}
                short: Applicable for single substances that contain a radionuclide or a non-natural isotopic ratio
                array: true
                index: 127
                extensions:
                  identifier:
                    url: identifier
                    base: {max: '*', min: 0, path: Extension.extension}
                    short: Substance identifier for each non-natural or radioisotope
                    index: 129
                    elements:
                      url:
                        base: {max: '1', min: 1, path: Extension.url}
                        pattern: {type: Uri, value: identifier}
                        index: 130
                      value:
                        base: {max: '1', min: 0, path: 'Extension.value[x]'}
                        short: Substance identifier for each non-natural or radioisotope
                        choices: [valueIdentifier]
                        index: 132
                      valueIdentifier:
                        base: {max: '1', min: 0, path: 'Extension.value[x]'}
                        type: Identifier
                        short: Substance identifier for each non-natural or radioisotope
                        choiceOf: value
                        index: 133
                    required: [url]
                  name:
                    url: name
                    base: {max: '*', min: 0, path: Extension.extension}
                    short: Substance name for each non-natural or radioisotope
                    index: 134
                    elements:
                      url:
                        base: {max: '1', min: 1, path: Extension.url}
                        pattern: {type: Uri, value: name}
                        index: 135
                      value:
                        base: {max: '1', min: 0, path: 'Extension.value[x]'}
                        short: Substance name for each non-natural or radioisotope
                        choices: [valueCodeableConcept]
                        index: 137
                      valueCodeableConcept:
                        base: {max: '1', min: 0, path: 'Extension.value[x]'}
                        type: CodeableConcept
                        short: Substance name for each non-natural or radioisotope
                        choiceOf: value
                        index: 138
                    required: [url]
                  substitution:
                    url: substitution
                    base: {max: '*', min: 0, path: Extension.extension}
                    short: The type of isotopic substitution present in a single substance
                    index: 139
                    elements:
                      url:
                        base: {max: '1', min: 1, path: Extension.url}
                        pattern: {type: Uri, value: substitution}
                        index: 140
                      value:
                        base: {max: '1', min: 0, path: 'Extension.value[x]'}
                        short: The type of isotopic substitution present in a single substance
                        choices: [valueCodeableConcept]
                        index: 142
                      valueCodeableConcept:
                        base: {max: '1', min: 0, path: 'Extension.value[x]'}
                        type: CodeableConcept
                        short: The type of isotopic substitution present in a single substance
                        choiceOf: value
                        index: 143
                    required: [url]
                  halfLife:
                    url: halfLife
                    base: {max: '*', min: 0, path: Extension.extension}
                    short: Half life - for a non-natural nuclide
                    index: 144
                    elements:
                      url:
                        base: {max: '1', min: 1, path: Extension.url}
                        pattern: {type: Uri, value: halfLife}
                        index: 145
                      value:
                        base: {max: '1', min: 0, path: 'Extension.value[x]'}
                        short: Half life - for a non-natural nuclide
                        choices: [valueQuantity]
                        index: 147
                      valueQuantity:
                        base: {max: '1', min: 0, path: 'Extension.value[x]'}
                        type: Quantity
                        short: Half life - for a non-natural nuclide
                        choiceOf: value
                        index: 148
                    required: [url]
                  molecularWeight:
                    url: molecularWeight
                    base: {max: '*', min: 0, path: Extension.extension}
                    short: The molecular weight or weight range (for proteins, polymers or nucleic acids)
                    index: 149
                    extensions:
                      method:
                        url: method
                        base: {max: '*', min: 0, path: Extension.extension}
                        short: The method by which the molecular weight was determined
                        index: 151
                        elements:
                          url:
                            base: {max: '1', min: 1, path: Extension.url}
                            pattern: {type: Uri, value: method}
                            index: 152
                          value:
                            base: {max: '1', min: 0, path: 'Extension.value[x]'}
                            short: The method by which the molecular weight was determined
                            choices: [valueCodeableConcept]
                            index: 154
                          valueCodeableConcept:
                            base: {max: '1', min: 0, path: 'Extension.value[x]'}
                            type: CodeableConcept
                            short: The method by which the molecular weight was determined
                            choiceOf: value
                            index: 155
                        required: [url]
                      type:
                        url: type
                        base: {max: '*', min: 0, path: Extension.extension}
                        short: Type of molecular weight such as exact, average (also known as. number average), weight average
                        index: 156
                        elements:
                          url:
                            base: {max: '1', min: 1, path: Extension.url}
                            pattern: {type: Uri, value: type}
                            index: 157
                          value:
                            base: {max: '1', min: 0, path: 'Extension.value[x]'}
                            short: Type of molecular weight such as exact, average (also known as. number average), weight average
                            choices: [valueCodeableConcept]
                            index: 159
                          valueCodeableConcept:
                            base: {max: '1', min: 0, 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: 160
                        required: [url]
                      amount:
                        url: amount
                        base: {max: '*', min: 0, path: Extension.extension}
                        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
                        index: 161
                        elements:
                          url:
                            base: {max: '1', min: 1, path: Extension.url}
                            pattern: {type: Uri, value: amount}
                            index: 162
                          value:
                            base: {max: '1', min: 0, 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: 164
                          valueQuantity:
                            base: {max: '1', min: 0, 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: 165
                        required: [url]
                    elements:
                      extension:
                        base: {max: '*', min: 0, path: Extension.extension}
                        array: true
                        index: 150
                        slicing:
                          rules: closed
                          ordered: false
                          discriminator:
                          - {path: url, type: value}
                          min: 0
                          slices:
                            method:
                              match: {url: method}
                              schema:
                                base: {max: '*', min: 0, path: Extension.extension}
                                short: The method by which the molecular weight was determined
                                index: 151
                                elements:
                                  url:
                                    base: {max: '1', min: 1, path: Extension.url}
                                    pattern: {type: Uri, value: method}
                                    index: 152
                                  value:
                                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                    short: The method by which the molecular weight was determined
                                    choices: [valueCodeableConcept]
                                    index: 154
                                  valueCodeableConcept:
                                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                    type: CodeableConcept
                                    short: The method by which the molecular weight was determined
                                    choiceOf: value
                                    index: 155
                                required: [url]
                            type:
                              match: {url: type}
                              schema:
                                base: {max: '*', min: 0, path: Extension.extension}
                                short: Type of molecular weight such as exact, average (also known as. number average), weight average
                                index: 156
                                elements:
                                  url:
                                    base: {max: '1', min: 1, path: Extension.url}
                                    pattern: {type: Uri, value: type}
                                    index: 157
                                  value:
                                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                    short: Type of molecular weight such as exact, average (also known as. number average), weight average
                                    choices: [valueCodeableConcept]
                                    index: 159
                                  valueCodeableConcept:
                                    base: {max: '1', min: 0, 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: 160
                                required: [url]
                            amount:
                              match: {url: amount}
                              schema:
                                base: {max: '*', min: 0, path: Extension.extension}
                                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
                                index: 161
                                elements:
                                  url:
                                    base: {max: '1', min: 1, path: Extension.url}
                                    pattern: {type: Uri, value: amount}
                                    index: 162
                                  value:
                                    base: {max: '1', min: 0, 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: 164
                                  valueQuantity:
                                    base: {max: '1', min: 0, 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: 165
                                required: [url]
                      url:
                        base: {max: '1', min: 1, path: Extension.url}
                        pattern: {type: Uri, value: molecularWeight}
                        index: 166
                    required: [url]
                elements:
                  extension:
                    base: {max: '*', min: 0, path: Extension.extension}
                    array: true
                    index: 128
                    slicing:
                      rules: closed
                      ordered: false
                      discriminator:
                      - {path: url, type: value}
                      min: 0
                      slices:
                        identifier:
                          match: {url: identifier}
                          schema:
                            base: {max: '*', min: 0, path: Extension.extension}
                            short: Substance identifier for each non-natural or radioisotope
                            index: 129
                            elements:
                              url:
                                base: {max: '1', min: 1, path: Extension.url}
                                pattern: {type: Uri, value: identifier}
                                index: 130
                              value:
                                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                short: Substance identifier for each non-natural or radioisotope
                                choices: [valueIdentifier]
                                index: 132
                              valueIdentifier:
                                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                type: Identifier
                                short: Substance identifier for each non-natural or radioisotope
                                choiceOf: value
                                index: 133
                            required: [url]
                        name:
                          match: {url: name}
                          schema:
                            base: {max: '*', min: 0, path: Extension.extension}
                            short: Substance name for each non-natural or radioisotope
                            index: 134
                            elements:
                              url:
                                base: {max: '1', min: 1, path: Extension.url}
                                pattern: {type: Uri, value: name}
                                index: 135
                              value:
                                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                short: Substance name for each non-natural or radioisotope
                                choices: [valueCodeableConcept]
                                index: 137
                              valueCodeableConcept:
                                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                type: CodeableConcept
                                short: Substance name for each non-natural or radioisotope
                                choiceOf: value
                                index: 138
                            required: [url]
                        substitution:
                          match: {url: substitution}
                          schema:
                            base: {max: '*', min: 0, path: Extension.extension}
                            short: The type of isotopic substitution present in a single substance
                            index: 139
                            elements:
                              url:
                                base: {max: '1', min: 1, path: Extension.url}
                                pattern: {type: Uri, value: substitution}
                                index: 140
                              value:
                                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                short: The type of isotopic substitution present in a single substance
                                choices: [valueCodeableConcept]
                                index: 142
                              valueCodeableConcept:
                                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                type: CodeableConcept
                                short: The type of isotopic substitution present in a single substance
                                choiceOf: value
                                index: 143
                            required: [url]
                        halfLife:
                          match: {url: halfLife}
                          schema:
                            base: {max: '*', min: 0, path: Extension.extension}
                            short: Half life - for a non-natural nuclide
                            index: 144
                            elements:
                              url:
                                base: {max: '1', min: 1, path: Extension.url}
                                pattern: {type: Uri, value: halfLife}
                                index: 145
                              value:
                                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                short: Half life - for a non-natural nuclide
                                choices: [valueQuantity]
                                index: 147
                              valueQuantity:
                                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                type: Quantity
                                short: Half life - for a non-natural nuclide
                                choiceOf: value
                                index: 148
                            required: [url]
                        molecularWeight:
                          match: {url: molecularWeight}
                          schema:
                            base: {max: '*', min: 0, path: Extension.extension}
                            short: The molecular weight or weight range (for proteins, polymers or nucleic acids)
                            index: 149
                            extensions:
                              method:
                                url: method
                                base: {max: '*', min: 0, path: Extension.extension}
                                short: The method by which the molecular weight was determined
                                index: 151
                                elements:
                                  url:
                                    base: {max: '1', min: 1, path: Extension.url}
                                    pattern: {type: Uri, value: method}
                                    index: 152
                                  value:
                                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                    short: The method by which the molecular weight was determined
                                    choices: [valueCodeableConcept]
                                    index: 154
                                  valueCodeableConcept:
                                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                    type: CodeableConcept
                                    short: The method by which the molecular weight was determined
                                    choiceOf: value
                                    index: 155
                                required: [url]
                              type:
                                url: type
                                base: {max: '*', min: 0, path: Extension.extension}
                                short: Type of molecular weight such as exact, average (also known as. number average), weight average
                                index: 156
                                elements:
                                  url:
                                    base: {max: '1', min: 1, path: Extension.url}
                                    pattern: {type: Uri, value: type}
                                    index: 157
                                  value:
                                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                    short: Type of molecular weight such as exact, average (also known as. number average), weight average
                                    choices: [valueCodeableConcept]
                                    index: 159
                                  valueCodeableConcept:
                                    base: {max: '1', min: 0, 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: 160
                                required: [url]
                              amount:
                                url: amount
                                base: {max: '*', min: 0, path: Extension.extension}
                                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
                                index: 161
                                elements:
                                  url:
                                    base: {max: '1', min: 1, path: Extension.url}
                                    pattern: {type: Uri, value: amount}
                                    index: 162
                                  value:
                                    base: {max: '1', min: 0, 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: 164
                                  valueQuantity:
                                    base: {max: '1', min: 0, 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: 165
                                required: [url]
                            elements:
                              extension:
                                base: {max: '*', min: 0, path: Extension.extension}
                                array: true
                                index: 150
                                slicing:
                                  rules: closed
                                  ordered: false
                                  discriminator:
                                  - {path: url, type: value}
                                  min: 0
                                  slices:
                                    method:
                                      match: {url: method}
                                      schema:
                                        base: {max: '*', min: 0, path: Extension.extension}
                                        short: The method by which the molecular weight was determined
                                        index: 151
                                        elements:
                                          url:
                                            base: {max: '1', min: 1, path: Extension.url}
                                            pattern: {type: Uri, value: method}
                                            index: 152
                                          value:
                                            base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                            short: The method by which the molecular weight was determined
                                            choices: [valueCodeableConcept]
                                            index: 154
                                          valueCodeableConcept:
                                            base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                            type: CodeableConcept
                                            short: The method by which the molecular weight was determined
                                            choiceOf: value
                                            index: 155
                                        required: [url]
                                    type:
                                      match: {url: type}
                                      schema:
                                        base: {max: '*', min: 0, path: Extension.extension}
                                        short: Type of molecular weight such as exact, average (also known as. number average), weight average
                                        index: 156
                                        elements:
                                          url:
                                            base: {max: '1', min: 1, path: Extension.url}
                                            pattern: {type: Uri, value: type}
                                            index: 157
                                          value:
                                            base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                            short: Type of molecular weight such as exact, average (also known as. number average), weight average
                                            choices: [valueCodeableConcept]
                                            index: 159
                                          valueCodeableConcept:
                                            base: {max: '1', min: 0, 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: 160
                                        required: [url]
                                    amount:
                                      match: {url: amount}
                                      schema:
                                        base: {max: '*', min: 0, path: Extension.extension}
                                        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
                                        index: 161
                                        elements:
                                          url:
                                            base: {max: '1', min: 1, path: Extension.url}
                                            pattern: {type: Uri, value: amount}
                                            index: 162
                                          value:
                                            base: {max: '1', min: 0, 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: 164
                                          valueQuantity:
                                            base: {max: '1', min: 0, 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: 165
                                        required: [url]
                              url:
                                base: {max: '1', min: 1, path: Extension.url}
                                pattern: {type: Uri, value: molecularWeight}
                                index: 166
                            required: [url]
                  url:
                    base: {max: '1', min: 1, path: Extension.url}
                    pattern: {type: Uri, value: isotope}
                    index: 167
                required: [url]
              molecularWeight:
                url: molecularWeight
                base: {max: '*', min: 0, path: Extension.extension}
                short: The molecular weight or weight range (for proteins, polymers or nucleic acids)
                index: 168
                extensions:
                  _datatype:
                    url: http://hl7.org/fhir/StructureDefinition/_datatype|5.2.0
                    type: Extension
                    short: Data type name for SubstanceSpecification.structure.molecularWeight from FHIR R4
                    index: 170
                    elements:
                      value:
                        base: {max: '1', min: 0, path: 'Extension.value[x]'}
                        pattern: {type: String, value: SubstanceSpecification.structure.isotope.molecularWeight}
                        choices: [valueString]
                        index: 172
                      valueString:
                        type: string
                        pattern: {type: String, value: SubstanceSpecification.structure.isotope.molecularWeight}
                        base: {max: '1', min: 0, path: 'Extension.value[x]'}
                        choiceOf: value
                        index: 173
                    required: [valueString, value]
                elements:
                  extension:
                    base: {max: '*', min: 0, path: Extension.extension}
                    array: true
                    index: 169
                    slicing:
                      rules: closed
                      ordered: false
                      discriminator:
                      - {path: url, type: value}
                      min: 0
                      slices:
                        _datatype:
                          match: {url: null}
                          schema:
                            type: Extension
                            short: Data type name for SubstanceSpecification.structure.molecularWeight from FHIR R4
                            url: http://hl7.org/fhir/StructureDefinition/_datatype|5.2.0
                            index: 170
                            elements:
                              value:
                                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                pattern: {type: String, value: SubstanceSpecification.structure.isotope.molecularWeight}
                                choices: [valueString]
                                index: 172
                              valueString:
                                type: string
                                pattern: {type: String, value: SubstanceSpecification.structure.isotope.molecularWeight}
                                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                choiceOf: value
                                index: 173
                            required: [valueString, value]
                  url:
                    base: {max: '1', min: 1, path: Extension.url}
                    pattern: {type: Uri, value: molecularWeight}
                    index: 174
                required: [url]
              source:
                url: source
                base: {max: '*', min: 0, path: Extension.extension}
                short: Supporting literature
                array: true
                index: 175
                elements:
                  url:
                    base: {max: '1', min: 1, path: Extension.url}
                    pattern: {type: Uri, value: source}
                    index: 176
                  value:
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    short: Supporting literature
                    choices: [valueReference]
                    index: 178
                  valueReference:
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    type: Reference
                    short: Supporting literature
                    choiceOf: value
                    index: 179
                required: [url]
              representation:
                url: representation
                base: {max: '*', min: 0, path: Extension.extension}
                short: Molecular structural representation
                array: true
                index: 180
                extensions:
                  type:
                    url: type
                    base: {max: '*', min: 0, path: Extension.extension}
                    short: The type of structure (e.g. Full, Partial, Representative)
                    index: 182
                    elements:
                      url:
                        base: {max: '1', min: 1, path: Extension.url}
                        pattern: {type: Uri, value: type}
                        index: 183
                      value:
                        base: {max: '1', min: 0, path: 'Extension.value[x]'}
                        short: The type of structure (e.g. Full, Partial, Representative)
                        choices: [valueCodeableConcept]
                        index: 185
                      valueCodeableConcept:
                        base: {max: '1', min: 0, path: 'Extension.value[x]'}
                        type: CodeableConcept
                        short: The type of structure (e.g. Full, Partial, Representative)
                        choiceOf: value
                        index: 186
                    required: [url]
                  representation:
                    url: representation
                    base: {max: '*', min: 0, path: Extension.extension}
                    short: The structural representation as text string in a format e.g. InChI, SMILES, MOLFILE, CDX
                    index: 187
                    elements:
                      url:
                        base: {max: '1', min: 1, path: Extension.url}
                        pattern: {type: Uri, value: representation}
                        index: 188
                      value:
                        base: {max: '1', min: 0, path: 'Extension.value[x]'}
                        short: The structural representation as text string in a format e.g. InChI, SMILES, MOLFILE, CDX
                        choices: [valueString]
                        index: 190
                      valueString:
                        base: {max: '1', min: 0, 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: 191
                    required: [url]
                  attachment:
                    url: attachment
                    base: {max: '*', min: 0, path: Extension.extension}
                    short: An attached file with the structural representation
                    index: 192
                    elements:
                      url:
                        base: {max: '1', min: 1, path: Extension.url}
                        pattern: {type: Uri, value: attachment}
                        index: 193
                      value:
                        base: {max: '1', min: 0, path: 'Extension.value[x]'}
                        short: An attached file with the structural representation
                        choices: [valueAttachment]
                        index: 195
                      valueAttachment:
                        base: {max: '1', min: 0, path: 'Extension.value[x]'}
                        type: Attachment
                        short: An attached file with the structural representation
                        choiceOf: value
                        index: 196
                    required: [url]
                elements:
                  extension:
                    base: {max: '*', min: 0, path: Extension.extension}
                    array: true
                    index: 181
                    slicing:
                      rules: closed
                      ordered: false
                      discriminator:
                      - {path: url, type: value}
                      min: 0
                      slices:
                        type:
                          match: {url: type}
                          schema:
                            base: {max: '*', min: 0, path: Extension.extension}
                            short: The type of structure (e.g. Full, Partial, Representative)
                            index: 182
                            elements:
                              url:
                                base: {max: '1', min: 1, path: Extension.url}
                                pattern: {type: Uri, value: type}
                                index: 183
                              value:
                                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                short: The type of structure (e.g. Full, Partial, Representative)
                                choices: [valueCodeableConcept]
                                index: 185
                              valueCodeableConcept:
                                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                type: CodeableConcept
                                short: The type of structure (e.g. Full, Partial, Representative)
                                choiceOf: value
                                index: 186
                            required: [url]
                        representation:
                          match: {url: representation}
                          schema:
                            base: {max: '*', min: 0, path: Extension.extension}
                            short: The structural representation as text string in a format e.g. InChI, SMILES, MOLFILE, CDX
                            index: 187
                            elements:
                              url:
                                base: {max: '1', min: 1, path: Extension.url}
                                pattern: {type: Uri, value: representation}
                                index: 188
                              value:
                                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                short: The structural representation as text string in a format e.g. InChI, SMILES, MOLFILE, CDX
                                choices: [valueString]
                                index: 190
                              valueString:
                                base: {max: '1', min: 0, 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: 191
                            required: [url]
                        attachment:
                          match: {url: attachment}
                          schema:
                            base: {max: '*', min: 0, path: Extension.extension}
                            short: An attached file with the structural representation
                            index: 192
                            elements:
                              url:
                                base: {max: '1', min: 1, path: Extension.url}
                                pattern: {type: Uri, value: attachment}
                                index: 193
                              value:
                                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                short: An attached file with the structural representation
                                choices: [valueAttachment]
                                index: 195
                              valueAttachment:
                                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                type: Attachment
                                short: An attached file with the structural representation
                                choiceOf: value
                                index: 196
                            required: [url]
                  url:
                    base: {max: '1', min: 1, path: Extension.url}
                    pattern: {type: Uri, value: representation}
                    index: 197
                required: [url]
            elements:
              extension:
                base: {max: '*', min: 0, path: Extension.extension}
                array: true
                index: 106
                slicing:
                  rules: closed
                  ordered: false
                  discriminator:
                  - {path: url, type: value}
                  min: 0
                  slices:
                    stereochemistry:
                      match: {url: stereochemistry}
                      schema:
                        base: {max: '*', min: 0, path: Extension.extension}
                        short: Stereochemistry type
                        index: 107
                        elements:
                          url:
                            base: {max: '1', min: 1, path: Extension.url}
                            pattern: {type: Uri, value: stereochemistry}
                            index: 108
                          value:
                            base: {max: '1', min: 0, path: 'Extension.value[x]'}
                            short: Stereochemistry type
                            choices: [valueCodeableConcept]
                            index: 110
                          valueCodeableConcept:
                            base: {max: '1', min: 0, path: 'Extension.value[x]'}
                            type: CodeableConcept
                            short: Stereochemistry type
                            choiceOf: value
                            index: 111
                        required: [url]
                    opticalActivity:
                      match: {url: opticalActivity}
                      schema:
                        base: {max: '*', min: 0, path: Extension.extension}
                        short: Optical activity type
                        index: 112
                        elements:
                          url:
                            base: {max: '1', min: 1, path: Extension.url}
                            pattern: {type: Uri, value: opticalActivity}
                            index: 113
                          value:
                            base: {max: '1', min: 0, path: 'Extension.value[x]'}
                            short: Optical activity type
                            choices: [valueCodeableConcept]
                            index: 115
                          valueCodeableConcept:
                            base: {max: '1', min: 0, path: 'Extension.value[x]'}
                            type: CodeableConcept
                            short: Optical activity type
                            choiceOf: value
                            index: 116
                        required: [url]
                    molecularFormula:
                      match: {url: molecularFormula}
                      schema:
                        base: {max: '*', min: 0, path: Extension.extension}
                        short: Molecular formula
                        index: 117
                        elements:
                          url:
                            base: {max: '1', min: 1, path: Extension.url}
                            pattern: {type: Uri, value: molecularFormula}
                            index: 118
                          value:
                            base: {max: '1', min: 0, path: 'Extension.value[x]'}
                            short: Molecular formula
                            choices: [valueString]
                            index: 120
                          valueString:
                            base: {max: '1', min: 0, path: 'Extension.value[x]'}
                            type: string
                            short: Molecular formula
                            choiceOf: value
                            index: 121
                        required: [url]
                    molecularFormulaByMoiety:
                      match: {url: molecularFormulaByMoiety}
                      schema:
                        base: {max: '*', min: 0, path: Extension.extension}
                        short: Specified per moiety according to the Hill system, i.e. first C, then H, then alphabetical, each moiety separated by a dot
                        index: 122
                        elements:
                          url:
                            base: {max: '1', min: 1, path: Extension.url}
                            pattern: {type: Uri, value: molecularFormulaByMoiety}
                            index: 123
                          value:
                            base: {max: '1', min: 0, 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: 125
                          valueString:
                            base: {max: '1', min: 0, 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: 126
                        required: [url]
                    isotope:
                      match: {url: isotope}
                      schema:
                        base: {max: '*', min: 0, path: Extension.extension}
                        short: Applicable for single substances that contain a radionuclide or a non-natural isotopic ratio
                        array: true
                        index: 127
                        extensions:
                          identifier:
                            url: identifier
                            base: {max: '*', min: 0, path: Extension.extension}
                            short: Substance identifier for each non-natural or radioisotope
                            index: 129
                            elements:
                              url:
                                base: {max: '1', min: 1, path: Extension.url}
                                pattern: {type: Uri, value: identifier}
                                index: 130
                              value:
                                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                short: Substance identifier for each non-natural or radioisotope
                                choices: [valueIdentifier]
                                index: 132
                              valueIdentifier:
                                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                type: Identifier
                                short: Substance identifier for each non-natural or radioisotope
                                choiceOf: value
                                index: 133
                            required: [url]
                          name:
                            url: name
                            base: {max: '*', min: 0, path: Extension.extension}
                            short: Substance name for each non-natural or radioisotope
                            index: 134
                            elements:
                              url:
                                base: {max: '1', min: 1, path: Extension.url}
                                pattern: {type: Uri, value: name}
                                index: 135
                              value:
                                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                short: Substance name for each non-natural or radioisotope
                                choices: [valueCodeableConcept]
                                index: 137
                              valueCodeableConcept:
                                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                type: CodeableConcept
                                short: Substance name for each non-natural or radioisotope
                                choiceOf: value
                                index: 138
                            required: [url]
                          substitution:
                            url: substitution
                            base: {max: '*', min: 0, path: Extension.extension}
                            short: The type of isotopic substitution present in a single substance
                            index: 139
                            elements:
                              url:
                                base: {max: '1', min: 1, path: Extension.url}
                                pattern: {type: Uri, value: substitution}
                                index: 140
                              value:
                                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                short: The type of isotopic substitution present in a single substance
                                choices: [valueCodeableConcept]
                                index: 142
                              valueCodeableConcept:
                                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                type: CodeableConcept
                                short: The type of isotopic substitution present in a single substance
                                choiceOf: value
                                index: 143
                            required: [url]
                          halfLife:
                            url: halfLife
                            base: {max: '*', min: 0, path: Extension.extension}
                            short: Half life - for a non-natural nuclide
                            index: 144
                            elements:
                              url:
                                base: {max: '1', min: 1, path: Extension.url}
                                pattern: {type: Uri, value: halfLife}
                                index: 145
                              value:
                                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                short: Half life - for a non-natural nuclide
                                choices: [valueQuantity]
                                index: 147
                              valueQuantity:
                                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                type: Quantity
                                short: Half life - for a non-natural nuclide
                                choiceOf: value
                                index: 148
                            required: [url]
                          molecularWeight:
                            url: molecularWeight
                            base: {max: '*', min: 0, path: Extension.extension}
                            short: The molecular weight or weight range (for proteins, polymers or nucleic acids)
                            index: 149
                            extensions:
                              method:
                                url: method
                                base: {max: '*', min: 0, path: Extension.extension}
                                short: The method by which the molecular weight was determined
                                index: 151
                                elements:
                                  url:
                                    base: {max: '1', min: 1, path: Extension.url}
                                    pattern: {type: Uri, value: method}
                                    index: 152
                                  value:
                                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                    short: The method by which the molecular weight was determined
                                    choices: [valueCodeableConcept]
                                    index: 154
                                  valueCodeableConcept:
                                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                    type: CodeableConcept
                                    short: The method by which the molecular weight was determined
                                    choiceOf: value
                                    index: 155
                                required: [url]
                              type:
                                url: type
                                base: {max: '*', min: 0, path: Extension.extension}
                                short: Type of molecular weight such as exact, average (also known as. number average), weight average
                                index: 156
                                elements:
                                  url:
                                    base: {max: '1', min: 1, path: Extension.url}
                                    pattern: {type: Uri, value: type}
                                    index: 157
                                  value:
                                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                    short: Type of molecular weight such as exact, average (also known as. number average), weight average
                                    choices: [valueCodeableConcept]
                                    index: 159
                                  valueCodeableConcept:
                                    base: {max: '1', min: 0, 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: 160
                                required: [url]
                              amount:
                                url: amount
                                base: {max: '*', min: 0, path: Extension.extension}
                                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
                                index: 161
                                elements:
                                  url:
                                    base: {max: '1', min: 1, path: Extension.url}
                                    pattern: {type: Uri, value: amount}
                                    index: 162
                                  value:
                                    base: {max: '1', min: 0, 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: 164
                                  valueQuantity:
                                    base: {max: '1', min: 0, 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: 165
                                required: [url]
                            elements:
                              extension:
                                base: {max: '*', min: 0, path: Extension.extension}
                                array: true
                                index: 150
                                slicing:
                                  rules: closed
                                  ordered: false
                                  discriminator:
                                  - {path: url, type: value}
                                  min: 0
                                  slices:
                                    method:
                                      match: {url: method}
                                      schema:
                                        base: {max: '*', min: 0, path: Extension.extension}
                                        short: The method by which the molecular weight was determined
                                        index: 151
                                        elements:
                                          url:
                                            base: {max: '1', min: 1, path: Extension.url}
                                            pattern: {type: Uri, value: method}
                                            index: 152
                                          value:
                                            base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                            short: The method by which the molecular weight was determined
                                            choices: [valueCodeableConcept]
                                            index: 154
                                          valueCodeableConcept:
                                            base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                            type: CodeableConcept
                                            short: The method by which the molecular weight was determined
                                            choiceOf: value
                                            index: 155
                                        required: [url]
                                    type:
                                      match: {url: type}
                                      schema:
                                        base: {max: '*', min: 0, path: Extension.extension}
                                        short: Type of molecular weight such as exact, average (also known as. number average), weight average
                                        index: 156
                                        elements:
                                          url:
                                            base: {max: '1', min: 1, path: Extension.url}
                                            pattern: {type: Uri, value: type}
                                            index: 157
                                          value:
                                            base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                            short: Type of molecular weight such as exact, average (also known as. number average), weight average
                                            choices: [valueCodeableConcept]
                                            index: 159
                                          valueCodeableConcept:
                                            base: {max: '1', min: 0, 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: 160
                                        required: [url]
                                    amount:
                                      match: {url: amount}
                                      schema:
                                        base: {max: '*', min: 0, path: Extension.extension}
                                        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
                                        index: 161
                                        elements:
                                          url:
                                            base: {max: '1', min: 1, path: Extension.url}
                                            pattern: {type: Uri, value: amount}
                                            index: 162
                                          value:
                                            base: {max: '1', min: 0, 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: 164
                                          valueQuantity:
                                            base: {max: '1', min: 0, 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: 165
                                        required: [url]
                              url:
                                base: {max: '1', min: 1, path: Extension.url}
                                pattern: {type: Uri, value: molecularWeight}
                                index: 166
                            required: [url]
                        elements:
                          extension:
                            base: {max: '*', min: 0, path: Extension.extension}
                            array: true
                            index: 128
                            slicing:
                              rules: closed
                              ordered: false
                              discriminator:
                              - {path: url, type: value}
                              min: 0
                              slices:
                                identifier:
                                  match: {url: identifier}
                                  schema:
                                    base: {max: '*', min: 0, path: Extension.extension}
                                    short: Substance identifier for each non-natural or radioisotope
                                    index: 129
                                    elements:
                                      url:
                                        base: {max: '1', min: 1, path: Extension.url}
                                        pattern: {type: Uri, value: identifier}
                                        index: 130
                                      value:
                                        base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                        short: Substance identifier for each non-natural or radioisotope
                                        choices: [valueIdentifier]
                                        index: 132
                                      valueIdentifier:
                                        base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                        type: Identifier
                                        short: Substance identifier for each non-natural or radioisotope
                                        choiceOf: value
                                        index: 133
                                    required: [url]
                                name:
                                  match: {url: name}
                                  schema:
                                    base: {max: '*', min: 0, path: Extension.extension}
                                    short: Substance name for each non-natural or radioisotope
                                    index: 134
                                    elements:
                                      url:
                                        base: {max: '1', min: 1, path: Extension.url}
                                        pattern: {type: Uri, value: name}
                                        index: 135
                                      value:
                                        base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                        short: Substance name for each non-natural or radioisotope
                                        choices: [valueCodeableConcept]
                                        index: 137
                                      valueCodeableConcept:
                                        base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                        type: CodeableConcept
                                        short: Substance name for each non-natural or radioisotope
                                        choiceOf: value
                                        index: 138
                                    required: [url]
                                substitution:
                                  match: {url: substitution}
                                  schema:
                                    base: {max: '*', min: 0, path: Extension.extension}
                                    short: The type of isotopic substitution present in a single substance
                                    index: 139
                                    elements:
                                      url:
                                        base: {max: '1', min: 1, path: Extension.url}
                                        pattern: {type: Uri, value: substitution}
                                        index: 140
                                      value:
                                        base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                        short: The type of isotopic substitution present in a single substance
                                        choices: [valueCodeableConcept]
                                        index: 142
                                      valueCodeableConcept:
                                        base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                        type: CodeableConcept
                                        short: The type of isotopic substitution present in a single substance
                                        choiceOf: value
                                        index: 143
                                    required: [url]
                                halfLife:
                                  match: {url: halfLife}
                                  schema:
                                    base: {max: '*', min: 0, path: Extension.extension}
                                    short: Half life - for a non-natural nuclide
                                    index: 144
                                    elements:
                                      url:
                                        base: {max: '1', min: 1, path: Extension.url}
                                        pattern: {type: Uri, value: halfLife}
                                        index: 145
                                      value:
                                        base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                        short: Half life - for a non-natural nuclide
                                        choices: [valueQuantity]
                                        index: 147
                                      valueQuantity:
                                        base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                        type: Quantity
                                        short: Half life - for a non-natural nuclide
                                        choiceOf: value
                                        index: 148
                                    required: [url]
                                molecularWeight:
                                  match: {url: molecularWeight}
                                  schema:
                                    base: {max: '*', min: 0, path: Extension.extension}
                                    short: The molecular weight or weight range (for proteins, polymers or nucleic acids)
                                    index: 149
                                    extensions:
                                      method:
                                        url: method
                                        base: {max: '*', min: 0, path: Extension.extension}
                                        short: The method by which the molecular weight was determined
                                        index: 151
                                        elements:
                                          url:
                                            base: {max: '1', min: 1, path: Extension.url}
                                            pattern: {type: Uri, value: method}
                                            index: 152
                                          value:
                                            base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                            short: The method by which the molecular weight was determined
                                            choices: [valueCodeableConcept]
                                            index: 154
                                          valueCodeableConcept:
                                            base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                            type: CodeableConcept
                                            short: The method by which the molecular weight was determined
                                            choiceOf: value
                                            index: 155
                                        required: [url]
                                      type:
                                        url: type
                                        base: {max: '*', min: 0, path: Extension.extension}
                                        short: Type of molecular weight such as exact, average (also known as. number average), weight average
                                        index: 156
                                        elements:
                                          url:
                                            base: {max: '1', min: 1, path: Extension.url}
                                            pattern: {type: Uri, value: type}
                                            index: 157
                                          value:
                                            base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                            short: Type of molecular weight such as exact, average (also known as. number average), weight average
                                            choices: [valueCodeableConcept]
                                            index: 159
                                          valueCodeableConcept:
                                            base: {max: '1', min: 0, 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: 160
                                        required: [url]
                                      amount:
                                        url: amount
                                        base: {max: '*', min: 0, path: Extension.extension}
                                        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
                                        index: 161
                                        elements:
                                          url:
                                            base: {max: '1', min: 1, path: Extension.url}
                                            pattern: {type: Uri, value: amount}
                                            index: 162
                                          value:
                                            base: {max: '1', min: 0, 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: 164
                                          valueQuantity:
                                            base: {max: '1', min: 0, 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: 165
                                        required: [url]
                                    elements:
                                      extension:
                                        base: {max: '*', min: 0, path: Extension.extension}
                                        array: true
                                        index: 150
                                        slicing:
                                          rules: closed
                                          ordered: false
                                          discriminator:
                                          - {path: url, type: value}
                                          min: 0
                                          slices:
                                            method:
                                              match: {url: method}
                                              schema:
                                                base: {max: '*', min: 0, path: Extension.extension}
                                                short: The method by which the molecular weight was determined
                                                index: 151
                                                elements:
                                                  url:
                                                    base: {max: '1', min: 1, path: Extension.url}
                                                    pattern: {type: Uri, value: method}
                                                    index: 152
                                                  value:
                                                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                                    short: The method by which the molecular weight was determined
                                                    choices: [valueCodeableConcept]
                                                    index: 154
                                                  valueCodeableConcept:
                                                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                                    type: CodeableConcept
                                                    short: The method by which the molecular weight was determined
                                                    choiceOf: value
                                                    index: 155
                                                required: [url]
                                            type:
                                              match: {url: type}
                                              schema:
                                                base: {max: '*', min: 0, path: Extension.extension}
                                                short: Type of molecular weight such as exact, average (also known as. number average), weight average
                                                index: 156
                                                elements:
                                                  url:
                                                    base: {max: '1', min: 1, path: Extension.url}
                                                    pattern: {type: Uri, value: type}
                                                    index: 157
                                                  value:
                                                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                                    short: Type of molecular weight such as exact, average (also known as. number average), weight average
                                                    choices: [valueCodeableConcept]
                                                    index: 159
                                                  valueCodeableConcept:
                                                    base: {max: '1', min: 0, 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: 160
                                                required: [url]
                                            amount:
                                              match: {url: amount}
                                              schema:
                                                base: {max: '*', min: 0, path: Extension.extension}
                                                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
                                                index: 161
                                                elements:
                                                  url:
                                                    base: {max: '1', min: 1, path: Extension.url}
                                                    pattern: {type: Uri, value: amount}
                                                    index: 162
                                                  value:
                                                    base: {max: '1', min: 0, 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: 164
                                                  valueQuantity:
                                                    base: {max: '1', min: 0, 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: 165
                                                required: [url]
                                      url:
                                        base: {max: '1', min: 1, path: Extension.url}
                                        pattern: {type: Uri, value: molecularWeight}
                                        index: 166
                                    required: [url]
                          url:
                            base: {max: '1', min: 1, path: Extension.url}
                            pattern: {type: Uri, value: isotope}
                            index: 167
                        required: [url]
                    molecularWeight:
                      match: {url: molecularWeight}
                      schema:
                        base: {max: '*', min: 0, path: Extension.extension}
                        short: The molecular weight or weight range (for proteins, polymers or nucleic acids)
                        index: 168
                        extensions:
                          _datatype:
                            url: http://hl7.org/fhir/StructureDefinition/_datatype|5.2.0
                            type: Extension
                            short: Data type name for SubstanceSpecification.structure.molecularWeight from FHIR R4
                            index: 170
                            elements:
                              value:
                                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                pattern: {type: String, value: SubstanceSpecification.structure.isotope.molecularWeight}
                                choices: [valueString]
                                index: 172
                              valueString:
                                type: string
                                pattern: {type: String, value: SubstanceSpecification.structure.isotope.molecularWeight}
                                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                choiceOf: value
                                index: 173
                            required: [valueString, value]
                        elements:
                          extension:
                            base: {max: '*', min: 0, path: Extension.extension}
                            array: true
                            index: 169
                            slicing:
                              rules: closed
                              ordered: false
                              discriminator:
                              - {path: url, type: value}
                              min: 0
                              slices:
                                _datatype:
                                  match: {url: null}
                                  schema:
                                    type: Extension
                                    short: Data type name for SubstanceSpecification.structure.molecularWeight from FHIR R4
                                    url: http://hl7.org/fhir/StructureDefinition/_datatype|5.2.0
                                    index: 170
                                    elements:
                                      value:
                                        base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                        pattern: {type: String, value: SubstanceSpecification.structure.isotope.molecularWeight}
                                        choices: [valueString]
                                        index: 172
                                      valueString:
                                        type: string
                                        pattern: {type: String, value: SubstanceSpecification.structure.isotope.molecularWeight}
                                        base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                        choiceOf: value
                                        index: 173
                                    required: [valueString, value]
                          url:
                            base: {max: '1', min: 1, path: Extension.url}
                            pattern: {type: Uri, value: molecularWeight}
                            index: 174
                        required: [url]
                    source:
                      match: {url: source}
                      schema:
                        base: {max: '*', min: 0, path: Extension.extension}
                        short: Supporting literature
                        array: true
                        index: 175
                        elements:
                          url:
                            base: {max: '1', min: 1, path: Extension.url}
                            pattern: {type: Uri, value: source}
                            index: 176
                          value:
                            base: {max: '1', min: 0, path: 'Extension.value[x]'}
                            short: Supporting literature
                            choices: [valueReference]
                            index: 178
                          valueReference:
                            base: {max: '1', min: 0, path: 'Extension.value[x]'}
                            type: Reference
                            short: Supporting literature
                            choiceOf: value
                            index: 179
                        required: [url]
                    representation:
                      match: {url: representation}
                      schema:
                        base: {max: '*', min: 0, path: Extension.extension}
                        short: Molecular structural representation
                        array: true
                        index: 180
                        extensions:
                          type:
                            url: type
                            base: {max: '*', min: 0, path: Extension.extension}
                            short: The type of structure (e.g. Full, Partial, Representative)
                            index: 182
                            elements:
                              url:
                                base: {max: '1', min: 1, path: Extension.url}
                                pattern: {type: Uri, value: type}
                                index: 183
                              value:
                                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                short: The type of structure (e.g. Full, Partial, Representative)
                                choices: [valueCodeableConcept]
                                index: 185
                              valueCodeableConcept:
                                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                type: CodeableConcept
                                short: The type of structure (e.g. Full, Partial, Representative)
                                choiceOf: value
                                index: 186
                            required: [url]
                          representation:
                            url: representation
                            base: {max: '*', min: 0, path: Extension.extension}
                            short: The structural representation as text string in a format e.g. InChI, SMILES, MOLFILE, CDX
                            index: 187
                            elements:
                              url:
                                base: {max: '1', min: 1, path: Extension.url}
                                pattern: {type: Uri, value: representation}
                                index: 188
                              value:
                                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                short: The structural representation as text string in a format e.g. InChI, SMILES, MOLFILE, CDX
                                choices: [valueString]
                                index: 190
                              valueString:
                                base: {max: '1', min: 0, 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: 191
                            required: [url]
                          attachment:
                            url: attachment
                            base: {max: '*', min: 0, path: Extension.extension}
                            short: An attached file with the structural representation
                            index: 192
                            elements:
                              url:
                                base: {max: '1', min: 1, path: Extension.url}
                                pattern: {type: Uri, value: attachment}
                                index: 193
                              value:
                                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                short: An attached file with the structural representation
                                choices: [valueAttachment]
                                index: 195
                              valueAttachment:
                                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                type: Attachment
                                short: An attached file with the structural representation
                                choiceOf: value
                                index: 196
                            required: [url]
                        elements:
                          extension:
                            base: {max: '*', min: 0, path: Extension.extension}
                            array: true
                            index: 181
                            slicing:
                              rules: closed
                              ordered: false
                              discriminator:
                              - {path: url, type: value}
                              min: 0
                              slices:
                                type:
                                  match: {url: type}
                                  schema:
                                    base: {max: '*', min: 0, path: Extension.extension}
                                    short: The type of structure (e.g. Full, Partial, Representative)
                                    index: 182
                                    elements:
                                      url:
                                        base: {max: '1', min: 1, path: Extension.url}
                                        pattern: {type: Uri, value: type}
                                        index: 183
                                      value:
                                        base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                        short: The type of structure (e.g. Full, Partial, Representative)
                                        choices: [valueCodeableConcept]
                                        index: 185
                                      valueCodeableConcept:
                                        base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                        type: CodeableConcept
                                        short: The type of structure (e.g. Full, Partial, Representative)
                                        choiceOf: value
                                        index: 186
                                    required: [url]
                                representation:
                                  match: {url: representation}
                                  schema:
                                    base: {max: '*', min: 0, path: Extension.extension}
                                    short: The structural representation as text string in a format e.g. InChI, SMILES, MOLFILE, CDX
                                    index: 187
                                    elements:
                                      url:
                                        base: {max: '1', min: 1, path: Extension.url}
                                        pattern: {type: Uri, value: representation}
                                        index: 188
                                      value:
                                        base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                        short: The structural representation as text string in a format e.g. InChI, SMILES, MOLFILE, CDX
                                        choices: [valueString]
                                        index: 190
                                      valueString:
                                        base: {max: '1', min: 0, 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: 191
                                    required: [url]
                                attachment:
                                  match: {url: attachment}
                                  schema:
                                    base: {max: '*', min: 0, path: Extension.extension}
                                    short: An attached file with the structural representation
                                    index: 192
                                    elements:
                                      url:
                                        base: {max: '1', min: 1, path: Extension.url}
                                        pattern: {type: Uri, value: attachment}
                                        index: 193
                                      value:
                                        base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                        short: An attached file with the structural representation
                                        choices: [valueAttachment]
                                        index: 195
                                      valueAttachment:
                                        base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                        type: Attachment
                                        short: An attached file with the structural representation
                                        choiceOf: value
                                        index: 196
                                    required: [url]
                          url:
                            base: {max: '1', min: 1, path: Extension.url}
                            pattern: {type: Uri, value: representation}
                            index: 197
                        required: [url]
              url:
                base: {max: '1', min: 1, path: Extension.url}
                pattern: {type: Uri, value: structure}
                index: 198
            required: [url]
        status:
          match: {url: status}
          schema:
            base: {max: '*', min: 0, path: Extension.extension}
            short: Status of substance within the catalogue e.g. approved
            index: 6
            elements:
              url:
                base: {max: '1', min: 1, path: Extension.url}
                pattern: {type: Uri, value: status}
                index: 7
              value:
                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                short: Status of substance within the catalogue e.g. approved
                choices: [valueCodeableConcept]
                index: 9
              valueCodeableConcept:
                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                type: CodeableConcept
                short: Status of substance within the catalogue e.g. approved
                choiceOf: value
                index: 10
            required: [url]
        comment:
          match: {url: comment}
          schema:
            base: {max: '*', min: 0, path: Extension.extension}
            short: Textual comment about this record of a substance
            index: 26
            elements:
              url:
                base: {max: '1', min: 1, path: Extension.url}
                pattern: {type: Uri, value: comment}
                index: 27
              value:
                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                short: Textual comment about this record of a substance
                choices: [valueString]
                index: 29
              valueString:
                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                type: string
                short: Textual comment about this record of a substance
                choiceOf: value
                index: 30
            required: [url]
        molecularWeight:
          match: {url: molecularWeight}
          schema:
            base: {max: '*', min: 0, path: Extension.extension}
            short: The molecular weight or weight range (for proteins, polymers or nucleic acids)
            array: true
            index: 274
            extensions:
              _datatype:
                url: http://hl7.org/fhir/StructureDefinition/_datatype|5.2.0
                type: Extension
                short: Data type name for SubstanceSpecification.molecularWeight from FHIR R4
                index: 276
                elements:
                  value:
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    pattern: {type: String, value: SubstanceSpecification.structure.isotope.molecularWeight}
                    choices: [valueString]
                    index: 278
                  valueString:
                    type: string
                    pattern: {type: String, value: SubstanceSpecification.structure.isotope.molecularWeight}
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    choiceOf: value
                    index: 279
                required: [valueString, value]
            elements:
              extension:
                base: {max: '*', min: 0, path: Extension.extension}
                array: true
                index: 275
                slicing:
                  rules: closed
                  ordered: false
                  discriminator:
                  - {path: url, type: value}
                  min: 0
                  slices:
                    _datatype:
                      match: {url: null}
                      schema:
                        type: Extension
                        short: Data type name for SubstanceSpecification.molecularWeight from FHIR R4
                        url: http://hl7.org/fhir/StructureDefinition/_datatype|5.2.0
                        index: 276
                        elements:
                          value:
                            base: {max: '1', min: 0, path: 'Extension.value[x]'}
                            pattern: {type: String, value: SubstanceSpecification.structure.isotope.molecularWeight}
                            choices: [valueString]
                            index: 278
                          valueString:
                            type: string
                            pattern: {type: String, value: SubstanceSpecification.structure.isotope.molecularWeight}
                            base: {max: '1', min: 0, path: 'Extension.value[x]'}
                            choiceOf: value
                            index: 279
                        required: [valueString, value]
              url:
                base: {max: '1', min: 1, path: Extension.url}
                pattern: {type: Uri, value: molecularWeight}
                index: 280
            required: [url]
        polymer:
          match: {url: polymer}
          schema:
            base: {max: '*', min: 0, path: Extension.extension}
            short: Data items specific to polymers
            index: 328
            elements:
              url:
                base: {max: '1', min: 1, path: Extension.url}
                pattern: {type: Uri, value: polymer}
                index: 329
              value:
                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                short: Data items specific to polymers
                choices: [valueReference]
                index: 331
              valueReference:
                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                type: Reference
                short: Data items specific to polymers
                choiceOf: value
                index: 332
            required: [url]
        protein:
          match: {url: protein}
          schema:
            base: {max: '*', min: 0, path: Extension.extension}
            short: Data items specific to proteins
            index: 333
            elements:
              url:
                base: {max: '1', min: 1, path: Extension.url}
                pattern: {type: Uri, value: protein}
                index: 334
              value:
                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                short: Data items specific to proteins
                choices: [valueReference]
                index: 336
              valueReference:
                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                type: Reference
                short: Data items specific to proteins
                choiceOf: value
                index: 337
            required: [url]
        domain:
          match: {url: domain}
          schema:
            base: {max: '*', min: 0, path: Extension.extension}
            short: If the substance applies to only human or veterinary use
            index: 11
            elements:
              url:
                base: {max: '1', min: 1, path: Extension.url}
                pattern: {type: Uri, value: domain}
                index: 12
              value:
                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                short: If the substance applies to only human or veterinary use
                choices: [valueCodeableConcept]
                index: 14
              valueCodeableConcept:
                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                type: CodeableConcept
                short: If the substance applies to only human or veterinary use
                choiceOf: value
                index: 15
            required: [url]
        sourceMaterial:
          match: {url: sourceMaterial}
          schema:
            base: {max: '*', min: 0, path: Extension.extension}
            short: Material or taxonomic/anatomical source for the substance
            index: 338
            elements:
              url:
                base: {max: '1', min: 1, path: Extension.url}
                pattern: {type: Uri, value: sourceMaterial}
                index: 339
              value:
                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                short: Material or taxonomic/anatomical source for the substance
                choices: [valueReference]
                index: 341
              valueReference:
                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                type: Reference
                short: Material or taxonomic/anatomical source for the substance
                choiceOf: value
                index: 342
            required: [url]
  url:
    base: {max: '1', min: 1, path: Extension.url}
    pattern: {type: Uri, value: 'http://hl7.org/fhir/4.0/StructureDefinition/extension-SubstanceSpecification'}
    index: 343
package_version: 0.0.1-snapshot-2
extensions:
  description:
    url: description
    base: {max: '*', min: 0, path: Extension.extension}
    short: Textual description of the substance
    index: 16
    elements:
      url:
        base: {max: '1', min: 1, path: Extension.url}
        pattern: {type: Uri, value: description}
        index: 17
      value:
        base: {max: '1', min: 0, path: 'Extension.value[x]'}
        short: Textual description of the substance
        choices: [valueString]
        index: 19
      valueString:
        base: {max: '1', min: 0, path: 'Extension.value[x]'}
        type: string
        short: Textual description of the substance
        choiceOf: value
        index: 20
    required: [url]
  property:
    url: property
    base: {max: '*', min: 0, path: Extension.extension}
    short: General specifications for this substance, including how it is related to other substances
    array: true
    index: 70
    extensions:
      category:
        url: category
        base: {max: '*', min: 0, path: Extension.extension}
        short: A category for this property, e.g. Physical, Chemical, Enzymatic
        index: 72
        elements:
          url:
            base: {max: '1', min: 1, path: Extension.url}
            pattern: {type: Uri, value: category}
            index: 73
          value:
            base: {max: '1', min: 0, path: 'Extension.value[x]'}
            short: A category for this property, e.g. Physical, Chemical, Enzymatic
            choices: [valueCodeableConcept]
            index: 75
          valueCodeableConcept:
            base: {max: '1', min: 0, path: 'Extension.value[x]'}
            type: CodeableConcept
            short: A category for this property, e.g. Physical, Chemical, Enzymatic
            choiceOf: value
            index: 76
        required: [url]
      code:
        url: code
        base: {max: '*', min: 0, path: Extension.extension}
        short: Property type e.g. viscosity, pH, isoelectric point
        index: 77
        elements:
          url:
            base: {max: '1', min: 1, path: Extension.url}
            pattern: {type: Uri, value: code}
            index: 78
          value:
            base: {max: '1', min: 0, path: 'Extension.value[x]'}
            short: Property type e.g. viscosity, pH, isoelectric point
            choices: [valueCodeableConcept]
            index: 80
          valueCodeableConcept:
            base: {max: '1', min: 0, path: 'Extension.value[x]'}
            type: CodeableConcept
            short: Property type e.g. viscosity, pH, isoelectric point
            choiceOf: value
            index: 81
        required: [url]
      parameters:
        url: parameters
        base: {max: '*', min: 0, path: Extension.extension}
        short: 'Parameters that were used in the measurement of a property (e.g. for viscosity: measured at 20C with a pH of 7.1)'
        index: 82
        elements:
          url:
            base: {max: '1', min: 1, path: Extension.url}
            pattern: {type: Uri, value: parameters}
            index: 83
          value:
            base: {max: '1', min: 0, 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: 85
          valueString:
            base: {max: '1', min: 0, 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: 86
        required: [url]
      definingSubstance[x]:
        url: definingSubstance[x]
        base: {max: '*', min: 0, path: Extension.extension}
        short: 'A substance upon which a defining property depends (e.g. for solubility: in water, in alcohol)'
        index: 87
        elements:
          url:
            base: {max: '1', min: 1, path: Extension.url}
            pattern: {type: Uri, value: 'definingSubstance[x]'}
            index: 88
          value:
            base: {max: '1', min: 0, 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: 90
          valueReference:
            base: {max: '1', min: 0, 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
            index: 91
          valueCodeableConcept:
            base: {max: '1', min: 0, 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: 92
        required: [url]
      amount[x]:
        url: amount[x]
        base: {max: '*', min: 0, path: Extension.extension}
        short: Quantitative value for this property
        index: 93
        elements:
          url:
            base: {max: '1', min: 1, path: Extension.url}
            pattern: {type: Uri, value: 'amount[x]'}
            index: 94
          value:
            base: {max: '1', min: 0, path: 'Extension.value[x]'}
            short: Quantitative value for this property
            choices: [valueQuantity, valueString]
            index: 96
          valueQuantity:
            base: {max: '1', min: 0, path: 'Extension.value[x]'}
            type: Quantity
            short: Quantitative value for this property
            choiceOf: value
            index: 97
          valueString:
            base: {max: '1', min: 0, path: 'Extension.value[x]'}
            type: string
            short: Quantitative value for this property
            choiceOf: value
            index: 98
        required: [url]
    elements:
      extension:
        base: {max: '*', min: 0, path: Extension.extension}
        array: true
        index: 71
        slicing:
          rules: closed
          ordered: false
          discriminator:
          - {path: url, type: value}
          min: 0
          slices:
            category:
              match: {url: category}
              schema:
                base: {max: '*', min: 0, path: Extension.extension}
                short: A category for this property, e.g. Physical, Chemical, Enzymatic
                index: 72
                elements:
                  url:
                    base: {max: '1', min: 1, path: Extension.url}
                    pattern: {type: Uri, value: category}
                    index: 73
                  value:
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    short: A category for this property, e.g. Physical, Chemical, Enzymatic
                    choices: [valueCodeableConcept]
                    index: 75
                  valueCodeableConcept:
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    type: CodeableConcept
                    short: A category for this property, e.g. Physical, Chemical, Enzymatic
                    choiceOf: value
                    index: 76
                required: [url]
            code:
              match: {url: code}
              schema:
                base: {max: '*', min: 0, path: Extension.extension}
                short: Property type e.g. viscosity, pH, isoelectric point
                index: 77
                elements:
                  url:
                    base: {max: '1', min: 1, path: Extension.url}
                    pattern: {type: Uri, value: code}
                    index: 78
                  value:
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    short: Property type e.g. viscosity, pH, isoelectric point
                    choices: [valueCodeableConcept]
                    index: 80
                  valueCodeableConcept:
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    type: CodeableConcept
                    short: Property type e.g. viscosity, pH, isoelectric point
                    choiceOf: value
                    index: 81
                required: [url]
            parameters:
              match: {url: parameters}
              schema:
                base: {max: '*', min: 0, path: Extension.extension}
                short: 'Parameters that were used in the measurement of a property (e.g. for viscosity: measured at 20C with a pH of 7.1)'
                index: 82
                elements:
                  url:
                    base: {max: '1', min: 1, path: Extension.url}
                    pattern: {type: Uri, value: parameters}
                    index: 83
                  value:
                    base: {max: '1', min: 0, 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: 85
                  valueString:
                    base: {max: '1', min: 0, 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: 86
                required: [url]
            definingSubstance[x]:
              match: {url: 'definingSubstance[x]'}
              schema:
                base: {max: '*', min: 0, path: Extension.extension}
                short: 'A substance upon which a defining property depends (e.g. for solubility: in water, in alcohol)'
                index: 87
                elements:
                  url:
                    base: {max: '1', min: 1, path: Extension.url}
                    pattern: {type: Uri, value: 'definingSubstance[x]'}
                    index: 88
                  value:
                    base: {max: '1', min: 0, 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: 90
                  valueReference:
                    base: {max: '1', min: 0, 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
                    index: 91
                  valueCodeableConcept:
                    base: {max: '1', min: 0, 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: 92
                required: [url]
            amount[x]:
              match: {url: 'amount[x]'}
              schema:
                base: {max: '*', min: 0, path: Extension.extension}
                short: Quantitative value for this property
                index: 93
                elements:
                  url:
                    base: {max: '1', min: 1, path: Extension.url}
                    pattern: {type: Uri, value: 'amount[x]'}
                    index: 94
                  value:
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    short: Quantitative value for this property
                    choices: [valueQuantity, valueString]
                    index: 96
                  valueQuantity:
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    type: Quantity
                    short: Quantitative value for this property
                    choiceOf: value
                    index: 97
                  valueString:
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    type: string
                    short: Quantitative value for this property
                    choiceOf: value
                    index: 98
                required: [url]
      url:
        base: {max: '1', min: 1, path: Extension.url}
        pattern: {type: Uri, value: property}
        index: 99
    required: [url]
  name:
    url: name
    base: {max: '*', min: 0, path: Extension.extension}
    short: Names applicable to this substance
    array: true
    index: 199
    extensions:
      official:
        url: official
        base: {max: '*', min: 0, path: Extension.extension}
        short: Details of the official nature of this name
        array: true
        index: 250
        extensions:
          authority:
            url: authority
            base: {max: '*', min: 0, path: Extension.extension}
            short: Which authority uses this official name
            index: 252
            elements:
              url:
                base: {max: '1', min: 1, path: Extension.url}
                pattern: {type: Uri, value: authority}
                index: 253
              value:
                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                short: Which authority uses this official name
                choices: [valueCodeableConcept]
                index: 255
              valueCodeableConcept:
                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                type: CodeableConcept
                short: Which authority uses this official name
                choiceOf: value
                index: 256
            required: [url]
          status:
            url: status
            base: {max: '*', min: 0, path: Extension.extension}
            short: The status of the official name
            index: 257
            elements:
              url:
                base: {max: '1', min: 1, path: Extension.url}
                pattern: {type: Uri, value: status}
                index: 258
              value:
                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                short: The status of the official name
                choices: [valueCodeableConcept]
                index: 260
              valueCodeableConcept:
                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                type: CodeableConcept
                short: The status of the official name
                choiceOf: value
                index: 261
            required: [url]
          date:
            url: date
            base: {max: '*', min: 0, path: Extension.extension}
            short: Date of official name change
            index: 262
            elements:
              url:
                base: {max: '1', min: 1, path: Extension.url}
                pattern: {type: Uri, value: date}
                index: 263
              value:
                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                short: Date of official name change
                choices: [valueDateTime]
                index: 265
              valueDateTime:
                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                type: dateTime
                short: Date of official name change
                choiceOf: value
                index: 266
            required: [url]
        elements:
          extension:
            base: {max: '*', min: 0, path: Extension.extension}
            array: true
            index: 251
            slicing:
              rules: closed
              ordered: false
              discriminator:
              - {path: url, type: value}
              min: 0
              slices:
                authority:
                  match: {url: authority}
                  schema:
                    base: {max: '*', min: 0, path: Extension.extension}
                    short: Which authority uses this official name
                    index: 252
                    elements:
                      url:
                        base: {max: '1', min: 1, path: Extension.url}
                        pattern: {type: Uri, value: authority}
                        index: 253
                      value:
                        base: {max: '1', min: 0, path: 'Extension.value[x]'}
                        short: Which authority uses this official name
                        choices: [valueCodeableConcept]
                        index: 255
                      valueCodeableConcept:
                        base: {max: '1', min: 0, path: 'Extension.value[x]'}
                        type: CodeableConcept
                        short: Which authority uses this official name
                        choiceOf: value
                        index: 256
                    required: [url]
                status:
                  match: {url: status}
                  schema:
                    base: {max: '*', min: 0, path: Extension.extension}
                    short: The status of the official name
                    index: 257
                    elements:
                      url:
                        base: {max: '1', min: 1, path: Extension.url}
                        pattern: {type: Uri, value: status}
                        index: 258
                      value:
                        base: {max: '1', min: 0, path: 'Extension.value[x]'}
                        short: The status of the official name
                        choices: [valueCodeableConcept]
                        index: 260
                      valueCodeableConcept:
                        base: {max: '1', min: 0, path: 'Extension.value[x]'}
                        type: CodeableConcept
                        short: The status of the official name
                        choiceOf: value
                        index: 261
                    required: [url]
                date:
                  match: {url: date}
                  schema:
                    base: {max: '*', min: 0, path: Extension.extension}
                    short: Date of official name change
                    index: 262
                    elements:
                      url:
                        base: {max: '1', min: 1, path: Extension.url}
                        pattern: {type: Uri, value: date}
                        index: 263
                      value:
                        base: {max: '1', min: 0, path: 'Extension.value[x]'}
                        short: Date of official name change
                        choices: [valueDateTime]
                        index: 265
                      valueDateTime:
                        base: {max: '1', min: 0, path: 'Extension.value[x]'}
                        type: dateTime
                        short: Date of official name change
                        choiceOf: value
                        index: 266
                    required: [url]
          url:
            base: {max: '1', min: 1, path: Extension.url}
            pattern: {type: Uri, value: official}
            index: 267
        required: [url]
      jurisdiction:
        url: jurisdiction
        base: {max: '*', min: 0, path: Extension.extension}
        short: The jurisdiction where this name applies
        array: true
        index: 231
        elements:
          url:
            base: {max: '1', min: 1, path: Extension.url}
            pattern: {type: Uri, value: jurisdiction}
            index: 232
          value:
            base: {max: '1', min: 0, path: 'Extension.value[x]'}
            short: The jurisdiction where this name applies
            choices: [valueCodeableConcept]
            index: 234
          valueCodeableConcept:
            base: {max: '1', min: 0, path: 'Extension.value[x]'}
            type: CodeableConcept
            short: The jurisdiction where this name applies
            choiceOf: value
            index: 235
        required: [url]
      name:
        url: name
        base: {max: '*', min: 0, path: Extension.extension}
        short: The actual name
        _required: true
        index: 201
        elements:
          url:
            base: {max: '1', min: 1, path: Extension.url}
            pattern: {type: Uri, value: name}
            index: 202
          value:
            base: {max: '1', min: 0, path: 'Extension.value[x]'}
            short: The actual name
            choices: [valueString]
            index: 204
          valueString:
            base: {max: '1', min: 0, path: 'Extension.value[x]'}
            type: string
            short: The actual name
            choiceOf: value
            index: 205
        required: [url]
      type:
        url: type
        base: {max: '*', min: 0, path: Extension.extension}
        short: Name type
        index: 206
        elements:
          url:
            base: {max: '1', min: 1, path: Extension.url}
            pattern: {type: Uri, value: type}
            index: 207
          value:
            base: {max: '1', min: 0, path: 'Extension.value[x]'}
            short: Name type
            choices: [valueCodeableConcept]
            index: 209
          valueCodeableConcept:
            base: {max: '1', min: 0, path: 'Extension.value[x]'}
            type: CodeableConcept
            short: Name type
            choiceOf: value
            index: 210
        required: [url]
      source:
        url: source
        base: {max: '*', min: 0, path: Extension.extension}
        short: Supporting literature
        array: true
        index: 268
        elements:
          url:
            base: {max: '1', min: 1, path: Extension.url}
            pattern: {type: Uri, value: source}
            index: 269
          value:
            base: {max: '1', min: 0, path: 'Extension.value[x]'}
            short: Supporting literature
            choices: [valueReference]
            index: 271
          valueReference:
            base: {max: '1', min: 0, path: 'Extension.value[x]'}
            type: Reference
            short: Supporting literature
            choiceOf: value
            index: 272
        required: [url]
      status:
        url: status
        base: {max: '*', min: 0, path: Extension.extension}
        short: The status of the name
        index: 211
        elements:
          url:
            base: {max: '1', min: 1, path: Extension.url}
            pattern: {type: Uri, value: status}
            index: 212
          value:
            base: {max: '1', min: 0, path: 'Extension.value[x]'}
            short: The status of the name
            choices: [valueCodeableConcept]
            index: 214
          valueCodeableConcept:
            base: {max: '1', min: 0, path: 'Extension.value[x]'}
            type: CodeableConcept
            short: The status of the name
            choiceOf: value
            index: 215
        required: [url]
      language:
        url: language
        base: {max: '*', min: 0, path: Extension.extension}
        short: Language of the name
        array: true
        index: 221
        elements:
          url:
            base: {max: '1', min: 1, path: Extension.url}
            pattern: {type: Uri, value: language}
            index: 222
          value:
            base: {max: '1', min: 0, path: 'Extension.value[x]'}
            short: Language of the name
            choices: [valueCodeableConcept]
            index: 224
          valueCodeableConcept:
            base: {max: '1', min: 0, path: 'Extension.value[x]'}
            type: CodeableConcept
            short: Language of the name
            choiceOf: value
            index: 225
        required: [url]
      synonym:
        url: synonym
        base: {max: '*', min: 0, path: Extension.extension}
        short: A synonym of this name
        array: true
        index: 236
        extensions:
          _datatype:
            url: http://hl7.org/fhir/StructureDefinition/_datatype|5.2.0
            type: Extension
            short: Data type name for SubstanceSpecification.name.synonym from FHIR R4
            index: 238
            elements:
              value:
                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                pattern: {type: String, value: SubstanceSpecification.name}
                choices: [valueString]
                index: 240
              valueString:
                type: string
                pattern: {type: String, value: SubstanceSpecification.name}
                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                choiceOf: value
                index: 241
            required: [valueString, value]
        elements:
          extension:
            base: {max: '*', min: 0, path: Extension.extension}
            array: true
            index: 237
            slicing:
              rules: closed
              ordered: false
              discriminator:
              - {path: url, type: value}
              min: 0
              slices:
                _datatype:
                  match: {url: null}
                  schema:
                    type: Extension
                    short: Data type name for SubstanceSpecification.name.synonym from FHIR R4
                    url: http://hl7.org/fhir/StructureDefinition/_datatype|5.2.0
                    index: 238
                    elements:
                      value:
                        base: {max: '1', min: 0, path: 'Extension.value[x]'}
                        pattern: {type: String, value: SubstanceSpecification.name}
                        choices: [valueString]
                        index: 240
                      valueString:
                        type: string
                        pattern: {type: String, value: SubstanceSpecification.name}
                        base: {max: '1', min: 0, path: 'Extension.value[x]'}
                        choiceOf: value
                        index: 241
                    required: [valueString, value]
          url:
            base: {max: '1', min: 1, path: Extension.url}
            pattern: {type: Uri, value: synonym}
            index: 242
        required: [url]
      translation:
        url: translation
        base: {max: '*', min: 0, path: Extension.extension}
        short: A translation for this name
        array: true
        index: 243
        extensions:
          _datatype:
            url: http://hl7.org/fhir/StructureDefinition/_datatype|5.2.0
            type: Extension
            short: Data type name for SubstanceSpecification.name.translation from FHIR R4
            index: 245
            elements:
              value:
                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                pattern: {type: String, value: SubstanceSpecification.name}
                choices: [valueString]
                index: 247
              valueString:
                type: string
                pattern: {type: String, value: SubstanceSpecification.name}
                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                choiceOf: value
                index: 248
            required: [valueString, value]
        elements:
          extension:
            base: {max: '*', min: 0, path: Extension.extension}
            array: true
            index: 244
            slicing:
              rules: closed
              ordered: false
              discriminator:
              - {path: url, type: value}
              min: 0
              slices:
                _datatype:
                  match: {url: null}
                  schema:
                    type: Extension
                    short: Data type name for SubstanceSpecification.name.translation from FHIR R4
                    url: http://hl7.org/fhir/StructureDefinition/_datatype|5.2.0
                    index: 245
                    elements:
                      value:
                        base: {max: '1', min: 0, path: 'Extension.value[x]'}
                        pattern: {type: String, value: SubstanceSpecification.name}
                        choices: [valueString]
                        index: 247
                      valueString:
                        type: string
                        pattern: {type: String, value: SubstanceSpecification.name}
                        base: {max: '1', min: 0, path: 'Extension.value[x]'}
                        choiceOf: value
                        index: 248
                    required: [valueString, value]
          url:
            base: {max: '1', min: 1, path: Extension.url}
            pattern: {type: Uri, value: translation}
            index: 249
        required: [url]
      preferred:
        url: preferred
        base: {max: '*', min: 0, path: Extension.extension}
        short: If this is the preferred name for this substance
        index: 216
        elements:
          url:
            base: {max: '1', min: 1, path: Extension.url}
            pattern: {type: Uri, value: preferred}
            index: 217
          value:
            base: {max: '1', min: 0, path: 'Extension.value[x]'}
            short: If this is the preferred name for this substance
            choices: [valueBoolean]
            index: 219
          valueBoolean:
            base: {max: '1', min: 0, path: 'Extension.value[x]'}
            type: boolean
            short: If this is the preferred name for this substance
            choiceOf: value
            index: 220
        required: [url]
      domain:
        url: domain
        base: {max: '*', min: 0, path: Extension.extension}
        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
        array: true
        index: 226
        elements:
          url:
            base: {max: '1', min: 1, path: Extension.url}
            pattern: {type: Uri, value: domain}
            index: 227
          value:
            base: {max: '1', min: 0, 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: 229
          valueCodeableConcept:
            base: {max: '1', min: 0, 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: 230
        required: [url]
    elements:
      extension:
        base: {max: '*', min: 0, path: Extension.extension}
        array: true
        min: 1
        index: 200
        slicing:
          rules: closed
          ordered: false
          discriminator:
          - {path: url, type: value}
          min: 1
          slices:
            official:
              match: {url: official}
              schema:
                base: {max: '*', min: 0, path: Extension.extension}
                short: Details of the official nature of this name
                array: true
                index: 250
                extensions:
                  authority:
                    url: authority
                    base: {max: '*', min: 0, path: Extension.extension}
                    short: Which authority uses this official name
                    index: 252
                    elements:
                      url:
                        base: {max: '1', min: 1, path: Extension.url}
                        pattern: {type: Uri, value: authority}
                        index: 253
                      value:
                        base: {max: '1', min: 0, path: 'Extension.value[x]'}
                        short: Which authority uses this official name
                        choices: [valueCodeableConcept]
                        index: 255
                      valueCodeableConcept:
                        base: {max: '1', min: 0, path: 'Extension.value[x]'}
                        type: CodeableConcept
                        short: Which authority uses this official name
                        choiceOf: value
                        index: 256
                    required: [url]
                  status:
                    url: status
                    base: {max: '*', min: 0, path: Extension.extension}
                    short: The status of the official name
                    index: 257
                    elements:
                      url:
                        base: {max: '1', min: 1, path: Extension.url}
                        pattern: {type: Uri, value: status}
                        index: 258
                      value:
                        base: {max: '1', min: 0, path: 'Extension.value[x]'}
                        short: The status of the official name
                        choices: [valueCodeableConcept]
                        index: 260
                      valueCodeableConcept:
                        base: {max: '1', min: 0, path: 'Extension.value[x]'}
                        type: CodeableConcept
                        short: The status of the official name
                        choiceOf: value
                        index: 261
                    required: [url]
                  date:
                    url: date
                    base: {max: '*', min: 0, path: Extension.extension}
                    short: Date of official name change
                    index: 262
                    elements:
                      url:
                        base: {max: '1', min: 1, path: Extension.url}
                        pattern: {type: Uri, value: date}
                        index: 263
                      value:
                        base: {max: '1', min: 0, path: 'Extension.value[x]'}
                        short: Date of official name change
                        choices: [valueDateTime]
                        index: 265
                      valueDateTime:
                        base: {max: '1', min: 0, path: 'Extension.value[x]'}
                        type: dateTime
                        short: Date of official name change
                        choiceOf: value
                        index: 266
                    required: [url]
                elements:
                  extension:
                    base: {max: '*', min: 0, path: Extension.extension}
                    array: true
                    index: 251
                    slicing:
                      rules: closed
                      ordered: false
                      discriminator:
                      - {path: url, type: value}
                      min: 0
                      slices:
                        authority:
                          match: {url: authority}
                          schema:
                            base: {max: '*', min: 0, path: Extension.extension}
                            short: Which authority uses this official name
                            index: 252
                            elements:
                              url:
                                base: {max: '1', min: 1, path: Extension.url}
                                pattern: {type: Uri, value: authority}
                                index: 253
                              value:
                                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                short: Which authority uses this official name
                                choices: [valueCodeableConcept]
                                index: 255
                              valueCodeableConcept:
                                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                type: CodeableConcept
                                short: Which authority uses this official name
                                choiceOf: value
                                index: 256
                            required: [url]
                        status:
                          match: {url: status}
                          schema:
                            base: {max: '*', min: 0, path: Extension.extension}
                            short: The status of the official name
                            index: 257
                            elements:
                              url:
                                base: {max: '1', min: 1, path: Extension.url}
                                pattern: {type: Uri, value: status}
                                index: 258
                              value:
                                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                short: The status of the official name
                                choices: [valueCodeableConcept]
                                index: 260
                              valueCodeableConcept:
                                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                type: CodeableConcept
                                short: The status of the official name
                                choiceOf: value
                                index: 261
                            required: [url]
                        date:
                          match: {url: date}
                          schema:
                            base: {max: '*', min: 0, path: Extension.extension}
                            short: Date of official name change
                            index: 262
                            elements:
                              url:
                                base: {max: '1', min: 1, path: Extension.url}
                                pattern: {type: Uri, value: date}
                                index: 263
                              value:
                                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                short: Date of official name change
                                choices: [valueDateTime]
                                index: 265
                              valueDateTime:
                                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                type: dateTime
                                short: Date of official name change
                                choiceOf: value
                                index: 266
                            required: [url]
                  url:
                    base: {max: '1', min: 1, path: Extension.url}
                    pattern: {type: Uri, value: official}
                    index: 267
                required: [url]
            jurisdiction:
              match: {url: jurisdiction}
              schema:
                base: {max: '*', min: 0, path: Extension.extension}
                short: The jurisdiction where this name applies
                array: true
                index: 231
                elements:
                  url:
                    base: {max: '1', min: 1, path: Extension.url}
                    pattern: {type: Uri, value: jurisdiction}
                    index: 232
                  value:
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    short: The jurisdiction where this name applies
                    choices: [valueCodeableConcept]
                    index: 234
                  valueCodeableConcept:
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    type: CodeableConcept
                    short: The jurisdiction where this name applies
                    choiceOf: value
                    index: 235
                required: [url]
            name:
              match: {url: name}
              schema:
                base: {max: '*', min: 0, path: Extension.extension}
                short: The actual name
                _required: true
                index: 201
                elements:
                  url:
                    base: {max: '1', min: 1, path: Extension.url}
                    pattern: {type: Uri, value: name}
                    index: 202
                  value:
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    short: The actual name
                    choices: [valueString]
                    index: 204
                  valueString:
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    type: string
                    short: The actual name
                    choiceOf: value
                    index: 205
                required: [url]
            type:
              match: {url: type}
              schema:
                base: {max: '*', min: 0, path: Extension.extension}
                short: Name type
                index: 206
                elements:
                  url:
                    base: {max: '1', min: 1, path: Extension.url}
                    pattern: {type: Uri, value: type}
                    index: 207
                  value:
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    short: Name type
                    choices: [valueCodeableConcept]
                    index: 209
                  valueCodeableConcept:
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    type: CodeableConcept
                    short: Name type
                    choiceOf: value
                    index: 210
                required: [url]
            source:
              match: {url: source}
              schema:
                base: {max: '*', min: 0, path: Extension.extension}
                short: Supporting literature
                array: true
                index: 268
                elements:
                  url:
                    base: {max: '1', min: 1, path: Extension.url}
                    pattern: {type: Uri, value: source}
                    index: 269
                  value:
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    short: Supporting literature
                    choices: [valueReference]
                    index: 271
                  valueReference:
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    type: Reference
                    short: Supporting literature
                    choiceOf: value
                    index: 272
                required: [url]
            status:
              match: {url: status}
              schema:
                base: {max: '*', min: 0, path: Extension.extension}
                short: The status of the name
                index: 211
                elements:
                  url:
                    base: {max: '1', min: 1, path: Extension.url}
                    pattern: {type: Uri, value: status}
                    index: 212
                  value:
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    short: The status of the name
                    choices: [valueCodeableConcept]
                    index: 214
                  valueCodeableConcept:
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    type: CodeableConcept
                    short: The status of the name
                    choiceOf: value
                    index: 215
                required: [url]
            language:
              match: {url: language}
              schema:
                base: {max: '*', min: 0, path: Extension.extension}
                short: Language of the name
                array: true
                index: 221
                elements:
                  url:
                    base: {max: '1', min: 1, path: Extension.url}
                    pattern: {type: Uri, value: language}
                    index: 222
                  value:
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    short: Language of the name
                    choices: [valueCodeableConcept]
                    index: 224
                  valueCodeableConcept:
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    type: CodeableConcept
                    short: Language of the name
                    choiceOf: value
                    index: 225
                required: [url]
            synonym:
              match: {url: synonym}
              schema:
                base: {max: '*', min: 0, path: Extension.extension}
                short: A synonym of this name
                array: true
                index: 236
                extensions:
                  _datatype:
                    url: http://hl7.org/fhir/StructureDefinition/_datatype|5.2.0
                    type: Extension
                    short: Data type name for SubstanceSpecification.name.synonym from FHIR R4
                    index: 238
                    elements:
                      value:
                        base: {max: '1', min: 0, path: 'Extension.value[x]'}
                        pattern: {type: String, value: SubstanceSpecification.name}
                        choices: [valueString]
                        index: 240
                      valueString:
                        type: string
                        pattern: {type: String, value: SubstanceSpecification.name}
                        base: {max: '1', min: 0, path: 'Extension.value[x]'}
                        choiceOf: value
                        index: 241
                    required: [valueString, value]
                elements:
                  extension:
                    base: {max: '*', min: 0, path: Extension.extension}
                    array: true
                    index: 237
                    slicing:
                      rules: closed
                      ordered: false
                      discriminator:
                      - {path: url, type: value}
                      min: 0
                      slices:
                        _datatype:
                          match: {url: null}
                          schema:
                            type: Extension
                            short: Data type name for SubstanceSpecification.name.synonym from FHIR R4
                            url: http://hl7.org/fhir/StructureDefinition/_datatype|5.2.0
                            index: 238
                            elements:
                              value:
                                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                pattern: {type: String, value: SubstanceSpecification.name}
                                choices: [valueString]
                                index: 240
                              valueString:
                                type: string
                                pattern: {type: String, value: SubstanceSpecification.name}
                                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                choiceOf: value
                                index: 241
                            required: [valueString, value]
                  url:
                    base: {max: '1', min: 1, path: Extension.url}
                    pattern: {type: Uri, value: synonym}
                    index: 242
                required: [url]
            translation:
              match: {url: translation}
              schema:
                base: {max: '*', min: 0, path: Extension.extension}
                short: A translation for this name
                array: true
                index: 243
                extensions:
                  _datatype:
                    url: http://hl7.org/fhir/StructureDefinition/_datatype|5.2.0
                    type: Extension
                    short: Data type name for SubstanceSpecification.name.translation from FHIR R4
                    index: 245
                    elements:
                      value:
                        base: {max: '1', min: 0, path: 'Extension.value[x]'}
                        pattern: {type: String, value: SubstanceSpecification.name}
                        choices: [valueString]
                        index: 247
                      valueString:
                        type: string
                        pattern: {type: String, value: SubstanceSpecification.name}
                        base: {max: '1', min: 0, path: 'Extension.value[x]'}
                        choiceOf: value
                        index: 248
                    required: [valueString, value]
                elements:
                  extension:
                    base: {max: '*', min: 0, path: Extension.extension}
                    array: true
                    index: 244
                    slicing:
                      rules: closed
                      ordered: false
                      discriminator:
                      - {path: url, type: value}
                      min: 0
                      slices:
                        _datatype:
                          match: {url: null}
                          schema:
                            type: Extension
                            short: Data type name for SubstanceSpecification.name.translation from FHIR R4
                            url: http://hl7.org/fhir/StructureDefinition/_datatype|5.2.0
                            index: 245
                            elements:
                              value:
                                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                pattern: {type: String, value: SubstanceSpecification.name}
                                choices: [valueString]
                                index: 247
                              valueString:
                                type: string
                                pattern: {type: String, value: SubstanceSpecification.name}
                                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                choiceOf: value
                                index: 248
                            required: [valueString, value]
                  url:
                    base: {max: '1', min: 1, path: Extension.url}
                    pattern: {type: Uri, value: translation}
                    index: 249
                required: [url]
            preferred:
              match: {url: preferred}
              schema:
                base: {max: '*', min: 0, path: Extension.extension}
                short: If this is the preferred name for this substance
                index: 216
                elements:
                  url:
                    base: {max: '1', min: 1, path: Extension.url}
                    pattern: {type: Uri, value: preferred}
                    index: 217
                  value:
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    short: If this is the preferred name for this substance
                    choices: [valueBoolean]
                    index: 219
                  valueBoolean:
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    type: boolean
                    short: If this is the preferred name for this substance
                    choiceOf: value
                    index: 220
                required: [url]
            domain:
              match: {url: domain}
              schema:
                base: {max: '*', min: 0, path: Extension.extension}
                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
                array: true
                index: 226
                elements:
                  url:
                    base: {max: '1', min: 1, path: Extension.url}
                    pattern: {type: Uri, value: domain}
                    index: 227
                  value:
                    base: {max: '1', min: 0, 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: 229
                  valueCodeableConcept:
                    base: {max: '1', min: 0, 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: 230
                required: [url]
      url:
        base: {max: '1', min: 1, path: Extension.url}
        pattern: {type: Uri, value: name}
        index: 273
    required: [url, extension]
  referenceInformation:
    url: referenceInformation
    base: {max: '*', min: 0, path: Extension.extension}
    short: General information detailing this substance
    index: 100
    elements:
      url:
        base: {max: '1', min: 1, path: Extension.url}
        pattern: {type: Uri, value: referenceInformation}
        index: 101
      value:
        base: {max: '1', min: 0, path: 'Extension.value[x]'}
        short: General information detailing this substance
        choices: [valueReference]
        index: 103
      valueReference:
        base: {max: '1', min: 0, path: 'Extension.value[x]'}
        type: Reference
        short: General information detailing this substance
        choiceOf: value
        index: 104
    required: [url]
  relationship:
    url: relationship
    base: {max: '*', min: 0, path: Extension.extension}
    short: A link between this substance and another, with details of the relationship
    array: true
    index: 281
    extensions:
      substance[x]:
        url: substance[x]
        base: {max: '*', min: 0, path: Extension.extension}
        short: A pointer to another substance, as a resource or just a representational code
        index: 283
        elements:
          url:
            base: {max: '1', min: 1, path: Extension.url}
            pattern: {type: Uri, value: 'substance[x]'}
            index: 284
          value:
            base: {max: '1', min: 0, path: 'Extension.value[x]'}
            short: A pointer to another substance, as a resource or just a representational code
            choices: [valueReference, valueCodeableConcept]
            index: 286
          valueReference:
            base: {max: '1', min: 0, path: 'Extension.value[x]'}
            type: Reference
            short: A pointer to another substance, as a resource or just a representational code
            choiceOf: value
            index: 287
          valueCodeableConcept:
            base: {max: '1', min: 0, path: 'Extension.value[x]'}
            type: CodeableConcept
            short: A pointer to another substance, as a resource or just a representational code
            choiceOf: value
            index: 288
        required: [url]
      relationship:
        url: relationship
        base: {max: '*', min: 0, path: Extension.extension}
        short: For example "salt to parent", "active moiety", "starting material"
        index: 289
        elements:
          url:
            base: {max: '1', min: 1, path: Extension.url}
            pattern: {type: Uri, value: relationship}
            index: 290
          value:
            base: {max: '1', min: 0, path: 'Extension.value[x]'}
            short: For example "salt to parent", "active moiety", "starting material"
            choices: [valueCodeableConcept]
            index: 292
          valueCodeableConcept:
            base: {max: '1', min: 0, path: 'Extension.value[x]'}
            type: CodeableConcept
            short: For example "salt to parent", "active moiety", "starting material"
            choiceOf: value
            index: 293
        required: [url]
      isDefining:
        url: isDefining
        base: {max: '*', min: 0, path: Extension.extension}
        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
        index: 294
        elements:
          url:
            base: {max: '1', min: 1, path: Extension.url}
            pattern: {type: Uri, value: isDefining}
            index: 295
          value:
            base: {max: '1', min: 0, 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: 297
          valueBoolean:
            base: {max: '1', min: 0, 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: 298
        required: [url]
      amount[x]:
        url: amount[x]
        base: {max: '*', min: 0, path: Extension.extension}
        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
        index: 299
        elements:
          url:
            base: {max: '1', min: 1, path: Extension.url}
            pattern: {type: Uri, value: 'amount[x]'}
            index: 300
          value:
            base: {max: '1', min: 0, 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: 302
          valueQuantity:
            base: {max: '1', min: 0, 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: 303
          valueRange:
            base: {max: '1', min: 0, 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: 304
          valueRatio:
            base: {max: '1', min: 0, 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: 305
          valueString:
            base: {max: '1', min: 0, 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: 306
        required: [url]
      amountRatioLowLimit:
        url: amountRatioLowLimit
        base: {max: '*', min: 0, path: Extension.extension}
        short: For use when the numeric
        index: 307
        elements:
          url:
            base: {max: '1', min: 1, path: Extension.url}
            pattern: {type: Uri, value: amountRatioLowLimit}
            index: 308
          value:
            base: {max: '1', min: 0, path: 'Extension.value[x]'}
            short: For use when the numeric
            choices: [valueRatio]
            index: 310
          valueRatio:
            base: {max: '1', min: 0, path: 'Extension.value[x]'}
            type: Ratio
            short: For use when the numeric
            choiceOf: value
            index: 311
        required: [url]
      amountType:
        url: amountType
        base: {max: '*', min: 0, path: Extension.extension}
        short: An operator for the amount, for example "average", "approximately", "less than"
        index: 312
        elements:
          url:
            base: {max: '1', min: 1, path: Extension.url}
            pattern: {type: Uri, value: amountType}
            index: 313
          value:
            base: {max: '1', min: 0, path: 'Extension.value[x]'}
            short: An operator for the amount, for example "average", "approximately", "less than"
            choices: [valueCodeableConcept]
            index: 315
          valueCodeableConcept:
            base: {max: '1', min: 0, path: 'Extension.value[x]'}
            type: CodeableConcept
            short: An operator for the amount, for example "average", "approximately", "less than"
            choiceOf: value
            index: 316
        required: [url]
      source:
        url: source
        base: {max: '*', min: 0, path: Extension.extension}
        short: Supporting literature
        array: true
        index: 317
        elements:
          url:
            base: {max: '1', min: 1, path: Extension.url}
            pattern: {type: Uri, value: source}
            index: 318
          value:
            base: {max: '1', min: 0, path: 'Extension.value[x]'}
            short: Supporting literature
            choices: [valueReference]
            index: 320
          valueReference:
            base: {max: '1', min: 0, path: 'Extension.value[x]'}
            type: Reference
            short: Supporting literature
            choiceOf: value
            index: 321
        required: [url]
    elements:
      extension:
        base: {max: '*', min: 0, path: Extension.extension}
        array: true
        index: 282
        slicing:
          rules: closed
          ordered: false
          discriminator:
          - {path: url, type: value}
          min: 0
          slices:
            substance[x]:
              match: {url: 'substance[x]'}
              schema:
                base: {max: '*', min: 0, path: Extension.extension}
                short: A pointer to another substance, as a resource or just a representational code
                index: 283
                elements:
                  url:
                    base: {max: '1', min: 1, path: Extension.url}
                    pattern: {type: Uri, value: 'substance[x]'}
                    index: 284
                  value:
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    short: A pointer to another substance, as a resource or just a representational code
                    choices: [valueReference, valueCodeableConcept]
                    index: 286
                  valueReference:
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    type: Reference
                    short: A pointer to another substance, as a resource or just a representational code
                    choiceOf: value
                    index: 287
                  valueCodeableConcept:
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    type: CodeableConcept
                    short: A pointer to another substance, as a resource or just a representational code
                    choiceOf: value
                    index: 288
                required: [url]
            relationship:
              match: {url: relationship}
              schema:
                base: {max: '*', min: 0, path: Extension.extension}
                short: For example "salt to parent", "active moiety", "starting material"
                index: 289
                elements:
                  url:
                    base: {max: '1', min: 1, path: Extension.url}
                    pattern: {type: Uri, value: relationship}
                    index: 290
                  value:
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    short: For example "salt to parent", "active moiety", "starting material"
                    choices: [valueCodeableConcept]
                    index: 292
                  valueCodeableConcept:
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    type: CodeableConcept
                    short: For example "salt to parent", "active moiety", "starting material"
                    choiceOf: value
                    index: 293
                required: [url]
            isDefining:
              match: {url: isDefining}
              schema:
                base: {max: '*', min: 0, path: Extension.extension}
                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
                index: 294
                elements:
                  url:
                    base: {max: '1', min: 1, path: Extension.url}
                    pattern: {type: Uri, value: isDefining}
                    index: 295
                  value:
                    base: {max: '1', min: 0, 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: 297
                  valueBoolean:
                    base: {max: '1', min: 0, 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: 298
                required: [url]
            amount[x]:
              match: {url: 'amount[x]'}
              schema:
                base: {max: '*', min: 0, path: Extension.extension}
                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
                index: 299
                elements:
                  url:
                    base: {max: '1', min: 1, path: Extension.url}
                    pattern: {type: Uri, value: 'amount[x]'}
                    index: 300
                  value:
                    base: {max: '1', min: 0, 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: 302
                  valueQuantity:
                    base: {max: '1', min: 0, 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: 303
                  valueRange:
                    base: {max: '1', min: 0, 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: 304
                  valueRatio:
                    base: {max: '1', min: 0, 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: 305
                  valueString:
                    base: {max: '1', min: 0, 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: 306
                required: [url]
            amountRatioLowLimit:
              match: {url: amountRatioLowLimit}
              schema:
                base: {max: '*', min: 0, path: Extension.extension}
                short: For use when the numeric
                index: 307
                elements:
                  url:
                    base: {max: '1', min: 1, path: Extension.url}
                    pattern: {type: Uri, value: amountRatioLowLimit}
                    index: 308
                  value:
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    short: For use when the numeric
                    choices: [valueRatio]
                    index: 310
                  valueRatio:
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    type: Ratio
                    short: For use when the numeric
                    choiceOf: value
                    index: 311
                required: [url]
            amountType:
              match: {url: amountType}
              schema:
                base: {max: '*', min: 0, path: Extension.extension}
                short: An operator for the amount, for example "average", "approximately", "less than"
                index: 312
                elements:
                  url:
                    base: {max: '1', min: 1, path: Extension.url}
                    pattern: {type: Uri, value: amountType}
                    index: 313
                  value:
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    short: An operator for the amount, for example "average", "approximately", "less than"
                    choices: [valueCodeableConcept]
                    index: 315
                  valueCodeableConcept:
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    type: CodeableConcept
                    short: An operator for the amount, for example "average", "approximately", "less than"
                    choiceOf: value
                    index: 316
                required: [url]
            source:
              match: {url: source}
              schema:
                base: {max: '*', min: 0, path: Extension.extension}
                short: Supporting literature
                array: true
                index: 317
                elements:
                  url:
                    base: {max: '1', min: 1, path: Extension.url}
                    pattern: {type: Uri, value: source}
                    index: 318
                  value:
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    short: Supporting literature
                    choices: [valueReference]
                    index: 320
                  valueReference:
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    type: Reference
                    short: Supporting literature
                    choiceOf: value
                    index: 321
                required: [url]
      url:
        base: {max: '1', min: 1, path: Extension.url}
        pattern: {type: Uri, value: relationship}
        index: 322
    required: [url]
  type:
    url: type
    base: {max: '*', min: 0, path: Extension.extension}
    short: High level categorization, e.g. polymer or nucleic acid
    index: 1
    elements:
      url:
        base: {max: '1', min: 1, path: Extension.url}
        pattern: {type: Uri, value: type}
        index: 2
      value:
        base: {max: '1', min: 0, path: 'Extension.value[x]'}
        short: High level categorization, e.g. polymer or nucleic acid
        choices: [valueCodeableConcept]
        index: 4
      valueCodeableConcept:
        base: {max: '1', min: 0, path: 'Extension.value[x]'}
        type: CodeableConcept
        short: High level categorization, e.g. polymer or nucleic acid
        choiceOf: value
        index: 5
    required: [url]
  moiety:
    url: moiety
    base: {max: '*', min: 0, path: Extension.extension}
    short: Moiety, for structural modifications
    array: true
    index: 31
    extensions:
      role:
        url: role
        base: {max: '*', min: 0, path: Extension.extension}
        short: Role that the moiety is playing
        index: 33
        elements:
          url:
            base: {max: '1', min: 1, path: Extension.url}
            pattern: {type: Uri, value: role}
            index: 34
          value:
            base: {max: '1', min: 0, path: 'Extension.value[x]'}
            short: Role that the moiety is playing
            choices: [valueCodeableConcept]
            index: 36
          valueCodeableConcept:
            base: {max: '1', min: 0, path: 'Extension.value[x]'}
            type: CodeableConcept
            short: Role that the moiety is playing
            choiceOf: value
            index: 37
        required: [url]
      identifier:
        url: identifier
        base: {max: '*', min: 0, path: Extension.extension}
        short: Identifier by which this moiety substance is known
        index: 38
        elements:
          url:
            base: {max: '1', min: 1, path: Extension.url}
            pattern: {type: Uri, value: identifier}
            index: 39
          value:
            base: {max: '1', min: 0, path: 'Extension.value[x]'}
            short: Identifier by which this moiety substance is known
            choices: [valueIdentifier]
            index: 41
          valueIdentifier:
            base: {max: '1', min: 0, path: 'Extension.value[x]'}
            type: Identifier
            short: Identifier by which this moiety substance is known
            choiceOf: value
            index: 42
        required: [url]
      name:
        url: name
        base: {max: '*', min: 0, path: Extension.extension}
        short: Textual name for this moiety substance
        index: 43
        elements:
          url:
            base: {max: '1', min: 1, path: Extension.url}
            pattern: {type: Uri, value: name}
            index: 44
          value:
            base: {max: '1', min: 0, path: 'Extension.value[x]'}
            short: Textual name for this moiety substance
            choices: [valueString]
            index: 46
          valueString:
            base: {max: '1', min: 0, path: 'Extension.value[x]'}
            type: string
            short: Textual name for this moiety substance
            choiceOf: value
            index: 47
        required: [url]
      stereochemistry:
        url: stereochemistry
        base: {max: '*', min: 0, path: Extension.extension}
        short: Stereochemistry type
        index: 48
        elements:
          url:
            base: {max: '1', min: 1, path: Extension.url}
            pattern: {type: Uri, value: stereochemistry}
            index: 49
          value:
            base: {max: '1', min: 0, path: 'Extension.value[x]'}
            short: Stereochemistry type
            choices: [valueCodeableConcept]
            index: 51
          valueCodeableConcept:
            base: {max: '1', min: 0, path: 'Extension.value[x]'}
            type: CodeableConcept
            short: Stereochemistry type
            choiceOf: value
            index: 52
        required: [url]
      opticalActivity:
        url: opticalActivity
        base: {max: '*', min: 0, path: Extension.extension}
        short: Optical activity type
        index: 53
        elements:
          url:
            base: {max: '1', min: 1, path: Extension.url}
            pattern: {type: Uri, value: opticalActivity}
            index: 54
          value:
            base: {max: '1', min: 0, path: 'Extension.value[x]'}
            short: Optical activity type
            choices: [valueCodeableConcept]
            index: 56
          valueCodeableConcept:
            base: {max: '1', min: 0, path: 'Extension.value[x]'}
            type: CodeableConcept
            short: Optical activity type
            choiceOf: value
            index: 57
        required: [url]
      molecularFormula:
        url: molecularFormula
        base: {max: '*', min: 0, path: Extension.extension}
        short: Molecular formula
        index: 58
        elements:
          url:
            base: {max: '1', min: 1, path: Extension.url}
            pattern: {type: Uri, value: molecularFormula}
            index: 59
          value:
            base: {max: '1', min: 0, path: 'Extension.value[x]'}
            short: Molecular formula
            choices: [valueString]
            index: 61
          valueString:
            base: {max: '1', min: 0, path: 'Extension.value[x]'}
            type: string
            short: Molecular formula
            choiceOf: value
            index: 62
        required: [url]
      amount[x]:
        url: amount[x]
        base: {max: '*', min: 0, path: Extension.extension}
        short: Quantitative value for this moiety
        index: 63
        elements:
          url:
            base: {max: '1', min: 1, path: Extension.url}
            pattern: {type: Uri, value: 'amount[x]'}
            index: 64
          value:
            base: {max: '1', min: 0, path: 'Extension.value[x]'}
            short: Quantitative value for this moiety
            choices: [valueQuantity, valueString]
            index: 66
          valueQuantity:
            base: {max: '1', min: 0, path: 'Extension.value[x]'}
            type: Quantity
            short: Quantitative value for this moiety
            choiceOf: value
            index: 67
          valueString:
            base: {max: '1', min: 0, path: 'Extension.value[x]'}
            type: string
            short: Quantitative value for this moiety
            choiceOf: value
            index: 68
        required: [url]
    elements:
      extension:
        base: {max: '*', min: 0, path: Extension.extension}
        array: true
        index: 32
        slicing:
          rules: closed
          ordered: false
          discriminator:
          - {path: url, type: value}
          min: 0
          slices:
            role:
              match: {url: role}
              schema:
                base: {max: '*', min: 0, path: Extension.extension}
                short: Role that the moiety is playing
                index: 33
                elements:
                  url:
                    base: {max: '1', min: 1, path: Extension.url}
                    pattern: {type: Uri, value: role}
                    index: 34
                  value:
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    short: Role that the moiety is playing
                    choices: [valueCodeableConcept]
                    index: 36
                  valueCodeableConcept:
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    type: CodeableConcept
                    short: Role that the moiety is playing
                    choiceOf: value
                    index: 37
                required: [url]
            identifier:
              match: {url: identifier}
              schema:
                base: {max: '*', min: 0, path: Extension.extension}
                short: Identifier by which this moiety substance is known
                index: 38
                elements:
                  url:
                    base: {max: '1', min: 1, path: Extension.url}
                    pattern: {type: Uri, value: identifier}
                    index: 39
                  value:
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    short: Identifier by which this moiety substance is known
                    choices: [valueIdentifier]
                    index: 41
                  valueIdentifier:
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    type: Identifier
                    short: Identifier by which this moiety substance is known
                    choiceOf: value
                    index: 42
                required: [url]
            name:
              match: {url: name}
              schema:
                base: {max: '*', min: 0, path: Extension.extension}
                short: Textual name for this moiety substance
                index: 43
                elements:
                  url:
                    base: {max: '1', min: 1, path: Extension.url}
                    pattern: {type: Uri, value: name}
                    index: 44
                  value:
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    short: Textual name for this moiety substance
                    choices: [valueString]
                    index: 46
                  valueString:
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    type: string
                    short: Textual name for this moiety substance
                    choiceOf: value
                    index: 47
                required: [url]
            stereochemistry:
              match: {url: stereochemistry}
              schema:
                base: {max: '*', min: 0, path: Extension.extension}
                short: Stereochemistry type
                index: 48
                elements:
                  url:
                    base: {max: '1', min: 1, path: Extension.url}
                    pattern: {type: Uri, value: stereochemistry}
                    index: 49
                  value:
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    short: Stereochemistry type
                    choices: [valueCodeableConcept]
                    index: 51
                  valueCodeableConcept:
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    type: CodeableConcept
                    short: Stereochemistry type
                    choiceOf: value
                    index: 52
                required: [url]
            opticalActivity:
              match: {url: opticalActivity}
              schema:
                base: {max: '*', min: 0, path: Extension.extension}
                short: Optical activity type
                index: 53
                elements:
                  url:
                    base: {max: '1', min: 1, path: Extension.url}
                    pattern: {type: Uri, value: opticalActivity}
                    index: 54
                  value:
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    short: Optical activity type
                    choices: [valueCodeableConcept]
                    index: 56
                  valueCodeableConcept:
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    type: CodeableConcept
                    short: Optical activity type
                    choiceOf: value
                    index: 57
                required: [url]
            molecularFormula:
              match: {url: molecularFormula}
              schema:
                base: {max: '*', min: 0, path: Extension.extension}
                short: Molecular formula
                index: 58
                elements:
                  url:
                    base: {max: '1', min: 1, path: Extension.url}
                    pattern: {type: Uri, value: molecularFormula}
                    index: 59
                  value:
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    short: Molecular formula
                    choices: [valueString]
                    index: 61
                  valueString:
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    type: string
                    short: Molecular formula
                    choiceOf: value
                    index: 62
                required: [url]
            amount[x]:
              match: {url: 'amount[x]'}
              schema:
                base: {max: '*', min: 0, path: Extension.extension}
                short: Quantitative value for this moiety
                index: 63
                elements:
                  url:
                    base: {max: '1', min: 1, path: Extension.url}
                    pattern: {type: Uri, value: 'amount[x]'}
                    index: 64
                  value:
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    short: Quantitative value for this moiety
                    choices: [valueQuantity, valueString]
                    index: 66
                  valueQuantity:
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    type: Quantity
                    short: Quantitative value for this moiety
                    choiceOf: value
                    index: 67
                  valueString:
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    type: string
                    short: Quantitative value for this moiety
                    choiceOf: value
                    index: 68
                required: [url]
      url:
        base: {max: '1', min: 1, path: Extension.url}
        pattern: {type: Uri, value: moiety}
        index: 69
    required: [url]
  source:
    url: source
    base: {max: '*', min: 0, path: Extension.extension}
    short: Supporting literature
    array: true
    index: 21
    elements:
      url:
        base: {max: '1', min: 1, path: Extension.url}
        pattern: {type: Uri, value: source}
        index: 22
      value:
        base: {max: '1', min: 0, path: 'Extension.value[x]'}
        short: Supporting literature
        choices: [valueReference]
        index: 24
      valueReference:
        base: {max: '1', min: 0, path: 'Extension.value[x]'}
        type: Reference
        short: Supporting literature
        choiceOf: value
        index: 25
    required: [url]
  nucleicAcid:
    url: nucleicAcid
    base: {max: '*', min: 0, path: Extension.extension}
    short: Data items specific to nucleic acids
    index: 323
    elements:
      url:
        base: {max: '1', min: 1, path: Extension.url}
        pattern: {type: Uri, value: nucleicAcid}
        index: 324
      value:
        base: {max: '1', min: 0, path: 'Extension.value[x]'}
        short: Data items specific to nucleic acids
        choices: [valueReference]
        index: 326
      valueReference:
        base: {max: '1', min: 0, path: 'Extension.value[x]'}
        type: Reference
        short: Data items specific to nucleic acids
        choiceOf: value
        index: 327
    required: [url]
  structure:
    url: structure
    base: {max: '*', min: 0, path: Extension.extension}
    short: Structural information
    index: 105
    extensions:
      stereochemistry:
        url: stereochemistry
        base: {max: '*', min: 0, path: Extension.extension}
        short: Stereochemistry type
        index: 107
        elements:
          url:
            base: {max: '1', min: 1, path: Extension.url}
            pattern: {type: Uri, value: stereochemistry}
            index: 108
          value:
            base: {max: '1', min: 0, path: 'Extension.value[x]'}
            short: Stereochemistry type
            choices: [valueCodeableConcept]
            index: 110
          valueCodeableConcept:
            base: {max: '1', min: 0, path: 'Extension.value[x]'}
            type: CodeableConcept
            short: Stereochemistry type
            choiceOf: value
            index: 111
        required: [url]
      opticalActivity:
        url: opticalActivity
        base: {max: '*', min: 0, path: Extension.extension}
        short: Optical activity type
        index: 112
        elements:
          url:
            base: {max: '1', min: 1, path: Extension.url}
            pattern: {type: Uri, value: opticalActivity}
            index: 113
          value:
            base: {max: '1', min: 0, path: 'Extension.value[x]'}
            short: Optical activity type
            choices: [valueCodeableConcept]
            index: 115
          valueCodeableConcept:
            base: {max: '1', min: 0, path: 'Extension.value[x]'}
            type: CodeableConcept
            short: Optical activity type
            choiceOf: value
            index: 116
        required: [url]
      molecularFormula:
        url: molecularFormula
        base: {max: '*', min: 0, path: Extension.extension}
        short: Molecular formula
        index: 117
        elements:
          url:
            base: {max: '1', min: 1, path: Extension.url}
            pattern: {type: Uri, value: molecularFormula}
            index: 118
          value:
            base: {max: '1', min: 0, path: 'Extension.value[x]'}
            short: Molecular formula
            choices: [valueString]
            index: 120
          valueString:
            base: {max: '1', min: 0, path: 'Extension.value[x]'}
            type: string
            short: Molecular formula
            choiceOf: value
            index: 121
        required: [url]
      molecularFormulaByMoiety:
        url: molecularFormulaByMoiety
        base: {max: '*', min: 0, path: Extension.extension}
        short: Specified per moiety according to the Hill system, i.e. first C, then H, then alphabetical, each moiety separated by a dot
        index: 122
        elements:
          url:
            base: {max: '1', min: 1, path: Extension.url}
            pattern: {type: Uri, value: molecularFormulaByMoiety}
            index: 123
          value:
            base: {max: '1', min: 0, 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: 125
          valueString:
            base: {max: '1', min: 0, 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: 126
        required: [url]
      isotope:
        url: isotope
        base: {max: '*', min: 0, path: Extension.extension}
        short: Applicable for single substances that contain a radionuclide or a non-natural isotopic ratio
        array: true
        index: 127
        extensions:
          identifier:
            url: identifier
            base: {max: '*', min: 0, path: Extension.extension}
            short: Substance identifier for each non-natural or radioisotope
            index: 129
            elements:
              url:
                base: {max: '1', min: 1, path: Extension.url}
                pattern: {type: Uri, value: identifier}
                index: 130
              value:
                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                short: Substance identifier for each non-natural or radioisotope
                choices: [valueIdentifier]
                index: 132
              valueIdentifier:
                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                type: Identifier
                short: Substance identifier for each non-natural or radioisotope
                choiceOf: value
                index: 133
            required: [url]
          name:
            url: name
            base: {max: '*', min: 0, path: Extension.extension}
            short: Substance name for each non-natural or radioisotope
            index: 134
            elements:
              url:
                base: {max: '1', min: 1, path: Extension.url}
                pattern: {type: Uri, value: name}
                index: 135
              value:
                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                short: Substance name for each non-natural or radioisotope
                choices: [valueCodeableConcept]
                index: 137
              valueCodeableConcept:
                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                type: CodeableConcept
                short: Substance name for each non-natural or radioisotope
                choiceOf: value
                index: 138
            required: [url]
          substitution:
            url: substitution
            base: {max: '*', min: 0, path: Extension.extension}
            short: The type of isotopic substitution present in a single substance
            index: 139
            elements:
              url:
                base: {max: '1', min: 1, path: Extension.url}
                pattern: {type: Uri, value: substitution}
                index: 140
              value:
                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                short: The type of isotopic substitution present in a single substance
                choices: [valueCodeableConcept]
                index: 142
              valueCodeableConcept:
                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                type: CodeableConcept
                short: The type of isotopic substitution present in a single substance
                choiceOf: value
                index: 143
            required: [url]
          halfLife:
            url: halfLife
            base: {max: '*', min: 0, path: Extension.extension}
            short: Half life - for a non-natural nuclide
            index: 144
            elements:
              url:
                base: {max: '1', min: 1, path: Extension.url}
                pattern: {type: Uri, value: halfLife}
                index: 145
              value:
                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                short: Half life - for a non-natural nuclide
                choices: [valueQuantity]
                index: 147
              valueQuantity:
                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                type: Quantity
                short: Half life - for a non-natural nuclide
                choiceOf: value
                index: 148
            required: [url]
          molecularWeight:
            url: molecularWeight
            base: {max: '*', min: 0, path: Extension.extension}
            short: The molecular weight or weight range (for proteins, polymers or nucleic acids)
            index: 149
            extensions:
              method:
                url: method
                base: {max: '*', min: 0, path: Extension.extension}
                short: The method by which the molecular weight was determined
                index: 151
                elements:
                  url:
                    base: {max: '1', min: 1, path: Extension.url}
                    pattern: {type: Uri, value: method}
                    index: 152
                  value:
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    short: The method by which the molecular weight was determined
                    choices: [valueCodeableConcept]
                    index: 154
                  valueCodeableConcept:
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    type: CodeableConcept
                    short: The method by which the molecular weight was determined
                    choiceOf: value
                    index: 155
                required: [url]
              type:
                url: type
                base: {max: '*', min: 0, path: Extension.extension}
                short: Type of molecular weight such as exact, average (also known as. number average), weight average
                index: 156
                elements:
                  url:
                    base: {max: '1', min: 1, path: Extension.url}
                    pattern: {type: Uri, value: type}
                    index: 157
                  value:
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    short: Type of molecular weight such as exact, average (also known as. number average), weight average
                    choices: [valueCodeableConcept]
                    index: 159
                  valueCodeableConcept:
                    base: {max: '1', min: 0, 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: 160
                required: [url]
              amount:
                url: amount
                base: {max: '*', min: 0, path: Extension.extension}
                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
                index: 161
                elements:
                  url:
                    base: {max: '1', min: 1, path: Extension.url}
                    pattern: {type: Uri, value: amount}
                    index: 162
                  value:
                    base: {max: '1', min: 0, 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: 164
                  valueQuantity:
                    base: {max: '1', min: 0, 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: 165
                required: [url]
            elements:
              extension:
                base: {max: '*', min: 0, path: Extension.extension}
                array: true
                index: 150
                slicing:
                  rules: closed
                  ordered: false
                  discriminator:
                  - {path: url, type: value}
                  min: 0
                  slices:
                    method:
                      match: {url: method}
                      schema:
                        base: {max: '*', min: 0, path: Extension.extension}
                        short: The method by which the molecular weight was determined
                        index: 151
                        elements:
                          url:
                            base: {max: '1', min: 1, path: Extension.url}
                            pattern: {type: Uri, value: method}
                            index: 152
                          value:
                            base: {max: '1', min: 0, path: 'Extension.value[x]'}
                            short: The method by which the molecular weight was determined
                            choices: [valueCodeableConcept]
                            index: 154
                          valueCodeableConcept:
                            base: {max: '1', min: 0, path: 'Extension.value[x]'}
                            type: CodeableConcept
                            short: The method by which the molecular weight was determined
                            choiceOf: value
                            index: 155
                        required: [url]
                    type:
                      match: {url: type}
                      schema:
                        base: {max: '*', min: 0, path: Extension.extension}
                        short: Type of molecular weight such as exact, average (also known as. number average), weight average
                        index: 156
                        elements:
                          url:
                            base: {max: '1', min: 1, path: Extension.url}
                            pattern: {type: Uri, value: type}
                            index: 157
                          value:
                            base: {max: '1', min: 0, path: 'Extension.value[x]'}
                            short: Type of molecular weight such as exact, average (also known as. number average), weight average
                            choices: [valueCodeableConcept]
                            index: 159
                          valueCodeableConcept:
                            base: {max: '1', min: 0, 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: 160
                        required: [url]
                    amount:
                      match: {url: amount}
                      schema:
                        base: {max: '*', min: 0, path: Extension.extension}
                        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
                        index: 161
                        elements:
                          url:
                            base: {max: '1', min: 1, path: Extension.url}
                            pattern: {type: Uri, value: amount}
                            index: 162
                          value:
                            base: {max: '1', min: 0, 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: 164
                          valueQuantity:
                            base: {max: '1', min: 0, 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: 165
                        required: [url]
              url:
                base: {max: '1', min: 1, path: Extension.url}
                pattern: {type: Uri, value: molecularWeight}
                index: 166
            required: [url]
        elements:
          extension:
            base: {max: '*', min: 0, path: Extension.extension}
            array: true
            index: 128
            slicing:
              rules: closed
              ordered: false
              discriminator:
              - {path: url, type: value}
              min: 0
              slices:
                identifier:
                  match: {url: identifier}
                  schema:
                    base: {max: '*', min: 0, path: Extension.extension}
                    short: Substance identifier for each non-natural or radioisotope
                    index: 129
                    elements:
                      url:
                        base: {max: '1', min: 1, path: Extension.url}
                        pattern: {type: Uri, value: identifier}
                        index: 130
                      value:
                        base: {max: '1', min: 0, path: 'Extension.value[x]'}
                        short: Substance identifier for each non-natural or radioisotope
                        choices: [valueIdentifier]
                        index: 132
                      valueIdentifier:
                        base: {max: '1', min: 0, path: 'Extension.value[x]'}
                        type: Identifier
                        short: Substance identifier for each non-natural or radioisotope
                        choiceOf: value
                        index: 133
                    required: [url]
                name:
                  match: {url: name}
                  schema:
                    base: {max: '*', min: 0, path: Extension.extension}
                    short: Substance name for each non-natural or radioisotope
                    index: 134
                    elements:
                      url:
                        base: {max: '1', min: 1, path: Extension.url}
                        pattern: {type: Uri, value: name}
                        index: 135
                      value:
                        base: {max: '1', min: 0, path: 'Extension.value[x]'}
                        short: Substance name for each non-natural or radioisotope
                        choices: [valueCodeableConcept]
                        index: 137
                      valueCodeableConcept:
                        base: {max: '1', min: 0, path: 'Extension.value[x]'}
                        type: CodeableConcept
                        short: Substance name for each non-natural or radioisotope
                        choiceOf: value
                        index: 138
                    required: [url]
                substitution:
                  match: {url: substitution}
                  schema:
                    base: {max: '*', min: 0, path: Extension.extension}
                    short: The type of isotopic substitution present in a single substance
                    index: 139
                    elements:
                      url:
                        base: {max: '1', min: 1, path: Extension.url}
                        pattern: {type: Uri, value: substitution}
                        index: 140
                      value:
                        base: {max: '1', min: 0, path: 'Extension.value[x]'}
                        short: The type of isotopic substitution present in a single substance
                        choices: [valueCodeableConcept]
                        index: 142
                      valueCodeableConcept:
                        base: {max: '1', min: 0, path: 'Extension.value[x]'}
                        type: CodeableConcept
                        short: The type of isotopic substitution present in a single substance
                        choiceOf: value
                        index: 143
                    required: [url]
                halfLife:
                  match: {url: halfLife}
                  schema:
                    base: {max: '*', min: 0, path: Extension.extension}
                    short: Half life - for a non-natural nuclide
                    index: 144
                    elements:
                      url:
                        base: {max: '1', min: 1, path: Extension.url}
                        pattern: {type: Uri, value: halfLife}
                        index: 145
                      value:
                        base: {max: '1', min: 0, path: 'Extension.value[x]'}
                        short: Half life - for a non-natural nuclide
                        choices: [valueQuantity]
                        index: 147
                      valueQuantity:
                        base: {max: '1', min: 0, path: 'Extension.value[x]'}
                        type: Quantity
                        short: Half life - for a non-natural nuclide
                        choiceOf: value
                        index: 148
                    required: [url]
                molecularWeight:
                  match: {url: molecularWeight}
                  schema:
                    base: {max: '*', min: 0, path: Extension.extension}
                    short: The molecular weight or weight range (for proteins, polymers or nucleic acids)
                    index: 149
                    extensions:
                      method:
                        url: method
                        base: {max: '*', min: 0, path: Extension.extension}
                        short: The method by which the molecular weight was determined
                        index: 151
                        elements:
                          url:
                            base: {max: '1', min: 1, path: Extension.url}
                            pattern: {type: Uri, value: method}
                            index: 152
                          value:
                            base: {max: '1', min: 0, path: 'Extension.value[x]'}
                            short: The method by which the molecular weight was determined
                            choices: [valueCodeableConcept]
                            index: 154
                          valueCodeableConcept:
                            base: {max: '1', min: 0, path: 'Extension.value[x]'}
                            type: CodeableConcept
                            short: The method by which the molecular weight was determined
                            choiceOf: value
                            index: 155
                        required: [url]
                      type:
                        url: type
                        base: {max: '*', min: 0, path: Extension.extension}
                        short: Type of molecular weight such as exact, average (also known as. number average), weight average
                        index: 156
                        elements:
                          url:
                            base: {max: '1', min: 1, path: Extension.url}
                            pattern: {type: Uri, value: type}
                            index: 157
                          value:
                            base: {max: '1', min: 0, path: 'Extension.value[x]'}
                            short: Type of molecular weight such as exact, average (also known as. number average), weight average
                            choices: [valueCodeableConcept]
                            index: 159
                          valueCodeableConcept:
                            base: {max: '1', min: 0, 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: 160
                        required: [url]
                      amount:
                        url: amount
                        base: {max: '*', min: 0, path: Extension.extension}
                        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
                        index: 161
                        elements:
                          url:
                            base: {max: '1', min: 1, path: Extension.url}
                            pattern: {type: Uri, value: amount}
                            index: 162
                          value:
                            base: {max: '1', min: 0, 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: 164
                          valueQuantity:
                            base: {max: '1', min: 0, 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: 165
                        required: [url]
                    elements:
                      extension:
                        base: {max: '*', min: 0, path: Extension.extension}
                        array: true
                        index: 150
                        slicing:
                          rules: closed
                          ordered: false
                          discriminator:
                          - {path: url, type: value}
                          min: 0
                          slices:
                            method:
                              match: {url: method}
                              schema:
                                base: {max: '*', min: 0, path: Extension.extension}
                                short: The method by which the molecular weight was determined
                                index: 151
                                elements:
                                  url:
                                    base: {max: '1', min: 1, path: Extension.url}
                                    pattern: {type: Uri, value: method}
                                    index: 152
                                  value:
                                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                    short: The method by which the molecular weight was determined
                                    choices: [valueCodeableConcept]
                                    index: 154
                                  valueCodeableConcept:
                                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                    type: CodeableConcept
                                    short: The method by which the molecular weight was determined
                                    choiceOf: value
                                    index: 155
                                required: [url]
                            type:
                              match: {url: type}
                              schema:
                                base: {max: '*', min: 0, path: Extension.extension}
                                short: Type of molecular weight such as exact, average (also known as. number average), weight average
                                index: 156
                                elements:
                                  url:
                                    base: {max: '1', min: 1, path: Extension.url}
                                    pattern: {type: Uri, value: type}
                                    index: 157
                                  value:
                                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                    short: Type of molecular weight such as exact, average (also known as. number average), weight average
                                    choices: [valueCodeableConcept]
                                    index: 159
                                  valueCodeableConcept:
                                    base: {max: '1', min: 0, 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: 160
                                required: [url]
                            amount:
                              match: {url: amount}
                              schema:
                                base: {max: '*', min: 0, path: Extension.extension}
                                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
                                index: 161
                                elements:
                                  url:
                                    base: {max: '1', min: 1, path: Extension.url}
                                    pattern: {type: Uri, value: amount}
                                    index: 162
                                  value:
                                    base: {max: '1', min: 0, 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: 164
                                  valueQuantity:
                                    base: {max: '1', min: 0, 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: 165
                                required: [url]
                      url:
                        base: {max: '1', min: 1, path: Extension.url}
                        pattern: {type: Uri, value: molecularWeight}
                        index: 166
                    required: [url]
          url:
            base: {max: '1', min: 1, path: Extension.url}
            pattern: {type: Uri, value: isotope}
            index: 167
        required: [url]
      molecularWeight:
        url: molecularWeight
        base: {max: '*', min: 0, path: Extension.extension}
        short: The molecular weight or weight range (for proteins, polymers or nucleic acids)
        index: 168
        extensions:
          _datatype:
            url: http://hl7.org/fhir/StructureDefinition/_datatype|5.2.0
            type: Extension
            short: Data type name for SubstanceSpecification.structure.molecularWeight from FHIR R4
            index: 170
            elements:
              value:
                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                pattern: {type: String, value: SubstanceSpecification.structure.isotope.molecularWeight}
                choices: [valueString]
                index: 172
              valueString:
                type: string
                pattern: {type: String, value: SubstanceSpecification.structure.isotope.molecularWeight}
                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                choiceOf: value
                index: 173
            required: [valueString, value]
        elements:
          extension:
            base: {max: '*', min: 0, path: Extension.extension}
            array: true
            index: 169
            slicing:
              rules: closed
              ordered: false
              discriminator:
              - {path: url, type: value}
              min: 0
              slices:
                _datatype:
                  match: {url: null}
                  schema:
                    type: Extension
                    short: Data type name for SubstanceSpecification.structure.molecularWeight from FHIR R4
                    url: http://hl7.org/fhir/StructureDefinition/_datatype|5.2.0
                    index: 170
                    elements:
                      value:
                        base: {max: '1', min: 0, path: 'Extension.value[x]'}
                        pattern: {type: String, value: SubstanceSpecification.structure.isotope.molecularWeight}
                        choices: [valueString]
                        index: 172
                      valueString:
                        type: string
                        pattern: {type: String, value: SubstanceSpecification.structure.isotope.molecularWeight}
                        base: {max: '1', min: 0, path: 'Extension.value[x]'}
                        choiceOf: value
                        index: 173
                    required: [valueString, value]
          url:
            base: {max: '1', min: 1, path: Extension.url}
            pattern: {type: Uri, value: molecularWeight}
            index: 174
        required: [url]
      source:
        url: source
        base: {max: '*', min: 0, path: Extension.extension}
        short: Supporting literature
        array: true
        index: 175
        elements:
          url:
            base: {max: '1', min: 1, path: Extension.url}
            pattern: {type: Uri, value: source}
            index: 176
          value:
            base: {max: '1', min: 0, path: 'Extension.value[x]'}
            short: Supporting literature
            choices: [valueReference]
            index: 178
          valueReference:
            base: {max: '1', min: 0, path: 'Extension.value[x]'}
            type: Reference
            short: Supporting literature
            choiceOf: value
            index: 179
        required: [url]
      representation:
        url: representation
        base: {max: '*', min: 0, path: Extension.extension}
        short: Molecular structural representation
        array: true
        index: 180
        extensions:
          type:
            url: type
            base: {max: '*', min: 0, path: Extension.extension}
            short: The type of structure (e.g. Full, Partial, Representative)
            index: 182
            elements:
              url:
                base: {max: '1', min: 1, path: Extension.url}
                pattern: {type: Uri, value: type}
                index: 183
              value:
                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                short: The type of structure (e.g. Full, Partial, Representative)
                choices: [valueCodeableConcept]
                index: 185
              valueCodeableConcept:
                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                type: CodeableConcept
                short: The type of structure (e.g. Full, Partial, Representative)
                choiceOf: value
                index: 186
            required: [url]
          representation:
            url: representation
            base: {max: '*', min: 0, path: Extension.extension}
            short: The structural representation as text string in a format e.g. InChI, SMILES, MOLFILE, CDX
            index: 187
            elements:
              url:
                base: {max: '1', min: 1, path: Extension.url}
                pattern: {type: Uri, value: representation}
                index: 188
              value:
                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                short: The structural representation as text string in a format e.g. InChI, SMILES, MOLFILE, CDX
                choices: [valueString]
                index: 190
              valueString:
                base: {max: '1', min: 0, 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: 191
            required: [url]
          attachment:
            url: attachment
            base: {max: '*', min: 0, path: Extension.extension}
            short: An attached file with the structural representation
            index: 192
            elements:
              url:
                base: {max: '1', min: 1, path: Extension.url}
                pattern: {type: Uri, value: attachment}
                index: 193
              value:
                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                short: An attached file with the structural representation
                choices: [valueAttachment]
                index: 195
              valueAttachment:
                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                type: Attachment
                short: An attached file with the structural representation
                choiceOf: value
                index: 196
            required: [url]
        elements:
          extension:
            base: {max: '*', min: 0, path: Extension.extension}
            array: true
            index: 181
            slicing:
              rules: closed
              ordered: false
              discriminator:
              - {path: url, type: value}
              min: 0
              slices:
                type:
                  match: {url: type}
                  schema:
                    base: {max: '*', min: 0, path: Extension.extension}
                    short: The type of structure (e.g. Full, Partial, Representative)
                    index: 182
                    elements:
                      url:
                        base: {max: '1', min: 1, path: Extension.url}
                        pattern: {type: Uri, value: type}
                        index: 183
                      value:
                        base: {max: '1', min: 0, path: 'Extension.value[x]'}
                        short: The type of structure (e.g. Full, Partial, Representative)
                        choices: [valueCodeableConcept]
                        index: 185
                      valueCodeableConcept:
                        base: {max: '1', min: 0, path: 'Extension.value[x]'}
                        type: CodeableConcept
                        short: The type of structure (e.g. Full, Partial, Representative)
                        choiceOf: value
                        index: 186
                    required: [url]
                representation:
                  match: {url: representation}
                  schema:
                    base: {max: '*', min: 0, path: Extension.extension}
                    short: The structural representation as text string in a format e.g. InChI, SMILES, MOLFILE, CDX
                    index: 187
                    elements:
                      url:
                        base: {max: '1', min: 1, path: Extension.url}
                        pattern: {type: Uri, value: representation}
                        index: 188
                      value:
                        base: {max: '1', min: 0, path: 'Extension.value[x]'}
                        short: The structural representation as text string in a format e.g. InChI, SMILES, MOLFILE, CDX
                        choices: [valueString]
                        index: 190
                      valueString:
                        base: {max: '1', min: 0, 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: 191
                    required: [url]
                attachment:
                  match: {url: attachment}
                  schema:
                    base: {max: '*', min: 0, path: Extension.extension}
                    short: An attached file with the structural representation
                    index: 192
                    elements:
                      url:
                        base: {max: '1', min: 1, path: Extension.url}
                        pattern: {type: Uri, value: attachment}
                        index: 193
                      value:
                        base: {max: '1', min: 0, path: 'Extension.value[x]'}
                        short: An attached file with the structural representation
                        choices: [valueAttachment]
                        index: 195
                      valueAttachment:
                        base: {max: '1', min: 0, path: 'Extension.value[x]'}
                        type: Attachment
                        short: An attached file with the structural representation
                        choiceOf: value
                        index: 196
                    required: [url]
          url:
            base: {max: '1', min: 1, path: Extension.url}
            pattern: {type: Uri, value: representation}
            index: 197
        required: [url]
    elements:
      extension:
        base: {max: '*', min: 0, path: Extension.extension}
        array: true
        index: 106
        slicing:
          rules: closed
          ordered: false
          discriminator:
          - {path: url, type: value}
          min: 0
          slices:
            stereochemistry:
              match: {url: stereochemistry}
              schema:
                base: {max: '*', min: 0, path: Extension.extension}
                short: Stereochemistry type
                index: 107
                elements:
                  url:
                    base: {max: '1', min: 1, path: Extension.url}
                    pattern: {type: Uri, value: stereochemistry}
                    index: 108
                  value:
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    short: Stereochemistry type
                    choices: [valueCodeableConcept]
                    index: 110
                  valueCodeableConcept:
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    type: CodeableConcept
                    short: Stereochemistry type
                    choiceOf: value
                    index: 111
                required: [url]
            opticalActivity:
              match: {url: opticalActivity}
              schema:
                base: {max: '*', min: 0, path: Extension.extension}
                short: Optical activity type
                index: 112
                elements:
                  url:
                    base: {max: '1', min: 1, path: Extension.url}
                    pattern: {type: Uri, value: opticalActivity}
                    index: 113
                  value:
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    short: Optical activity type
                    choices: [valueCodeableConcept]
                    index: 115
                  valueCodeableConcept:
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    type: CodeableConcept
                    short: Optical activity type
                    choiceOf: value
                    index: 116
                required: [url]
            molecularFormula:
              match: {url: molecularFormula}
              schema:
                base: {max: '*', min: 0, path: Extension.extension}
                short: Molecular formula
                index: 117
                elements:
                  url:
                    base: {max: '1', min: 1, path: Extension.url}
                    pattern: {type: Uri, value: molecularFormula}
                    index: 118
                  value:
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    short: Molecular formula
                    choices: [valueString]
                    index: 120
                  valueString:
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    type: string
                    short: Molecular formula
                    choiceOf: value
                    index: 121
                required: [url]
            molecularFormulaByMoiety:
              match: {url: molecularFormulaByMoiety}
              schema:
                base: {max: '*', min: 0, path: Extension.extension}
                short: Specified per moiety according to the Hill system, i.e. first C, then H, then alphabetical, each moiety separated by a dot
                index: 122
                elements:
                  url:
                    base: {max: '1', min: 1, path: Extension.url}
                    pattern: {type: Uri, value: molecularFormulaByMoiety}
                    index: 123
                  value:
                    base: {max: '1', min: 0, 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: 125
                  valueString:
                    base: {max: '1', min: 0, 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: 126
                required: [url]
            isotope:
              match: {url: isotope}
              schema:
                base: {max: '*', min: 0, path: Extension.extension}
                short: Applicable for single substances that contain a radionuclide or a non-natural isotopic ratio
                array: true
                index: 127
                extensions:
                  identifier:
                    url: identifier
                    base: {max: '*', min: 0, path: Extension.extension}
                    short: Substance identifier for each non-natural or radioisotope
                    index: 129
                    elements:
                      url:
                        base: {max: '1', min: 1, path: Extension.url}
                        pattern: {type: Uri, value: identifier}
                        index: 130
                      value:
                        base: {max: '1', min: 0, path: 'Extension.value[x]'}
                        short: Substance identifier for each non-natural or radioisotope
                        choices: [valueIdentifier]
                        index: 132
                      valueIdentifier:
                        base: {max: '1', min: 0, path: 'Extension.value[x]'}
                        type: Identifier
                        short: Substance identifier for each non-natural or radioisotope
                        choiceOf: value
                        index: 133
                    required: [url]
                  name:
                    url: name
                    base: {max: '*', min: 0, path: Extension.extension}
                    short: Substance name for each non-natural or radioisotope
                    index: 134
                    elements:
                      url:
                        base: {max: '1', min: 1, path: Extension.url}
                        pattern: {type: Uri, value: name}
                        index: 135
                      value:
                        base: {max: '1', min: 0, path: 'Extension.value[x]'}
                        short: Substance name for each non-natural or radioisotope
                        choices: [valueCodeableConcept]
                        index: 137
                      valueCodeableConcept:
                        base: {max: '1', min: 0, path: 'Extension.value[x]'}
                        type: CodeableConcept
                        short: Substance name for each non-natural or radioisotope
                        choiceOf: value
                        index: 138
                    required: [url]
                  substitution:
                    url: substitution
                    base: {max: '*', min: 0, path: Extension.extension}
                    short: The type of isotopic substitution present in a single substance
                    index: 139
                    elements:
                      url:
                        base: {max: '1', min: 1, path: Extension.url}
                        pattern: {type: Uri, value: substitution}
                        index: 140
                      value:
                        base: {max: '1', min: 0, path: 'Extension.value[x]'}
                        short: The type of isotopic substitution present in a single substance
                        choices: [valueCodeableConcept]
                        index: 142
                      valueCodeableConcept:
                        base: {max: '1', min: 0, path: 'Extension.value[x]'}
                        type: CodeableConcept
                        short: The type of isotopic substitution present in a single substance
                        choiceOf: value
                        index: 143
                    required: [url]
                  halfLife:
                    url: halfLife
                    base: {max: '*', min: 0, path: Extension.extension}
                    short: Half life - for a non-natural nuclide
                    index: 144
                    elements:
                      url:
                        base: {max: '1', min: 1, path: Extension.url}
                        pattern: {type: Uri, value: halfLife}
                        index: 145
                      value:
                        base: {max: '1', min: 0, path: 'Extension.value[x]'}
                        short: Half life - for a non-natural nuclide
                        choices: [valueQuantity]
                        index: 147
                      valueQuantity:
                        base: {max: '1', min: 0, path: 'Extension.value[x]'}
                        type: Quantity
                        short: Half life - for a non-natural nuclide
                        choiceOf: value
                        index: 148
                    required: [url]
                  molecularWeight:
                    url: molecularWeight
                    base: {max: '*', min: 0, path: Extension.extension}
                    short: The molecular weight or weight range (for proteins, polymers or nucleic acids)
                    index: 149
                    extensions:
                      method:
                        url: method
                        base: {max: '*', min: 0, path: Extension.extension}
                        short: The method by which the molecular weight was determined
                        index: 151
                        elements:
                          url:
                            base: {max: '1', min: 1, path: Extension.url}
                            pattern: {type: Uri, value: method}
                            index: 152
                          value:
                            base: {max: '1', min: 0, path: 'Extension.value[x]'}
                            short: The method by which the molecular weight was determined
                            choices: [valueCodeableConcept]
                            index: 154
                          valueCodeableConcept:
                            base: {max: '1', min: 0, path: 'Extension.value[x]'}
                            type: CodeableConcept
                            short: The method by which the molecular weight was determined
                            choiceOf: value
                            index: 155
                        required: [url]
                      type:
                        url: type
                        base: {max: '*', min: 0, path: Extension.extension}
                        short: Type of molecular weight such as exact, average (also known as. number average), weight average
                        index: 156
                        elements:
                          url:
                            base: {max: '1', min: 1, path: Extension.url}
                            pattern: {type: Uri, value: type}
                            index: 157
                          value:
                            base: {max: '1', min: 0, path: 'Extension.value[x]'}
                            short: Type of molecular weight such as exact, average (also known as. number average), weight average
                            choices: [valueCodeableConcept]
                            index: 159
                          valueCodeableConcept:
                            base: {max: '1', min: 0, 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: 160
                        required: [url]
                      amount:
                        url: amount
                        base: {max: '*', min: 0, path: Extension.extension}
                        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
                        index: 161
                        elements:
                          url:
                            base: {max: '1', min: 1, path: Extension.url}
                            pattern: {type: Uri, value: amount}
                            index: 162
                          value:
                            base: {max: '1', min: 0, 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: 164
                          valueQuantity:
                            base: {max: '1', min: 0, 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: 165
                        required: [url]
                    elements:
                      extension:
                        base: {max: '*', min: 0, path: Extension.extension}
                        array: true
                        index: 150
                        slicing:
                          rules: closed
                          ordered: false
                          discriminator:
                          - {path: url, type: value}
                          min: 0
                          slices:
                            method:
                              match: {url: method}
                              schema:
                                base: {max: '*', min: 0, path: Extension.extension}
                                short: The method by which the molecular weight was determined
                                index: 151
                                elements:
                                  url:
                                    base: {max: '1', min: 1, path: Extension.url}
                                    pattern: {type: Uri, value: method}
                                    index: 152
                                  value:
                                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                    short: The method by which the molecular weight was determined
                                    choices: [valueCodeableConcept]
                                    index: 154
                                  valueCodeableConcept:
                                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                    type: CodeableConcept
                                    short: The method by which the molecular weight was determined
                                    choiceOf: value
                                    index: 155
                                required: [url]
                            type:
                              match: {url: type}
                              schema:
                                base: {max: '*', min: 0, path: Extension.extension}
                                short: Type of molecular weight such as exact, average (also known as. number average), weight average
                                index: 156
                                elements:
                                  url:
                                    base: {max: '1', min: 1, path: Extension.url}
                                    pattern: {type: Uri, value: type}
                                    index: 157
                                  value:
                                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                    short: Type of molecular weight such as exact, average (also known as. number average), weight average
                                    choices: [valueCodeableConcept]
                                    index: 159
                                  valueCodeableConcept:
                                    base: {max: '1', min: 0, 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: 160
                                required: [url]
                            amount:
                              match: {url: amount}
                              schema:
                                base: {max: '*', min: 0, path: Extension.extension}
                                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
                                index: 161
                                elements:
                                  url:
                                    base: {max: '1', min: 1, path: Extension.url}
                                    pattern: {type: Uri, value: amount}
                                    index: 162
                                  value:
                                    base: {max: '1', min: 0, 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: 164
                                  valueQuantity:
                                    base: {max: '1', min: 0, 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: 165
                                required: [url]
                      url:
                        base: {max: '1', min: 1, path: Extension.url}
                        pattern: {type: Uri, value: molecularWeight}
                        index: 166
                    required: [url]
                elements:
                  extension:
                    base: {max: '*', min: 0, path: Extension.extension}
                    array: true
                    index: 128
                    slicing:
                      rules: closed
                      ordered: false
                      discriminator:
                      - {path: url, type: value}
                      min: 0
                      slices:
                        identifier:
                          match: {url: identifier}
                          schema:
                            base: {max: '*', min: 0, path: Extension.extension}
                            short: Substance identifier for each non-natural or radioisotope
                            index: 129
                            elements:
                              url:
                                base: {max: '1', min: 1, path: Extension.url}
                                pattern: {type: Uri, value: identifier}
                                index: 130
                              value:
                                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                short: Substance identifier for each non-natural or radioisotope
                                choices: [valueIdentifier]
                                index: 132
                              valueIdentifier:
                                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                type: Identifier
                                short: Substance identifier for each non-natural or radioisotope
                                choiceOf: value
                                index: 133
                            required: [url]
                        name:
                          match: {url: name}
                          schema:
                            base: {max: '*', min: 0, path: Extension.extension}
                            short: Substance name for each non-natural or radioisotope
                            index: 134
                            elements:
                              url:
                                base: {max: '1', min: 1, path: Extension.url}
                                pattern: {type: Uri, value: name}
                                index: 135
                              value:
                                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                short: Substance name for each non-natural or radioisotope
                                choices: [valueCodeableConcept]
                                index: 137
                              valueCodeableConcept:
                                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                type: CodeableConcept
                                short: Substance name for each non-natural or radioisotope
                                choiceOf: value
                                index: 138
                            required: [url]
                        substitution:
                          match: {url: substitution}
                          schema:
                            base: {max: '*', min: 0, path: Extension.extension}
                            short: The type of isotopic substitution present in a single substance
                            index: 139
                            elements:
                              url:
                                base: {max: '1', min: 1, path: Extension.url}
                                pattern: {type: Uri, value: substitution}
                                index: 140
                              value:
                                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                short: The type of isotopic substitution present in a single substance
                                choices: [valueCodeableConcept]
                                index: 142
                              valueCodeableConcept:
                                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                type: CodeableConcept
                                short: The type of isotopic substitution present in a single substance
                                choiceOf: value
                                index: 143
                            required: [url]
                        halfLife:
                          match: {url: halfLife}
                          schema:
                            base: {max: '*', min: 0, path: Extension.extension}
                            short: Half life - for a non-natural nuclide
                            index: 144
                            elements:
                              url:
                                base: {max: '1', min: 1, path: Extension.url}
                                pattern: {type: Uri, value: halfLife}
                                index: 145
                              value:
                                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                short: Half life - for a non-natural nuclide
                                choices: [valueQuantity]
                                index: 147
                              valueQuantity:
                                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                type: Quantity
                                short: Half life - for a non-natural nuclide
                                choiceOf: value
                                index: 148
                            required: [url]
                        molecularWeight:
                          match: {url: molecularWeight}
                          schema:
                            base: {max: '*', min: 0, path: Extension.extension}
                            short: The molecular weight or weight range (for proteins, polymers or nucleic acids)
                            index: 149
                            extensions:
                              method:
                                url: method
                                base: {max: '*', min: 0, path: Extension.extension}
                                short: The method by which the molecular weight was determined
                                index: 151
                                elements:
                                  url:
                                    base: {max: '1', min: 1, path: Extension.url}
                                    pattern: {type: Uri, value: method}
                                    index: 152
                                  value:
                                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                    short: The method by which the molecular weight was determined
                                    choices: [valueCodeableConcept]
                                    index: 154
                                  valueCodeableConcept:
                                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                    type: CodeableConcept
                                    short: The method by which the molecular weight was determined
                                    choiceOf: value
                                    index: 155
                                required: [url]
                              type:
                                url: type
                                base: {max: '*', min: 0, path: Extension.extension}
                                short: Type of molecular weight such as exact, average (also known as. number average), weight average
                                index: 156
                                elements:
                                  url:
                                    base: {max: '1', min: 1, path: Extension.url}
                                    pattern: {type: Uri, value: type}
                                    index: 157
                                  value:
                                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                    short: Type of molecular weight such as exact, average (also known as. number average), weight average
                                    choices: [valueCodeableConcept]
                                    index: 159
                                  valueCodeableConcept:
                                    base: {max: '1', min: 0, 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: 160
                                required: [url]
                              amount:
                                url: amount
                                base: {max: '*', min: 0, path: Extension.extension}
                                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
                                index: 161
                                elements:
                                  url:
                                    base: {max: '1', min: 1, path: Extension.url}
                                    pattern: {type: Uri, value: amount}
                                    index: 162
                                  value:
                                    base: {max: '1', min: 0, 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: 164
                                  valueQuantity:
                                    base: {max: '1', min: 0, 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: 165
                                required: [url]
                            elements:
                              extension:
                                base: {max: '*', min: 0, path: Extension.extension}
                                array: true
                                index: 150
                                slicing:
                                  rules: closed
                                  ordered: false
                                  discriminator:
                                  - {path: url, type: value}
                                  min: 0
                                  slices:
                                    method:
                                      match: {url: method}
                                      schema:
                                        base: {max: '*', min: 0, path: Extension.extension}
                                        short: The method by which the molecular weight was determined
                                        index: 151
                                        elements:
                                          url:
                                            base: {max: '1', min: 1, path: Extension.url}
                                            pattern: {type: Uri, value: method}
                                            index: 152
                                          value:
                                            base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                            short: The method by which the molecular weight was determined
                                            choices: [valueCodeableConcept]
                                            index: 154
                                          valueCodeableConcept:
                                            base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                            type: CodeableConcept
                                            short: The method by which the molecular weight was determined
                                            choiceOf: value
                                            index: 155
                                        required: [url]
                                    type:
                                      match: {url: type}
                                      schema:
                                        base: {max: '*', min: 0, path: Extension.extension}
                                        short: Type of molecular weight such as exact, average (also known as. number average), weight average
                                        index: 156
                                        elements:
                                          url:
                                            base: {max: '1', min: 1, path: Extension.url}
                                            pattern: {type: Uri, value: type}
                                            index: 157
                                          value:
                                            base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                            short: Type of molecular weight such as exact, average (also known as. number average), weight average
                                            choices: [valueCodeableConcept]
                                            index: 159
                                          valueCodeableConcept:
                                            base: {max: '1', min: 0, 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: 160
                                        required: [url]
                                    amount:
                                      match: {url: amount}
                                      schema:
                                        base: {max: '*', min: 0, path: Extension.extension}
                                        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
                                        index: 161
                                        elements:
                                          url:
                                            base: {max: '1', min: 1, path: Extension.url}
                                            pattern: {type: Uri, value: amount}
                                            index: 162
                                          value:
                                            base: {max: '1', min: 0, 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: 164
                                          valueQuantity:
                                            base: {max: '1', min: 0, 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: 165
                                        required: [url]
                              url:
                                base: {max: '1', min: 1, path: Extension.url}
                                pattern: {type: Uri, value: molecularWeight}
                                index: 166
                            required: [url]
                  url:
                    base: {max: '1', min: 1, path: Extension.url}
                    pattern: {type: Uri, value: isotope}
                    index: 167
                required: [url]
            molecularWeight:
              match: {url: molecularWeight}
              schema:
                base: {max: '*', min: 0, path: Extension.extension}
                short: The molecular weight or weight range (for proteins, polymers or nucleic acids)
                index: 168
                extensions:
                  _datatype:
                    url: http://hl7.org/fhir/StructureDefinition/_datatype|5.2.0
                    type: Extension
                    short: Data type name for SubstanceSpecification.structure.molecularWeight from FHIR R4
                    index: 170
                    elements:
                      value:
                        base: {max: '1', min: 0, path: 'Extension.value[x]'}
                        pattern: {type: String, value: SubstanceSpecification.structure.isotope.molecularWeight}
                        choices: [valueString]
                        index: 172
                      valueString:
                        type: string
                        pattern: {type: String, value: SubstanceSpecification.structure.isotope.molecularWeight}
                        base: {max: '1', min: 0, path: 'Extension.value[x]'}
                        choiceOf: value
                        index: 173
                    required: [valueString, value]
                elements:
                  extension:
                    base: {max: '*', min: 0, path: Extension.extension}
                    array: true
                    index: 169
                    slicing:
                      rules: closed
                      ordered: false
                      discriminator:
                      - {path: url, type: value}
                      min: 0
                      slices:
                        _datatype:
                          match: {url: null}
                          schema:
                            type: Extension
                            short: Data type name for SubstanceSpecification.structure.molecularWeight from FHIR R4
                            url: http://hl7.org/fhir/StructureDefinition/_datatype|5.2.0
                            index: 170
                            elements:
                              value:
                                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                pattern: {type: String, value: SubstanceSpecification.structure.isotope.molecularWeight}
                                choices: [valueString]
                                index: 172
                              valueString:
                                type: string
                                pattern: {type: String, value: SubstanceSpecification.structure.isotope.molecularWeight}
                                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                choiceOf: value
                                index: 173
                            required: [valueString, value]
                  url:
                    base: {max: '1', min: 1, path: Extension.url}
                    pattern: {type: Uri, value: molecularWeight}
                    index: 174
                required: [url]
            source:
              match: {url: source}
              schema:
                base: {max: '*', min: 0, path: Extension.extension}
                short: Supporting literature
                array: true
                index: 175
                elements:
                  url:
                    base: {max: '1', min: 1, path: Extension.url}
                    pattern: {type: Uri, value: source}
                    index: 176
                  value:
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    short: Supporting literature
                    choices: [valueReference]
                    index: 178
                  valueReference:
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    type: Reference
                    short: Supporting literature
                    choiceOf: value
                    index: 179
                required: [url]
            representation:
              match: {url: representation}
              schema:
                base: {max: '*', min: 0, path: Extension.extension}
                short: Molecular structural representation
                array: true
                index: 180
                extensions:
                  type:
                    url: type
                    base: {max: '*', min: 0, path: Extension.extension}
                    short: The type of structure (e.g. Full, Partial, Representative)
                    index: 182
                    elements:
                      url:
                        base: {max: '1', min: 1, path: Extension.url}
                        pattern: {type: Uri, value: type}
                        index: 183
                      value:
                        base: {max: '1', min: 0, path: 'Extension.value[x]'}
                        short: The type of structure (e.g. Full, Partial, Representative)
                        choices: [valueCodeableConcept]
                        index: 185
                      valueCodeableConcept:
                        base: {max: '1', min: 0, path: 'Extension.value[x]'}
                        type: CodeableConcept
                        short: The type of structure (e.g. Full, Partial, Representative)
                        choiceOf: value
                        index: 186
                    required: [url]
                  representation:
                    url: representation
                    base: {max: '*', min: 0, path: Extension.extension}
                    short: The structural representation as text string in a format e.g. InChI, SMILES, MOLFILE, CDX
                    index: 187
                    elements:
                      url:
                        base: {max: '1', min: 1, path: Extension.url}
                        pattern: {type: Uri, value: representation}
                        index: 188
                      value:
                        base: {max: '1', min: 0, path: 'Extension.value[x]'}
                        short: The structural representation as text string in a format e.g. InChI, SMILES, MOLFILE, CDX
                        choices: [valueString]
                        index: 190
                      valueString:
                        base: {max: '1', min: 0, 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: 191
                    required: [url]
                  attachment:
                    url: attachment
                    base: {max: '*', min: 0, path: Extension.extension}
                    short: An attached file with the structural representation
                    index: 192
                    elements:
                      url:
                        base: {max: '1', min: 1, path: Extension.url}
                        pattern: {type: Uri, value: attachment}
                        index: 193
                      value:
                        base: {max: '1', min: 0, path: 'Extension.value[x]'}
                        short: An attached file with the structural representation
                        choices: [valueAttachment]
                        index: 195
                      valueAttachment:
                        base: {max: '1', min: 0, path: 'Extension.value[x]'}
                        type: Attachment
                        short: An attached file with the structural representation
                        choiceOf: value
                        index: 196
                    required: [url]
                elements:
                  extension:
                    base: {max: '*', min: 0, path: Extension.extension}
                    array: true
                    index: 181
                    slicing:
                      rules: closed
                      ordered: false
                      discriminator:
                      - {path: url, type: value}
                      min: 0
                      slices:
                        type:
                          match: {url: type}
                          schema:
                            base: {max: '*', min: 0, path: Extension.extension}
                            short: The type of structure (e.g. Full, Partial, Representative)
                            index: 182
                            elements:
                              url:
                                base: {max: '1', min: 1, path: Extension.url}
                                pattern: {type: Uri, value: type}
                                index: 183
                              value:
                                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                short: The type of structure (e.g. Full, Partial, Representative)
                                choices: [valueCodeableConcept]
                                index: 185
                              valueCodeableConcept:
                                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                type: CodeableConcept
                                short: The type of structure (e.g. Full, Partial, Representative)
                                choiceOf: value
                                index: 186
                            required: [url]
                        representation:
                          match: {url: representation}
                          schema:
                            base: {max: '*', min: 0, path: Extension.extension}
                            short: The structural representation as text string in a format e.g. InChI, SMILES, MOLFILE, CDX
                            index: 187
                            elements:
                              url:
                                base: {max: '1', min: 1, path: Extension.url}
                                pattern: {type: Uri, value: representation}
                                index: 188
                              value:
                                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                short: The structural representation as text string in a format e.g. InChI, SMILES, MOLFILE, CDX
                                choices: [valueString]
                                index: 190
                              valueString:
                                base: {max: '1', min: 0, 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: 191
                            required: [url]
                        attachment:
                          match: {url: attachment}
                          schema:
                            base: {max: '*', min: 0, path: Extension.extension}
                            short: An attached file with the structural representation
                            index: 192
                            elements:
                              url:
                                base: {max: '1', min: 1, path: Extension.url}
                                pattern: {type: Uri, value: attachment}
                                index: 193
                              value:
                                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                short: An attached file with the structural representation
                                choices: [valueAttachment]
                                index: 195
                              valueAttachment:
                                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                type: Attachment
                                short: An attached file with the structural representation
                                choiceOf: value
                                index: 196
                            required: [url]
                  url:
                    base: {max: '1', min: 1, path: Extension.url}
                    pattern: {type: Uri, value: representation}
                    index: 197
                required: [url]
      url:
        base: {max: '1', min: 1, path: Extension.url}
        pattern: {type: Uri, value: structure}
        index: 198
    required: [url]
  status:
    url: status
    base: {max: '*', min: 0, path: Extension.extension}
    short: Status of substance within the catalogue e.g. approved
    index: 6
    elements:
      url:
        base: {max: '1', min: 1, path: Extension.url}
        pattern: {type: Uri, value: status}
        index: 7
      value:
        base: {max: '1', min: 0, path: 'Extension.value[x]'}
        short: Status of substance within the catalogue e.g. approved
        choices: [valueCodeableConcept]
        index: 9
      valueCodeableConcept:
        base: {max: '1', min: 0, path: 'Extension.value[x]'}
        type: CodeableConcept
        short: Status of substance within the catalogue e.g. approved
        choiceOf: value
        index: 10
    required: [url]
  comment:
    url: comment
    base: {max: '*', min: 0, path: Extension.extension}
    short: Textual comment about this record of a substance
    index: 26
    elements:
      url:
        base: {max: '1', min: 1, path: Extension.url}
        pattern: {type: Uri, value: comment}
        index: 27
      value:
        base: {max: '1', min: 0, path: 'Extension.value[x]'}
        short: Textual comment about this record of a substance
        choices: [valueString]
        index: 29
      valueString:
        base: {max: '1', min: 0, path: 'Extension.value[x]'}
        type: string
        short: Textual comment about this record of a substance
        choiceOf: value
        index: 30
    required: [url]
  molecularWeight:
    url: molecularWeight
    base: {max: '*', min: 0, path: Extension.extension}
    short: The molecular weight or weight range (for proteins, polymers or nucleic acids)
    array: true
    index: 274
    extensions:
      _datatype:
        url: http://hl7.org/fhir/StructureDefinition/_datatype|5.2.0
        type: Extension
        short: Data type name for SubstanceSpecification.molecularWeight from FHIR R4
        index: 276
        elements:
          value:
            base: {max: '1', min: 0, path: 'Extension.value[x]'}
            pattern: {type: String, value: SubstanceSpecification.structure.isotope.molecularWeight}
            choices: [valueString]
            index: 278
          valueString:
            type: string
            pattern: {type: String, value: SubstanceSpecification.structure.isotope.molecularWeight}
            base: {max: '1', min: 0, path: 'Extension.value[x]'}
            choiceOf: value
            index: 279
        required: [valueString, value]
    elements:
      extension:
        base: {max: '*', min: 0, path: Extension.extension}
        array: true
        index: 275
        slicing:
          rules: closed
          ordered: false
          discriminator:
          - {path: url, type: value}
          min: 0
          slices:
            _datatype:
              match: {url: null}
              schema:
                type: Extension
                short: Data type name for SubstanceSpecification.molecularWeight from FHIR R4
                url: http://hl7.org/fhir/StructureDefinition/_datatype|5.2.0
                index: 276
                elements:
                  value:
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    pattern: {type: String, value: SubstanceSpecification.structure.isotope.molecularWeight}
                    choices: [valueString]
                    index: 278
                  valueString:
                    type: string
                    pattern: {type: String, value: SubstanceSpecification.structure.isotope.molecularWeight}
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    choiceOf: value
                    index: 279
                required: [valueString, value]
      url:
        base: {max: '1', min: 1, path: Extension.url}
        pattern: {type: Uri, value: molecularWeight}
        index: 280
    required: [url]
  polymer:
    url: polymer
    base: {max: '*', min: 0, path: Extension.extension}
    short: Data items specific to polymers
    index: 328
    elements:
      url:
        base: {max: '1', min: 1, path: Extension.url}
        pattern: {type: Uri, value: polymer}
        index: 329
      value:
        base: {max: '1', min: 0, path: 'Extension.value[x]'}
        short: Data items specific to polymers
        choices: [valueReference]
        index: 331
      valueReference:
        base: {max: '1', min: 0, path: 'Extension.value[x]'}
        type: Reference
        short: Data items specific to polymers
        choiceOf: value
        index: 332
    required: [url]
  protein:
    url: protein
    base: {max: '*', min: 0, path: Extension.extension}
    short: Data items specific to proteins
    index: 333
    elements:
      url:
        base: {max: '1', min: 1, path: Extension.url}
        pattern: {type: Uri, value: protein}
        index: 334
      value:
        base: {max: '1', min: 0, path: 'Extension.value[x]'}
        short: Data items specific to proteins
        choices: [valueReference]
        index: 336
      valueReference:
        base: {max: '1', min: 0, path: 'Extension.value[x]'}
        type: Reference
        short: Data items specific to proteins
        choiceOf: value
        index: 337
    required: [url]
  domain:
    url: domain
    base: {max: '*', min: 0, path: Extension.extension}
    short: If the substance applies to only human or veterinary use
    index: 11
    elements:
      url:
        base: {max: '1', min: 1, path: Extension.url}
        pattern: {type: Uri, value: domain}
        index: 12
      value:
        base: {max: '1', min: 0, path: 'Extension.value[x]'}
        short: If the substance applies to only human or veterinary use
        choices: [valueCodeableConcept]
        index: 14
      valueCodeableConcept:
        base: {max: '1', min: 0, path: 'Extension.value[x]'}
        type: CodeableConcept
        short: If the substance applies to only human or veterinary use
        choiceOf: value
        index: 15
    required: [url]
  sourceMaterial:
    url: sourceMaterial
    base: {max: '*', min: 0, path: Extension.extension}
    short: Material or taxonomic/anatomical source for the substance
    index: 338
    elements:
      url:
        base: {max: '1', min: 1, path: Extension.url}
        pattern: {type: Uri, value: sourceMaterial}
        index: 339
      value:
        base: {max: '1', min: 0, path: 'Extension.value[x]'}
        short: Material or taxonomic/anatomical source for the substance
        choices: [valueReference]
        index: 341
      valueReference:
        base: {max: '1', min: 0, path: 'Extension.value[x]'}
        type: Reference
        short: Material or taxonomic/anatomical source for the substance
        choiceOf: value
        index: 342
    required: [url]
class: extension
kind: complex-type
url: http://hl7.org/fhir/4.0/StructureDefinition/extension-SubstanceSpecification
base: http://hl7.org/fhir/StructureDefinition/Extension|5.0.0
version: 0.0.1-snapshot-2
required: [url]