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 Distribution

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

Last-mile distribution of a commodity to the people it serves — ITNs to a household, consumables handed to a community. The COVERAGE-bearing supply event: per-capita measures (1 net per 2 household members) join its quantity to the recipient delivery unit's size. Distinct from ICRSupplyMovement (node-to-node logistics, stock-bearing) — the split keeps coverage CQL from double-counting stock movements. Deliberately carries no stock-accountability ledger: a distribution is not a stock event. Structure-applied consumables (IRS insecticide) are NOT distributions — the spray Task is the event (§6.4) and consumption rides the movement ledger.

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:campaign S 0..1 Reference(ICR Campaign) The campaign (round) this distribution belongs to; per-round queries stay independent of Task wiring
URL: https://icr.healthcampaigns.org/StructureDefinition/campaign
.... extension:recordOrigin S 1..1 code Record Origin
URL: https://icr.healthcampaigns.org/StructureDefinition/record-origin
Binding: ICR Record Origin (required)
.... extension:recipient S 0..1 Reference(ICR Delivery Unit (Household / Community / School Cohort) | ICR Patient (Beneficiary / Registered Individual)) Who received it — the delivery-unit Group (household, community, school cohort) or a registered person. The direct join per-capita coverage computes against
URL: https://icr.healthcampaigns.org/StructureDefinition/distribution-recipient
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
... patient S 0..1 Reference(Patient) The registered person receiving it, where person-level registration exists. The usual ICR recipient is a household/community Group — that join rides extension[recipient] (R4 SupplyDelivery.patient cannot target a Group)
... 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; physical commodity → ICR commodity-class code (llin, rdt, …), optionally alongside a GS1 GTIN coding for the specific product; text as fallback
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) The place of the handover (dwelling, distribution post, school)

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

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:campaign S 0..1 Reference(ICR Campaign) The campaign (round) this distribution belongs to; per-round queries stay independent of Task wiring
URL: https://icr.healthcampaigns.org/StructureDefinition/campaign
.... extension:recordOrigin S 1..1 code Record Origin
URL: https://icr.healthcampaigns.org/StructureDefinition/record-origin
Binding: ICR Record Origin (required)
.... extension:recipient S 0..1 Reference(ICR Delivery Unit (Household / Community / School Cohort) | ICR Patient (Beneficiary / Registered Individual)) Who received it — the delivery-unit Group (household, community, school cohort) or a registered person. The direct join per-capita coverage computes against
URL: https://icr.healthcampaigns.org/StructureDefinition/distribution-recipient
... status S 0..1 code in-progress | completed | abandoned | entered-in-error
... patient S 0..1 Reference(Patient) The registered person receiving it, where person-level registration exists. The usual ICR recipient is a household/community Group — that join rides extension[recipient] (R4 SupplyDelivery.patient cannot target a Group)
.... 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; physical commodity → ICR commodity-class code (llin, rdt, …), optionally alongside a GS1 GTIN coding for the specific product; text as fallback
Slice: Unordered, Open by type:$this
..... item[x]:itemCodeableConcept 0..1 CodeableConcept Medication, Substance, or Device supplied
Binding: ICR Supplied Item (extensible)
... destination S 0..1 Reference(Location) The place of the handover (dwelling, distribution post, school)

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:campaign S 0..1 Reference(ICR Campaign) The campaign (round) this distribution belongs to; per-round queries stay independent of Task wiring
URL: https://icr.healthcampaigns.org/StructureDefinition/campaign
.... extension:recordOrigin S 1..1 code Record Origin
URL: https://icr.healthcampaigns.org/StructureDefinition/record-origin
Binding: ICR Record Origin (required)
.... extension:recipient S 0..1 Reference(ICR Delivery Unit (Household / Community / School Cohort) | ICR Patient (Beneficiary / Registered Individual)) Who received it — the delivery-unit Group (household, community, school cohort) or a registered person. The direct join per-capita coverage computes against
URL: https://icr.healthcampaigns.org/StructureDefinition/distribution-recipient
... 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 S 0..1 Reference(Patient) The registered person receiving it, where person-level registration exists. The usual ICR recipient is a household/community Group — that join rides extension[recipient] (R4 SupplyDelivery.patient cannot target a Group)
... 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; physical commodity → ICR commodity-class code (llin, rdt, …), optionally alongside a GS1 GTIN coding for the specific product; text as fallback
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) The place of the handover (dwelling, distribution post, school)
... 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

