SMART Product Catalog
0.1.0 - ci-build

SMART Product Catalog, published by WHO. This guide is not an authorized publication; it is the continuous build for version 0.1.0 built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/WorldHealthOrganization/smart-pcmt/tree/3/merge and changes regularly. See the Directory of published versions

Logical Model: TradeProduct

Official URL: http://smart.who.int/pcmt/StructureDefinition/TradeProductModel Version: 0.1.0
Draft as of 2025-01-30 Computable Name: TradeProductModel

A Trade Product represents a physical item or set of items. A trade product represents something that can be held in inventory, ordered, exchanged, dispensed or other utilized within the health system, clinical and supply chain workflows.

Usage:

Formal Views of Profile Content

Description of Profiles, Differentials, Snapshots and how the different presentations work.

NameFlagsCard.TypeDescription & Constraintsdoco
.. TradeProductModel 0..* Base TradeProduct
Instances of this logical model can be the target of a Reference
... identifier 0..* Identifier Identifier for the trade product
... tradeProductName 1..* BackboneElement The name of the trade product
ele-1: All FHIR elements must have a @value or children
.... @id 0..1 id Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
ele-1: All FHIR elements must have a @value or children
ext-1: Must have either extensions or value[x], not both
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
ele-1: All FHIR elements must have a @value or children
ext-1: Must have either extensions or value[x], not both
.... nameType 1..1 code The type of name e.g. 'official' or 'user-friendly'
Binding: Name Type for a Trade Product (extensible)
.... name 1..1 string The name of the trade product
... description 0..1 string The description of the product
... status 1..1 code Product status
Binding: Status for a Trade Product (extensible)
... manufacturer 1..1 Reference(mCSD Organization) Manufacturer
... countryOfOrigin 1..1 CodeableConcept The country of origin
... shelfLife 0..1 SimpleQuantity The shelf life of the trade product in days
... unitOfUse 1..1 CodeableConcept The unit in which the generic product is used / counted
... dosageForm 0..1 CodeableConcept The physical form of the medication
... routeOfAdministration 0..* CodeableConcept The route of administration of the medication
... doseQuantity 0..1 SimpleQuantity The number of doses in this package
... strength 0..1 SimpleQuantity The strength of the product e.g. 500 mg
... associatedTradeProduct 0..* BackboneElement Association(s) between a trade product and referenced trade products. Such relationships could be for packaging, representing duplicates/semantic equivalencies between Trade Products, etc
ele-1: All FHIR elements must have a @value or children
.... @id 0..1 id Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
ele-1: All FHIR elements must have a @value or children
ext-1: Must have either extensions or value[x], not both
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
ele-1: All FHIR elements must have a @value or children
ext-1: Must have either extensions or value[x], not both
.... tradeProduct 1..1 Reference(TradeProduct) The generic product characteristics
.... relationship 1..* Coding Relationship
Binding: Trade Product Relationships (extensible)
.... quantity 1..1 Quantity how many units of use of the generic product are in the trade product

doco Documentation for this format

Terminology Bindings

