Академический Документы
Профессиональный Документы
Культура Документы
S)
Presented to
In Partial Fulfillment
By
Sioco, Stephanie S.
Superatum, Rodney L.
April 2019
11
ACKNOWLEDGMENT
The group would like to thank the following persons for all the utmost
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
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
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
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
ABSTRACT .......................................................................................................... xv
CHAPTER
I INTRODUCTION......................................................................................... 1
General Objective........................................................................... 7
Microcontrollers .............................................................................. 12
Buzzer ............................................................................................ 13
Software ......................................................................................... 14
13
Implementation ...................................................................... 30
Synthesis ................................................................................................... 35
Design Constraints..................................................................................... 43
Testing Procedure...................................................................................... 53
FIGURE PAGE
3. Arduino Micro....................................................................................... 13
Project ....................................................................................... 28
of Appointment ....................................................................... 46
24 List of charges per message including the number of the recipient ..... 72
54 Result of Password Strength Test at with only One Character ............ 102
19
100 First Result for No. 5 Functionality Criteria (Admin viewing number
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
List of Tables
TABLE PAGE
4 Transmission speed of the first and second message received by user .... 54
6 Synchronization test for the data of user, admin and database ................. 55
Scheduled Date............................................................................. 56
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
ABSTRACT
This study focused on the appointment scheduling between hospitals and clinics of
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
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
CHAPTER I
INTRODUCTION
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
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
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
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
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
introduced health technology assessment (HTA) in the early 2000s to examine current
health interventions and find evidence to guide policy, utilization, and reimbursement. As
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
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
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
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
Oche and H Adamu, the amount of time a patient waits to be seen is one factor which
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
Dong General Hospital by Nguyen indicates that the average waiting time for
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
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
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
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)
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
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
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
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
To address the issue, health centers have opened call centers to allow patients
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
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 -
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 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
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
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
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.
General Objectives
Specific Objectives
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.
a. Quality
b. Functionality
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
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
Medical Personnel. Inquiry about the patients regarding how they feel becomes
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
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
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
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
from patients to medical experts and not for self-diagnosis. It is limited to medical
the patients also had the means of connecting to the Internet to access the application.
instantly available, easy to transfer files from one user to another, and compatible with
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
CHAPTER II
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
and primary health care facilities. Hospitals are classified based on ownership as 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)
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).
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
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-
Related Technologies
Microcontrollers
Arduino Uno
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
(https://www.circuitspecialists.com/arduino_uno_r3.html).
Arduino Nano
board based on the ATmega328P microcontroller. It has more or less the same
power jack, and works with a Mini-B USB cable instead of a standard one
(Source: https://store.arduino.cc/usa/arduino-nano ).
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
(Source: https://store.arduino.cc/usa/arduino-micro )
Buzzer
devices, timers and confirmation of user input such as a mouse click or keystroke.
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
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
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
as <head>, <title>, <body>, <header>, <footer>, <article>, <section>, <p>, <div>, <span>, <img>
143
, <aside>, <audio>, <canvas>, <datalist>, <details>, <embed>, <nav>, <output>, <progress>, <vi
JavaScript
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
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.
(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
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
Visual Basic
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
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
(Source: https://www.webopedia.com/TERM/V/Visual_Basic.html).
Python
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
Python's simple, easy to learn syntax emphasizes readability and therefore reduces the
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
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
expressions, setting breakpoints, stepping through the code a line at a time, and so 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
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
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
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
(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
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
(Source: https://whatis.techtarget.com/definition/Nodejs).
ASP.NET
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
Basic.NET, JScript .NET and open-source languages like Python and Perl.
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.
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, 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
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
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
enable user authentication with email and password login stored with Firebase. Realtime
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.
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,
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
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
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
and uses pure Win32 API and STL which ensures a higher execution speed and smaller
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,
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
Related Studies
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’
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.
to saving costs. This means that it can save the budget of Thai government for serving
(https://www.researchgate.net/publication/276279059_Designing_Queuing_System_for_
Public_Hospitals_in_Thailand).
153
Ubolrat Wangrakdiskul, there are 4 types of queuing systems which are related to public
healthcare systems:
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
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
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.
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,
The Medical Appointment Scheduler System was designed using the principles
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
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-
education background, experience, gender, and reviews from other patients. Reduced
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.
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
IOM_quality.pdf).
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
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
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
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).
(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
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
(https://www.ncbi.nlm.nih.gov/books/NBK221227/).
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
appointment scheduling interface for making such appointments. As such, they support
permit off-line review and posting, permit access controls and virus protection, allow
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
(Source:https://patents.google.com/patent/US6345260B1/en?q=medical&q=scheduler&o
q=medical+scheduler).
envisioned and devised to simplify the programming of a reminder device and comprises
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
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
(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
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
wireless displays carried by patients at the medical examination site and by giving
(Source:https://patents.google.com/patent/US7080025B2/en?q=medical&q=scheduler).
requests. Requests include entry of patient data together with at least one of: procedure
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
(Source:https://patents.google.com/patent/US20070185733A1/en?q=medical&q=schedu
ler&oq=medical+scheduler&page=1).
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
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
the real-time mode, patients can directly interact with providers’ scheduling management
systems. Although the asynchronous Web-based appointment systems also use the
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
Figure 12. Impacts after implementing the Web-based appointment scheduling system
as gathered by Peng Zhao et al
163
Synthesis
microcontroller was readily available. The queuing part was made of this together with
JavaScript
Visual Basic
Phython
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
The backend of the web application is basically served as the brains behind the
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
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
Medical
Appointment
Scheduler System
166
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
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
community -based study, wherein, reminding the patient audio-visually the medication of
application of the system. It is a study, wherein, a computer system can manage all the
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
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
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
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
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
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
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
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
Design Criteria
170
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
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
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
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
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
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
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
(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
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
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
Administrator
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
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
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
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++
our computers and laptops. This software application is somewhat similar to the C++
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.
VB included a wide variety of visual tools, which may be used to create advanced
also included a variety of libraries, which are useful for creating object-oriented
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.
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
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
The remote control component was being controlled by the Arduino and sent a
Instrumentation
Stopwatch
A watch with a hand or a digital readout that can be started and stopped instantly
(www.yourdictionary.com/stopwatch).
This was used to measure the average time it takes for the patient to receive the
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.
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
qualities that define a quality software according to asq.org are: Functional suitability,
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
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
precise value in transmission speed can tell a lot about the quality of a software.
1 Android
2 iOS
3 Windows
183
Table 5 tested the capabilities of the system to work in commonly used operating
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
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
considering the length and complexity of the password. Thus, this is an important factor
condition was tested. If a condition was met, it was marked with (PASS). Otherwise,
(FAIL).
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
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 10 will test the restrictions and possible combinations of user account
quality.
186
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
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
Functionality
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
The functionality test has twelve numbers or parts. Each part was performed
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,
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
Parameters Analyzed
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.
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
CHAPTER IV
System Overview
following the design plan presented in the Methodology and was found to be functioning
accordingly.
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
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.
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,
which is accessible from all devices given that there is a fast or decent internet
Addressing of Constraints
Design constraints are parameters that set boundaries within which the system
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
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
data centres have extremely high security with guards patrolling the premises
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
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
Results of Design
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
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
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
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
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).
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
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,
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
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
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
After filling out the details needed, the client may select the desired time and date
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
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
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
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
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
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,
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
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.
Systems. This is the main purpose of making the system a web-based application and
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
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
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
Figure 54. Result of Password Strength Test at with only one character
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
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
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
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
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
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.
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
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
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
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
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
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
Service Providers.
application used by the system. It also indicates the charge per unit message and the
Functionality
Functionality testing was performed to ensure that every system function works
accordingly.
attempt
10 Pass
Total Percentage per 0% 0%
attempt 100%
Figure 100. 1st Result for No. 5 Functionality Criteria (Admin viewing number of
transactions)
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
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.
As seen in Figure 56, there were only 10 transactions left. This means that the
successfully deleted.
258
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
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
Through the course of the implementation, the group has gathered data such as
the number of patients and the average consultation time per clinic.
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
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
Table 58 shows the average time of consultation in Room 215 of the Medical Arts
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
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
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
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
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
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
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
Partially, the system has helped in the improving the appointment process; for,
not.
269
CHAPTER V
Summary
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
was sent directly to the patient and he/she could reply for confirmation or cancellation in
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
The system was proven to function as designed. With its corresponding design
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
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.
Recommendations
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
3. A two-way messaging system should be added so that the patient isn’t required
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
specializations.
also suggested for the system to determine the client’s location and suggest the
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.
DEFINITION OF TERMS
Administrator
Arduino
Browser
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
Display Monitor
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.
Health
A state of complete physical, mental, and social well-being, and not merely the
Health Care
being. This may be done with surgery, the administering of medicine, or other
organized for profit or not, which provides facilities with medical services, nursing
personal care services or directed care services and includes home health agenc
ies.
Interface
LGU
Local Government Units in the Philippines provide for a more responsive and
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
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
Phil Health
Programming Language
A special language that programmers use to develop software programs, scripts,
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
Server
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
Software
The programs and other operating information used by a computer.
Symptom
Typhus
An infectious disease caused by rickettsia, characterized by a purple rash,
headaches, fever, and usually delirium, and historically a cause of high mortality
Web-based
Is any program that is accessed over a network connection using HTTP, rather
Web-based Application
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
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
Appendix C
WORK SCHEDULE
154
WORK SCHEDULE
155
Appendix D
SPECIFICATION SHEET
156
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
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
Hardware Features:
Microcontroller ATmega328
Operating Voltage 5V
SRAM 2 KM (ATmega328)
Hardware
159
160
161
162
Appendix E
INSTRUCTION MANUAL
163
(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.
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.
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.
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
Confirmation/Cancellation
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.
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
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
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
https://www.ncbi.nlm.nih.gov/books/NBK2660/
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)
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
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
<!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;
} */
}
/* 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
<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;
} */
}
/* 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
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
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"> </th>
<th scope="col"></th>
<th scope="col"></th>
<th scope="col"> </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
<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
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
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);
'<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
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;
}
/* 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
</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
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
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,
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
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
APPENDIX J
RESEARCHER’S VITAE
234
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
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
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.
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
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
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
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.
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
Math Quiz Bee since Grade 3. He was also an active member of different clubs in his
school.
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
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
(IECEP WVC ESC). He is also the Secretary of the Institute of Electronics Engineers of
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
Board Member in the Engineering Student Council (ESC) for two years handling the
Training Seminar for three consecutive years from 2016-2018. Also, he attended the
Antique. He also attended Journalism Workshop such as the College Press Conference
STEPHANIE S. SIOCO
(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,
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,
RODNEY L. SUPERATUM
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
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