Design of an Interactive Mobile Application for Maternal, Neonatal and Infant Care Support for Tanzania

Reducing maternal and infant deaths’ rates in the developing countries, particularly in sub-Sahara Africa, remain a big challenge. Despite efforts by governments, the reductions have been unsatisfactory. To accelerate the reduction in maternal and infant deaths, m-health has been proposed as a viable, economical and effective intervention, able to reach the low income and disadvantaged groups. Mobile phone-based applications are among the m-health interventions that have been found to have positive outcomes for different healthcare challenges, such as improving clinical attendance and skilled delivery, and reducing perinatal mortality. However, the adoption of smartphone-based applications for health in Tanzania has been slow. Some of the likely contributing factors might be low technology exposure by the majority of the population and English language skills’ limitations. In this work, we developed a mobile application for providing interactive support to users, thus complementing other solutions available such as SMS and other smartphone apps. The main advantage of this app is the presence of interactive features that enable patient-provider communication. We adopted the Rapid application development (RAD) model for developing the application. We used UML modeling language tools for designing the application. The mobile application’s technical architecture uses various technologies and system development tools such as PHP programming language for the web application, MySQL database management system and Android Studio mobile application development platform.


Introduction
Maternal mortality is the deaths of women during pregnancy, delivery or within 42 days after delivery. Infant mortality is the deaths of infants of less than one year of age. Maternal mortality and infant mortality remain among the major healthcare challenges in the developing countries. For example, during the year 2015, the average number of maternal deaths per 100,000 live births in the developing countries was 239, versus 12 in the developed countries [1]. Moreover, during the year 2016, estimated 4.2 million infants died during their first year of life, accounting for 75% of deaths of children aged less than 5 years ( [2], p. 71-98). Further, it is estimated that 99% of these maternal and infant deaths occur in developing (low-and middle-income) countries, particularly in sub-Sahara Africa where Tanzania is located. Recent statistics by the Tanzania demographic, health, and malaria indicator survey of 2015-2016 revealed that maternal and infant mortality were 556 per 100,000 and 43 per 1000 live births respectively [3]. This shows that the number of maternal and infant deaths in Tanzania is much higher compared to the average figures of the developing countries.
Consequently, a number of interventions have been used throughout the healthcare system to reduce maternal and infant deaths worldwide. Among them is E-health interventions. E-health has been identified as potentially effective, economical and viable solution that may have a significant impact in healthcare. One of these e-health solutions is the application of mobile phones or mobile health (m-health). WHO [4] defined m-health as, "medical and public health practice supported by mobile devices, such as mobile phones, patient monitoring devices, personal digital assistants (PDAs), and other wireless devices" (p. 6). M-health may improve patient-provider communication, healthcare information management, drug reminders, etc. [5]. Generally, in applying m-health, healthcare providers extend their services to more users, hence achieve m-health goal of making healthcare services accessible anywhere, anytime [6].
M-health has received attention from both researchers in academia and industries alike. Several studies in the developed countries have shown the usefulness of m-health through improving provider-patient communication and assisting in disease management [7]. Similarly, m-health studies from developing countries have also shown positive outcomes. For example, SMS application has been found to significantly reduce perinatal mortality [8] and improve antenatal care attendance [9].
M-health has been applied in several projects in Tanzania. A desk review conducted by Barnett & Srivastava [10], identified 31 active m-health services in Tanzania. Three programmes were identified for promoting maternal/child health. These were Wired Mothers Initiative, Child Count++, and "Healthy Pregnancy, Healthy Baby" (HPHB). Wired Mothers Initiative and Child Count++ programmes were SMS based programmes that aimed at linking mothers to healthcare providers and assisting communities in improving child survival. The scope of these programmes was small, targeting only one geo-graphic area. HPHB is an ongoing Programme funded by Center for Disease Control (CDC), USAID, John Hopkins and other donors. HPHB runs the "Wazazi Nipendeni" campaign (Swahili for "Parents love me"), which provides free text messages in Swahili to pregnant women, mothers with newborns up to 16 weeks old and their supporters.
Absence of programmes that have targeted smartphones in Tanzania may indicate that smartphones are still considered items for the middle income and the rich. However, during the recent years, smartphones prices have rapidly decreased to as low as $50 per piece. Consequently, many people with low-income in both rural and urban areas own smartphones. Recent studies such as those by Neumann [11] and Poushter [12] have found that smartphones ownership and internet penetration continues to grow rapidly Tanzania.
Despite the worldwide rapid proliferation of m-health mobile applications [13], very few of them are in use in Tanzania. Majority of these applications are developed, maintained and updated according to the requirements of the developed countries. Very few of these applications are aimed at resolving the critical healthcare challenges of the developing countries. Barriers to the slow adoption include limited understanding of English language and technological exposure. Majority of Tanzanians can communicate only in Swahili, making the available mobile applications accessible to only few [14]. Furthermore, very few m-health apps on google store have Swahili language support.
In addition, the available mobile applications in Tanzania have adopted very few functions of smartphones leaving many interactive features unutilized. Interactivity includes real time or delayed time communication, which allows sharing of text, audio, images, location, video etc. An Interactive mobile application may have discussion forum, m-learning with questions and answers, context awareness such as location context and nearby hospitals discovery [15]. Interactive features makes it easier for patients to communicate with healthcare professionals in real or delayed time, discover nearby hospitals and services offered, set reminders, and interact with other users through discussion forum and questions and answers.
In this study, we developed an interactive mobile application for providing support for pregnancy, antenatal and infant care. The mobile application has six modules namely, live chat, directory, healthcare information portal, reminders, latest news, and discussion forum. This application aims to enhance support services using interactive features. It provides users with interactive features that allow healthcare providers to engage with patients before they arrive at a health facility, define reminders of important events, discover health centers nearby, and engage in discussions relevant to pregnancy, neonatal and infant care. Moreover, it allows the user to choose default language after installing the mobile application on his/her mobile phone.

