Post authored by Stefan du Fresne, Medic's Engineering Manager.
Welcome to a fresh decade, and a fresh release of the Core Framework! This release is the first of many planned for 2020 and focuses primarily on re-building our tasks and targets engine from the ground up to use less memory, run faster and allow for more flexibility and analysis. We’ve also added the ability to create places via SMS, and improved the replication workflow for offline users.
Tasks and Targets, reborn!
Previously, tasks and targets were generated on the fly on the user’s device. This was great for certain performance characteristics and was acceptable because at the time this data wasn’t considered helpful outside of the device. However, over time both the flexibility of the Core Framework and the volume of data CHWs work with has grown, it has become clear that there are significant benefits to having task and target accessible to other aspects of the framework.
To achieve this, tasks and targets have been reworked significantly. They are now powered by task documents and target documents, which are written to PouchDB on the user’s device, and replicated to CouchDB, and in turn PostgreSQL via couch2pg.
As task and target data is exposed in CouchDB and Postgres, queries can easily capture how tasks and targets are behaving for users in the field.
These changes also set the foundation for powerful collaborative supervisor features to come in the future. In addition, these changes should improve performance for offline users. There are more nuanced considerations detailed in the release notes, but in general, memory usage has reduced significantly, as has startup time.
We look forward to hearing about your experiences with these changes, and would love to hear from you in the CHT forum!
Create Places via SMS
SMS users will be delighted to hear we have expanded the functionality possible via SMS to include place creation. For example, Core Applications can now be built to support CHWs creating families and people, direct from their SMS capable phone.
Sync status has been reworked to be clearer and more helpful for users. Specifically, it now specifies whether a lack of syncing is due to a missing internet connection.