Africa COVID-19 Response Toolkit: API
This post is the third of a series on the Africa COVID-19 Response Toolkit, an open-source digital reporting platform developed by the Ethiopia COVID-19 Response Team, highlighting its purpose, key features, and instructions for deployment.
The goal of the API initiative
As part of the Africa COVID-19 Response Toolkit (ACRT) developed by the Ethiopia COVID-19 Response Team (ECRT) has developed an Application Programming Interface (API) that can aggregate information collected digitally, whether through existing tools or our suite of COVID-19 purpose-built data collection tools. Our goal is to make this API available for other response teams to leverage what we have built for their own communities and countries while saving valuable time resources in the process.
This API can be used by developers, engineers, and data scientists to create visualizations and models useful for any response effort. When combined with the other ACRT open-source modules COVID-19 reporting and tracking system. It is a plug-and-play solution that only requires a database setup. If more customization is needed, the API can be customized for any number of unique needs.
Intended use and technological stack
This API was developed to act as a read and write gateway for the ACRT data repository. Upon submission of community, medical and other forms (using API endpoints), the data is stored to the database (in our case, this is AWS).
Additionally, case tracking and followup applications use the stored data to follow up on suspects and update their details. Using the API, the surveillance visualization dashboard exposes the collected data for users with authorization.
The API endpoints are AWS Lambda functions, built-in NodeJS. AWS Cognito is used for authentication and authorization and DocumentDB is used as a data store.
Continuous improvement
The API for Community, Passengers, Medical Facilities and Surveillance Forms are developed and in combination with Dashboard and Forms make it easy to reproduce our project in other volunteering groups with technical expertise and focus, which is the overall goal of this initiative.
Our next steps are to develop a toll-free API intended for the collection of data from the call centers where the call center operators could process and submit relevant information to our databases so we could incorporate them to the case tracking system and dashboard.
Data Structures Supported by API
Community
- The community endpoint stores data coming from a community form (Also publicly available for use here)
- Community data structure gives you an easy way to utilize this data model and in combination with the form, make the implementation of COVID suspect cases reported by the community in your application much faster and easier.
Passenger
- The passenger endpoint stores data coming from the passenger registration form filled at the point of entry by the governmental official (initially by the passengers themselves upon arrival, that will generate QR code that they have to print and take to the doctor or nurse at the airport). The form is available here.
- Passenger endpoint gives you an easy way to process and store data about potentially sick passengers at the point of entry in your application.
Medical Facilities
- The medical facilities endpoint store data coming from the health facilities registration form filled by the medical personnel. This form is available here.
- Therefore, it gives you a quick way to process and store accurate data about the spread of the COVID-19
Surveillance
- Surveillance endpoint saves COVID-19 related statistics and other external data into the database and consequently connects them to the Dashboard itself to keep it up to date. It is the main endpoint that aggregates all the data into the Dashboard, which is publicly available (You can reproduce it and connect it to your own dashboard to set up tracking in your geography/country). You can read about the dashboard initiative in detail here.
Screenshot of the dashboard where surveillance API endpoint pushes data into
What we’ve learned
This product was built with the aim of delivering the core value as quickly as possible and so we chose to build tools on the shoulders of the giants rather than re-inventing the wheels. Specifically, we leveraged amazing lambda functions available in the AWS environment that saved us a lot of time and work. Therefore, the architecture is robust, scalable and is able to support future enhancements.
Ultimately, this API is still inherently useful as we increased our scope from helping Ethiopia to helping Africa and every nation/government in it. By building it, we enable a relatively small group of engineers to set up a tracking system for the COVID-19 cases in a matter of hours and deploy it in other countries and communities that might not have existing tracking systems in place so they can focus on implementing it by making sure that it gets into the right hands and that the right people submit these forms be it doctors, border control officers or individual citizens).
The Africa COVID-19 Response Toolkit is a blog published by the Ethiopia COVID-19 Response Team (ECRT).
Sign-up here to join our mailing list to receive updates and more insights from the Ethiopia COVID-19 Response Team.
If you’d like to submit a story to the Africa COVID-19 Response Toolkit, comment below or connect with us on Twitter, Instagram, Facebook, and LinkedIn.