Mobile Strategy - Key Objectives
Vision
- The OpenLMIS vision is to support a core set of LMIS business processes to be accessible via a web or mobile/tablet interface
- There is a reference mobile interface which can be deployed "as is" or customized to meet the specific needs of each country (we expect that many countries will need to customize to deploy, but this cost is significantly less than if they had to start from scratch)
- OpenLMIS offers a robust set of APIs which enable a variety of mobile tools (CommCare Supply, ODK, OpenSRP, Medic Mobile, etc.) to interface with OpenLMIS. Countries/implementors can select the mobile application of their choice.
- OpenLMIS supports supply chain management processes down to the facility level.
Reference Mobile Application - Requirements:
- Can be quickly deployed "as is" without software development, including ability to be configured to match the business requirements of a country (how achievable is this? need exploration)
- Meta-data alignment
- Product Master (Commodity Types, Trade Items, GLN)
- Approved Products, Min and Max
- Facility list (FHIR Location with GLN)
- Stock Adjustment Reasons
- Stock origin and destination lists (facilities approved to be)
- User login
- User Auth and RBAC (online to authenticate, RBAC cached. No network needed until network connection shows credential to be unauthenticated)
- Direct to digital stock management (Stock on Hand by Program):
- Physical Inventory (aka Stock Take), with losses and adjustment reasons
- Losses and Adjustments (wastage, consumption, etc)
- Issue Stock (stock out)
- Receive Stock (stock in)
- Receive Stock using a VVM
- Receive stock from a shipment (POD)
- Receive stock from a shipment (POD) using a SSCC barcode (code 128)
- Record losses and adjustments using a UDI barcode (data matrix)
- Issue stock (picked with UDI barcodes) and packed into a box where we print a SSCC barcode
- Requesting new Stock
- Stock-based, periodic, Requisition (from Stock on Hand and a calculated stock qty)
- Regular periodic Requisition (leverage Stock-based physical inventory, support fields such as: stock out days, # of new patients)
- Receiving ASN/Despatch advice of a shipment being processed.
- Requisition Authorize
- Requisition Approval
- Work with (interop tbd) Program Data capture application to visualize programmatic data capture requirement as part of regular period requisition
- Fulfilling an Order
- Fulfill an Order (Pick, Pack, Ship)
- Print a SSCC barcode (code 128) for the shipment
- For implementations wanting a tailored user experience (i.e. match current country paper forms), can be customized(?) by a software developer
- Implementation branding/themeing (implementer may brand/theme app without development cycle - ie through app settings)
- Stock recall
- Stock instance fraud detection (through interop with service providers - Optel?)
MVP and Rough bucketing of epics:
Deliverable / epic | Requirements | Value description |
---|---|---|
MVP | 1 through 4a. Exclude 2d. Include 5a. | Mobile app supporting last-mile physical inventory incl recording data on KPIs for wastage and consumption. Replenishment process supported by stock-based requisitioning using configured re-supply calculations. |
Daily stock transactions | 4b through f | Better mobile use of daily stock movements and better upstream visibility - better data for decision making. (presumes internet infrastructure for the timeliness of that data for decision making) |
Fulfill and Receive Orders using SSCC barcodes | 6 and 4g | Fullfill orders, print SSCC barcode label, receive shipment into inventory quickly by scanning SSCC barcode label. |
WIP | ||
Key Points for Consideration
- Performance
- Needs to be responsive handling thousands of products on a smartphone over 2g internet (likely).
- Needs to work well offline or with intermittent internet.
- For end-users, it would be better to work like an App (you download it and you always have an icon to open the app, regardless of whether you have internet) rather than working like a website. With our current offline website, it's not as smooth. Users need to open their web browser, type in the OpenLMIS URL, and hopefully they had all the elements cached and hopefully they were still logged in from last session.
- Needs to support layouts that will work across a variety of mobile devices that we expect to continue changing rapidly.
- Sustainable Maintenance
- Community/organizational tech stack knowledge: current OpenLMIS community is focused on Java and Angular v1, less so on Android and Mobile.
- Which platforms will be stable for 3-5+ years versus which are still cutting edge or will require frequent re-work?
- Which platforms will we be able to hire/employ developers to work on?
- One person often wears multiple hats (I manage my store room, and I submit quarterly Requisitions) and internet is scarce. When Product Lists / meta data change or a regularly scheduled update to the software occurs, we need to conserve their internet usage. EG, updating 2 apps because one product list changed, incurring 2 expensive downloads would be looked at unfavorably.
Add Value Uniquely / Avoid Duplicating Effort
There is some question around whether the development of a mobile facet of OpenLMIS would replicate functionality already available in the mobile sphere (ie. Dimagi's CommCare Supply, Logistimo, etc). These products, however visible and successful, are not optimized for routine LMIS data collection of the 100+ products that health facilities often manage. As such, we believe there is market demand for a mobile data collection tool targeted at routine data collection across multiple programs.
- Support Re-use
- There are a few pieces that, once developed, we don't want to have to develop again or support separately in multiple apps (this means community apps - e.g. if there is an Odoo app for stock management, we desire for them to leverage) (WIP):
- Support for GS1 EDI and EPCIS
- Supporting GS1 identifiers read through a camera (barcoding - GS128 and GS1 DataMatrix) (through use of onboard camera, not dedicated reader)
- OpenLMIS Product Model / Product Master - especially where the mobile app is interfacing with clinical or assistive re-supply workflows. e.g. understanding product use (shot in the arm through a CVX code) and product identification (GS1 UDI) as part of one workflow in dispensing. Or in assistive ordering knowing that these 5 identified products in stock mean that this 1 commodity type orderable should be re-ordered.
- There are a few pieces that, once developed, we don't want to have to develop again or support separately in multiple apps (this means community apps - e.g. if there is an Odoo app for stock management, we desire for them to leverage) (WIP):
Current Plans for Integration
- We have plans to integrate with OpenSRP to support vaccine tracking at the facility level. Visit OpenSRP and OpenLMIS Integration for details.
Evaluating Options
Evaluation Criteria | Option 1 | Option 2 | Option 3 | |
---|---|---|---|---|
1 | Performance | |||
2 | OpenLMIS community Maintainability | |||
3 | Implementer Maintainability | |||
4 | Reusability |
OpenLMIS: the global initiative for powerful LMIS software