1 Introduction

Early years of life of children are regarded as the golden period [1], which is the ideal time when children form their future habits [2]. If an infant’s health is impaired in the early years, it will usually last a lifetime [3]. Thus, infants’ growth should be monitored to detect and modify any deviations from the appropriate growth standard. Growth refers to specific body changes and increases in the child’s size including height, weight, head circumference, and body mass index.

Growth monitoring determines the desirability of infants’ growth [4]. The main aim of growth monitoring is the early detection of growth disorders [5]. Various factors can result in the deviation from the desirable growth. The most important factor is nutrition, which provides the necessary energy for different activities and helps the body to avoid diseases [6]. It can also prevent the prevalence of chronic diseases or reduce their intensity [7]. Near 25 to 50% of infants have nutritional disorders. In this regard, there are some concerns about low weight gain, obesity, essential nutrient deficiency, and poor dietary variety [8]. According to previous studies, the majority of mothers do not have the necessary knowledge about the appropriate nutrition for their infants [9].

Pathogens are another important factors influencing a child’s growth. Regular vaccination can immunize a child’s body against pathogens. However, some mothers have difficulty in remembering the vaccination dates of their children [10], and some others do not have enough information about necessary care for the prevention of diseases or childcare at the time of a disease.

In this regard, a standard continuous visit schedule is used to assess the infants’ health and growth. In these visits, the infants’ growth is measured and disorders regarding the growth curves are evaluated. Besides, the nutrition status and manner, vaccination, illness symptom, history of illness, as well as hearing, vision, oral and dental status are monitored. Finally, the infants are screened for specific diseases such as autism. The main challenge with this program is that parents may find it difficult to have access to the doctor and treatment centers whenever they have questions or concerns about their infants. This challenge is more evident for parents living in remote rural areas. Therefore, the issue of this study is to build a smartphone-based system that can reduce the difficulty of in-person referrals, establish a suitable collaboration between the physician and parents, and provide the ability to monitor growth, health and nutrition at any time and place.

Smartphones have overcome the portability constraint of personal computer systems and provided access to health information in anywhere and at any time [11]. Therefore, nowadays they have become a popular and powerful platform for developing mobile health [12]. Mobile health (m-health) services lead to the early prediction and management of every abnormality or disorder [13, 14]. In addition, using pervasive computing in healthcare systems reduces costs and improves services for patients. Besides, doctors and nurses become enabled to monitor and take care of patients in anywhere and at any time [14].

In pervasive computing, applications adapt their behaviors with contextual information and act, accordingly [15]. Context is a type of information that can be used to characterize the situation of an entity (such as a person, place or object) [16]. Combining m-health services with context-awareness increases their usefulness and popularity [17]. However, mobile devices still have difficulty in running huge software programs [18]. Transferring all or part of the processing and storage operations to the cloud is an appropriate solution to this problem [19]. Actually, the advantages of cloud computing such as platform flexibility, interoperability, and providing on-demand services have made it the perfect solution for data integration as well as pervasive health monitoring [20]. Leveraging new technologies in childcare can have a significant effect on their appropriate growth.

Several research studies have presented m-health systems for childcare. However, the majority of them are not based on the state-of-the-art scientific references. Besides, the quality of information provided by commercial m-health applications is often rated as quite poor [21]. Moreover, the majority of designed systems do not meet all parental needs in a way that parents have to use several applications, simultaneously, to fulfil their requirements. For example, some applications only deal with malnutrition, some with obesity and overweight, and so on.

This paper proposes an infant growth monitoring system, based on the well-known scientific references in this area [4, 22,23,24], The proposed system, which consists of parental as well as physician sides, provides three major functionalities including child growth and nutrition monitoring, child health monitoring, and doctor intervention capabilities. The context-awareness technology is used to make the system intelligent and predictor so that suitable services can be provided by modeling the current situation. Furthermore, cloud computing is employed to resolve the low computing power and storage shortage issues of smartphones.

The proposed Pervasive Infant's Growth monitoring (PIG) system is implemented by Java-based Android programming language [25] for Android-based mobile phones. It is evaluated using the Software Architecture Analysis Method (SAAM). The results indicate that PIG is more comprehensive than other similar systems and bears more functional capabilities.

After this introduction, the next section reviews previous research on growth monitoring, childcare, and child nutrition systems. In the third section, various scenarios are presented to investigate the system requirements. The fourth section describes the architecture of the proposed PIG system. Afterward, the system is evaluated, and the results are analyzed in Sect. 5. Finally, Sect. 6 expresses the conclusion remarks and discusses the future research directions.

2 Problem definition

Today, the health situation of infants and children has gained much more importance than ever [26]. Child development monitoring is the main tool for assessing health situation. Child growth is defined as “the change in weight, height, and circumference of head”, and child development is defined as “the process of change in which a child comes to master more and more complex levels of physical activity, thinking, feeling, communicating and interactions with people and objects. This is sometimes expressed as physical, cognitive, emotional and social development” [27]. Therefore the term “growth” refers to physical changes, while the term “development” refers to various dimensions of a child’s life [27].

Proper growth, which follows a natural growth pattern can show that a child has general health, while abnormal growth indicates that the child needs special care [28]. There is a strong evidence that poor physical development is usually associated with a lack or delay in mental development, according to which the state of physical growth and mental development are closely related [26]. Among various growth factors, poor nutrition, diseases and infections are more important and effective [26]. Child growth monitoring is a key part of children's healthcare programs [28], which are performed by health experts in most countries of the world to evaluate the nutritional as well as health status of the children [29].

