PackagesCanonicalsLogsProblems
    Packages
    hl7.fhir.uv.xver-r4.r3@0.1.0
    http://hl7.org/fhir/4.0/StructureDefinition/extension-SubstanceSpecification.structure
description: 'R4: `SubstanceSpecification.structure` (new:BackboneElement)'
package_name: hl7.fhir.uv.xver-r4.r3
derivation: constraint
name: ExtensionSubstanceSpecification_Structure
type: Extension
elements:
  extension:
    base: {max: '*', min: 0, path: Extension.extension}
    array: true
    index: 0
    slicing:
      rules: open
      ordered: false
      discriminator:
      - {path: url, type: value}
      min: 0
      slices:
        stereochemistry:
          match: {url: stereochemistry}
          schema:
            short: 'R4: Stereochemistry type (new)'
            base: {max: '*', min: 0, path: Extension.extension}
            index: 1
            elements:
              url:
                base: {max: '1', min: 1, path: Extension.url}
                pattern: {type: Uri, value: stereochemistry}
                index: 2
              value:
                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                short: Stereochemistry type
                choices: [valueCodeableConcept]
                index: 4
              valueCodeableConcept:
                short: Stereochemistry type
                type: CodeableConcept
                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                choiceOf: value
                index: 5
            required: [url]
        opticalActivity:
          match: {url: opticalActivity}
          schema:
            short: 'R4: Optical activity type (new)'
            base: {max: '*', min: 0, path: Extension.extension}
            index: 6
            elements:
              url:
                base: {max: '1', min: 1, path: Extension.url}
                pattern: {type: Uri, value: opticalActivity}
                index: 7
              value:
                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                short: Optical activity type
                choices: [valueCodeableConcept]
                index: 9
              valueCodeableConcept:
                short: Optical activity type
                type: CodeableConcept
                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                choiceOf: value
                index: 10
            required: [url]
        molecularFormula:
          match: {url: molecularFormula}
          schema:
            short: 'R4: Molecular formula (new)'
            base: {max: '*', min: 0, path: Extension.extension}
            index: 11
            elements:
              url:
                base: {max: '1', min: 1, path: Extension.url}
                pattern: {type: Uri, value: molecularFormula}
                index: 12
              value:
                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                short: Molecular formula
                choices: [valueString]
                index: 14
              valueString:
                short: Molecular formula
                type: string
                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                choiceOf: value
                index: 15
            required: [url]
        molecularFormulaByMoiety:
          match: {url: molecularFormulaByMoiety}
          schema:
            short: 'R4: Specified per moiety according to the Hill system, i.e. first C, then H, then alphabetical, each moiety separated by a dot (new)'
            base: {max: '*', min: 0, path: Extension.extension}
            index: 16
            elements:
              url:
                base: {max: '1', min: 1, path: Extension.url}
                pattern: {type: Uri, value: molecularFormulaByMoiety}
                index: 17
              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: 19
              valueString:
                short: Specified per moiety according to the Hill system, i.e. first C, then H, then alphabetical, each moiety separated by a dot
                type: string
                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                choiceOf: value
                index: 20
            required: [url]
        isotope:
          match: {url: isotope}
          schema:
            short: 'R4: Applicable for single substances that contain a radionuclide or a non-natural isotopic ratio (new)'
            array: true
            base: {max: '*', min: 0, path: Extension.extension}
            index: 21
            extensions:
              identifier:
                url: identifier
                short: 'R4: Substance identifier for each non-natural or radioisotope (new)'
                base: {max: '*', min: 0, path: Extension.extension}
                index: 23
                elements:
                  url:
                    base: {max: '1', min: 1, path: Extension.url}
                    pattern: {type: Uri, value: identifier}
                    index: 24
                  value:
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    short: Substance identifier for each non-natural or radioisotope
                    choices: [valueIdentifier]
                    index: 26
                  valueIdentifier:
                    short: Substance identifier for each non-natural or radioisotope
                    type: Identifier
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    choiceOf: value
                    index: 27
                required: [url]
              name:
                url: name
                short: 'R4: Substance name for each non-natural or radioisotope (new)'
                base: {max: '*', min: 0, path: Extension.extension}
                index: 28
                elements:
                  url:
                    base: {max: '1', min: 1, path: Extension.url}
                    pattern: {type: Uri, value: name}
                    index: 29
                  value:
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    short: Substance name for each non-natural or radioisotope
                    choices: [valueCodeableConcept]
                    index: 31
                  valueCodeableConcept:
                    short: Substance name for each non-natural or radioisotope
                    type: CodeableConcept
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    choiceOf: value
                    index: 32
                required: [url]
              substitution:
                url: substitution
                short: 'R4: The type of isotopic substitution present in a single substance (new)'
                base: {max: '*', min: 0, path: Extension.extension}
                index: 33
                elements:
                  url:
                    base: {max: '1', min: 1, path: Extension.url}
                    pattern: {type: Uri, value: substitution}
                    index: 34
                  value:
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    short: The type of isotopic substitution present in a single substance
                    choices: [valueCodeableConcept]
                    index: 36
                  valueCodeableConcept:
                    short: The type of isotopic substitution present in a single substance
                    type: CodeableConcept
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    choiceOf: value
                    index: 37
                required: [url]
              halfLife:
                url: halfLife
                short: 'R4: Half life - for a non-natural nuclide (new)'
                base: {max: '*', min: 0, path: Extension.extension}
                index: 38
                elements:
                  url:
                    base: {max: '1', min: 1, path: Extension.url}
                    pattern: {type: Uri, value: halfLife}
                    index: 39
                  value:
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    short: Half life - for a non-natural nuclide
                    choices: [valueQuantity]
                    index: 41
                  valueQuantity:
                    short: Half life - for a non-natural nuclide
                    type: Quantity
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    choiceOf: value
                    index: 42
                required: [url]
              molecularWeight:
                url: molecularWeight
                short: 'R4: The molecular weight or weight range (for proteins, polymers or nucleic acids) (new)'
                base: {max: '*', min: 0, path: Extension.extension}
                index: 43
                extensions:
                  method:
                    url: method
                    short: 'R4: The method by which the molecular weight was determined (new)'
                    base: {max: '*', min: 0, path: Extension.extension}
                    index: 45
                    elements:
                      url:
                        base: {max: '1', min: 1, path: Extension.url}
                        pattern: {type: Uri, value: method}
                        index: 46
                      value:
                        base: {max: '1', min: 0, path: 'Extension.value[x]'}
                        short: The method by which the molecular weight was determined
                        choices: [valueCodeableConcept]
                        index: 48
                      valueCodeableConcept:
                        short: The method by which the molecular weight was determined
                        type: CodeableConcept
                        base: {max: '1', min: 0, path: 'Extension.value[x]'}
                        choiceOf: value
                        index: 49
                    required: [url]
                  type:
                    url: type
                    short: 'R4: Type of molecular weight such as exact, average (also known as. number average), weight average (new)'
                    base: {max: '*', min: 0, path: Extension.extension}
                    index: 50
                    elements:
                      url:
                        base: {max: '1', min: 1, path: Extension.url}
                        pattern: {type: Uri, value: type}
                        index: 51
                      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: 53
                      valueCodeableConcept:
                        short: Type of molecular weight such as exact, average (also known as. number average), weight average
                        type: CodeableConcept
                        base: {max: '1', min: 0, path: 'Extension.value[x]'}
                        choiceOf: value
                        index: 54
                    required: [url]
                  amount:
                    url: amount
                    short: 'R4: 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 (new)'
                    base: {max: '*', min: 0, path: Extension.extension}
                    index: 55
                    elements:
                      url:
                        base: {max: '1', min: 1, path: Extension.url}
                        pattern: {type: Uri, value: amount}
                        index: 56
                      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: 58
                      valueQuantity:
                        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
                        type: Quantity
                        base: {max: '1', min: 0, path: 'Extension.value[x]'}
                        choiceOf: value
                        index: 59
                    required: [url]
                elements:
                  extension:
                    base: {max: '*', min: 0, path: Extension.extension}
                    array: true
                    index: 44
                    slicing:
                      rules: open
                      ordered: false
                      discriminator:
                      - {path: url, type: value}
                      min: 0
                      slices:
                        method:
                          match: {url: method}
                          schema:
                            short: 'R4: The method by which the molecular weight was determined (new)'
                            base: {max: '*', min: 0, path: Extension.extension}
                            index: 45
                            elements:
                              url:
                                base: {max: '1', min: 1, path: Extension.url}
                                pattern: {type: Uri, value: method}
                                index: 46
                              value:
                                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                short: The method by which the molecular weight was determined
                                choices: [valueCodeableConcept]
                                index: 48
                              valueCodeableConcept:
                                short: The method by which the molecular weight was determined
                                type: CodeableConcept
                                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                choiceOf: value
                                index: 49
                            required: [url]
                        type:
                          match: {url: type}
                          schema:
                            short: 'R4: Type of molecular weight such as exact, average (also known as. number average), weight average (new)'
                            base: {max: '*', min: 0, path: Extension.extension}
                            index: 50
                            elements:
                              url:
                                base: {max: '1', min: 1, path: Extension.url}
                                pattern: {type: Uri, value: type}
                                index: 51
                              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: 53
                              valueCodeableConcept:
                                short: Type of molecular weight such as exact, average (also known as. number average), weight average
                                type: CodeableConcept
                                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                choiceOf: value
                                index: 54
                            required: [url]
                        amount:
                          match: {url: amount}
                          schema:
                            short: 'R4: 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 (new)'
                            base: {max: '*', min: 0, path: Extension.extension}
                            index: 55
                            elements:
                              url:
                                base: {max: '1', min: 1, path: Extension.url}
                                pattern: {type: Uri, value: amount}
                                index: 56
                              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: 58
                              valueQuantity:
                                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
                                type: Quantity
                                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                choiceOf: value
                                index: 59
                            required: [url]
                  url:
                    base: {max: '1', min: 1, path: Extension.url}
                    pattern: {type: Uri, value: molecularWeight}
                    index: 60
                  value:
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    choices: []
                    index: 62
                required: [url]
            elements:
              extension:
                base: {max: '*', min: 0, path: Extension.extension}
                array: true
                index: 22
                slicing:
                  rules: open
                  ordered: false
                  discriminator:
                  - {path: url, type: value}
                  min: 0
                  slices:
                    identifier:
                      match: {url: identifier}
                      schema:
                        short: 'R4: Substance identifier for each non-natural or radioisotope (new)'
                        base: {max: '*', min: 0, path: Extension.extension}
                        index: 23
                        elements:
                          url:
                            base: {max: '1', min: 1, path: Extension.url}
                            pattern: {type: Uri, value: identifier}
                            index: 24
                          value:
                            base: {max: '1', min: 0, path: 'Extension.value[x]'}
                            short: Substance identifier for each non-natural or radioisotope
                            choices: [valueIdentifier]
                            index: 26
                          valueIdentifier:
                            short: Substance identifier for each non-natural or radioisotope
                            type: Identifier
                            base: {max: '1', min: 0, path: 'Extension.value[x]'}
                            choiceOf: value
                            index: 27
                        required: [url]
                    name:
                      match: {url: name}
                      schema:
                        short: 'R4: Substance name for each non-natural or radioisotope (new)'
                        base: {max: '*', min: 0, path: Extension.extension}
                        index: 28
                        elements:
                          url:
                            base: {max: '1', min: 1, path: Extension.url}
                            pattern: {type: Uri, value: name}
                            index: 29
                          value:
                            base: {max: '1', min: 0, path: 'Extension.value[x]'}
                            short: Substance name for each non-natural or radioisotope
                            choices: [valueCodeableConcept]
                            index: 31
                          valueCodeableConcept:
                            short: Substance name for each non-natural or radioisotope
                            type: CodeableConcept
                            base: {max: '1', min: 0, path: 'Extension.value[x]'}
                            choiceOf: value
                            index: 32
                        required: [url]
                    substitution:
                      match: {url: substitution}
                      schema:
                        short: 'R4: The type of isotopic substitution present in a single substance (new)'
                        base: {max: '*', min: 0, path: Extension.extension}
                        index: 33
                        elements:
                          url:
                            base: {max: '1', min: 1, path: Extension.url}
                            pattern: {type: Uri, value: substitution}
                            index: 34
                          value:
                            base: {max: '1', min: 0, path: 'Extension.value[x]'}
                            short: The type of isotopic substitution present in a single substance
                            choices: [valueCodeableConcept]
                            index: 36
                          valueCodeableConcept:
                            short: The type of isotopic substitution present in a single substance
                            type: CodeableConcept
                            base: {max: '1', min: 0, path: 'Extension.value[x]'}
                            choiceOf: value
                            index: 37
                        required: [url]
                    halfLife:
                      match: {url: halfLife}
                      schema:
                        short: 'R4: Half life - for a non-natural nuclide (new)'
                        base: {max: '*', min: 0, path: Extension.extension}
                        index: 38
                        elements:
                          url:
                            base: {max: '1', min: 1, path: Extension.url}
                            pattern: {type: Uri, value: halfLife}
                            index: 39
                          value:
                            base: {max: '1', min: 0, path: 'Extension.value[x]'}
                            short: Half life - for a non-natural nuclide
                            choices: [valueQuantity]
                            index: 41
                          valueQuantity:
                            short: Half life - for a non-natural nuclide
                            type: Quantity
                            base: {max: '1', min: 0, path: 'Extension.value[x]'}
                            choiceOf: value
                            index: 42
                        required: [url]
                    molecularWeight:
                      match: {url: molecularWeight}
                      schema:
                        short: 'R4: The molecular weight or weight range (for proteins, polymers or nucleic acids) (new)'
                        base: {max: '*', min: 0, path: Extension.extension}
                        index: 43
                        extensions:
                          method:
                            url: method
                            short: 'R4: The method by which the molecular weight was determined (new)'
                            base: {max: '*', min: 0, path: Extension.extension}
                            index: 45
                            elements:
                              url:
                                base: {max: '1', min: 1, path: Extension.url}
                                pattern: {type: Uri, value: method}
                                index: 46
                              value:
                                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                short: The method by which the molecular weight was determined
                                choices: [valueCodeableConcept]
                                index: 48
                              valueCodeableConcept:
                                short: The method by which the molecular weight was determined
                                type: CodeableConcept
                                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                choiceOf: value
                                index: 49
                            required: [url]
                          type:
                            url: type
                            short: 'R4: Type of molecular weight such as exact, average (also known as. number average), weight average (new)'
                            base: {max: '*', min: 0, path: Extension.extension}
                            index: 50
                            elements:
                              url:
                                base: {max: '1', min: 1, path: Extension.url}
                                pattern: {type: Uri, value: type}
                                index: 51
                              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: 53
                              valueCodeableConcept:
                                short: Type of molecular weight such as exact, average (also known as. number average), weight average
                                type: CodeableConcept
                                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                choiceOf: value
                                index: 54
                            required: [url]
                          amount:
                            url: amount
                            short: 'R4: 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 (new)'
                            base: {max: '*', min: 0, path: Extension.extension}
                            index: 55
                            elements:
                              url:
                                base: {max: '1', min: 1, path: Extension.url}
                                pattern: {type: Uri, value: amount}
                                index: 56
                              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: 58
                              valueQuantity:
                                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
                                type: Quantity
                                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                choiceOf: value
                                index: 59
                            required: [url]
                        elements:
                          extension:
                            base: {max: '*', min: 0, path: Extension.extension}
                            array: true
                            index: 44
                            slicing:
                              rules: open
                              ordered: false
                              discriminator:
                              - {path: url, type: value}
                              min: 0
                              slices:
                                method:
                                  match: {url: method}
                                  schema:
                                    short: 'R4: The method by which the molecular weight was determined (new)'
                                    base: {max: '*', min: 0, path: Extension.extension}
                                    index: 45
                                    elements:
                                      url:
                                        base: {max: '1', min: 1, path: Extension.url}
                                        pattern: {type: Uri, value: method}
                                        index: 46
                                      value:
                                        base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                        short: The method by which the molecular weight was determined
                                        choices: [valueCodeableConcept]
                                        index: 48
                                      valueCodeableConcept:
                                        short: The method by which the molecular weight was determined
                                        type: CodeableConcept
                                        base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                        choiceOf: value
                                        index: 49
                                    required: [url]
                                type:
                                  match: {url: type}
                                  schema:
                                    short: 'R4: Type of molecular weight such as exact, average (also known as. number average), weight average (new)'
                                    base: {max: '*', min: 0, path: Extension.extension}
                                    index: 50
                                    elements:
                                      url:
                                        base: {max: '1', min: 1, path: Extension.url}
                                        pattern: {type: Uri, value: type}
                                        index: 51
                                      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: 53
                                      valueCodeableConcept:
                                        short: Type of molecular weight such as exact, average (also known as. number average), weight average
                                        type: CodeableConcept
                                        base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                        choiceOf: value
                                        index: 54
                                    required: [url]
                                amount:
                                  match: {url: amount}
                                  schema:
                                    short: 'R4: 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 (new)'
                                    base: {max: '*', min: 0, path: Extension.extension}
                                    index: 55
                                    elements:
                                      url:
                                        base: {max: '1', min: 1, path: Extension.url}
                                        pattern: {type: Uri, value: amount}
                                        index: 56
                                      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: 58
                                      valueQuantity:
                                        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
                                        type: Quantity
                                        base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                        choiceOf: value
                                        index: 59
                                    required: [url]
                          url:
                            base: {max: '1', min: 1, path: Extension.url}
                            pattern: {type: Uri, value: molecularWeight}
                            index: 60
                          value:
                            base: {max: '1', min: 0, path: 'Extension.value[x]'}
                            choices: []
                            index: 62
                        required: [url]
              url:
                base: {max: '1', min: 1, path: Extension.url}
                pattern: {type: Uri, value: isotope}
                index: 63
              value:
                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                choices: []
                index: 65
            required: [url]
        molecularWeight:
          match: {url: 'http://hl7.org/fhir/4.0/StructureDefinition/extension-SubstanceSpecification.structure.isotope.molecularWeight'}
          schema:
            short: 'R4: The molecular weight or weight range (for proteins, polymers or nucleic acids) (new)'
            base: {max: '*', min: 0, path: Extension.extension}
            index: 66
            elements:
              url:
                base: {max: '1', min: 1, path: Extension.url}
                pattern: {type: Uri, value: 'http://hl7.org/fhir/4.0/StructureDefinition/extension-SubstanceSpecification.structure.isotope.molecularWeight'}
                index: 67
              value:
                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                choices: []
                index: 69
            required: [url]
        source:
          match: {url: source}
          schema:
            short: 'R4: Supporting literature (new)'
            array: true
            base: {max: '*', min: 0, path: Extension.extension}
            index: 70
            elements:
              url:
                base: {max: '1', min: 1, path: Extension.url}
                pattern: {type: Uri, value: source}
                index: 71
              value:
                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                short: Supporting literature
                choices: [valueReference, valueReference]
                index: 73
              valueReference:
                short: Supporting literature
                refers: ['http://hl7.org/fhir/4.0/StructureDefinition/profile-DocumentReference|0.1.0']
                type: Reference
                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                choiceOf: value
                index: 74
            required: [url]
        representation:
          match: {url: representation}
          schema:
            short: 'R4: Molecular structural representation (new)'
            array: true
            base: {max: '*', min: 0, path: Extension.extension}
            index: 76
            extensions:
              type:
                url: type
                short: 'R4: The type of structure (e.g. Full, Partial, Representative) (new)'
                base: {max: '*', min: 0, path: Extension.extension}
                index: 78
                elements:
                  url:
                    base: {max: '1', min: 1, path: Extension.url}
                    pattern: {type: Uri, value: type}
                    index: 79
                  value:
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    short: The type of structure (e.g. Full, Partial, Representative)
                    choices: [valueCodeableConcept]
                    index: 81
                  valueCodeableConcept:
                    short: The type of structure (e.g. Full, Partial, Representative)
                    type: CodeableConcept
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    choiceOf: value
                    index: 82
                required: [url]
              representation:
                url: representation
                short: 'R4: The structural representation as text string in a format e.g. InChI, SMILES, MOLFILE, CDX (new)'
                base: {max: '*', min: 0, path: Extension.extension}
                index: 83
                elements:
                  url:
                    base: {max: '1', min: 1, path: Extension.url}
                    pattern: {type: Uri, value: representation}
                    index: 84
                  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: 86
                  valueString:
                    short: The structural representation as text string in a format e.g. InChI, SMILES, MOLFILE, CDX
                    type: string
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    choiceOf: value
                    index: 87
                required: [url]
              attachment:
                url: attachment
                short: 'R4: An attached file with the structural representation (new)'
                base: {max: '*', min: 0, path: Extension.extension}
                index: 88
                elements:
                  url:
                    base: {max: '1', min: 1, path: Extension.url}
                    pattern: {type: Uri, value: attachment}
                    index: 89
                  value:
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    short: An attached file with the structural representation
                    choices: [valueAttachment]
                    index: 91
                  valueAttachment:
                    short: An attached file with the structural representation
                    type: Attachment
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    choiceOf: value
                    index: 92
                required: [url]
            elements:
              extension:
                base: {max: '*', min: 0, path: Extension.extension}
                array: true
                index: 77
                slicing:
                  rules: open
                  ordered: false
                  discriminator:
                  - {path: url, type: value}
                  min: 0
                  slices:
                    type:
                      match: {url: type}
                      schema:
                        short: 'R4: The type of structure (e.g. Full, Partial, Representative) (new)'
                        base: {max: '*', min: 0, path: Extension.extension}
                        index: 78
                        elements:
                          url:
                            base: {max: '1', min: 1, path: Extension.url}
                            pattern: {type: Uri, value: type}
                            index: 79
                          value:
                            base: {max: '1', min: 0, path: 'Extension.value[x]'}
                            short: The type of structure (e.g. Full, Partial, Representative)
                            choices: [valueCodeableConcept]
                            index: 81
                          valueCodeableConcept:
                            short: The type of structure (e.g. Full, Partial, Representative)
                            type: CodeableConcept
                            base: {max: '1', min: 0, path: 'Extension.value[x]'}
                            choiceOf: value
                            index: 82
                        required: [url]
                    representation:
                      match: {url: representation}
                      schema:
                        short: 'R4: The structural representation as text string in a format e.g. InChI, SMILES, MOLFILE, CDX (new)'
                        base: {max: '*', min: 0, path: Extension.extension}
                        index: 83
                        elements:
                          url:
                            base: {max: '1', min: 1, path: Extension.url}
                            pattern: {type: Uri, value: representation}
                            index: 84
                          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: 86
                          valueString:
                            short: The structural representation as text string in a format e.g. InChI, SMILES, MOLFILE, CDX
                            type: string
                            base: {max: '1', min: 0, path: 'Extension.value[x]'}
                            choiceOf: value
                            index: 87
                        required: [url]
                    attachment:
                      match: {url: attachment}
                      schema:
                        short: 'R4: An attached file with the structural representation (new)'
                        base: {max: '*', min: 0, path: Extension.extension}
                        index: 88
                        elements:
                          url:
                            base: {max: '1', min: 1, path: Extension.url}
                            pattern: {type: Uri, value: attachment}
                            index: 89
                          value:
                            base: {max: '1', min: 0, path: 'Extension.value[x]'}
                            short: An attached file with the structural representation
                            choices: [valueAttachment]
                            index: 91
                          valueAttachment:
                            short: An attached file with the structural representation
                            type: Attachment
                            base: {max: '1', min: 0, path: 'Extension.value[x]'}
                            choiceOf: value
                            index: 92
                        required: [url]
              url:
                base: {max: '1', min: 1, path: Extension.url}
                pattern: {type: Uri, value: representation}
                index: 93
              value:
                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                choices: []
                index: 95
            required: [url]
  url:
    base: {max: '1', min: 1, path: Extension.url}
    pattern: {type: Uri, value: 'http://hl7.org/fhir/4.0/StructureDefinition/extension-SubstanceSpecification.structure'}
    index: 96
  value:
    base: {max: '1', min: 0, path: 'Extension.value[x]'}
    choices: []
    index: 98
