Integrated Campaign Registry (ICR) Implementation Guide
0.1.0 - ci-build International flag

Integrated Campaign Registry (ICR) Implementation Guide - Local Development build (v0.1.0) built by the FHIR (HL7® FHIR® Standard) Build Tools. See the Directory of published versions

Resource Profile: ICR Supply Delivery

Official URL: https://icr.healthcampaigns.org/StructureDefinition/ICRSupplyDelivery Version: 0.1.0
Draft as of 2026-08-07 Computable Name: ICRSupplyDelivery

A commodity distribution event — ITNs, IRS consumables, vitamin A capsules — GS1 GTIN-coded where applicable, with the required record origin.

Usages:

You can also check for usages in the FHIR IG Statistics

Formal Views of Profile Content

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

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. SupplyDelivery 0..* SupplyDelivery Delivery of bulk Supplies
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... Slices for extension 1..* Extension Extension
Slice: Unordered, Open by value:url
.... extension:recordOrigin S 1..1 code Record Origin
URL: https://icr.healthcampaigns.org/StructureDefinition/record-origin
Binding: ICR Record Origin (required)
.... extension:stockAccountability S 0..1 (Complex) Vial/commodity accountability & wastage — received/used/remaining/not-usable/returned, concordance, VVM (v0.20.0)
URL: https://icr.healthcampaigns.org/StructureDefinition/stock-accountability
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
... suppliedItem S 0..1 BackboneElement The item that is delivered or supplied
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
.... quantity S 0..1 SimpleQuantity(4.0.1) Amount dispensed
.... Slices for item[x] S 0..1 Drug commodity → WHO ATC (shares the ICRMedicationAdministration code); physical commodity → GS1 GTIN where applicable, else text
Slice: Unordered, Open by type:$this
Binding: SNOMEDCTSupplyItem (example): The item that was delivered.
..... itemCodeableConcept CodeableConcept
..... itemReference Reference(Medication | Substance | Device)
..... item[x]:itemCodeableConcept 0..1 CodeableConcept Medication, Substance, or Device supplied
Binding: ICR Supplied Item (extensible)
... destination S 0..1 Reference(Location) Where the commodity went (post, household)

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
SupplyDelivery.status Base required SupplyDeliveryStatus 📍4.0.1 FHIR Std.
SupplyDelivery.suppliedItem.​item[x] Base example SNOMED CT Supply Item 📍4.0.1 FHIR Std.
SupplyDelivery.suppliedItem.​item[x]:itemCodeableConcept Base extensible ICR Supplied Item 📦0.1.0 This IG

Constraints

Id Grade Path(s) Description Expression
dom-2 error SupplyDelivery If the resource is contained in another resource, it SHALL NOT contain nested Resources contained.contained.empty()
dom-3 error SupplyDelivery 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().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
dom-4 error SupplyDelivery 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 SupplyDelivery If a resource is contained in another resource, it SHALL NOT have a security label contained.meta.security.empty()
dom-6 best practice SupplyDelivery 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()

This structure is derived from SupplyDelivery

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. SupplyDelivery 0..* SupplyDelivery Delivery of bulk Supplies
... Slices for extension 1..* Extension Extension
Slice: Unordered, Open by value:url
.... extension:recordOrigin S 1..1 code Record Origin
URL: https://icr.healthcampaigns.org/StructureDefinition/record-origin
Binding: ICR Record Origin (required)
.... extension:stockAccountability S 0..1 (Complex) Vial/commodity accountability & wastage — received/used/remaining/not-usable/returned, concordance, VVM (v0.20.0)
URL: https://icr.healthcampaigns.org/StructureDefinition/stock-accountability
... status S 0..1 code in-progress | completed | abandoned | entered-in-error
... suppliedItem S 0..1 BackboneElement The item that is delivered or supplied
.... quantity S 0..1 SimpleQuantity(4.0.1) Amount dispensed
.... Slices for item[x] S 0..1 CodeableConcept, Reference(Medication | Substance | Device) Drug commodity → WHO ATC (shares the ICRMedicationAdministration code); physical commodity → GS1 GTIN where applicable, else text
Slice: Unordered, Open by type:$this
..... item[x]:itemCodeableConcept 0..1 CodeableConcept Medication, Substance, or Device supplied
Binding: ICR Supplied Item (extensible)