In this regard, various standards and charts such as WHO and CDC have been provided to assess child growth. They are recognized as common and inexpensive indicators for measuring the health and quality of life of children. According to the World Health Organization, these indicators should be checked regularly for the children under 5 years old [26]. World Health Organization defines growth assessment as an effort to evaluate the health of the entire population [27]. Therefore, growth assessment is not only a tool for assessing the health and nutritional status of children, but also provides an opportunity to indirectly measure the quality of life of a population. The usual routine for growth monitoring is to measure body parameters, draw their charts, and compare growth status to the normal and abnormal growth charts [29]. The purpose of growth monitoring is growth disorder identification, nutrition management, and malnutrition identification in order to diagnose obesity and overweight, and to monitor the child's behaviors, health and other factors that affect their development [26, 29]. Growth assessment is able to improve children's growth and health by early diagnosis of growth disorders and appropriate responding to them [29]. The late discovery of growth disorders can lead to the continuation of them into adulthood and endangering the quality and health of the child.

The related standards provided by the World Health Organization are easy to understand and use. They depend on the criteria for measuring the human body, which do not need advanced technical or specialized equipment. Besides, advanced computational methods are not required to infer and interpret data. Finally, the data from these indicators offers a solid basis for the global comparison of children's health and quality of life [27]. However, there is still disagreement about their effectiveness:

  • Growth standards can vary depending on the geography of each country and the use of a unique standard can lead to mistakes. Therefore, doctors and health experts should customize the standards according to the local situation.

  • The growth chart only shows whether the child has grown properly. To properly monitor the child growth, it is necessary to have comprehensive information about their health, growth, and nutrition history as well.

  • To assess children development, they must visit the health centers regularly and continuously. Lack of timely referral can lead to the loss of some information.

  • Parents and health experts can access each other during visits. It is essential to create a secure electronic or mobile communication channel that can provide interaction between health experts and parents at any time and any place.

  • In many areas, current growth charts are based on paper in which health experts enter children’s information. By using an electronic platform, the storage and interpretation process can be improved [30].

By considering the above challenges, the main purpose of this paper is to provide a mobile platform for recording growth, nutrition, and health information of children.

3 Related work

Based on the purpose and area of study, the children healthcare systems can be classified into growth monitoring, child healthcare, nutrition monitoring and hybrid systems. The related research of each class is reviewed in this section. It should be noted that there are various applications in the field of child care. We investigate the mobile apps that meet the following conditions:

  • The application addresses at least one of the child's nutrition, health, or growth issues.

  • The application focuses on healthy children, not children with certain illnesses or premature babies

  • The application has a high number of downloads. (more than 50,000 times)

  • The application has a high popularity rate.

3.1 Growth monitoring systems

Monitoring growth of infants continuously and detecting poor growth as soon as possible are the important actions that should be taken to protect a child’s health. Growth disorder means that a child falls either below or above the normal range of growth for the criteria of child's age, gender, family history, or racial background. Early screening and diagnosis of growth disorders as well as timely intervention to resolve them are essential to improve the health situation of the child in adulthood. Therefore, standards and flowcharts have been developed to identify growth disorders. The most common standard is the World Health Organization (WHO) standard, which uses height for age, weight for height, and Body Mass Index (BMI) for age [22]. These standards are often used by health care providers and are less common among parents. With the development of mobile healthcare, the idea of implementing these standards as a mobile application has been investigated. For instance, the “healthy infant weight?” application [31] predicts the risk of obesity in babies aged between 0 and 2 years old. Similarly, another mobile application [11], has been presented to detect obesity in people aged between 2 and 24 years old with respect to Body Mass Index (BMI).

Furthermore, there are other applications, among which “Baby Development-Growth Log” [32] is mainly intended to draw growth charts. The “Child Growth Tracker” application [33] is one of the top rated Google Play apps for monitoring child growth. The app records the criteria for height, weight, head circumference, and then shows the child’s growth status from birth to age 20. The interesting point about this app is that the growth charts change according to different geographical areas. For each geographical location, it provides a graph related to that region. The “WHO growth standards” app [34] is provided to review children’s growth criteria based on WHO growth standards. In this application, parents enter age, arm circumference, weight, height, and head circumference; then, the child's growth status is shown. AnthroCal [35] is another app for assessing children’s growth that provides weight-for-age, height-for-age, BMI-for-age, weight-for-length, head circumference-for-age, and arm circumference-for-age charts. It works according to WHO standards for 0–5 and 5–18 years old children. Finally, The “Growth Chart CDC WHO Percentile” [36] application draws the growth charts (weight-for-age, Height-for-age, BMI-for-age, weight-for-length and head circumference-for-age) based on the standards issued by WHO and Center for Disease Control and prevention (CDC). Other similar applications are “Growth Chart Pro” [37] and “Growth: Charts For Baby And Child Tracking” [38], which both of them provide growth charts based on the WHO and CDC standards.

3.2 Child healthcare systems

Disease is one of the main factors of causing growth disorders. Avoiding diseases is impossible, and each person gets a variety of illnesses throughout the life. Lack of proper care at the time of illness can cause irreversible effects on the child's health and life in addition to disrupting the child's growth. Therefore, proper diagnosis and intervention as well as timely vaccination are essential factors in keeping the normal growth. In this regard, MTika [10] has been developed to provide vaccination time reminders for babies aged between 0 and 11 months old in remote and low-income areas. The aim of this application is to improve children vaccination status in public health system of Bangladesh.

Sendra and et al. [39] provide a system architecture for monitoring children’s chronic diseases. It allows parents and doctors to remotely monitor the health of children based on sensors embedded in smartphones as well as wearable sensors. In addition, a system [40] has been presented to help parents in taking care of children with Autism Spectrum Disorder. It provides an activity recommender system that suggests activities for the child, based on the child's condition and age. The “Baby Illness, Prevention, Cure” app [41] helps parents to acquire information about some of the common childhood diseases such as fever, cough, colds, and so on. It provides a list of common diseases in children, their symptoms and warnings, and explains how to prevent them. In case of illness, it describes the necessary home care. Finally, the “Vaccine Reminder” [42] and “Child Vaccination Schedule” [43] apps help parents to schedule the vaccination program.

3.3 Nutrition monitoring systems

