OpenLMIS has a growing number of implementations deploying the shared global version 3 with increasing demand and interest in new country implementations. This proposal seeks funding to support these new and future adoptions, help them contribute improvements back to the open source community, and provide ongoing releases as the community grows to a critical mass. The OpenLMIS initiative started in 2008 and already powers health supply chains for over 11,000 health facilities across 9 country implementations. OpenLMIS:
- Serves as a critical electronic system in the health supply chain ecosystem in multiple countries and across multiple programs (Essential Medicines, Family Planning, EPI, etc.). For example, in Malawi it is nationally deployed and supporting five different programs.
- Is a designated Global Good by the Digital Square initiative.
- Adheres to and supports the Principles for Digital Development.
- Engages in global initiatives striving to set standards for digital health supply chains (from leading the OpenHIE Supply Chain sub-committee to participating in the Health Data Collaborative working group for Logistics Management and Information System).
OpenLMIS is supported by a community of health, technical, and financing partners working collaboratively to improve product availability by providing accurate, timely data enabling informed decision-making to improve the reliability, responsiveness, agility and efficiency of health supply chains. We believe that ensuring the right product is in the right place at the right time using an electronic logistics management information system (LMIS) is critical for quality healthcare delivery to patients.
This Notice C consortium proposal is being submitted on behalf of the OpenLMIS community to seek support for community-requested feature development (see the Project Description section for details). With this funding, the community can support the growing number of countries deploying OpenLMIS, while still remaining responsive to the needs of existing implementations. Specifically, the community will support the current deployment in Malawi and the upcoming deployments in Angola, Mozambique, and potentially in Benin and Cameroon. Notice C activities will include new community-requested features to support new implementations, conducting releases and maintenance/fixes, and helping implementations contribute their enhancements back to the shared global version, resulting in greater capacity for this open source community to support a larger number of adoptions on one shared, common codebase.
OpenLMIS received Notice B funding to support a basic level of advocacy and community coordination on responding to prospective implementation opportunities in 2019. To compliment the advocacy work, it is essential for the community to obtain support for software development to continue improving the core codebase as the OpenLMIS community determines its long-term sustainability plan (see Sustainability process slides and watch the Governance meeting notes for updates every month). Implementers rely on ongoing support and continued improvements, both in performance and new usability features, so they can continue to scale their implementations and expand their use of OpenLMIS. Scaling implementations in terms of the number of facilities and users to increasing the number of programs leveraging the system from Essential Medicines to EPI.
Why support OpenLMIS?
The OpenLMIS philosophy and feature set is what sets OpenLMIS apart from other products in the supply chain space. OpenLMIS is grounded in the vision of:
- Fulfilling shared investment and benefit by promoting code reuse through a microservice architecture and community approach to defining features and building software.
- Building towards interoperability by identifying and supporting industry best-practice standards and implementing an API-driven strategy to facilitate integrations across the electronic health system ecosystem.
- Designing with the goal of configurability and extensibility by leveraging a modular architecture and extension mechanisms to support ongoing upgrades and continued benefit from future releases.
- Developing high-quality, enterprise-level code with a highly inclusive team rooted in a collaborative and transparent culture of excellence.
- Working towards sustainability of the open source community through multiple initiatives, including building capacity for software development closer to end users and implementations in Sub-Saharan Africa, as well as undergoing a sustainability planning process funded by the Bill & Melinda Gates Foundation.
In the last 2 years, the OpenLMIS community has made significant strides towards its vision of shared investment and benefit by releasing version 3. Version 3 was re-designed to allow country implementations to share the same core code base while still facilitating country-specific configurations and extensions. One country is already using Version 3 at national scale across five programs and demonstrated how the new architecture supports reusability and shared benefit by facilitating contributions back to the core codebase.
In addition to the new implementation, a handful of countries are in different stages for adopting version 3, including active implementations in Angola and Mozambique, and likely implementations in Benin and Cameroon as well as other prospects in the evaluation and planning phases. During 2019, we will also continue outreach to all 9 existing country implementations for them to upgrade to the shared global version of OpenLMIS, so that the entire OpenLMIS community is contributing and working on a common codebase. For details on these countries, the new implementations and status, visit the wiki for updates.
We propose leveraging a consortium of team members that have a strong track record of working together to deliver value for the OpenLMIS community. All work of the consortium is governed by the OpenLMIS community through a transparent open source process including Governance, Product, and Technical Committees with stakeholders representing the whole global community. Size and number of organizations will depend on funding levels. For more details see the Project Description section.
VillageReach was established in 2000 to address the challenges of delivering quality healthcare at the last mile to the most underserved communities. VillageReach works with ministries of health to solve healthcare delivery challenges in low-resource environments. In addition, VillageReach serves as current stewards for the OpenLMIS community and software development of re-architected OpenLMIS version 3 and subsequent releases. As OpenLMIS stewards, VillageReach provides key leadership roles within the OpenLMIS community. VillageReach manages the software development and community coordination by supporting the core community processes and managing the software development across the four development teams.
In business for almost 40 years, John Snow, Inc. (JSI) is a public health management consulting and research organization dedicated to improving the health and wellbeing of individuals and communities throughout the world. JSI has over three decades of experience optimizing supply chains in lower and middle income countries and contributing to global best practices in data visibility and use, system design, human resources for supply chain management, and commodity security. JSI was one of the initial members of the OpenLMIS community and enhanced an early version of OpenLMIS for Tanzania, Zambia, Côte d’Ivoire and, most recently, Guinea. In all these countries, the applications are deployed at national scale and are fully institutionalized within the health sector. As such, JSI’s subject matter expertise and ongoing operational engagement are crucial for bridging the existing gaps between those implementations and the OpenLMIS Version 3. JSI is actively working on Version 3 to implement priority features from those implementations.
A dynamic IT company focused on delivering high-quality software and innovative solutions. SolDevelo started contributing to OpenLMIS in 2016 during the re-architecture effort and continues to support the global community since then. It has a deep expertise in the IT projects management and development, gathering experience in various projects during the last decade. SolDevelo has been involved in many opportunities that required skill sets relevant to this particular project, especially OpenMRS (core contributors), HL7 FHIR (OpenMRS Sync 2.0 module), nation-wide micro-service based implementations (OpenLMIS), and nation-wide OpenHIE architecture based implementations (National Health Infrastructure project with such components like OpenELIS, DHIS2, OpenMRS and many other HIE compatible applications, health standards-based workflows for the Client Registry, Facility Registry, Health Management Information System, Shared Health Record, and Interoperability Layer).
Notice C funding will allow the OpenLMIS Consortium Team to support new implementations, help them contribute improvements back to the open source community, and provide ongoing releases as the community grows to a critical mass. OpenLMIS uses an agile process, and this proposal team has a track record of delivering features with that process throughout 2018. The agile process means that we do not have a waterfall-style timeline for the exact specifications that will be delivered during the proposed project. Instead, we have identified priority features (below) that we wish to build if fully funded. At the same time, the community will continue to be responsive and flexible during this project to act on the needs of country implementations. The open source community’s governing committees review and approve the roadmap on an on-going basis, and our track record of outputs (below) is transparently shared at all times.
The following are the highest priority features. A full list of requested features is here.
- Support for distributions and reallocating stock between facilities (user stories). The OpenLMIS community wants to enhance the local fulfillment workflows to support an end user in planning a distribution to multiple facilities at once and identify excess stock in nearby facilities. If a facility is running low on stock they will have visibility to nearby facilities. These features support a high-value supply chain workflow requested by many current and prospective country users.
- Offline support for stock management features (user stories). There is a need to integrate with third party mobile applications and support offline web browser features. Some facilities will have a desktop computer while others can leverage a tablet device. At the moment OpenLMIS supports online stock management features in the web application and integration with two mobile applications (OpenSRP and SIGLUS). Benin, Malawi, and Mozambique have all expressed the need for offline stock management features so that they can leverage the current desktop computers in facilities with intermittent connectivity. OpenLMIS would like to support both integrations with third-party mobile/tablet applications and offline features within the web application to reach the last mile.
- Collect program data alongside supply chain processes (user stories) to support user-friendly customization of data collection forms by implementers. This work allows collection of health metrics and indicators during supply chain reporting workflows. We propose to build this feature via an integration with a third-party open source application (our specifications to date focus on ODK and/or DHIS2). This featureset allows implementers to collect programmatic data alongside of supply information. The community sees a need for this in HIV and within immunization programs.
- Request, order, receive/unpack and ship “kits”, or bundles of products (user stories). Kits are common within HIV and essential medicines. This feature is a high priority for Mozambique (where implementation work is underway) and requested by other countries because bundling products together is key to supporting reordering for patient regimens and other related products.
Software Development Track Record
- The consortium team is already delivering features using the agile methods proposed here. See the OpenLMIS Software Development Methodology.
- Throughout 2018, this process has delivered consistent releases, each with significant improvements for country implementations and users. See the Release Notes which each contain a section on New Features.
- For version 3.4 (just released), the consortium team completed 7 epics and 210 tickets (worth 477.5 story points). OpenLMIS always shares progress in a transparent manner using JIRA and the wiki.
Three committees--the OpenLMIS Product Committee, Technical Committee, and Governance Committee--allow the whole community to make requests, give input on new features and priorities, and govern the roadmap that guides development. All community activity is public and shared in the wiki. See the Community Committees with meeting agendas, notes, roadmap approvals.
Over the past year, the OpenLMIS Global Software Development Team has evolved from one larger team to four smaller teams to meet the goal of locating developers closer to end-users. We expect the OpenLMIS Team Structure to continue to evolve in 2019 to support the growing number of Country Implementations using OpenLMIS version 3 and based on funding available to sustain global activities.
Technology ApproachOpenLMIS version 3 uses a micro-services architecture to allow multi-country customization and sharing of features. Software development uses Docker, Java, and AngularJS with an open source contribution process that follows community conventions. The community leverages a wide number of open source tools including ReadTheDocs, GitHub, Jenkins and more. Each of the new features the community hopes to build will be within the re-architected framework. Reference the linked user stories in the Product Description for more details on the technical approach for each feature group.
Below we list the direct outcomes of the fully funded proposal. We are providing two different budgets and narratives, one for minimal funding (Option 1) and one for the full proposed funding to support new features (Option 2). If the proposal is not fully funded (if the minimal or a smaller amount is approved), the following will need to be modified. In combination with these outcomes we believe OpenLMIS not only enables implementers to improve product availability by providing accurate, timely data enabling informed decision-making to improve the reliability, responsiveness, agility and efficiency of health supply chains, but also provides a shared investment and benefit model to pool resources across implementations. LMIS is a critical component to health service delivery and improving patient outcomes.
- Quarterly software releases (plus additional patches or release if necessary) so implementers can pick up and leverage key new features on an ongoing basis. All software features will be ready for implementers to use immediately and are configurable, performant, translatable, fully tested (both manually and automated), and documented.
- Releases will include fixes to blocker and critical bugs plus new features prioritized by the community.
- Full transparency through working documentation in the wiki, finalized versioned documentation at docs.openlmis.org and through the three committees governing the OpenLMIS community.
- Coordination and alignment with other projects, including coordination with country implementations, other open source projects that are integrated (such as OpenSRP, OpenHIE, DHIS2, and more), coordination with global donors, and coordination with Notice B activities (which are funding the OpenLMIS community advocacy work, including trips and outreach to implementers and country users).
- Support enabling 2 to 4 new adoptions of OpenLMIS version 3 (Angola and Mozambique, and potentially Benin and Cameroon plus other prospects).
Workplan and Schedule
The estimated timeline for the project is January 2019 to December 2019 or 12 consecutive months.
- Quarterly releases will include development of new features, fixes to critical bugs and improvements for code quality and performance. Each release includes detailed release notes and critical information for implementers in using the new release. New features are governed by the community prioritization process and available funding.
- Technical and product committees meet every two weeks to review the status of the development, prioritize the roadmap, decide on technical frameworks and discuss any key risks/concerns.
- Governance committee meets monthly to review progress and make decisions on the long-term sustainability and direction of the community.
The following release schedule estimates which features would be available for each quarterly release.
Please see the Project Deliverables section for additional information on when deliverables are available within the agile development cycles.
OpenLMIS operates on a two week sprint cycle following our agile methodology. The following project deliverables will be available on an ongoing basis. Some deliverables depend on level of funding and the project start date.
Four releases, following a quarterly calendar schedule, which include fixes to Blocker and Critical bugs. See definitions on priority ranking here. Bugs are submitted by implementers and the core development team.
Based on level of funding, each of the four releases will also include new features requested and prioritized by the community. The current top-priority roadmap features are listed above (see Project Description). The roadmap is updated and adopted based on input from the OpenLMIS committees, and Notice C features will be prioritized once 2019 funding levels are known in Q4 of 2018.
Each month the development team will review a burndown chart to evaluate progress towards defined feature goals (scope of features is dependent on funding amounts). The feature goals will be determined by the community in Q4 of 2018. Example burn down chart below:
Each software development team will be tracked using this dashboard to monitor the status of development daily within each sprint. Each sprint will produce the deliverable of sprint reports.
Shared value and investment will be monitored by tracking if implementers on version 3 continue to pick up available releases and contribute back features which they develop locally.
Monitor the number of new feature requests from community members and which are implemented to track the responsiveness of the community. This information will be reporting within the Release Notes of the quarterly release. See past examples here.
Bugs are monitored on a weekly basis and stats are available at any point in time (here) around how long they have been around and resolution date. A list of bugs addressed will be available in each quarterly release.
Community participation measured in Slack, JIRA, Confluence, the 3 committees meetings and google groups. Stats will be available within the monthly reports to Digital Square.
This Notice C proposal focus on two types of user stories:
- User stories to support OpenLMIS country implementations
- User stories to support OpenLMIS end users
The following user stories are derived from the needs of the community.
User stories to support OpenLMIS country implementations
Definition: A team which supports the country implementation of OpenLMIS. This team is responsible for deploying the system and providing both end user and developer support. The team will have the capacity to support software development.
- As an Implementer, I want to receive quarterly releases that include fixes to critical and blocker bugs so that those bugs are addressed and that code is maintained long-term.
- As an Implementer, I want to influence the new features developed in OpenLMIS so that I can continue to offer my users new features on the OpenLMIS platform with minimal financial investment.
- As an Implementer, I want to submit pull requests to the OpenLMIS core codebase for review and acceptance so that I do not need to maintain the new feature locally long-term.
- As an Implementer, I want new releases with improvements and enhancements so that my country deployment can continue to offer more valuable features, with limited financial investment, over time.
User stories to support OpenLMIS end users
Username: storeroom manager
Definition: an individual that uses OpenLMIS to record and manage their physical stock (from a small fridge of vaccines to a larger storeroom supplying larger hospitals). For simplicity, we are grouping multiple user profiles together to highlight high-level use cases the community aims to address within the desired new features (see the Project Description section for links to more user stories).
Distributions and Reallocations
- As a storeroom manager, I want to see nearby facilities with excess stock so that I can inquire about transferring stock to avoid a stock out.
- As a storeroom manager, I want to prepare a shipment of stock to multiple facilities so that I can distribute my stock among multiple facilities at one time.
- As a storeroom manager, I want to distribute stock to multiple facilities so that I can allocate my current stock on hand efficiently to those in need.
Offline Stock Management
- As a storeroom manager, I want to undertake stock transactions (issue, adjust and receive) when my browser or tablet does not have access to the internet so that I can easily record transactions when they happen and there is no connectivity.
- As a storeroom manager, I want all my stocking data to be saved so that when connectivity returns I do not lose the data I have captured.
- As a storeroom manager, I want my stocking data to automatically update whenever my device or computer is able to reconnect to the internet.
- As a storeroom manager, I want to print a summary of my stock on hand information so that I can conduct a physical inventory or check stock levels even when the internet is down.
Programmatic Data Collection
- As a storeroom manager, I would like to record additional data HIV regimen data when I request new stock so that upstream facilities know what stock to send my facility.
- As a storeroom manager, I would like to easily record usage data alongside the stocking data I report so that my supervisors can see the usage and stocking data together.
Support bundling products together for “kits”
As a storeroom manager, I would like to “unpack” a kit or bundle of products to update individual stock cards so that my stock on hand is accurate.
The above user stories are further detailed within the OpenLMIS ticketing system. As a team begins researching a feature set, more user stories are defined and outlined. The above list is subject to change based on the level of funding received.
OpenLMIS leverages user stories to drive feature development. For more information on how the community submits new feature requests is here. To see the current list of feature requests, in the form of user stories, made directly by the community and through conversations with community members is here.
The OpenLMIS community provides multiple channels for engagement both internally within the community and externally with the broader digital health community. To manage the OpenLMIS direction the community is organized into three governing committees:
Governance Committee: Provides leadership to the OpenLMIS community including defining community processes, leading fundraising and advocacy efforts and building a sustainable community. The governance committee meets monthly, and is made up of key donor and trusted implementation partners. Facilitated by OpenLMIS Community Manager in conjunction with the rotating committee chair.
Product Committee: Evaluates the product roadmap, requirements and incorporation of features into the product. The Product Committee meets every two weeks to review direction, update the OpenLMIS backlog as needed, share information regarding implementations and their relevance to the OpenLMIS platform, and decide what work from implementations should be incorporated back into OpenLMIS. Topics and agenda is populated based on member input and facilitated by the OpenLMIS Product Manager.
Technical Committee: Purpose is to “build the product the right way”. It makes strategic decisions on the “how” features will be implemented and the overall architecture of OpenLMIS. For more information on historical discussions, please visit our wiki and reference the charter, participant list and notes from all the meetings. The committee meets every two weeks and the agenda is populated by its members. All community members can use this committee and listserv to propose ideas for evaluation by the technical committee. Here is an example how any member and make a proposal with is discussed and evaluated. Meetings are facilitated by the OpenLMIS Architect in conjunction with community members making proposals or suggested changes.
For large decisions on roadmap direction and community processes in the OpenLMIS community calls for the Product Committee, which collaborates with the Technical Committee, to provide advice and present options to the Governance Committee. The Governance Committee then deliberates and decides upon a course of action following the posted voting process.
External Coordination Efforts
OpenLMIS values integration and following industry standards and best practices. As such, the community coordinates with other efforts in the digital health space either by active participation, like in the OpenHIE supply chain subcommittee or by welcoming external parties or other communities to present and discuss opportunities for future integration or collaboration. Examples of how this coordination happens is below:
Product Committee invites OpenELIS for discussion on overlap with lab equipment management and reordering of stock and reagents, here. There is also a Notice C proposal, pending funding, to create detailed specifications of the valuable points of integration. We hope this work is funded so we continue to explore the valuable integration between lab management and supply chain.
Key OpenLMIS members attend OpenHIE community meeting, trip report here.
Product Committee invites LoMIS to present on functionality to identify potential use cases for integration around transport management, call notes here.
OpenLMIS participates in the PSM-GHSC MIS deep dive conversation on information system maturity model, discussion and notes here.
OpenLMIS leadership participates in the DHIS2 Symposium to explore partnerships and stay informed on the DHIS2 community direction and product. Trip report here.
An OpenLMIS member, JSI, has submitted a Notice C proposal to open source an application they have supported. If funded, JSI will be responsible for presenting the application to the OpenLMIS community for evaluation of integration and long-term coordination.
Digital Health Technologies
The majority of health supply chains have a wide variety of needs for data management that cannot be met by a single electronic system. OpenLMIS is moving the needle on a variety of interoperability and standards discussions in order to advance system capabilities and features, but requires additional funding to continue to advance in line with the Maturity Model Core Indicator Software, sub-indicator Interoperability and Data Accessibility. The OpenLMIS philosophy and vision is to enable and encourage interoperability with other HIS tools utilized for health data management and to embrace global industry standards in order to create high-performing supply chains. Interoperability can provide a large number of benefits for health systems, unlocking potential to reduce the burden of data entry and management on health workers, providing responsive and comprehensive views of supply chain behaviors to decision-makers and facilitating integrated supply chains to increase efficiencies and accountability. Leveraging global standards pushes OpenLMIS toward the core of industry interoperable systems and puts the software at the forefront of critical conversations to advance the maturity of data management tools.
OpenLMIS will continue to utilize the following tools, technologies and standards:
Architecture. The architecture of the OpenLMIS software is designed specifically with interoperability at its core - providing RESTful API endpoints for all system components in a microservices architecture, allowing other systems to connect with independent services for different functional areas.
Product Registry: GS1 OpenLMIS provides functionality for medical commodity logistics: ordering, shipping, receiving, and managing stock. In the OpenLMIS version 3 series, the model for storing and managing this data has been redesigned to align with the Global Standards One (GS1) standards and the Global Health Logical Reference Model. OpenLMIS is currently working to support the identification of trade items which can be ordered, invoiced, fulfilled, shipped, and inventoried using Global Trade Item Numbers (GTINs) and classification systems for assisted ordering.
Facility Registry: mCSD w/ FHIR STU3, GLN OpenLMIS is expanding its support for IHE’s mCSD Facility Registry profile, which enables federated facility list management using HL7’s widely popular FHIR STU3 standard. Leveraging public GLN registries and the GLN’s ability to be embedded in supply chain barcodes with FHIR’s support for adding GLN identifiers to the facility registry, OpenLMIS will be able to follow where medical products are, where they have been, and where they’re going, aligned with point of care systems, internet-of-things monitoring systems, and aggregated reporting systems.
Equipment Registry: FHIR STU3 Device (inventory location) OpenLMIS has leveraged IHE’s FHIR Device Resource to align the Location (aka Facility) where cold chain equipment is physically located with Nexleaf’s Coldtrace. This gives both OpenLMIS and Nexleaf a standard, interoperable means of aligning facility lists without brittle custom formats or bespoke mapping lists.
Supply Chain transactions: EDI OpenLMIS wants to leverage supply chain and software architecture best practice and turn many of the transactional messages exchanged between OpenLMIS Services into GS1 EDI messages. In this way, typical messages such as an Order, Advanced Shipment Notice, Proof of Delivery, etc., can arrive to, and be sent from, OpenLMIS services to other systems that support supply chain transactions. This not only furthers the total interoperability OpenLMIS provides, but also furthers our goal of OpenLMIS services being interchangeable with other supply chain software.
Mobile Architecture: OpenLMIS is actively defining a mobile architecture which extends the reach of the software, and visibility, to last-mile supply chain. This includes the development of a reference mobile application and a robust set of APIs to enable other applications to interface with OpenLMIS along with an evaluation of optical barcode support. Interoperability is completed with OpenSRP, a potential integration is under discussion with SIGLUS, and a side-car concept is being evaluated to enable supply chain best practices to be bundled into any third party health and logistics software.
Big Data Visualizations: To help OpenLMIS users make better sense of their supply chain data, the initiative has implemented a modern open source big data tool set and streaming architecture. With this we hope to establish a standardized community approach for consuming, processing, analyzing and visualizing logistics data from OpenLMIS. This infrastructure allows for ingestion of data from multiple systems to support analysis of information across systems in near real-time. This allows for the consolidation of big data processing across systems and enables the creation of composite indicators sourced from many disparate IT systems.
- Tools: OpenLMIS uses a variety of open source tools to support the development and software. Some include: Jenkins, dockerhub, Maven Central Repository, IntelliJ, github, sonar, fisheye, Nexus, AWS, ReadtheDocs, Superset, PostGres, Kafka, Nifi, Boardthing.
Self-Assessment on the Global Goods Maturity Model
OpenLMIS Self-Assessment, here.
Digital Health Atlas
OpenLMIS is registered, here. Country specific implementations are registered as well.
OpenLMIS requests support in providing its growing and thriving community with new feature development, performance improvements and essential maintenance to support current and new country implementations. These features and updates aim to achieve the shared investment and benefit by providing value to all members while leveraging work done within each country implementation.
Technical Requirements Disclosure
OpenLMIS satisfies the technical requirements for C0 as noted below:
- OpenLMIS is currently deployed and capturing data for over 10,000 health facilities across 9 country implementations. In addition, 2019 will bring at least 1-2 new country implementations and at least 1-2 upgrades to the latest version.
- OpenLMIS is open sourced under the GNU AGPL v3 license (code is available on Github).
- Software has been applied to multiple health domains, including essential medicines, reproductive health, immunizations, tuberculosis, HIV, and nutrition.