Methods
To implementation the proposed application, Rapid Application Development Journal of Software Engineering and Applications (RAD) model was used. RAD is agile based software development methodology.
RAD model emphasizes on creating a working prototype of the software or module and user feedback over strict planning of requirements used in Waterfall models. The objectives of RAD are to obtain high quality systems much faster and at lower cost [16]. RAD uses an incremental and prototyping approach to generate phased deliverables. Prototyping allows the development of the system in an iterative manner. Developers after the initial investigation develop a working prototype of the system and then discuss it with the users for further enhancement. The process is repeated several times until the users are satisfied with the system. Figure 1 shows the Rapid Application Development Model used to develop this mobile application.
To create the initial prototype, brainstorming was used. Initial user's preferences obtained using a questionnaire at two hospitals in Dar es Salaam, Tanzania, were translated into modules of the initial prototype of the mobile application. Brainstorming leads to better problem understanding and feeling of common ownership [17]. Initially, a list of features was drawn from the user's preferences by the software development team. This list was further discussed and arranged into possible modules of the initial prototype. Eleven modules were initially proposed by the team. The initial modules were user accounts, live chat, directory, map navigation, m Learning, reminders, news, alerts, discussion forum, personalization, and settings. After consultation with selected healthcare professionals, these modules were re-arranged into eight modules as described in the functional requirements in the next sections of this paper.

System Modeling
System modeling is a process of creating abstract models of the system. Each model is used to present a view of the system according to some perspective ( [18], p. 139). System modeling for this study uses context and interaction models represented graphically using Unified Modeling Language (UML). The models help clarify the requirements to users and explain the system to other stakeholders. System models can also be used to auto generate full or partial classes of the system and database tables.

Use Case Modeling
Use cases diagrams explain how one or more actors interact with the system.
Use cases describes what the system does i.e. its functional requirements in response to user inputs ( [19], p. 74). To generate the use cases, first we identified the actors on the mobile application. An actor represents a role played by someone who interacts with the system. Any actor of the mobile application has some access rights on some functions. Based on the access rights, we generated three types of users, administrators, healthcare professionals and normal users.
After identifying the actors, we categorized them according to the expected functions the user needs from the system. A normal user can usually access the mobile application's basic functions such as chatting, health information portal, discussion forums, and healthcare directory. Some functions require the user to log in to the system. Before logging in, a user must create an account in the mobile application. A healthcare professional has more functions than those available for a normal user. A healthcare professional is the main content creator for discussion forums and health information portal. A healthcare professional like a normal user, has to create an account in the mobile application in order to manage information in the mobile application. An administrator has access rights to perform critical system functions, thereby making the mobile

Data Flow Diagram
Data flow diagram (DFD) is a system-modeling tool used to depict graphically the flow of information between actors in an information system. Context level DFD shows communication between the entire system and external entities. This context level DFD is further expanded to show more details as of the systems and its components, thus generating DFD level 1, 2, etc. until enough details are revealed. For this mobile application, we present the context level DFD.
We focus on the flow of information between users, administrator, and healthcare professionals.
Users, administrators and healthcare professionals have accounts in the mobile application, namely "User details". These details are created when a user interacts with the application using the "User Registration" module. A user is registered by filling a registration form with necessary details to create an account.
After registration, any type of user may log in to the system using the "Login" functionality.
Any person can install the application and get access to the general information available on the mobile application. However, registered users and healthcare professional can interact with other registered users through main modules namely "Live Chat", "Discussion forum" and "Health centers directory". The interaction, which is the main objective of this study, empowers users to get specific and timely responses from healthcare professionals based on their needs. Live chat, apart from text and images, enables a user to share his/her location, which may further improve the way healthcare providers handle emergency cases for patients. Discussion forum enables healthcare professionals to share useful information related to pregnancy and childcare using the application. Healthcare centers directory adds to the interactivity of the application by enabling users to locate nearby health centers and the services offered at these centers on a map. This function may improve decision making on which center to go for a particular service by the patient. Figure 3 shows the context level-data flow diagram for the mobile application.