Nutrition is another important factor that influences the growth of infants. Improper nutrition leads to growth disorders such as malnutrition, obesity or overweight. Malnutrition, in addition to reducing immunity, increases the risk of diseases such as anemia, iron deficiency, and Rickets, and can also affect brain development as well as child intelligence and even cause mental retardation. Overweight and obesity, on the other hand, increase the risk of diseases like diabetes, high blood cholesterol, myocardial infarction, and heart disease.

In this regard, an early system [44], has been designed to enable parents to determine appropriate nutrition for their child based on age, food allergies, and food suitability. In another work [45], a mobile application has been presented to control the weights of children with obesity. It recommends a diet based on the user profile including age, weight, height, necessary energy, and activity. In “Tell Me What to Eat” project [46], another mobile application has been designed to improve nutrition consumption in obese children. It presents a list of appropriate dishes with recipes based on the available nutrients and user preferences. Besides, a diet management system [9], has been proposed in India to provide children with food menus. This system uses a data mining method to recommend an appropriate diet. Moreover, an automated food monitoring system [47] has been designed to resolve malnutrition and to create a balanced meal. The system exploits a sensor to evaluate the weight of each meal as well as a camera to obtain nutrition details of the ingredients.

The TreC-LifeStyle [21] application intends to educate parents about children’s overweight. To this end, pediatricians can have access to the data of their patients from a web application dashboard. They can customize the app for each patient in order to provide the necessary nutrition information. The “Baby Food” [48] app provides a list and the amount of nutrients needed for the child's body and can offer a convenient nutrition guide for parents. The “Homemade Baby Food Recipes” [49] app provides a list of foods with recipes for infants. These foods are displayed according to the age of the child. Similarly, “Baby Food Recipes” [50] app provides a list of foods for infants and their recipes.

3.4 Hybrid systems

A diet recommender system has been introduced for obesity management [13]. Basic information (e.g. sexuality, age, BMI, etc.), medical information and environmental data (e.g. time, temperature, season, humidity, etc.) are taken into account to recommend top recipes and menus to users. In “Child Growth Mentor” [51], a mobile system has been designed to monitor a child’s growth. It also reminds users of the vaccination time (date and type of vaccination). Moreover, it presents nutrients and recipes with respect to the child’s age and favorites. It also suggests papers on child growth as well as age-appropriate puzzles and games.

iCHRcloud project [3] has been proposed to monitor vaccination and growth of children in India and to reduce the child mortality. The program has a web-based interface for physicians and a mobile-based interface for parents. It records the vaccination history and important growth parameters from birth to the age of 18.

The “BabyCare: Baby Feeding, Diaper, Sleep Tracker” app [52] is one of the most popular apps in the google play store. It provides nutrition, growth and disease guideline for parents. Another similar application is “Baby Care-tracking growth” [53], which records height, weight, and head circumference, reminds vaccination dates, and shows tooth health and tooth development phases.

The “Indian Pregnancy Advice, Baby Care, Parenting Tips” [54] app provides Indian pregnancy advice, baby care tips, parenting styles & skills advices, baby growth & development charts, healthcare tips, vaccination schedule and baby nutrition principles. It also allows parents to ask their questions from doctors and experts. Besides, “Babygogo Parenting-Baby Care & Pregnancy Tips” [55] is another app that provides articles on child care and also allows parents to ask their questions from a group of doctors. Finally, “Growth Chart, Development Milestones & Vaccination” [56] provides growth charts, reminder of vaccinations, food tracking, and health advices.

In summary, there has not been a system yet to monitor the child’s growth, comprehensively. There are a few studies and applications that consider children’s growth, and health and nutrition monitoring, simultaneously. On the other hand, the majority of designed systems in growth monitoring only show the position of a child on the growth chart and do not analyze the growth status. However, some parents have difficulties in understanding growth charts. Moreover, when a diet is recommended, it is necessary to evaluate the child’s growth status including obesity, underweight, risks, and health status.

Most of the applications lack of scientific contents. In designing them, more attention has been paid to their commercial features and there has not been a scientific viewpoint. Such applications must be developed and evaluated with the cooperation of pediatricians, parents, and IT experts. To develop a scientific and appropriate system for monitoring children’s growth, all system requirements should be specified under a doctor’s supervision. In addition, in most of the above applications, there is no communication channel between the parents and the doctor so that the parents cannot ask their questions and concerns. In cases where this is possible, this connection is either very limited or the doctor does not have access to the child's information history.

The proposed system considers growth, nutrition and health. Regarding growth, it interprets a child’s growth status in addition to showing the child’s position on the growth chart. At the time of diet recommendation, it also considers the child’s health and growth status. Furthermore, a doctor can receive growth data and chart to become aware of the growth process and make necessary recommendations to parents. Context-awareness is leveraged to improve the quality of services provided by the proposed system. In fact, by modeling and knowing current situation of the infant, the system presents high-level services. Considering the fact that smartphones have limited memory and computing power, the cloud is used as the backend and support, in the proposed system.

4 System requirements

Pervasive healthcare is intended to provide healthcare services anywhere at any time [57]. Nowadays, mobile applications have evolved quickly to be used in pervasive healthcare systems. The research problem is to design a child growth monitoring system that can help parents to take care of and grow their children. To design the system architecture, the first step in software engineering is to identify the requirements. For this purpose, the specialized references [4, 23] and pediatricians’ consultations have been used. Then three scenarios are employed to specify explicitly the main system functionalities.

4.1 Scenario 1- Child growth and nutrition monitoring