doco Documentation for this format

Terminology Bindings (Differential)

Path Status Usage ValueSet Version Source
SupplyDelivery.suppliedItem.​item[x]:itemCodeableConcept Base extensible ICR Supplied Item 📦0.1.0 This IG
NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. SupplyDelivery 0..* SupplyDelivery Delivery of bulk Supplies
... 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 1..* Extension Extension
Slice: Unordered, Open by value:url
.... extension:recordOrigin S 1..1 code Record Origin
URL: https://icr.healthcampaigns.org/StructureDefinition/record-origin
Binding: ICR Record Origin (required)
.... extension:stockAccountability S 0..1 (Complex) Vial/commodity accountability & wastage — received/used/remaining/not-usable/returned, concordance, VVM (v0.20.0)
URL: https://icr.healthcampaigns.org/StructureDefinition/stock-accountability
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
... identifier 0..* Identifier External identifier
... basedOn Σ 0..* Reference(SupplyRequest) Fulfills plan, proposal or order
... partOf Σ 0..* Reference(SupplyDelivery | Contract) Part of referenced event
... status ?!SΣ 0..1 code in-progress | completed | abandoned | entered-in-error
Binding: SupplyDeliveryStatus (required): Status of the supply delivery.
... patient 0..1 Reference(Patient) Patient for whom the item is supplied
... type 0..1 CodeableConcept Category of dispense event
Binding: SupplyItemType (required): The type of supply dispense.
... suppliedItem S 0..1 BackboneElement The item that is delivered or supplied
.... 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 S 0..1 SimpleQuantity(4.0.1) Amount dispensed
.... Slices for item[x] S 0..1 Drug commodity → WHO ATC (shares the ICRMedicationAdministration code); physical commodity → GS1 GTIN where applicable, else text
Slice: Unordered, Open by type:$this
Binding: SNOMEDCTSupplyItem (example): The item that was delivered.
..... itemCodeableConcept CodeableConcept
..... itemReference Reference(Medication | Substance | Device)
..... item[x]:itemCodeableConcept 0..1 CodeableConcept Medication, Substance, or Device supplied
Binding: ICR Supplied Item (extensible)
... occurrence[x] Σ 0..1 When event occurred
.... occurrenceDateTime dateTime
.... occurrencePeriod Period
.... occurrenceTiming Timing
... supplier 0..1 Reference(Practitioner | PractitionerRole | Organization) Dispenser
... destination S 0..1 Reference(Location) Where the commodity went (post, household)
... receiver 0..* Reference(Practitioner | PractitionerRole) Who collected the Supply

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
SupplyDelivery.language Base preferred Common Languages 📍4.0.1 FHIR Std.
SupplyDelivery.status Base required SupplyDeliveryStatus 📍4.0.1 FHIR Std.
SupplyDelivery.type Base required Supply Item Type 📍4.0.1 FHIR Std.
SupplyDelivery.suppliedItem.​item[x] Base example SNOMED CT Supply Item 📍4.0.1 FHIR Std.
SupplyDelivery.suppliedItem.​item[x]:itemCodeableConcept Base extensible ICR Supplied Item 📦0.1.0 This IG

Constraints

Id Grade Path(s) Description Expression
dom-2 error SupplyDelivery If the resource is contained in another resource, it SHALL NOT contain nested Resources contained.contained.empty()
dom-3 error SupplyDelivery 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().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
dom-4 error SupplyDelivery 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 SupplyDelivery If a resource is contained in another resource, it SHALL NOT have a security label contained.meta.security.empty()
dom-6 best practice SupplyDelivery 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()