PathConformanceValueSetURI
TradeProductModel.tradeProductName.nameTypeextensiblenameType (a valid code from http://hl7.org/fhir/ValueSet/device-nametype)
http://smart.who.int/pcmt/ValueSet/nameType
from this IG
TradeProductModel.statusextensiblestatus (a valid code from Trade Product and Regulatory Status)
http://smart.who.int/pcmt/ValueSet/status
from this IG
TradeProductModel.associatedTradeProduct.relationshipextensibletradeProductRelationship (a valid code from Trade Product Relationship)
http://smart.who.int/pcmt/ValueSet/tradeProductRelationship
from this IG

Constraints

IdGradePath(s)DetailsRequirements
ele-1error**ALL** elementsAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1error**ALL** extensionsMust have either extensions or value[x], not both
: extension.exists() != value.exists()

This structure is derived from Base

NameFlagsCard.TypeDescription & Constraintsdoco
.. TradeProductModel 0..* Base TradeProduct
Instances of this logical model can be the target of a Reference
... identifier 0..* Identifier Identifier for the trade product
... tradeProductName 1..* BackboneElement The name of the trade product
.... nameType 1..1 code The type of name e.g. 'official' or 'user-friendly'
Binding: Name Type for a Trade Product (extensible)
.... name 1..1 string The name of the trade product
... description 0..1 string The description of the product
... status 1..1 code Product status
Binding: Status for a Trade Product (extensible)
... manufacturer 1..1 Reference(mCSD Organization) Manufacturer
... countryOfOrigin 1..1 CodeableConcept The country of origin
... shelfLife 0..1 SimpleQuantity The shelf life of the trade product in days
... unitOfUse 1..1 CodeableConcept The unit in which the generic product is used / counted
... dosageForm 0..1 CodeableConcept The physical form of the medication
... routeOfAdministration 0..* CodeableConcept The route of administration of the medication
... doseQuantity 0..1 SimpleQuantity The number of doses in this package
... strength 0..1 SimpleQuantity The strength of the product e.g. 500 mg
... associatedTradeProduct 0..* BackboneElement Association(s) between a trade product and referenced trade products. Such relationships could be for packaging, representing duplicates/semantic equivalencies between Trade Products, etc
.... tradeProduct 1..1 Reference(TradeProduct) The generic product characteristics
.... relationship 1..* Coding Relationship
Binding: Trade Product Relationships (extensible)
.... quantity 1..1 Quantity how many units of use of the generic product are in the trade product

doco Documentation for this format

Terminology Bindings (Differential)

PathConformanceValueSetURI
TradeProductModel.tradeProductName.nameTypeextensiblenameType (a valid code from http://hl7.org/fhir/ValueSet/device-nametype)
http://smart.who.int/pcmt/ValueSet/nameType
from this IG
TradeProductModel.statusextensiblestatus (a valid code from Trade Product and Regulatory Status)
http://smart.who.int/pcmt/ValueSet/status
from this IG
TradeProductModel.associatedTradeProduct.relationshipextensibletradeProductRelationship (a valid code from Trade Product Relationship)
http://smart.who.int/pcmt/ValueSet/tradeProductRelationship
from this IG
NameFlagsCard.TypeDescription & Constraintsdoco
.. TradeProductModel 0..* Base TradeProduct
Instances of this logical model can be the target of a Reference
... identifier 0..* Identifier Identifier for the trade product
... tradeProductName 1..* BackboneElement The name of the trade product
.... @id 0..1 id Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
.... nameType 1..1 code The type of name e.g. 'official' or 'user-friendly'
Binding: Name Type for a Trade Product (extensible)
.... name 1..1 string The name of the trade product
... description 0..1 string The description of the product
... status 1..1 code Product status
Binding: Status for a Trade Product (extensible)
... manufacturer 1..1 Reference(mCSD Organization) Manufacturer
... countryOfOrigin 1..1 CodeableConcept The country of origin
... shelfLife 0..1 SimpleQuantity The shelf life of the trade product in days
... unitOfUse 1..1 CodeableConcept The unit in which the generic product is used / counted
... dosageForm 0..1 CodeableConcept The physical form of the medication
... routeOfAdministration 0..* CodeableConcept The route of administration of the medication
... doseQuantity 0..1 SimpleQuantity The number of doses in this package
... strength 0..1 SimpleQuantity The strength of the product e.g. 500 mg
... associatedTradeProduct 0..* BackboneElement Association(s) between a trade product and referenced trade products. Such relationships could be for packaging, representing duplicates/semantic equivalencies between Trade Products, etc
.... @id 0..1 id Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
.... tradeProduct 1..1 Reference(TradeProduct) The generic product characteristics
.... relationship 1..* Coding Relationship
Binding: Trade Product Relationships (extensible)
.... quantity 1..1 Quantity how many units of use of the generic product are in the trade product

doco Documentation for this format

Terminology Bindings

PathConformanceValueSetURI
TradeProductModel.tradeProductName.nameTypeextensiblenameType (a valid code from http://hl7.org/fhir/ValueSet/device-nametype)
http://smart.who.int/pcmt/ValueSet/nameType
from this IG
TradeProductModel.statusextensiblestatus (a valid code from Trade Product and Regulatory Status)
http://smart.who.int/pcmt/ValueSet/status
from this IG
TradeProductModel.associatedTradeProduct.relationshipextensibletradeProductRelationship (a valid code from Trade Product Relationship)
http://smart.who.int/pcmt/ValueSet/tradeProductRelationship
from this IG

Constraints

IdGradePath(s)DetailsRequirements
ele-1error**ALL** elementsAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1error**ALL** extensionsMust have either extensions or value[x], not both
: extension.exists() != value.exists()

Key Elements View

NameFlagsCard.TypeDescription & Constraintsdoco
.. TradeProductModel 0..* Base TradeProduct
Instances of this logical model can be the target of a Reference
... identifier 0..* Identifier Identifier for the trade product
... tradeProductName 1..* BackboneElement The name of the trade product
ele-1: All FHIR elements must have a @value or children
.... @id 0..1 id Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
ele-1: All FHIR elements must have a @value or children
ext-1: Must have either extensions or value[x], not both
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
ele-1: All FHIR elements must have a @value or children
ext-1: Must have either extensions or value[x], not both
.... nameType 1..1 code The type of name e.g. 'official' or 'user-friendly'
Binding: Name Type for a Trade Product (extensible)
.... name 1..1 string The name of the trade product
... description 0..1 string The description of the product
... status 1..1 code Product status
Binding: Status for a Trade Product (extensible)
... manufacturer 1..1 Reference(mCSD Organization) Manufacturer
... countryOfOrigin 1..1 CodeableConcept The country of origin
... shelfLife 0..1 SimpleQuantity The shelf life of the trade product in days
... unitOfUse 1..1 CodeableConcept The unit in which the generic product is used / counted
... dosageForm 0..1 CodeableConcept The physical form of the medication
... routeOfAdministration 0..* CodeableConcept The route of administration of the medication
... doseQuantity 0..1 SimpleQuantity The number of doses in this package
... strength 0..1 SimpleQuantity The strength of the product e.g. 500 mg
... associatedTradeProduct 0..* BackboneElement Association(s) between a trade product and referenced trade products. Such relationships could be for packaging, representing duplicates/semantic equivalencies between Trade Products, etc
ele-1: All FHIR elements must have a @value or children
.... @id 0..1 id Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
ele-1: All FHIR elements must have a @value or children
ext-1: Must have either extensions or value[x], not both
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
ele-1: All FHIR elements must have a @value or children
ext-1: Must have either extensions or value[x], not both
.... tradeProduct 1..1 Reference(TradeProduct) The generic product characteristics
.... relationship 1..* Coding Relationship
Binding: Trade Product Relationships (extensible)
.... quantity 1..1 Quantity how many units of use of the generic product are in the trade product

doco Documentation for this format

Terminology Bindings

PathConformanceValueSetURI
TradeProductModel.tradeProductName.nameTypeextensiblenameType (a valid code from http://hl7.org/fhir/ValueSet/device-nametype)
http://smart.who.int/pcmt/ValueSet/nameType
from this IG
TradeProductModel.statusextensiblestatus (a valid code from Trade Product and Regulatory Status)
http://smart.who.int/pcmt/ValueSet/status
from this IG
TradeProductModel.associatedTradeProduct.relationshipextensibletradeProductRelationship (a valid code from Trade Product Relationship)
http://smart.who.int/pcmt/ValueSet/tradeProductRelationship
from this IG

Constraints

IdGradePath(s)DetailsRequirements
ele-1error**ALL** elementsAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1error**ALL** extensionsMust have either extensions or value[x], not both
: extension.exists() != value.exists()

Differential View

This structure is derived from Base

NameFlagsCard.TypeDescription & Constraintsdoco
.. TradeProductModel 0..* Base TradeProduct
Instances of this logical model can be the target of a Reference
... identifier 0..* Identifier Identifier for the trade product
... tradeProductName 1..* BackboneElement The name of the trade product
.... nameType 1..1 code The type of name e.g. 'official' or 'user-friendly'
Binding: Name Type for a Trade Product (extensible)
.... name 1..1 string The name of the trade product
... description 0..1 string The description of the product
... status 1..1 code Product status
Binding: Status for a Trade Product (extensible)
... manufacturer 1..1 Reference(mCSD Organization) Manufacturer
... countryOfOrigin 1..1 CodeableConcept The country of origin
... shelfLife 0..1 SimpleQuantity The shelf life of the trade product in days
... unitOfUse 1..1 CodeableConcept The unit in which the generic product is used / counted
... dosageForm 0..1 CodeableConcept The physical form of the medication
... routeOfAdministration 0..* CodeableConcept The route of administration of the medication
... doseQuantity 0..1 SimpleQuantity The number of doses in this package
... strength 0..1 SimpleQuantity The strength of the product e.g. 500 mg
... associatedTradeProduct 0..* BackboneElement Association(s) between a trade product and referenced trade products. Such relationships could be for packaging, representing duplicates/semantic equivalencies between Trade Products, etc
.... tradeProduct 1..1 Reference(TradeProduct) The generic product characteristics
.... relationship 1..* Coding Relationship
Binding: Trade Product Relationships (extensible)
.... quantity 1..1 Quantity how many units of use of the generic product are in the trade product

doco Documentation for this format

Terminology Bindings (Differential)

PathConformanceValueSetURI
TradeProductModel.tradeProductName.nameTypeextensiblenameType (a valid code from http://hl7.org/fhir/ValueSet/device-nametype)
http://smart.who.int/pcmt/ValueSet/nameType
from this IG
TradeProductModel.statusextensiblestatus (a valid code from Trade Product and Regulatory Status)
http://smart.who.int/pcmt/ValueSet/status
from this IG
TradeProductModel.associatedTradeProduct.relationshipextensibletradeProductRelationship (a valid code from Trade Product Relationship)
http://smart.who.int/pcmt/ValueSet/tradeProductRelationship
from this IG

Snapshot View

NameFlagsCard.TypeDescription & Constraintsdoco
.. TradeProductModel 0..* Base TradeProduct
Instances of this logical model can be the target of a Reference
... identifier 0..* Identifier Identifier for the trade product
... tradeProductName 1..* BackboneElement The name of the trade product
.... @id 0..1 id Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
.... nameType 1..1 code The type of name e.g. 'official' or 'user-friendly'
Binding: Name Type for a Trade Product (extensible)
.... name 1..1 string The name of the trade product
... description 0..1 string The description of the product
... status 1..1 code Product status
Binding: Status for a Trade Product (extensible)
... manufacturer 1..1 Reference(mCSD Organization) Manufacturer
... countryOfOrigin 1..1 CodeableConcept The country of origin
... shelfLife 0..1 SimpleQuantity The shelf life of the trade product in days
... unitOfUse 1..1 CodeableConcept The unit in which the generic product is used / counted
... dosageForm 0..1 CodeableConcept The physical form of the medication
... routeOfAdministration 0..* CodeableConcept The route of administration of the medication
... doseQuantity 0..1 SimpleQuantity The number of doses in this package
... strength 0..1 SimpleQuantity The strength of the product e.g. 500 mg
... associatedTradeProduct 0..* BackboneElement Association(s) between a trade product and referenced trade products. Such relationships could be for packaging, representing duplicates/semantic equivalencies between Trade Products, etc
.... @id 0..1 id Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
.... tradeProduct 1..1 Reference(TradeProduct) The generic product characteristics
.... relationship 1..* Coding Relationship
Binding: Trade Product Relationships (extensible)
.... quantity 1..1 Quantity how many units of use of the generic product are in the trade product

doco Documentation for this format

Terminology Bindings

PathConformanceValueSetURI
TradeProductModel.tradeProductName.nameTypeextensiblenameType (a valid code from http://hl7.org/fhir/ValueSet/device-nametype)
http://smart.who.int/pcmt/ValueSet/nameType
from this IG
TradeProductModel.statusextensiblestatus (a valid code from Trade Product and Regulatory Status)
http://smart.who.int/pcmt/ValueSet/status
from this IG
TradeProductModel.associatedTradeProduct.relationshipextensibletradeProductRelationship (a valid code from Trade Product Relationship)
http://smart.who.int/pcmt/ValueSet/tradeProductRelationship
from this IG

Constraints

IdGradePath(s)DetailsRequirements
ele-1error**ALL** elementsAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1error**ALL** extensionsMust have either extensions or value[x], not both
: extension.exists() != value.exists()

 

Other representations of profile: CSV, Excel