Release 5 Ballot

This page is part of the FHIR Specification (v5.0.0-ballot: R5 Ballot - see ballot notes). The current version which supercedes this version is 5.0.0. For a full list of available versions, see the Directory of published versions . Page versions: R5 R4B

Biomedical Research and Regulation icon Work GroupMaturity Level: N/AStandards Status: Informative Compartments: Not linked to any defined compartments

This is a representation of the json schema for SubstanceDefinition, which is just a part of the full JSON Schema.

{
  "$schema": "http://json-schema.org/draft-06/schema#",
  "id": "http://hl7.org/fhir/json-schema/SubstanceDefinition",
  "$ref": "#/definitions/SubstanceDefinition",
  "description": "see http://hl7.org/fhir/json.html#schema for information about the FHIR Json Schemas",
  "definitions": {
    "SubstanceDefinition": {
      "description": "The detailed description of a substance, typically at a level beyond what is used for prescribing.",
      "properties": {
        "resourceType": {
          "description": "This is a SubstanceDefinition resource",
          "const": "SubstanceDefinition"
        },
        "id": {
          "description": "The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.",
          "$ref": "id.schema.json#/definitions/id"
        },
        "meta": {
          "description": "The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.",
          "$ref": "Meta.schema.json#/definitions/Meta"
        },
        "implicitRules": {
          "description": "A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.",
          "$ref": "#/definitions/uri"
        },
        "_implicitRules": {
          "description": "Extensions for implicitRules",
          "$ref": "Element.schema.json#/definitions/Element"
        },
        "language": {
          "description": "The base language in which the resource is written.",
          "$ref": "#/definitions/code"
        },
        "_language": {
          "description": "Extensions for language",
          "$ref": "Element.schema.json#/definitions/Element"
        },
        "text": {
          "description": "A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it \"clinically safe\" for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.",
          "$ref": "Narrative.schema.json#/definitions/Narrative"
        },
        "contained": {
          "description": "These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.",
          "items": {
            "$ref": "ResourceList.schema.json#/definitions/ResourceList"
          },
          "type": "array"
        },
        "extension": {
          "description": "May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.",
          "items": {
            "$ref": "Extension.schema.json#/definitions/Extension"
          },
          "type": "array"
        },
        "modifierExtension": {
          "description": "May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element\u0027s descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).",
          "items": {
            "$ref": "Extension.schema.json#/definitions/Extension"
          },
          "type": "array"
        },
        "identifier": {
          "description": "Identifier by which this substance is known.",
          "items": {
            "$ref": "Identifier.schema.json#/definitions/Identifier"
          },
          "type": "array"
        },
        "version": {
          "description": "A business level version identifier of the substance.",
          "$ref": "#/definitions/string"
        },
        "_version": {
          "description": "Extensions for version",
          "$ref": "Element.schema.json#/definitions/Element"
        },
        "status": {
          "description": "Status of substance within the catalogue e.g. active, retired.",
          "$ref": "CodeableConcept.schema.json#/definitions/CodeableConcept"
        },
        "classification": {
          "description": "A high level categorization, e.g. polymer or nucleic acid, or food, chemical, biological, or a lower level such as the general types of polymer (linear or branch chain) or type of impurity (process related or contaminant).",
          "items": {
            "$ref": "CodeableConcept.schema.json#/definitions/CodeableConcept"
          },
          "type": "array"
        },
        "domain": {
          "description": "If the substance applies to human or veterinary use.",
          "$ref": "CodeableConcept.schema.json#/definitions/CodeableConcept"
        },
        "grade": {
          "description": "The quality standard, established benchmark, to which substance complies (e.g. USP/NF, Ph. Eur, JP, BP, Company Standard).",
          "items": {
            "$ref": "CodeableConcept.schema.json#/definitions/CodeableConcept"
          },
          "type": "array"
        },
        "description": {
          "description": "Textual description of the substance.",
          "$ref": "#/definitions/markdown"
        },
        "_description": {
          "description": "Extensions for description",
          "$ref": "Element.schema.json#/definitions/Element"
        },
        "informationSource": {
          "description": "Supporting literature.",
          "items": {
            "$ref": "Reference.schema.json#/definitions/Reference"
          },
          "type": "array"
        },
        "note": {
          "description": "Textual comment about the substance\u0027s catalogue or registry record.",
          "items": {
            "$ref": "Annotation.schema.json#/definitions/Annotation"
          },
          "type": "array"
        },
        "manufacturer": {
          "description": "The entity that creates, makes, produces or fabricates the substance. This is a set of potential manufacturers but is not necessarily comprehensive.",
          "items": {
            "$ref": "Reference.schema.json#/definitions/Reference"
          },
          "type": "array"
        },
        "supplier": {
          "description": "An entity that is the source for the substance. It may be different from the manufacturer. Supplier is synonymous to a distributor.",
          "items": {
            "$ref": "Reference.schema.json#/definitions/Reference"
          },
          "type": "array"
        },
        "moiety": {
          "description": "Moiety, for structural modifications.",
          "items": {
            "$ref": "#/definitions/SubstanceDefinition_Moiety"
          },
          "type": "array"
        },
        "property": {
          "description": "General specifications for this substance.",
          "items": {
            "$ref": "#/definitions/SubstanceDefinition_Property"
          },
          "type": "array"
        },
        "referenceInformation": {
          "description": "General information detailing this substance.",
          "$ref": "Reference.schema.json#/definitions/Reference"
        },
        "molecularWeight": {
          "description": "The molecular weight or weight range (for proteins, polymers or nucleic acids).",
          "items": {
            "$ref": "#/definitions/SubstanceDefinition_MolecularWeight"
          },
          "type": "array"
        },
        "structure": {
          "description": "Structural information.",
          "$ref": "#/definitions/SubstanceDefinition_Structure"
        },
        "code": {
          "description": "Codes associated with the substance.",
          "items": {
            "$ref": "#/definitions/SubstanceDefinition_Code"
          },
          "type": "array"
        },
        "name": {
          "description": "Names applicable to this substance.",
          "items": {
            "$ref": "#/definitions/SubstanceDefinition_Name"
          },
          "type": "array"
        },
        "relationship": {
          "description": "A link between this substance and another, with details of the relationship.",
          "items": {
            "$ref": "#/definitions/SubstanceDefinition_Relationship"
          },
          "type": "array"
        },
        "nucleicAcid": {
          "description": "Data items specific to nucleic acids.",
          "$ref": "Reference.schema.json#/definitions/Reference"
        },
        "polymer": {
          "description": "Data items specific to polymers.",
          "$ref": "Reference.schema.json#/definitions/Reference"
        },
        "protein": {
          "description": "Data items specific to proteins.",
          "$ref": "Reference.schema.json#/definitions/Reference"
        },
        "sourceMaterial": {
          "description": "Material or taxonomic/anatomical source for the substance.",
          "$ref": "#/definitions/SubstanceDefinition_SourceMaterial"
        }
      },
      "type": "object",
      "additionalProperties": false,
      "required": [
        "resourceType"
      ]
    },
    "SubstanceDefinition_Moiety": {
      "description": "The detailed description of a substance, typically at a level beyond what is used for prescribing.",
      "properties": {
        "id": {
          "description": "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.",
          "$ref": "string.schema.json#/definitions/string"
        },
        "extension": {
          "description": "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.",
          "items": {
            "$ref": "Extension.schema.json#/definitions/Extension"
          },
          "type": "array"
        },
        "modifierExtension": {
          "description": "May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element\u0027s descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).",
          "items": {
            "$ref": "Extension.schema.json#/definitions/Extension"
          },
          "type": "array"
        },
        "role": {
          "description": "Role that the moiety is playing.",
          "$ref": "CodeableConcept.schema.json#/definitions/CodeableConcept"
        },
        "identifier": {
          "description": "Identifier by which this moiety substance is known.",
          "$ref": "Identifier.schema.json#/definitions/Identifier"
        },
        "name": {
          "description": "Textual name for this moiety substance.",
          "$ref": "#/definitions/string"
        },
        "_name": {
          "description": "Extensions for name",
          "$ref": "Element.schema.json#/definitions/Element"
        },
        "stereochemistry": {
          "description": "Stereochemistry type.",
          "$ref": "CodeableConcept.schema.json#/definitions/CodeableConcept"
        },
        "opticalActivity": {
          "description": "Optical activity type.",
          "$ref": "CodeableConcept.schema.json#/definitions/CodeableConcept"
        },
        "molecularFormula": {
          "description": "Molecular formula for this moiety of this substance, typically using the Hill system.",
          "$ref": "#/definitions/string"
        },
        "_molecularFormula": {
          "description": "Extensions for molecularFormula",
          "$ref": "Element.schema.json#/definitions/Element"
        },
        "amountQuantity": {
          "description": "Quantitative value for this moiety.",
          "$ref": "Quantity.schema.json#/definitions/Quantity"
        },
        "amountString": {
          "description": "Quantitative value for this moiety.",
          "pattern": "^[ \\r\\n\\t\\S]+$",
          "type": "string"
        },
        "_amountString": {
          "description": "Extensions for amountString",
          "$ref": "Element.schema.json#/definitions/Element"
        },
        "measurementType": {
          "description": "The measurement type of the quantitative value. In capturing the actual relative amounts of substances or molecular fragments it may be necessary to indicate whether the amount refers to, for example, a mole ratio or weight ratio.",
          "$ref": "CodeableConcept.schema.json#/definitions/CodeableConcept"
        }
      },
      "type": "object",
      "additionalProperties": false
    },
    "SubstanceDefinition_Property": {
      "description": "The detailed description of a substance, typically at a level beyond what is used for prescribing.",
      "properties": {
        "id": {
          "description": "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.",
          "$ref": "string.schema.json#/definitions/string"
        },
        "extension": {
          "description": "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.",
          "items": {
            "$ref": "Extension.schema.json#/definitions/Extension"
          },
          "type": "array"
        },
        "modifierExtension": {
          "description": "May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element\u0027s descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).",
          "items": {
            "$ref": "Extension.schema.json#/definitions/Extension"
          },
          "type": "array"
        },
        "type": {
          "description": "A code expressing the type of property.",
          "$ref": "CodeableConcept.schema.json#/definitions/CodeableConcept"
        },
        "valueCodeableConcept": {
          "description": "A value for the property.",
          "$ref": "CodeableConcept.schema.json#/definitions/CodeableConcept"
        },
        "valueQuantity": {
          "description": "A value for the property.",
          "$ref": "Quantity.schema.json#/definitions/Quantity"
        },
        "valueDate": {
          "description": "A value for the property.",
          "pattern": "^([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)(-(0[1-9]|1[0-2])(-(0[1-9]|[1-2][0-9]|3[0-1]))?)?$",
          "type": "string"
        },
        "_valueDate": {
          "description": "Extensions for valueDate",
          "$ref": "Element.schema.json#/definitions/Element"
        },
        "valueBoolean": {
          "description": "A value for the property.",
          "pattern": "^true|false$",
          "type": "boolean"
        },
        "_valueBoolean": {
          "description": "Extensions for valueBoolean",
          "$ref": "Element.schema.json#/definitions/Element"
        },
        "valueAttachment": {
          "description": "A value for the property.",
          "$ref": "Attachment.schema.json#/definitions/Attachment"
        }
      },
      "type": "object",
      "additionalProperties": false,
      "required": [
        "type"
      ]
    },
    "SubstanceDefinition_MolecularWeight": {
      "description": "The detailed description of a substance, typically at a level beyond what is used for prescribing.",
      "properties": {
        "id": {
          "description": "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.",
          "$ref": "string.schema.json#/definitions/string"
        },
        "extension": {
          "description": "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.",
          "items": {
            "$ref": "Extension.schema.json#/definitions/Extension"
          },
          "type": "array"
        },
        "modifierExtension": {
          "description": "May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element\u0027s descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).",
          "items": {
            "$ref": "Extension.schema.json#/definitions/Extension"
          },
          "type": "array"
        },
        "method": {
          "description": "The method by which the molecular weight was determined.",
          "$ref": "CodeableConcept.schema.json#/definitions/CodeableConcept"
        },
        "type": {
          "description": "Type of molecular weight such as exact, average (also known as. number average), weight average.",
          "$ref": "CodeableConcept.schema.json#/definitions/CodeableConcept"
        },
        "amount": {
          "description": "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.",
          "$ref": "Quantity.schema.json#/definitions/Quantity"
        }
      },
      "type": "object",
      "additionalProperties": false,
      "required": [
        "amount"
      ]
    },
    "SubstanceDefinition_Structure": {
      "description": "The detailed description of a substance, typically at a level beyond what is used for prescribing.",
      "properties": {
        "id": {
          "description": "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.",
          "$ref": "string.schema.json#/definitions/string"
        },
        "extension": {
          "description": "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.",
          "items": {
            "$ref": "Extension.schema.json#/definitions/Extension"
          },
          "type": "array"
        },
        "modifierExtension": {
          "description": "May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element\u0027s descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).",
          "items": {
            "$ref": "Extension.schema.json#/definitions/Extension"
          },
          "type": "array"
        },
        "stereochemistry": {
          "description": "Stereochemistry type.",
          "$ref": "CodeableConcept.schema.json#/definitions/CodeableConcept"
        },
        "opticalActivity": {
          "description": "Optical activity type.",
          "$ref": "CodeableConcept.schema.json#/definitions/CodeableConcept"
        },
        "molecularFormula": {
          "description": "Molecular formula of this substance, typically using the Hill system.",
          "$ref": "#/definitions/string"
        },
        "_molecularFormula": {
          "description": "Extensions for molecularFormula",
          "$ref": "Element.schema.json#/definitions/Element"
        },
        "molecularFormulaByMoiety": {
          "description": "Specified per moiety according to the Hill system, i.e. first C, then H, then alphabetical, each moiety separated by a dot.",
          "$ref": "#/definitions/string"
        },
        "_molecularFormulaByMoiety": {
          "description": "Extensions for molecularFormulaByMoiety",
          "$ref": "Element.schema.json#/definitions/Element"
        },
        "molecularWeight": {
          "description": "The molecular weight or weight range (for proteins, polymers or nucleic acids).",
          "$ref": "#/definitions/SubstanceDefinition_MolecularWeight"
        },
        "technique": {
          "description": "The method used to elucidate the structure or characterization of the drug substance. Examples: X-ray, HPLC, NMR, Peptide mapping, Ligand binding assay.",
          "items": {
            "$ref": "CodeableConcept.schema.json#/definitions/CodeableConcept"
          },
          "type": "array"
        },
        "sourceDocument": {
          "description": "The source of information about the structure.",
          "items": {
            "$ref": "Reference.schema.json#/definitions/Reference"
          },
          "type": "array"
        },
        "representation": {
          "description": "A depiction of the structure or characterization of the substance.",
          "items": {
            "$ref": "#/definitions/SubstanceDefinition_Representation"
          },
          "type": "array"
        }
      },
      "type": "object",
      "additionalProperties": false
    },
    "SubstanceDefinition_Representation": {
      "description": "The detailed description of a substance, typically at a level beyond what is used for prescribing.",
      "properties": {
        "id": {
          "description": "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.",
          "$ref": "string.schema.json#/definitions/string"
        },
        "extension": {
          "description": "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.",
          "items": {
            "$ref": "Extension.schema.json#/definitions/Extension"
          },
          "type": "array"
        },
        "modifierExtension": {
          "description": "May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element\u0027s descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).",
          "items": {
            "$ref": "Extension.schema.json#/definitions/Extension"
          },
          "type": "array"
        },
        "type": {
          "description": "The kind of structural representation (e.g. full, partial).",
          "$ref": "CodeableConcept.schema.json#/definitions/CodeableConcept"
        },
        "representation": {
          "description": "The structural representation or characterization as a text string in a standard format.",
          "$ref": "#/definitions/string"
        },
        "_representation": {
          "description": "Extensions for representation",
          "$ref": "Element.schema.json#/definitions/Element"
        },
        "format": {
          "description": "The format of the representation e.g. InChI, SMILES, MOLFILE, CDX, SDF, PDB, mmCIF. The logical content type rather than the physical file format of a document.",
          "$ref": "CodeableConcept.schema.json#/definitions/CodeableConcept"
        },
        "document": {
          "description": "An attached file with the structural representation or characterization e.g. a molecular structure graphic of the substance, a JCAMP or AnIML file.",
          "$ref": "Reference.schema.json#/definitions/Reference"
        }
      },
      "type": "object",
      "additionalProperties": false
    },
    "SubstanceDefinition_Code": {
      "description": "The detailed description of a substance, typically at a level beyond what is used for prescribing.",
      "properties": {
        "id": {
          "description": "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.",
          "$ref": "string.schema.json#/definitions/string"
        },
        "extension": {
          "description": "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.",
          "items": {
            "$ref": "Extension.schema.json#/definitions/Extension"
          },
          "type": "array"
        },
        "modifierExtension": {
          "description": "May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element\u0027s descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).",
          "items": {
            "$ref": "Extension.schema.json#/definitions/Extension"
          },
          "type": "array"
        },
        "code": {
          "description": "The specific code.",
          "$ref": "CodeableConcept.schema.json#/definitions/CodeableConcept"
        },
        "status": {
          "description": "Status of the code assignment, for example \u0027provisional\u0027, \u0027approved\u0027.",
          "$ref": "CodeableConcept.schema.json#/definitions/CodeableConcept"
        },
        "statusDate": {
          "description": "The date at which the code status was changed as part of the terminology maintenance.",
          "$ref": "#/definitions/dateTime"
        },
        "_statusDate": {
          "description": "Extensions for statusDate",
          "$ref": "Element.schema.json#/definitions/Element"
        },
        "note": {
          "description": "Any comment can be provided in this field, if necessary.",
          "items": {
            "$ref": "Annotation.schema.json#/definitions/Annotation"
          },
          "type": "array"
        },
        "source": {
          "description": "Supporting literature.",
          "items": {
            "$ref": "Reference.schema.json#/definitions/Reference"
          },
          "type": "array"
        }
      },
      "type": "object",
      "additionalProperties": false
    },
    "SubstanceDefinition_Name": {
      "description": "The detailed description of a substance, typically at a level beyond what is used for prescribing.",
      "properties": {
        "id": {
          "description": "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.",
          "$ref": "string.schema.json#/definitions/string"
        },
        "extension": {
          "description": "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.",
          "items": {
            "$ref": "Extension.schema.json#/definitions/Extension"
          },
          "type": "array"
        },
        "modifierExtension": {
          "description": "May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element\u0027s descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).",
          "items": {
            "$ref": "Extension.schema.json#/definitions/Extension"
          },
          "type": "array"
        },
        "name": {
          "description": "The actual name.",
          "$ref": "#/definitions/string"
        },
        "_name": {
          "description": "Extensions for name",
          "$ref": "Element.schema.json#/definitions/Element"
        },
        "type": {
          "description": "Name type, for example \u0027systematic\u0027,  \u0027scientific, \u0027brand\u0027.",
          "$ref": "CodeableConcept.schema.json#/definitions/CodeableConcept"
        },
        "status": {
          "description": "The status of the name, for example \u0027current\u0027, \u0027proposed\u0027.",
          "$ref": "CodeableConcept.schema.json#/definitions/CodeableConcept"
        },
        "preferred": {
          "description": "If this is the preferred name for this substance.",
          "$ref": "#/definitions/boolean"
        },
        "_preferred": {
          "description": "Extensions for preferred",
          "$ref": "Element.schema.json#/definitions/Element"
        },
        "language": {
          "description": "Human language that the name is written in.",
          "items": {
            "$ref": "CodeableConcept.schema.json#/definitions/CodeableConcept"
          },
          "type": "array"
        },
        "domain": {
          "description": "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.",
          "items": {
            "$ref": "CodeableConcept.schema.json#/definitions/CodeableConcept"
          },
          "type": "array"
        },
        "jurisdiction": {
          "description": "The jurisdiction where this name applies.",
          "items": {
            "$ref": "CodeableConcept.schema.json#/definitions/CodeableConcept"
          },
          "type": "array"
        },
        "synonym": {
          "description": "A synonym of this particular name, by which the substance is also known.",
          "items": {
            "$ref": "#/definitions/SubstanceDefinition_Name"
          },
          "type": "array"
        },
        "translation": {
          "description": "A translation for this name into another human language.",
          "items": {
            "$ref": "#/definitions/SubstanceDefinition_Name"
          },
          "type": "array"
        },
        "official": {
          "description": "Details of the official nature of this name.",
          "items": {
            "$ref": "#/definitions/SubstanceDefinition_Official"
          },
          "type": "array"
        },
        "source": {
          "description": "Supporting literature.",
          "items": {
            "$ref": "Reference.schema.json#/definitions/Reference"
          },
          "type": "array"
        }
      },
      "type": "object",
      "additionalProperties": false
    },
    "SubstanceDefinition_Official": {
      "description": "The detailed description of a substance, typically at a level beyond what is used for prescribing.",
      "properties": {
        "id": {
          "description": "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.",
          "$ref": "string.schema.json#/definitions/string"
        },
        "extension": {
          "description": "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.",
          "items": {
            "$ref": "Extension.schema.json#/definitions/Extension"
          },
          "type": "array"
        },
        "modifierExtension": {
          "description": "May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element\u0027s descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).",
          "items": {
            "$ref": "Extension.schema.json#/definitions/Extension"
          },
          "type": "array"
        },
        "authority": {
          "description": "Which authority uses this official name.",
          "$ref": "CodeableConcept.schema.json#/definitions/CodeableConcept"
        },
        "status": {
          "description": "The status of the official name, for example \u0027draft\u0027, \u0027active\u0027, \u0027retired\u0027.",
          "$ref": "CodeableConcept.schema.json#/definitions/CodeableConcept"
        },
        "date": {
          "description": "Date of the official name change.",
          "$ref": "#/definitions/dateTime"
        },
        "_date": {
          "description": "Extensions for date",
          "$ref": "Element.schema.json#/definitions/Element"
        }
      },
      "type": "object",
      "additionalProperties": false
    },
    "SubstanceDefinition_Relationship": {
      "description": "The detailed description of a substance, typically at a level beyond what is used for prescribing.",
      "properties": {
        "id": {
          "description": "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.",
          "$ref": "string.schema.json#/definitions/string"
        },
        "extension": {
          "description": "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.",
          "items": {
            "$ref": "Extension.schema.json#/definitions/Extension"
          },
          "type": "array"
        },
        "modifierExtension": {
          "description": "May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element\u0027s descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).",
          "items": {
            "$ref": "Extension.schema.json#/definitions/Extension"
          },
          "type": "array"
        },
        "substanceDefinitionReference": {
          "description": "A pointer to another substance, as a resource or just a representational code.",
          "$ref": "Reference.schema.json#/definitions/Reference"
        },
        "substanceDefinitionCodeableConcept": {
          "description": "A pointer to another substance, as a resource or just a representational code.",
          "$ref": "CodeableConcept.schema.json#/definitions/CodeableConcept"
        },
        "type": {
          "description": "For example \"salt to parent\", \"active moiety\", \"starting material\", \"polymorph\", \"impurity of\".",
          "$ref": "CodeableConcept.schema.json#/definitions/CodeableConcept"
        },
        "isDefining": {
          "description": "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.",
          "$ref": "#/definitions/boolean"
        },
        "_isDefining": {
          "description": "Extensions for isDefining",
          "$ref": "Element.schema.json#/definitions/Element"
        },
        "amountQuantity": {
          "description": "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.",
          "$ref": "Quantity.schema.json#/definitions/Quantity"
        },
        "amountRatio": {
          "description": "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.",
          "$ref": "Ratio.schema.json#/definitions/Ratio"
        },
        "amountString": {
          "description": "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.",
          "pattern": "^[ \\r\\n\\t\\S]+$",
          "type": "string"
        },
        "_amountString": {
          "description": "Extensions for amountString",
          "$ref": "Element.schema.json#/definitions/Element"
        },
        "ratioHighLimitAmount": {
          "description": "For use when the numeric has an uncertain range.",
          "$ref": "Ratio.schema.json#/definitions/Ratio"
        },
        "comparator": {
          "description": "An operator for the amount, for example \"average\", \"approximately\", \"less than\".",
          "$ref": "CodeableConcept.schema.json#/definitions/CodeableConcept"
        },
        "source": {
          "description": "Supporting literature.",
          "items": {
            "$ref": "Reference.schema.json#/definitions/Reference"
          },
          "type": "array"
        }
      },
      "type": "object",
      "additionalProperties": false,
      "required": [
        "type"
      ]
    },
    "SubstanceDefinition_SourceMaterial": {
      "description": "The detailed description of a substance, typically at a level beyond what is used for prescribing.",
      "properties": {
        "id": {
          "description": "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.",
          "$ref": "string.schema.json#/definitions/string"
        },
        "extension": {
          "description": "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.",
          "items": {
            "$ref": "Extension.schema.json#/definitions/Extension"
          },
          "type": "array"
        },
        "modifierExtension": {
          "description": "May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element\u0027s descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).",
          "items": {
            "$ref": "Extension.schema.json#/definitions/Extension"
          },
          "type": "array"
        },
        "type": {
          "description": "A classification that provides the origin of the raw material. Example: cat hair would be an Animal source type.",
          "$ref": "CodeableConcept.schema.json#/definitions/CodeableConcept"
        },
        "genus": {
          "description": "The genus of an organism, typically referring to the Latin epithet of the genus element of the plant/animal scientific name.",
          "$ref": "CodeableConcept.schema.json#/definitions/CodeableConcept"
        },
        "species": {
          "description": "The species of an organism, typically referring to the Latin epithet of the species of the plant/animal.",
          "$ref": "CodeableConcept.schema.json#/definitions/CodeableConcept"
        },
        "part": {
          "description": "An anatomical origin of the source material within an organism.",
          "$ref": "CodeableConcept.schema.json#/definitions/CodeableConcept"
        },
        "countryOfOrigin": {
          "description": "The country or countries where the material is harvested.",
          "items": {
            "$ref": "CodeableConcept.schema.json#/definitions/CodeableConcept"
          },
          "type": "array"
        }
      },
      "type": "object",
      "additionalProperties": false
    }
  }
}