Pharmaceutical Quality (Industry)
1.0.0 - STU1 International flag

Pharmaceutical Quality (Industry), published by HL7 International / Biomedical Research and Regulation. This guide is not an authorized publication; it is the continuous build for version 1.0.0 built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/HL7/uv-dx-pq/ and changes regularly. See the Directory of published versions

Resource Profile: Substance - Drug PQ

Official URL: http://hl7.org/fhir/uv/pharm-quality/StructureDefinition/Substance-drug-pq Version: 1.0.0
Active as of 2026-05-10 Computable Name: SubstanceDrugPq
Other Identifiers: OID:2.16.840.1.113883.4.642.40.41.42.77

This Substance profile represents identifying information about an actual batch of substance (an instance).

Usages:

You can also check for usages in the FHIR IG Statistics

Formal Views of Profile Content

Description Differentials, Snapshots, and other representations.

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Substance 0..* Substance A homogeneous material with a definite composition
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... contained 0..* Resource Contained, inline Resources
... Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url
.... extension:medication-manufacturingBatch S 0..* (Complex) medication-manufacturingBatch
URL: http://hl7.org/fhir/StructureDefinition/medication-manufacturingBatch
.... extension:batch-release-date S 0..* dateTime batch-release-date
URL: http://hl7.org/fhir/uv/pharm-quality/StructureDefinition/Extension-batch-release-date-pq
.... extension:batch-retest-date S 0..* dateTime batch-retest-date
URL: http://hl7.org/fhir/uv/pharm-quality/StructureDefinition/Extension-batch-retest-date-pq
.... extension:manufacturing-process S 0..* Reference(PlanDefinition - Drug PQ) manufacturing-process
URL: http://hl7.org/fhir/uv/pharm-quality/StructureDefinition/Extension-manufacturing-process-pq
.... extension:actual-yield S 0..* Quantity actual-yield
URL: http://hl7.org/fhir/uv/pharm-quality/StructureDefinition/Extension-actual-yield-pq
.... extension:batch-derived-from S 0..* Reference() batch-derived-from
URL: http://hl7.org/fhir/uv/pharm-quality/StructureDefinition/Extension-batch-derived-from-pq
... identifier SΣ 0..* Identifier Unique identifier
... instance ?!Σ 1..1 boolean Is this an instance of a substance or a kind of one
... status ?!SΣ 0..1 code active | inactive | entered-in-error
Binding: FHIRSubstanceStatus (required): A code to indicate if the substance is actively used.
... code Σ 1..1 CodeableReference(SubstanceDefinition) What substance this is
Binding: SubstanceCode (example): Substance codes.

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
Substance.status Base required FHIRSubstanceStatus 📍5.0.0 FHIR Std.
Substance.code Base example Substance Code 📍5.0.0 FHIR Std.

Constraints