Alice has an eight-month-old baby. Since she works outside, she has not been able to visit child growth monitoring and health centers, on time. Besides, she does not know how to use and interpret the child growth card; therefore, she evaluates her child’s growth status by judging from the baby’s appearance as well as comparing him to other peers. The available applications used for drawing the child growth chart could not even help her because they only show the child’s position on the growth chart without clarifying its concept. Besides, upon getting the age of seven months and the use of supplementary foods, Alice felt she has many questions about how to feed her baby, what to feed him, how to prepare the food, and what ingredients she should use. She did not know how to preserve the surplus food, how to detect food allergies, how to be ensured of the sufficiency of the food, what foods to use at the time of diseases (such as fevers and colds), etc. She sought the answers to these questions by asking her friends and relatives. After a while, she noticed that her baby’s skin turned red with a fever. After seeing a doctor, it turned out that her baby got allergies and food poisoning due to the use of inappropriate foods. Moreover, since Alice did not know that she should give her baby more liquids to drink at the time of a fever, her baby lost too much water. When the child’s growth was monitored, it turned out that the baby’s weight was not appropriate. Since Alice has not evaluated her baby’s weight regularly, it was not clear whether the baby suffered from weight deficiency due to the current disease or he had been affected by malnutrition before.

The growth and nutrition monitoring scenario shows some of the problems that most parents face. These problems can be stated as follows:

  • Lack of knowledge about monitoring the child’s growth, measuring weight, height, and head circumference, and interpreting growth charts.

  • Lack of knowledge about beginning to use complementary foods, the processes of preparing and preserving them, age-appropriate foods for the infant, and suitable nutrition in general.

  • Lack of knowledge about nutrition at the disease time.

  • The need to communicate with a doctor or specialist to get their answers and resolve parental concerns.

Given the abovementioned issues, a system is required to draw and interpret growth charts for parents and show them the growth status. This system should also be able to recommend child’s diet, allowed food guidance, and recipes according to age, growth and health status. It should also provide instructions on the child’s nutrition including food preservation and food allergy symptoms. When an infant grows, parents face many questions. A doctor can provide parents with the best answers. Therefore, the proposed system should be able to enable the doctor to ask and answer questions. Accordingly, it should be capable of monitoring the child’s growth and nutrition, something which includes four sub-functionalities. The sub-functionality of “growth monitoring” provides the ability to monitor the child’s growth. The sub-functionality of “growth monitoring by the doctor" enables the doctor to monitor the child’s growth status. The sub-functionality of “nutrition monitoring” provides a comprehensive nutrition guide to the parents. Finally, the sub-functionality of “consultation to doctor” allows the doctor and parents to interact with each other.

4.2 Scenario 2- Child health monitoring

At Dr. James’s clinic, Alice and Julia are speaking about their experiences of their child’s disease. Julia has a six-years-old child. She said that everything was normal and ideal at birth. Her child has gained high levels of growth charts. The child did not have any delay in crawling and walking. He even made sounds until the age of two. However, the child became indifferent to others around the age of one and did not pay attention to others when they called. He frequently cried and chose only one doll out of all the toys and did repeated actions with it. Finally, at the age of three, Julia got suspicious about these conditions when she realized that the child has delayed speaking. After seeing a specialist, she found out that her child had autism. Since she did not believe it, she decided to see other doctors and even psychologists. Finally, all of her efforts led to autism. These referrals delayed the process of treating the child, which was a loss. Early detection could help much in treating the patients with autism. In fact, being present in the society with normal peers could help to improve the child’s behavior and have great effects on the treatment. With this delay, Julia’s child has lost the chance to go to normal schools and be with normal peers, in practice.

Alice also comes to see the doctor because of her child’s disease. She says that her child had a high fever. She tried to alleviate the fever with some actions such as taking off the child’s clothes and moderating the home temperature. However, the fever did not decrease. Then she realized red spots on her child’s body. After seeing a doctor, she understood that her child had a Scarlet fever. The disease got severer and the treatment process became harder because she forgot the vaccination periods.

Given this scenario, the issues can be discussed as follows:

  • Lack of knowledge about prevalent diseases in children as well as symptoms, treatment methods, and necessary healthcare measures taken by parents.

  • Lack of knowledge about the risky symptoms indicating an urgent referral to a doctor.

  • Lack of knowledge about the development phases of the child’s skills and abilities.

  • Forgetting the child’s vaccination time.

The proposed system should enable parents to monitor the child’s health. This functionality has four sub-functionalities including “prevalent diseases guide” and “red flags guide” to make parents aware of prevalent diseases and risk symptoms, “growth guide” to inform parents of the development phases of their children, and "vaccination reminder".

4.3 Scenario 3- Doctor intervention

In a conference, Dr. James and Dr. Parker, two pediatricians, meet each other. While talking to each other about their problems, they realize that their patients suffer from some common issues despite the fact that these two doctors live and work in different cities. They find out that most of these issues are caused by parental unawareness about how to grow and take care of children. Parents do not use valid and accurate instructions and references. For instance, the doctors often deal with the children who suffer from food poisoning due to parental unawareness about nutrition. There are other children suffering from seizures or severe dehydration because of parental negligence to the symptoms as well as arbitrary treatments. Therefore, both of the doctors seek a solution to this problem. For this purpose, they decide to employ a mobile application to instruct parents. Both of them provide the developer with necessary information on prevalent diseases of children and nutrition.

After the application is developed and published, Dr. James realizes some problems. Since the disease information is collected by Dr. Parker, the prevalent diseases in Dr. James’s area are not observed. Instead, part of the information is about the diseases that are not prevalent where Dr. James lives. Therefore, the disease section could not have an appropriate performance for him. On the other hand, the nutrition information is collected by Dr. James; however, some of the nutrients are not available where Dr. Parker lives. In fact, they are local foods of the Dr. James living area. As a result, the nutrition section could not provide Dr. Parker with the best performance.

According to this scenario, the following requirements are discussed:

  • The need to create an environment with dedicated data of each doctor.

  • The need to revise the data required by parents by the doctor.

Therefore, the system should have the “doctor intervention” functionality, according to which each doctor is able to localize or update the data used by the system on the parental side. The sub-functionality of “update information” refers to this important issue.

