ColdTrace Integration

The purpose of the ColdTrace Integration project is to create an interface between the Nexleaf cold chain monitoring system and SELV in Mozambique so that:
(a) Real-time cold chain-monitoring data summary is available to users through the SELV system; and
(b) The more detailed information in Nexleaf can be accessed quickly and simply from SELV, via one login.
Nexleaf will handle the creation of two APIs : The primary API can be queried from SELV to populate: (1) a new cold chain status summary page in SELV and (2) a new status column on an existing page. The second API will allow SELV to access additional data for future reporting purposes. VillageReach will contract an additional development team to handle the UI/infrastructure additions and changes to SELV.

Additional Materials:

 

Integration Tech Notes

The integration relies on a simple API call to a server owned and managed by Nexleaf.  The API spec is located at this Google Drive location, and also attached to this page (ColdTrace_OpenLMIS_fridge_status_and_stat_api.docx).  Note the API expects the username and password passed in plaintext.  Even over SSL/TLS, this is clearly not a good practice, but is all Nexleaf supported.

The integration is fairly simple:  when one of the integration points is invoked (such as the "View Cold Chain Status" button), OpenLMIS issues a call to the Nexleaf API and uses the reply to populate data in the OpenLMIS display.  

The base URL, username and password are stored in the OpenLMIS properties file.  A fourth property lists which distribution zones are running Cold Trace.  This list helps the UI decide if Cold Trace data should be displayed, and used as a filter in the API request to Nexleaf.  An example of the property file entries:

nexleaf.api.user = username
nexleaf.api.pass = password
nexleaf.api.url = http://uar.coldtrace.org/coldtrace/api/v1/fridges
nexleaf.deliveryZones = norte-gaza, sul-gaza, norte-niassa, sul-niassa, rota-1-tete, rota-2-tete, rota-3-tete, rota-4-tete, rota-5-tete, rota-6-tete

This deliveryZones filter is important, as when OpenLMIS asks Nexleaf for data, it is always in the context of a particular facility/delivery zone.  Nexleaf expressed concern that the data size would be too great, and were in fact believing and hoping OpenLMIS would cache the data, refreshing only on regular intervals.  This was outside of previously agreements, so Nexleaf implemented the delivery zone filter.  A description of the filter as written by Soldevelo is attached:  coldtrace-conf.pdf

 

 

Â