Id Grade Path(s) Description Expression
dom-2 error Substance If the resource is contained in another resource, it SHALL NOT contain nested Resources contained.contained.empty()
dom-3 error Substance If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().ofType(canonical) | %resource.descendants().ofType(uri) | %resource.descendants().ofType(url))) or descendants().where(reference = '#').exists() or descendants().where(ofType(canonical) = '#').exists() or descendants().where(ofType(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
dom-4 error Substance If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()
dom-5 error Substance If a resource is contained in another resource, it SHALL NOT have a security label contained.meta.security.empty()
dom-6 best practice Substance A resource should have narrative for robust management text.`div`.exists()
ele-1 error **ALL** elements All FHIR elements must have a @value or children hasValue() or (children().count() > id.count())
ext-1 error **ALL** extensions Must have either extensions or value[x], not both extension.exists() != value.exists()

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Substance Substance
... Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url
.... extension:medication-manufacturingBatch S 0..* (Complex) medication-manufacturingBatch
URL: http://hl7.org/fhir/StructureDefinition/medication-manufacturingBatch
.... extension:batch-release-date S 0..* dateTime batch-release-date
URL: http://hl7.org/fhir/uv/pharm-quality/StructureDefinition/Extension-batch-release-date-pq
.... extension:batch-retest-date S 0..* dateTime batch-retest-date
URL: http://hl7.org/fhir/uv/pharm-quality/StructureDefinition/Extension-batch-retest-date-pq
.... extension:manufacturing-process S 0..* Reference(PlanDefinition - Drug PQ) manufacturing-process
URL: http://hl7.org/fhir/uv/pharm-quality/StructureDefinition/Extension-manufacturing-process-pq
.... extension:actual-yield S 0..* Quantity actual-yield
URL: http://hl7.org/fhir/uv/pharm-quality/StructureDefinition/Extension-actual-yield-pq
.... extension:batch-derived-from S 0..* Reference() batch-derived-from
URL: http://hl7.org/fhir/uv/pharm-quality/StructureDefinition/Extension-batch-derived-from-pq
... identifier S 0..* Identifier Unique identifier
... status S 0..1 code active | inactive | entered-in-error

doco Documentation for this format
NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Substance 0..* Substance A homogeneous material with a definite composition
... id Σ 0..1 id Logical id of this artifact
... meta Σ 0..1 Meta Metadata about the resource
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... text 0..1 Narrative Text summary of the resource, for human interpretation
This profile does not constrain the narrative in regard to content, language, or traceability to data elements
... contained 0..* Resource Contained, inline Resources
... Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url
.... extension:medication-manufacturingBatch S 0..* (Complex) medication-manufacturingBatch
URL: http://hl7.org/fhir/StructureDefinition/medication-manufacturingBatch
.... extension:batch-release-date S 0..* dateTime batch-release-date
URL: http://hl7.org/fhir/uv/pharm-quality/StructureDefinition/Extension-batch-release-date-pq
.... extension:batch-retest-date S 0..* dateTime batch-retest-date
URL: http://hl7.org/fhir/uv/pharm-quality/StructureDefinition/Extension-batch-retest-date-pq
.... extension:manufacturing-process S 0..* Reference(PlanDefinition - Drug PQ) manufacturing-process
URL: http://hl7.org/fhir/uv/pharm-quality/StructureDefinition/Extension-manufacturing-process-pq
.... extension:actual-yield S 0..* Quantity actual-yield
URL: http://hl7.org/fhir/uv/pharm-quality/StructureDefinition/Extension-actual-yield-pq
.... extension:batch-derived-from S 0..* Reference() batch-derived-from
URL: http://hl7.org/fhir/uv/pharm-quality/StructureDefinition/Extension-batch-derived-from-pq
... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored
... identifier SΣ 0..* Identifier Unique identifier
... instance ?!Σ 1..1 boolean Is this an instance of a substance or a kind of one
... status ?!SΣ 0..1 code active | inactive | entered-in-error
Binding: FHIRSubstanceStatus (required): A code to indicate if the substance is actively used.
... category Σ 0..* CodeableConcept What class/type of substance this is
Binding: SubstanceCategoryCodes (extensible): Category or classification of substance.
... code Σ 1..1 CodeableReference(SubstanceDefinition) What substance this is
Binding: SubstanceCode (example): Substance codes.
... description Σ 0..1 markdown Textual description of the substance, comments
... expiry Σ 0..1 dateTime When no longer valid to use
... quantity Σ 0..1 SimpleQuantity(5.0.0) Amount of substance in the package
... ingredient Σ 0..* BackboneElement Composition information about the substance
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
.... quantity Σ 0..1 Ratio Optional amount (concentration)
.... substance[x] Σ 1..1 A component of the substance
Binding: SubstanceCode (example): Substance Ingredient codes.
..... substanceCodeableConcept CodeableConcept
..... substanceReference Reference(Substance)

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
Substance.language Base required All Languages 📍5.0.0 FHIR Std.
Substance.status Base required FHIRSubstanceStatus 📍5.0.0 FHIR Std.
Substance.category Base extensible Substance Category Codes 📍5.0.0 FHIR Std.
Substance.code Base example Substance Code 📍5.0.0 FHIR Std.
Substance.ingredient.​substance[x] Base example Substance Code 📍5.0.0 FHIR Std.

Constraints

Id Grade Path(s) Description Expression
dom-2 error Substance If the resource is contained in another resource, it SHALL NOT contain nested Resources contained.contained.empty()
dom-3 error Substance If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().ofType(canonical) | %resource.descendants().ofType(uri) | %resource.descendants().ofType(url))) or descendants().where(reference = '#').exists() or descendants().where(ofType(canonical) = '#').exists() or descendants().where(ofType(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
dom-4 error Substance If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()
dom-5 error Substance If a resource is contained in another resource, it SHALL NOT have a security label contained.meta.security.empty()
dom-6 best practice Substance A resource should have narrative for robust management text.`div`.exists()
ele-1 error **ALL** elements All FHIR elements must have a @value or children hasValue() or (children().count() > id.count())
ext-1 error **ALL** extensions Must have either extensions or value[x], not both extension.exists() != value.exists()

Key Elements View

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Substance 0..* Substance A homogeneous material with a definite composition
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... contained 0..* Resource Contained, inline Resources
... Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url
.... extension:medication-manufacturingBatch S 0..* (Complex) medication-manufacturingBatch
URL: http://hl7.org/fhir/StructureDefinition/medication-manufacturingBatch
.... extension:batch-release-date S 0..* dateTime batch-release-date
URL: http://hl7.org/fhir/uv/pharm-quality/StructureDefinition/Extension-batch-release-date-pq
.... extension:batch-retest-date S 0..* dateTime batch-retest-date
URL: http://hl7.org/fhir/uv/pharm-quality/StructureDefinition/Extension-batch-retest-date-pq
.... extension:manufacturing-process S 0..* Reference(PlanDefinition - Drug PQ) manufacturing-process
URL: http://hl7.org/fhir/uv/pharm-quality/StructureDefinition/Extension-manufacturing-process-pq
.... extension:actual-yield S 0..* Quantity actual-yield
URL: http://hl7.org/fhir/uv/pharm-quality/StructureDefinition/Extension-actual-yield-pq
.... extension:batch-derived-from S 0..* Reference() batch-derived-from
URL: http://hl7.org/fhir/uv/pharm-quality/StructureDefinition/Extension-batch-derived-from-pq
... identifier SΣ 0..* Identifier Unique identifier
... instance ?!Σ 1..1 boolean Is this an instance of a substance or a kind of one
... status ?!SΣ 0..1 code active | inactive | entered-in-error
Binding: FHIRSubstanceStatus (required): A code to indicate if the substance is actively used.
... code Σ 1..1 CodeableReference(SubstanceDefinition) What substance this is
Binding: SubstanceCode (example): Substance codes.

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
Substance.status Base required FHIRSubstanceStatus 📍5.0.0 FHIR Std.
Substance.code Base example Substance Code 📍5.0.0 FHIR Std.

Constraints

Id Grade Path(s) Description Expression
dom-2 error Substance If the resource is contained in another resource, it SHALL NOT contain nested Resources contained.contained.empty()
dom-3 error Substance If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().ofType(canonical) | %resource.descendants().ofType(uri) | %resource.descendants().ofType(url))) or descendants().where(reference = '#').exists() or descendants().where(ofType(canonical) = '#').exists() or descendants().where(ofType(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
dom-4 error Substance If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()
dom-5 error Substance If a resource is contained in another resource, it SHALL NOT have a security label contained.meta.security.empty()
dom-6 best practice Substance A resource should have narrative for robust management text.`div`.exists()
ele-1 error **ALL** elements All FHIR elements must have a @value or children hasValue() or (children().count() > id.count())
ext-1 error **ALL** extensions Must have either extensions or value[x], not both extension.exists() != value.exists()

Differential View

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Substance Substance
... Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url
.... extension:medication-manufacturingBatch S 0..* (Complex) medication-manufacturingBatch
URL: http://hl7.org/fhir/StructureDefinition/medication-manufacturingBatch
.... extension:batch-release-date S 0..* dateTime batch-release-date
URL: http://hl7.org/fhir/uv/pharm-quality/StructureDefinition/Extension-batch-release-date-pq
.... extension:batch-retest-date S 0..* dateTime batch-retest-date
URL: http://hl7.org/fhir/uv/pharm-quality/StructureDefinition/Extension-batch-retest-date-pq
.... extension:manufacturing-process S 0..* Reference(PlanDefinition - Drug PQ) manufacturing-process
URL: http://hl7.org/fhir/uv/pharm-quality/StructureDefinition/Extension-manufacturing-process-pq
.... extension:actual-yield S 0..* Quantity actual-yield
URL: http://hl7.org/fhir/uv/pharm-quality/StructureDefinition/Extension-actual-yield-pq
.... extension:batch-derived-from S 0..* Reference() batch-derived-from
URL: http://hl7.org/fhir/uv/pharm-quality/StructureDefinition/Extension-batch-derived-from-pq
... identifier S 0..* Identifier Unique identifier
... status S 0..1 code active | inactive | entered-in-error

doco Documentation for this format

Snapshot ViewView

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Substance 0..* Substance A homogeneous material with a definite composition
... id Σ 0..1 id Logical id of this artifact
... meta Σ 0..1 Meta Metadata about the resource
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... text 0..1 Narrative Text summary of the resource, for human interpretation
This profile does not constrain the narrative in regard to content, language, or traceability to data elements
... contained 0..* Resource Contained, inline Resources
... Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url
.... extension:medication-manufacturingBatch S 0..* (Complex) medication-manufacturingBatch
URL: http://hl7.org/fhir/StructureDefinition/medication-manufacturingBatch
.... extension:batch-release-date S 0..* dateTime batch-release-date
URL: http://hl7.org/fhir/uv/pharm-quality/StructureDefinition/Extension-batch-release-date-pq
.... extension:batch-retest-date S 0..* dateTime batch-retest-date
URL: http://hl7.org/fhir/uv/pharm-quality/StructureDefinition/Extension-batch-retest-date-pq
.... extension:manufacturing-process S 0..* Reference(PlanDefinition - Drug PQ) manufacturing-process
URL: http://hl7.org/fhir/uv/pharm-quality/StructureDefinition/Extension-manufacturing-process-pq
.... extension:actual-yield S 0..* Quantity actual-yield
URL: http://hl7.org/fhir/uv/pharm-quality/StructureDefinition/Extension-actual-yield-pq
.... extension:batch-derived-from S 0..* Reference() batch-derived-from
URL: http://hl7.org/fhir/uv/pharm-quality/StructureDefinition/Extension-batch-derived-from-pq
... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored
... identifier SΣ 0..* Identifier Unique identifier
... instance ?!Σ 1..1 boolean Is this an instance of a substance or a kind of one
... status ?!SΣ 0..1 code active | inactive | entered-in-error
Binding: FHIRSubstanceStatus (required): A code to indicate if the substance is actively used.
... category Σ 0..* CodeableConcept What class/type of substance this is
Binding: SubstanceCategoryCodes (extensible): Category or classification of substance.
... code Σ 1..1 CodeableReference(SubstanceDefinition) What substance this is
Binding: SubstanceCode (example): Substance codes.
... description Σ 0..1 markdown Textual description of the substance, comments
... expiry Σ 0..1 dateTime When no longer valid to use
... quantity Σ 0..1 SimpleQuantity(5.0.0) Amount of substance in the package
... ingredient Σ 0..* BackboneElement Composition information about the substance
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
.... quantity Σ 0..1 Ratio Optional amount (concentration)
.... substance[x] Σ 1..1 A component of the substance
Binding: SubstanceCode (example): Substance Ingredient codes.
..... substanceCodeableConcept CodeableConcept
..... substanceReference Reference(Substance)

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
Substance.language Base required All Languages 📍5.0.0 FHIR Std.
Substance.status Base required FHIRSubstanceStatus 📍5.0.0 FHIR Std.
Substance.category Base extensible Substance Category Codes 📍5.0.0 FHIR Std.
Substance.code Base example Substance Code 📍5.0.0 FHIR Std.
Substance.ingredient.​substance[x] Base example Substance Code 📍5.0.0 FHIR Std.

Constraints

Id Grade Path(s) Description Expression
dom-2 error Substance If the resource is contained in another resource, it SHALL NOT contain nested Resources contained.contained.empty()
dom-3 error Substance If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().ofType(canonical) | %resource.descendants().ofType(uri) | %resource.descendants().ofType(url))) or descendants().where(reference = '#').exists() or descendants().where(ofType(canonical) = '#').exists() or descendants().where(ofType(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
dom-4 error Substance If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()
dom-5 error Substance If a resource is contained in another resource, it SHALL NOT have a security label contained.meta.security.empty()
dom-6 best practice Substance A resource should have narrative for robust management text.`div`.exists()
ele-1 error **ALL** elements All FHIR elements must have a @value or children hasValue() or (children().count() > id.count())
ext-1 error **ALL** extensions Must have either extensions or value[x], not both extension.exists() != value.exists()

 

Other representations of profile: CSV, Excel, Schematron