Вы находитесь на странице: 1из 261

MEDICAL APPOINTMENT SCHEDULER SYSTEM (M.A.S.

S)

A Project Study Report

Presented to

The Faculty of the Department of Electronics Engineering

Central Philippine University

Jaro, Iloilo City

In Partial Fulfillment

of the Requirements for the Degree of

Bachelor of Science in Electronics Engineering

By

Chong, Anne Kathrine A.

Fuentes, Marc Vergel O.

Leongson, Fher Noah N.

Sioco, Stephanie S.

Superatum, Rodney L.

April 2019
11

ACKNOWLEDGMENT

The group would like to thank the following persons for all the utmost

support and guidance extended for the completion of the project.

To Engr. Babylou G. Nava, the group’s adviser and project study adviser,

for all the advices and information needed for us to execute our ideas well, for her

guidance and unending support to the the group to complete the study and for her

valuable suggestions, recommendations and for teaching the needed key points in

order to have an effective research paper.

To Engr. Rex E. Alibogha, Engr. Gelvie Lagos, and Engr. Juicy C.

Valdueza, our project study panelist, for their availability and guidance in function

and documents of the study to further improve it. Your ideas and suggestions are

greatly appreciated.

To Mr. Rhizero Villanueva, for sincerely helping the team in the database

and user interface of the system.

To the ECE Department, headed by Engr. Yeseil S. Sacramento, along

with the rest of faculty members, Engr. Marian Mie A. Ali-mo-ot, Engr. Romarie

Jhoanna C. Eder, and Engr. Mariel G. Mallorca for the unending support and

assistance in any way that helped us finish this research paper.

To the group member’s family and friends, for all the love, moral

support, understanding and support they extended in order to realize this project.

Most of all, to the Almighty God, who planned all these things and the first

one to provide countless blessing and full assistance to the group. Without Him, the

group would never be able to comply with the requirements of the project.
12

TABLE OF CONTENTS

TITLE PAGE

APPROVAL SHEET

ACKNOWLEDGMENT ......................................................................................... iii

TABLE OF CONTENTS............... .......................................................................... iv

LIST OF FIGURES AND TABLES ........................................................................ vii

ABSTRACT .......................................................................................................... xv

CHAPTER

I INTRODUCTION......................................................................................... 1

Background and Rationale........................................................ .................. 1

Objectives of the Study ............................................................................. 7

General Objective........................................................................... 7

Specific Objectives ........................................................................ 7

Significance of the Study ........................................................................... 8

Scope and Limitations ................................................................................ 9

II REVIEW OF RELATED LITERATURE ...................................................... 10

Related Technologies ................................................................................ 11

Microcontrollers .............................................................................. 12

Buzzer ............................................................................................ 13

Software ......................................................................................... 14
13

Related Studies ......................................................................................... 24

Designing Queuing System for Public Hospitals in Thailand ........... 24

The Institute of Medicine US Proposal............................................ 27

Doctor Appointment Booking System ............................................. 27

Design and Development of Online Doctor Appointment System ... 28

An Investigation of the Success of Hospital Information Systems

Implementation ...................................................................... 30

Scheduling Interface System and Method for Medical Professionals 30

Medical Prescription Scheduler for Reminding and Compliance ..... 31

System and Method for Scheduling Medical Examinations Utilizing

Queues and Providing Medical Examination Route Guide

Information to the Scheduled Examinations ............................. 32

Medical Case Scheduling, Logistics Management and Associated

Data Management ................................................................... 32

The HSC Medical Center Appointment Scheduling System ............ 33

Synthesis ................................................................................................... 35

III METHODOLOGY ..................................................................................... 40

Design Criteria ........................................................................................... 42

Design Constraints..................................................................................... 43

Design Plan Preparation ............................................................................ 44

Software Construction Procedure .............................................................. 49


14

Hardware Construction Procedure ............................................................. 51

Testing Procedure...................................................................................... 53

Data Gathered ........................................................................................... 65

Parameters Analyzed ................................................................................. 66

Reliability of the System ................................................................. 66

Accuracy of the System ................................................................. 66

IV RESULTS AND DISCUSSIONS ............................................................... 67

System Overview ....................................................................................... 67

Addressing of Constraints .......................................................................... 68

Results of Design ....................................................................................... 69

Test Results ............................................................................................... 82

Results of Implementation and Data Gathered........................................... 136

V SUMMARY, CONCLUSION, AND RECOMMENDATIONS ....................... 141

Summary ................................................................................................... 141

Conclusion ................................................................................................. 142

Recommendations ..................................................................................... 142

Appendices ................................................................................................ 143

A - Definition of Terms .................................................................... 144

B - Proposed Budget ...................................................................... 149

C – Work Schedule ........................................................................ 151


15

D – Specification Sheet .................................................................. 153

E – Instruction Manual .................................................................... 160

F – References ............................................................................... 159

G - Codes (JavaScript & CSS) ........................................................ 166

H – Codes (Microsoft Visual Studio & Arduino IDE) ....................... 221

I – Design Implementation Documentation ..................................... 225

J – Researcher’s Vitae .................................................................... 231


16

LIST OF FIGURES AND TABLES

FIGURE PAGE

1 Arduino Uno Rev 3 Board ................................................................... 12

2 Arduino Nano 3 Board ........................................................................ 12

3. Arduino Micro....................................................................................... 13

4 Wireless Remote Control Buzzer ........................................................ 14

5 The Single Channel-Single Phase System ........................................... 25

6 The Single Channel-Multiple Phase System ....................................... 25

7 Multiple Channel-Single Phase System ............................................... 26

8 Multiple Channel-Multiple Phase System ............................................. 26

9 User Interface of the Doctor Appointment Booking System by Nevons

Project ....................................................................................... 28

10 Organizational Structure of the Online Doctor Appointment System….. 29

11 The HSC Medical Center Appointment System Appointment Form ...... 33

12 Impacts after Implementing the Web-based Appointment Scheduling

System as gathered by Peng Zhao et al ..................................... 34

13 The Process of Creating the M.A.S.S.................................................. 41

14 Block diagram of the Medical Appointment Scheduler System ............ 44

15 Flowchart of Online/Walk-in Patients .................................................. 45

16 Flowchart of SMS Feature for Confirmation or Cancellation


17

of Appointment ....................................................................... 46

17 Flowchart of Administration Computer ................................................ 47

18 User Interface of Administration .......................................................... 48

19 Schematic Diagram of the Wireless Buzzer and

Arduino Interfacing .................................................................. 48

20 Homepage of the Firebase database .................................................. 70

21 The authentication tab of the Firebase Database ................................ 70

22 Homepage of the CheckMobi software application.............................. 71

21 Testing credit ...................................................................................... 71

24 List of charges per message including the number of the recipient ..... 72

25 Login for Admin page .......................................................................... 73

26 List of Transactions for the date selected ............................................ 73

27 For Editing, Updating and Deleting Records ....................................... 74

28 For Confirmation/Cancellation of Appointments .................................. 75

29 Homepage or Login page of M.A.S.S .................................................. 76

30 Sign up page of M.A.S.S (For registration) .......................................... 76

31 For viewing the remaining time available for appointment ................... 77

32 The Appointment page ........................................................................ 77

33 Calendar-type date selection .............................................................. 78

34 Notification Screen after submission ................................................... 78


18

35 Reminder SMS ................................................................................... 79

36 The confirmation/cancellation message .............................................. 79

37 Display Monitor ................................................................................... 80

38 Overall Setup M.A.S.S. ....................................................................... 81

39 First Sample for Table 1 of Reliability Testing ..................................... 86

40 Second Sample for Table 1 of Reliability Testing ................................ 87

41 Third Sample for Table 1 of Reliability Testing .................................... 88

42 Fourth Sample for Table 1 of Reliability Testing .................................. 89

43 Fifth Sample for Table 1 of Reliability Testing ..................................... 90

44 Sixth Sample for Table 1 of Reliability Testing .................................... 91

45 Seventh Sample for Table 1 of Reliability Testing ............................... 82

46 Eighth Sample for Table 1 of Reliability Testing .................................. 93

47 Ninth Sample for Table 1 of Reliability Testing .................................... 94

48 Tenth Sample for Table 1 of Reliability Testing ................................... 95

49 Eleventh Sample for Table 1 of Reliability Testing .............................. 96

50 Twelfth Sample for Table 1 of Reliability Testing ................................. 97

51 Thirteenth Sample for Table 1 of Reliability Testing ............................ 98

52 Fourteenth Sample for Table 1 of Reliability Testing ........................... 99

53 Fifteenth Sample for Table 1 of Reliability Testing .............................. 100

54 Result of Password Strength Test at with only One Character ............ 102
19

55 Result of Password Strength Test at with Two Characters .................. 102

56 Result of Password Strength Test at with Three Characters ............... 103

57 Result of Password Strength Test at with Four Characters ................. 103

58 Result of Password Strength Test at with Five Characters .................. 104

59 Result of Password Strength Test at with Six Characters.................... 104

60 Results of Testing Password Case-Sensitivity .................................... 105

61 Transactions for March 3, 2019........................................................... 107

62 Account Number 1 for March 20, 2019................................................ 107

63 Account Number 2 for March 20, 2019................................................ 108

64 Account Number 3 for March 20, 2019................................................ 108

65 Account Number 4 for March 20, 2019................................................ 108

66 Account Number 5 for March 20, 2019................................................ 108

67 Account Number 1 for March 21, 2019................................................ 109

68 Account Number 2 for March 21, 2019................................................ 109

69 Account Number 3 for March 21, 2019................................................ 109

70 Account Number 4 for March 21, 2019................................................ 109

71 Account Number 5 for March 21, 2019................................................ 110

72 Account Number 1 for March 22, 2019................................................ 110

73 Account Number 2 for March 22, 2019................................................ 110

74 Account Number 3 for March 22, 2019................................................ 110


20

75 Account Number 4 for March 22, 2019................................................ 111

76 Account Number 5 for March 22, 2019................................................ 111

77 Results of Account Name Test Number 1 ........................................... 112

78 Results of Account Name Test Number 2 ........................................... 102

79 Sample 1 for Ideal Network Condition ................................................. 113

80 Sample 2 for Ideal Network Condition ................................................. 113

81 Sample 3 for Ideal Network Condition ................................................. 114

82 Sample 4 for Ideal Network Condition ................................................. 114

83 Sample 5 for Ideal Network Condition ................................................. 114

84 Sample 1 for Average Condition ......................................................... 115

85 Sample 2 for Average Condition ......................................................... 116

86 Sample 3 for Average Condition ......................................................... 116

87 Sample 4 for Average Condition ......................................................... 116

88 Sample 5 for Average Condition ......................................................... 117

89 Ookia Speed Test for Average Network Condition .............................. 117

90 Ookia Speed Test for Poor Network Condition .................................... 118

91 First Device for the Different Devices Test .......................................... 119

92 Second Device for the Different Devices Test ..................................... 120

93 Third Device for the Different Devices Test ......................................... 120

94 Admin Records for Network Service Provider Testing ......................... 121


21

95 Message received by Globe Sim ......................................................... 121

96 Message received by Smart Sim......................................................... 122

97 Message received by TNT Sim ........................................................... 122

98 Message received by TM Sim ............................................................. 123

99 CheckMobi Records for Outbound Messages ..................................... 123

100 First Result for No. 5 Functionality Criteria (Admin viewing number

of transactions) ................................................................................... 126

101 Second Result for No. 5 Functionality Criteria ..................................... 126

102 First Result for Admin Update Patient Data (No. 6 Functionality) ........ 127

103 Second Result for Admin Update Patient Data (No. 6 Functionality) ... 127

104 Third Result for Admin Update Patient Data (No. 6 Functionality) ....... 127

105 Fourth Result for Admin Update Patient Data (No. 6 Functionality) ..... 127

106 Fifth Result for Admin Update Patient Data (No. 6 Functionality) ........ 128

107 Before Data Deletion........................................................................... 129

108 After Data Deletion.............................................................................. 129

109 Successfully Deleted Pop-up Message ............................................... 130

110 Result for Trial 1 of Functionality Criteria No. 8 ................................... 130

111 Result for Trial 2 of Functionality Criteria No. 8 ................................... 131

112 Result for Trial 3 of Functionality Criteria No. 8 ................................... 131

113 Result for Trial 4 of Functionality Criteria No. 8 ................................... 132


22

114 Result for Trial 5 of Functionality Criteria No. 8 ................................... 132

115 Result for Trial 1 of Functionality Criteria No. 9 ................................... 133

116 Result for Trial 2 of Functionality Criteria No. 9 ................................... 134

117 Result for Trial 3 of Functionality Criteria No. 9 ................................... 134

118 Result for Trial 4 of Functionality Criteria No. 9 ................................... 135

119 Result for Trial 5 of Functionality Criteria No. 9 ................................... 135


23

List of Tables

TABLE PAGE

1 Comparison between Different Microcontrollers ........................................ 35

2 Identifying Software as Front-end or Back-end ......................................... 35

3 Comparison between the Medical Appointments Scheduling System

And Related Studies ...................................................................... 37

4 Transmission speed of the first and second message received by user .... 54

5 Using Different Operating Systems (OS)................................................... 55

6 Synchronization test for the data of user, admin and database ................. 55

7 Password Strength Test............................................................................ 56

8 First Trial for Different Appointment Creation Dates but One

Scheduled Date............................................................................. 56

9 Second Trial for Different Appointment Creation Dates but One

Scheduled Date ............................................................................ 57

10 Third Trial for Different Appointment Creation Dates but One

Scheduled Date ............................................................................ 57

11 Unique User Account Name Test ............................................................. 58

12 First Network Condition (Ideal).................................................................. 58

13 Second Network Condition (Below Average - Average) ............................ 58


24

14 Network Condition (Poor) .......................................................................... 59

15 First Device for Appointment Registration ................................................. 59

16 Second Device for Appointment Registration ............................................ 59

17 Third Device for Appointment Registration ................................................ 60

18 Different Network Providers ..................................................................... 60

19 Functionality Criteria of the Study ............................................................ 61

20 Number 1 of the Functionality Criteria ...................................................... 61

21 Number 2 of the Functionality Criteria ...................................................... 62

22 Number 3 of the Functionality Criteria ...................................................... 62

23 Number 4 of the Functionality Criteria ...................................................... 62

24 Number 5 of the Functionality Criteria ...................................................... 62

25 Number 6 of the Functionality Criteria ...................................................... 63

26 Number 7 of the Functionality Criteria ...................................................... 63

27 Number 8 of the Functionality Criteria ...................................................... 64

28 Number 9 of the Functionality Criteria ...................................................... 64

29 Number 10 of the Functionality Criteria .................................................... 64

30 Number 11 of the Functionality Criteria .................................................... 65

31 Number 12 of the Functionality Criteria .................................................... 65

32 Results of the Transmission speed of the first and second message

received by user ......................................................................... 82


25

33 Using Different Operating Systems (OS) ................................................. 83

34 Results of Synchronization test for the data of user, admin and

Data base ................................................................................................ 84

35 Password Strength Test ........................................................................... 101

36 First Trial for Different Appointment Creation Dates but One

Scheduled Date ....................................................................................... 106

37 Second Trial for Different Appointment Creation Dates but One

Scheduled Date ....................................................................................... 106

38 Third Trial for Different Appointment Creation Dates but One

Scheduled Date ....................................................................................... 106

39 Unique User Account Name Test ............................................................. 111

40 First Network Condition (Ideal) ................................................................. 113

41 Second Network Condition (Average) ...................................................... 115

42 Third Network Condition (Poor) ................................................................ 117

43 First Device for Appointment Registration ................................................ 118

44 Second Device for Appointment Registration ........................................... 119

45 Third Device for Appointment Registration ............................................... 119

46 Results of Different Network Service Provider Test .................................. 121

47 Results for the Functionality Criteria of the Study..................................... 124

48 Results for Number 1 of the Functionality Criteria .................................... 124


26

49 Results for Number 2 of the Functionality Criteria .................................... 125

50 Results for Number 3 of the Functionality Criteria .................................... 125

51 Results for Number 4 of the Functionality Criteria .................................... 125

52 Results for Number 5 of the Functionality Criteria .................................... 126

53 Results for Number 6 of the Functionality Criteria .................................... 126

54 Results for Number 7 of the Functionality Criteria .................................... 128

55 Results for Number 8 of the Functionality Criteria .................................... 130

56 Results for Number 9 of the Functionality Criteria .................................... 132

57 Data Gathered from Salapare Medical Clinic, Pavia Iloilo ........................ 137

58 Data Gathered from Room 215 MAB, Iloilo Mission Hospital ................... 138

59 Data Gathered from Room 201 MAB, Iloilo Mission Hospital ................... 139
27

Medical Appointment Scheduler System (M.A.S.S.)

Chong, Anne Kathrine; Fuentes, Marc Vergel; Leongson, Fher Noah;

Sioco, Stephanie ; Superatum, Rodney

ABSTRACT

This study focused on the appointment scheduling between hospitals and clinics of

outpatient departments. The Medical Appointment Scheduler System aimed to address

the common issues in the Philippines as it can provide a faster transaction between

patient and medical expert. It can also maximize the integration of technology even in

public health care centers. The application software will allow the patient to log in or sign

up if not yet registered and enter the user’s basic information. Registration was held

individually to have an account that can fully accessed the system. The system provides

a list of symptoms and they may opt to write if not included in the list. Each account has

a unique ID provided in the administration in order to individually identified the user for

confirmation. The system was composed of a database where information is stored for

appointment purposes. It is also made up of Arduino Uno R3 microcontroller and a

wireless remote-control sensor for the queuing part of the system. Data logs were stored

in a database using Firebase which can be obtained and updated from time to time. The

security of the system was assured by providing a password for each patient upon

registration and the data can only be accessed through the admin’s database as

provided in the security criterion. The overall system showed normal operation and the

data gathered also conformed to the functionality and quality criteria.


28

CHAPTER I

INTRODUCTION

Background and Rationale

Hospitals are health care institutions that have an organized medical and

professional staff, members, inpatient facilities, and deliver services 24 hours per day,

seven days per week. They offer a varying range of acute, convalescent, and terminal

care using diagnostic and curative services. Hospitals need to be organized around

people’s needs, working closely with other health and social care services, and

contributing to strengthening primary health care (PHC) and public health services, to

substantially contribute to Universal Health Coverage (World Health Organization).

Health has been acknowledged by the World Health Organization as “a state of

complete physical, mental, and social well-being and not merely the absence of

disease.” (Research for Health: Policy Briefings by Council on Health Research for

Development and Global Forum for Health Research). The World Health Organization

defines social determinants of health as, “The conditions in which people are born, grow,

work, live and age, and the wider set of forces and systems shaping the conditions of

daily life,” (World Health Organization). Some of the factors that contribute to health are

Health Behaviors (20%), Social and Economic Factors (40%), Physical Environment

(20%), and Clinical Care (20%) (Health Research & Educational Trust 2017, November).

Although Clinical Care comprises only 20%, good medical care still plays a major role in

a person’s health status.

In its current decentralized setting, the Philippine health system has the

Department of Health (DOH) serving as the governing agency, and both local

government units (LGUs) and the private sector providing services to communities and
29

individuals. The DOH is mandated to provide national policy direction and develop

national plans, technical standards, and guidelines on health. Under the Local

Government Code of 1991, LGUs are granted autonomy and responsibility for their own

health services but are to receive guidance from the DOH through the Centers for Health

Development (CHDs). Provincial governments are mandated to provide secondary

hospital care, while city and municipal administrations are charged with providing

primary care, including maternal and child care, nutrition services, and direct service

functions. Rural health units (RHUs) were created for every municipality in the country in

the 1950s to improve access to health care. The private sector, which is much larger

than the public sector in terms of human, financial, and technological resources, is

composed of for-profit and non-profit providers that cater to 30% of the population.

Although the private health sector is regulated by the DOH and the Philippine Health

Insurance Corporation, health information generated by private providers is generally

absent in the information system of the DOH. Regulation of health science schools and

universities is under the Commission on Higher Education, while the regulation of health

professionals is carried out by the Professional Regulation Commission. PhilHealth

introduced health technology assessment (HTA) in the early 2000s to examine current

health interventions and find evidence to guide policy, utilization, and reimbursement. As

a third-party payer, PhilHealth regulates through the accreditation of health providers

that are in 16 compliances with its quality guidelines, standards, and procedures. The

Food and Drug Administration (FDA) regulates pharmaceuticals along with food,

vaccines, cosmetics and health devices, and equipment. At present, patients´ rights and

safety are expressed under the purview of the Penal Code and Medical Act of 1959 and

health professional practice acts. The lack of a gatekeeping mechanism in the health

system allows patients to choose their physicians. Patient empowerment, on the other

hand, has remained more a concept than a practice. The relationship of the health
30

system with individuals, families, and communities are still largely one of giver to

recipient (Allianz Care).

Health care systems in the Philippines are divided into two: the Private Health

care and Public Health care systems. The private health sector caters to 30% of the

population and is based on North American medical models. Medical services in

private hospitals are frequently touted to be held to a higher standard, but that also

means it comes at a higher price (Allianz Care). The public healthcare system is

delivered through public health and primary healthcare centers linked to

peripheral barangay (local town) health centers. Around 40% of the hospitals in the

Philippines are public. Doctors at public hospitals in the Philippines are well -trained,

but the technology and equipment used at public hospitals are not as good as private

ones (Stramis document).

Based on the study Determinants of Patient Waiting Time in the General

Outpatient Department of a Tertiary Health Institution in North Western Nigeria by MO

Oche and H Adamu, the amount of time a patient waits to be seen is one factor which

affects utilization of healthcare services. According to the study by MO Oche and

Adamu, long waiting times are perceived as barriers by the patients and can cause

stress for both patient and doctor. For the study, 96 respondents were gathered and

sixty percent said that they waited for an appointment for 90-180 minutes which exceeds

the 30 minute waiting time for at least 90% of the patients as per The Institute of

Medicine’s recommendation. “News travels fast but bad news travels faster. Not only

that, but it takes about ten good reviews to outweigh one bad one. No doctor or facility

administrator can afford to let complaints about waiting in line too long tarnish an

otherwise solid reputation,” says Terry Lang, owner and founder of Alzatex, Inc., an

Aloha Oregon-based manufacturer of high technology timing systems that serve the

military, medical, sporting, education, and municipal industries. In 2015, a study in Ha


31

Dong General Hospital by Nguyen indicates that the average waiting time for

consultation is between 63.05 – 62.96 minutes. “An Assessment of a Patient Waiting

and Consultation Time in a Primary Healthcare Clinic by BA Ahmad et.al suggests that

waiting time is inversely proportional to patient satisfaction and that there is no known

acceptable waiting time but patients are less likely to be dissatisfied if the waiting time is

within 30 minutes. According to the same study, overseas statistics have shown that

Malaysia has an average waiting time of 1-2 hours in outpatient departments. Based on

the study Improving Waiting Time and Operational Clinic Flow in a Tertiary Diabetes

Clinic by Emily Tse Lin Ho, waiting times were tested in a 6-month period and 80% of

the respondents were seen within 60 minutes. Although this is a better number than the

previously discussed studies, it does not change the fact that at least an hour of a

patient’s time is wasted.

Medical establishments in the Philippines have also faced a number of problems

including long waiting hours and inconvenient schedules. Public health in the Philippines

according to The Asian Development Bank (ADB) report has run-down facilities,

inconvenient schedules, and long waiting times which are usually caused by a large

volume of patient’s lack of proper queuing system and the unavailability of more

advanced scheduling options. These complications may cause a delay in diagnosis;

thus, putting the lives of the patients in danger according to the study Delayed Access to

Health care and Mortality by Julia C Prentice and Steven D Pizer. Another problem that

may arise is the high possibility of infectious diseases spreading if patients are in a

crowded waiting room. Time is wasted during long waiting hours and there is a

possibility for infection seeing that the waiting rooms or hallways are packed with a large

number of people who may initiate the spread of infectious diseases. Tom Frieden, M.D.,

the director of Center for Disease Control and Prevention (CDC) says that, “Hospitals

can be hot spots for infection and can sometimes amplify the spread.” The Potential for
32

Airborne Transmission of Infection in the Waiting Areas of Healthcare Premises by

Beggs et.al has constructed a stochastic analysis using a Monte Carlo model to analyze

the transmission of airborne infection in a 132 cubic meter hospital waiting area. The

result of the study revealed the mean probability of acquiring a Tuberculosis (TB)

Infection during a 30-minutes stay to be 0.0034; whereas, Influenza has a probability of

0.0262 which is an order of magnitude higher than TB. At the same period, measles has

0.1349 probability of spreading. If waiting times in clinics are doubled or increased then

the probability of these infectious diseases to spread also increases. According to an

article by the Daily Inquirer, one of the reasons why patients fail to visit clinics is because

of the long queue when visiting. The Daily Inquirer also reports that in this digital age

where patients have ample access to information online before visiting the doctor’s

clinic, the long waiting times encourage the patients to search on their smartphones

about the pain they are feeling otherwise known as self-diagnosis. With self-diagnosis

the patient may miss something that cannot be seen or underestimate their symptoms

according to Dr. Srini Pillay.

The usual medical appointment scheduling in the Philippines is primitive. Patients

either have to call their doctors or wait in line for their appointments. The CEO of Dentsu

Aegis Network Philippines Donald Lim says that it is hard to go to a hospital with no

good service. Having to wait in a long line just to see the doctor for a short period of

time. According to an article by Philstar, limited accessibility with regard to appointment

scheduling induces the behavior of self-medication among Filipinos- this is a common

practice where people rely on traditional medicine and unfounded advice from family and

friends. In order to address the issue, medical institutions in the Philippines would

provide priority numbers in order to prioritize those who came in early but still, it does not

change the fact that people still have to wait inside a crowded room, still uncertain of the

flow of the medical procedure.


33

To address the issue, health centers have opened call centers to allow patients

to schedule appointments when it is most convenient to them (Xtelligent Health Care

Media). According to EVisit, a #1 Rated TeleHealth Platform, a health center can

delegate tasks to other trained staf to lessen the load. These tasks include the collection

of patient history, management of prescription and test orders and taking notes during

patient visit. However, these changes do not directly affect the long queue in medical

centers. A study entitled Reducing Outpatient Waiting Time: A Simulation Modeling

Approach was conducted by Aeenparast et al. In the study, 10 scenarios were presented

for reducing outpatient waiting time. The scenarios are as follows: Scenario 1 -

Increasing number of novice resident from 2 to 3. Scenario 2 - Increasing the number of

experienced residents from 1 to 2. Scenario 3 - Changing the time of resident physician's

attendance at the clinic from 10 to 9 a.m. and duration of their attendance at the clinic

from 200 minute to 260 minute. Scenario 4 - Changing the time of senior staff

physician's attendance at the clinic from 10:45 to 10 a.m and duration of their attendance

at the clinic from 100 minute to 160 minute. Scenario 5 - Changing the start of patient's

admission from 7:30 to 8 a.m. Scenario 6 - Mix of scenarios 1 and 2. Scenario 7 - Mix of

scenarios 3 and 4. Scenario 8 - Mix of scenarios 1 and 2 and 5. Scenario 9 - Mix of

scenarios 3 and 4 and 5. Scenario 10- Mix of scenarios 1 and 2 and 3 and 4. After

evaluating the 10 Scenarios, Scenario 9 was found to be the best way to reduce patient

waiting time. This means that increasing the number of novice and professional medical

assistants have a minimal effect on the patients waiting time.

According to a 2013 survey by the American Academy of Family Physicians, the

average member of that group has 93.2 "patient encounters" each week — in an office,

hospital or nursing home, on a house call or via an e-visit. That's about 19 patients per

day. The family physicians said that they spend 34.1 hours in direct patient care each

week, or about 22 minutes per encounter with 2,367 people under each physician's care.
34

Thus, a Medical Appointment Scheduler System was designed to address the

common issues in the Philippines as mentioned above especially in health centers with

out-patient departments and clinics. The scheduling system has improved the

arrangement in clinics in such a way that productivity is maximized for patients who

already know their estimated time for check-up and waiting too long is unnecessary;

thus, stress and the spread of infectious diseases can be prevented. It has also provided

a problem-free appointment scheduling with faster transaction between patient and

medical expert. In addition to that, transactions are also real-time which means that

appointments may be scheduled any time regardless if it is a clinic hour or not. Patient

records are also more secure for they are stored in an online database with maximum

security.

Instead of the traditional way of dealing with the situation, the Medical

