Functional Documentation

OpenLMIS documents its major features and functional requirements with user stories and use cases. The user stories are grouped based on functionality to create an epic. Each epic has a defined scope and is slotted for a release. Once development begins, new stories and related technical tasks may be generated as needed to support the functional stories. Visit the Living Product Roadmap for a high-level roadmap of upcoming work.

Overview of Functionality


Currently Available in OpenLMIS

The following is a high-level list of current features available in OpenLMIS version 3. Review the releases schedule to know which releases are past and upcoming (release notes for 2.0.0 - 3.1.2 and post 3.1.2.) 

Last updated:  after the 3.3 release.

Upcoming Features

The following features are in-progress and potential features for future development.

The list is derived from the product committee, Gap Analysis work (comparing version 3 with eLMIS in Tanzania and Zambia) and requests from implementers. The list is by no means complete and many requested features are detailed in JIRA on the Roadmap Board.


Stock Management (Inventory Management)

The stock management features (also known as inventory management/control) for a facility/store/location is the on-going accounting of the stock on hand of medical commodities and inventory-able items. Users can record transactions like issues (debit), receipts (credit), stock counts (+/-), and a variety of adjustments (+/-).  These features support the Storage Business Process outlined in the CRDM.


Stock Management MVP (3.1)

Stock Management for Vaccines (released 3.2)

  • Notification of low stock
  • Record the VVM status with recording a receipt of stock.
  • Record the VVM status Additional features needed to support the management of vaccines.

Support for the Ideal Product Model (3.3)

  • Visualize the grouping of products/orderables by commodity type


Requisitions (Assisted Ordering)

The requisition features support users in requesting new stock (based on consumption or estimated need) and approvals to generate an order for fulfillment (see Fulfillment for details). Users can either manually report on the past periods' stock levels or leverage the electronic stock cards from Stock Management to inform the requisition process. When a requisition is approved, it is converted to an order (i.e. a purchase order). These features support the Requisition Business Process outlined in the CRDM.


Report and Requisition (3.0) 

The initial set of features support the Requisition Business Process and sub activities.  The following features support the requesting of new stock by reporting on the period's past stocking information and requesting new stock. As a storeroom manager, I want to submit a requisition and report on my stock levels so that my supervisor(s) can approve and create an order for fulfillment and subsequent delivery. This service specifically contains the features and business logic for the workflow of requisitioning new stock. For a detailed view of the workflow, you can watch a brief recorded demo

  • An administrator has the ability to configure a requisition and report template to support the Calculated Order Quantities based on the estimated need. Administrators can also define custom adjustment reasons by program, define multiple levels of approval hierarchy and define processing periods.
  • As a storeroom manager, I can view a list of historical, and in-progress requisitions.
  • Support the routine Requisitioning Process (high-level) with a configurable multi-step approval process.
    • Initiate a requisition based on facility, program and schedule using role-based access controls.
    • Capture data and submit a requisition for approval.
    • Review and authorize a requisition.
      • Ability to update and edit all quantities
    • Approve a requisition (can have multiple levels of approvals).
      • Confirm approved quantities for re-order
    • Reject a requisition for edits or changes by the initiator. 
    • Delete a requisition.
  • Emergency Requisitions: Create, authorize, approve and convert to order emergency requisitions outside of the normal processing period schedule.
  • Input data offline (syncing and approving still requires an internet connection; for example, you can enter and save all the data offline, but you need to be online to submit the requisition to move it ahead in the workflow)
  • The last step in the requisition and reporting workflow is to convert an approved requisition, and its quantities, to a purchase order, and indicate the supplying warehouse (see Fulfillment for details).

Forecasting and Estimation (3.2.1)

  • Import ideal stock amounts (ISA) by product, program, facility to support the process of calculating the order amounts within the requisitioning process.

Stock Based Requisitions for Vaccines (3.3 and 3.4)