This structure is derived from SupplyDelivery

Summary

Mandatory: 2 elements
Must-Support: 7 elements

Extensions

This structure refers to these extensions:

Slices

This structure defines the following Slices:

  • The element 1 is sliced based on the value of SupplyDelivery.suppliedItem.item[x]

Key Elements View

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. SupplyDelivery 0..* SupplyDelivery Delivery of bulk Supplies
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... Slices for extension 1..* Extension Extension
Slice: Unordered, Open by value:url
.... extension:recordOrigin S 1..1 code Record Origin
URL: https://icr.healthcampaigns.org/StructureDefinition/record-origin
Binding: ICR Record Origin (required)
.... extension:stockAccountability S 0..1 (Complex) Vial/commodity accountability & wastage — received/used/remaining/not-usable/returned, concordance, VVM (v0.20.0)
URL: https://icr.healthcampaigns.org/StructureDefinition/stock-accountability
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
... suppliedItem S 0..1 BackboneElement The item that is delivered or supplied
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
.... quantity S 0..1 SimpleQuantity(4.0.1) Amount dispensed
.... Slices for item[x] S 0..1 Drug commodity → WHO ATC (shares the ICRMedicationAdministration code); physical commodity → GS1 GTIN where applicable, else text
Slice: Unordered, Open by type:$this
Binding: SNOMEDCTSupplyItem (example): The item that was delivered.
..... itemCodeableConcept CodeableConcept
..... itemReference Reference(Medication | Substance | Device)
..... item[x]:itemCodeableConcept 0..1 CodeableConcept Medication, Substance, or Device supplied
Binding: ICR Supplied Item (extensible)
... destination S 0..1 Reference(Location) Where the commodity went (post, household)

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
SupplyDelivery.status Base required SupplyDeliveryStatus 📍4.0.1 FHIR Std.
SupplyDelivery.suppliedItem.​item[x] Base example SNOMED CT Supply Item 📍4.0.1 FHIR Std.
SupplyDelivery.suppliedItem.​item[x]:itemCodeableConcept Base extensible ICR Supplied Item 📦0.1.0 This IG

Constraints

Id Grade Path(s) Description Expression
dom-2 error SupplyDelivery If the resource is contained in another resource, it SHALL NOT contain nested Resources contained.contained.empty()
dom-3 error SupplyDelivery 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().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
dom-4 error SupplyDelivery 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 SupplyDelivery If a resource is contained in another resource, it SHALL NOT have a security label contained.meta.security.empty()
dom-6 best practice SupplyDelivery 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

This structure is derived from SupplyDelivery

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. SupplyDelivery 0..* SupplyDelivery Delivery of bulk Supplies
... Slices for extension 1..* Extension Extension
Slice: Unordered, Open by value:url
.... extension:recordOrigin S 1..1 code Record Origin
URL: https://icr.healthcampaigns.org/StructureDefinition/record-origin
Binding: ICR Record Origin (required)
.... extension:stockAccountability S 0..1 (Complex) Vial/commodity accountability & wastage — received/used/remaining/not-usable/returned, concordance, VVM (v0.20.0)
URL: https://icr.healthcampaigns.org/StructureDefinition/stock-accountability
... status S 0..1 code in-progress | completed | abandoned | entered-in-error
... suppliedItem S 0..1 BackboneElement The item that is delivered or supplied
.... quantity S 0..1 SimpleQuantity(4.0.1) Amount dispensed
.... Slices for item[x] S 0..1 CodeableConcept, Reference(Medication | Substance | Device) Drug commodity → WHO ATC (shares the ICRMedicationAdministration code); physical commodity → GS1 GTIN where applicable, else text
Slice: Unordered, Open by type:$this
..... item[x]:itemCodeableConcept 0..1 CodeableConcept Medication, Substance, or Device supplied
Binding: ICR Supplied Item (extensible)

doco Documentation for this format