In addition, due to the diverse use of mobile devices and smartphones, these devices have become an appropriate platform to provide services, such as healthcare. Mobility, quick initialization, and low prices are among the advantages of such devices resulting in the extensive popularity [7]. As a result, the implementation of the proposed system on mobile devices can have a great impact on the popularity and success of this system. On the other hand, since the majority of mobile devices are based on Android, the proposed system is developed by Android.

5 Architecture design of the proposed PIG system

The Attribute-Driven Design (ADD) method is employed to design the architecture of the proposed Pervasive Infant's Growth and nutrition monitoring (PIG) system. ADD is an iterative method, which is intended to select a part of the system for design in each phase. Then it creates a design for that part and tests it. This process continues until an appropriate architecture is achieved. The ADD method receives the system requirements including functional requirements, quality attributes, and system constraints as the inputs. The output includes a group of architectural views such as elements and their relationships [58]. The following phases are exploited to design the proposed system:

In the first phase, the main system elements are specified. The general schema of the PIG system consists of three main sections including parents, doctor and cloud. The parents and doctor sections interact with each other through the cloud. In addition, the cloud is used as a storage space in which user information is stored. Therefore, the cloud supports the system so that users can retrieve the information in case of any failure in mobile devices. Moreover, the cloud provides a dedicated environment for each doctor and his patients so that they can interact with each other. This environment is separated from other doctors’ environments. For instance, new data of each update is transferred to the device of the parents who are under the supervision of the same doctor, while other parents’ data is unchanged.

In the next phase, the patterns are used to make a design decision. Architectural patterns form a package of decisions, which are frequently used in practice [58]. Since the proposed system is physically located in three separate areas, it includes the cloud, parental side, and the doctor’s side. Therefore, the multi-tier pattern [58] is used to design it. In the multi-tier pattern, the system execution structures are organized as a set of logical groups of components. Each group is known as a tier. The general architecture of the proposed system consists of three tiers, including doctor, parent, and cloud. Figure 1 shows the general architecture of the proposed system.

Fig. 1
figure 1

Architecture of the PIG system

Each of the doctor tier or parent tier have their own internal architectures, the designs of which are based on the layered pattern. The layered pattern enables the system to be divided into separate units in a way that each unit can be developed, and maintained, independently. This pattern provides the system with portability, modifiability, and reusability [58]. The layered pattern divides a system into some layers, each of which includes a group of components and provides specific services. Each layer is allowed to use the lower-layer services [58]. Each element of the system is described as follows:

6 Parent tier

Figure 2 shows the architecture of parent tier with the help of the layered pattern. This architecture consists of three layers including presentation, processing and data access.

Fig. 2
figure 2

Architecture of the parent tier

The data access layer is the lowest layer containing the databases used by the parental application.

  • Child information database: It includes the child growth and related contextual information including weight, height and head circumference, measurement date, and the result of growth analysis.

  • Growth & development database: It stores the standard data collected by WHO. This data is used to draw growth charts and analyze growth data. Moreover, Development database includes the skills and abilities that children attain in each age range.

  • Nutrition database: It includes three classes of information. One class is used to make diet recommendations. Another class is used to create the allowed food guidance. The last class includes recipes (including the name of foods and their recipes).

  • Instruction database: It contains the health education information including public health, oral and dental care, as well as food instructions including recommendations for bad eating habits, the child’s anorexia, the ways of enriching foods, and recommendations for obesity or impotence.

  • Consultation database: It contains the sent and received messages.

  • Health database: It contains the name of vaccine, age of vaccination, the names of prevalent diseases, home remedies, and finally risk symptoms and red flags which require immediate visit of the doctor.

In the process layer, the main system operations are done. This layer executes the main functions to respond to users. It includes the following components:

  • Profile Management: This component has two sub-components: “registration” and “edit information”. The “registration” sub-component is used to register the child and edit the personal information. Two types of information are required for system registration: child’s information and cloud registration information. The child’s information includes name, ID number, date of birth, and gender. The cloud registration information includes username and password.

The system preprocesses the information after receiving it. If the information is valid, it is stored in the system and the cloud. Moreover, if the information needs to be changed, the parents can edit it through the “edit information” sub-component. It should be mentioned that the system should connect to the cloud to access this component.

  • Growth & Development Monitoring: It has four sub-components. The sub-component of “analysis of growth data” analyzes the growth information based on the standard issued by WHO, and stores it in the child information database. WHO provides different standards for monitoring the child growth. Four of these standards provide more comprehensive information for growth evaluation including weight for age, length/height for age, weight for length/height, and head circumference for age [4, 22]. The growth standards are defined according to Z-score [22] with seven values: − 3z-score، − 2z-score، − 1z-score، z-score، + 1z-score، + 2z-score and + 3z-score; where z-score shows the normal growth [22]. To analyze the child’s growth, the child’s current status is firstly determined with respect to the position among z-scores. Then the history of the child’s growth is investigated. If the child has less growth than the standard, then the growth is inappropriate. Figure 3 shows the appropriate and inappropriate growth cases.

In Fig. 3, the z-score line shows the normal values on the growth chart, and the arrow indicates the child’s growth process. Figure 3a shows the appropriate growth status because the growth process is parallel with the z-score line. Figure 3b shows one of the inappropriate growth statuses in which the growth is ascending; however, it is not parallel with the z-score line, and the child is not growing sufficiently. Figure 3c shows the lack of child’s growth. The growth (arrow) has been constant for a specific period of time and does not increase. Figure 3d indicates a status in which the child has negative growth. In other words, the child has not grown up at all and suffers from weight loss. Figure 4 shows the steps of child’s growth analysis.

Fig. 3
figure 3

Appropriate and inappropriate status in growth chart a Appropriate growth status: growth process is parallel with the z-score line b Inappropriate growth status: the growth is ascending but is not parallel with the z-score line c Inappropriate growth status: the lack of growth d Inappropriate growth status: growth is descending

Fig. 4
figure 4

Process of analysis of the child’s growth

Fig. 5
figure 5

The process of diet recommendation

