Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Common Use Cases the solution must address.  Assumes definition of terms, like "Reference Distribution"

 

Use Case 1:  Project deploys "vanilla" OpenLMIS Reference Distrubution

...

A country project enhances the OpenLMIS Reference Distribution with a new service and deploys it.  The module is not part of the Reference Distro, but is published and available for others to include in their own distribution.  Use case should include how other projects obtain and leverage this module.

Use Case

...

3:  Project extends a core domain model

How does As an implementer extend a core domain model?  For example, adding the "color" field to a Facility, or additional attributes to a User.  How are these extensions added to a data store, how are they accessed via web services?  How are they used in , I want to add several new fields to a Facility record, say "Color", "Max Occupancy" and "Chairs", an n-length list of chairs available at the facility (this is simply non-sense data for this use case).  OpenLMIS should define a means to persist these new fields in the database, and retrieve them with RESTful calls, and use them in standard queries (e.g. find return all Facilities facilities where color == 'blue and type=warehouse)

...

'). 

Use Case 3a:  Project updates UI for a core domain extension

A project has extended the Facility record as described in the above Use Case 3.  How is the reference Facility UI screen extended to display these new fields?  Note the potential data types that the UI might need to accommodate, e.g. "Max Occupancy"  as an integer, Color as a color choose or set of RGB values, and Chairs is a selection list widget.

Use Case 4:  Add a new service -- Informed Push -- as part of Reference Distribution

We want to uate the reference distribution with a new capability.  For this example, say it is Informed Push

  • Update reference distribution
    • Update docker image configuration to add new docker instance for Informed Push.  Will hold image of the new Spring boot application
  • Starting published Spring boot application template, create new Spring boot application.  Write informed push logic here
    • If extensibility is foreseen, instead write informed push as a Spring module  
  • UI:  create new UI component (starting from published UI template).  Update reference UI application to include

Use Case

...

5:  Adding a Strategy to Requisition

How does a project insert their own strategy to an OpenLMIS extension point?

 

Modularity

Hybrid approach:

...