The definition of stock based means that a facility or location is using stock management or managing its inventory with OpenLMIS and the re-order amounts (or requested quantities) are based off the stock movements of the past period (i.e. the electronic stock cards). The first release focuses on a limited scope for vaccines and using Ideal Stock Amounts to calculate the order quantity. 

Redesign of Emergency Requisitions (3.3)

The purpose of this requirement is to improve the following process for Emergency Requisitions by removing the requirement to report on the last period's stocking information, allowing the user to specify what products they want to order. 



Budgeting (Gap project)

Supports the ability to view a facilities budget within the requisition workflow and approval process. 

  • Budget Feature
    • Enable price schedules
    • Configure the budget file template
    • Import the budget files
    • View budget information alongside the cost of a requisition



Fulfillment (Dispatch and Receive)

The following features support the processes involved in creating, viewing, fulfilling (both internally within OpenLMIS and externally with integrations to an outside ERP) and lastly receiving an order via the proof of delivery. Fulfilling encompasses the identification and preparation of accurate quantities of items packed correctly from store needed for transport by lower level. These features support both the Dispatch and Receive Business Process outlined in the CRDM.


External Fulfillment (3.0)

Ability to view orders and export those orders to external systems for fulfillment.  Features supporting the external fulfillment process, by which requisitions are fulfilled by an external warehouse outside of OpenLMIS, include:

  • Configure an order file template to define the columns included in the file export.
  • Generate an order for external transfer.
  • Transfer an order file via FTP.
  • Retry logic for the FTP (3.4)

Proof of Delivery (3.0)

  • View the original order and enter the quantities received.

Accept stock into inventory via an electronic Proof of Delivery (based on the Order but no shipment information)

/wiki/spaces/OP/pages/88670474 (3.3)

Orders are created within OpenLMIS from approved requisitions in specific programs. Each order contains a list of products and corresponding Order Quantities. The user reviews the list of orders, selects an order to fulfill, and sets the fill quantities. Once an order is fulfilled a proof of delivery document is printed and sent as part of the shipment.

  • Process incoming orders (generated from requisitions)
  • Lots are sorted by first to expire to support FEFO
  • Determine the 'fill quantities' and allocate stock to the shipment
  • Print pick and pack list
  • View and record VVM status (when applicable)
  • Generate a Proof of Delivery 

/wiki/spaces/OP/pages/88670483 (3.3)

Improves the Proof of Delivery to connect to stock management.

  • View electronic Proof of Delivery (based on the original order)
  • Accept shipped stock into inventory
  • Reject shipped stock 

Aggregate Order Fulfillment (not scheduled)

Aggregate order fulfillment (sometimes called distribution): Grouping and fulfilling orders together to make decisions on fulfillment quantities based on all the orders. 

Receive shipment information from an external ERP (Gap Feature est. 3.5) 


Equipment Management


Cold Chain Equipment management (beta in 3.2)

Integration Remote Temperature Monitoring (RTM) Platform (3.3)

  • Needs attention flags are triggered when an RTM device produces an alert. Alerts are defined in the RTM platform.
  • Reference data syncing done using FHIR location and device standards.


Reporting and Analytics

The reporting and analytics vision is to support OpenLMIS users with both routine reporting and ad-hoc analysis. 

Routine banded reports (3.0)

A small number of routine reports to support with monitoring the requisition reporting rate and key indicators.

  • Export data via PDF, csv, html

Scalable data warehouse infrastructure PoC (3.3)

Single Sign-on for new reporting stack (3.5)

In-application Routine Reports (Gap project)



System Administration


System Configuration and Reference data (3.0)

Some of the following elements can only be configured through csv.

  • Role based access control
  • Manage users and assign roles
  • View facility details and set associations
  • Create and manage program and associated settings
  • Manage products and associations
  • Configure replenishment groups and hierarchies
  • Set up processing schedules and periods
  • Set supply lines for external order fulfillment
  • Bulk upload reference data via csv 
  • See the Configuration Guide for details on the scope of configuration supported.

User Management


See Administration Screens to see the outstanding screens and functionality to be built to manage all reference data through the user interface.