The “draw growth chart” subcomponent displays the child’s growth diagram by using the recorded contextual information. Also, the “show growth data” subcomponent presents the recorded growth contexts and enables users to edit them. The “development status guide” subcomponent specifies what activities the child should do in each age range. Generally, the growth & development monitoring component uses "child information" and "growth & development" databases.

  • Nutrition Monitoring: It contains four sub-components. The context-aware “allowed food guide” sub-component is responsible for determining the age-appropriate foods for children. For instance, the use of complementary foods begins in the first week of the seventh month, and the child is allowed to have milk, rice flour, rice, and sugar. It also specifies sources of nutrients (such as vitamins, protein, minerals, etc.) and the necessary amount of them for a child in each age range. The context-aware “diet recommendation” subcomponent recommends the appropriate diet by considering the contextual information of child’s health status, limitations, and dietary norms. Finally, the diet is displayed according to the child’s age and growth status. Figure 5 shows the phases.

The “recipe guide” provides the recipes for the parents. The “food- instructor” subcomponent teaches the parents necessary dietary points including the correct ways of preserving foods, common symptoms of food allergies, the ways of dealing with bad eating habits and anorexia, and the ways of enriching foods.

  • Healthcare: It contains four subcomponents including “vaccination reminder”, “prevalent diseases guide”, “red flag guide”, and “hygiene instructor”. In the first subcomponent, the child’s age is compared with the vaccination dates. If there is a vaccination date within the age range, the parents are reminded of it. The “prevalent diseases guide” describes common and prevalent disease in childhood. Each disease is specified by the primary symptoms and home remedies. In fact, it provides a complete guide about disease for parents. The “red flag guide” subcomponent, describes symptoms that parents should urgently pay attention to, such as fever with abnormal grunting or pale/mottled/ashen/blue color of skin, lips or tongue. If parents face such symptoms, they should visit a doctor immediately. The “hygiene instructor” subcomponent teaches parents the important health points of children.

  • Consultation with the Doctor: The system enables parents to consult with the doctor. The parents can leave messages for the doctor who can reply to them. This component has two subcomponents: “Get message” for receiving messages and showing them to parents and “send message” for sending a message to doctor.

  • Cloud Connection: It performs all operations requiring the connection to the cloud. It contains three subcomponents. The “login to cloud” subcomponent does the operations pertaining to the cloud connection and authentication. The parent tier operates according to the information available in the database. The doctor is allowed to change the data of these databases and save the changes in the cloud. The cloud notifies all parents who are under the doctor’s supervision. The “update database” subcomponent is responsible for downloading the new database and replacing it. Finally, the “get backup” subcomponent provides a backup of the child information database and sends it to the cloud.

The presentation layer is responsible for displaying information and receiving data from users. It includes three subcomponents of menu, form and information display interface. This layer provides four forms to receive information from parents including registration, health, and growth data and sending message forms. Some of the forms also do preprocessing operations on data in addition to receiving information from users in order to evaluate the validity of data. The information display interface subcomponent displays the information to parents. It includes show information and show chart subcomponents. The menu component shows the menus used in the application including main, nutrition, health, message, recipe and chart menus.

6.1 Doctor tier

This tier represents the architecture of the mobile application installed and run on the doctor’s smartphone. The layer pattern is used to design theinternal architecture of this tier. Figure 6 indicates the general architecture, which is comprised of three layers.

Fig. 6
figure 6

Architecture of the doctor tier

The data access layer is the lowest layer of the architecture in which the necessary data is stored. In the following, the databases of this layer are described:

Child information database: It stores the information of children who are under the doctor’s surveillance. The doctor should add a child to the list to monitor the growth process. For this purpose, she uses the child’s name and ID number. The child’s growth information including height, weight, head circumference, and age are automatically transferred to the cloud and subsequently, to the doctor’s device after they have been inserted by the parents. Then the doctor can monitor this information, supervise the child’s growth, and see the growth chart.

Other databases include nutrition, growth & development, health and consultation. They are similar to the databases introduced in the parent tier. These databases provide the information required by the parents. The doctor can revise the information of these databases and update them if necessary. Then the updated databases are transferred to the parent tier.

In the process layer, the main system functionalities and operations are done by following components.

  • Profile Management: It is responsible for registering and editing the doctor’s information. It has two subcomponents of “registration” and “edit information”. Two classes of information are required for registration. The first class is the doctor’s information, including the name and ID number. Registration in the cloud includes the username and password. This information is stored in the system and the cloud.

  • Children management: It performs the child registration and removal operations in the doctor’s tier. It has three subcomponents including child registration, delete, and show. The doctor inserts the supervised children through “child registration” subcomponent, which is connected to the child information database. Also, the doctor can see all her supervised children with “show child” subcomponent, and delete a child through “delete child”. When a child is deleted, the relevant information is removed from this database.

  • Child’s Growth Monitoring: The doctor can access the information pertaining to the supervised children and request for a growth chart for each one. This component has two subcomponents: “show growth data” and “draw growth chart”. “Show growth data” is used to display a child’s growth data and “draw growth chart” is used to draw and display growth chart. This component uses growth & development as well as child information databases.

  • Advice to Parents: The doctor could communicate with parents and reply to their queries. This component has two subcomponents including “get message” for receiving and showing messages and “send message” for sending a message to a parent or several parents.

  • Update Information: The doctor could apply the necessary updates to any given database. Then the changes are sent to the cloud and stores. The cloud notifies and updates the parents of the children supervised by the doctor. The databases that can be updated by the doctor include “nutrition”, “growth & development”, and “health” databases. The presence of newer and richer resources and the adaptability of the system to the local conditions are among the factors, which may result in information update.

  • Cloud connection: It contains two subcomponents including “login to cloud” and “get back up” on the cloud.

In the same way as the presentation layer in the parent tier, here the presentation layer shows information and receives data from the doctor. This layer has three components including form, menu and information display interface. The form component receives data from the doctor. It has two subcomponents including registration, and send message forms. The information display interface component shows the information to the doctor. It includes show data, and show chart. The menu component shows the menus used in the doctor tier. It includes message, main, chart type and database menus.

