Target release3.2

OLMIS-1293 - Getting issue details... STATUS

Document status


Document owner
Tech Lead


  • Ability to record the VVM status when making stock movements (physical inventory, issue/receive, adjustments)


OpenLMIS version 3.1.0 previously delivered an initial beta of stock management. See Stock Management for the detailed list of features and functionality.  The following stories are mainly coming from the Vaccines May 2017 Workshop. Main contributors include: Ryan McWhorter (UNICEF), Dorthe Konradsen (UNICEF), Teresa Ha (UNICEF), Brandon Bowersox-Johnson (VillageReach), plus some attendees who joined on day 2 or 3. 

VVM Background

WHO on VVM availability & use:

PATH on getting started with VVM stickers:


  • With the addition of the features below, the stock management module will become "vaccines capable". It can still be used for non-vaccine medical commodities simultaneously as well.
  • Add features to stockmanagement-1.0.0-beta (ref-distro-3.1.0) that are needed for vaccines.

User Stories

#TitleUser StoryImportanceNotesJIRA Tickets

Record VVM with physical inventory

Record VVM status with physical stock count (recording VVM status should be optional, not required)
(source: RE1)

"For training purposes, four stages of VVMs are some times used—but not recommended. Stage 1 represents a VVM that is at the initial stage or start point and has received no heat exposure, stage 2 represents a VVM that has received some heat exposure but is still usable, stage 3 represents a VVM that is at a discard point, and stage 4 represents a VVM that is beyond the discard point. Vaccine vials with VVMs at stages 3 and 4 must be discarded."

  • From WHO document on VVM availability and use. For OpenLMIS we should only use stage 1 & 2, as any vial with VVM 3 or 4 should NOT be included in Stock on Hand and needs to be discarded.

OLMIS-2654 - Getting issue details... STATUS

OLMIS-2710 - Getting issue details... STATUS

2Record VVM with adjustment

Record VVM status with any adjustment (optional, not required)

As an Immunization Health Worker/Intermediate Level Logistician, I want the optional ability to capture a VVM status when I record an adjustment, so that my I have the visibility to prioritize product with a worsening VVM status.

MVPOpen question: Positive adjustment of vaccines is the only adjustment scenario where we'd need to also record VVM status of Stage 1 or Stage 2. None of the other adjustments would need VVM status column. For a negative adjustment due to vials reaching a VVM status discard stage (Stage 3 or 4), this information on VVM status would be reflected in the reason: "VVM discard stage" that can be configured within the system.

OLMIS-2663 - Getting issue details... STATUS
3Record VVM with ad-hoc receipt/issueRecord VVM status with ad-hoc receipt/issue (optional, not required)MVP
OLMIS-2741 - Getting issue details... STATUS (receipt)

4Program specific adjustment reasons

As a DIVO, I would like to indicate vaccine specific wastage reasons when making adjustments to my stock levels so that I can accurately track/record wastage to inform my ordering and resupplying.

For example, vaccines would like specific wastage reasons.

Record wastage quantities and reasons (source: ES3) (VIMS)


Open Question: How do we quantify open vial wastage (because you cannot count how many doses were wasted)? In VIMS we capture the count of open vials.

We have program specific reasons in requisitions.

Open question: Do we need to distinguish between wastage from expired vaccine and wastage from VVM status that have reached the discard stage? (Vial would need to be discarded for either reason. If it has not expired but the VVM status is unstable, needs to be discarded; if the VVM status is fine but the vial is past expiry, needs to be discarded.)

OLMIS-2669 - Getting issue details... STATUS

5Receive Re-supply

As an Immunization Health Worker/Intermediate Level Logistician, I want to receive and record a delivery with an optional VVM status, so that my stock record is accurate.

(Connects to Re-supply domain) 

Details: Connect the POD to stock management.


6Bin cards for CCE equipment

Track CCE equipment location with my stock inventories and movements — expand the definition of stock card identities to act as a Bin card based on CCE equipment location.

As a IHW/ILL, I want my stock cards to be differentiated by CCE equipment location—in other words I want to do a physical inventory count or record any adjustment or movement for a specific CCE fridge/cooler equipment, so that when a CCE equipment failure event happens I can connect that to the specific quantities of stock impacted.


Changed to Next since we are waiting on CCE capacity. If CCE capacity gets prioritized we will work on this as well.

Relates to CCE capacity. (Connects to CCE domain)  

7Correct stock movements

Correct stock movements

See Correcting stock movements for the approved proposal (using Reversal approach)

Next(Note: This was not raised for discussion at the Copenhagen 2017 workshop, but we have identified that it is important for an accurate stock record.)
8Add lots at any facility (not centrally managed)

Users need the ability to record a Lot Code and Expiration Date during any stock event (inventory, adjustment, ad-hoc receipt/issue)—even if that Lot is not yet known in the centrally managed Lot list.

(modified from ES5) 

(Note: This was originally in the MVP at the Copenhagen 2017 workshop.)

9Generate issue voucher

As an Issuer of Stock, I would like the system to automatically generate Issue voucher number to my Issue voucher so that I can keep track of the issues I have made to my recipients (and so that they can receive based on an issue voucher instead of manually entering quantities). And so that I have an audit trail to and to save time and reduce errors.

(source: RE4—includes lots of details and links to info)

NextGot 5 votes!
10Supporting GLNs / Facility-within-a-Facility


Next(If we don't build this, the work-arounds are acceptable.)GLNs may be a separate thing, not facility-within-a-facility. We could easily add a GLN field without addressing facility-within-a-facility needs.
11Schedule for physical stock count

Set a schedule to force/prompt a physical inventory

Next(got zero dot votes) 
12Kits, diluents, syringes

Kits, diluents, syringes

(The group discussed how you might think it would be nice if these were automatically ordered, but really that is not practical and not important for vaccines. Sometimes they are ordered on a different schedule. The syringes and other items should have their own min and max quantities and they should be forecast and ordered so they do not run out of stock. Overall, it would be hard for software to automate this for all country situations, and it should be handled by SOPs outside the software.)

Not needed


  • Priorities came from the final MVP whiteboard at the Vaccines Workshop: /wiki/spaces/OP/pages/113054114. Note that the Dependencies & Configuration stories have been moved here into the Enter Stock Data step.
  • Most of these user stories sourced and numbered above came from pre-workshop research here: Stock Management Domain Parent Page




Many dependencies on Reference Data (existing) and CCE (new/coming soon). Originally, dependencies had its own page in this domain, see the history of A. Dependencies & Configuration

Open Questions

Below is a list of questions to be addressed as a result of the vaccine workshop:


Is using Stock Management required for some or all facilities who order and receive vaccines? Will Forecasting & Estimation or Re-Supply domains require that certain facilities (intermediate nodes or SDPs?) use stock management?

Mary Jo Kochendorfer (Deactivated) I think we need to discuss.

2How much data entry burden is story #6? We suggest making it optional so country SOPs can choose.
3Story #10 Terminology issue to try to bet a global agreement on; an "ad-hoc issue" is called a transfer many places. A transfer is lateral (to peers at the same level). An issue is down the supply chain. But these terms may not be universal.

Out of Scope

(see Next and Not Needed in User Stories above)