Appointment Scheduler system has offered an innovative solution. Not only that, it also

materialized the proper and positive aspect of integrating technology into the field of

medicine.

Objectives of the study

General Objectives

To design, construct, and test the Medical Appointment Scheduler System.

Specific Objectives

1. To design a web-based application that is accessible to every user of different

operating system.

2. To create a software application that will perform the initial gathering of patient

information such as the name, age, gender, address, contact number, and allow
35

the patient to check the symptoms applicable to them which is provided by the

software application.

3. To test and evaluate the Medical Appointment Scheduler System according to

the design criteria, namely:

a. Quality

b. Functionality

Significance of the Study

Since the application is web-based, users will easily access the software online

using any computer or phone connected to the Internet using a standard browser. The

transfer of information also becomes easier and more accurate.

A large number of patients may be hard to accommodate; thus, the system has

minimized the time and effort exerted by both the patient and the doctor. With the

system, a patient is not required to line up and wait for his turn given that he has a

schedule of his choice.

Medical Personnel. Inquiry about the patients regarding how they feel becomes

unnecessary because the system automatically summarizes the symptoms previously

checked or provided by the patient himself; therefore, a fraction of time is saved. Instead

of having to note down every personal detail stated by the patient, the attending medical

practitioner only has to read the data previously provided by the patient including the

symptoms checked. After reviewing the data, the attending medical practitioner now has

an idea or lead with regards to the ailment and all that is left are a few questions to be

answered by the patient. The attending medical assistants’ only responsibilities are the

confirmation of patient’s medical appointment, verification of the summarized symptoms,

listing of the patients (to be shown on the monitor) for the day, and updating the patient

information.
36

Patients. These are the biggest beneficiary of the proposed system since the

main focus of the study is the comfort of the patients. They may access the system using

any device and any operating system with internet connection. The application is made

to be user-friendly in order to accommodate all kinds of patients with or without the

knowledge regarding the usage of applications. The reference number returned to the

patient is also a huge help for a lot of time is saved and a lot of necessary work can be

done for the day instead of just waiting in line.

The study will also help reduce the overcrowding in hospital or clinic hallways

which prevents the entry of other people with different appointments. Overcrowding may

also contribute to the transmission of diseases with epidemic potential such as acute

respiratory infections, meningitis, typhus, cholera, scabies, etc.

Scope and Limitations

The study was designed specifically to provide an effective transfer of information

from patients to medical experts and not for self-diagnosis. It is limited to medical

establishments or clinics with the out-patient department. Majority of the respondents or

the patients also had the means of connecting to the Internet to access the application.

The application is web-based; thus, it is easily accessed by any user since it is

instantly available, easy to transfer files from one user to another, and compatible with

any device including gadgets with lower specifications.

The project was specifically designed for users who are capable of operating the

web. Minors who would like to use the software application should be guided by a parent

or guardian to ensure the veracity of the information provided. It is also limited to regular

check-ups or any clinic visit with a general physician or a family medicine practitioner

and not for emergency purposes.


37

CHAPTER II

REVIEW OF RELATED LITERATURE

Public health care in the Philippines is organized in 2 tiers: Primary care is

delivered through public health and primary health care centers linked to peripheral

barangay health centers (BHCs) or health outposts. Private healthcare services are well-

established and growing in Philippines through specialist clinics and private hospitals.

The private sector is much larger than the public sector in terms of human, financial and

technological resources and caters to 30% of the population. It is structured according to

the North American model organized around independent free-standing hospitals,

individual medical offices, and private clinics dependent on fee-for-service payments.

Health facilities in the Philippines include government hospitals, private hospitals,

and primary health care facilities. Hospitals are classified based on ownership as public

or private hospitals. In the Philippines, around 40 percent of hospitals are public

(Department of Health, 2009). Out of 721 public hospitals, 70 are managed by the DOH

while the remaining hospitals are managed by LGUs and other national government

agencies (Department of Health, 2009). Both public and private hospitals can also be

classified by the service capability. At present, Level-1 hospitals account for almost 56

percent of the total number of hospitals (Department of Health, 2009; Lavado, 2010)

which have very limited capacity, comparable only to infirmaries.

The Philippines has both private and public healthcare institutions. Most of the

government hospitals provide quality healthcare in the same way private hospitals do.

Although some people may have misconceptions, most of them are unfounded. The

main differences between public and private hospitals are the facilities and technologies

offered. Most of the public hospitals would not be equipped to the same standard as the
38

private ones. However, some of the best doctors are serving in the government

hospitals. Also, most Filipinos would seek advice from these government hospitals

because fees are not charged. Private hospitals are located in key cities throughout the

nation and there are also tertiary hospitals that have the latest in medical technologies.

However, as you would expect, private hospitals are more expensive (Allianz Care).

An assessment of patient waiting and consultation time in a primary healthcare

clinic by BA Ahmad, K Khairatul,and A Farnaza says that the average consultation time

was 18.21 minutes. There are different values for the average consultation time; thus,

another study by Benson RJ says that average consultation times range from 10

minutes to 21 minutes. According to the Business Insider, 13 to 16 minutes is the

common reported figure when speaking about average consultation times.

Medical appointments in the Philippines have always been flawed because of the

poor system imposed in the country. Technology is not thoroughly utilized and there is a

prevalent poor management set up. Medical appointments in the Philippines are still

orthodox. Patients either have to call their doctors or wait in line for their appointments.

This is appropriate for medical establishments with fewer patients but not with high

volume ones. Time is wasted during long waiting hours and there is a possibility for

infection seeing that the waiting rooms or hallways are packed with a large number of

people who may initiate the spread of infectious diseases. Thus, the system has

developed a way to address the given problem with the most economical and user-

friendly approach possible.

Related Technologies

The system is a web-based application; thus, it is composed mainly of software

but a microcontroller is used to optimize the display monitor.


39

Microcontrollers

Arduino Uno

Arduino Uno is a prototyping board based on the ATmega328P microcontroller. It

has 14 digital I/O pins, 6 analog inputs, a 16 MHz quartz crystal, a USB connection, a

power jack, an ICSP header and a reset button. It is easy to use just simply connect it to

a computer with a USB cable and start programming. It is the most used board in the

Arduino family with a lot of documentation