Requirements Analysis
Requirements of a system are the descriptions of the services that the system should provide and the constraints on its operations. The term user requirements, is used to mean the high-level abstract user statements in natural language or diagrams of the services expected from the system by a user. On the other hand, system requirements are the detailed description of the software's functionalities, services and constraints ( [18] p. 102). Requirements analysis specifications involve functional and non-functional requirements. Functional requirements state the expected system behavior in particular situations, system response to certain inputs, and form of services, tasks or functions of the system. On the other hand, non-functional requirements capture required properties and constraints of the system that apply to the system as a whole rather than any individual system feature. These constraints are usually imposed by standards ( [18] p. 102).

Functional Requirements
In this study, we designed eight modules namely, User Accounts, Live Chat, Directory, Health Information, Latest News, Discussion Forum, and Settings. Table 1 provides the functional requirements for the modules of an interactive mobile application for maternal and infant care support.

Non-Functional Requirements
In this study, the non-function requirements of the mobile application include security, privacy, scalability, operational requirements, robustness, performance and compliance to local standards. Table 2 provides the non-functional requirements.

System Design and Results
System design is technical translation of output of the analysis phase aiming to produce a more technically elaborate proposed solution. Mainly the functional requirements and constraints form the major inputs to the system design phase of the software. Design phase of this mobile application was done on three components which are system architecture, database and user interfaces.

Application Architecture
Application architecture defines the interactions between different components of the mobile application. The main components are the mobile application, web and database server and web services, users and access devices. Information such as user's details, hospitals directory details, and healthcare professionals are Journal of Software Engineering and Applications stored in the databases. Some information such as healthcare professionals may be obtained from external hospital management database. Web services are used to transfer information between the mobile application and the web application.
The app mobile application provides different interfaces for users to do some activities on the system. Figure 4 describes high-level architecture of the mobile application for maternal, neonatal and infant care support. The mobile application connects users at health centers and hospitals to users who may be located far away from the health facility. The system has two major components, which are the mobile application and a web application.

Android Mobile Application
Since 2011, Android has been the leading Operating System (OS) for smartphone devices worldwide with more than 70% of market share [20].  This app must allow user to create account. User must be able to register for the application by creating an account using a name, valid phone number, username and password. The username must be alphanumeric and must not be already used by another user. The password shall be any characters including numbers and special characters, with a minimum length of six characters. The user's username shall be the unique identifier of his/her account on the application.

FR002: Login
User must be able to login to the application using created username and password.
A login interface appears when a user touches the login link or attempts to open a function that requires login. Errors will be displayed if any of the option is left blank, or either of the supplied username/password do not match or do not exist in the system. If the username and password matches, the application shall give permissions to use more features of the system such as sending message to live chat, discussion forum, setting reminders. Users must be able to log out of the application when they want to end a session. After a user logs out, all the privileged functions become unavailable for use by the user.

FR007: Change Language
User must be able to change language between at least two languages English and Swahili.
Module 2: Live Chat (provides users ability to interact with healthcare providers)

FR008: Send Message
Users must be able to initiate a chat session and send text message. Another user logged in as healthcare provider shall be able to respond to messages from users.

FR009: Share attachments
User should be able to send images and documents as attachments. Application should support jpg, png, and pdf. File size must not exceed 2 MB per message.

FR010: Share location
User should be able to share location on the chat showing active location of user as a Google Maps screen capture. The screen capture can be opened for more details.

FR011: Show direction
Healthcare provider from a hospital may be able to see the directions on a map to the user active location.
Module 3: Directory FR012: List Directory User must be able to view a list of all hospitals, in alphabetical order. A user may filter hospitals based on location (region, district or ward).

FR013: Show hospital details
User must be able to display details of a hospital by selecting it on the list. Particulars such as name, physical address, mobile/phone numbers, website URL, and services offered shall be displayed.

FR014: Nearby Hospitals
User must be able to view nearby hospitals relative to his active location. The nearby hospitals shall be shown as points on Google Maps on which a user can open to reveal details of the hospital.

