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 Movement

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

A commodity movement between supply-chain nodes — receipt at a facility, issue to a distribution post or field team, return of unused stock. The STOCK-bearing supply event: carries the stock-accountability ledger (received/used/remaining/not-usable/returned, concordance, VVM) and never counts toward coverage. Chains via partOf → the upstream movement (central store → district → post → team). v1 scope is campaign-tied movements only; routine inter-warehouse logistics is out of scope (OpenLMIS territory).

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 movement belongs to
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:stockAccountability SC 0..1 (Complex) Vial/commodity accountability & wastage — received/used/remaining/not-usable/returned, concordance, VVM (v0.20.0). A node's ledger reconciles as received = used + remaining + notUsable + returned
URL: https://icr.healthcampaigns.org/StructureDefinition/stock-accountability
Constraints: icr-stock-ledger
.... extension:issuedToTeam S 0..1 Reference(ICR Care Team) The CareTeam this movement was issued to — one issuance per team per day plus its ledger is the field-team daily-stock pattern (R4 receiver cannot target a CareTeam)
URL: https://icr.healthcampaigns.org/StructureDefinition/issued-to-team
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
... status ?!SΣ 0..1 code in-progress | completed | abandoned | entered-in-error
Binding: SupplyDeliveryStatus (required): Status of the supply delivery.
... 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 → ICR commodity-class code, optionally with a GS1 GTIN coding; 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)
... supplier S 0..1 Reference(Practitioner | PractitionerRole | Organization) The sending party (organization / officer), where recorded
... destination S 0..1 Reference(Location) The receiving node (facility, staging post, settlement)

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 movement belongs to
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:stockAccountability S 0..1 (Complex) Vial/commodity accountability & wastage — received/used/remaining/not-usable/returned, concordance, VVM (v0.20.0). A node's ledger reconciles as received = used + remaining + notUsable + returned
URL: https://icr.healthcampaigns.org/StructureDefinition/stock-accountability
.... extension:issuedToTeam S 0..1 Reference(ICR Care Team) The CareTeam this movement was issued to — one issuance per team per day plus its ledger is the field-team daily-stock pattern (R4 receiver cannot target a CareTeam)
URL: https://icr.healthcampaigns.org/StructureDefinition/issued-to-team
... partOf S 0..* Reference(ICR Supply Movement) The upstream movement this one draws from — makes the supply chain an explicit, queryable sequence
... status S 0..1 code in-progress | completed | abandoned | entered-in-error
.... 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 → ICR commodity-class code, optionally with a GS1 GTIN coding; 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)
... supplier S 0..1 Reference(Practitioner | PractitionerRole | Organization) The sending party (organization / officer), where recorded
... destination S 0..1 Reference(Location) The receiving node (facility, staging post, settlement)

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 movement belongs to
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:stockAccountability SC 0..1 (Complex) Vial/commodity accountability & wastage — received/used/remaining/not-usable/returned, concordance, VVM (v0.20.0). A node's ledger reconciles as received = used + remaining + notUsable + returned
URL: https://icr.healthcampaigns.org/StructureDefinition/stock-accountability
Constraints: icr-stock-ledger
.... extension:issuedToTeam S 0..1 Reference(ICR Care Team) The CareTeam this movement was issued to — one issuance per team per day plus its ledger is the field-team daily-stock pattern (R4 receiver cannot target a CareTeam)
URL: https://icr.healthcampaigns.org/StructureDefinition/issued-to-team
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
... identifier 0..* Identifier External identifier
... basedOn Σ 0..* Reference(SupplyRequest) Fulfills plan, proposal or order
... partOf SΣ 0..* Reference(ICR Supply Movement) The upstream movement this one draws from — makes the supply chain an explicit, queryable sequence
... 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 → ICR commodity-class code, optionally with a GS1 GTIN coding; 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 S 0..1 Reference(Practitioner | PractitionerRole | Organization) The sending party (organization / officer), where recorded
... destination S 0..1 Reference(Location) The receiving node (facility, staging post, settlement)
... 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: 11 elements

Structures

This structure refers to these other structures:

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 movement belongs to
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:stockAccountability SC 0..1 (Complex) Vial/commodity accountability & wastage — received/used/remaining/not-usable/returned, concordance, VVM (v0.20.0). A node's ledger reconciles as received = used + remaining + notUsable + returned
URL: https://icr.healthcampaigns.org/StructureDefinition/stock-accountability
Constraints: icr-stock-ledger
.... extension:issuedToTeam S 0..1 Reference(ICR Care Team) The CareTeam this movement was issued to — one issuance per team per day plus its ledger is the field-team daily-stock pattern (R4 receiver cannot target a CareTeam)
URL: https://icr.healthcampaigns.org/StructureDefinition/issued-to-team
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
... status ?!SΣ 0..1 code in-progress | completed | abandoned | entered-in-error
Binding: SupplyDeliveryStatus (required): Status of the supply delivery.
... 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 → ICR commodity-class code, optionally with a GS1 GTIN coding; 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)
... supplier S 0..1 Reference(Practitioner | PractitionerRole | Organization) The sending party (organization / officer), where recorded
... destination S 0..1 Reference(Location) The receiving node (facility, staging post, settlement)

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 movement belongs to
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:stockAccountability S 0..1 (Complex) Vial/commodity accountability & wastage — received/used/remaining/not-usable/returned, concordance, VVM (v0.20.0). A node's ledger reconciles as received = used + remaining + notUsable + returned
URL: https://icr.healthcampaigns.org/StructureDefinition/stock-accountability
.... extension:issuedToTeam S 0..1 Reference(ICR Care Team) The CareTeam this movement was issued to — one issuance per team per day plus its ledger is the field-team daily-stock pattern (R4 receiver cannot target a CareTeam)
URL: https://icr.healthcampaigns.org/StructureDefinition/issued-to-team
... partOf S 0..* Reference(ICR Supply Movement) The upstream movement this one draws from — makes the supply chain an explicit, queryable sequence
... status S 0..1 code in-progress | completed | abandoned | entered-in-error
.... 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 → ICR commodity-class code, optionally with a GS1 GTIN coding; 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)
... supplier S 0..1 Reference(Practitioner | PractitionerRole | Organization) The sending party (organization / officer), where recorded
... destination S 0..1 Reference(Location) The receiving node (facility, staging post, settlement)

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 movement belongs to
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:stockAccountability SC 0..1 (Complex) Vial/commodity accountability & wastage — received/used/remaining/not-usable/returned, concordance, VVM (v0.20.0). A node's ledger reconciles as received = used + remaining + notUsable + returned
URL: https://icr.healthcampaigns.org/StructureDefinition/stock-accountability
Constraints: icr-stock-ledger
.... extension:issuedToTeam S 0..1 Reference(ICR Care Team) The CareTeam this movement was issued to — one issuance per team per day plus its ledger is the field-team daily-stock pattern (R4 receiver cannot target a CareTeam)
URL: https://icr.healthcampaigns.org/StructureDefinition/issued-to-team
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
... identifier 0..* Identifier External identifier
... basedOn Σ 0..* Reference(SupplyRequest) Fulfills plan, proposal or order
... partOf SΣ 0..* Reference(ICR Supply Movement) The upstream movement this one draws from — makes the supply chain an explicit, queryable sequence
... 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 → ICR commodity-class code, optionally with a GS1 GTIN coding; 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 S 0..1 Reference(Practitioner | PractitionerRole | Organization) The sending party (organization / officer), where recorded
... destination S 0..1 Reference(Location) The receiving node (facility, staging post, settlement)
... 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: 11 elements

Structures

This structure refers to these other structures:

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