6.2 Cloud tier

The cloud tier stores the doctor and parents’ information. The cloud provides a storage and backup space for users. “Data as a Service” (DaaS) is used to store and manage parents and doctors’ information. The DaaS allows different users to store and retrieve large volumes of data, independently [59]. In fact, DaaS can operate as a scalable database that is shared among many users. In DaaS, the cloud is responsible to satisfy the quality of service criteria such as scalability, security, and privacy. In the proposed system, the cloud tier acts as a database, and saves the data of each user (physician and parent), independently.

Each user should at first become a member of the cloud to use its services. The cloud stores each user with the following information:

  • Username and password: it is received at the time of registration. They are unique for each user.

  • First name and last name: the doctor’s name or the infant’s name is received at the time of registration.

  • Category (role): the cloud users are divided into two groups including parents and doctors. If the parent tier makes a registration request, this value is adjusted to Parent. Similarly, if the doctor’s tier issues a registration request, this value is set to Doctor.

Then, the user can use the cloud space to store information, which includes backup files of data. Each stored datum includes ID, name, and an access level, which specifies who is authorized to use and download that data.

In summary, both parents and pediatricians get their data from the cloud system. To this end, at the first, parents and Pediatricians register to the system. Then, each pediatrician chooses their patients and adds them to their list. Accordingly, the doctor's system provides a list of patients approved by them. To view an infant’s data, the information is fetched from the cloud and presented to the pediatrician.

7 Experiments

Nowadays, Android has become a popular mobile operating system and the majority of people use android devices. Therefore, the proposed PIG system has been implemented by Android programming language using Android Studio 2.2.1. Moreover, SQLite 2.5.1 has been employed to design its databases. Growth part of Growth & development database has been designed according to the standards issued by WHO [60]. Development part of the “growth & development” database as well as “nutrition”, “instruction”, and “health” databases have been designed by the reference specialized books of pediatric [4, 23].

Figure 7 shows some interfaces of the implemented parent tier. Figure 7a indicates the child’s registration form, which receives name, username, password, gender, and birthday of the user. Figure 7b shows the main action of application which consists of five parts. The first part provides the ability to draw the growth charts and monitor child’s growth. The second part allows to leave a message for doctor. The third part shows the risky symptoms, vaccination times, and prevalent diseases. The fourth part shows the food diet and finally the last section is a training section that provides food recipes, health tips and etc. to parents.

Fig. 7
figure 7

Samples of user interfaces of parent tier

Figure 7c shows the growth chart. Also Fig. 7d shows the prevalent diseases page. Similarly, Fig. 8 shows some interfaces of the implemented doctor tier.

Fig. 8
figure 8

Samples of user interfaces of doctor tier

The SAAMFootnote 1 method is employed to evaluate the architecture of the child’s growth monitoring system [61, 62]. It is the most well-known method for evaluating software architectures. The evaluation phases are as follows:

  • The first phase is to develop a scenario for each functionality, which has already been dealt with.

  • The second phase is to describe the designed architecture, which has been described in the previous section.

  • The third phase is to assign weights and priorities to scenarios. In the PIG system, it has been assumed that all of the scenarios have equal priorities.

  • The final phase is to evaluate the scenarios. This phase is performed by the sequence diagram. The scenarios are investigated and evaluated here now.

8 Child growth and nutrition monitoring

This functionality refers to “growth monitoring”, “nutrition monitoring”, “growth monitoring by doctor”, and “consultation with the doctor” sub-functionalities. In the following, the PIG system is investigated according to the related scenarios.

The most important issue that Alice faces is the "nutrition monitoring". She does not have enough knowledge about suitable food and the food preparation process. Another issue is to decide what to feed the baby. She does not know what nutrients to use and how to prepare them, how to preserve the leftovers and what the food allergy symptoms and appropriate foods in diseases are, etc.

Figure 9, shows the instance sequence diagram of the PIG for addressing the “nutrition monitoring” issues. Figure 9 shows how the diet recommendation process is performed by the PIG system. To this end, Alice selects nutrition part from the main menu and diet part from nutrition menu, then specifies the child’s health status of the health form component and sends data to the diet recommendation component. Next, this component makes a request to get child’s growth status of child information database. Then it requests the diet from nutrition database. Finally, the diet is shown to Alice through the show information component.

Fig. 9
figure 9

The sequence diagram of the PIG diet recommendation for “nutrition monitoring”

Figure 10 shows the sequence diagram of growth monitoring executed by the PIG system. Alice regularly inserts the growth data into the system through the growth data form. The system receives them and gives them to the "analysis growth data" component. It receives the standard growth data from growth & development database. After analysis, the growth data is stored in child information database with the results of analysis. Then Alice can make a request for draw chart. She chooses the type of growth chart from the chart menu. Finally, the growth chart is shown to Alice through the show chart component. Moreover, if Alice chooses one point of the growth chart, the relevant information from the child information database is shown to her.

Fig. 10
figure 10

The sequence diagram of the PIG growth monitoring

Besides, Fig. 11 shows execution of the "growth monitoring by the doctor" by the PIG system. To this end, the doctor requests for growth monitoring through the main menu. Then system makes a request for a list of the children who are under the doctor’s supervision to the cloud. After receiving the information, it displays them. The doctor selects a child as well as the type of the chart. If the doctor selects a point on the child’s growth chart, the detail of the information is displayed.

Fig.11
figure 11

The sequence diagram of the PIG growth monitoring by the doctor

Consultation to doctor” is the next sub-requirement, which is addressed by the proposed PIG system (Fig. 12). For this, if Alice chooses send message, the message form is displayed to her and system makes a request for connection to cloud, simultaneously. After she writes her message, it is stored in the cloud and consultation database. Then the delivery message is shown to her. Similarly, on the doctor tier, these steps are run and they can receive messages and answer to them.