Terminology Bindings (Differential)

Path Status Usage ValueSet Version Source
SupplyDelivery.suppliedItem.​item[x]:itemCodeableConcept Base extensible ICR Supplied Item 📦0.1.0 This IG

Snapshot View

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. SupplyDelivery 0..* SupplyDelivery Delivery of bulk Supplies
... 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 1..* Extension Extension
Slice: Unordered, Open by value:url
.... extension:recordOrigin S 1..1 code Record Origin
URL: https://icr.healthcampaigns.org/StructureDefinition/record-origin
Binding: ICR Record Origin (required)
.... extension:stockAccountability S 0..1 (Complex) Vial/commodity accountability & wastage — received/used/remaining/not-usable/returned, concordance, VVM (v0.20.0)
URL: https://icr.healthcampaigns.org/StructureDefinition/stock-accountability
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
... identifier 0..* Identifier External identifier
... basedOn Σ 0..* Reference(SupplyRequest) Fulfills plan, proposal or order
... partOf Σ 0..* Reference(SupplyDelivery | Contract) Part of referenced event
... status ?!SΣ 0..1 code in-progress | completed | abandoned | entered-in-error
Binding: SupplyDeliveryStatus (required): Status of the supply delivery.
... patient 0..1 Reference(Patient) Patient for whom the item is supplied
... type 0..1 CodeableConcept Category of dispense event
Binding: SupplyItemType (required): The type of supply dispense.
... suppliedItem S 0..1 BackboneElement The item that is delivered or supplied
.... 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 S 0..1 SimpleQuantity(4.0.1) Amount dispensed
.... Slices for item[x] S 0..1 Drug commodity → WHO ATC (shares the ICRMedicationAdministration code); physical commodity → GS1 GTIN where applicable, else text
Slice: Unordered, Open by type:$this
Binding: SNOMEDCTSupplyItem (example): The item that was delivered.
..... itemCodeableConcept CodeableConcept
..... itemReference Reference(Medication | Substance | Device)
..... item[x]:itemCodeableConcept 0..1 CodeableConcept Medication, Substance, or Device supplied
Binding: ICR Supplied Item (extensible)
... occurrence[x] Σ 0..1 When event occurred
.... occurrenceDateTime dateTime
.... occurrencePeriod Period
.... occurrenceTiming Timing
... supplier 0..1 Reference(Practitioner | PractitionerRole | Organization) Dispenser
... destination S 0..1 Reference(Location) Where the commodity went (post, household)
... receiver 0..* Reference(Practitioner | PractitionerRole) Who collected the Supply

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
SupplyDelivery.language Base preferred Common Languages 📍4.0.1 FHIR Std.
SupplyDelivery.status Base required SupplyDeliveryStatus 📍4.0.1 FHIR Std.
SupplyDelivery.type Base required Supply Item Type 📍4.0.1 FHIR Std.
SupplyDelivery.suppliedItem.​item[x] Base example SNOMED CT Supply Item 📍4.0.1 FHIR Std.
SupplyDelivery.suppliedItem.​item[x]:itemCodeableConcept Base extensible ICR Supplied Item 📦0.1.0 This IG

Constraints

Id Grade Path(s) Description Expression
dom-2 error SupplyDelivery If the resource is contained in another resource, it SHALL NOT contain nested Resources contained.contained.empty()
dom-3 error SupplyDelivery 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().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
dom-4 error SupplyDelivery 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 SupplyDelivery If a resource is contained in another resource, it SHALL NOT have a security label contained.meta.security.empty()
dom-6 best practice SupplyDelivery 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()

This structure is derived from SupplyDelivery

Summary

Mandatory: 2 elements
Must-Support: 7 elements

Extensions

This structure refers to these extensions:

Slices

This structure defines the following Slices:

  • The element 1 is sliced based on the value of SupplyDelivery.suppliedItem.item[x]

 

Other representations of profile: CSV, Excel, Schematron