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).
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