I write a mobile medical app for project REDCap that is mainly used for data collection offline. It is mainly downloaded in the United States, but the most interesting use cases occur in Africa. Africa contains cellular signals and WiFi signals that don’t work all the time. In other words, the connection is sporadic or non-existent. Tangentially, most of Africa completely bypassed the land-line phase of telephone lines; they jumped in the game right with cell towers.
REDCap is one of the few medical apps that’s deploying on a global scale though others will surely follow. Periodically I’ll share insights & lessons learned in this project to help guide others that launch medical apps on a similar scale.

Keeping your medical app updated

We’ve had issues with people losing connection in the middle of data syncs and data downloads with our medical app. Thus, we have had to be really careful to confirm that each record has indeed been uploaded. We’ve incorporated retry loops in our uploads to retry each important data upload a maximum of five times.

Another issue we’ve faced is that studies with multiple tablets should use the same version of medical app software. I’ve been known to throw out a few Google Play updates in the same day, each with small bug fixes. If two out of four tablets go into, say, a restaurant with public WiFi, they might auto-upgrade. This would put them out of sync with the other tablets.

The REDCap web service is fairly extensive. Version control is much more expected there as a system administrator handles upgrades at a set version level. We are beginning to attempt the same with our mobile service. We are working on establishing our own Android web store wherein one can download a particular version out of a list. iOS does not permit such stores that interface with the world.

Overcoming the Language Barrier

Our medical app is very global. Built on a web service that is in 100 countries, it reaches from the most remote sites of Africa into the homes of North America. People use data collectors to perform the data collection, and those data collectors have varying levels of proficiency in English. Thus, we are permitting translations of the app’s interface to occur ad hoc. This allows studies in French in France to act differently than studies in Portuguese in Brazil or even in French in Mozambique. Language seems ultimately a local phenomenon, so locales are especially important.