package_version: 0.1.0
extensions:
  stereochemistry:
    url: stereochemistry
    short: 'R4: Stereochemistry type (new)'
    base: {max: '*', min: 0, path: Extension.extension}
    index: 1
    elements:
      url:
        base: {max: '1', min: 1, path: Extension.url}
        pattern: {type: Uri, value: stereochemistry}
        index: 2
      value:
        base: {max: '1', min: 0, path: 'Extension.value[x]'}
        short: Stereochemistry type
        choices: [valueCodeableConcept]
        index: 4
      valueCodeableConcept:
        short: Stereochemistry type
        type: CodeableConcept
        base: {max: '1', min: 0, path: 'Extension.value[x]'}
        choiceOf: value
        index: 5
    required: [url]
  opticalActivity:
    url: opticalActivity
    short: 'R4: Optical activity type (new)'
    base: {max: '*', min: 0, path: Extension.extension}
    index: 6
    elements:
      url:
        base: {max: '1', min: 1, path: Extension.url}
        pattern: {type: Uri, value: opticalActivity}
        index: 7
      value:
        base: {max: '1', min: 0, path: 'Extension.value[x]'}
        short: Optical activity type
        choices: [valueCodeableConcept]
        index: 9
      valueCodeableConcept:
        short: Optical activity type
        type: CodeableConcept
        base: {max: '1', min: 0, path: 'Extension.value[x]'}
        choiceOf: value
        index: 10
    required: [url]
  molecularFormula:
    url: molecularFormula
    short: 'R4: Molecular formula (new)'
    base: {max: '*', min: 0, path: Extension.extension}
    index: 11
    elements:
      url:
        base: {max: '1', min: 1, path: Extension.url}
        pattern: {type: Uri, value: molecularFormula}
        index: 12
      value:
        base: {max: '1', min: 0, path: 'Extension.value[x]'}
        short: Molecular formula
        choices: [valueString]
        index: 14
      valueString:
        short: Molecular formula
        type: string
        base: {max: '1', min: 0, path: 'Extension.value[x]'}
        choiceOf: value
        index: 15
    required: [url]
  molecularFormulaByMoiety:
    url: molecularFormulaByMoiety
    short: 'R4: Specified per moiety according to the Hill system, i.e. first C, then H, then alphabetical, each moiety separated by a dot (new)'
    base: {max: '*', min: 0, path: Extension.extension}
    index: 16
    elements:
      url:
        base: {max: '1', min: 1, path: Extension.url}
        pattern: {type: Uri, value: molecularFormulaByMoiety}
        index: 17
      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: 19
      valueString:
        short: Specified per moiety according to the Hill system, i.e. first C, then H, then alphabetical, each moiety separated by a dot
        type: string
        base: {max: '1', min: 0, path: 'Extension.value[x]'}
        choiceOf: value
        index: 20
    required: [url]
  isotope:
    url: isotope
    short: 'R4: Applicable for single substances that contain a radionuclide or a non-natural isotopic ratio (new)'
    array: true
    base: {max: '*', min: 0, path: Extension.extension}
    index: 21
    extensions:
      identifier:
        url: identifier
        short: 'R4: Substance identifier for each non-natural or radioisotope (new)'
        base: {max: '*', min: 0, path: Extension.extension}
        index: 23
        elements:
          url:
            base: {max: '1', min: 1, path: Extension.url}
            pattern: {type: Uri, value: identifier}
            index: 24
          value:
            base: {max: '1', min: 0, path: 'Extension.value[x]'}
            short: Substance identifier for each non-natural or radioisotope
            choices: [valueIdentifier]
            index: 26
          valueIdentifier:
            short: Substance identifier for each non-natural or radioisotope
            type: Identifier
            base: {max: '1', min: 0, path: 'Extension.value[x]'}
            choiceOf: value
            index: 27
        required: [url]
      name:
        url: name
        short: 'R4: Substance name for each non-natural or radioisotope (new)'
        base: {max: '*', min: 0, path: Extension.extension}
        index: 28
        elements:
          url:
            base: {max: '1', min: 1, path: Extension.url}
            pattern: {type: Uri, value: name}
            index: 29
          value:
            base: {max: '1', min: 0, path: 'Extension.value[x]'}
            short: Substance name for each non-natural or radioisotope
            choices: [valueCodeableConcept]
            index: 31
          valueCodeableConcept:
            short: Substance name for each non-natural or radioisotope
            type: CodeableConcept
            base: {max: '1', min: 0, path: 'Extension.value[x]'}
            choiceOf: value
            index: 32
        required: [url]
      substitution:
        url: substitution
        short: 'R4: The type of isotopic substitution present in a single substance (new)'
        base: {max: '*', min: 0, path: Extension.extension}
        index: 33
        elements:
          url:
            base: {max: '1', min: 1, path: Extension.url}
            pattern: {type: Uri, value: substitution}
            index: 34
          value:
            base: {max: '1', min: 0, path: 'Extension.value[x]'}
            short: The type of isotopic substitution present in a single substance
            choices: [valueCodeableConcept]
            index: 36
          valueCodeableConcept:
            short: The type of isotopic substitution present in a single substance
            type: CodeableConcept
            base: {max: '1', min: 0, path: 'Extension.value[x]'}
            choiceOf: value
            index: 37
        required: [url]
      halfLife:
        url: halfLife
        short: 'R4: Half life - for a non-natural nuclide (new)'
        base: {max: '*', min: 0, path: Extension.extension}
        index: 38
        elements:
          url:
            base: {max: '1', min: 1, path: Extension.url}
            pattern: {type: Uri, value: halfLife}
            index: 39
          value:
            base: {max: '1', min: 0, path: 'Extension.value[x]'}
            short: Half life - for a non-natural nuclide
            choices: [valueQuantity]
            index: 41
          valueQuantity:
            short: Half life - for a non-natural nuclide
            type: Quantity
            base: {max: '1', min: 0, path: 'Extension.value[x]'}
            choiceOf: value
            index: 42
        required: [url]
      molecularWeight:
        url: molecularWeight
        short: 'R4: The molecular weight or weight range (for proteins, polymers or nucleic acids) (new)'
        base: {max: '*', min: 0, path: Extension.extension}
        index: 43
        extensions:
          method:
            url: method
            short: 'R4: The method by which the molecular weight was determined (new)'
            base: {max: '*', min: 0, path: Extension.extension}
            index: 45
            elements:
              url:
                base: {max: '1', min: 1, path: Extension.url}
                pattern: {type: Uri, value: method}
                index: 46
              value:
                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                short: The method by which the molecular weight was determined
                choices: [valueCodeableConcept]
                index: 48
              valueCodeableConcept:
                short: The method by which the molecular weight was determined
                type: CodeableConcept
                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                choiceOf: value
                index: 49
            required: [url]
          type:
            url: type
            short: 'R4: Type of molecular weight such as exact, average (also known as. number average), weight average (new)'
            base: {max: '*', min: 0, path: Extension.extension}
            index: 50
            elements:
              url:
                base: {max: '1', min: 1, path: Extension.url}
                pattern: {type: Uri, value: type}
                index: 51
              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: 53
              valueCodeableConcept:
                short: Type of molecular weight such as exact, average (also known as. number average), weight average
                type: CodeableConcept
                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                choiceOf: value
                index: 54
            required: [url]
          amount:
            url: amount
            short: 'R4: 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 (new)'
            base: {max: '*', min: 0, path: Extension.extension}
            index: 55
            elements:
              url:
                base: {max: '1', min: 1, path: Extension.url}
                pattern: {type: Uri, value: amount}
                index: 56
              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: 58
              valueQuantity:
                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
                type: Quantity
                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                choiceOf: value
                index: 59
            required: [url]
        elements:
          extension:
            base: {max: '*', min: 0, path: Extension.extension}
            array: true
            index: 44
            slicing:
              rules: open
              ordered: false
              discriminator:
              - {path: url, type: value}
              min: 0
              slices:
                method:
                  match: {url: method}
                  schema:
                    short: 'R4: The method by which the molecular weight was determined (new)'
                    base: {max: '*', min: 0, path: Extension.extension}
                    index: 45
                    elements:
                      url:
                        base: {max: '1', min: 1, path: Extension.url}
                        pattern: {type: Uri, value: method}
                        index: 46
                      value:
                        base: {max: '1', min: 0, path: 'Extension.value[x]'}
                        short: The method by which the molecular weight was determined
                        choices: [valueCodeableConcept]
                        index: 48
                      valueCodeableConcept:
                        short: The method by which the molecular weight was determined
                        type: CodeableConcept
                        base: {max: '1', min: 0, path: 'Extension.value[x]'}
                        choiceOf: value
                        index: 49
                    required: [url]
                type:
                  match: {url: type}
                  schema:
                    short: 'R4: Type of molecular weight such as exact, average (also known as. number average), weight average (new)'
                    base: {max: '*', min: 0, path: Extension.extension}
                    index: 50
                    elements:
                      url:
                        base: {max: '1', min: 1, path: Extension.url}
                        pattern: {type: Uri, value: type}
                        index: 51
                      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: 53
                      valueCodeableConcept:
                        short: Type of molecular weight such as exact, average (also known as. number average), weight average
                        type: CodeableConcept
                        base: {max: '1', min: 0, path: 'Extension.value[x]'}
                        choiceOf: value
                        index: 54
                    required: [url]
                amount:
                  match: {url: amount}
                  schema:
                    short: 'R4: 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 (new)'
                    base: {max: '*', min: 0, path: Extension.extension}
                    index: 55
                    elements:
                      url:
                        base: {max: '1', min: 1, path: Extension.url}
                        pattern: {type: Uri, value: amount}
                        index: 56
                      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: 58
                      valueQuantity:
                        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
                        type: Quantity
                        base: {max: '1', min: 0, path: 'Extension.value[x]'}
                        choiceOf: value
                        index: 59
                    required: [url]
          url:
            base: {max: '1', min: 1, path: Extension.url}
            pattern: {type: Uri, value: molecularWeight}
            index: 60
          value:
            base: {max: '1', min: 0, path: 'Extension.value[x]'}
            choices: []
            index: 62
        required: [url]
    elements:
      extension:
        base: {max: '*', min: 0, path: Extension.extension}
        array: true
        index: 22
        slicing:
          rules: open
          ordered: false
          discriminator:
          - {path: url, type: value}
          min: 0
          slices:
            identifier:
              match: {url: identifier}
              schema:
                short: 'R4: Substance identifier for each non-natural or radioisotope (new)'
                base: {max: '*', min: 0, path: Extension.extension}
                index: 23
                elements:
                  url:
                    base: {max: '1', min: 1, path: Extension.url}
                    pattern: {type: Uri, value: identifier}
                    index: 24
                  value:
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    short: Substance identifier for each non-natural or radioisotope
                    choices: [valueIdentifier]
                    index: 26
                  valueIdentifier:
                    short: Substance identifier for each non-natural or radioisotope
                    type: Identifier
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    choiceOf: value
                    index: 27
                required: [url]
            name:
              match: {url: name}
              schema:
                short: 'R4: Substance name for each non-natural or radioisotope (new)'
                base: {max: '*', min: 0, path: Extension.extension}
                index: 28
                elements:
                  url:
                    base: {max: '1', min: 1, path: Extension.url}
                    pattern: {type: Uri, value: name}
                    index: 29
                  value:
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    short: Substance name for each non-natural or radioisotope
                    choices: [valueCodeableConcept]
                    index: 31
                  valueCodeableConcept:
                    short: Substance name for each non-natural or radioisotope
                    type: CodeableConcept
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    choiceOf: value
                    index: 32
                required: [url]
            substitution:
              match: {url: substitution}
              schema:
                short: 'R4: The type of isotopic substitution present in a single substance (new)'
                base: {max: '*', min: 0, path: Extension.extension}
                index: 33
                elements:
                  url:
                    base: {max: '1', min: 1, path: Extension.url}
                    pattern: {type: Uri, value: substitution}
                    index: 34
                  value:
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    short: The type of isotopic substitution present in a single substance
                    choices: [valueCodeableConcept]
                    index: 36
                  valueCodeableConcept:
                    short: The type of isotopic substitution present in a single substance
                    type: CodeableConcept
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    choiceOf: value
                    index: 37
                required: [url]
            halfLife:
              match: {url: halfLife}
              schema:
                short: 'R4: Half life - for a non-natural nuclide (new)'
                base: {max: '*', min: 0, path: Extension.extension}
                index: 38
                elements:
                  url:
                    base: {max: '1', min: 1, path: Extension.url}
                    pattern: {type: Uri, value: halfLife}
                    index: 39
                  value:
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    short: Half life - for a non-natural nuclide
                    choices: [valueQuantity]
                    index: 41
                  valueQuantity:
                    short: Half life - for a non-natural nuclide
                    type: Quantity
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    choiceOf: value
                    index: 42
                required: [url]
            molecularWeight:
              match: {url: molecularWeight}
              schema:
                short: 'R4: The molecular weight or weight range (for proteins, polymers or nucleic acids) (new)'
                base: {max: '*', min: 0, path: Extension.extension}
                index: 43
                extensions:
                  method:
                    url: method
                    short: 'R4: The method by which the molecular weight was determined (new)'
                    base: {max: '*', min: 0, path: Extension.extension}
                    index: 45
                    elements:
                      url:
                        base: {max: '1', min: 1, path: Extension.url}
                        pattern: {type: Uri, value: method}
                        index: 46
                      value:
                        base: {max: '1', min: 0, path: 'Extension.value[x]'}
                        short: The method by which the molecular weight was determined
                        choices: [valueCodeableConcept]
                        index: 48
                      valueCodeableConcept:
                        short: The method by which the molecular weight was determined
                        type: CodeableConcept
                        base: {max: '1', min: 0, path: 'Extension.value[x]'}
                        choiceOf: value
                        index: 49
                    required: [url]
                  type:
                    url: type
                    short: 'R4: Type of molecular weight such as exact, average (also known as. number average), weight average (new)'
                    base: {max: '*', min: 0, path: Extension.extension}
                    index: 50
                    elements:
                      url:
                        base: {max: '1', min: 1, path: Extension.url}
                        pattern: {type: Uri, value: type}
                        index: 51
                      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: 53
                      valueCodeableConcept:
                        short: Type of molecular weight such as exact, average (also known as. number average), weight average
                        type: CodeableConcept
                        base: {max: '1', min: 0, path: 'Extension.value[x]'}
                        choiceOf: value
                        index: 54
                    required: [url]
                  amount:
                    url: amount
                    short: 'R4: 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 (new)'
                    base: {max: '*', min: 0, path: Extension.extension}
                    index: 55
                    elements:
                      url:
                        base: {max: '1', min: 1, path: Extension.url}
                        pattern: {type: Uri, value: amount}
                        index: 56
                      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: 58
                      valueQuantity:
                        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
                        type: Quantity
                        base: {max: '1', min: 0, path: 'Extension.value[x]'}
                        choiceOf: value
                        index: 59
                    required: [url]
                elements:
                  extension:
                    base: {max: '*', min: 0, path: Extension.extension}
                    array: true
                    index: 44
                    slicing:
                      rules: open
                      ordered: false
                      discriminator:
                      - {path: url, type: value}
                      min: 0
                      slices:
                        method:
                          match: {url: method}
                          schema:
                            short: 'R4: The method by which the molecular weight was determined (new)'
                            base: {max: '*', min: 0, path: Extension.extension}
                            index: 45
                            elements:
                              url:
                                base: {max: '1', min: 1, path: Extension.url}
                                pattern: {type: Uri, value: method}
                                index: 46
                              value:
                                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                short: The method by which the molecular weight was determined
                                choices: [valueCodeableConcept]
                                index: 48
                              valueCodeableConcept:
                                short: The method by which the molecular weight was determined
                                type: CodeableConcept
                                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                choiceOf: value
                                index: 49
                            required: [url]
                        type:
                          match: {url: type}
                          schema:
                            short: 'R4: Type of molecular weight such as exact, average (also known as. number average), weight average (new)'
                            base: {max: '*', min: 0, path: Extension.extension}
                            index: 50
                            elements:
                              url:
                                base: {max: '1', min: 1, path: Extension.url}
                                pattern: {type: Uri, value: type}
                                index: 51
                              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: 53
                              valueCodeableConcept:
                                short: Type of molecular weight such as exact, average (also known as. number average), weight average
                                type: CodeableConcept
                                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                choiceOf: value
                                index: 54
                            required: [url]
                        amount:
                          match: {url: amount}
                          schema:
                            short: 'R4: 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 (new)'
                            base: {max: '*', min: 0, path: Extension.extension}
                            index: 55
                            elements:
                              url:
                                base: {max: '1', min: 1, path: Extension.url}
                                pattern: {type: Uri, value: amount}
                                index: 56
                              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: 58
                              valueQuantity:
                                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
                                type: Quantity
                                base: {max: '1', min: 0, path: 'Extension.value[x]'}
                                choiceOf: value
                                index: 59
                            required: [url]
                  url:
                    base: {max: '1', min: 1, path: Extension.url}
                    pattern: {type: Uri, value: molecularWeight}
                    index: 60
                  value:
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    choices: []
                    index: 62
                required: [url]
      url:
        base: {max: '1', min: 1, path: Extension.url}
        pattern: {type: Uri, value: isotope}
        index: 63
      value:
        base: {max: '1', min: 0, path: 'Extension.value[x]'}
        choices: []
        index: 65
    required: [url]
  molecularWeight:
    url: http://hl7.org/fhir/4.0/StructureDefinition/extension-SubstanceSpecification.structure.isotope.molecularWeight
    short: 'R4: The molecular weight or weight range (for proteins, polymers or nucleic acids) (new)'
    base: {max: '*', min: 0, path: Extension.extension}
    index: 66
    elements:
      url:
        base: {max: '1', min: 1, path: Extension.url}
        pattern: {type: Uri, value: 'http://hl7.org/fhir/4.0/StructureDefinition/extension-SubstanceSpecification.structure.isotope.molecularWeight'}
        index: 67
      value:
        base: {max: '1', min: 0, path: 'Extension.value[x]'}
        choices: []
        index: 69
    required: [url]
  source:
    url: source
    short: 'R4: Supporting literature (new)'
    array: true
    base: {max: '*', min: 0, path: Extension.extension}
    index: 70
    elements:
      url:
        base: {max: '1', min: 1, path: Extension.url}
        pattern: {type: Uri, value: source}
        index: 71
      value:
        base: {max: '1', min: 0, path: 'Extension.value[x]'}
        short: Supporting literature
        choices: [valueReference, valueReference]
        index: 73
      valueReference:
        short: Supporting literature
        refers: ['http://hl7.org/fhir/4.0/StructureDefinition/profile-DocumentReference|0.1.0']
        type: Reference
        base: {max: '1', min: 0, path: 'Extension.value[x]'}
        choiceOf: value
        index: 74
    required: [url]
  representation:
    url: representation
    short: 'R4: Molecular structural representation (new)'
    array: true
    base: {max: '*', min: 0, path: Extension.extension}
    index: 76
    extensions:
      type:
        url: type
        short: 'R4: The type of structure (e.g. Full, Partial, Representative) (new)'
        base: {max: '*', min: 0, path: Extension.extension}
        index: 78
        elements:
          url:
            base: {max: '1', min: 1, path: Extension.url}
            pattern: {type: Uri, value: type}
            index: 79
          value:
            base: {max: '1', min: 0, path: 'Extension.value[x]'}
            short: The type of structure (e.g. Full, Partial, Representative)
            choices: [valueCodeableConcept]
            index: 81
          valueCodeableConcept:
            short: The type of structure (e.g. Full, Partial, Representative)
            type: CodeableConcept
            base: {max: '1', min: 0, path: 'Extension.value[x]'}
            choiceOf: value
            index: 82
        required: [url]
      representation:
        url: representation
        short: 'R4: The structural representation as text string in a format e.g. InChI, SMILES, MOLFILE, CDX (new)'
        base: {max: '*', min: 0, path: Extension.extension}
        index: 83
        elements:
          url:
            base: {max: '1', min: 1, path: Extension.url}
            pattern: {type: Uri, value: representation}
            index: 84
          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: 86
          valueString:
            short: The structural representation as text string in a format e.g. InChI, SMILES, MOLFILE, CDX
            type: string
            base: {max: '1', min: 0, path: 'Extension.value[x]'}
            choiceOf: value
            index: 87
        required: [url]
      attachment:
        url: attachment
        short: 'R4: An attached file with the structural representation (new)'
        base: {max: '*', min: 0, path: Extension.extension}
        index: 88
        elements:
          url:
            base: {max: '1', min: 1, path: Extension.url}
            pattern: {type: Uri, value: attachment}
            index: 89
          value:
            base: {max: '1', min: 0, path: 'Extension.value[x]'}
            short: An attached file with the structural representation
            choices: [valueAttachment]
            index: 91
          valueAttachment:
            short: An attached file with the structural representation
            type: Attachment
            base: {max: '1', min: 0, path: 'Extension.value[x]'}
            choiceOf: value
            index: 92
        required: [url]
    elements:
      extension:
        base: {max: '*', min: 0, path: Extension.extension}
        array: true
        index: 77
        slicing:
          rules: open
          ordered: false
          discriminator:
          - {path: url, type: value}
          min: 0
          slices:
            type:
              match: {url: type}
              schema:
                short: 'R4: The type of structure (e.g. Full, Partial, Representative) (new)'
                base: {max: '*', min: 0, path: Extension.extension}
                index: 78
                elements:
                  url:
                    base: {max: '1', min: 1, path: Extension.url}
                    pattern: {type: Uri, value: type}
                    index: 79
                  value:
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    short: The type of structure (e.g. Full, Partial, Representative)
                    choices: [valueCodeableConcept]
                    index: 81
                  valueCodeableConcept:
                    short: The type of structure (e.g. Full, Partial, Representative)
                    type: CodeableConcept
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    choiceOf: value
                    index: 82
                required: [url]
            representation:
              match: {url: representation}
              schema:
                short: 'R4: The structural representation as text string in a format e.g. InChI, SMILES, MOLFILE, CDX (new)'
                base: {max: '*', min: 0, path: Extension.extension}
                index: 83
                elements:
                  url:
                    base: {max: '1', min: 1, path: Extension.url}
                    pattern: {type: Uri, value: representation}
                    index: 84
                  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: 86
                  valueString:
                    short: The structural representation as text string in a format e.g. InChI, SMILES, MOLFILE, CDX
                    type: string
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    choiceOf: value
                    index: 87
                required: [url]
            attachment:
              match: {url: attachment}
              schema:
                short: 'R4: An attached file with the structural representation (new)'
                base: {max: '*', min: 0, path: Extension.extension}
                index: 88
                elements:
                  url:
                    base: {max: '1', min: 1, path: Extension.url}
                    pattern: {type: Uri, value: attachment}
                    index: 89
                  value:
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    short: An attached file with the structural representation
                    choices: [valueAttachment]
                    index: 91
                  valueAttachment:
                    short: An attached file with the structural representation
                    type: Attachment
                    base: {max: '1', min: 0, path: 'Extension.value[x]'}
                    choiceOf: value
                    index: 92
                required: [url]
      url:
        base: {max: '1', min: 1, path: Extension.url}
        pattern: {type: Uri, value: representation}
        index: 93
      value:
        base: {max: '1', min: 0, path: 'Extension.value[x]'}
        choices: []
        index: 95
    required: [url]
class: extension
kind: complex-type
url: http://hl7.org/fhir/4.0/StructureDefinition/extension-SubstanceSpecification.structure
base: http://hl7.org/fhir/StructureDefinition/Extension
version: 0.1.0
required: [url]