(https://www.circuitspecialists.com/arduino_uno_r3.html).

Figure 1. Arduino Uno Rev 3 Board

Arduino Nano

The Arduino Nano is a small, complete, and breadboard-friendly prototyping

board based on the ATmega328P microcontroller. It has more or less the same

functionality of the Arduino Duemilanove, but in a different package. It lacks only a DC

power jack, and works with a Mini-B USB cable instead of a standard one

(Source: https://store.arduino.cc/usa/arduino-nano ).

Figure 2. Arduino Nano 3 Board


Arduino Micro

The Arduino Micro is a prototyping board based on the ATmega32U4

microcontroller. It has 20 digital I/O pins (12 of which can be set as analog inputs), a 16

MHz crystal oscillator, a micro USB connection, an ICSP header, and a reset button. It

similar with the other Arduino boards but it uses a micro USB cable to connect to your

PC. It is designed to be easily placed on a breadboard

(Source: https://store.arduino.cc/usa/arduino-micro )

Figure 3. Arduino Micro Board

Buzzer

Wireless Remote-Control Buzzer

A buzzer or beeper is an audio signaling device, which may be mechanical,

electromechanical, or piezoelectric. Typical uses of buzzers and beepers include alarm

devices, timers and confirmation of user input such as a mouse click or keystroke.

Buzzer is an integrated structure of electronic transducers, DC power supply, widely

used in computers, printers, copiers, alarms, electronic toys, automotive electronic

equipment, telephones, timers and other electronic products for sound devices. Active

buzzer 5V Rated power can be directly connected to a continuous sound, this section
142

dedicated sensor expansion module and the board in combination, can complete a

simple circuit design, to "plug and play,"(Source: http://tinkbox.ph/sites/tinkbox.ph).

Figure 4. Wireless Remote-Control Buzzer

Software

HTML

(HyperText Markup Language) is the most basic building block of the Web. It

defines the meaning and structure of web content. Other technologies besides HTML are

generally used to describe a web page's appearance/presentation (CSS) or

functionality/behavior (JavaScript).

"HyperText" refers to links that connect web pages to one another, either within a

single website or between websites. Links are a fundamental aspect of the Web. By

uploading content to the Internet and linking it to pages created by other people, you

become an active participant in the World Wide Web. HTML uses "markup" to annotate

text, images, and other content for display in a Web browser. HTML markup includes

special "elements" such

as <head>, <title>, <body>, <header>, <footer>, <article>, <section>, <p>, <div>, <span>, <img>
143

, <aside>, <audio>, <canvas>, <datalist>, <details>, <embed>, <nav>, <output>, <progress>, <vi

deo>and many others (Source: https://developer.mozilla.org/en-US/docs/Web/HTML).

JavaScript

JavaScript, often abbreviated as JS, is a high-level, interpreted programming

language. It is a language which is also characterized as dynamic, weakly typed,

prototype-based, and multi-paradigm. Alongside HTML and CSS, JavaScript is one of

the three core technologies of the World Wide Web. JavaScript enables interactive web

pages and; thus, is an essential part of web applications. The vast majority of websites

use it, and all major web browsers have a dedicated JavaScript engine to execute it as a

multi-paradigm language. JavaScript supports event-driven, functional, and imperative

(including object-oriented and prototype-based) programming styles. It has an API for

working with text, arrays, dates, regular expressions, and basic manipulation of the

DOM, but the language itself does not include any I/O, such as networking, storage, or

graphics facilities, relying for these upon the host environment in which it is embedded.

Initially only implemented client-side in web browsers, JavaScript engines are now

embedded in many other types of host software, including server-side in web servers

and databases, and in non-web programs such as word processors and PDF software,

and in runtime environments that make JavaScript available for writing mobile and

desktop applications, including desktop widgets. Although there are strong outward

similarities between JavaScript and Java, including language name, syntax, and

respective standard libraries, the two languages are distinct and differ greatly in design.

JavaScript was influenced by programming languages such as self and Scheme

(Source: https://en.wikipedia.org/wiki/JavaScript).
144

CSS

Cascading style sheets are used to format the layout of Web pages. They can be

used to define text styles, table sizes, and other aspects of Web pages that previously

could only be defined in a page's HTML.

CSS helps Web developers create a uniform look across several pages of a Web

site. Instead of defining the style of each table and each block of text within a page's

HTML, commonly used styles need to be defined only once in a CSS document. Once

the style is defined in cascading style sheet, it can be used by any page that references

the CSS file. Plus, CSS makes it easy to change styles across several pages at once.

For example, a Web developer may want to increase the default text size from 10pt to

12pt for fifty pages of a Web site. If the pages all reference the same style sheet, the text

size only needs to be changed on the style sheet and all the pages will show the larger

text.

While CSS is great for creating text styles, it is helpful for formatting other

aspects of Web page layout as well. For example, CSS can be used to define the cell

padding of table cells, the style, thickness, and color of a table's border, and the padding

around images or other objects. CSS gives Web developers more exact control over

how Web pages will look than HTML does. This is why most Web pages today

incorporate cascading style sheets (Source: https://techterms.com/definition/css).

Visual Basic

A programming language and environment developed by Microsoft. Based on

the BASIC language, Visual Basic was one of the first products to provide a graphical

programming environment and a paint metaphor for developing user interfaces. Instead

of worrying about syntax details, the Visual Basic programmer can add a substantial
145

amount of code simply by dropping controls, such as buttons and dialog boxes, and then

defining their appearance and behavior.

Although not a true object-oriented programming language in the strictest sense,

Visual Basic nevertheless has an object-oriented philosophy. It is sometimes called

an event-driven language because each object can react to different events such as

a mouse click.

Since its launch in 1990, the Visual Basic approach has become the norm for

programming languages. Now there are visual environments for many programming

languages, including C, C++, Pascal, and Java. Visual Basic is sometimes called

a Rapid Application Development (RAD)system because it enables programmers to

quickly build prototype applications

(Source: https://www.webopedia.com/TERM/V/Visual_Basic.html).

Python

Python is an interpreted, object-oriented, high-level programming language with

dynamic semantics. Its high-level built in data structures, combined with dynamic typing

and dynamic binding, make it very attractive for Rapid Application Development, as well

as for use as a scripting or glue language to connect existing components together.

Python's simple, easy to learn syntax emphasizes readability and therefore reduces the

cost of program maintenance. Python supports modules and packages, which

encourages program modularity and code reuse. The Python interpreter and the

extensive standard library are available in source or binary form without charge for all

major platforms, and can be freely distributed.

Often, programmers fall in love with Python because of the increased productivity

it provides. Since there is no compilation step, the edit-test-debug cycle is incredibly fast.

Debugging Python programs is easy: a bug or bad input will never cause a segmentation
146

fault. Instead, when the interpreter discovers an error, it raises an exception. When the

program doesn't catch the exception, the interpreter prints a stack trace. A source level

debugger allows inspection of local and global variables, evaluation of arbitrary

expressions, setting breakpoints, stepping through the code a line at a time, and so on.

The debugger is written in Python itself, testifying to Python's introspective power. On

the other hand, often the quickest way to debug a program is to add a few print

statements to the source: the fast edit-test-debug cycle makes this simple approach very

effective (Source: https://www.python.org/doc/essays/blurb/).

Hypertext Preprocessor (PHP)

PHP is an HTML-embedded Web scripting language. This means PHP code can

be inserted into the HTML of a Web page. When a PHP page is accessed, the PHP

code is read or "parsed" by the server the page resides on. The output from the PHP

functions on the page are typically returned as HTML code, which can be read by the

browser. Because the PHP code is transformed into HTML before the page is loaded,

users cannot view the PHP code on a page. This make PHP pages secure enough to

access databases and other secure information.

A lot of the syntax of PHP is borrowed from other languages such as C, Java and

Perl. However, PHP has a number of unique features and specific functions as well. The

goal of the language is to allow Web developers to write dynamically generated pages

quickly and easily. PHP is also great for creating database-driven Web sites

(Source: https://techterms.com/definition/php).
147

Structured Query Language (SQL)

Structured Query Language (SQL) is a standard computer language for relational

database management and data manipulation. SQL is used to query, insert, update and

modify data. Most relational databases support SQL, which is an added benefit for

database administrators (DBAs), as they are often required to support databases across

several different platforms. First developed in the early 1970s at IBM by Raymond Boyce

and Donald Chamberlin, SQL was commercially released by Relational Software Inc.

(now known as Oracle Corporation) in 1979. The current standard SQL version is

voluntary, vendor-compliant and monitored by the American National Standards Institute

(ANSI). Most major vendors also have proprietary versions that are incorporated and

built on ANSI SQL, e.g., SQL*Plus (Oracle), and Transact-SQL (T-SQL) (Microsoft)

(Source: https://www.techopedia.com/definition/1245/structured-query-language-sql).

Node.js

Node.js (Node) is an open source development platform for

executing JavaScript code server-side. Node is useful for developing applications that

require a persistent connection from the browser to the server and is often used for real-

time applications such as chat, news feeds and web push notifications. Node.js is

intended to run on a dedicated HTTP server and to employ a single thread with one

process at a time. Node.js applications are event-based and run asynchronously. Code

built on the Node platform does not follow the traditional model of receive, process,

send, wait, receive. Instead, Node processes incoming requests in a constant event

stack and sends small requests one after the other without waiting for responses. One of

the major advantages of Node.js, according to its creator Ryan Dahl, is that it does not

block input/output (I/O). Some developers are highly critical of Node.js and point out that
148

if a single process requires a significant number of CPU cycles, the application will block

and that the blocking can crash the application. Proponents of the Node.js model claim

that CPU processing time is less of a concern because of the high number of small

processes that Node code is based on

(Source: https://whatis.techtarget.com/definition/Nodejs).

ASP.NET

ASP.NET is a set of Web development tools offered by Microsoft. Programs like

Visual Studio .NET and Visual Web Developer allow Web developers to create dynamic

websites using a visual interface. Of course, programmers can write their own code

and scripts and incorporate it into ASP.NET websites as well. Though it often seen as a

successor to Microsoft's ASP programming technology, ASP.NET also supports Visual

Basic.NET, JScript .NET and open-source languages like Python and Perl.

ASP.NET is built on the .NET framework, which provides an application program

interface (API) for software programmers. The .NET development tools can be used to

create applications for both the Windows operating system and the Web. Programs like

Visual Studio .NET provide a visual interface for developers to create their applications,

which makes .NET a reasonable choice for designing Web-based interfaces as well.

In order for an ASP.NET website to function correctly, it must be published to a

Web server that supports ASP.NET applications. Microsoft's Internet Information

Services (IIS) Web server is by far the most common platform for ASP.NET websites.

While there are some open-source options available for Linux-based systems, these

alternatives often provide less than full support for ASP.NET applications

(Source: https://techterms.com/definition/aspnet).
149

Firebase

Firebase is a mobile and web application development platform developed by

Firebase, Inc. in 2011, then acquired by Google in 2014. As of October 2018, the

Firebase platform has 18 products, which are used by 1.5 million apps. Its services

include: Firebase Analytics -Firebase Analytics is a cost-free app measurement solution

that provides insight into app usage and user engagement , Firebase Cloud Messaging -

Formerly known as Google Cloud Messaging (GCM), Firebase Cloud Messaging (FCM)

is a cross-platform solution for messages and notifications for Android, iOS, and web

applications, which as of 2016 can be used at no cost, Firebase Authentication- Firebase

Auth is a service that can authenticate users using only client-side code. It

supports social login providers Facebook, GitHub, Twitter and Google (and Google Play

Games). Additionally, it includes a user management system, whereby, developers can

enable user authentication with email and password login stored with Firebase. Realtime

Database - Firebase provides a real-time database and backend as a service. The

service provides application developers an API that allows application data to be

synchronized across clients and stored on Firebase's cloud. The company provides

client libraries that enable integration with Android, iOS, JavaScript, Java, Objective-

C, Swift, and Node.js applications. The database is also accessible through a REST API

and bindings for several JavaScript frameworks such as AngularJS, React, Ember.js,

and Backbone.js. The REST API uses the Server-Sent Events protocol, which is an API

for creating HTTP connections for receiving push notifications from a server. Developers

using the real-time database can secure their data by using the company's server-side-

enforced security rules. Cloud Firestore which is Firebase's next generation of the Real-

time Database was released for beta use, Firebase Storage - Firebase Storage provides

secure file uploads and downloads for Firebase apps, regardless of network quality. The
150

developer can use it to store images, audio, video, or other user-generated content.

Firebase Storage is backed by Google Cloud Storage.

Firebase Hosting - Firebase Hosting is a static and dynamic web hosting

service that launched on May 13, 2014. It supports hosting static files such

as CSS, HTML, JavaScript and other files, as well as support through Cloud Functions.

The service delivers files over a content delivery network (CDN) through HTTP

Secure (HTTPS), and Secure Sockets Layer encryption (SSL). Firebase partners with

Fastly, a CDN, to provide the CDN backing Firebase Hosting. The company states that

Firebase Hosting grew out of customer requests; developers were using Firebase for its

real-time database but needed a place to host their content. ML Kit - ML Kit is a mobile

machine learning system for developers launched on May 8, 2018 in beta during

the Google I/O 2018. ML Kit API's feature a variety of features including text recognition,

detecting faces, scanning barcodes, labelling images, and recognizing landmarks. It is

currently available for iOS or Android developers. You may also import your

own TensorFlow Lite models, if the given API's aren't enough. The API's can be used

on-device or on cloud. Crashlytics - Crash Reporting creates detailed reports of the

errors in the app. Errors are grouped into clusters of similar stack traces and triaged by

the severity of impact on app users. In addition to automatic reports, the developer can

log custom events to help capture the steps leading up to a crash. Before acquiring

Crashlytics, Firebase was using its own Firebase Crash Reporting. Performance -

Firebase Performance provides insights into an app's performance and the latencies the

app's user’s experience (Source: https://en.wikipedia.org/wiki/Firebase).

Notepad++
151

Notepad++ is a free (as in "free speech" and also as in "free beer") source code

editor and Notepad replacement that supports several languages. Running in the MS

Windows environment, its use is governed by GPL License.

Based on the powerful editing component Scintilla, Notepad++ is written in C++

and uses pure Win32 API and STL which ensures a higher execution speed and smaller

program size. By optimizing as many routines as possible without losing user

friendliness, Notepad++ is trying to reduce the world carbon dioxide emissions. When

using less CPU power, the PC can throttle down and reduce power consumption,

resulting in a greener environment (Source: https://notepad-plus-plus.org/).

CheckMobi

The application helps companies of all sizes, enable their mobile and web application

with phone number verification capabilities. For this, the application has made available

their CheckMobi APIs (based on HTTP methods), which make it easy to integrate into

your own products. You can use any HTTP client in any programming language to

interact with the API. Also we provide two simple SDKs with sample client for iOS and

Android to make your life easy. Those are open source so you can modify/customize as

you wish. Flexibility. The software has four ways to verify a phone number: Caller ID,

Reverse Caller ID (missed call method), SMS, and IVR Voice call each of them fully

customizable. Combine them as you desire to create the best user experience for your

customers. Affordable. Choose to use the innovative Caller ID method to save up to 90%

on your phone verification setup traditional ways of verifying a number such as SMS and

IVR Voice call at our competitive rates. Private. Our business model is very

straightforward: We sell number verification services. You own your data. The

application does not collect your user’s data to sell to advertisers nor use it in any other
152

way besides helping you validate your user’s phone number. You are always in control

of your data stored with CheckMobi (Source: https://checkmobi.com/about.html).

Related Studies

Designing Queuing System for Public Hospitals in Thailand by Ubolrat


Wangrakdiskul

The group from Thailand aims to propose a queuing model, which integrates with

the lean thinking, the social process, and the cognitive process including the outpatients’

departments in the public hospitals.

This work has attempted to reduce waiting time and provided sufficient

information to analysts who are interested in using queuing theory for improving the

quality of healthcare services. In the proposed model, the group focuses on queuing

system management, patients’ waiting time, and the social cognitive approach in the

health care system of out-patients’ clinic of public hospitals. With this situation, the group

expects to reduce waiting time of patients and increase the satisfaction of patients.

Although, the public hospitals are not aim at profit achievement of the patient service,

the satisfactions of patients are the key point of operating organization. The competition

among the public hospitals is becoming the essential episode of their quality of care.

Furthermore, reduction of wastes in operating process and resources can be converted

to saving costs. This means that it can save the budget of Thai government for serving

health care to Thai people

(https://www.researchgate.net/publication/276279059_Designing_Queuing_System_for_

Public_Hospitals_in_Thailand).
153

According to Designing Queuing Systems for Public Hospitals In Thailand by

Ubolrat Wangrakdiskul, there are 4 types of queuing systems which are related to public

healthcare systems:

A.) Single Channel-Single Phase System

In this type, there is a single queue of customers waiting for service and only one

phase of services is involved. For example, only one practitioner nurse work for server in

a flu vaccination camp. It is shown in figure 5.

Figure 5. The Single Channel-Single Phase System

B.) Single Channel-Multiple Phase System

The type shown in figure 6 is still a single queue, but the service involves multiple

phases. After patients pass the registration counter, they have a queue for waiting to see

the physician again.

Figure 6. The Single Channel-Multiple Phase System


154

C.) Multiple Channel- Single Phase System

This type is shown in figure 7, customers from multiple queues waiting for the

service, which involves only one phase. Customer can switch from one line to the other.

The example of this type is the patients waiting in queue at pharmacy store.

Figure 7. Multiple Channel-Single Phase System

D.) Multiple Channel- Multiple Phase System

This type has a complex network because there are numerous queues with

multiple phase services involved. The example system of this type is multi-specialty,

outpatient clinic in hospitals. It is illustrated in figure 8.

Figure 8. Multiple Channel-Multiple Phase System

The Medical Appointment Scheduler System was designed using the principles

of the Single-Channel Multiphase System.


155

The Institute of Medicine US proposal

Patient centeredness is one of the six quality aims proposed by the Institute of

Medicine to improve health care quality in the United States. Web-based medical

scheduling as a medical self-service offers a more patient-centered means to make

appointments. Most Web-based appointment systems are interfaced with a calendar-like

list. Patients can browse and select the most convenient appointment time from the

available time slots. In contrast, patients are only given very limited options of available

time slots in traditional appointment systems. Besides time slots, some of the Web-

based systems allow patients to filter physicians by physicians’ attributes such as

education background, experience, gender, and reviews from other patients. Reduced

waiting time is another quality proposed by the Institute of Medicine. Waiting is an

indicator of service quality and a source of dissatisfaction that affects health care

outcomes and patient retention. Long waiting time may make patients seek care from

other providers and; thus, this can potentially cause a loss in revenue.

The most cited benefit of real-time scheduling is after-hour access. Real-time

scheduling requires minimal intervention of schedulers and; thus, can help reduce the

waiting time caused by human factors. The available time slots are transparent to

patients through the Web interface. Patients are free to claim available appointment slots

anytime and anywhere (http://pedsccm.org/FILE-CABINET/pccm/slonim-

IOM_quality.pdf).

Doctor Appointment Booking System, NevonsProject

The proposed project is a smart appointment booking system that provides

patients or any user an easy way of booking a doctor’s appointment online. The project

is a web based application that overcomes the issue of managing and booking

appointments according to user’s choice or demands. The task sometimes becomes


156

very tedious for the compounder or doctor himself in manually allotting appointments for

the users as per their availability. Hence, this project offers an effective solution where

users can view various booking slots available and select the preferred date and time.

The already booked space will be marked yellow and will not be available for anyone

else for the specified time. The system also allows users to cancel their booking

anytime. The system provides an additional feature of calculating monthly earnings of

doctor. The Medical practitioner or doctor has to just feed the system regularly with daily

earnings and the system automatically generates a report of total amount earned at the

end of the month. The application uses Asp.net as a front-end and SQL database as the

back-end (https://nevonprojects.com/doctor-appointment-booking-system/).

Figure 9. User Interface of the Doctor Appointment Booking System by Nevons Project

Design and Development of Online Doctor Appointment System by Md. Maharaz


Hossain et al.

The project aims to create a doctor patient handling management system that will

help doctors in their work and will also help patients to book doctor appointments and

view medical progress. The system allows doctors to manage their booking slots online.
157

Patients are allowed to book empty slots online and those slots are reserved in their

name. The system manages the appointment data for multiple doctors of various data

and times. Each time a user visits a doctor, his/her medical entry is stored in the

database by the doctor. Next time a user logs in, he may view his/her medical history as

and when needed. At the same time, a doctor may view patient’s previous medical

history while the patient visits him. The system also consists of Blood donor module.

This module allows for Blood donation registration as well as Blood group search. The

module is designed to help urgent Blood requirements through easy/ instant searched

(https://www.academia.edu/26066176/Design_and_Development_of_Online_Doctor_Ap

pointment_System).

Figure 10. Organizational Structure of the Online Doctor Appointment System


158

An investigation of the success of hospital information systems implementation:


A case study by Mahdavian et al.

A very important part in the society is healthcare. A Hospital Information System

(HIS) is basically a computer system that can manage all the information to allow

healthcare providers to do their jobs effectively. Due to the widespread use of such

systems, it is necessary to have an approach for evaluation and tracking of a HIS

project's success in hospitals which are using this technology. The present study

measures the success of HIS in the selected hospitals in Isfahan province based on

Ifinedo model. In addition, the most important critical success factors in these hospitals

are identified. The required data have been collected using a structured questionnaire.

Moreover, interviews are conducted by authors to introduce factors which affect lack of

complete HIS implementation success in hospitals. The findings disclosed that although

implementation of hospital information systems in the hospitals in Isfahan province is not

completely successful, but this success has been satisfactory

(https://www.ncbi.nlm.nih.gov/books/NBK221227/).

Scheduling interface system and method for medical professionals

The present invention provides a system and method for scheduling

appointments at any time with a professional, such as a doctor, dentist, veterinarian, or

the like, or a professional service, such as a medical testing facility and the like, even

when the office of the professional or professional service is closed. The system and

method relate to an asynchronous Internet, intranet, and extranet-compatible 24-hour

appointment scheduling interface for making such appointments. As such, they support

open-standards architecture, provide an interface for proprietary system architecture,

permit off-line review and posting, permit access controls and virus protection, allow

central scheduling without loss of distributed control, support encrypted messaging to


159

ensure privacy, and include context-sensitive help. The system and method also

embrace and integrate over the Internet all of the existing office administration

scheduling packages for professional offices, such as doctors' offices, regardless of the

platforms used, i.e., PC, Apple or UNIX platforms, thereby permitting users to schedule

and confirm, for example, doctor appointments in one consistent interface, regardless of

the hardware or software utilized by either the party seeking to schedule an appointment

or the individual doctor involved

(Source:https://patents.google.com/patent/US6345260B1/en?q=medical&q=scheduler&o

q=medical+scheduler).

Medical prescription scheduler for reminding and compliance

A medical prescription scheduler for reminding and compliance is basically

envisioned and devised to simplify the programming of a reminder device and comprises

of a single device or a pair of complimentary devices. A scheduler device is meant for

achieving a speedy and facilitated scheduling of a medical prescription, formatting the

scheduled prescription based on format specifications compliant with the prescription

reminder application program of a recipient reminder device, and transmitting the

formatted scheduled medical prescription to the reminder device. When unpacked in the

receiving reminder device, said format is intended for realizing the programming of the

reminder device. And the programmed reminder device is capable of audio-visually

reminding each dose of each medication of said prescription till compliance. Preferably,

the scheduler and reminder devices are modified commonly used electronic devices,

wherein either the existing hardware and/or software is suitably adapted or the requisite

hardware and/or software is incorporated so as to accomplish the scheduling and

reminding function. While inputting a prescription, the computing means of

a scheduler device assists a prescriber by performing relational analysis and by


160

displaying cautionary or advisory information. In addition to facilitating a doctor in

scheduling a medical prescription, a means for promoting pharmaceutical products and

generating revenues is included

(https://patents.google.com/patent/US20090281835A1/en?q=medical&q=scheduler&oq=

medical+scheduler).

System and method for scheduling medical examinations utilizing queues and
providing medical examination route guide information to the scheduled
examinations

In an on-site medical examination, an appointment is made from a work office in

order to shorten the entire medical examination time of the patients and the order and

the route can be shown at the medical examination site. The scheduler includes a

waiting queue for individual medical examination items and a waiting queue for individual

patients. The efficiency of the medical examination is achieved by communicating by

wireless displays carried by patients at the medical examination site and by giving

individual guidance concerning the places to go at the site

(Source:https://patents.google.com/patent/US7080025B2/en?q=medical&q=scheduler).

Medical case scheduling, logistics management and associated data


management.

Methods and systems enable the electronic scheduling of medical procedures.

Schedulers log into a scheduling system to electronically submit medical procedure

requests. Requests include entry of patient data together with at least one of: procedure

date, procedure place, procedure time, required equipment,

requested medical personnel, as part of the first medical procedure request. Once

request is accepted by the scheduling system, electronic notifications about the request

are automatically sent over a data network to parties associated with the medical
161

procedure (e.g., medical facility, medical personnel, and equipment distributors). System

enables rescheduling or resolution where scheduling conflicts are indicated

(Source:https://patents.google.com/patent/US20070185733A1/en?q=medical&q=schedu

ler&oq=medical+scheduler&page=1).

The HSC Medical Center Appointment Scheduling System

As claimed by the HSC Medical Center, Nowadays, people do not need to queue

for a long time anymore when they are waiting to consult with a medical officer. There

are few alternatives to make it more efficiently by booking through the reception, either

by phone, or by email. Besides that, there is another method to make an appointment

that is being used by HSC Medical Center online appointment system. This appointment

system is used to made appointment between patient and doctor for medical purpose.

This system does not have any ID and password to log-in before making any

appointment, but the appointment is valid within 24 hours only. The user has to complete

the form and click the submit button to finalize the appointment

(https://www.academia.edu/27090270/Web_Based_Intelligent_Appointment_System).

Figure 11. The HSC Medical Center Appointment System Appointment Form
162

There are two modes of Web-based appointment systems; asynchronous and

real-time. In the asynchronous mode, appointments are requested through emails or

electronic forms on providers’ website, and then manually processed by schedulers. In

the real-time mode, patients can directly interact with providers’ scheduling management

systems. Although the asynchronous Web-based appointment systems also use the

Internet as a medium, they basically replicate the process of telephone-based

appointment scheduling. Under the asynchronous mode, if an appointment is requested

outside of a provider’s business hours, it will not be processed until schedulers return to

work. Normally, Web-based appointment requests are put in the same queue as phone-

call appointments, and are, thus, limited by the backlog of phone calls in the queue

(Web-Based Medical Appointment Systems: A Systematic Review byPeng Zhao et al.).

Figure 12. Impacts after implementing the Web-based appointment scheduling system
as gathered by Peng Zhao et al
163

Synthesis

Table 1. Comparison between Different Microcontrollers


DIGITAL
ANALOG
MICROCONTRO- SUPPLY INPUT/ PWM FREQUEN
INPUTS PRICE
LLERS VOLTAGE OUTPUT OUTPUTS CY
PINS

ARDUINO UNO 5V 14 6 6 16 MHz P 1130.47


Quartz
16 MHz
ARDUINO NANO 5V 14 6 8 Quartz P 1130.47
Crystal
16 MHz
ARDUINO MICRO 5V 20 7 12 Crystal P 1017.42
Oscillator

The Medical Appointment Scheduler System was made of Arduino Uno R3

because of its function and easy to understand programming language. This

microcontroller was readily available. The queuing part was made of this together with

wireless remote-control buzzer, potentiometer, transistor, and resistor.

Table 2. Identifying Software as Front-end or Back-end


Software Developer Frontend Backend
HTML (HTML) 

Cascading Style Sheets (CSS) 

JavaScript 

Visual Basic 

Phython 

Hypertext Preprocessor (PHP) 

Structured Query Language 


(SQL)
Java 

Active Server Pages.Net 


(ASP.NET)
164

The Medical Appointment Scheduler System is a web-based application made of

entirely software. In order to improve the over-all performance of the system, it is

referred to different related studies of software developer. The frontend application of the

system is the visible part wherein the user interacts with. Its main purpose is to deliver

effective interactivity and display of the content and data in an appealing, neat, and

simple to understand manner. That’s why the frontend application selected for the study

are the HTML, CSS, and JavaScript. These computer languages are easily understood

and interpreted by web browsers. The HTML and CSS complements with each other in a

manner that they provide styling required for attractive interface. The JavaScript is a

dynamic programming language that is used to add interactivity to web pages and it

makes possible the integration of multimedia on the web pages.

The backend of the web application is basically served as the brains behind the

frontend. It comprises of three component such as server, application, and database. It

is a link between the server and the user where most of the coding can be found. The

quality of this code determines how the website functions and its architecture. The

Firebase is used in this system for it is a software database developed by Google. It has

its own real-time database, cloud storage, authentication, and hosting.


165

Table 3. Comparison between the Medical Appointment Scheduler System and Related
Studies
Functions

Studies
Can choose Patient’s
Real-time Calendar- Community Web- SMS-
convenient Symptoms
Scheduling like -based based Based
time Overview
Queuing System
by Ubolrat
Wangrakdiskul    

The Institute of
Medicine US
proposal.     

Doctor
Appointment
Booking System,    
NevonsProject
Design and
Development of
Online Doctor
Appointment    

System
An investigation of
the success of
hospital
information  
systems
implementation

Scheduling
interface system
and method for
medical
  
professionals

Medical
prescription
scheduler for
reminding and

compliance

System and
method for
scheduling   
medical
examinations

Medical case
scheduling,
logistics
management and
  
associated data
management

The HSC Medical


Center
Appointment     
Scheduling
System

Medical
Appointment       
Scheduler System
166

The Queuing System by Ubolrat Wangrakdiskul, Doctor Appointment Booking

System, NevonsProject and the Design and Development of Online Doctor Appointment

System have the functions of real-time scheduling, choosing of time convenient for the

patient, community-based and web-based. The Institute of Medicine US Proposal has

the following functions mentioned above, but it has its own calendar-like application

where patients can browse and select the most convenient appointment for them.

Overall, the studies have aimed to reduce patient’s waiting time and provide sufficient

information to analyze before having a check-up with the physician.

Medical prescription scheduler for reminding and compliance was only a

community -based study, wherein, reminding the patient audio-visually the medication of

the said prescription while an investigation of the success of hospital information

systems implementation study both provides community-based and web-based

application of the system. It is a study, wherein, a computer system can manage all the

information to allow healthcare providers to the job more effectively.

Scheduling interface system and method for medical professionals, System, and

method for scheduling medical examination and Medical case scheduling, logistics

management and associated data management are studies that comprise real-time

scheduling, web-based application and community-based. A patient will log into the

system to submit electronically the request procedure. The request includes entry of the

patient together with procedure date, place, time required equipment, and medical

personnel. The request will automatically be sent to a data network associated with the

medical procedure.

The Medical Appointment Scheduler System is a system that contains all the

functions of the previous studies mentioned above. The application software has allowed

the patient to log in or sign up if not yet registered and enter the user’s basic information

which includes the name, age, gender, address and date of birth. After which, the
167

system has provided a list of symptoms and the patient should check the symptom

which is applicable to him. If the symptoms felt are not included in the list, the user has

written it down on the box provided after the checklist of symptoms. After the selection of

symptoms, the user should select the time and date of consultation where he is most

comfortable with. After successfully booking an appointment, the patient will receive a

message on the day of consultation asking if the patient is willing to proceed with the

consultation. If the patient replies with a YES to the administrator’s number for the

confirmation, then his schedule is confirmed. If the patient replies with a NO, then his

name has been removed from the system.

The system has improved the appointment scheduling of a general physician or

family medical doctor clinic. It was a web-based application that has been useful to the

community. It has reduced the waiting time of every patient as well as reduced the crowd

in a medical clinic. Thus, it will prevent the spread of infectious microorganisms within

the area. A patient’s symptoms overview has been added in order to assess the current

health of the patient by the physician prior. From the different evidences and various

situations presented, compared to traditional appointment methods, web-based

appointment scheduling is more patient-centered and has many advantages due to

improved access. After implementing web-based appointment systems, many practices

have shown positive changes such as reduced no-show rate, decreased staff labor,

decreased waiting time, and improved patient satisfaction. Although this web-based

appointment system has produced a positive outcome, this assertion should be further

reinforced by more sophisticated study designs. As in some studies, the Web-based

appointment services are components of portals and it was hard to measure their

impacts statistically. Some studies reported results without controlling for other factors. It

is possible that the positive outcomes were produced by the other factors or by the

combination of the Web-based appointment systems and the other factors.


168

CHAPTER III

METHODOLOGY

The initial step in the formation of the study was identifying the problem. Having

wanted to enhance the situation of health centers in the Philippines, the group gathered

information about the areas that needed improvement and decided to create a solution

for the problems thoroughly stated in the Background of the Study from Chapter I. After

determining the problem to be solved, the group had gathered the necessary supporting

data from credible sources such as published articles, related studies, official

documentaries, and news reports.

The design of the system was based on the data gathered. The process of

designing the elements of a system such as architecture, modules and components, the

different interfaces of those components, and the data that goes through the system

were considered. The main purpose of the design was to provide sufficient detailed

information about the system and its system elements to enable the implementation to

be consistent with the architectural entities as defined in models and views of the system

architecture.

The system was created with Java Script and Cascading Style Sheets (CSS) as

language for the body of the system and were edited using Notepad++ a free source

code editor. Those languages were used to code what the client sees on the webpage of

the software application (frontend). The Backend of the system was created through

Firebase. Using Firebase as the database of the system provides a high security for the

application and it was developed by Google. Its data centers are spread across many

servers thus, data loss is almost impossible for if one server fails to deliver, the users’

information can still be accessed through the other servers. The Database stores the
169

accounts created and the appointments made in the system, including the symptoms

and all other information provided by the user. The messaging feature of the system was

handled by Checkmobi SMS. Checkmobi is an online messaging application that can

fetch the data from the HMTL file of the web application. As for the display monitor of the

Queuing, Microsoft Visual Studio was used to create the display design and Arduino as

interface with the Wireless Remote Control Buzzer of the system.

The development of modern web application was a complex process that

requires the coordination of many different specialists working to achieve a common

goal. One might think that all you need is a developer and some code in order to make a

webpage work and one would be correct to some extent; however, there are other

aspects that have to be taken into consideration, such as quality, which is possibly the

most important example. Quality and Functionality test tables were constructed in order

to test whether the system delivers or not.

Figure 13. The Process of Creating the M.A.S.S

Design Criteria
170

The design aims to meet the following criteria:

Quality

The system must exhibit quality; therefore, once the data of the patient has been

gathered, the information should immediately be sent to the database where all the files

are kept. There should be no error in compiling the data even if users register

simultaneously. If a patient registered twice using the same name, the system should

void the record so that the database is free from duplicate records. The Medical

Appointment Scheduler Application was also built to ensure that the following data are

gathered accurately: [1] Patient Information. This is one of the most vital parts of the

data to be gathered for filing purposes: the patient’s name, age, gender, address, and

contact number. The data provided by the patient upon online registration should match

the data shown in the database and the records of the Medical Assistant. [2] The

symptoms provided by the patient should also match the data of the Medical Assistant.

Functionality

This pertains to the practicality of the Medical Appointment Scheduler System.

The system was designed while giving consideration to the users. The web application

was easy to use and was not time-consuming. Since technology was being utilized in the

proposed system, the Medical Appointment Scheduler should be able to simplify or

reduce the work of the medical practitioners. The application also aimed to eliminate the

need for a patient to call the clinic if the doctor is available or not. It should also give

patients the freedom to choose the date of consultation that is most convenient to them.
171

Design Constraints

Security

This was a major concern because of the existence of cyber-terrorists; thus, the

database must be backed with the necessary security and encrypted if unauthorized

access is detected. The user accounts should have unique case-sensitive passwords

with symbols.

Economic

Since the system is almost entirely made of software which are open-source and

free-to-use (denoting software for which the original source code is made freely available

and may be redistributed and modified), but the cost of the hardware should also be put

to consideration in the design process.

Software Compatibility

Choosing a software was one of the most important decisions to make; thus, the

need for a suitable software is a must in order to come up with a good website. The

software determined how fast the web-based application will run without having too

much platform conversion and interfacing requirements. The software must coincide with

the scope of this study. It should display a real-time queue of the website.
172

Design Plan Preparation

Figure 14. Block diagram of the Medical Appointment Scheduler System

The system was composed of a Patient Controlled Device, be it a walk-in or

remote device. The device could be in the form of a Mobile Phone, Laptop, Tabulator or

a PC that was connected to the internet so that the Medical Appointment Scheduler

System, which was an online web application can be accessed. After the registration

process, the information provided by the patient was automatically stored in the Firebase

database and sent to the system server which was the Medical Assistant Controlled

Device.

The Clinic received the data from the database which included the list of

schedules and patients with their information who registered using the online MASS. The

Controller or Administrator received the data and displayed it in a Monitor and the patient

names can be scanned with the use of a mouse or a Keyboard.

The Arduino Uno Microcontroller served as an interface between the system

software and hardware which was the Monitor for the Queued list of patients on that day.
173

The Messaging Application, CheckMobi were responsible for sending information to the

patient regarding the confirmation of their chosen schedules.

Online /Walk –in Patient

Figure 15. Flowchart of Online/Walk-in Patients

First, going for Appointment option, the patient either logs in or registers (for first-

time users) to the Web Application. While in the process of registration, the patient shall
174

provide a username, password, including the patient’s personal information including

(Full name, Address, Age, and etc.). After Login/Registration, the patient checked the

symptoms applicable to him/her then schedules his own appointment by selecting the

date that is appropriate to the patient. Afterwards, the slot was reserved for that

particular patient. If the slot was full, the user returned on selecting the appropriate

schedule. After the scheduling, the patient’s data were sent to the database for retrieval.

The time slots have an interval of 15 minutes so that there are 27 patients

catered in a day from 8 a.m. to 5 p.m. Allowances were also provided if ever there was a

consultation that exceeds 15 minutes.

Since the system was a web application, any user with internet connection can

gain access to the system. The software did not need installation processes which

require certain operating systems. It was accessed directly through the application. The

system provided a walk-in system where you can set an appointment in the clinic itself.

SMS Feature
Feature

Figure 16. Flowchart of SMS Feature for Confirmation or Cancellation of Appointment


175

After the submission of their data, the patient was expected to arrive on that day

if they have confirmed their booking by replying to the text message sent by the system

on the day of the appointment the patient has scheduled beforehand. The patients were

given a confirmation message after they have confirmed their appointment and a

cancellation notice if they cancelled their appointment.

Administrator

Figure 17. Flowchart of Administration Computer

In Figure 17, The Medical Assistant selects the date corresponding to the date

today and sees the list of names of the patient booked for appointment on the day. The

Medical Assistant calls for the name of the patient and if the patient is not yet present,

his name will be skipped. Then, the next patient is called for consultation.
176

Figure 18. User Interface of Administration

For Figure 18, the list of patients was manually placed or input by the Medical

Assistant before the consultation time starts. This system was operated manually so that

the Medical Assistant can freely delete those patients who never showed up to the

consultation and add those who came as walk-in patients. The application was operated

or run in the Microsoft Visual Studio application the display was duplicated in a larger

monitor which was placed in the waiting area of the clinic or health center.

Figure 19. Schematic Diagram of the Wireless Buzzer and Arduino Interfacing
177

Figure 19 shows the schematic diagram of the buzzer alert system which is

connected to the software of the display monitor via Arduino Uno R3. The system

utilized a wireless buzzer with remote system. The base was connected to one of the

input pins of the Arduino Uno R3 and the emitter to the ground. When triggered by the

display monitor system, the Arduino Uno R3 sent a small pulse which can trigger the

collector and emitter of the TIP29C transistor to close. The current then passed through

the 10 ohm resistor for additional voltage dropping. A high power capacity resistor was

used to withstand the large voltage circulating in the system. The current passing then

triggered the remote of the wireless buzzer to close which automatically triggers the

speaker of the wireless buzzer to sound. In addition to that, a potentiometer was placed

to adjust the sensitivity of the wireless remote buzzer system.

Software Construction Procedure

JavaScript

The JavaScript software was responsible for executing the technical functions of

the system.

HTML

HTML is the most basic building block of the Web. It defines the meaning and

structure of the web content. This was also the main software component or the

backbone of the design of the Medical Appointment Scheduler System. The design of

the M.A.S.S webpage was coded using HTML in Notepad++ which is an upgraded

version of the Notepad.


178

CSS

Cascading style sheets were used to format the layout of Web pages. They were

used to define text styles, table sizes, and other aspects of Web pages that previously

could only be defined in a page's HTML. This software worked in synch with HTML. CSS

was used to create a uniform webpage design all throughout the Medical Appointment

Scheduler System.

Notepad++

This was simply an upgraded version of the traditional Notepad pre-installed in

our computers and laptops. This software application is somewhat similar to the C++

which allows you to see errors in your codes.

CheckMobi

This was an SMS capable app which was integrated in the system. This

application isn’t network specific and can cater any SMS service provider in the country.

Microsoft Visual Studio

VB included a wide variety of visual tools, which may be used to create advanced

applications with an extended GUI. Thus, VB is more than a programming language. It

also included a variety of libraries, which are useful for creating object-oriented

programs. Programs usually involved large development teams working on projects

simultaneously. This software application was used to show the patient names in their

particular order which were displayed in the waiting area of the clinic.

Hardware Construction Procedure


179

Arduino Uno

The Arduino Uno is an open-source hardware which was utilized by the system

as an interface between the software used for the display monitor (Microsoft Visual

Studio) and the data from the Administrator particularly, the patient’s names.

TIP29C Transistor

The transistor was used as a switch in the system. When the transistor received

a small pulse coming from the Arduino once the button on the monitor screen was

activated, the collector and emitter that was open was closed and current flowed through

the 10 ohm resistor going to the buzzer remote switch.

10 ohm Resistor

This component did not have a major contribution to the whole circuit. It was just

placed for additional voltage dropping. A large power capacity resistor was utilized for

the circuit because the usual ¼ watt resistor has the probability of burning if exposed to

the large current drawn by the circuit for a long period of time.

Potentiometer

The Potentiometer was used as a dial to control the sensitivity of the wireless

buzzer system at a certain distance. The buzzer has a potential to be very sensitive and

it may respond to certain noise disturbances especially when the distance is very short.

Thus, it is good to place the buzzer and the remote circuit in a strategic position.
180

Buzzer

This component was used to serve as a notification alarm whenever the next

person is coming up. This component was controlled wirelessly by a remote control

which was connected to the Arduino.

Buzzer Remote Control

The remote control component was being controlled by the Arduino and sent a

signal wirelessly and triggered the buzzer to produce a sound.

Instrumentation

Stopwatch

A watch with a hand or a digital readout that can be started and stopped instantly

so as to indicate seconds or fractions of seconds, as for timing races

(www.yourdictionary.com/stopwatch).

This was used to measure the average time it takes for the patient to receive the

software generated reminder and confirmation message.

Analog Multimeter

The Digital Multimeter was used to test the electronic components used. The

tester was used to determine if the components behaved in the correct manner

according to their characteristics. It was also used to check for the continuity between

the soldered parts in the Printed Circuit Board to ensure that no parts were shorted.
181

F12 Key

It was used as a browser debug tool for checking the errors in running a program.

It showed certain errors such as bad network connection which means that there was a

network issue. If the error shown was a bad request, this means that the SMS

application had consumed the prepaid load and must be reloaded to continue using the

software.

Ookla Speed test

Speedtest.net is a web service that provides free analysis of Internet access

performance metrics, such as connection data rate and latency. It was used in testing

the system to determine the network upload speed that the system needed to deliver the

needed results.

Testing Procedure

Quality Testing

Software quality refers to the desirable attributes of software products. Some

qualities that define a quality software according to asq.org are: Functional suitability,

Reliability, Operability, Performance Efficiency, Security, Compatibility, Maintainability,

and Transferability.

The group has developed testing procedures that conform to some of the

characteristics listed above. The system was tested under different conditions which are

shown and discussed below.


182

Table 4. Transmission speed of the first and second message received by user
Samples 1st Transmission 2nd Transmission
SMS Speed SMS Speed
(1st SMS) (2nd SMS)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Average Average
Transmission Speed Transmission Speed

Table 4 testing worked under ideal conditions: with a perfectly working device, a

fast and stable internet connection. Fifteen user accounts were made to determine the

transmission speed of the 1st and 2nd message transmission. This data tested the quality

of the CheckMobi messaging application that was used by the system. By recording and

comparing the transmission speeds of the SMS through 15 different samples, an

average speed of transmission under normal conditions was established. Having a

precise value in transmission speed can tell a lot about the quality of a software.

Table 5. Using different Operating Systems (OS)


Operating Operating System Remark
System No. (Pass or Fail)

1 Android
2 iOS
3 Windows
183

Table 5 tested the capabilities of the system to work in commonly used operating

sytems such as Android, iOS, and Windows.

Table 6. Synchronization test for the data of user, admin and database
User
REMARK
Account User Data Admin Data
(Pass or Fail)
Number
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

Another determinant of a good quality system was Synchronization. It means that

a set of data or file should remain identical in more than one location. Using the same

samples from Table 4, the data provided by the patients such as the name, contact

number, symptoms, and the date and time selected was compared to the data seen by

the admin. If the patient data matched the admin data, it was remarked as PASS and if

otherwise, FAIL.
184

Table 7. Password Strength Test


No. CRITERIA PASS or FAIL
1 Password has a minimum of 1 character
2 Password has a minimum of 2 characters
3 Password has a minimum of 3 characters
4 Password has a minimum of 4 characters
5 Password has a minimum of 5 characters
6 Password has a minimum of 6 characters
7 Password has a minimum of 7 characters
8 Password has a minimum of 8 characters
9 Password has a minimum of 9 characters
10 Password can be a combination of letters
11 Password is case-sensitive
12 Password can be a combination of numbers
13 Password can be a combination of keyboard symbols
14 Password can be a combination of letters and numbers
15 Password can be a combination of letters and symbols
16 Password can be a combination of numbers and symbols
17 Password can be a combination of letters, numbers and symbols

Password Strength is a measure of how uncrackable a password is by

considering the length and complexity of the password. Thus, this is an important factor

of a quality software. Seventeen combinations were presented in Table 6 and each

condition was tested. If a condition was met, it was marked with (PASS). Otherwise,

(FAIL).

Different Appointment Creation Dates but one Scheduled Date

Table 8. 1st trial for Different appointment creation dates but one scheduled date
User Account Date Created Appointment Date Remark
1
2
3
4
5
185

Table 9. 2nd trial for Different appointment creation dates but one scheduled date
User Account Date Created Appointment Date Remark
1
2
3
4
5

Table 10. 3rd trial for Different appointment creation dates but one scheduled date
User Account Date Created Appointment Date Remark
1
2
3
4
5

If an appointment was successfully made, it should appear in the admin records

for that date. The Database will also indicated when the account was created. The

remark column will be marked as (PASS) and if the appointment is not found, it will be

marked as (FAIL).

Table 11. Unique User Account Name Test


No. CRITERIA REMARK
1 Account names can be replicated
2 Account name is case-sensitive

Table 10 will test the restrictions and possible combinations of user account

names. Uniqueness in user account name is an important factor in the definition of

quality.
186

Different Network Conditions

Table 12. 1st Network Condition (Ideal)


User Appointment sent to Admin (PASS or FAIL) Message received
Account (PASS or FAIL)
1
2
3
4
5

Table 13. 2nd Network Condition (Average)


Samples Appointment sent to Admin (PASS or FAIL) Message received
(PASS or FAIL)
1
2
3
4
5

Table 14. 3rd Network Condition (Poor)


Samples Appointment sent to Admin (PASS or FAIL) Message received
(PASS or FAIL)
1
2
3
4
5

Tables 11 to 13 tested the operation of the system under Ideal, Average, and

Poor Network Conditions. Devices used in the three tests were constant so that the

result depended solely on the Network Speed. It also determined if there was difficulty in

receiving messages under different networks conditions.

Different Devices for Appointment Registration


187

Table 15. 1st Device for Appointment Registration


Sample Appointment sent to Admin (PASS or Message received
FAIL)
1
2
3
4
5

Table 16. 2nd Device for Appointment Registration


Sample Appointment sent to Admin (PASS or Message received
FAIL)
1
2
3
4
5

Table 17. 3rd Device for Appointment Registration


Sample Appointment sent to Admin (PASS or Message received
FAIL)
1
2
3
4
5

Tables 14 to 16 tested the performance of the system using different devices for

appointment scheduling. The admin and network connection were constant variables so

that the only determining factor for the test was the devices used. The test was

determined if the data had been uploaded and was in synchronization with the admin

records. It also tested if there was difficulty in receiving a message.

Different Network Service Providers


188

Table 18. Different Network Service Providers


Sample Service Provider – Sim Card Number Message received
(PASS or FAIL)
1 Globe - +639560579254
2 Talk n’ Text – +639489614746
3 Smart Buddy - +639392794883
4 TM - +639263361023

Functionality

Functionality testing was performed to verify that a system performs and

functions exactly according to the system specifications. It was used to verify that the

system was fully functional after the assembly process. Functionality testing was

performed by verifying the operation of the individual components of the system and the

system in general. Each functionality test was performed ten times with three attempts

as an acceptable number for the system.

Table 19. Functionality Criteria of the Study


No. Criteria Pass Fail
1 Users can sign up or register without difficulty
2 Users can login without difficulty
3 Users can select the different symptoms
4 Users can select their preferred time and date of
consultation
5 The admin can view the number of transactions for a
certain day
6 The admin can update patient data
7 The admin can delete patient data
8 The admin can Confirm Appointments
9 The admin can cancel Appointments
10 Client name remains at the top of the list of the monitor if
he has not yet entered the clinic for consultation
11 Client name can be deleted if the client has declined the
consultation or if the clinic hours have ended.
12 The speaker creates a sound notification for every
change in queue.
189

The functionality test has twelve numbers or parts. Each part was performed

depending on the number of spaces to be filled in below. To be considered as functional,

the trials were limited to 3 attempts each. If after 3 attempts the system fails to deliver,

the current trial will be considered Fail. If the system worked within the 3 attempts, the

Remark will be PASS. (Example, for number 6 of Functionality criteria: If the speaker

created the sound on the 2nd attempt for the 1st trial, the check was placed under the 2nd

attempt column). If an action was completed within the 4th try, then that is considered as

a ‘Fail’. Total percentage per attempt was calculated as number of checks over 1st, 2nd or

3rd attempt.

Table 20. Number 1 (Users can sign up or register without difficulty) of the Functionality
Criteria
TRIAL No. 1st attempt 2nd attempt 3rd attempt Remark
1
2
3
4
5
6
7
8
9
10
Total Percentage
per attempt

Table 21. Number 2 (Users can login without difficulty) of the Functionality Criteria
TRIAL No. 1st attempt 2nd attempt 3rd attempt Remark
1
2
3
4
5
6
7
8
9
190

10
Total Percentage
per attempt

Table 22. Number 3 (Users can select the different symptoms) of the Functionality
Criteria
TRIAL No. 1st attempt 2nd attempt 3rd attempt Remark
1
2
3
4
5
6
7
8
9
10
Total Percentage
per attempt

Table 23. Number 4 (Users can select their preferred time and date of consultation) of
the Functionality Criteria
TRIAL No. 1st attempt 2nd attempt 3rd attempt Remark
1
2
3
4
5
6
7
8
9
10
Total Percentage
per attempt

Table 24. Number 5 (The admin can view the number of transactions for a certain day)
of the Functionality Criteria
TRIAL No. 1st attempt 2nd attempt 3rd attempt Remark
1
2
3
191

4
5
6
7
8
9
10
Total Percentage
per attempt

Table 25. Number 6 (The admin can update patient data) of the Functionality Criteria
TRIAL No. 1st attempt 2nd attempt 3rd attempt Remark
1
2
3
4
5
6
7
8
9
10
Total Percentage
per attempt

Table 26. Number 7 (The admin can delete patient data) of the Functionality Criteria
TRIAL No. 1st attempt 2nd attempt 3rd attempt Remark
1
2
3
4
5
6
7
8
9
10
Total Percentage
per attempt
192

Table 27. Number 8 (The admin can Confirm Appointments) of the Functionality Criteria
TRIAL No. 1st attempt 2nd attempt 3rd attempt Remark
1
2
3
4
5
6
7
8
9
10
Total Percentage
per attempt

Table 28. Number 9 (The admin can cancel Appointments) of the Functionality Criteria
TRIAL # 1st attempt 2nd attempt 3rd attempt Remark
1
2
3
4
5
6
7
8
9
10
Total Percentage
per attempt

Table 29. Number 10 (Client name remains at the top of the list of the monitor if he has
not yet entered the clinic for consultation) of the Functionality Criteria
TRIAL No. 1st attempt 2nd attempt 3rd attempt Remark
1
2
3
4
5
6
7
8
9
10
Total Percentage
193

per attempt

Table 30. Number 11(Client name can be deleted if the client has declined the
consultation or if the clinic hours have ended.) of the Functionality Criteria
TRIAL # 1st attempt 2nd attempt 3rd attempt Remark
1
2
3
4
5
6
7
8
9
10
Total Percentage
per attempt

Table 31. Number 12 (The speaker creates a sound notification for every change in
queue) of the Functionality Criteria
TRIAL # 1st attempt 2nd attempt 3rd attempt Remark
1
2
3
4
5
6
7
8
9
10
Total Percentage
per attempt

Data Gathered
194

Patient Information. This included the basic information such as the name, age,

address, and contact number of the patient.

Standard mean time of Consultation. This was necessary so that the system can

accurately display the estimated time of consultation prior to the scheduling process.

These data were gathered from the Medical Intuitions in Iloilo City.

Number of patients. The number of patients visiting the clinic per day was

gathered. This was the basis for the type of database used by the system for some

databases can only handle a certain volume of information.

Parameters Analyzed

Reliability of the System

The system should be able to display the correct average time for consultation to

minimize the need for manual checking of schedules in the hospital or clinic. This should

be as accurate as possible so that the patient would make that time available just for

consultation.

Accuracy of the System

In order to develop the accuracy of the system, the correct patient information

and symptoms provided by the user should be sent to the database. This was necessary

for faster diagnosis. Another data that should be accurate average time of consultation.

This was important for the system for this was the basis of the time slots to be shown to

the users upon registration.


195

CHAPTER IV

RESULTS AND DISCUSSIONS

System Overview

The Medical Appointment Scheduler System (M.A.S.S) was developed by

following the design plan presented in the Methodology and was found to be functioning

accordingly.

M.A.S.S is a web-dependent system with a Client-operated side and an

Administrator-operated side. For the Client-operated side, the system was able to

continuously produce accurate results for three trials with the first trial having 24

samples, second trial with 34 samples and the last trial with 36 samples. The system

was able to send 2 messages (one for reminder and the other for confirmation or

cancellation of appointment) to each client for every trial and the transmission times

were almost precise with an average of 33.493 seconds. Although, this parameter highly

depended on the speed of the internet connection. The transmission times were

measured from the time the client pressed the submit button and the time when the

administrator pressed ‘confirm’ or ‘cancel’. For the administrator side, the data displayed

on the admin monitor matched the data given by the clients.

The administrator has the authority to disable, block, and delete fraudulent and

invalid appointments through the Firebase database. The features mentioned before can

be found under the authentication tab of the software application. Deletion of records

have been tested and it was found that the action coincides with the M.A.S.S.

As mentioned in the previous chapters, CheckMobi provided the system’s short

messaging service feature. The application charged $ 0.0169 for each message
196

transmitted. If available credit is consumed, load packages are presented in the website

of the application.

The monitor screen for queuing order shown just outside the clinic also displayed

the proper sequence of consultation and was operated using the ‘next’ button, wherein,

only the administrator has access.

Overall, M.A.S.S was able to provide a web-based medical appointment system

which is accessible from all devices given that there is a fast or decent internet

connection. The transmission times of the messages were acceptable enough

considering the internet speed in the country.

Addressing of Constraints

Design constraints are parameters that set boundaries within which the system

was designed and developed.

For the Medical Appointment Scheduler System, several constraints introduced

before were addressed and met:

Security Constraint. The main focus and concern of this constraint in the

previous chapter is the existence of cyber-terrorists that may hack into the

systems database. Firebase database is a software application by Google.

Since Google is a high availability entity, it can operate 99.9% of the time.

The data stored in Google are also kept in data centres which are spread

across many servers so that if one or more servers fail, the user can still

access the information. Since Google has the power to hire security

professionals around the world, their IT Security Team is remarkable. And

complementing this IT Security Team is the Physical Security Team. Google


197

data centres have extremely high security with guards patrolling the premises

24/7, access controls, surveillance, and guarded fences.

Economic Constraint. The actual expenses of the study is comparably lower

than the value from the initial budget proposal. Since the study is comprised

mostly of free-to- use software applications, the system has already gained

an edge in terms of cost. To minimize the cost for the hardware, each

component was thoroughly analyzed and only those with the affordable cost

but fine quality was selected.

Software Compatibility. This is an important constraint of the study for the

system is mainly composed of software applications. The system has utilized

the most suitable software application. The appropriate database for storage

of data was also selected while considering certain details such as the

capacity and user interoperability. The database was also selected while

considering the security it can provide to the client’s data.

Results of Design

Software Results of Design

The Medical Appointment Scheduler System used the Firebase database to

store all the client records where the administrator may block or delete certain patient

accounts. All the records can be seen under the authentication tab of the software

application. The records shown on the database include the client account with

@gmail.com (does not require an active Gmail account), the date when the account was

created, the data when the client had logged in and each client’s unique user ID. In order

to login to this database, a user only needs a valid Google account.


198

Figure 20. Homepage of the Firebase database

The Homepage of the Firebase database is shown above (Figure 20). After login,

the user can select among the existing projects and open the console to that project.

Under authentication, the user can see the Gmail accounts (non-active accounts may

do), the date the account was created and the date the clients have signed in to your

project and their unique user ID’s.

Figure 21. The authentication tab of the Firebase Database


199

As mentioned in previous chp;.;apters, M.A.S.S features a messaging service

which is provided by the software application, CheckMobi. To login, a user only needs

an active Email account. The user may purchase the packages offered by the software

application or request a free trial credit of $1 which is processed within 24 hours.

Figure 22. Homepage of the CheckMobi software application

Figure 23. Testing credit


200

Referring to Figure 24, the testing credit amount indicates the credit left for the

messaging service. Service charge is $0.0169 per message. When the testing credit is

fully consumed, a user may purchase the packages provided on the website of the

software application.

Figure 24. List of charges per message including the number of the recipient

The figure above shows the charges made per message sent. It also includes

the phone numbers of the clients including the network they are using and the number of

messages sent per SIM. The undelivered status may be caused by network traffic.
201

Figure 25. Login for Admin page

The login for admin page was a separate webpage that cannot be accessed by

clients. To login, the admin has to enter the default username (admin) and default

password (admin).

Figure 26. List of Transactions for the date selected


202

For Figure 26: After login, this page will be opened. Searching a certain date and

clicking ‘submit’ will show the list of transactions on that day. The list includes the name

of the client, the symptoms they selected for the appointment and their consultation time.

The consultation times cannot be placed in the correct sequence for the order is based

on the time when the data or appointment enters the database.

Figure 27. For Editing, Updating and Deleting Records


203

Figure 26 shows the Update/ Delete data tab. To update or delete a record, the

admin should copy the date of consultation, the name of the client, and the time of

consultation. After copying the three requirements, the data can now be deleted or

updated. Updating means to add certain data such as the weight, height, temperature,

and blood pressure.

Figure 28. For Confirmation/Cancellation of Appointments

By clicking the ‘confirmation’ button on the upper left corner of Figure 28, the

admin will be directed to this page. The confirmation page lets the admin confirm or

cancel the appointments depending on the client’s reply. To confirm or cancel, the user

ID shown on the first column must be copied and pasted to the ‘Id’ box provided. After

copying, the admin can now cancel or confirm an appointment.


204

Figure 29. Homepage or Login page of M.A.S.S

Figure 29 shows the Homepage of M.A.S.S. If the client already had an account,

he can login directly. If the client had no account, he should click ‘sign up’ and proceed

to the filling out of details required. Figure 29 shows the sign up page. The username

should have a @gmail.com for it is required by the database. It does not need to be an

active Gmail account. (Sample valid username: cpu@gmail.com)

Figure 30. Sign up page of M.A.S.S (For registration)


205

After registration, the client may click return and proceed to the login process.

Figure 31. For viewing the remaining time available for appointment

After login, the client should search the date of appointment that he desires and

the time slots that are occupied should be revealed. After picking a certain time, he may

now fill-in the next page.

Figure 32. The Appointment page


206

Figure 33. Calendar-type date selection

After filling out the details needed, the client may select the desired time and date

of consultation. After selection, the client should click ‘submit’.

Figure 34. Notification Screen after submission

Figure 34 shows the pop-up message after clicking ‘submit’. This means that you

have completed your transaction. Log-out after completing the appointment to avoid

unauthorized usage of the account.


207

Figure 35. Reminder SMS

At approximately 6 a.m. on the day of the appointment, the user will receive a

message containing the date and time of the appointment for reminder. After which, the

user should reply with a ‘yes’ or ‘no’ including their name to the admin number provided

on the message. The user should reply before the time of their appointment in order to

secure their slot for the appointment.

Figure 36. The confirmation/cancellation message

Upon receiving this message, the appointment is either confirmed or cancelled.


208

Figure 37. Display Monitor

The Monitor did not have a database of its own so that there was no difficulty in

synchronization for the database used for the software application is real-time. The

Medical Assistant can list the names of the patients according to the order of

consultation by typing the names inside the name box. After typing, the Medical

Assistant should click the 1st symbol to enter the name. If the Assistant wanted to delete

a person from the list, the name should be double clicked and after which the check icon

should be clicked. If a person did not show up on the time of appointment and other

patients after that person are already in the clinic, the name of the no-show patient shall

be left alone so that when they are already present, they will see their name on top of

the list. When a patient walks-in the clinic, that patient should be listed as a ‘walk-in’

patient by listing their name and double clicking it and pressing the search icon. The

name will then be brought to the bottom of the list.


209

Hardware Results of Construction

Figure 38. Overall Setup of M.A.S.S

After the clients have registered, their next step is to wait for their turn in the

clinic. For the clients to know when they are next in line, a display was provided. Such is

seen in Figure 36. After all the patient names including their time of appointment have

been gathered, the admin should list them according to order, and display the names on

the waiting area of the clinic. The list can be made by manually typing the patient’s

names on the name box and clicking the icon with a boy and a girl. The person on the

top of the list is the current person being accommodated in the clinic. After the recent

patient is done, the admin should double click his name, click the search button and it

will automatically be transferred to the bottom part of the list. The admin can also delete

the name of the patient by double clicking the name of the patient and clicking the check

button.
210

Figure 3 shows the complete setup of the Medical Appointment Scheduler

System. It includes the Admin/ walk-in computer, the Monitor for the waiting area which

is connected to the Arduino which is also connected to the wireless buzzer circuit and

the client device which is the tablet.

Test Results

Quality
As stated in the previous chapter, the design criteria revolve around the quality

and functionality of the system. Accuracy-Quality testing was performed to ensure that

the system accurately displays the important data such as the Patient’s basic

information, the symptoms selected, and the time and date chosen by the patient.

Another factor being tested for accuracy was the transmission time of the systems SMS

feature to the phone of the patient or user. The table below indicates the Transmission

Speed of the 1st and 2nd message received by the client. The 1st being the Reminder

SMS and the 2nd which was the Appointment Confirmation or Cancellation message.

The ‘REMARKS’ column, will indicate if the information such as Patient name,

symptoms, and chosen time and date are accurate.

Table 32. Result of the Transmission speed of the first and second message received by
user (Date: February 11, 2019, Time: 3:00 PM)
Sample 1st Transmission 2nd Transmission
SMS Speed in seconds SMS Speed in seconds
(1st SMS) (2nd SMS)

1  31.11  32.68
2  35.06  39.09
3  34.53  26.63
4  29.30  23.67
5  29.95  28.79
6  28.19  27.18
7  26.59  25.35
211

8  26.93  22.59
9  19.21  22.89
10  33.90  42.51
11  33.95  50.2
12  55.62  68.51
13  28.75  33.18
14  23.32  74.0
15  36.78  84.03
AVERAGE TIME
OF
TRANSMISSION
31.546 40.08667
PER SAMPLE

The results in Table 32 show the average values of the transmission time per

sample. The result means that under ideal condition (a working device and an average

to very stable internet connection) a user can expect a response in the form of an SMS

within 30 to 40 seconds. Although the group had experienced transmissions speeds

much lesser than the minimum speed listed on the table above in the previous trials, it

cannot be concluded as an ideal speed for it only occurs once or twice in every 15

samples.

Table 33. Using different Operating Systems (OS)


Operating Operating System Remark
System #
1 Android PASS
2 iOS PASS
3 Windows PASS

Table 33 shows that the system is capable of working in different Operating

Systems. This is the main purpose of making the system a web-based application and

not just an application made for mobile phones.


212

Table 34. Synchronization test for the data of user, admin and database
User User Data REMARK
Account (Name, Symptom, Time of Admin Data (Pass or
Number Consultation) Fail)
Name: Juan De La Cruz Symptom: Name: Juan De La Cruz
1 Bloating Abdominal Pain, Vomiting Symptom: Fatigue, Cough FAIL
Time: 8:00-8:15 Time: 8:00-8:15
2 Name: Maria Clara
Name: Maria Clara
Symptom: Bloating,
Symptom: Muscle Cramps, Nausea FAIL
Diarrhea, Vomiting
Time: 8:15-8:30
Time: 4:45-5:00
3 Name: Padre Damaso
Name: Padre Damaso
Symptom: Dizziness,
Symptom: Dizziness, Blurry Vision PASS
Blurry Vision
Time: 8:30 – 8:45
Time: 8:30 – 8:45
4 Name: Ra Punzel Name: Ra Punzel
Symptom: Headache, Muscles Symptom: Headache,
PASS
Cramps, Nausea Muscles Cramps, Nausea
Time:9:30-9:45 Time:9:30-9:45
5 Name: Lee Jong Suk Name: Lee Jong Suk
Symptom: Bloating, Loose Bowel Symptom: Bloating, Loose
PASS
Movement Bowel Movement
Time: 9:45 – 10:00 Time: 9:45 – 10:00
6 Name: Park Shin Hye Name: Park Shin Hye
Symptom: Headache, Nausea, Symptom: Headache,
PASS
Blurry Vision Nausea, Blurry Vision
Time:10:00-10:15 Time:10:00-10:15
7 Name: Viktor Magtanggol
Name: Viktor Magtanggol
Symptom: Chest Pain,
Symptom: Chest Pain, Back Pain PASS
Back Pain
Time: 10:15-10:30
Time: 10:15-10:30
8 Name: Dante Gulapa Name: Dante Gulapa
Symptom: Bloating Symptom: Bloating
PASS
Time: 11:00-11:15 Time: 11:00-11:15
9 Name: KaraMIa Name: KaraMIa
Symptom: Headache Symptom: Headache PASS
Time: 10:45 – 11:00 Time: 10:45 – 11:00
10 Name: Cardo Dalisay
Name: Cardo Dalisay
Symptom: Allergies,
Symptom: Allergies, Headache PASS
Headache
Time: 10:30 – 10:45
Time: 10:30 – 10:45
11 Name: Louis Nashelsky
Name: Louis Nashelsky
Symptom: Bloating, Loose
Symptom: Bloating, Loose Bowel
Bowel Movement, Fatigue,
Movement, Fatigue, Headache PASS
Headache
Time:1:15 -1:30
Time:1:15 -1:30
12 Name: Robert Boylestad Name: Robert Boylestad
Symptom: Constipation, Abdominal Symptom: Constipation,
PASS
Pain Abdominal Pain
Time: 1:30 – 1:45 Time: 1:30 – 1:45
213

13 Name: Wayne Tomasi


Name: Wayne Tomasi
Symptom: Bloating,
Symptom: Bloating, Diarrhea,
Diarrhea, Fatigue, PASS
Fatigue, Headache
Headache
Time: 1:00 -1:15
Time: 1:00 -1:15
14 Name: Rodrigo Duterte
Name: Rodrigo Duterte
Symptom: Coughing,
Symptom: Coughing, Nasal
Nasal Congestion, Runny
Congestion, Runny Nose PASS
Nose
Time:1:45 – 2:00
Time:1:45 – 2:00
15 Name: Son Goku Name: Son Goku
Symptom: Allergies, Itching, Symptom: Allergies,
PASS
Dizziness Itching, Dizziness
Time: 4:00 – 4:15 Time: 4:00 – 4:15

The table above has shown various user accounts and has compared the

user information to the information the admin sees in the admin page. There were 15

accounts made for the Synchronicity Test. According to the table, there are

discrepancies in the results. The reason for this is the multiple accounts created under

the same name thus, different records were screenshot hence the reason why other

information did not match.


214

Figure 39. 1st sample for Table 1 of Reliability Testing


215

Figure 40. 2nd sample for Table 1 of Reliability Testing


216

Figure 41. 3rd sample for Table 1 of Reliability Testing


217

Figure 42. 4th sample for Table 1 of Reliability Testing


218

Figure 43. 5th sample for Table 1 of Reliability Testing


219

Figure 44. 6th sample for Table 1 of Reliability Testing


220

Figure 45. 7th sample for Table 1 of Reliability Testing


221

Figure 46. 8th sample for Table 1 of Reliability Testing


222

Figure 47. 9th Sample for Table 1 of Reliability Testing


223

Figure 48. 10th Sample for Table 1 of Reliability Testing


224

Figure 49. 11th Sample for Table 1 of Reliability Testing


225

Figure 50. 12th Sample for Table 1 of Reliability Testing


226

Figure 51. 13th Sample for Table 1 of Reliability Testing


227

Figure 52. 14th Sample for Table 1 of Reliability Testing


228

Figure 53. 15th Sample for Table 1 of Reliability Testing


229

The results of the Synchronization test of the client, admin and database are

shown in Figures 39 to 53. To summarize, all of the data provided by the client are in

synchronization with the data of the admin and the database although some of the

screenshots shown above have errors. Those are simply human errors in which multiple

appointments were made with the same name and while gathering the data, the team

captured or screenshot the wrong webpage hence the imperfect results.

Table 35. Password Strength Test


No. CRITERIA  or 
1 Password has a minimum of 1 character 
2 Password has a minimum of 2 characters 
3 Password has a minimum of 3 characters 
4 Password has a minimum of 4 characters 
5 Password has a minimum of 5 characters 
6 Password has a minimum of 6 characters 
7 Password has a minimum of 7 characters 
8 Password has a minimum of 8 characters 
9 Password has a minimum of 9 characters 
10 Password can be a combination of letters 
11 Password is case-sensitive 
12 Password can be a combination of numbers 
13 Password can be a combination of keyboard symbols 
14 Password can be a combination of letters and numbers 
15 Password can be a combination of letters and symbols 
16 Password can be a combination of numbers and symbols 
17 Password can be a combination of letters, numbers and 
symbols
230

Figure 54. Result of Password Strength Test at with only one character

Figure 55. Result of Password Strength Test with two characters


231

Figure 56. Result of Password Strength Test with three characters

Figure 57. Result of Password Strength Test with four characters


232

Figure 58. Result of Password Strength Test with five characters

Figure 59. Result of Password Strength Test with six characters


233

Figures 54 to 58 consisting of one, two, three, four and five characters were

rejected by the system since they are too short. The error message is shown on the

screenshots of the Figures above. Therefore, the minimum password length for the

system is six characters.

Figure 60. Results of Testing Password Case-Sensitivity

Number 11 of Table 6 requires a case-sensitivity test; thus, the first password

box was filled with the word “kathrine” and the next box with “Kathrine”. The system had

responded with “Error: Passwords don’t match” which proved that the passwords are

case-sensitive.
234

Different Appointment Creation Dates with one Scheduled Date

Table 36. 1st trial for Different appointment creation dates but one scheduled date
User Account
Date Created Appointment Date Remark
Account Name
1 Blue March 20, 2019 March 26, 2019 PASS
2 Red March 20, 2019 March 26, 2019 PASS
3 Yellow March 20, 2019 March 26, 2019 PASS
4 Scarlet March 20, 2019 March 26, 2019 PASS
5 Ivory March 20, 2019 March 26, 2019 PASS

Table 37. 2st trial for Different appointment creation dates but one scheduled date
User Account
Date Created Appointment Date Remark
Account Name
1 Blue March 21, 2019 March 26, 2019 PASS
Green
2 Blue March 21, 2019 March 26, 2019 PASS
Violet
3 Magenta March 21, 2019 March 26, 2019 PASS
4 Yellow March 21, 2019 March 26, 2019 PASS
Orange
5 Violet March 21, 2019 March 26, 2019 PASS

Table 38. 3rd trial for Different appointment creation dates but one scheduled date
User Account
Date Created Appointment Date Remark
Account Name
1 Olive March 22, 2019 March 26, 2019 PASS
2 Orange March 22, 2019 March 26, 2019 PASS
3 Red March 22, 2019 March 26, 2019 PASS
Orange
4 Red March 22, 2019 March 26, 2019 PASS
Violet
5 Yellow March 22, 2019 March 26, 2019 PASS

For Tables 32 to 34, three user accounts were made with 5 samples each. One

trial with 5 samples was conducted per day starting from March 20 up to March 22. Each
235

appointment was scheduled for March 26, 2019. The list of appointments collected for

March 26, 2019 are shown in Figure 61 below.

Figure 61. Transactions for March 3, 2019

Figure 62. Account Number 1 for March 20, 2019


236

Fiigure 63. Account Number 2 for March 20, 2019

Figure 64. Account Number 3 for March 20, 2019

Figure 65. Account Number 4 for March 20, 2019

Figure 66. Acount Number 5 for March 20, 2019


237

Figure 67. Account Number 1 for March 21, 2019

Figure 68. Account Number 2 for March 21, 2019

Figure 69. Account Number 3 for March 21, 2019

Figure 70. Account Number 4 for March 21, 2019


238

Figure 71. Account Number 5 for March 21, 2019

Figure 72. Account Number 1 for March 22, 2019

Figure 73. Account Number 2 for March 22, 2019

Figure 74. Account Number 3 for March 22, 2019


239

Figure 75. Account Number 4 for March 22, 2019

Figure 76. Account Number 5 for March 22, 2019

Figures 62 to 76 showed the records of the accounts created which is kept in the

database. It includes the date when the account was created and when the client last

logged in using the account.

Table 39. Unique User Account Name Test


No. CRITERIA REMARK
1 Account user names can be replicated 
2 Account user name is case-sensitive 
240

Figure 77. Results of Account Name Test Number 1

Since the username rapunzel@gmail.com already existed in the database,

another user cannot sign up using the same username.

Figure 78. Results of Account Name Test Number 2

For Figure 63, the system rejected the registration even with the ‘r’ in Rapunzel

changed to ‘R’, this means that the system is not case-sensitive in terms of account

names. When a new user registered with the same username as the existing user but

with different capitalizations, the system automatically rejected it.


241

Different Network Conditions

Table 40. 1st Network Condition (Ideal)


Samples Appointment sent to Admin (PASS or Message received
FAIL) (PASS or FAIL)
1 PASS PASS
2 PASS PASS
3 PASS PASS
4 PASS PASS
5 PASS PASS

Figure 79. Sample 1 for Ideal Network Condition

Figure 80. Sample 2 for Ideal Network Condition


242

Figure 81. Sample 3 for Ideal Network Condition

Figure 82. Sample 4 for Ideal Network Condition

Figure 83. Sample 5 for Ideal Network Condition


243

Figures 64 to 68 show that under Ideal Network Condition, the appointment was

sent to the admin and messages were immediately received. No complications were

encountered. The group tested this at the Mind’s Crib Study Hub with a Smart Fiber

Connection with speeds up to 100 Mbps. Upon using the Ookla speed test, the network

speed was found to be approximately 70 Mbps for download and 9 Mbps for upload.

Table 41. 2nd Network Condition (Below Average - Average)


Samples Appointment sent to Admin (PASS or Message received
FAIL) (PASS or FAIL)
1 PASS PASS
2 PASS PASS
3 PASS PASS
4 PASS PASS
5 PASS PASS

Figure 84. Sample 1 for Average Condition


244

Figure 85. Sample 2 for Average Condition

Figure 86. Sample 3 for Average Condition

Figure 87. Sample 4 for Average Condition


245

Figure 88. Sample 5 for Average Condition

Figure 89. Ookla Speed test for Average Network Condition

The Average Network Condition delivered results just the same as the Ideal

Network condition. All appointments were sent to the admin and all messages were

received by the user.

Table 42. 3rd Network Condition (Poor)


Samples Appointment sent to Admin (PASS or Message received
FAIL) (PASS or FAIL)
1 PASS FAIL
2 PASS FAIL
3 PASS FAIL
4 PASS FAIL
5 PASS PASS
246

Figure 90. Ookla Speed test for Poor Network Condition

All devices used were the same so that the results depend on solely on the

Network Condition. Both Ideal and Average Network Conditions delivered excellent

results. The data were successfully uploaded to the database and the messages were

received by the user. For the third network condition, all appointments were sent to the

database but only the last appointments message was successfully sent to the user.

Since the internet speed for the third condition was very low, the systems SMS

application had a hard time fetching the data from the database. For the last sample of

the third condition, the internet speed may have increased a little bit, hence, the

message was received.

Different Devices for Appointment Registration

Table 43. 1st Device (Acer Aspire ES 11 Laptop) for Appointment Registration
User
Account Appointment sent to Admin (PASS or FAIL) Message received
Number
1 PASS PASS
2 PASS PASS
3 PASS PASS
4 PASS PASS
5 PASS PASS
247

Table 44. 2nd Device (Samsung Galaxy Tablet SMP-355) for Appointment Registration
User
Account Appointment sent to Admin (PASS or FAIL) Message received
Number
1 PASS PASS
2 PASS PASS
3 PASS PASS
4 PASS PASS
5 PASS PASS

Table 45. 3rd Device (Xiaomi Redmi Note 4X Phone) for Appointment Registration
User
Account Appointment sent to Admin (PASS or FAIL) Message received
Number
1 PASS PASS
2 PASS PASS
3 PASS PASS
4 PASS PASS
5 PASS PASS

Figure 91. 1st Device for the Different Devices Test


248

Figure 92. 2nd Device for the Different Devices Test

Figure 93. 3rd Device for the Different Devices Test

The first device used was a laptop, the second was a tablet and the third device

was a phone. According to the tables shown above, there were no difficulties

encountered in the appointment scheduling using the different devices. This proves that

the system has a good quality because it can gain access and is compatible with any

device provided that it has an internet connection; however, these devices were used
249

under Ideal Network Condition and results may vary if average or even poor network

conditions were used.

Table 46. Results of Different Network Service Provider Test


SIM Card Message received
Service Provider – Sim Card Number
No. (PASS or FAIL)
1 Globe - +639560579254 PASS
2 Talk n’ Text – +639489614746 PASS
3 Smart Buddy - +639392794883 PASS
4 TM - +639263361023 PASS

The system was tested using different Networks commonly used in the

Philippines. According to the results in Table 45, the messages were received by all the

numbers listed above.

Figure 94. Admin Records for Network Service Provider Testing

Figure 95. Message received by Globe Sim


250

Figure 96. Message Received by Smart Sim

Figure 97. Message Received by TNT Sim


251

Figure 98. Message Received by TM Sim

Figure 79 shows the Admin Records for the test. The accounts were successfully

created and appointments were also validated. The contact numbers used are also

indicated. Figures 80 to 83 show the messages received by the different Network

Service Providers.

Figure 99. CheckMobi Records for Outbound Messages


252

Figure 80 shows the records of Outbound SMS by CheckMobi, the SMS

application used by the system. It also indicates the charge per unit message and the

status (Delivered or Pending).

Functionality

Functionality testing was performed to ensure that every system function works

accordingly.

Table 47. Result for the Functionality Criteria of the Study


No. Criteria Pass Fail
1 Users can sign up or register without difficulty 
2 Users can login without difficulty 
3 Users can select the different symptoms 
4 Users can select their preferred time and date of 
consultation
5 The admin can view the number of transactions for a 
certain day
6 The admin can update patient data 
7 The admin can delete patient data 
8 The admin can Confirm Appointments 
9 The admin can Cancel Appointments 
10 Client name remains at the top of the list of the monitor if 
name has not been deleted or called for consultation
11 Client name can be deleted 
12 The speaker creates a sound notification for every 
change in queue.

Table 48. Results for Number 1 of the Functionality Criteria


TRIAL # 1st attempt 2nd attempt 3rd attempt Remark
1
 Pass
2  Pass
3  Pass
4  Pass
5  Pass
6  Pass
7  Pass
8  Pass
9  Pass
10  Pass
Total Percentage per 100% 0% 0%
253

attempt

Table 49. Results for Number 2 of the Functionality Criteria


TRIAL # 1st attempt 2nd attempt 3rd attempt Remark
1  Pass
2  Pass
3  Pass
4  Pass
5  Pass
6  Pass
7  Pass
8  Pass
9  Pass
10  Pass
Total Percentage per 0% 0%
attempt 100%

Table 50. Results for Number 3 of the Functionality Criteria


TRIAL # 1st attempt 2nd attempt 3rd attempt Remark
1  Pass
2  Pass
3  Pass
4  Pass
5  Pass
6  Pass
7  Pass
8  Pass
9  Pass
10  Pass
Total Percentage per 0% 0%
attempt 100%

Table 51. Results for Number 4 of the Functionality Criteria


TRIAL # 1st attempt 2nd attempt 3rd attempt Remark
1  Pass
2  Pass
3  Pass
4  Pass
5  Pass
6  Pass
7  Pass
8  Pass
9  Pass
254

10  Pass
Total Percentage per 0% 0%
attempt 100%

Table 52. Results for Number 5 of the Functionality Criteria


TRIAL # 1st attempt 2nd attempt 3rd attempt Remark
1  Pass
2  Pass
Total Percentage per 0% 0%
attempt 100%

Figure 100. 1st Result for No. 5 Functionality Criteria (Admin viewing number of
transactions)

Figure 101. 2nd Result for No. 5 Functionality Criteria

Table 53. Results for Number 6 of the Functionality Criteria


TRIAL # 1st attempt 2nd attempt 3rd attempt Remark
1  Pass
2  Pass
3  Pass
255

4  Pass
5  Pass
Total Percentage per 0% 0%
attempt 100%

Figure 102. 1st Result for Admin Update Patient Data (No. 6 Functionality)

Figure 103. 2nd Result for Admin Update Patient Data (No. 6 Functionality)

Figure 104. 3rd Result for Admin Update Patient Data (No. 6 Functionality)

Figure 105. 4th Result for Admin Update Patient Data (No. 6 Functionality)
256

Figure 106. 5th Result for Admin Update Patient Data (No. 6 Functionality)

The Results for Number 6 of Functionality Criteria are shown in Figures 102 to

106. There are two screenshots in each figure. The first screenshot is the initial record

given by the user and the 2nd screenshot is after updating the information by adding

certain details such as weight, height, temperature, and blood pressure.

Table 54. Results for Number 7 of the Functionality Criteria


TRIAL # 1st attempt 2nd attempt 3rd attempt Remark
1  Pass
2  Pass
3  Pass
4  Pass
5  Pass
Total Percentage per 20% 0%
attempt 80%

Figure 107. Before Data Deletion


257

As shown on Figure 88, there were 15 transactions for the said date. Some of the

data were deleted to test if the delete feature of the system worked well.

Figure 108. After Data Deletion

As seen in Figure 56, there were only 10 transactions left. This means that the

other five transactions were successfully deleted.

Figure 109. Successfully Deleted Pop-up message

The pop-up message in Figure 90 showed up whenever an appointment was

successfully deleted.
258

Table 55. Results for Number 8 of the Functionality Criteria


TRIAL # 1st attempt 2nd attempt 3rd attempt Remark
1  Pass
2  Pass
3  Pass
4  Pass
5  Pass
Total Percentage per 0% 0%
attempt 100%

Figure 110. Result for Trial 1 of Functionality Criteria No. 8

Figure 111. Result for Trial 2 of Functionality Criteria No. 8


259

Figure 112. Result for Trial 3 of Functionality Criteria No. 8

Figure 113. Result for Trial 4 of Functionality Criteria No. 8


260

Figure 114. Result for Trial 5 of Functionality Criteria No. 8

Table 56. Results for Number 9 of the Functionality Criteria


TRIAL # 1st attempt 2nd attempt 3rd attempt Remark
1 Fail
2  Pass
3  Pass
4  Pass
Total Percentage per 40% 0%
attempt 25%

For Table 56, only 25% of the appointments were deleted because of the

following reasons: there was a connection error and the copy paste action was wrongly

executed. After copying the client name, time of consultation and date of consultation,

the data was pasted at the leftmost part of the text box so that the system would easily

read the data.


261

Figure 115. Result for Trial 1 of Functionality Criteria No. 9

Figure 116. Result for Trial 2 of Functionality Criteria No. 9


262

Figure 117. Result for Trial 3 of Functionality Criteria No. 9

Figure 118. Result for Trial 4 of Functionality Criteria No. 9


263

Figure 119. Result for Trial 5 of Functionality Criteria No. 9

Results of Design Implementation and Data Gathered

The group implemented the system in various Medical Institutions but there were

a lot of limitations to the actual deployment. Majority of the clinics did not allow it and

were hesitant because they did not want to burden their patients. Although some of the

clinics agreed, very limited information was provided because the clinic wanted to

protect the privacy of their patients.

Through the course of the implementation, the group has gathered data such as

the number of patients and the average consultation time per clinic.

As of now, there is no significant comparison between the traditional method of

appointment scheduling and the online scheduling because the system cannot be

applied totally. The information below are the data the group has gathered from walk-in

patients which is their name for other details were kept private by the institution. Another
264

data recorded is the average time of consultation. The average time is compared to the

average time set by the system and it will determine if the system is accurate enough.

Although the monitor has actually contributed to the queuing of the patients it cannot be

the basis in determining if the system has improved conditions or not. The main focus of

the study is how the online appointment scheduling can lessen waiting hours and reduce

the crowd in a medical institution. However, the actual implementation only included the

walk-in patients.

The Table below shows the Average time of Consultation at the Salapare

Medical Clinic with the help of the Medical Appointment Scheduler System.

The clinic started the operation at 3:12 PM and ended at 4:43 PM of April 2,

2019. Within that timeframe, 14 patients were catered by Dr. Chona Guay. Compared to

other medical institutions, the consultation time was speedier at an average of 6.29

minutes per patient. .

Table 57. Data Gathered from Salapare Medical Clinic (Location: Aganan, Pavia, Iloilo;
Date: April 2, 2019)

Time of Duration of
Patient No. Name of Patient
Consultation Consultation

1 Lanie Guatche 3:12 – 3:17 PM 5 minutes


2 Gener Villanueva Jr. 3:17 – 3:21 PM 4 minutes
3 Ian Luis Agrabio 3:21 – 3:27 PM 6 minutes
4 Ken Lao 3:28 – 3:37 PM 9 minutes
5 Gracia Gobuyan 3:37 – 3:42 PM 5 minutes
6 Noe Montuya 3:43 – 3:49 PM 6 minutes
7 Felix Quinoviva 3:50 – 3:55 PM 5 minutes
8 Erlinda Quinoviva 3:55 – 3:58 PM 3 minutes
9 Grace Janolangue 3:58 – 4:09 PM 11 minutes
265

10 Jelaine Barrientos 4:09 – 4:15 PM 6 minutes


11 Haydee Opao 4:15 – 4:26 PM 11 minutes
12 Edwin Longno 4:26 – 4:29 PM 3 minutes
13 Isaiah Faith Inguilo 4:29 – 4:35 PM 6 minutes
14 Samantha Bediones 4:35 – 4:43 PM 8 minutes
AVERAGE
CONSULTATION 6.29 minutes
TIME

Table 58 shows the average time of consultation in Room 215 of the Medical Arts

Building, Iloilo Mission Hospital which is 16.69 minutes.

The attending Family Medicine doctor was Dr. Santerva. The Clinic started its

operation at around 9:20 A.M. to 11:30 A.M. for the morning schedule and 3:00 P.M. up

to 7:45 for the afternoon schedule of April 4, 2019. For the entire duration of the

consultation, a total of 26 patients were catered.

Before the clinic hours started, the group explained the operation of the system

to the Medical Assistant and also to some of the patients who also had the chance to try

the system while being guided by the members of the group.

Table 58. Data Gathered from Medical Arts Building Room 215 (Location: Iloilo Mission
Hospital; Date: April 2, 2019)
Time of
Patient No. Name Time(min)
Consultation
1 Guzman, Ernesto 9:22-9:50 AM 28 minutes
2 Faala, Imee 9:50-10:03 AM 13 minutes
3 Salvacion, Merna 10:03-10:03 AM 24 minutes
4 Parreno, Fellie 10:27-10:46 AM 19 minutes
5 Santos, Renato 10:46-10:54 AM 8 minutes
6 Basco, John 10:54-11:25 AM 31 minutes
7 Sadsad, Jona Mae 11:25-11:34 AM 9 minutes
266

8 Palma, Nicole 11:34-11:47 AM 13 minutes


9 Parrenas, Allen Roy 3:05-3:27 PM 22 minutes
10 Roque, Joven 3:27-3:38 PM 11 minutes
11 Silva, Marilou 3:38-3:52 PM 14 minutes
12 Vestigas, Joy 3:52-4:08 PM 16 minutes
13 Lao, Marianne 4:08-4:17 PM 9 minutes
14 Valle, Mark 4:17-4:30 PM 13 minutes
15 Fernandez, Rose 4:30-4:49 PM 19 minutes
16 Kong, Pope 4:49-5:04 PM 15 minutes
17 Leda, Von Michael 5:04-5:12 PM 8 minutes
18 Sucaldito, Jonjea 5:12-5:34 PM 22 minutes
19 Benedicto, Harold 5:34-5:47 PM 13 minutes
20 Barrido, Silver 5:47-6:14 PM 27 minutes
21 Fundales, Mari 6:14-6:32 PM 18 minutes
22 Parcia, Gwen 6:32-6:39 PM 7 minutes
23 Vales, John Mark 6:39-6:54 PM 24 minutes
24 Solinap, Vince 6:54-7:07 PM 13 minutes
25 Sison, Mary Therese 7:07-7:27 PM 20 minutes
26 Villalobos, Christine 7:27-7:45 PM 18 minutes
AVERAGE
CONSULTATION 16.69 minutes
TIME

Table 59 shows the average time of consultation gathered by the group last April

4, 2019 in Room 201 of the Medical Arts Building, Iloilo Mission Hospital which is 14.75

minutes.

The clinic hours started at 12:30 P.M. and ended at 3:27 P.M. Twelve patients

were catered by Dr. Quilantang .


267

For the implementation, the group explained the basic operations of the system

and let the Medical Assistant register the patients while the group observed the time

spent by the patients inside the clinic.

Table 59. Data Gathered from Medical Arts Building Room 201 (Location: Iloilo Mission
Hospital; Date: April 4, 2019)

Time of Duration of
Patient No. Name of Patient
Consultation Consultation

1 Saavedra 12:30-12:44 PM 14 minutes


2 Robleza 12:44-12:56 PM 12 minutes
3 Frange 12:56-1:09 PM 13 minutes
4 Delos Reyes 1:09-1:22 PM 13 minutes
5 Catanares 1:22-1:31 PM 9 minutes
6 Hulleza 1:31-1:44 PM 13 minutes
7 Feranco 1:44-1:59 PM 15 minutes
8 Ingles 1:59-2:08 PM 9 minutes
9 Alcantara 2:08-2:22 PM 14 minutes
10 Nillos 2:22-2:38 PM 16 minutes
11 Ong 2:38-2:59 PM 21 minutes
12 Palmares 2:59-3:27 PM 28 minutes
AVERAGE
CONSULTATION 14.75 minutes
TIME

Two tables show the data gathered from the clinics inside the Iloilo Mission

Hospital while the other table shows the data gathered from the Salapare Medical Clinic.

Out of the three results gathered, two have proven that the 15-minute gap set by the

system is nearly accurate or precise. Since the system is only targeted to one medical

institution or clinic, having the precise average consultation time is a good result. The
268

only difficulty for the system is the different clinic hours but then, the system is targeted

to one clinic only so this is not a major concern.

Partially, the system has helped in the improving the appointment process; for,

without the online appointment scheduling it cannot be totally assessed as effective or

not.
269

CHAPTER V

SUMMARY, CONCLUSION, AND RECOMMENDATIONS

Summary

The Medical Appointment Scheduler System was an online web-based

application, wherein, the patient can make a certain appointment for consultation. It was

an application that will improve the traditional appointment scheduling of the system.

Upon using the website, one should sign up in order to gather the basic information

needed. After the registration, he/she can proceed to logging his/her account. There

were needed information to be filled up that included the name, contact number, weight,

height, temperature, and blood pressure. This can be updated by the medical assistant

in the data base whenever changes may occur. One can create his/her appointment in

his/her desired or convenient time but in order to know if the schedule is available, there

was an availability button to check the schedule taken in the day he/she wished to take.

Upon choosing his/her schedule, he/she can check the symptoms he/she is feeling in

order to prepare in his/her scheduled appointment. When it was finished, a message

was sent directly to the patient and he/she could reply for confirmation or cancellation in

the number specified.

The web-based application was supported entirely by JavaScript which was the

backbone of the functions of the web application. The HTML and CSS languages were

used in designing the web-based application fit for appointment scheduling. The monitor

showing the order of queuing portion, was made possible by the Microsoft Visual Basic

and Arduino Uno R3 microcontroller.

The system was proven to function as designed. With its corresponding design

criteria, the system was check and found to function.


270

Conclusion

From this study, it can be concluded that the team was able to successfully

design, construct, and test the Medical Appointment Scheduler System. Specifically, the

researchers were able to design and construct an appointment scheduler that can be

used to replace the conventional way of scheduling in the Philippines. It was an online

web-based application that is accessible to every user of different operating systems. A

software application was created that can perform the initial gathering of patient

information such as the name, age, gender, address, and contact number upon

registering in the website. The web-based application created was a log in, log out

system for patient who wanted to make an appointment ahead of time. It also allowed

the patient to check the symptoms applicable to them which is provided by the software

application. All data gathered in the system were secured and can be seen by the

system’s database wherein only the administration can have an access. The Medical

Appointment Scheduler System was tested according to quality and functionality criteria.

Furthermore, it was evaluated and found to be working as designed.

Recommendations

The following recommendations were formulated for the improvement of future

projects that would be based on the study:

1. Conduct burnout testing in a particular clinic to assure needed adjustment for the

actual implementation.

2. The current system requires the client to view the available time first before

registration which is somehow time-consuming; thus, a system that automatically

blocks the chosen time and date should be developed.

3. A two-way messaging system should be added so that the patient isn’t required

to text a different number for the confirmation or cancellation of appointments.


271

4. Currently, the system is entirely online including the storage of records. However,

some medical institutions would still opt for a physical copy of the patient’s

records; therefore, a print-ready format for the patient’s basic information and the

chosen symptoms should be developed for hardcopy of the clinic for filling.

5. The Medical Appointment Scheduler System is limited to only one clinic; thus, it

is a major development if, upon selection of the symptoms, the system

automatically suggests a list of available clinics or doctors with their respective

specializations.

6. In connection with the previous recommendation, the addition of a GPS feature is

also suggested for the system to determine the client’s location and suggest the

nearest possible Medical institution.

7. For future research endeavors, an online application for their mobile phones can

be made in order for the user for a one-time log in as well as it can directly

proceed to appointment.

8. Explore the possibilities of using the system in other application


APPENDICES
Appendix A

DEFINITION OF TERMS
Administrator

Performs the executive duties in the study.

Arduino

An open-source electronics platform or board.

Browser

Computer program used for accessing sites or information on a network.

Cholera

An infectious and often fatal bacterial disease of the small intestine, typically

contracted from infected water supplies and causing severe vomiting and

diarrhea.

Data
Known facts that can be recorded and that have implicit meaning.

Database

Is a collection of related data.

Display Monitor

An electronic device with a screen used for displaying information.

DOH
Department of Health is the executive department of the Philippine Government

responsible for ensuring access to basic public health services by all Filipinos

through the provision of quality health care and regulation of all health services

and products.

FDA
The Food and Drug Administration of the Philippines.

GSM (Global System for Mobile Communications)

A globally accepted standard for digital cellular communication.


148

Health

A state of complete physical, mental, and social well-being, and not merely the

absence of disease or infirmity. It is a dynamic condition resulting from a body's

constant adjustment and adaptation in response to stresses and changes in the

environment for maintaining an inner equilibrium.

Health Care

The act of taking necessary medical procedures to improve a person's well-

being. This may be done with surgery, the administering of medicine, or other

alterations in a person's lifestyle.

Health care institution

Means every place, institution, building or agency, whether

organized for profit or not, which provides facilities with medical services, nursing

services, health screening services, other health-

related services, supervisory care services,

personal care services or directed care services and includes home health agenc

ies.

Interface

A device or program enabling a user to communicate with a computer.

LGU
Local Government Units in the Philippines provide for a more responsive and

accountable local government structure instituted through a system of

decentralization with effective mechanisms of recall, initiative, and referendum,

allocate among the different local government units their powers, responsibilities,

and resources, and provide for the qualifications, election, appointment and

removal, term, salaries, powers and functions and duties of local officials, and all

other matters relating to the organization and operation of local units.


149

Meningitis
Inflammation of the meninges caused by viral or bacterial infection and marked

by intense headache and fever, sensitivity to light, and muscular rigidity, leading

(in severe cases) to convulsions, delirium, and death.

Phil Health

It is a tax-exempt, government-owned and controlled corporation of the

Philippines, and is attached to the Department of Health.

Programming Language
A special language that programmers use to develop software programs, scripts,

or other sets of instructions for computers to execute.

Public Health

The science of protecting and improving the health of people and their

communities.

Scabies
A contagious skin disease marked by itching and small raised red spots, caused

by the itch mite.

Server

A type of computer or device on a network that manages resources. Servers are

often dedicated, meaning that they perform no other tasks besides their server

tasks.

SMS
An acronym for Short Messaging Service. It is the transmission of short

messages to and from a mobile phone, fax machine and IP Address.


150

Software
The programs and other operating information used by a computer.

Symptom

A physical or mental feature which is regarded as indicating a condition of

disease, particularly such a feature that is apparent to the patient.

Typhus
An infectious disease caused by rickettsia, characterized by a purple rash,

headaches, fever, and usually delirium, and historically a cause of high mortality

during wars and famines.

Web-based
Is any program that is accessed over a network connection using HTTP, rather

than existing within a device’s memory.

Web-based Application

A program that can be accessed over a network connection using HTTP

(Hypertext Transfer Protocol) rather than existing within a device’s memory.

Web page
A hypertext document connected to the World Wide Web.

Website
Collection of related web pages, including multimedia content, typically identified

with a common domain name, and published on at least one web server.
151

Appendix B

BUDGET
152

PROPOSED BUDGET

TOTAL ESTIMATED BUDGET

Device Construction
Arduino Microcontroller ₱ 590
Connecting Wires ₱ 50
Wireless Remote Buzzer ₱ 175
Transistor ₱ 26
Resistor ₱5
Potentiometer ₱ 20
Total ₱ 866

Documentation
Binding ₱ 1,000
Grammarian ₱ 2,000
Printing ₱ 1,500
Total ₱ 4,500

Miscelleneous fees ₱ 5,000


Total ₱ 5,000

Total Project Cost


Device Construction ₱ 866
Documentation ₱ 4,500
Total ₱ 5,366
Miscellaneous ₱ 5,000
Grand Total ₱ 10,366
153

Appendix C

WORK SCHEDULE
154

WORK SCHEDULE
155

Appendix D

SPECIFICATION SHEET
156

Arduino the Microcontroller

The Arduino Uno is a microcontroller board based on the ATmega22B. It has 14

digital input/output pins (of which 6 can be used as PWM outputs), 6 analog inputs, a 16

MHz ceramic resonator, a USB connection, a power jack, an ICSP header, and a reset

button. It contains everything needed to support the microcontroller, simply connect it to

a computer with a USB cable power or power it with a AC-to-DC adapter or battery to

get started. The Uno differs from all preceding boards in that it does not use the FTDI

USB-to-serial driver chip. Instead, it features the Atmega16U2 (AtmegaBU2 up to

version R2) programmed as a USB-to-serial converter.

Hardware Features:

 Microcontroller ATmega328

 Operating Voltage 5V

 Input Voltage (recommended) 7-12V

 Output Voltage (limits) 6-20V

 Digital I/O Pins 14 (of which 6 provide PWM output)

 Analog Input Pins 6 DC


157

 Current per I/O Pin 40 mA

 DC Current for 3.3V Pin 50 mA

 Flash Memory 32KB (ATmega 328) of which 0.5 KB used by bootloader

 SRAM 2 KM (ATmega328)

 EEPOM 1KB (ATmega328)

 Clock Speed 16 MHz


158

Hardware
159
160
161
162

Appendix E

INSTRUCTION MANUAL
163

A. For Online Registration to the Medical Appointment Scheduler System

(M.A.S.S)

Online Registration

1. Open any browser (Mozilla Firefox, Google Chrome, Internet explorer, Safari,
Opera etc.)

2. Log in to http://mass-b2598.firebaseapp.com/index.html

3. If not yet registered, click ‘Sign up’ and enter your full Name, Age, Address,
Contact number beginning with +63, Gender, Username with @gmail.com (does
not require an active or existing Gmail account), and finally, your Password.

4. After registration, click return and Login to make an Appointment.

5. If user is already registered, proceed to Login to make an Appointment.

6. After login, the user will be directed to another page. Click ‘View Available
Time’ first to check the vacant consultation time.

7. After checking, enter your Name and Contact Number. Just leave the Weight,
Height, Temperature, and Blood Pressure blank if you are not sure.

8. Select a time schedule.

9. Select the date of consultation which is most convenient to you (given that it is
not occupied).

10. Below the selection of time and date, a message box is provided if the client
has additional concerns. If none, just proceed to the submission of your form.

Walk-in Registration

1. For walk-in registration, there is no need to create an account. But before that,
the available time for consultation must be viewed first. If there is none, the client
may register for the next day.

2. After checking, enter your Name and Contact Number. Just leave the Weight,
Height, Temperature, and Blood Pressure blank if you are not sure.

3. Select a time schedule.

4. Select the date of consultation which is most convenient to you (given that it is
not occupied).

5. Below the selection of time and date, a message box is provided if the client
has additional concerns. If none, just proceed to the submission of your form.
164

B. For Admin Personnel

1. Open the ‘loginadmin’ webpage.

2. Enter ‘admin’ for username and ‘admin’ for password.

Confirmation/Cancellation

1. Click the ‘Confirmation’.

2. Click ‘View’ under the View Appointments.

3. A list of clients’ names will be shown including their Client System ID and the
status of their consultation whether it has been confirmed or cancelled. If no
action is taken, the box remains blank.

4. To ‘Confirm’ or ‘Cancel’ an appointment, the admin should copy the Client


System ID of the target user and paste it to the ID box and select ‘Confirm’ or
‘Cancel’. The system will automatically send a message to the user if the
appointment has been cancelled or confirmed.

5. Click ‘Home’.

6. To view transactions on a specific date, the admin has to enter the year-
month-date of the consultation and the patient list will appear.

7. The admin can delete or update the patient’s information by using the ‘Delete’
or ‘Update’ button on the left side of the appointment list.
165

Appendix F

REFERENCES

REFERENCES
166

An investigation of the success of hospital information systems implementation: A case


study. Retrieved March 6, 2018 from

http://ieeexplore.ieee.org/document/6978217/?reload=true

Design and Development of Online Doctor System. Retrieved March 6, 2018 from

https://www.academia.edu/26066176/Design_and_Development_of_Online_Doct
or_Appointment_System

Doctor Appointment Booking System. Retrieved March 6, 2018 from

http://nevonprojects.com/doctor-appointment-booking-system/

Dynamic scheduling tool for office appointments management. Retrieved March 6, 2018
from

https://patents.google.com/patent/US20060053044A1/en?q=medical&q=appoint
ment&q=scheduler&oq=medical+appointment+scheduler

Electronic appointment scheduling for medical resources. Retrieved March 6, 2018 from

https://patents.google.com/patent/US20050234741A1/en?q=medical&q=appoint
ment&q=scheduler&oq=medical+appointment+scheduler

Electronic appointment scheduling for medical resources. Retrieved March 6, 2018 from

https://patents.google.com/patent/US8364501B2/en?q=medical&q=appointment
&q=scheduler&oq=medical+appointment+scheduler

Health Services and Research. Retrieved March 5, 2018 from

https://www.ncbi.nlm.nih.gov/books/NBK2660/

Patient check-in/scheduling kiosk. Retrieved March 6, 2018 from

https://patents.google.com/patent/US20070226010A1/en?q=medical&q=appoint
ment&q=scheduler&oq=medical+appointment+scheduler
167

System and method for real-time online and on-demand medical diagnosis and
treatment of a patient by Khalid Abousy, Hamed Sallam, and Sameh Abouissa.
Retrieved March 6, 2018 from

US20160188830A1S20160188830A1
(https://patents.google.com/patent/US20160188830A1/en?q=Online&q=Appoint
ment&q=System&q=Clinics&q=Doctors&oq=Online+Appointment+System+for+C
linics+and+Doctors)

System and method for providing decision support to appointment schedulers in a


healthcare setting. Retrieved March 6, 2018 from

https://patents.google.com/patent/US20040059714A1/en?q=medical&q=appoint
ment&q=scheduler&oq=medical+appointment+scheduler

Systems and Methods For Scheduling Healthcare Visits. Retrieved March 6, 2018 from

https://patents.google.com/patent/US20100017222A1/en?q=medical&q=appoint
ment&q=scheduler&oq=medical+appointment+scheduler

The Filipino State Health Care System. Retrieved March 5, 2018 from

https://transferwise.com/gb/blog/healthcare-system-in-the-philippines

The Philippine Health System at a Glance. Retrieved March 3, 2018 from

http://www.doh.gov.ph/sites/default/files/basic-page/chapter-one.pdf

The Role of the Physical Environment in the Hospital of the 21st Century: A once in a
Lifetime opportunity. Retrieved March 6, 2018 from

https://www.healthdesign.org/system/files/Ulrich_Role%20of%20Physical_2004.p
df
168

Appendix G

CODES (JAVASCRIPT & CSS)

<!DOCTYPE html>
169

<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Page Not Found</title>
<style media="screen">
body { background: #ECEFF1; color: rgba(0,0,0,0.87); font-family: Roboto, Helvetica,
Arial, sans-serif; margin: 0; padding: 0; }
#message { background: white; max-width: 360px; margin: 100px auto 16px;
padding: 32px 24px 16px; border-radius: 3px; }
#message h3 { color: #888; font-weight: normal; font-size: 16px; margin: 16px 0
12px; }
#message h2 { color: #ffa100; font-weight: bold; font-size: 16px; margin: 0 0 8px; }
#message h1 { font-size: 22px; font-weight: 300; color: rgba(0,0,0,0.6); margin: 0 0
16px;}
#message p { line-height: 140%; margin: 16px 0 24px; font-size: 14px; }
#message a { display: block; text-align: center; background: #039be5; text-transform:
uppercase; text-decoration: none; color: white; padding: 16px; border-radius: 4px; }
#message, #message a { box-shadow: 0 1px 3px rgba(0,0,0,0.12), 0 1px 2px
rgba(0,0,0,0.24); }
#load { color: rgba(0,0,0,0.4); text-align: center; font-size: 13px; }
@media (max-width: 600px) {
body, #message { margin-top: 0; background: white; box-shadow: none; }
body { border-top: 16px solid #ffa100; }
}
</style>
</head>
<body>
<div id="message">
<h2>404</h2>
<h1>Page Not Found</h1>
<p>The specified file was not found on this website. Please check the URL for
mistakes and try again.</p>
<h3>Why am I seeing this?</h3>
<p>This page was generated by the Firebase Command-Line Interface. To modify it,
edit the <code>404.html</code> file in your project's configured <code>public</code>
directory.</p>
</div>
</body>
</html>

<!DOCTYPE html>
170

<html lang="en">
<head>
<title>Page Title</title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<script type="text/javascript" src="https://gc.kis.scr.kaspersky-labs.com/1B74BD89-
2A22-4B93-B451-1C9E1052A0EC/main.js" charset="UTF-8"></script></head>
<meta content='width=device-width, initial-scale=1.0, maximum-scale=1.0, user-
scalable=0' name='viewport' />
<meta name="viewport" content="width=device-width" />
<!-- Bootstrap core CSS -->
<link href="assets1/css/bootstrap.min.css" rel="stylesheet" />
<!-- Animation library for notifications -->
<link href="assets1/css/animate.min.css" rel="stylesheet"/>
<!-- Light Bootstrap Table core CSS -->
<link href="assets1/css/light-bootstrap-dashboard.css" rel="stylesheet"/>
<!-- CSS for Demo Purpose, don't include it in your project -->
<link href="assets1/css/demo.css" rel="stylesheet" />
<!-- Fonts and icons -->
<link href="http://maxcdn.bootstrapcdn.com/font-awesome/4.2.0/css/font-
awesome.min.css" rel="stylesheet">
<link href='http://fonts.googleapis.com/css?family=Roboto:400,700,300' rel='stylesheet'
type='text/css'>
<link href="assets1/css/pe-icon-7-stroke.css" rel="stylesheet" />
<style>
*{
box-sizing: border-box;
}
/* Style the body */
body {
font-family: Arial, Helvetica, sans-serif;
margin: 0;
}
/* Header/logo Title */
/* .header {
padding: 80px;
text-align: center;
background: #1abc9c;
color: white;
} */

/* Increase the font size of the heading */


.header h1 {
font-size: 40px;
171

}
/* Style the top navigation bar */
.navbar {
overflow: hidden;
background-color: rgb(70, 103, 248);
}
/* Style the navigation bar links */
.navbar a {
float: left;
display: block;
color: white;
text-align: center;
padding: 14px 20px;
text-decoration: none;
}
/* Right-aligned link */
.navbar a.right {
float: right;
}
/* Change color on hover */
.navbar a:hover {
background-color: #ddd;
color: black;
}
/* Column container */
.row {
display: -ms-flexbox; /* IE10 */
display: flex;
-ms-flex-wrap: wrap; /* IE10 */
flex-wrap: wrap;
}
/* Create two unequal columns that sits next to each other */
/* Sidebar/left column */
.side {
background-color: #f1f1f1;
padding: 30px;
height: 600px;
width: 300px;
margin-top: -20px;
}
/* Main column */
.main {
-ms-flex: 70%; /* IE10 */
flex: 70%;
172

background-color: white;
padding: 20px;
}
/* Fake image, just for this example */
.fakeimg {
background-color: #aaa;
width: 100%;
padding: 20px;
}
/* Footer */
.footer {
padding: 1px;
text-align: center;
background: #ddd;
}

/* Responsive layout - when the screen is less than 700px wide, make the two columns
stack on top of each other instead of next to each other */
@media screen and (max-width: 700px) {
.row {
flex-direction: column;
}
}
/* Responsive layout - when the screen is less than 400px wide, make the navigation
links stack on top of each other instead of next to each other */
@media screen and (max-width: 400px) {
.navbar a {
float: none;
width: 100%;
}
}
</style>
</head>
<body>
<script src="assets/jquery-3.1.1.min.js"></script>
<link href="assets/bootstrap-3.3.7-dist/css/bootstrap.min.css" rel="stylesheet" />
<script src="js/firebase.js"></script>
<!-- <div class="header">
<h1>My Website</h1>
<p>A website created by me.</p>
</div> -->
<div class="navbar">
<a href="home.html">Home</a>
<a href="loginadmin.html" class="right">Logout</a>
173

</div>
<div class="row">
<div class="side">
<h3>Cancel/Confirm Appointment:</h3>
<br><br>
<label for="recipient-name" class="control-label">Id:</label><br>
<input type="text" class="form-control" id="txtId2">
<br>
<button type="button" id="btnDelete"> Cancel Appointment</button><br><br>
<button type="button" id="btnUpdate" >Confirm Appointment</button>
<input type="hidden" id="chk">
<br><br>
<input type="hidden" class="form-control" id="send">
<br>
<input type="hidden" class="form-control" id="Time">
<br>
<input type="hidden" class="form-control" id="Time1">
<br>
<div>
</div>
<!-- <p>Some text about me in culpa qui officia deserunt mollit anim..</p>
<h3>More Text</h3>
<p>Lorem ipsum dolor sit ame.</p> -->
<!-- <div class="fakeimg" style="height:60px;">Image</div><br>
<div class="fakeimg" style="height:60px;">Image</div><br>
<div class="fakeimg" style="height:60px;">Image</div> -->
</div class="fdiv">
<div class="main">
<h3>View Appointments:</h3>
<button id="btnReadAll" type="button">View</button>
<br><br>
<!-- <h5>Title description, Dec 7, 2017</h5> -->
<div>
<table class="table table-striped" border="1" >
<thead>
<tr>
<th>Id</th>
<th>Name</th>
<th>Smssent</th>
<th>Smsstatus</th>
<th>Confirmation</th>
</tr>
</thead>
<tbody id="lstTable"></tbody>
174

</table>
</div>
<!-- <p>Some text..</p>
<p>Sunt in culpa qui officia deserunt mollit anim id est laborum consectetur adipiscing
elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad
minim veniam, quis nostrud exercitation ullamco.</p>
<br>
<h2>TITLE HEADING</h2>
<h5>Title description, Sep 2, 2017</h5>
<div class="fakeimg" style="height:200px;">Image</div>
<p>Some text..</p>
<p>Sunt in culpa qui officia deserunt mollit anim id est laborum consectetur adipiscing
elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad
minim veniam, quis nostrud exercitation ullamco.</p> -->
</div>
</div>
<script>
// Initialize Firebase
var config = {
apiKey: "AIzaSyAOkE0UCIazyFPL_bDI_xoqI2wKIgWJfqA",
authDomain: "thesis-59cd0.firebaseapp.com",
databaseURL: "https://thesis-59cd0.firebaseio.com",
projectId: "thesis-59cd0",
storageBucket: "thesis-59cd0.appspot.com",
messagingSenderId: "659969777877"
};
firebase.initializeApp(config);
function readAllData() {
var data1 = String($('#txtId3').val())
var ref = firebase.database().ref().child("smsQeue");
ref.on("value", function (snapshot) {
snapshot.forEach(function (childSnapshot) {
// key will be "ada" the first time and "alan" the second time
var key = childSnapshot.key;
// childData will be the actual contents of the child
var childData = childSnapshot.val();
var tr = '<tr>' +
'<td>' + key + '</td>' +
'<td>' + childData.username + '</td>' +
'<td>' + childData.smssent + '</td>' +
'<td>' + childData.smsstatus2+ '</td>' +
'<td>' + childData.Confirmation+ '</td>' +
'</tr>';
$('#lstTable').append(tr);
175

console.log(snapshot.val());
$("demo").delay(4000).fadeIn();
var x = document.getElementById("lstTable").rows.length;
});
}, function (error) {
console.log("Error: " + error.code);
});
}
function updateData(userId,name, time, time1) {
// A post entry.
var postData = {
smssent: name,
smsstatus2: time,
Confirmation: time1
};
var personRef = firebase.database().ref().child("smsQeue").child(userId);
personRef.once('value', function (snapshot) {
if (snapshot.val() === null) {
/* does not exist */
alert('does not exist');
} else {
personRef.update(postData);
alert("successfully update!! ");
$("#lstTable > tr").remove();
readAllData();
}
});
}
function deleteData(userId,name, time, time1) {
// A post entry.
// A post entry.
var postData = {
smssent: name,
smsstatus2: time,
Confirmation: time1,
};
var personRef = firebase.database().ref().child("smsQeue").child(userId);
personRef.once('value', function (snapshot) {
if (snapshot.val() === null) {
/* does not exist */
alert('does not exist');
} else {
personRef.update(postData);
alert("successfully update!! ");
176

$("#lstTable > tr").remove();


readAllData();
}
});
}
$('#btnReadAll').on('click', function () {
readAllData();
});
$('#btnUpdate').on('click', function () {
let tempToday = new Date().getTime()/1000+20;
let today2 = Math.round(tempToday).toString();
let today = today2.toString();
document.getElementById("send").value = today;
var id = $('#txtId2').val();
var name = $('#send').val();
var time = "false";
var time1 = "Confirmed";
document.getElementById("txtId2").value = "";
document.getElementById("send").value = "";
document.getElementById("Time").value = "";
document.getElementById("Time1").value = "";
updateData(id,name, time, time1);
});
$('#btnDelete').on('click', function () {
let tempToday = new Date().getTime()/1000+20;
let today2 = Math.round(tempToday).toString();
let today = today2.toString();
document.getElementById("send").value = today;
var id = $('#txtId2').val();
var name = $('#send').val();
var time = "false";
var time1 = "Cancelled";
document.getElementById("txtId2").value = "";
document.getElementById("send").value = "";
document.getElementById("Time").value = "";
document.getElementById("Time1").value = "";
deleteData(id,name, time, time1);
});
</script>
<script src="smssched.js"></script>
</body>
</html>
HOME
<!DOCTYPE html>
177

<html lang="en">
<head>
<title>Page Title</title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<script type="text/javascript" src="https://gc.kis.scr.kaspersky-labs.com/1B74BD89-
2A22-4B93-B451-1C9E1052A0EC/main.js" charset="UTF-8"></script></head>
<meta content='width=device-width, initial-scale=1.0, maximum-scale=1.0, user-
scalable=0' name='viewport' />
<meta name="viewport" content="width=device-width" />
<!-- Bootstrap core CSS -->
<link href="assets1/css/bootstrap.min.css" rel="stylesheet" />
<!-- Animation library for notifications -->
<link href="assets1/css/animate.min.css" rel="stylesheet"/>
<!-- Light Bootstrap Table core CSS -->
<link href="assets1/css/light-bootstrap-dashboard.css" rel="stylesheet"/>
<!-- CSS for Demo Purpose, don't include it in your project -->
<link href="assets1/css/demo.css" rel="stylesheet" />
<!-- Fonts and icons -->
<link href="http://maxcdn.bootstrapcdn.com/font-awesome/4.2.0/css/font-
awesome.min.css" rel="stylesheet">
<link href='http://fonts.googleapis.com/css?family=Roboto:400,700,300' rel='stylesheet'
type='text/css'>
<link href="assets1/css/pe-icon-7-stroke.css" rel="stylesheet" />
<style>
*{
box-sizing: border-box;
}
/* Style the body */
body {
font-family: Arial, Helvetica, sans-serif;
margin: 0;
}
/* Header/logo Title */
/* .header {
padding: 80px;
text-align: center;
background: #1abc9c;
color: white;
} */

/* Increase the font size of the heading */


.header h1 {
font-size: 40px;
178

}
/* Style the top navigation bar */
.navbar {
overflow: hidden;
background-color: rgb(70, 103, 248);
}
/* Style the navigation bar links */
.navbar a {
float: left;
display: block;
color: white;
text-align: center;
padding: 14px 20px;
text-decoration: none;
}
/* Right-aligned link */
.navbar a.right {
float: right;
}
/* Change color on hover */
.navbar a:hover {
background-color: #ddd;
color: black;
}
/* Column container */
.row {
display: -ms-flexbox; /* IE10 */
display: flex;
-ms-flex-wrap: wrap; /* IE10 */
flex-wrap: wrap;
}
/* Create two unequal columns that sits next to each other */
/* Sidebar/left column */
.side {
margin-top: -20px;
background-color: rgb(204, 204, 206);
padding: 20px;
height: 620px;
}
/* Main column */
.main {
-ms-flex: 70%; /* IE10 */
flex: 70%;
background-color: white;
179

padding: 20px;
}
/* Fake image, just for this example */
.fakeimg {
background-color: #aaa;
width: 100%;
padding: 20px;
}
/* Footer */
.footer {
padding: 1px;
text-align: center;
background: #ddd;
}
/* Responsive layout - when the screen is less than 700px wide, make the two columns
stack on top of each other instead of next to each other */
@media screen and (max-width: 700px) {
.row {
flex-direction: column;
}
}
/* Responsive layout - when the screen is less than 400px wide, make the navigation
links stack on top of each other instead of next to each other */
@media screen and (max-width: 400px) {
.navbar a {
float: none;
width: 100%;
}
}
</style>
</head>
<body>
<script src="assets/jquery-3.1.1.min.js"></script>
<link href="assets/bootstrap-3.3.7-dist/css/bootstrap.min.css" rel="stylesheet" />
<script src="js/firebase.js"></script>
<!-- <div class="header">
<h1>My Website</h1>
<p>A website created by me.</p>
</div> -->
<div class="navbar">
<a href="#">Home</a>
<a href="Confirmation.html">Confirmation</a>
<a href="loginadmin.html" class="right">Logout</a>
</div>
180

<div class="row">
<div class="side">
<h3>Update/Delete Data:</h3>
<br>
<label for="recipient-name" class="control-label">Date:</label><br>
<input type="text" class="form-control" id="txtId2">
<label for="recipient-name" class="control-label">Name:</label><br>
<input type="text" class="form-control" id="Name">
<label for="recipient-name" class="control-label">Time:</label><br>
<input type="text" class="form-control" id="Time">
<label for="recipient-name" class="control-label">Weight:</label><br>
<input type="text" class="form-control" id="w">
<label for="recipient-name" class="control-label">Height:</label><br>
<input type="text" class="form-control" id="h">
<label for="recipient-name" class="control-label">Temperature:</label><br>
<input type="text" class="form-control" id="t">
<label for="recipient-name" class="control-label">Blood Pressure:</label><br>
<input type="text" class="form-control" id="b">
<br>
<button type="button" id="btnDelete"> Delete</button>
<button type="button" id="btnUpdate" >Update</button>
<input type="hidden" id="chk">
<br><br>
<div>
</div>
<!-- <p>Some text about me in culpa qui officia deserunt mollit anim..</p>
<h3>More Text</h3>
<p>Lorem ipsum dolor sit ame.</p> -->
<!-- <div class="fakeimg" style="height:60px;">Image</div><br>
<div class="fakeimg" style="height:60px;">Image</div><br>
<div class="fakeimg" style="height:60px;">Image</div> -->
</div class="fdiv">
<div class="main">
<h3>Search By Date: <input type="text" id="txtId3" placeholder="yyyy-mm-dd"/>
<p id="demo"></p> </h3>
<button id="btnReadAll" type="button">Submit</button>
<br><br>
<!-- <h5>Title description, Dec 7, 2017</h5> -->
<div>
<table class="table table-striped" border="1" >
<thead>
<tr>
<th>Name</th>
<th>Symp</th>
181

<th>Time</th>
<th>Weight</th>
<th>Height</th>
<th>Temp</th>
<th>Bp</th>
</tr>
</thead>
<tbody id="lstTable"></tbody>
</table>
</div>
<!-- <p>Some text..</p>
<p>Sunt in culpa qui officia deserunt mollit anim id est laborum consectetur adipiscing
elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad
minim veniam, quis nostrud exercitation ullamco.</p>
<br>
<h2>TITLE HEADING</h2>
<h5>Title description, Sep 2, 2017</h5>
<div class="fakeimg" style="height:200px;">Image</div>
<p>Some text..</p>
<p>Sunt in culpa qui officia deserunt mollit anim id est laborum consectetur adipiscing
elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad
minim veniam, quis nostrud exercitation ullamco.</p> -->
</div>
</div>
<script>
// Initialize Firebase
var config = {
apiKey: "AIzaSyAOkE0UCIazyFPL_bDI_xoqI2wKIgWJfqA",
authDomain: "thesis-59cd0.firebaseapp.com",
databaseURL: "https://thesis-59cd0.firebaseio.com",
projectId: "thesis-59cd0",
storageBucket: "thesis-59cd0.appspot.com",
messagingSenderId: "659969777877"
};
firebase.initializeApp(config);
function readAllData() {
var data1 = String($('#txtId3').val())
var ref = firebase.database().ref().child("admin/" + data1);
ref.on("value", function (snapshot) {
snapshot.forEach(function (childSnapshot) {
// key will be "ada" the first time and "alan" the second time
var key = childSnapshot.key;
// childData will be the actual contents of the child
var childData = childSnapshot.val();
182

var tr = '<tr>' +
'<td>' + childData.username + '</td>' +
'<td>' + childData.symp +
'</td>' +
'<td>' + childData.Time +
'</td>' +
'<td>' + childData.Weight + '</td>' +
'<td>' + childData.Height +
'</td>' +
'<td>' +
childData.Temperature + '</td>' +
'<td>' + childData.Bp + '</td>' +
'</tr>';
$('#lstTable').append(tr);
console.log(snapshot.val());
$("demo").delay(4000).fadeIn();
var x =
document.getElementById("lstTable").rows.length;
document.getElementById("demo").innerHTML =
"There are " + x + " transaction for these date.";
});
}, function (error) {
console.log("Error: " + error.code);
});
}
function updateData(userId,name, time, we, he, te, bp ) {
// A post entry.
var postData = {
Time: time,
Weight: we,
Height: he,
Temperature: te,
Bp: bp,
};
var personRef =
firebase.database().ref().child("admin").child(userId).child(name);
personRef.once('value', function (snapshot) {
if (snapshot.val() === null) {
/* does not exist */
alert('does not exist');
} else {
personRef.update(postData);
alert("successfully update!! ");
183

$("#lstTable > tr").remove();

readAllData();
}
});
}
function deleteData(userId, name) {
var personRef =
firebase.database().ref().child("admin").child(userId).child(name);
personRef.once('value', function (snapshot) {
if (snapshot.val() === null) {
/* does not exist */
alert('does not exist');
} else {
personRef.remove();
alert("successfully Deleted!! ");
$("#lstTable > tr").remove();
readAllData();
}
});
}
$('#btnReadAll').on('click', function () {
readAllData();
});
$('#btnUpdate').on('click', function () {
var id = $('#txtId2').val();
var name = $('#Name').val();
var time = $('#Time').val();
var we = $('#w').val();
var he = $('#h').val();
var te = $('#t').val();
var bp = $('#b').val();
document.getElementById("txtId2").value = "";
document.getElementById("Name").value = "";
document.getElementById("Time").value = "";
document.getElementById("w").value = "";
document.getElementById("h").value = "";
document.getElementById("t").value = "";
document.getElementById("b").value = "";
updateData(id,name, time, we, he, te, bp);
});
$('#btnDelete').on('click', function () {
var id = $('#txtId2').val();
var name = $('#Name').val();
184

var time = $('#Time').val();


document.getElementById("txtId2").value = "";
document.getElementById("Name").value = "";
document.getElementById("Time").value = "";
deleteData(id,name, time);
});
</script>
</body>
</html>
HOMECLIENT
<!DOCTYPE html>
<html lang="en">
<head>
<title>Page Title</title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"
type="text/javascript"></script>
</head>
<style>
*{
box-sizing: border-box;
}
/* Style the body */
body {
font-family: Arial, Helvetica, sans-serif;
margin: 0;
}
/* Header/logo Title */
.header {
padding: 80px;
text-align: center;
background: #1abc9c;
color: white;
}
/* Increase the font size of the heading */
.header h1 {
font-size: 40px;
}
/* Style the top navigation bar */
.navbar {
overflow: hidden;
background-color: rgb(70, 103, 248);
}
185

/* Style the navigation bar links */


.navbar a {
float: left;
display: block;
color: white;
text-align: center;
padding: 14px 20px;
text-decoration: none;
}
/* Right-aligned link */
.navbar a.right {
float: right;
}
/* Change color on hover */
.navbar a:hover {
background-color: #ddd;
color: black;
}
/* Column container */
.row {
display: -ms-flexbox; /* IE10 */
display: flex;
-ms-flex-wrap: wrap; /* IE10 */
flex-wrap: wrap;
}
/* Create two unequal columns that sits next to each other */
/* Sidebar/left column */
.side {
-ms-flex: 30%; /* IE10 */
flex: 30%;
background-color: #f1f1f1;
padding: 10px;
height: 700px;
}
/* Main column */
.main {
-ms-flex: 70%; /* IE10 */
flex: 70%;
background-color: white;
padding: 20px;
}
/* Fake image, just for this example */
.fakeimg {
background-color: #aaa;
186

width: 100%;
padding: 20px;
}
.fdiv {
width: 100%;
height: 100%;
}
/* Footer */
.footer {
padding: .1px;
text-align: center;
background: #ddd;
}
/* Responsive layout - when the screen is less than 700px wide, make the two columns
stack on top of each other instead of next to each other */
@media screen and (max-width: 700px) {
.row {
flex-direction: column;
}
}
/* Responsive layout - when the screen is less than 400px wide, make the navigation
links stack on top of each other instead of next to each other */
@media screen and (max-width: 400px) {
.navbar a {
float: none;
width: 100%;
}
}
</style>
<body>
<div>
<div class="navbar">
<a href="home.html">Home</a>
<a href="SearchTime.html">View Available Time</a>
<a href="index.html" class="right">Logout</a>
</div>
<div class="row">
<div class="side">
<h3>Make Appointment:</h3>
<label for="recipient-name" class="control-label">First Name:</label><br>
<input type="text" class="form-control" id="fname">
<br>
<label for="recipient-name" class="control-label">Last Name:</label><br>
<input type="text" class="form-control" id="lname">
187

<br>
<label for="recipient-name" class="control-label" >Contact:</label><br>
<input type="text" class="form-control" placeholder="(+63*********)" id="con">
<br>
<label for="recipient-name" class="control-label">Weight:</label><br>
<input type="text" class="form-control" id="w">
<br>
<label for="recipient-name" class="control-label">Height:</label><br>
<input type="text" class="form-control" id="h">
<br>
<label for="recipient-name" class="control-label">Temperature:</label><br>
<input type="text" class="form-control" id="temp">
<br>
<label for="recipient-name" class="control-label">Bp:</label><br>
<input type="text" class="form-control" id="bp">
<p id="send"></p>
<p id="ids"></p>
<br><br>
<div><label>Date:</label><br><br>
<input type="date" id="date" min="2018-01-01">
<br><br>
<label>Time:</label> <br><br>
<select id="btime">
<option value="">Select...</option>
<option value="08-8:15">08-8:15</option>
<option value="8:15-8:30">8:15-8:30</option>
<option value="8:30-8:45">8:30-8:45</option>
<option value="18:45-09">8:45-09</option>
<option value="08-09">09-9:15</option>
<option value="09-9:15">9:15-9:30</option>
<option value="9:30-9:45">9:30-9:45</option>
<option value="9:45-10">9:45-10</option>
<option value="10-10:15">10-10:15</option>
<option value="10:15-10:30">10:15-10:30</option>
<option value="10:30-10:45">10:30-10:45</option>
<option value="10:45-11">10:45-11</option>
<option value="11-11:15">11-11:15</option>
<option value="11:15-11:30">11:15-11:30</option>
<option value="11:30-11:45">11:30-11:45</option>
<option value="11:45-12">11:45-12</option>
<option value="01-1:15">01-1:15</option>
<option value="1:15-1:30">1:15-1:30</option>
<option value="1:30-1:45">1:30-1:45</option>
188

<option value="1:45-02">1:45-02</option>
<option value="02-2:15">02-2:15</option>
<option value="2:15-2:30">2:15-2:30</option>
<option value="2:30-2:45">2:30-2:45</option>
<option value="2:45-03">2:45-03</option>
<option value="03-3:15">03-3:15</option>
<option value="3:15-3:30">3:15-3:30</option>
<option value="3:30-3:45">3:30-3:45</option>
<option value="3:45-04">3:45-04</option>
<option value="04-4:15">04-4:15</option>
<option value="4:15-4:30">4:15-4:30</option>
<option value="4:30-4:45">4:30-4:45</option>
<option value="4:45-05">4:45-05</option>
</select>
<br><br>
<label for="recipient-name" class="control-label">Additional
Message:</label><br>
<textarea class="form-control" rows="5" id="msg" name="message"
placeholder="Message"></textarea>
<br><br>
<button id="button" value="Get Value Using Class" >Submit</button>
<input type="hidden" id="chk">
</div>
<!-- <p>Some text about me in culpa qui officia deserunt mollit anim..</p>
<h3>More Text</h3>
<p>Lorem ipsum dolor sit ame.</p> -->
<!-- <div class="fakeimg" style="height:60px;">Image</div><br>
<div class="fakeimg" style="height:60px;">Image</div><br>
<div class="fakeimg" style="height:60px;">Image</div> -->
</div class="fdiv">
<div class="main">
<h2>Type of Symptoms</h2>
<!-- <h5>Title description, Dec 7, 2017</h5> -->
<div >
<table class="table table-hover tm-table-small tm-product-table">
<div id="checkboxlist">
<thead>
<tr>
<th scope="col">&nbsp;</th>
<th scope="col"></th>
<th scope="col"></th>
<th scope="col">&nbsp;</th>
</tr>
</thead>
189

<tbody>
<tr>
<th scope="row"><input type="checkbox" class="chk" value="Bloating"/></th>
<td class="tm-product-name">Bloating</td>
<th scope="row"><input type="checkbox" class="chk" value="Chest
Pain"/></th>
<td class="tm-product-name">Chest Pain</td>
<td>
<a href="#" class="tm-product-delete-link">
<i class="far fa-trash-alt tm-product-delete-icon"></i>
</a>
</td>
</tr>
<tr>
<th scope="row"><input type="checkbox" class="chk" value="Diarrhea"/></th>
<td class="tm-product-name">Loose Bowel Movement</td>
<th scope="row"><input type="checkbox" class="chk" value="Back
Pain"/></th>
<td class="tm-product-name">Back Pain</td>
<td>
<a href="#" class="tm-product-delete-link">
<i class="far fa-trash-alt tm-product-delete-icon"></i>
</a>
</td>
</tr>
<tr>
<th scope="row"><input type="checkbox" class="chk" value="Fatigue"/></th>
<td class="tm-product-name">Fatigue</td>
<th scope="row"><input type="checkbox" class="chk""
value="Allergies"/></th>
<td class="tm-product-name">Allergies</td>
<td>
<a href="#" class="tm-product-delete-link">
<i class="far fa-trash-alt tm-product-delete-icon"></i>
</a>
</td>
</tr>
<tr>
<th scope="row"><input type="checkbox" class="chk"
value="Headache"/></th>
<td class="tm-product-name">Headache</td>
<th scope="row"><input type="checkbox" class="chk"
value="Constipation"/></th>
<td class="tm-product-name">Constipation</td>
190

<td>
<a href="#" class="tm-product-delete-link">
<i class="far fa-trash-alt tm-product-delete-icon"></i>
</a>
</td>
</tr>
<tr>
<th scope="row"><input type="checkbox" class="chk" value="Muscle
Cramp"/></th>
<td class="tm-product-name">Muscle Cramp</td>
<th scope="row"><input type="checkbox" class="chk" value="Stomach
Ache/Abdominal Pain"/></th>
<td class="tm-product-name">Abdominal Pain</td>
<td>
<a href="#" class="tm-product-delete-link">
<i class="far fa-trash-alt tm-product-delete-icon"></i>
</a>
</td>
</tr>
<tr>
<th scope="row"><input type="checkbox" class="chk" value="Nausea"/></th>
<td class="tm-product-name">Nausea</td>
<th scope="row"><input type="checkbox" class="chk" value="Blurry
Vision"/></th>
<td class="tm-product-name">Blurry Vision</td>

<td>
<a href="#" class="tm-product-delete-link">
<i class="far fa-trash-alt tm-product-delete-icon"></i>
</a>
</td>
</tr>
<tr>
<th scope="row"><input type="checkbox" class="chk" value="Throat
Irritation"/></th>
<td class="tm-product-name">Throat Irritation</td>
<th scope="row"><input type="checkbox"class="chk" value="Itching"/></th>
<td class="tm-product-name">Itchiness</td>
<td>
<a href="#" class="tm-product-delete-link">
<i class="far fa-trash-alt tm-product-delete-icon"></i>
</a>
</td>
</tr>
191

<tr>
<th scope="row"><input type="checkbox" class="chk" value="Difficulty of
Breathing"/></th>
<td class="tm-product-name">Difficulty of Breathing</td>
<td>
<a href="#" class="tm-product-delete-link">
<i class="far fa-trash-alt tm-product-delete-icon"></i>
</a>
</td>
</tr>
<tr>
<th scope="row"><input type="checkbox" class="chk" value="Vomiting"/></th>
<td class="tm-product-name">Vomiting</td>
<td>
<a href="#" class="tm-product-delete-link">
<i class="far fa-trash-alt tm-product-delete-icon"></i>
</a>
</td>
</tr>
<tr>
<th scope="row"><input type="checkbox" class="chk" value="oughing"/></th>
<td class="tm-product-name">Coughing</td>
<td>
<a href="#" class="tm-product-delete-link">
<i class="far fa-trash-alt tm-product-delete-icon"></i>
</a>
</td>
</tr>
<tr>
<th scope="row"><input type="checkbox" class="chk" value="Cough"/></th>
<td class="tm-product-name">Cough</td>
</tr>
<tr>
<th scope="row"><input type="checkbox" class="chk"
value="Dizziness"/></th>
<td class="tm-product-name">Dizziness</td>
<td>
<a href="#" class="tm-product-delete-link">
<i class="far fa-trash-alt tm-product-delete-icon"></i>
</a>
</td>
</tr>
<tr>
<th scope="row"><input type="checkbox" class="chk" value="Fever"/></th>
192

<td class="tm-product-name">Fever</td>
<td>
<a href="#" class="tm-product-delete-link">
<i class="far fa-trash-alt tm-product-delete-icon"></i>
</a>
</td>
</tr>
<tr>
<th scope="row"><input type="checkbox" class="chk" value="Nasal
Congestion"/></th>
<td class="tm-product-name">Nasal Congestion</td>
<td>
<a href="#" class="tm-product-delete-link">
<i class="far fa-trash-alt tm-product-delete-icon"></i>
</a>
</td>
</tr>
<tr>
<th scope="row"><input type="checkbox" class="chk" value="Runny
Nose"/></th>
<td class="tm-product-name">Runny Nose</td>
<td>
<a href="#" class="tm-product-delete-link">
<i class="far fa-trash-alt tm-product-delete-icon"></i>

</a>
</td>
</tr>
<!-- <tr>
<td class="tm-product-name">
<textarea class="form-control" rows="5" id="msg" name="message"
placeholder="Others"></textarea></td>
<td>
<a href="#" class="tm-product-delete-link">
<i class="far fa-trash-alt tm-product-delete-icon"></i>
</a>
</td>
</tr> -->
</tbody>
</div>
</table>
</div>
<!-- <p>Some text..</p>
193

<p> Sunt in culpa qui officia deserunt mollit anim id est laborum consectetur adipiscing
elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad
minim veniam, quis nostrud exercitation ullamco.</p>
<br>
<h2>TITLE HEADING</h2>
<h5>Title description, Sep 2, 2017</h5> -->
<!-- <div class="fakeimg" style="height:200px;">Image</div> -->
<!-- <p>Some text..</p>
<p>Sunt in culpa qui officia deserunt mollit anim id est laborum consectetur adipiscing
elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad
minim veniam, quis nostrud exercitation ullamco.</p> -->
</div>
</div>
<div class="footer">
<h5>Copyright 2019</h5>
</div>
</div>
<script src="https://www.gstatic.com/firebasejs/4.7.0/firebase.js">
</script>
<script>
// Initialize Firebase
var config = {
apiKey: "AIzaSyAOkE0UCIazyFPL_bDI_xoqI2wKIgWJfqA",
authDomain: "thesis-59cd0.firebaseapp.com",
databaseURL: "https://thesis-59cd0.firebaseio.com",
projectId: "thesis-59cd0",
storageBucket: "thesis-59cd0.appspot.com",
messagingSenderId: "659969777877"
};
firebase.initializeApp(config);
var dbRef = firebase.database();
var dbRefid = dbRef.ref().push().key;
</script>
<script>
var tr2;
$(document).ready(function () {
/* Get the checkboxes values based on the class attached to each check box */
$("#button").click(function() {
getValueUsingClass();
});
/* Get the checkboxes values based on the parent div id */
});

function getValueUsingClass(){
194

/* declare an checkbox array */


var chkArray = [];
var date1 = String($('#date').val())
var time1 = String($('#date').val())
var ref = firebase.database().ref().child("admin/" + date1);
ref.on("value", function (snapshot) {
snapshot.forEach(function (childSnapshot) {
// childData will be the actual contents of the child
var childData = childSnapshot.val();
var tr = childData.Time
});
}, function (error) {
console.log("Error: " + error.code);
});
/* look for all checkboxes that have a class 'chk' attached to it and check if it was
checked */
$(".chk:checked").each(function() {
chkArray.push($(this).val());
});

/* we join the array separated by the comma */


var selected;
selected = chkArray.join(',') ;
/* check if there is selected checkboxes, by default the length is 1 as it contains
one single comma */
if(selected.length > 0){
let tempToday = new Date().getTime()/1000+20;
let today2 = Math.round(tempToday).toString();
let today = today2.toString();
document.getElementById("send").value = today;
document.getElementById("chk").value = selected;
var xy = dbRefid;
document.getElementById("ids").value = xy;
myclick();
alert("You have successfully Added!! ");
window.location.reload();
}else{
alert("Please at least check one of the checkbox");
}
}
</script>

<script src="index.js"></script>
<script src="smssched.js"></script>
195

</body>
</html>
ADMIN LOGIN
<!DOCTYPE html>
<html lang="en" >
<head>
<meta charset="UTF-8">
<title>Login</title>
<link rel='stylesheet'
href='http://netdna.bootstrapcdn.com/bootstrap/3.0.2/css/bootstrap.min.css'>
<link rel="stylesheet" href="css/style.css">
</head>
<body style="background-image:url(doc.jpg)">
<div class="wrapper" name="login">
<form class="form-signin">
<h3 class="form-signin-heading">Login Admin</h3>
<input type="text" class="form-control" id="loginEmail" name="userid"
placeholder="Username" required="" autofocus="" />
<br><br>
<input type="password" class="form-control" id="loginPassword" name="pswrd"
placeholder="Password" required=""/>
<br>
<input type="button" onclick="check(this.form)" class="button" value="Login"
id="doLogin"> <br><br>
<h4 class="form-signin-heading">Password is by Default</h4>
</form>
</div>
<script language="javascript">
function check(form)/*function to check userid & password*/
{
/*the following code checkes whether the entered userid and password are matching*/
if(form.userid.value == "admin" && form.pswrd.value == "admin")
{
window.open('home.html')/*opens the target page while Id & password matches*/
}
else
{
alert("Error Password or Username")/*displays error message*/
}
}
</script>
</body>
</html>
REGISTRATION
196

var text = document.getElementById("text");


var button = document.getElementById("button");
var head = document.getElementById("head");
var fname = document.getElementById("fname");
var lname = document.getElementById("lname");
var dates = document.getElementById("date");
var btime = document.getElementById("btime");
var mname = document.getElementById("mname");
var contact = document.getElementById("contact");
var message = document.getElementById("message");
function myclick() {
var val = fname.value;
var val1 = lname.value;
var da = dates.value;
var bt = btime.value;
var val2 = mname.value;
var con = contact.value;
var msg = message.value;
var firebaseRef = firebase.database().ref("admin/date/" + (da));
firebaseRef.child((val)+"/fname").set(val);
firebaseRef.child((val)+"/lname").set(val1);
firebaseRef.child((val)+"/mname").set(val2);
firebaseRef.child((val)+"/contact").set(con);
firebaseRef.child((val)+"/time").set(bt);
firebaseRef.child((val)+"/message").set(msg);
document.getElementById("myForm").reset();
}
SCRIPT
$(document).ready(function(){
//initialize the firebase app
var config = {
apiKey: "AIzaSyAOkE0UCIazyFPL_bDI_xoqI2wKIgWJfqA",
authDomain: "thesis-59cd0.firebaseapp.com",
databaseURL: "https://thesis-59cd0.firebaseio.com",
projectId: "thesis-59cd0",
storageBucket: "thesis-59cd0.appspot.com",
messagingSenderId: "659969777877"
};
firebase.initializeApp(config);
//create firebase references
var Auth = firebase.auth();
var dbRef = firebase.database();
var contactsRef = dbRef.ref('contacts')
var usersRef = dbRef.ref('users')
197

var auth = null;


//Register
$('#doRegister').on('click', function (e) {
e.preventDefault();
$('#registerModal').modal('hide');
$('#messageModalLabel').html(spanText('<i class="fa fa-cog fa-spin"></i>', ['center',
'info']));
$('#messageModal').modal('hide');
var data = {
email: $('#user').val(), //get the email from Form
fname: $('#fname').val(), //get the email from Form
age: $('#age').val(), // get firstName
address: $('#add').val(), // get lastName
gender: $('#btime').val(), // get lastName
contact: $('#con').val(), // get lastName
passwords: $('#lpass').val(), // get lastName
};
var passwords = {
password : $('#lpass').val(), //get the pass from Form
cPassword : $('#cfpass').val(), //get the confirmPass from Form
}
if( data.email != '' && passwords.password != '' && passwords.cPassword != '' ){
if( passwords.password == passwords.cPassword ){
//create the user

firebase.auth()
.createUserWithEmailAndPassword(data.email, passwords.password)
.then(function(user){
//now user is needed to be logged in to save data
console.log("Authenticated successfully with payload:", user);
auth = user;
//now saving the profile data
usersRef
.child(user.uid)
.set(data)
.then(function(){
console.log("User Information Saved:", user.uid);
})
$('#messageModalLabel').html(spanText('Success!', ['center', 'success']))
//hide the modal automatically
setTimeout(function() {
$('#messageModal').modal('hide');
$('.unauthenticated,
.userAuth').toggleClass('unauthenticated').toggleClass('authenticated');
198

contactsRef.child(auth.uid)
.on("child_added", function(snap) {
console.log("added", snap.key, snap.val());
$('#contacts').append(contactHtmlFromObject(snap.val()));
});
}, 500);
console.log("Successfully created user account with uid:", user.uid);
$('#messageModalLabel').html(spanText('Successfully added!', ['success']))
alert("Reload page!!")
window.location.reload();
})
.catch(function(error){
console.log("Error creating user:", error);
$('#messageModalLabel').html(spanText('ERROR: '+error.code, ['danger']))

});
} else {
//password and confirm password didn't match
$('#messageModalLabel').html(spanText("ERROR: Passwords didn't match",
['danger']))
}
}
});
})
//prepare contact object's HTML
function spanText(textStr, textClasses) {
var classNames = textClasses.map(c => 'text-'+c).join(' ');
return '<span class="'+classNames+'">'+ textStr + '</span>';
}
SEARCH TIME
<!DOCTYPE html>
<html lang="en">
<head>
<title>Page Title</title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<script type="text/javascript" src="https://gc.kis.scr.kaspersky-labs.com/1B74BD89-
2A22-4B93-B451-1C9E1052A0EC/main.js" charset="UTF-8"></script></head>
<meta content='width=device-width, initial-scale=1.0, maximum-scale=1.0, user-
scalable=0' name='viewport' />
<meta name="viewport" content="width=device-width" />
<!-- Bootstrap core CSS -->
<link href="assets1/css/bootstrap.min.css" rel="stylesheet" />
<!-- Animation library for notifications -->
199

<link href="assets1/css/animate.min.css" rel="stylesheet"/>


<!-- Light Bootstrap Table core CSS -->
<link href="assets1/css/light-bootstrap-dashboard.css" rel="stylesheet"/>
<!-- CSS for Demo Purpose, don't include it in your project -->
<link href="assets1/css/demo.css" rel="stylesheet" />
<!-- Fonts and icons -->
<link href="http://maxcdn.bootstrapcdn.com/font-awesome/4.2.0/css/font-
awesome.min.css" rel="stylesheet">
<link href='http://fonts.googleapis.com/css?family=Roboto:400,700,300' rel='stylesheet'
type='text/css'>
<link href="assets1/css/pe-icon-7-stroke.css" rel="stylesheet" />
<style>
*{
box-sizing: border-box;
}
/* Style the body */
body {
font-family: Arial, Helvetica, sans-serif;
margin: 0;
}
/* Header/logo Title */
/* .header {
padding: 80px;
text-align: center;
background: #1abc9c;
color: white;
} */

/* Increase the font size of the heading */


.header h1 {
font-size: 40px;
}
/* Style the top navigation bar */
.navbar {
overflow: hidden;
background-color: rgb(70, 103, 248);
}
/* Style the navigation bar links */
.navbar a {
float: left;
display: block;
color: white;
text-align: center;
padding: 14px 20px;
200

text-decoration: none;
}
/* Right-aligned link */
.navbar a.right {
float: right;
}
/* Change color on hover */
.navbar a:hover {
background-color: #ddd;
color: black;
}
/* Column container */
.row {
display: -ms-flexbox; /* IE10 */
display: flex;
-ms-flex-wrap: wrap; /* IE10 */
flex-wrap: wrap;
}
/* Create two unequal columns that sits next to each other */
/* Sidebar/left column */
.side {
-ms-flex: 30%; /* IE10 */
flex: 30%;
background-color: #f1f1f1;
padding: 20px;
height: 600px;
}
/* Main column */
.main {
-ms-flex: 70%; /* IE10 */
flex: 70%;
background-color: white;
padding: 20px;
}
/* Fake image, just for this example */
.fakeimg {
background-color: #aaa;
width: 100%;
padding: 20px;
}
/* Footer */
.footer {
padding: 1px;
text-align: center;
201

background: #ddd;
}
/* Responsive layout - when the screen is less than 700px wide, make the two columns
stack on top of each other instead of next to each other */
@media screen and (max-width: 700px) {
.row {
flex-direction: column;
}
}
/* Responsive layout - when the screen is less than 400px wide, make the navigation
links stack on top of each other instead of next to each other */
@media screen and (max-width: 400px) {
.navbar a {
float: none;
width: 100%;
}
}
</style>
</head>
<body>
<script src="assets/jquery-3.1.1.min.js"></script>
<link href="assets/bootstrap-3.3.7-dist/css/bootstrap.min.css" rel="stylesheet" />
<script src="js/firebase.js"></script>
<!-- <div class="header">
<h1>My Website</h1>
<p>A website created by me.</p>
</div> -->
<div class="navbar">
<a href="homeclient.html">Home</a>
<a href="loginadmin.html" class="right">Logout</a>
</div>
<div class="row">
<div class="main">
<h3>Search By Date: <input type="text" id="txtId3" placeholder="yyyy-mm-dd"/>
<p id="demo"></p> </h3>
<button id="btnReadAll" type="button">Submit</button>
<br><br>
<!-- <h5>Title description, Dec 7, 2017</h5> -->
<div>
<table class="table table-striped" border="1" align="center" >
<thead>
<tr>
<th align="center">Time</th>
<th align="center">Status</th>
202

</tr>
</thead>
<tbody id="lstTable"></tbody>
</table>
</div>
<!-- <p>Some text..</p>
<p>Sunt in culpa qui officia deserunt mollit anim id est laborum consectetur adipiscing
elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad
minim veniam, quis nostrud exercitation ullamco.</p>
<br>
<h2>TITLE HEADING</h2>
<h5>Title description, Sep 2, 2017</h5>
<div class="fakeimg" style="height:200px;">Image</div>
<p>Some text..</p>
<p>Sunt in culpa qui officia deserunt mollit anim id est laborum consectetur adipiscing
elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad
minim veniam, quis nostrud exercitation ullamco.</p> -->
</div>
</div>
<script>
// Initialize Firebase
var config = {
apiKey: "AIzaSyAOkE0UCIazyFPL_bDI_xoqI2wKIgWJfqA",
authDomain: "thesis-59cd0.firebaseapp.com",
databaseURL: "https://thesis-59cd0.firebaseio.com",
projectId: "thesis-59cd0",
storageBucket: "thesis-59cd0.appspot.com",
messagingSenderId: "659969777877"
};
firebase.initializeApp(config);
function readAllData() {
var data1 = String($('#txtId3').val())
var ref = firebase.database().ref().child("admin/" + data1);

ref.on("value", function (snapshot) {


snapshot.forEach(function (childSnapshot) {
// key will be "ada" the first time and "alan" the second time
var key = childSnapshot.key;
// childData will be the actual contents of the child
var childData = childSnapshot.val();
var tr = '<tr>' +
'<td>' + childData.Time+
'</td>' +
203

'<td>' + childData.status+
'</td>' +
'</tr>';
$('#lstTable').append(tr);
console.log(snapshot.val());
$("demo").delay(4000).fadeIn();
var x =
document.getElementById("lstTable").rows.length;
document.getElementById("demo").innerHTML =
"There are " + x + " transaction for these date.";

});
}, function (error) {
console.log("Error: " + error.code);
});
}
$('#btnReadAll').on('click', function () {
readAllData();
});
</script>
</body>
</html>
SIGN
<!DOCTYPE html>
<html lang="en" >
<head>
<meta charset="UTF-8">
<title>Sign up</title>
<meta charset="UTF-8">
<link rel='stylesheet'
href='http://netdna.bootstrapcdn.com/bootstrap/3.0.2/css/bootstrap.min.css'>
<link rel="stylesheet" href="css/style1.css">
<body <body style="background-image:url(doc.jpg)">
<script src="assets/jquery-3.1.1.min.js"></script>
<link href="assets/bootstrap-3.3.7-dist/css/bootstrap.min.css" rel="stylesheet" />
<script src="js/firebase.js"></script>
<div class="wrapper">
<form class="form-signin">
<div class="header">
<h4 class="modal-title" id="messageModalLabel">Register
User</h4>
</div><br>
<table class="table table-hover table-striped">
204

<input type="text" class="form-control" placeholder="Name" id="fname" /><br>


<input type="text" class="form-control" placeholder="Age" id="age" /><br>
<input type="text" class="form-control" placeholder="Address" id="add" /><br>
<input type="text" class="form-control" placeholder="Contact" id="con" /><br>
<select class = "form-control"id="btime">
<option value="">Gender</option>
<option value="Male">Male</option>
<option value="Female">Female</option>
</select> <br>
<input type="text" class="form-control" placeholder="Username" id="user"
/><br>
<input type="password" class="form-control" placeholder="Password"
id="lpass"/><br>
<input type="password" class="form-control" placeholder="Confirm Password"
id="cfpass"/>
</table>
<button type="button" id="doRegister">Register</button>
<input type="button" value="Return"
onclick="window.location.href='index.html'" />
<div class="clearfix"></div>
</form>
</div>
<!-- jQuery (necessary for Bootstrap's JavaScript plugins) -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
<!-- Latest compiled and minified Bootstrap -->
<script
src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js"></script>
<!-- Include Firebase Library -->
<script src="https://www.gstatic.com/firebasejs/4.3.1/firebase.js"></script>
<!-- Contacts Store JavaScript -->
<script src="script.js"></script>
</body>
</html>
SMS SCHED
1548150625
var repeater;
$(document).ready(function(){
repeater = setInterval(function(){
filterIfSent();
filterIfSent2();
}, 1000);
function getData() {
let tempToday = new Date().getTime()/1000;
let today2 = Math.round(tempToday).toString();
205

let today = today2.toString();


console.log('it works!')
console.log(today)
firebase.database().ref().child('/smsQeue/').orderByChild('smssent').equalTo(today).once
("child_added",(snapshot)=>{
console.log(today2)
console.log('it works2!')
let key = snapshot.val().smsId;
let mobileNumber = snapshot.val().contact;
let da = snapshot.val().Dates;
let ti = snapshot.val().Times;
let na = snapshot.val().username;
const content1 = " Hi! "
const content2 = " you have an appointment on "
const content3 = " Please Verify your appointment by replying on
this number (09560579254) before 7:30 AM on the said date"
const data = {"to":mobileNumber, "text":content1 + na +"\n" +content2 + da + " "
+ ti +"...\n" +content3 +"\n\n Thank You!!", "platform":"web"};
console.log('it works4!')
fetch('https://api.checkmobi.com/v1/sms/send', {
body: JSON.stringify(data), // must match 'Content-Type' header
cache: 'no-cache', // *default, no-cache, reload, force-cache, only-if-cached
credentials: 'same-origin', // include, same-origin, *omit
headers: {
'user-agent': 'Mozilla/4.0 MDN Example',
'content-type': 'application/json',
'Authorization': 'CF081C39-CC6B-411F-9C96-83D4E0A0FB08'
},
method: 'POST', // *GET, POST, PUT, DELETE, etc.
mode: 'cors', // no-cors, cors, *same-origin
redirect: 'follow', // manual, *follow, error
referrer: 'no-referrer', // *client, no-referrer
})
.then(response => {
firebase.database().ref().child('/smsQeue/' + key).update({ smsstatus: true});
clearInterval(repeater)
}) // parses response to JSON
console.log('it works3!')
}) ;
}
function getData2(){
let tempToday = new Date().getTime()/1000;
let today3 = Math.round(tempToday).toString();
let today = today3.toString();
206

console.log('it works!')
console.log(today)
firebase.database().ref().child('/smsQeue/').orderByChild('smssent').equalTo(toda
y).once("child_added",(snapshot)=>{
console.log(today3)
console.log('it works2!')
let key = snapshot.val().smsId;
let mobileNumber = snapshot.val().contact;
let con = snapshot.val().Confirmation;
let na = snapshot.val().username;
const content1 = " Hi! "
const data = {"to":mobileNumber, "text":content1 + na +"\n" +"Your Appointment
has been " +con +"!!", "platform":"web"};
console.log('it works4!')
fetch('https://api.checkmobi.com/v1/sms/send', {
body: JSON.stringify(data), // must match 'Content-Type' header
cache: 'no-cache', // *default, no-cache, reload, force-cache, only-if-cached
credentials: 'same-origin', // include, same-origin, *omit
headers: {
'user-agent': 'Mozilla/4.0 MDN Example',
'content-type': 'application/json',
'Authorization': 'CF081C39-CC6B-411F-9C96-83D4E0A0FB08'
},
method: 'POST', // *GET, POST, PUT, DELETE, etc.
mode: 'cors', // no-cors, cors, *same-origin
redirect: 'follow', // manual, *follow, error
referrer: 'no-referrer', // *client, no-referrer
})
.then(response => {
firebase.database().ref().child('/smsQeue/' + key).update({ smsstatus2: true});
clearInterval(repeater)
}) // parses response to JSON
console.log('it works3!')
}) ;
}
function filterIfSent() {
firebase.database().ref().child('/smsQeue/').orderByChild('smsstatus').equalTo("false").o
nce("child_added",(snapshot)=>{
console.log('it works!')
getData();
}) ;
}
207

function filterIfSent2(){
firebase.database().ref().child('/smsQeue/').orderByChild('smsstatus2').equalTo("f
alse").once("child_added",(snapshot)=>{
getData2();
});}})
WALKIN
<!DOCTYPE html>
<html lang="en">
<head>
<title>Page Title</title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<script type="text/javascript" src="https://gc.kis.scr.kaspersky-labs.com/1B74BD89-
2A22-4B93-B451-1C9E1052A0EC/main.js" charset="UTF-8"></script></head>
<meta content='width=device-width, initial-scale=1.0, maximum-scale=1.0, user-
scalable=0' name='viewport' />
<meta name="viewport" content="width=device-width" />
<!-- Bootstrap core CSS -->
<link href="assets1/css/bootstrap.min.css" rel="stylesheet" />
<!-- Animation library for notifications -->
<link href="assets1/css/animate.min.css" rel="stylesheet"/>
<!-- Light Bootstrap Table core CSS -->
<link href="assets1/css/light-bootstrap-dashboard.css" rel="stylesheet"/>
<!-- CSS for Demo Purpose, don't include it in your project -->
<link href="assets1/css/demo.css" rel="stylesheet" />
<!-- Fonts and icons -->
<link href="http://maxcdn.bootstrapcdn.com/font-awesome/4.2.0/css/font-
awesome.min.css" rel="stylesheet">
<link href='http://fonts.googleapis.com/css?family=Roboto:400,700,300' rel='stylesheet'
type='text/css'>
<link href="assets1/css/pe-icon-7-stroke.css" rel="stylesheet" />
<style>
*{
box-sizing: border-box;
}
/* Style the body */
body {
font-family: Arial, Helvetica, sans-serif;
margin: 0;
}
/* Header/logo Title */
/* .header {
padding: 80px;
text-align: center;
208

background: #1abc9c;
color: white;
} */
/* Increase the font size of the heading */
.header h1 {
font-size: 40px;
}
/* Style the top navigation bar */
.navbar {
overflow: hidden;
background-color: rgb(70, 103, 248);
}
/* Style the navigation bar links */
.navbar a {
float: left;
display: block;
color: white;
text-align: center;
padding: 14px 20px;
text-decoration: none;
}
/* Right-aligned link */
.navbar a.right {
float: right;
}
/* Change color on hover */
.navbar a:hover {
background-color: #ddd;
color: black;
}
/* Column container */
.row {
display: -ms-flexbox; /* IE10 */
display: flex;
-ms-flex-wrap: wrap; /* IE10 */
flex-wrap: wrap;
}
/* Create two unequal columns that sits next to each other */
/* Sidebar/left column */
.side {
-ms-flex: 30%; /* IE10 */
flex: 30%;
background-color: #7F7FFF;
padding: 20px;
209

height: 600px;
margin-top: -20px;
}
/* Main column */
.main {
-ms-flex: 70%; /* IE10 */
flex: 70%;
background-color: white;
padding: 20px;
}
/* Fake image, just for this example */
.fakeimg {
background-color: #aaa;
width: 100%;
padding: 20px;
}
/* Footer */
.footer {
padding: 1px;
text-align: center;
background: #ddd;
}
/* Responsive layout - when the screen is less than 700px wide, make the two columns
stack on top of each other instead of next to each other */
@media screen and (max-width: 700px) {
.row {
flex-direction: column;
}
}
/* Responsive layout - when the screen is less than 400px wide, make the navigation
links stack on top of each other instead of next to each other */
@media screen and (max-width: 400px) {
.navbar a {
float: none;
width: 100%;
}
}
</style>
</head>
<body>
<script src="assets/jquery-3.1.1.min.js"></script>
<link href="assets/bootstrap-3.3.7-dist/css/bootstrap.min.css" rel="stylesheet" />
<script src="js/firebase.js"></script>
<!-- <div class="header">
210

<h1>My Website</h1>
<p>A website created by me.</p>
</div> -->
<div class="navbar">
<a href="#">Welcome</a>
<!-- <a href="" class="right">Logout</a> -->
</div>
<div class="row">
<div class="side">
<h3>Search Available time before making Appointment: </h3> <br> <input type="text"
id="txtId3" placeholder="yyyy-mm-dd"/> <p id="demo"></p>
<button id="btnReadAll" type="button">Search</button>
<input type="button" value="Make Appointment"
onclick="window.location.href='walkinclient.html'" />
<br><br>
<div>
</div>
<!-- <p>Some text about me in culpa qui officia deserunt mollit anim..</p>
<h3>More Text</h3>
<p>Lorem ipsum dolor sit ame.</p> -->
<!-- <div class="fakeimg" style="height:60px;">Image</div><br>
<div class="fakeimg" style="height:60px;">Image</div><br>
<div class="fakeimg" style="height:60px;">Image</div> -->
</div class="fdiv">
<div class="main">
<!-- <h5>Title description, Dec 7, 2017</h5> -->
<div>
<h3>Appointment: </h3>
<br>
<table class="table table-striped" border="1" >
<thead>
<tr>
<th>Time</th>
<th>Status</th>
</tr>
</thead>
<tbody id="lstTable"></tbody>
</table>
</div>
<!-- <p>Some text..</p>
<p>Sunt in culpa qui officia deserunt mollit anim id est laborum consectetur adipiscing
elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad
minim veniam, quis nostrud exercitation ullamco.</p>
<br>
211

<h2>TITLE HEADING</h2>
<h5>Title description, Sep 2, 2017</h5>
<div class="fakeimg" style="height:200px;">Image</div>
<p>Some text..</p>
<p>Sunt in culpa qui officia deserunt mollit anim id est laborum consectetur adipiscing
elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad
minim veniam, quis nostrud exercitation ullamco.</p> -->
</div>
</div>
<script>
// Initialize Firebase
var config = {
apiKey: "AIzaSyAOkE0UCIazyFPL_bDI_xoqI2wKIgWJfqA",
authDomain: "thesis-59cd0.firebaseapp.com",
databaseURL: "https://thesis-59cd0.firebaseio.com",
projectId: "thesis-59cd0",
storageBucket: "thesis-59cd0.appspot.com",
messagingSenderId: "659969777877"
};
firebase.initializeApp(config);
function readAllData() {
var data1 = String($('#txtId3').val())
var ref = firebase.database().ref().child("admin/" + data1);
ref.on("value", function (snapshot) {
snapshot.forEach(function (childSnapshot) {
// key will be "ada" the first time and "alan" the second time
var key = childSnapshot.key;
// childData will be the actual contents of the child
var childData = childSnapshot.val();
var tr = '<tr>' +
'<td>' + childData.Time+ '</td>' +
'<td>' + childData.status + '</td>' +
'</tr>';
$('#lstTable').append(tr);
console.log(snapshot.val());
$("demo").delay(4000).fadeIn();
var x =
document.getElementById("lstTable").rows.length;
document.getElementById("demo").innerHTML =
"There are " + x + " transaction for these date.";
});
}, function (error) {
console.log("Error: " + error.code);
});
212

}
function updateData(userId,name, time) {
// A post entry.
var postData = {
Time: time,
};
var personRef =
firebase.database().ref().child("admin").child(userId).child(name);
personRef.once('value', function (snapshot) {
if (snapshot.val() === null) {
/* does not exist */
alert('does not exist');
} else {
personRef.update(postData);
alert("successfully update!! ");
$("#lstTable > tr").remove();
readAllData();
}
});
}
function deleteData(userId, name) {
var personRef =
firebase.database().ref().child("admin").child(userId).child(name);
personRef.once('value', function (snapshot) {
if (snapshot.val() === null) {
/* does not exist */
alert('does not exist');
} else {
personRef.remove();
alert("successfully Deleted!! ");
$("#lstTable > tr").remove();
readAllData();
}
});
}
$('#btnReadAll').on('click', function () {
readAllData();
});
$('#btnUpdate').on('click', function () {
var id = $('#txtId2').val();
var name = $('#Name').val();
var time = $('#Time').val();
document.getElementById("txtId2").value = "";
document.getElementById("Name").value = "";
213

document.getElementById("Time").value = "";
updateData(id,name, time);
});
$('#btnDelete').on('click', function () {

var id = $('#txtId2').val();
var name = $('#Name').val();
var time = $('#Time').val();
document.getElementById("txtId2").value = "";
document.getElementById("Name").value = "";
document.getElementById("Time").value = "";
deleteData(id,name, time);
});
</script>
</body>
</html>
WALKIN CLIENT
<!DOCTYPE html>
<html lang="en">
<head>
<title>Page Title</title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"
type="text/javascript"></script>
</head>
<style>
*{
box-sizing: border-box;
}
/* Style the body */
body {
font-family: Arial, Helvetica, sans-serif;
margin: 0;
}
/* Header/logo Title */
.header {
padding: 80px;
text-align: center;
background: #1abc9c;
color: white;
}
/* Increase the font size of the heading */
.header h1 {
214

font-size: 40px;
}
/* Style the top navigation bar */
.navbar {
overflow: hidden;
background-color: rgb(70, 103, 248);
}
/* Style the navigation bar links */
.navbar a {
float: left;
display: block;
color: white;
text-align: center;
padding: 14px 20px;
text-decoration: none;
}
/* Right-aligned link */
.navbar a.right {
float: right;
}
/* Change color on hover */
.navbar a:hover {
background-color: #ddd;
color: black;
}
/* Column container */
.row {
display: -ms-flexbox; /* IE10 */
display: flex;
-ms-flex-wrap: wrap; /* IE10 */
flex-wrap: wrap;
}

/* Create two unequal columns that sits next to each other */


/* Sidebar/left column */
.side {
-ms-flex: 30%; /* IE10 */
flex: 30%;
background-color: #f1f1f1;
padding: 20px;
height: 680px;
}
/* Main column */
.main {
215

-ms-flex: 70%; /* IE10 */


flex: 70%;
background-color: white;
padding: 20px;
}
/* Fake image, just for this example */
.fakeimg {
background-color: #aaa;
width: 100%;
padding: 20px;
}
.fdiv {
width: 100%;
height: 100%;
}
/* Footer */
.footer {
padding: .1px;
text-align: center;
background: #ddd;
}
/* Responsive layout - when the screen is less than 700px wide, make the two columns
stack on top of each other instead of next to each other */
@media screen and (max-width: 700px) {
.row {
flex-direction: column;
}
}

/* Responsive layout - when the screen is less than 400px wide, make the navigation
links stack on top of each other instead of next to each other */
@media screen and (max-width: 400px) {
.navbar a {
float: none;
width: 100%;
}
}
</style>
<body>
<div>
<div class="navbar">
<a href="walkin.html">Home</a>
<a href="SearchTime.html">View Available Time</a>
</div>
216

<div class="row">
<div class="side">
<h3>Make Appointment:</h3>
<label for="recipient-name" class="control-label">First Name:</label><br>
<input type="text" class="form-control" id="fname">
<br>
<label for="recipient-name" class="control-label">Last Name:</label><br>
<input type="text" class="form-control" id="lname">
<br>
<label for="recipient-name" class="control-label" >Contact Number:</label><br>
<input type="text" class="form-control" placeholder="(+63*********)" id="con">
<br>
<label for="recipient-name" class="control-label">Weight:</label><br>
<input type="text" class="form-control" id="w">
<br>
<label for="recipient-name" class="control-label">Height:</label><br>
<input type="text" class="form-control" id="h">
<br>
<label for="recipient-name" class="control-label">Temperature:</label><br>
<input type="text" class="form-control" id="temp">
<br>
<label for="recipient-name" class="control-label">Blood Pressure:</label><br>
<input type="text" class="form-control" id="bp">
<p id="send"></p>
<p id="ids"></p>
<br><br>
<div><label>Date:</label><br><br>
<input type="date" id="date" min="2018-01-01">
<br><br>
<label>Time:</label> <br><br>
<select id="btime">
<option value="">Select...</option>
<option value="08-09">08-09</option>
<option value="09-10">09-10</option>
<option value="10-11">10-11</option>
<option value="11-12">11-12</option>
<option value="01-02">01-02</option>
<option value="02-03">02-03</option>
<option value="03-04">03-04</option>
<option value="04-05">04-05</option>
</select>
<br><br>
<label for="recipient-name" class="control-label">Additional
Message:</label><br>
217

<textarea class="form-control" rows="5" id="msg" name="message"


placeholder="Message"></textarea>
<br><br>

<button id="button" value="Get Value Using Class" >Submit</button>


<input type="hidden" id="chk">
</div>
<!-- <p>Some text about me in culpa qui officia deserunt mollit anim..</p>
<h3>More Text</h3>
<p>Lorem ipsum dolor sit ame.</p> -->
<!-- <div class="fakeimg" style="height:60px;">Image</div><br>
<div class="fakeimg" style="height:60px;">Image</div><br>
<div class="fakeimg" style="height:60px;">Image</div> -->
</div class="fdiv">
<div class="main">
<h2>Symptoms</h2>
<!-- <h5>Title description, Dec 7, 2017</h5> -->
<div >
<table class="table table-hover tm-table-small tm-product-table">
<div id="checkboxlist">
<thead>
<tr>
<th scope="col">&nbsp;</th>
<th scope="col"></th>
<th scope="col"></th>
<th scope="col">&nbsp;</th>
</tr>
</thead>
<tbody>
<tr>
<th scope="row"><input type="checkbox" class="chk" value="Bloating"/></th>
<td class="tm-product-name">Bloating</td>
<th scope="row"><input type="checkbox" class="chk" value="Chest
Pain"/></th>
<td class="tm-product-name">Chest Pain</td>
<td>
<a href="#" class="tm-product-delete-link">
<i class="far fa-trash-alt tm-product-delete-icon"></i>
</a>
</td>
</tr>
<tr>
<th scope="row"><input type="checkbox" class="chk" value="Diarrhea"/></th>
<td class="tm-product-name">Diarrhea</td>
218

<th scope="row"><input type="checkbox" class="chk" value="Back


Pain"/></th>
<td class="tm-product-name">Back Pain</td>
<td>
<a href="#" class="tm-product-delete-link">
<i class="far fa-trash-alt tm-product-delete-icon"></i>
</a>
</td>
</tr>
<tr>
<th scope="row"><input type="checkbox" class="chk" value="Fatigue"/></th>
<td class="tm-product-name">Fatigue</td>
<th scope="row"><input type="checkbox" class="chk""
value="Allergies"/></th>
<td class="tm-product-name">Allergies</td>
<td>
<a href="#" class="tm-product-delete-link">
<i class="far fa-trash-alt tm-product-delete-icon"></i>
</a>
</td>
</tr>
<tr>
<th scope="row"><input type="checkbox" class="chk"
value="Headache"/></th>
<td class="tm-product-name">Headache</td>
<th scope="row"><input type="checkbox" class="chk"
value="Constipation"/></th>
<td class="tm-product-name">Constipation</td>
<td>
<a href="#" class="tm-product-delete-link">
<i class="far fa-trash-alt tm-product-delete-icon"></i>
</a>
</td>
</tr>
<tr>
<th scope="row"><input type="checkbox" class="chk" value="Muscle
Cramp"/></th>
<td class="tm-product-name">Muscle Cramp</td>
<th scope="row"><input type="checkbox" class="chk" value="Stomach
Ache/Abdominal Pain"/></th>
<td class="tm-product-name">Stomach Ache/Abdominal Pain</td>
<td>
<a href="#" class="tm-product-delete-link">
<i class="far fa-trash-alt tm-product-delete-icon"></i>
219

</a>
</td>
</tr>
<tr>
<th scope="row"><input type="checkbox" class="chk" value="Nausea"/></th>
<td class="tm-product-name">Nausea</td>
<th scope="row"><input type="checkbox" class="chk" value="Blurry
Vision"/></th>
<td class="tm-product-name">Blurry Vision</td>
<td>
<a href="#" class="tm-product-delete-link">
<i class="far fa-trash-alt tm-product-delete-icon"></i>
</a>
</td>
</tr>
<tr>
<th scope="row"><input type="checkbox" class="chk" value="Throat
Irritation"/></th>
<td class="tm-product-name">Throat Irritation</td>
<th scope="row"><input type="checkbox"class="chk" value="Itching"/></th>
<td class="tm-product-name">Itching</td>
<td>
<a href="#" class="tm-product-delete-link">
<i class="far fa-trash-alt tm-product-delete-icon"></i>
</a>
</td>
</tr>
<tr>
<th scope="row"><input type="checkbox" class="chk" value="Cough"/></th>
<td class="tm-product-name">Cough</td>
</tr>
<tr>
<th scope="row"><input type="checkbox" class="chk"
value="Dizziness"/></th>
<td class="tm-product-name">Dizziness</td>
<td>
<a href="#" class="tm-product-delete-link">
<i class="far fa-trash-alt tm-product-delete-icon"></i>
</a>
</td>
</tr>
<tr>
<th scope="row"><input type="checkbox" class="chk" value="Fever"/></th>
<td class="tm-product-name">Fever</td>
220

<td>
<a href="#" class="tm-product-delete-link">
<i class="far fa-trash-alt tm-product-delete-icon"></i>
</a>
</td>
</tr>
<tr>
<th scope="row"><input type="checkbox" class="chk" value="Nasal
Congestion/Runny Nose"/></th>
<td class="tm-product-name">Nasal Congestion/Runny Nose</td>
<td>
<a href="#" class="tm-product-delete-link">
<i class="far fa-trash-alt tm-product-delete-icon"></i>
</a>
</td>
</tr>
<!-- <tr>
<td class="tm-product-name">
<textarea class="form-control" rows="5" id="msg" name="message"
placeholder="Others"></textarea></td>
<td>
<a href="#" class="tm-product-delete-link">
<i class="far fa-trash-alt tm-product-delete-icon"></i>
</a>
</td>
</tr> -->
</tbody>
</div>
</table>
</div>
<!-- <p>Some text..</p>
<p>Sunt in culpa qui officia deserunt mollit anim id est laborum consectetur adipiscing
elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad
minim veniam, quis nostrud exercitation ullamco.</p>
<br>
<h2>TITLE HEADING</h2>
<h5>Title description, Sep 2, 2017</h5> -->
<!-- <div class="fakeimg" style="height:200px;">Image</div> -->
<!-- <p>Some text..</p>
<p>Sunt in culpa qui officia deserunt mollit anim id est laborum consectetur adipiscing
elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad
minim veniam, quis nostrud exercitation ullamco.</p> -->
</div>
</div>
221

<div class="footer">
<h5>Copyright 2019</h5>
</div>
</div>
<script src="https://www.gstatic.com/firebasejs/4.7.0/firebase.js">
</script>
<script>
// Initialize Firebase
var config = {
apiKey: "AIzaSyAOkE0UCIazyFPL_bDI_xoqI2wKIgWJfqA",
authDomain: "thesis-59cd0.firebaseapp.com",
databaseURL: "https://thesis-59cd0.firebaseio.com",
projectId: "thesis-59cd0",
storageBucket: "thesis-59cd0.appspot.com",
messagingSenderId: "659969777877"
};
firebase.initializeApp(config);
var dbRef = firebase.database();
var dbRefid = dbRef.ref().push().key;
</script>
<script>
var tr2;
$(document).ready(function () {
/* Get the checkboxes values based on the class attached to each check box */
$("#button").click(function() {
getValueUsingClass();
});
/* Get the checkboxes values based on the parent div id */
});
function getValueUsingClass(){
/* declare an checkbox array */
var chkArray = [];
var date1 = String($('#date').val())
var time1 = String($('#date').val())
var ref = firebase.database().ref().child("admin/" + date1);
ref.on("value", function (snapshot) {
snapshot.forEach(function (childSnapshot) {
// childData will be the actual contents of the child
var childData = childSnapshot.val();
var tr = childData.Time
});
}, function (error) {
console.log("Error: " + error.code);
});
222

/* look for all checkboes that have a class 'chk' attached to it and check if it was
checked */
$(".chk:checked").each(function() {
chkArray.push($(this).val());
});
/* we join the array separated by the comma */
var selected;
selected = chkArray.join(',') ;
/* check if there is selected checkboxes, by default the length is 1 as it contains
one single comma */
if(selected.length > 0){
let tempToday = new Date().getTime()/1000+20;
let today2 = Math.round(tempToday).toString();
let today = today2.toString();
document.getElementById("send").value = today;
document.getElementById("chk").value = selected;
var xy = dbRefid;
document.getElementById("ids").value = xy;
myclick();
alert("You have successfully Added!! ");
window.location.reload();
}else{
alert("Please at least check one of the checkbox");
}
}
</script>
<script src="index.js"></script>
<script src="smssched.js"></script>
</body>
</html>
223

Appendix H

CODES (MICROSOFT VISUAL STUDIO & ARDUINO IDE)

using System;
224

using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO.Ports;
namespace adruino
{
public partial class Form1 : Form
{
DataTable dats = new DataTable();
DateTime arraival;
DateTime dtnow;
int i;
private SerialPort myport;
public Form1()
{
InitializeComponent();
adui();
}
private void adui()
{
myport = new SerialPort();
myport.BaudRate = 9600;
myport.PortName = "COM3";
myport.Open();
}
private void Form1_Load(object sender, EventArgs e)
{
arraival = DateTime.Now;
DateTime.Now.ToString();
aratx.Text = arraival.ToString();
}
private void dataGridView1_CellContentClick(object sender,
DataGridViewCellEventArgs e)
{
try
{
int ind = e.RowIndex;
DataGridViewRow selectedRows = dataGridView1.Rows[ind];
nametx.Text = selectedRows.Cells[0].Value.ToString();
label4.Text = selectedRows.Cells[1].Value.ToString();
225

leatx.Text = selectedRows.Cells[2].Value.ToString();
}
catch { }
}
private void pictureBox1_Click(object sender, EventArgs e)
{
try
{
if (nametx.Text != "")
{
if (leatx.Text == "")
{
arraival = DateTime.Now;
DateTime.Now.ToString();
aratx.Text = arraival.ToString();
dataGridView1.Rows.Add(nametx.Text, label2.Text, leatx.Text);
nametx.Text = "";
aratx.Text = "";
leatx.Text = "";
label2.Text = (int.Parse(label2.Text) + int.Parse(label3.Text)).ToString();
}
}
}
catch { }
}
private void pictureBox2_Click(object sender, EventArgs e)
{
try
{
if (nametx.Text != "")
{
dtnow = DateTime.Now;
leatx.Text = dtnow.ToString();
int rows = dataGridView1.CurrentCell.RowIndex;
dataGridView1.Rows.RemoveAt(rows);

arraival = DateTime.Now;
DateTime.Now.ToString();
aratx.Text = arraival.ToString();
dataGridView1.Rows.Add(nametx.Text, label4.Text, leatx.Text);
foreach (DataGridViewRow Myrow1 in dataGridView1.Rows)
if (Myrow1.Cells[2].Value.ToString() != "")
{
Myrow1.DefaultCellStyle.BackColor = Color.Green;
226

}
nametx.Text = "";
aratx.Text = "";
leatx.Text = "";
myport.WriteLine("N");
}
}
catch { }
}
private void pictureBox3_Click(object sender, EventArgs e)
{
try
{
if (nametx.Text != "")
{
dtnow = DateTime.Now;
leatx.Text = dtnow.ToString();
int rows = dataGridView1.CurrentCell.RowIndex;
dataGridView1.Rows.RemoveAt(rows);
}
}
catch { }
}
}
}
char dat;
int buzzer = 11;
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
pinMode(buzzer, OUTPUT);
}
void loop() {
// put your main code here, to run repeatedly:
dat = Serial.read();
if(dat == 'N'){
tone(buzzer, 500);
delay(1500);
noTone(buzzer);
delay(1500);
}
dat = Serial.read();
if(dat == 'F'){
227

Appendix I

DESIGN IMPLEMENTATION DOCUMENTATION

A. Signed Documents
228

Before the implementation and gathering of data started, the group presented letters

of request like the one shown below to a number of clinics in Iloilo City to explain their

intention and inform the clinics regarding the data the group intends to gather and lastly,

for the clinic to formally approve the deployment of the project.

Shown above is the letter signed by the doctor in Salapare Medical Clinic.
229

The letter above is signed by the Medical Assistant of Dr. Zenia M. Quilantang ,

the doctor of Room 201, Medical Arts Building, Iloilo Mission Hospital.

The letter above is signed by the doctor of Room 215 Medical Arts Building, Iloilo

Mission Hospital.
230

B. Pictures Taken At The Medical Institutions

Room 215 of the Medical Arts Building, Iloilo Mission Hospital.

The Medical Assistant of Room 215 trying the Medical Appointment Scheduler

System.
231

The Medical Assistant of Room 201 trying the Medical Appointment Scheduler

System.

The Medical Assistant of Room 215 using the system to register the first patient.
232

The Salapare Medical Clinic.


233

APPENDIX J

RESEARCHER’S VITAE
234

ANNE KATHRINE A. CHONG

Anne Kathrine Agujetas Chong was born on the 2nd

of October 1997 at Tiongbi Hospital, Bacolod City, Negros

Occidental. Her parents are the ever beautiful and

creative, Mrs. Marlene Agujetas Chong and the handsome

genius, Engr. Ramon Cajurao Chong Jr. She is the elder

of the two sisters. Her younger sister just graduated from

Senior High school last April 4, 2019 from Ateneo de Iloilo

and is also planning to pursue a degree in Engineering. Her family is an adventurous

and athletic bunch. They love to jog regularly, even with the presence of rain and

lightning. Her family loves to travel together and despite his incapacity to swim, her dad

still agreed to go snorkelling in the middle of sea. They have three dogs that they love

dearly but Bolt, the Belgian Malinois, is closest to Kathrine’s heart. Probably because

they both hate kids.

She learned to read, write and speak at a very young age; hence, she was

supposed to start her Nursery Education at 3 yrs. old because of her potential but the

nursery school rejected her because she needed more time to play. So, she got more

involved with the outside world; chasing crabs and collecting shells by the seashore,

squishing caterpillars, watching Teletubbies and crying when it ends, secretly giving her

veggies to her precious dog, picking fights with her playmates , beheading dragonflies

and getting hospitalized because of too much dirty ice cream. As a kid, she also loved to

collect yearly issues of The Almanac, sponsored by her loving mother. Those were the

best days of her life.


235

She believes that she is the granddaughter of Thor. Every time the thunder rolls,

as a kid, she would say, “Grandpa is here.” She has also seen things that are invisible to

the human eye but that ability disappeared when her family moved to Iloilo City.

After moving to Iloilo from Bacolod City, she became a true blue Centralian. She

pursued her primary education in Central Philippine University while joining various art,

writing, and speaking competitions. She also spent her secondary education in Central

Philippine University and there she learned the harsh realities about life. Before going to

high school she always thought that the world was a floating bubble filled with unicorns,

rainbows, gummy bears and all things magical. But that was not the case. She learned

that meeting a lot of new people will either make or break you; thus, she dealt with this

social crisis with the help of Anime and of course her family. She believes that nothing

will go wrong as long as she is within the comforts of her loving home.

She took up Bachelor of Science in Electronics Engineering for her tertiary

education. She almost wanted to drop out of school because of her swimming subject.

She cried all night while telling her parents that she cannot swim and that she does not

want to go to school anymore. As if by chance, they met a swimming instructor at the

Sarabia Manor and she began taking lessons every day while studying her Engineering

subjects. To everyone’s delight, she absorbed the lessons like a sponge and by the end

of the sessions, she can perform the different strokes by heart. As a reward for her hard

work, she received a shining 1.0 in her swimming subject.

Now, she is on her way to finishing her tertiary education and she really hopes

that she will see her pot of gold at the end of the rainbow.
236

MARC VERGEL O. FUENTES

Fuentes, Marc Vergel O., was born on the 13th of

January 1998. He lives in Nasugban, Santa Barbara, Iloilo.

He is the elder child. He is the son of Mr. Anthony A.

Fuentes and Mrs. Leoncia E. Oscares-Fuentes. He is

called Mac Mac by his family, relatives, and others or

Vegilio by his Parents.

He is a handsome, intelligent, lively and curious

person. He loves reading newspapers and old magazines like Times, NatGeo,

Smitsonian, and many more. He also loves listening to foreign songs other than English

songs. He also loves watching movies especially Anime and action movies.

He also does experiments on electronic devices especially on mobile devices.

Making mechanical prototypes using a clay toy. He is also loves playing offline games

like Mine craft. When boredom strikes, he does some chores in his neighbours’ house

like sweeping their backyard and feeding their fowls and pets.

Marc Vergel studied at different primary schools and finished his primary at

Cadagmayan Elementary School, and had his secondary at Santa Barbara National

Comprehensive High School.


237

FHER NOAH N. LEONGSON

Fher Noah Leongson was born on October 23,

1997 in Caloocan City, Manila and grew up in Miagao,

Iloilo. He is the eldest son among the five children of

Fernando Leongson and Negresenia Leongson.

He finished his elementary education at Ticdalan

Elementary School, Brgy. Ticdalan, Miagao as

valedictorian. He was a consistent quizzer in Science and

Math Quiz Bee since Grade 3. He was also an active member of different clubs in his

school.

He finished his secondary education at St. Louise de Marillac School of Miagao,

Miagao, Iloilo with honors. He was the President of the Science Club in their school.

Also, he is a feature editor of their student publication, the SLMSM Newsletter. He joins

a lot of press conference during his high school years. He is also active when it comes to

extracurricular activities inside and outside of his school.

He is currently finishing his bachelor’s degree in Electronics Engineering at

Central Philippine University. He was a consistent dean’s lister in his first and second

year in college. He is the Vice Governor for External Affairs of the Institute of Electronics

Engineers of the Philippines Western Visayas Chapter Engineering Student Council

(IECEP WVC ESC). He is also the Secretary of the Institute of Electronics Engineers of

the Philippines Central Philippine University Student Chapter (IECEP CPU-SC). He is

also the News Writer of the engineering student publication, The CPU Engineer. He is

also an active member of the Koalisyon Political Organization and also the Secretary of

the 14th Parliament of Central Philippine University Republic (CPUR). He served as


238

Board Member in the Engineering Student Council (ESC) for two years handling the

Ministry of Scholars and Work Students and Ministry of Outreach.

He attended various trainings and seminars such as the CPUR Leadership

Training Seminar for three consecutive years from 2016-2018. Also, he attended the

IECEP WVC Leadership Training Seminar held at University of Antique, Sibalom

Antique. He also attended Journalism Workshop such as the College Press Conference

2015 held at Iloilo Grand Hotel.


239

STEPHANIE S. SIOCO

Stephanie Serilla Sioco was born on May 20, 1997

in Negros Occidental, but she and her family now live in

Dulonan, Arevalo, Iloilo City. She is the only child of Mr.

Armando S. Sioco and Mrs. Esther S. Sioco.

Stephanie took her Elementary Education at Iloilo

SDA Elementary School and her Secondary Education at

RiverView Adventist Academy, Inc. She is a consistent

honor student. Currently, she is a fifth-year student at Central Philippine University

(CPU), taking up her Bachelor's degree in Electronics and Communications Engineering

(ECE).

"Pie," as what her family and friends call her, is warm and friendly and can

socially interact with so much ease. She enjoys the company of a group of people, and

is highly effective in communicating and sharing connection with the crowd. She is a

free-spirited, adventurous, vocal and honest person. She loves to travel and experience

new things.

She is also an active youth member of the Seventh - day Adventist church. Since

Fourth Grade, she has been actively participating in school and church events,

especially campings, that equipped her with set of skills.

Becoming an engineer may not have been her personal career choice at first, but

she learned to cherish and love the course she is taking. She wanted to take up

Bachelor of Science in Marine Transportation but her parents did not allow her due to

her heart condition. During her high school years, she finds memorizing difficult, and

would prefer Math than Science. So she decided to take Electronics Engineering as

suggested by a friend of her father's whose daughter is also an ECE graduate at CPU.
240

Though she may experience rough times, Stephanie is a fighter who refuses to give up

on her dreams. She believes that with the help of her family and the Lord God Almighty,

she will be able to reach her goals.


241

RODNEY L. SUPERATUM

Superatum, Rodney L. was born last February 19,

1997. He is someone who would listen to your rants about

anything. He is a happy person so you will see him

smiling. He can be someone you can depend on but for

others, he is the responsible one. He would sacrifice time

for a friend in need of help as along as he is capable. You

can consider him as a sentimental friend and someone

who morally supports you in every endeavor. He is an adventurer. He likes to travel to

travel different places, explore what the world has to offer, and take pictures along the

way.

To his family, He will always will be caring and loving. He would sacrifice and

give his time for his family. H just love spending time and creating memories as a family.

His parents are preserving and diligent and I guess, these were passed on to him as he

was growing up. He loves to cook for his family once in a while. He believes food

connects us all. Most kids are afraid to show affection to their parents, but the way I see

is that you get only one lifetime of it. So, show your parents or siblings how much you

love the everyday.

He was very active student ever since he was in high school. Joined a lot of extra

co-curricular activities. Doing Research competition in his younger years. Been to a lot of

camping in his Boy Scout years. Joined a lot of organization. In his college years he

thought this time it is about academics but he was wrong. This is just another adventure

for him.
242
243
244

Вам также может понравиться