Module 4: Discussion Forum
FR015: Create a discussion A logged in user must be able to create a discussion. A user shall select among the categories such as pregnancy, childcare, etc., to which the discussion is about, the title and content of the discussion. Discussions created by users other than healthcare professionals and administrators must be approved by the administrator or by a healthcare professional to be visible to all users.
FR016: Contribute to discussion A registered user must be able to contribute to a discussion. Only logged in user will be able to contribute to a discussion. Administrators and healthcare professionals will be able to see all contributions. Contributions created by users other than healthcare professionals and administrators must be approved by the administrator or by a healthcare professional to be visible to all users.
FR017: Delete a discussion or comment A user who created a discussion post must be able to delete a post. When a user deletes a discussion, all associated comments are also deleted.
In addition, the administrator may delete or make a discussion invisible.  The application should define a way for confidential access for example using usernames and passwords. The application must ensure privacy and compliance with regulations on patients' data sharing. The application should be secure from various security challenges such as hacking, denial of service, etc.

NFR002: Scalability
The application must be able to provide services to at least 1000 users concurrently.

NFR003: Privacy
The application must be able to ensure privacy of user information.
The application must provide for protection of user information such that only the intended recipients may access user information.

NFR004: Robustness
In the case of user changing a device or device malfunction, the user must be able to obtain their history of created contents such as chat history, reminders, etc.
NFR005: Performance Application must be lightweight and must allow delivering messages instantly NFR006: Operability The mobile application shall support Android OS version 4.0 (API 14) and above.
The web application shall be written using PHP Programming language. The web application shall interface with MySQL database and shall be able to connect to external HMIS database. In this study, the mobile application uses JavaScript Object Notation (JSON) format of data transmitted from the web server to the mobile application to create a user's view on his/her mobile phone. JSON [21] represents text data based on key-value pairs of unordered lists. JSON is supported by most major Journal of Software Engineering and Applications programming languages and is used commonly as a preferred information exchange format between web clients and servers.

Web Application and Database
The web application part is implemented using PHP programming language. PHP is the most widely used programming language for web applications. It is open source programming language, therefore freely available for use. It supports many databases including MySQL used in this study [22]. MySQL is a robust, free and reliable Database Management System (DBMS). It uses the standard Structured Query Language (SQL). It enables developers to deploy high performance and cost effective database driven systems. MySQL provides developers with flexibility to implement many features for high system performance such as replication, clustering and indexing as well as ability to implement outstanding security features on the database [23].

Database Design
Database design for this application followed the Entity-Relationship (ER) model. ER model shows graphically how entities are related to each other within a database or an information system. An entity represents things of interest that may have one or more attributes. A relationship is an association between these entities. ER model is a graphical representation of the database of a system also called ER diagram [24]. Relational databases can be represented graphically using Entity-Relationship diagrams. Figure 5 shows the ER diagram of the database for mobile providing interactive support for maternal, perinatal and infant care.

User Interfaces
User interfaces of a software seek to promote rich, engaging interactions between users and the software. The mobile application provides users with interfaces that make it usable. These interfaces enable users navigate different functions of the application intuitively. Figures 6(a)-(e) show the interfaces of the mobile application.

System Testing
The mobile application went through three tests, namely unit testing, integration testing, and user interface (UI) testing. We employed both manual and automated testing techniques.
We employed functional testing technique to perform unit testing of the mobile application throughout the project during implementation of each module. We use functional testing to verify that each functional part of the software as well as business rules conforms to the requirements specification. For this application, functional testing was done using a combination of manual tests and using automated test scripts generated using JUnit available on Android Studio ( [25], pp. [15][16][17][18][19][20][21][22][23][24]. Journal of Software Engineering and Applications Integration testing was used to test the collective working of the modules of the mobile application. User interface testing was also done using various test cased on the graphical user interface such login screen, chatting interface, discussion forum etc.
The mobile application is yet to be tested at a real user environment where various acceptance tests shall be conducted. The researcher is awaiting approval from two centers where the tests are to be conducted.

Conclusions
This mobile application for maternal, neonatal and infant care support provides pregnant women and infant mothers with a range of interactive features which address the challenges of inadequate support they receive before they physically arrive at a health facility. The application takes advantage of the rapid growth of smartphones' ownership and internet penetration in Tanzania. It gives users the ability to communicate with healthcare professionals, access knowledge portal, set reminders of important events such as infant vaccination and clinical attendances, discover healthcare directory on an interactive map and engage in discussion forums.
Therefore, this application adds on the other interventions especially m-health related interventions aimed at reducing the high maternal and infant deaths in Tanzania. It is developed by considering local environment and challenges. These challenges are such as language barrier which is addressed by ability to switch language, and local content ownership, where doctors and healthcare professionals in Tanzania hospitals and health centres are the main content creator in Swahili language. The mobile application is able to link healthcare service providers and patients in both real and delayed times, allowing patients to learn and communicate.