Western Cape is one of South Africa’s 9 provinces; the region has a population of 7.5 million people with over 5 million of the people relying on public healthcare services. The Western Cape technical team has collaborated with other stakeholders, research institutions and non profit organizations to implement the Community Health Action Mobile Platform (CHAMP) project. This initiative aims to strengthen community based healthcare services delivery to underserved communities through reliable, location linked actionable health data for decision support. The CHAMP intervention is part of the Health Intelligence Directorate under the Provincial Health Data Center (PHDC). Through the project, the teams have designed and deployed the CHAMP app, a CHT powered app that supports CHWs and Outreach Team Leaders to provide community health care services and home based care. The app is currently deployed in two areas; Nomzamo and Bishop Lavis, both sites are also part of Cape Town Systematic Healthcare Action Research Project (C-SHARP). C-SHARP is a collaborative healthcare and research study involving a number of academic institutions, it combines community-oriented primary care with research based surveillance to track household trends, support evidence based decision making and policy development.
The CHAMP project baseline data collection started in November 2023, during the registration process; the team observed duplicate numbers of households and individuals being captured. A closer look at the data collected uncovered widespread duplicate entries (with around 10 % of the dwellings duplicated). Further investigation showed that CHWs were revisiting previously registered and creating new entries instead of updating the existing ones; this was caused by CHWs misunderstanding of how the CHT search functionality works, missed matches when searching contacts, confusion between dwellings and households and lack of standardized training. To resolve this issue, the team carried out targeted training for specific CHWs, they developed and deployed design icons to support users to differentiate dwellings and households and implemented search bar changes. These interventions were not enough since duplicates kept growing, this made the project team to start thinking of a robust solution that would help reduce duplication at the data entry level. Previously CHWs were used to duplicate warnings of an earlier app version.
To come up with a long term solution, the team explored the behind the scene architecture of the CHT and came up with the idea of comparing the current document with the parent document descendants to help display possible duplicates. This idea translated into a working proof of concept. After sharing this idea on the forum, the Western Cape team got feedback that this feature would benefit the larger CHT community. A github issue for the enhancement was opened using the provided template, the team also made changes to cht-conf for properties expression support. The community helped to review the pull request, guided the technical implementation, worked with the team to simplify the logic and ensure the configuration changes are integrated cleanly. This feature is now available in CHT v4.19.0.
In our June Round-up call, @Anro showcased how the duplicate contact feature works. The default matching strategy is applied to both places and people and it checks for name and date of birth similarities. The matching logic is configurable and can be customized to project specific needs and data structures. The contacts will be considered duplicates if Levenstein distance between the two names is less than or equal to 3 (requires 3 or less changes for the two names to match) and the date of birth is one year within each other. It is possible to expand the possible displayed duplicates to access contact profile information. A user can submit a contact registration form by confirming that the contact is not a duplicate entry. The duplicate section is a sticky footer, that means that the section remains visible even if the form turns multiple pages. This helps a user to compare details across different pages. The functionality for retrieving duplicates uses two views, these are: contacts_by_parent and contacts_by_type.
Thank you @Anro, @cleohwinya and the Western Cape Project Team for the inspiring presentation and demo. You can watch this presentation here.