This structure is derived from SupplyDelivery

Summary

Mandatory: 2 elements
Must-Support: 9 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:campaign S 0..1 Reference(ICR Campaign) The campaign (round) this distribution belongs to; per-round queries stay independent of Task wiring
URL: https://icr.healthcampaigns.org/StructureDefinition/campaign
.... extension:recordOrigin S 1..1 code Record Origin
URL: https://icr.healthcampaigns.org/StructureDefinition/record-origin
Binding: ICR Record Origin (required)
.... extension:recipient S 0..1 Reference(ICR Delivery Unit (Household / Community / School Cohort) | ICR Patient (Beneficiary / Registered Individual)) Who received it — the delivery-unit Group (household, community, school cohort) or a registered person. The direct join per-capita coverage computes against
URL: https://icr.healthcampaigns.org/StructureDefinition/distribution-recipient
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
... patient S 0..1 Reference(Patient) The registered person receiving it, where person-level registration exists. The usual ICR recipient is a household/community Group — that join rides extension[recipient] (R4 SupplyDelivery.patient cannot target a Group)
... 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; physical commodity → ICR commodity-class code (llin, rdt, …), optionally alongside a GS1 GTIN coding for the specific product; text as fallback
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) The place of the handover (dwelling, distribution post, school)

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

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:campaign S 0..1 Reference(ICR Campaign) The campaign (round) this distribution belongs to; per-round queries stay independent of Task wiring
URL: https://icr.healthcampaigns.org/StructureDefinition/campaign
.... extension:recordOrigin S 1..1 code Record Origin
URL: https://icr.healthcampaigns.org/StructureDefinition/record-origin
Binding: ICR Record Origin (required)
.... extension:recipient S 0..1 Reference(ICR Delivery Unit (Household / Community / School Cohort) | ICR Patient (Beneficiary / Registered Individual)) Who received it — the delivery-unit Group (household, community, school cohort) or a registered person. The direct join per-capita coverage computes against
URL: https://icr.healthcampaigns.org/StructureDefinition/distribution-recipient
... status S 0..1 code in-progress | completed | abandoned | entered-in-error
... patient S 0..1 Reference(Patient) The registered person receiving it, where person-level registration exists. The usual ICR recipient is a household/community Group — that join rides extension[recipient] (R4 SupplyDelivery.patient cannot target a Group)
.... 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; physical commodity → ICR commodity-class code (llin, rdt, …), optionally alongside a GS1 GTIN coding for the specific product; text as fallback
Slice: Unordered, Open by type:$this
..... item[x]:itemCodeableConcept 0..1 CodeableConcept Medication, Substance, or Device supplied
Binding: ICR Supplied Item (extensible)
... destination S 0..1 Reference(Location) The place of the handover (dwelling, distribution post, school)

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:campaign S 0..1 Reference(ICR Campaign) The campaign (round) this distribution belongs to; per-round queries stay independent of Task wiring
URL: https://icr.healthcampaigns.org/StructureDefinition/campaign
.... extension:recordOrigin S 1..1 code Record Origin
URL: https://icr.healthcampaigns.org/StructureDefinition/record-origin
Binding: ICR Record Origin (required)
.... extension:recipient S 0..1 Reference(ICR Delivery Unit (Household / Community / School Cohort) | ICR Patient (Beneficiary / Registered Individual)) Who received it — the delivery-unit Group (household, community, school cohort) or a registered person. The direct join per-capita coverage computes against
URL: https://icr.healthcampaigns.org/StructureDefinition/distribution-recipient
... 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 S 0..1 Reference(Patient) The registered person receiving it, where person-level registration exists. The usual ICR recipient is a household/community Group — that join rides extension[recipient] (R4 SupplyDelivery.patient cannot target a Group)
... 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; physical commodity → ICR commodity-class code (llin, rdt, …), optionally alongside a GS1 GTIN coding for the specific product; text as fallback
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) The place of the handover (dwelling, distribution post, school)
... 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

This structure is derived from SupplyDelivery

Summary

Mandatory: 2 elements
Must-Support: 9 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