Fig.12
figure 12

The sequence diagram of the PIG consultation to doctor

8.1 Child health monitoring

The second requirement includes the sub-functionalities of prevalent diseases guide, red flag guide, development guide, and vaccination reminder. In the following, the proposed system is investigated regarding these sub-functionalities. For the instance of this functionality, Fig. 13 shows the sequence diagram executed by the PIG system for satisfying the "prevalent diseases guide" and “red flag guide”. Julia can request the display of the prevalent diseases guide or the red flag guide from the health menu. Then the information is shown to her through the show information component.

Fig. 13
figure 13

The sequence diagram of the PIG prevalent diseases guide and red flag guide for “health monitoring”

8.2 Doctor Intervention

According to the doctor intervention scenario, Dr. James and Dr. Parker’s application suffers the problem that data cannot support the patients of both doctors. The proposed system resolves this issue by enabling doctors to update and customize information. Figure 14 shows how the PIG system satisfies this scenario. Dr. James first requests to update the database information for his patients. Then the update is applied in the cloud. Moreover, cloud sends a notification to update information component in parent tier. This notification is shown to parents through show information component. After accepting the notification, the Update information component saves data into the parent tier database.

Fig. 14
figure 14

The sequence diagram of the PIG update database

In the final step of SAAM, the proposed system is compared with the similar systems. Table 1 shows this comparison. In this table, the most similar studies and applications are selected with respect to their levels of popularity. All of them are described in the second section. These systems include “child growth mentor” [51], iCHRcloud [3], “BabyCare: Baby Feeding, Diaper, Sleep Tracker” [52]. “baby care-tracking growth” [53], and “diet recommender system” [13]. Basic information (e.g. sexuality, age, BMI, etc.), medical information and environmental data (e.g. time, temperature, season, humidity, etc.) are taken into account to recommend top recipes and menus to users.

Table 1 Comparing the proposed system with similar systems

In Table 1, rows contain the system functionalities and sub-functionalities. Columns include the related pieces of research. Moreover, + refers to the presence of a functionality or sub-functionality in the system, and – shows its absence.

Regarding growth and nutrition monitoring, the majority of systems show parents the foods and recipes. However, none of the systems enable the doctors to analyze the growth status. They only show parents the child’s position on the growth chart. Regarding contacting and consulting to doctor and the availability of doctor, among the previous systems only “iCHRcloud” can enable doctors to contact with the parents in a limited way. In “iCHRcloud”, doctors can communicate with the parents and inform them about child’s growth status.

Regarding healthcare, most of the systems remind parents of vaccination dates. In spite of that, a disease can have a great effect on the child’s growth and nutrition, only “Baby Care: Baby Feeding, Diaper, Sleep Tracker” [52] describes the prevalent childhood diseases. This app explains how to take care of children and provide them useful nutrition during a disease. It should be noted that the consumption of some nutrients is forbidden during disease, and other foods are necessary. In some cases, it is necessary to use some specific diets. Although it is possible that the type of nutrition and even diseases may be different in different areas, none of the previous systems support the customization of data by the doctors.

Generally, the proposed system is more comprehensive than other systems in the child’s healthcare area. In addition to drawing the child’s growth chart for the parents, the PIG system can analyze the child’s growth status and use the results to make recommendations on diets. Moreover, it considers the child’s health status to recommend diets. It also makes the parents acquainted with the prevalent symptoms and diseases of children as well as home remedies and treatment methods. It also enables doctors and parents to interact with each other. In other words, parents can ask the doctor about their questions and challenges. On the other hand, due to the doctor’s supervision on the child’s growth procedure and the availability of doctor to answer the questions, the proposed system can be more reliable for parents. Since the data of parental application can be changed by the doctor tier, this system can be easily localized, and the doctor can change the information used by parents with respect to the patient’s conditions and the state of the art of the science.

9 Conclusion

In this research, pervasive system for infant's growth and nutrition monitoring has been proposed to help parents improve the childcare process. This system consists of two mobile tiers and applications including the parental and the doctor’s side. It has the growth and nutrition monitoring, health monitoring and doctor intervention functionalities. The parental side tier is a context-aware system, which uses contextual information such as age, health status, and growth status to guide parents regarding the child situation. It enables parents to monitor child's growth, nutrition, and health status as well as contacting the doctor. The doctor’s tier enables the doctor to monitor the child’s growth status, update the information, and contact the parents. The multi-tier pattern has been used to design the system, which has been divided into three tiers including the doctor, parents and the cloud. The doctor and parent tiers have been designed according to the layer pattern. Each of them has three layers including the presentation layer to interact with the user, the process layer to do the system operations, and the data access layer, which includes the databases. Given the limitations of smartphones, the cloud has been used as a platform to manage, store and backup the data.

The system architecture has been evaluated via the SAAM method. To this end, scenarios have been defined under a pediatrician’s supervision for each functionality. Then the execution procedure of these scenarios have been investigated by the UML sequence diagram. Finally, the proposed system has been compared with other similar systems. The results have shown that this system is more comprehensive than other available systems in this area. Particularly, since the system is able to analyze the growth chart, it can help parents determine the child’s growth status. The doctor is also able to receive data and monitor the growth of children. The proposed system is able to make recommendations on diets based on the child’s growth status, health and age. In addition, it makes parents aware of risk symptoms and prevalent diseases. The doctor can also customize, update and modify the data used by the parents according to the latest references. These changes are only applied to the applications of parents whose infants are under the same doctor’s supervision.

It should be emphasized that the proposed system targets only healthy infants. In fact, the performance of the proposed system for children with congenital diseases as well as premature children, and generally the infants who need special care has not been evaluated. Since these types of children need more attention and care, more advanced mobile health services should be investigated for them. In addition, nowadays ICT developments result in the advent of different medical sensors that can be integrated with mobile devices. These sensors can be used to follow the child’s health status much better and improve mobile health services for all children.