/
Eswatini CMIS/eLMIS Integration Options Comparision

Eswatini CMIS/eLMIS Integration Options Comparision

Objective

The integration aims to streamline and automate the communication of dispensing information between CMIS (Dispensing System) and eLMIS (Inventory Management System). This will ensure accurate stock adjustments in eLMIS, reducing the stock on hand based on actual dispensed quantities.

See:

Implementation options

Comparison table

Option 1

Option 2

Option 1

Option 2

eLMIS have "Ibuprofen 10-pack" and "Ibuprofen 20-pack" products as separate product codes.
Each Product configured as:
name="Ibuprofen 10-pack", size=10, dispensable=tablet;
name="Ibuprofen 20-pack", size=20, dispensable=tablet.

 

Development required - eLMIS only
One-time data migration of a pilot/production system. Time depends on availability of pack size in machine friendly format.

eLMIS have "Ibuprofen 10-pack" and "Ibuprofen 20-pack" products as separate product codes.
Each Product configured as:
name="Ibuprofen 10-pack", size=1, dispensable=pack;
name="Ibuprofen 20-pack", size=1, dispensable=pack.

 

No development
Already present in the system.

For a stock of 7 packs of "Ibuprofen 10-pack" product, an eLMIS UI (and reports) show either - user chooses:

  • Ibuprofen 10-pack | 7 [packs] | 70 [tablet]

  • Ibuprofen 10-pack | 70 [tablet]

  • Ibuprofen 10-pack | 7 [packs]


Development required - eLMIS only
UI improvement to be made on various OLMIS Core pages, possibly benefiting other OLMIS Implementations too.
Details here.

For a stock of 7 packs of "Ibuprofen 10-pack" products, an eLMIS UI (and reports) show:

  • Ibuprofen 10-pack | 7

 

 

No development
Already present in the system.

For a stock of 7 packs of "Ibuprofen 10-pack" product, internally, eLMIS stores it as "Ibuprofen 10-pack"=70 -
a record of 70 is in the database.

 

Development required - eLMIS only
One-time data migration of a pilot/production system. Time depends on availability of pack size in machine friendly format. Done as single activity with data-migration in the 1st row.

For a stock of 7 packs of "Ibuprofen 10-pack" product, internally, eLMIS stores it as {"Ibuprofen 10-pack"=7} -
a record of 7 is in the database.

 

No development
Already present in the system.

In NAV to eLMIS integration,
eLMIS must multiply the amount received from NAV by configured pack size.

 

Development required - eLMIS only
An update to existing API, possibly benefiting other OLMIS Implementations too.

In NAV to eLMIS integration,
eLMIS accepts the amount received from NAV as-is.

 

No development
Already present in the system.

In CMIS and eLMIS integration,
both systems talk in the same unit, no conversion needed.

 

Development required - CMIS only
CMIS needs to consume OLMIS API that is implemented.

In CMIS and eLMIS,
a layer that will translate a number in packs, to a number of dispensable is needed to be added to eLMIS system.

 

Development required - eLMIS and CMIS
New micro-service for eLMIS and CMIS needs to consume its new API.

Risk matrix

Option 1

Impact \ Likelihood

Low (1)

Medium (2)

High (3)

Low (1)

 

 

 

Medium (2)

Performance

Cross-Organization Alignment Risk,
Delays Due to External Dependencies,
Technical Debt Accumulation

Integration Issues

High (3)

Data Migration Failure,
Technical complexity

Increased Regression Risk,
Rollback Complexity

 

Option 2

Impact \ Likelihood

Low (1)

Medium (2)

High (3)

Low (1)

 

Technical Debt Accumulation,
Integration Issues

Technical complexity,
Performance

Medium (2)

Cross-Organization Alignment Risk

Lack of Ownership



High (3)

 

Architectural Misalignment

Increased Maintenance Overhead,
Underestimation of Effort

Considered risks:

  • Scalability Limitations - none of the solutions differ in context of scalability.

  • Single Point of Failure - none of the solution differs - both have Single Point of Failures - they differ in a scale of failure

  • Monolithic vs. Microservices Complexity - option 2 introduced new micro-service in an existing micro-services architecture

  • Code Maintainability/Versioning/Compatibility/Security - included in Increased Maintenance Overhead

  • Production Downtime - both solutions require downtime

 

Related content

OpenLMIS: the global initiative for powerful LMIS software