Clinic Management System Project Report With Cover Page v2
Clinic Management System Project Report With Cover Page v2
By
ACADEMIC YEAR
2010/2011
By
2010/2011
Declaration
The project submitted herewith is a result of my own efforts in totality and in every
aspects of the project works. All information that has been obtained from other
sources had been fully acknowledged. I understand that any plagiarism, cheating or
collusion or any sorts constitutes a breach of College rules and regulations and would
be subjected to disciplinary actions.
__________________________
Abstract
Purpose:
Clinic Management System which calls CMS in short is a management system which
specially designed for most of the general clinic for keeps track their daily clinic
operation information. The main purpose of doing this project is in partial fulfilment
of the requirement for Bachelor of Science. Besides that, we will get to know in detail
regarding how to complete a project in the real working environment by following the
standard methodology during development of a system such as prepare
documentation, system development and system testing.
Scope:
This Clinic Management System is an offline system that use by the clinic staff and
doctor. The system cover all the basic modules include staff maintenance module,
clinic information maintenance module, patient profile maintenance module, patient
appointment module, patient queue module, patient visit module, inventory manager
module, and report module.
Methodology:
The assessment areas that this system has undergone are this system is user
friendliness and it’s brings really convenience to the end user by eliminate all the
paper work that suppose to be in a clinic. In fact this system can absolutely doing
clinic’s activities in an easy way by reducing the paper work and faster the processing
time of each activity because it is designed base on the user requirement.
Development phases:
This project is following the SDLC phase which include the planning, analyse,
design, testing and implementation. During this development phase, the documents
that required by each phase are Proposal of the system, System Requirement
Specification, System Development Diagram (such as Use Case Diagram, Sequence
Diagram and etc), test plan and etc.
Results:
This Clinic Management System helps the clinic to store their confidential data
especially patient data in a very secure way and easy to keep track in future when they
want to use it. Furthermore, only certain authority user could access to the
confidential data in order to protect the patient privacy. As a result, it helps the clinic
daily operation goes on effectiveness and efficiency with the aid of the great features.
During the development of this project, I had gained extra knowledge out of
classroom and experienced on how to develop a complete system as I am doing this
project individually. To develop a very useful system is not as easy as we think as
there is no perfect system in this world. All we need to do is go through many times
of the phase to figure out which part is not logical and needed to modify in order to
complete the system. After complete this project, my skill in planning for a project
and skill for programming as well as skill in debugging for error had improved.
Besides that, I had learned additional knowledge about the programming language
VB.NET from online resources.
Acknowledgement
I wish to express my sincere gratitude to my project supervisor, Mr Andrew Tan Khin
Huat, for his guidance, constant support and encouragement throughout the
completion of this final year project. I would like to convey my appreciation to Mr
Andrew for every precious advice that he gave during the system preview of the final
year project. Furthermore, I would like to thank to Mr Wong Yoke Seng for
contributing his ideas and in-depth knowledge in the field.
A warm thank is extended to my classmate for kindly sharing out their resources,
opinions, knowledge, experience and skills in programming and development
methodology with me, so generously. Besides that, I would also want to personally
express my thankfulness to my fellow friends from other course in TAR College who
always there to provide me with the best solution to struggle against the problem
before I can complete this final year project.
Last, but not least, I wishes to acknowledge the unwavering support shown by my
family members who always there for me to give me endless support when I needed
them.
Table of Contents
Declaration.............................................................................................................................. iii
viii
Chapter 1
System Planning
1. System Planning
Ordinary clinic will probably record their patient information in a paper and as the
patient visit often the clinic nurse will add in paper to that patient record in order to
let the doctor have enough space to write down the diagnosis to that patient. The
system provides the ability to store the patient information into database so that the
data is stored in a more organized manner and do not wasted any single space in a
clinic. Furthermore, the database supports the clinic to store up to millions of patient
record in an easy managerial way.
The end user can search for the patient records easily by only input some criteria
such as the patient ID or the patient name instead of search the patient record from a
hundred or thousand of patient record from the cabinet. The system will immediately
respond to the user with the patient information base on the criteria and it definitely
can save up a lot of time and work on searching.
As all the staff will sharing the same database among the clinic, so the nurse do not
need to run over here and there to pass the patient record to the doctor or get back the
patient record from doctor. All the staff inside the clinic could get up to date
information from the sharing database.
Patient privacy is important to a clinic as patient will only trusted your clinic and
come often if you only can keep their previous visited history well and confidentially.
Clinic management system provides a secure way towards the patient information by
restrict the access right to authority user only. Only the authorized user such as
doctor could access to the patient medical history. Even the nurse at the counter can
only view the basic information of the patient.
Standardize documentation
The documentation such as Medical Certificate (MC) and payment receipt is well
prepared in a standard format. The nurse can use it at anytime by just print it out
instead of writing their own by hand.
Lim Huat Bee Clinic was established in 1990 and now offers nearly 11 years
experience in the field of treating patient. This clinic is in charge by the creator of the
clinic Dr. Lim Huat Bee and he is the only doctor in the clinic with the aid of help by
three clinic staff.
The clinic operates 6 days per week from 9am to 8pm. No matter if you are a
resident of the area, a vacationer or an employer, the clinic do provide you with the
best medical care possible. The clinic offer qualified, well trained staff or physician
assistant to serve you. The clinic allow patient to walk-in anytime or call to schedule
an appointment. For schedule the appointment, the patient must be the regular patient
from the clinic.
This system will provide clinic a high efficiency management tools, computerize and
systematic patients record, inventory record and appointment detail. It basically will
do all the daily activity as a clinic will do. The following is the sub module and its
description:
This module basically will record all the clinic staff basic information. Once the staff
is registered, he/she is allowed to login to the system. The authority for access right
of the user is separate into three types which are admin, doctor and staff. All level
user can perform add and edit staff record and change their login password. Only
admin level user can delete the staff record and reset the staff login password if the
staff had forgotten the login password.
This module contains all the medicine record in a clinic and each of the medicine
inventory level so that the user could order the medicine stock once the medicine
quantity level is found low to avoid lack of stock problem occur. Furthermore, it also
store the medicine function, price and supplier contact details.
This module allow the user to manage the clinic information such as the clinic name
that wanted to print on all the report, the clinic contact number, address and the
operation hours. The operation hours that set by the user will decide the appointment
hours at the patient appointment module.
Report Module
This module prepared several type of report that useful to a clinic which includes
patient card, patient Medical Certificate (MC), patient dispensary report, and patient
payment receipt. Staff will print out a patient card for the new registered patient so
that the patient could use the card for the following visit. The patient dispensary
report will list out all the medicine and treatment that prescript by the doctor. After
the patient consult the doctor, the staff will collect the medicine for the patient base
on the patient dispensary report. The patient payment receipt is a report that list out
all the price of the medicine and treatment that the patient had took. For the patient
MC, the staff will generate it when only its request by the patient.
This module allowed staff and doctor to add and edit the patient profile which consist
only very basic information about the patient without any of the patient symptom
information. For the admin level user, they can perform delete patient record action.
This module allowed the staff to add, edit and delete the appointment that make by
the patient. The time slot between each appointment is half an hour. The staff is only
allowed to add in new appointment on blank slot. The doctor can check back the
appointment that made by the patient by using date to filter the patient appointment.
This module was act like an intermediary between doctor and staff. When there is a
patient come for consulting doctor, the staff will add the patient into the queue list so
that the doctor can select which patient to be consulted from the queue list. There is a
screen for calling patient purpose that will showing out the patient name when there
is their turn to consult doctor or taking medicine.
This module is only restricted to doctor use for record down the patient symptom,
test conducted to the patient, diagnosis and dispensary to the patient. The doctor will
create a new visit record every time the patient coming for consulting. After done the
diagnosis, the doctor will add the medicine and note down the instruction for how to
take the medicine. The system will then calculate the total price of all the medicine
and treatment that took by the patient.
The methodology that uses to develop this clinic management system is:
The programming language that I used to develop this system is VB.NET with the
three-tier architecture. 3-tier architecture is the new growth area for client/server
environment because it meets the requirement of large-scale Internet and intranet
client/server application. In theory, 3-tier systems are more scalable, robust, and
flexible. In addition, they can integrate data from multiple sources. 3-tier applications
are easier to manage and deploy on the network --- most of the code runs on the
servers. Also, 3-tier applications minimize network interchanges by creating abstract
levels of service. Instead of interacting with the database directly, the client calls
application logic on the server. The application logic then accesses the database on the
client’s behalf. 3-tier substitutes a few server calls for many database queries and
updates, so it performs much better than 2-tier. [Robert Orfali, Dan Harkey, and Jeri
Edwards, 1999]
I am doing an offline system and do not contributed in any sharing data throughout
online, so I decided to use Microsoft Office Access as the database to store data for
the system. Microsoft Access is a relational database management system from
Microsoft that combines the relational Microsoft Jet Database Engine with a graphical
user interface and software-development tools. I’m currently developing the system
for a small clinic only, so it is not necessary to use very powerful database
management system like mySql or SQL server. [Wikipedia, 2011]
Chapter 2
Requirements Analysis
2. Requirements Analysis
Before I can design a system for the clinic, I do visit to the clinic to do an
observation on how is their daily business operation. It is an ordinary clinic which
done everything manually without any technology help. I do observed and record
down in detail how is the progress flow from patient register on the counter until the
patient take medicine on the dispensary counter. Through the progress, I can see that
there’s a lot of paper needed to use in order to complete this progress. I did question
on them when I found out some problem that I do not truly understand on it and the
staff was kindly answer every question and explain to me in detail. Furthermore, the
staff had shown me several type of document that they usually do for reference
purpose. Most of the document is done manually in paper by the counter staff
includes calculation on stock, generate receipt, generate MC and etc.
2.1.2 Interview
End user is the one who are going to have the interaction with the system, thus
interview the end user is one of the most effective ways on gathering facts.
Throughout the interview session I can get the exact information and definite
requirement that the end user expected on the system. Doctor and staff requirement
are different as the job that they carry out is different from each other. However, the
current business model of the clinic is having weak privacy on patient medical
history. So when I come to the design stage I must consider the privacy of the patient
medical history issue.
Login Module
The system only can access by the authority user which is an official clinic staff who
is registered. The authority user must use username and password to login to the
system. Validation on username and password that input is required to deny the
invalid user login to the system.
Basically this module is required to store the clinic staff and doctor information
includes the username and password for login purpose. Staff is allowed to do all the
basic maintenance sort like add new staff, update their profile, search their record
through staff ID and change their login password as well.
Inventory Module
System should store the medicine information include the function of the medicine,
price, quantity on hand and the supplier contact information. All the basic function
such as add new medicine, update medicine information and remove the medicine
from database is required to carried out by the staff.
Patient medical history is a confidential data which suppose to view by doctor only.
So only doctor can add and update the patient medical history. Staff level user could
only add new patient record and update patient record with patient basic information
such as contact detail.
Staff user is the one who dealing with the patient appointment module. When the
patient is calling for booking appointment with the doctor, the staff will provide
patient with the doctor empty slot to let the patient choose. Or if the patient offer’s
time is already booked by others the staff will suggest the patient to select other time
slot. The appointment module is allowed the staff to add new appointment, edit
appointment if the patient wishes to change the time and delete the appointment if the
patient cancels the appointment.
Report Module
The basic report that usually needed to be carried out during business operation is
required to prepare for the staff. The detail that going to display on the report must
decided by the user.
Usability Requirement
The system will decrease the amount of text box that input by the user and increase
the selection input method such as combo box and radio button. Within this will
eliminate the possibility of entry error that made by the user when they enter
record into the system.
Besides that, the user is definitely not an IT field people. Thus, the system should
very straight forward to the user and easy to operate by the user. The error
message that shown when error detected must in the understandable language to
the user.
Efficiency Requirement
The system must allow the staff to search the patient record in an easy and
efficient way from a large amount of data.
The system response time must be fast and the system should allow the user to
open several task at one time when they using it.
Reliability Requirement
Make sure there is an additional server to backup the clinic data in case when the
server is down, there is still a backup server to support the system to continue
running the daily business.
The error rate of this system must be shrinking. Furthermore, adequacy error
message should prompt to the user when there is any validation error occurred.
Security Requirement
The system must provide a highly security on protecting the patient privacy.
Some confidential data should restrict to only authorize user to access it.
Microsoft Visual Studio 2010 for develop the system with programming VB.NET
Microsoft Office Access 2007 for develop the database for the system
Microsoft Office Visio 2007 for drawing the diagram such as ERD diagram,
Activity Diagram and etc.
Adobe Photoshop CS4 for designing the graphic that applies in the system
interface.
Notebook for develop the system and view the output of the system. The
following is my notebook specification:
Memory(RAM) – 4.00GB
Basic input devices for writing code, input documentation, and testing system
such as:
Keyboard
Barcode Scanner
Printer for print out the documentation and system report purpose.
Wi-Fi Modem for connecting to the internet for looking some resources.
External hard disk and thumb drive for backup the system and all the
documentation.
A server which store the clinic database and link to all the personal computer
within the clinic.
Output devices such as printer and LCD screen for displaying the system output
and printing the report.
Modem
Database Server
Printer
Router
Consultant room
Dispensary
Reception
Brief Description: This use case allows user to view and edit the clinic information.
Main Flow:
6. Click on Save button to update the 7. Verify all data and update to database.
information.
Alternative Flows:
Brief Description: This use case allows the user to add, view, edit, delete, change
login password and reset login password.
Main Flow:
12. Click Add New button. 13. Enable all blank textbox.
15. Click Add Button. 16. Verify all data and add to database.
17. Click Delete Button. 18. Remove particular staff record from
21. Input the old password and new 20. Display Change Password Page.
password.
22. Click Save Button. 23. Verify data and Update database.
24. Click Reset Password Button. 25. Display generated random password
and update database.
Alternative Flows:
A-2 Step 11: Invalid data format will prompt error message.
A-3 Step 16: Invalid data key in will prompt error message.
A-4 Step 23: Invalid old password entered will prompt error message.
Brief Description: This use case allows the user to add, view, edit, and delete
inventory item.
Main Flow:
10. Click Save Button. 11. Verify all data and update database.
12. Click Add New button. 13. Enable all blank textbox.
15. Click Add Button. 16. Verify all data and add to database.
17. Click Delete Button. 18. Remove particular item record from
database.
Alternative Flows:
A-2 Step 11: Invalid data format will prompt error message.
A-3 Step 16: Invalid data key in will prompt error message.
Brief Description: This use case allows the user to add, view, edit, and delete the
patient record. Besides that, it also can generate patient member card, print dispensary
report and payment receipt.
Main Flow:
10. Click Save Button. 11. Verify all data and update database.
12. Click Add New button. 13. Enable all blank textbox.
15. Click Add Button. 16. Verify all data and add to database.
Alternative Flows:
A-2 Step 11: Invalid data format will prompt error message.
A-3 Step 16: Invalid data key in will prompt error message.
Brief Description: This use case allows the user to add, view, edit, and delete the
patient appointment with the doctor.
Main Flow:
10. Click Save Button. 11. Verify all data and update database.
12. Double click on blank column to add 13. Enable all blank textbox.
new appointment.
14. Key in new appointment information. 16. Verify all data and add to database.
Alternative Flows:
A-2 Step 11: Invalid data format will prompt error message.
A-3 Step 16: Invalid data key in will prompt error message.
Detail Use Case Diagram for Patient Queue List Maintenance Module
Brief Description: This use case allows the user to add, view, edit, delete and clear all
the queue list record. Besides that, it also allowed to print dispensary report, payment
receipt and medical certificate.
Main Flow:
3. Click Patient Queue List Button. 4. Display Patient Queue List Page.
5. Select particular record from queue list 6. Display selected patient queue detail in
to edit. particular field.
7. Edit info.
10. Click Add New button. 11. Enable all blank textbox.
13. Click Add Button. 14. Verify all data and add to database.
15. Click Delete Button. 16. Remove particular patient queue
record from database.
17. Click Clear All Button. 18. Remove all the queue list record from
Alternative Flows:
A-3 Step 14: Invalid data key in will prompt error message.
A-4 Step 26: Invalid data key in will prompt error message.
Brief Description: This use case allows the user to add, view, edit, and delete the
patient visit record. Besides that, it also allows the user to add and edit the
prescription detail.
Main Flow:
3. Click Visit History Tab in Patient 4. Display All Patient Visit History
Profile. Record.
8. Click Save Visit Record Button. 9. Verify all data and update database.
10. Select a prescription record from the 11. Display selected prescription record
detail in particular filed.
13. Click Save Prescription Button. 14. Verify all data and update database.
15. Click Delete Prescription Button. 16. Remove selected prescription record
from database.
17. Click Add New Visit Button. 18. Enable all blank textbox.
20. Click Add Prescription Button. 21 .Display Add New Prescription Page.
23. Click Add Prescription Button. 24. Verify all prescription detail and add
to database.
25. Click Add Visit Button.
26. Verify all visit record data and add to
database.
27. Click Delete Visit Record Button.
28. Remove particular visit record from
database.
Alternative Flows:
A-3 Step 14: Invalid data format will prompt error message.
A-4 Step 24: Invalid data key in will prompt error message.
A-5 Step 26: Invalid data key in will prompt error message.
Brief Description: This use case allows the user to print patient card, patient
dispensary report, patient payment receipt and patient medical certificate.
Main Flow:
3. Click Print Patient Member Card. 4. Display all the patient member cards
7. Select particular record to print on the 6. Display print dispensary report page.
report. 8. Display selected record on patient
13. Click Print Patient MC Button. 14. Display print patient MC page.
15. Select a patient and insert the 16. Verify all data and print the MC on
particular field that required. report.
Chapter 3
System Design
3. System Design
3.1.2 Normalization
First Normalize
Second Normalize
Third Normalize
This is the login page of the system. It will appear once the user runs the system. The
user must enter the valid username and password to login before they can start using
system.
Main Page
This is the main menu after the user successful login to the system. The top of the
page is a menu strip that contains the way to go to all the function of the system. The
bar at the left hand side is the short cut button to some page that the user often used.
Staff Maintenance
This is the staff list which listed all the staff on the data grid view. The user can press
the add button to register new staff. If the user want to modified or delete the staff
record, double click the selected staff or select a staff record and press the edit button.
The top right hand side is search function which allowed the user to search staff by
staff ID or staff name.
This is register new staff record page. The system will auto generate a unique staff ID
for the new register staff. Press Add button to register the new staff after the user fill
in all the required information.
This is edit or delete staff record page. The system will display the staff details in
particular field. Press Save button after user finish modified the staff details. The
Change Password button will lead the user to change password page to change their
login password. The Reset Password button only allowed admin level user to press for
reset the staff login password in case the staff had forgotten his/her password. The
Delete button is allowed the user to delete the staff record.
Change Password
This is the change password page. The user must enter the correct old password
before they can successful to change their login password.
Reset Password
This is reset password page. The system will generate a random 6 numbers as the
temporary new password for the staff.
Inventory Maintenance
This is the inventory management page. The top right hand side corner is the search
function to allow the user to search the item by item ID or item name. When the user
press the Add button, all the input textbox will enable to let the user enter the new
item details. When the user double click on the item record from the data grid view or
select a record and press the Edit button, the item record detail will display on the
particular field. User can modify the item details and press the Save button to save it
or delete the item record from the database by press on the Delete button.
This is the clinic information management page. The user can change the clinic details
such as contact number and address of the clinic. To update the clinic information,
press the save button after finish modifying.
This is the setting page for the patient calling form. The user can set the start position
for the patient calling form when running the system.
This is the patient calling page that will display on a LCD TV or screen to let the
clinic patient see. The patient name will show on the screen when there is their turn to
go in the consultation room or take medicine on the dispensary counter.
Patient Maintenance
This is the patient list which listed all the patient record on the data grid view. The top
right hand side corner is search function which allowed the user to search the patient
by patient ID or patient name. User can scan the barcode on the patient card to search
for the patient record too. Press the Add New button to register new patient to the
database. Double click the record on the data grid view or select a record and press
Edit button to go to the Edit patient profile page. To print the patient card, select any
record from the data grid view and press the Print Patient Card button.
This is register new patient record page. The system will auto generate a unique
patient ID for the new register patient. Press Add button to register the new patient
after the user fill in all the required information.
This is edit or delete patient record page. The system will display the patient details in
particular field. Press the Save button to update the patient record after done the
modification on the patient details. The Delete button is allowed the user to remove
the patient record from database. The Print Patient Card button is to let the user to
print the patient card for such patient.
Patient Card
This is how the patient card looks like. The bottom of the card is a bar of barcode
which represent the patient ID. The user will scan the barcode by scanner to search for
the patient record every time the patient visit to the clinic.
This is the patient appointment scheduling. The patient can book for their next
appointment with the doctor as long as the doctor is free on that slot. The user can
click on the empty cell to add new appointment and click on the cell that showing
appointment ID to edit or delete the appointment. The date time picker allowed the
user to view or add the appointment on the date that the patient request.
This page is add new patient appointment page. The system will auto generate a
unique appointment ID for the new patient appointment. Press Add button to add new
appointment after the user fill in all the required information.
This is edit or delete patient appointment record page. The system will display the
patient appointment details in particular field. Press the Save button to update the
appointment details after done the modification on the details. The Delete button is
allowed the user to remove the particular appointment record from database. The
Follow Up button purpose is when the patient coming for the appointment, the user
can press this button and add the patient to the queue list.
This is the patient queue page which allowed the user to register the patient into the
queue list by clicking the Add button when the patient is come to the clinic for
consultation. The Edit button is allowed the user to edit or delete the queue record
details. The queue list will auto refresh every 5 seconds as the user can see the most
latest queue status when other user change it. The Clear All Queue Record button is
let the user to remove all the queue record from the database so that they can restart
the queue number every day.
This is add new queue record page. The system will auto generate a unique queue ID
for the new queue record. Press Add button to add the new queue record after the user
fill in all the required information.
This is edit or delete queue record page. The system will display the queue record
details in particular field. Press the Save button to update the queue details after done
the modification on the details. The Delete button is allowed the user to remove the
particular queue record from database. The Go button purpose is let the user direct go
to the patient profile when there is the patient turn to consult the doctor. The View
Dispensary Report button will bring the user to the patient dispensary report for
collect medicine purpose. The Print Patient MC button allowed the user to print MC
for the patient when the patient is request for it. The Print Payment Receipt button
will generate the payment receipt for the user.
This is the patient visit history list which under the visit history’s tab at patient profile.
The user is allowed to add new visit record by press the New Visit button. To edit the
visit record, select either a record from the list and press the View Visit button. To
view the dispensary report, select on the record from the list and press the View
Dispensary Report button.
This is add new patient visit record page. The system will auto generate a unique visit
ID for the new visit record. Press the Add Medicine button to add new medicine as
prescription. Press Add Treatment button to add new treatment price. Press Remove
button to remove any miss added medicine or treatment. Press Add button to add the
new queue record after the user fill in all the required information and done the
prescription.
This is edit or delete visit record page. The system will display the visit record details
in particular field. Press the Save button to update the visit details after done the
modification on the details. The Delete button is allowed the user to remove the
particular visit record from database. The Add Medicine button purpose is let the
doctor to add the medicine as prescription to the patient. The total amount textbox
will auto calculate the total for all the medicine.
This is add new medicine page. The top right hand side corner is search function to let
the user search for the medicine in a faster way. The user needs to select a medicine
from the data grid view at first. After that the medicine function and the price will
auto display on the particular textbox. Press Add button to add the new prescription
after the user fill in all the other information.
This is edit or delete prescription record page. The system will display the
prescription record details in particular field. Press the Save button to update the
details after done the modification. The Remove button is allowed the user to remove
the particular prescription record from database.
This is the print patient dispensary report. The user is required to select which patient
and which visit record’s prescription to print.
This is the outcome of the dispensary report. It will list out all the prescription that the
doctor given to the patient with all the instruction and price.
This is the print payment receipt page. The user is required select which patient and
which visit record’s receipt to print.
Payment Receipt
This is how the payment receipt looks like. It will simply put which item did the
patient purchase, price, quantity, discount price and the total amount.
The user is required to select how many days and the reasons for the MC before they
can successful generate MC for the patient.
This is the outcome of the patient MC. The doctor needs to sign on the MC personally
to prove that the MC is accepted.
Chapter 4
Programming
4. Programming
4.1 Coding
Register New Staff Coding
Dim value As String = "INSERT INTO tblStaffDetail VALUES ('" & sID & "', '" &
sName & "', '" & sIC & "', '" & sBirthDate & "', '" & sAddress & "', '" & sContactNo &
"', '" & sGender & "', '" & sEmerName & "', '" & sEmerNo & "', '" & sEmerRelationship &
"', '" & sPosition & "', '" & sStatus & "', '" & sJoinDate & "', '" & sResignDate & "',
'" & sLoginID & "', '" & sLoginPassword & "')"
Try
Initialize()
Dim adpAddStaff As New OleDbDataAdapter()
adpAddStaff.InsertCommand = New OleDbCommand(value)
adpAddStaff.InsertCommand.Connection = conSearch
adpAddStaff.InsertCommand.ExecuteNonQuery()
Catch sqle As OleDb.OleDbException
MessageBox.Show(sqle.Message)
End Try
Terminate()
End Sub
'==Add staff=='
Public Sub AddNew()
StaffDA.AddNew(Me)
End Sub
Presentation Layer
'==Add Staff=='
theStaff.AddNew()
Try
Initialize()
Dim sqlQuery As String = "SELECT * FROM tblStaffDetail WHERE staff_id = '"
& anID & "'"
Dim adpDisplayDetail As New OleDbDataAdapter(sqlQuery, conSearch)
adpDisplayDetail.Fill(dsDisplayDetail, "DisplayRecord")
If dsDisplayDetail.Tables("DisplayRecord").Rows.Count > 0 Then
Dim SearchRow As DataRow
SearchRow = dsDisplayDetail.Tables("DisplayRecord").Rows(0)
sID = SearchRow.Item("staff_id").ToString()
sName = SearchRow.Item("staff_name").ToString()
sIC = SearchRow.Item("ic_no").ToString()
sBirthDate = SearchRow.Item("birth_date").ToString()
sAddress = SearchRow.Item("address").ToString()
sContactNo = SearchRow.Item("contact_no").ToString()
sGender = SearchRow.Item("gender").ToString()
sEmerName = SearchRow.Item("emer_contact_name").ToString()
sEmerNo = SearchRow.Item("emer_contact_no").ToString()
sEmerRelationship =
SearchRow.Item("emer_contact_relationship").ToString()
sPosition = SearchRow.Item("position").ToString()
sStatus = SearchRow.Item("status").ToString()
sJoinDate = SearchRow.Item("join_date").ToString()
sResignDate = SearchRow.Item("resign_date").ToString()
sLoginID = SearchRow.Item("login_id").ToString()
sLoginPassword = SearchRow.Item("password").ToString()
displayStaff = New StaffPD(sID, sName, sIC, sBirthDate, sAddress,
sContactNo, sGender,
sEmerName, sEmerNo, sEmerRelationship, sPosition, sStatus, sJoinDate,
sResignDate, sLoginID,
sLoginPassword)
Else
Throw New NotFoundException("No Info in the database!")
End If
dsDisplayDetail = Nothing
Finally
Terminate()
End Try
Return displayStaff
End Function
Presentation Layer
frmStaffProfile.dtpResignDate.Text =
theStaff.staffResignDate.ToString()
End If
frmStaffProfile.cmbPosition.Text = theStaff.staffPosition.ToString()
frmStaffProfile.txtLoginID.Text = theStaff.staffLoginID.ToString()
frmStaffProfile.txtPassword.Text = theStaff.staffLoginPassword.ToString()
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
End Sub
'==Edit staff=='
Public Shared Sub Update(ByVal aStaff As StaffPD)
Dim sqlUpdate As String
sID = aStaff.staffID
sName = aStaff.staffName
sIC = aStaff.staffIC
sBirthDate = aStaff.staffBirthDate
sAddress = aStaff.staffAddress
sContactNo = aStaff.staffContact
sGender = aStaff.staffGender
sEmerName = aStaff.staffEmerName
sEmerNo = aStaff.staffEmerNo
sEmerRelationship = aStaff.staffEmerRelationship
sPosition = aStaff.staffPosition
sStatus = aStaff.staffStatus
sResignDate = aStaff.staffResignDate
sqlUpdate = "UPDATE tblStaffDetail SET [staff_name] = '" & sName & "',[ic_no] =
'" & sIC &
"',[birth_date] = '" & sBirthDate & "',[address] = '" & sAddress &
"',[contact_no] = '" & sContactNo &
"',[gender] ='" & sGender & "',[emer_contact_name] = '" & sEmerName &
"',[emer_contact_no] = '" &
sEmerNo & "',[emer_contact_relationship] = '" & sEmerRelationship &
"',[position] = '" & sPosition &
"',[status] = '" & sStatus & "',[resign_date] = '" & sResignDate & "' WHERE
[staff_id] = '" & sID & "'"
Try
Initialize()
'==Edit Staff=='
Public Sub Update()
StaffDA.Update(Me)
End Sub
Presentation Layer
Try
theStaff = New StaffPD(txtStaffID.Text, txtStaffName.Text.ToUpper(),
txtIC1.Text,
dtpBirthDate.Text, txtAddress.Text.ToUpper(), txtContactNo.Text,
gender.ToString(),
txtEmerName.Text.ToUpper(), txtEmerNo.Text, txtEmerRelationship.Text,
cmbPosition.SelectedItem.ToString(), status.ToString(),
dtpJoinDate.Text, outDate.ToString(),
txtLoginID.Text.ToUpper, txtPassword.Text)
theStaff.Update()
MessageBox.Show("Staff record has been updated!")
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
End Sub
sID = aStaff.staffID
sqldelete = "DELETE FROM tblStaffDetail WHERE staff_id = '" & sID & "'"
Try
Initialize()
Dim adpDeleteStaff As New OleDbDataAdapter()
adpDeleteStaff.DeleteCommand = New OleDbCommand(sqldelete)
adpDeleteStaff.DeleteCommand.Connection = conSearch
adpDeleteStaff.DeleteCommand.ExecuteNonQuery()
Catch ex As Exception
MessageBox.Show(ex.Message)
Finally
Terminate()
End Try
End Sub
Presentation Layer
'==Delete staff=='
Private Sub btnDelete_Click_1(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btnDelete.Click
If MessageBox.Show("Confirm to Delete?", "Caption", MessageBoxButtons.OKCancel,
MessageBoxIcon.Question) = Windows.Forms.DialogResult.OK Then
Try
theStaff = New StaffPD(txtStaffID.Text, txtStaffName.Text.ToUpper(),
txtIC1.Text,
dtpBirthDate.Text, txtAddress.Text.ToUpper(), txtContactNo.Text,
gender.ToString(),
txtEmerName.Text.ToUpper(), txtEmerNo.Text, txtEmerRelationship.Text,
cmbPosition.SelectedItem.ToString(), status.ToString(),
dtpJoinDate.Text,
dtpResignDate.Text.ToString(), txtLoginID.Text.ToUpper,
txtPassword.Text)
theStaff.Delete()
MessageBox.Show("Staff Record has been Deleted!")
clearInputField()
Me.Close()
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
Else
Exit Sub
End If
End Sub
Presentation Layer
Terminate()
Return ds.Tables(0)
End Function
Presentation Layer
Me.DataGridView1.DataSource = thePatient.getallPatient()
cmbSearch.SelectedIndex = 0
End Sub
End Try
Return False
End Function
Presentation Layer
'==auto no @ Queue=='
Public Shared Function GetMaxID() As String
strid = ardAddQueue.Item(0).ToString()
End While
End If
If (strid = "") Then
strid = "Q001"
Else
strid = "Q" + (Integer.Parse(strid.Substring(1, 3)) + 1).ToString("D3")
End If
Terminate()
Return strid
End Function
'==auto ID @ Queue=='
Public Function getMaxID() As String
Return queueDA.GetMaxID()
End Function
Presentation Layer
txtQueueID.Text = theQueue.getMaxID().ToString()
End Sub
Initialize()
'==Drop table=='
Dim cmdDrop As New OleDbCommand(dropTable, conSearch)
cmdDrop.ExecuteNonQuery()
'==Create table=='
Dim cmdCreate As New OleDbCommand(addTable, conSearch)
cmdCreate.ExecuteNonQuery()
Terminate()
End Sub
Presentation Layer
Try
theQueue.clearQueue()
MessageBox.Show("Queue Record has been cleared!")
Me.DataGridView1.DataSource = theQueue.getallQueue()
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
Else
Exit Sub
End If
End Sub
Load Appointment Schedule Table Coding
Try
Initialize()
Dim sqlQuery As String = "SELECT * FROM tblStaffDetail WHERE [position] =
'Doctor'"
Dim adpstaff As New OleDbDataAdapter(sqlQuery, conSearch)
adpstaff.Fill(dsStaff, "tblStaffDetail")
Catch e As OleDb.OleDbException
MessageBox.Show(e.Message)
Finally
Terminate()
End Try
Return dsStaff.Tables(0)
End Function
Presentation Layer
dgvdoctorslot.DataSource = Nothing
dtdocapp.Rows(a).Item("app_time_start").ToString Or _
(DateTime.Parse(appstarttime) <=
DateTime.Parse(ds.Tables(0).Rows(j).Item(0).ToString()) And _
(DateTime.Parse(appendtime)) >
DateTime.Parse(ds.Tables(0).Rows(j).Item(0).ToString())) Then
dr(k) =
dtdocapp.Rows(a).Item("appointment_id").ToString
Exit For
Else
dr(k) = ""
End If
Next
Else
dr(k) = ""
End If
Else
dr(k) = ""
End If
End If
Next
dtapp.Rows.Add(dr)
Next
End If
End If
dgvdoctorslot.DataSource = dtapp
End Sub
Chapter 5
Software Testing
5. Software Testing
Unit Testing is to make sure the module that been develop can run smoothly
and executable without any bugs or system error. Unit testing basically will test on the
particular part or unit such as function, procedures, or modules. It is to ensure that the
particular function that has been developed can fulfil the requirement of the user and
without any error. Unit testing is normally test by the programmer who writes the
code. Every time after they had finish writing the code, they will run the debugger and
test whether the function of source code can run smoothly or not. If there are bugs or
system errors occur, the developer will try to solve it and then run the debugger again.
If the function can run smoothly without error and can meet the required function, the
developer will test the whole module all over again.
Validation testing is one kind of testing which will test on whether the system is
able to handle the wrong data that entered by the user or not. It also use to ensure that
the data entered by the user is relevant and in the correct format or correct data types.
For this testing, we will test whether the system can handle the data that entered by
the user. For example, if the user is required to enter the numeric data but they are
enter the string data, will the system able to track the data entered by user and prompt
error message to inform the user to enter the correct one. This testing is very
important because the wrong data entered may cause the system error or accidentally
insert the wrong data into the database and misleading the system.
User Acceptance Testing is a testing to determine whether the system that had
been developed is satisfied and accepted by the user or not. It will carry out after all
testing are done and will test by the user who will use the system. In this testing, the
user also can decide whether the acceptance level to the system or perhaps the user
can provide some feedback to the programmer so that the programmer can make
enhancement on the system.
Successful
Check whether the Successful
update the
existing queue record update the queue
particular
Edit Queue can be successful details into Pass
queue details
edit. database.
in the
database.
Display all
Check whether the
queue record
List All system can display Display all
that retrieved
Queue out all the queue queue record. Pass
from the
record on the data
database.
grid view.
Successful
Check whether the Successful
removed
Delete queue record can be delete the queue Pass
particular
Queue deleting. record.
queue record
from database.
Successful
Check whether the Successful update
update the
existing the prescription
Edit particular
prescription record details into Pass
Prescription prescription
can be successful database.
details in the
edit.
database.
If the user had entered the invalid login ID and password, the system will prompt out
the error message to inform the user.
If the user missed out some input data, the system will prompt error message to the
user to inform them to enter the data. The system will also prompt the error message
when wrong data format enter by the user.
The system will prompt successful message to inform the user when clinic
information is being updated into database.
Staff Maintenance
If the user missed out some input data when add staff, the system will prompt error
message to the user to inform them to enter the data. The system will also prompt the
error message when wrong data format enter by the user.
The system will prompt successful message to inform the user when new registered
staff is being added into database.
The system will prompt successful message to inform the user when details of current
staff record is being updated into database.
The system will prompt a confirmation message to ask the user whether want to
continue to perform delete staff record action when user clicks on the Delete Button.
The system will prompt successful message to inform the user when the current staff
record is being deleted from the database.
The system will check on whether the old password that entered by the staff is correct
or not before the staff could successful change their login password. Error message
will prompt out to inform the user if wrong password had entered.
The system will prompt successful message to inform the user when the new login
password is being updated into database.
Reset Password
The system will prompt a confirmation message to ask the user whether want to
continue to perform reset password action when user clicks on the Reset Password
Button.
The system will prompt successful message to inform the user and the message will
display the new login password.
Inventory Maintenance
If the user missed out some input data when add new item, the system will prompt
error message to the user to inform them to enter the data. The system will also
prompt the error message when wrong data format enter by the user.
The system will prompt successful message to inform the user when new item is
being added into database.
The system will prompt successful message to inform the user when current item
details is being updated into database.
The system will prompt a confirmation message to ask the user whether want to
continue to perform delete item when user click on the Delete Button.
The system will prompt successful message to inform the user when current item is
successful deleted from the database.
Patient Maintenance
If the user missed out some input data when add new patient, the system will prompt
error message to the user to inform them to enter the data. The system will also
prompt the error message when wrong data format enter by the user.
The system will prompt successful message to inform the user when new patient is
being added into database.
The system will prompt successful message to inform the user when current patient
details is being updated into database.
The system will prompt a confirmation message to ask the user whether want to
continue to perform delete patient when user click on the Delete Button.
The system will prompt successful message to inform the user when current patient is
successful deleted from the database.
If the user missed out some input data when add new appointment record, the system
will prompt error message to the user to inform them to enter the data. The system
will also prompt the error message when wrong data format enter by the user.
The system will prompt successful message to inform the user when new appointment
record is being added into database.
The system will prompt successful message to inform the user when current
appointment details is being updated into database.
The system will prompt a confirmation message to ask the user whether want to
continue to perform delete appointment record when user clicks on the Delete Button.
The system will prompt successful message to inform the user when current
appointment record is successful deleted from the database.
If the user missed out some input data when add new queue record, the system will
prompt error message to the user to inform them to enter the data. The system will
also prompt the error message when wrong data format enter by the user.
The system will prompt successful message to inform the user when new queue
record is being added into database.
The system will prompt successful message to inform the user when current queue
record details is being updated into database.
The system will prompt a confirmation message to ask the user whether want to
continue to perform delete queue record when user clicks on the Delete Button.
The system will prompt successful message to inform the user when current queue
record is successful deleted from the database.
The system will prompt a confirmation message to ask the user whether want to
continue to perform clear all queue record when user clicks on the Clear All Queue
Button.
The system will prompt successful message to inform the user when all queue record
is successful deleted from the database.
If the user missed out some input data when add new visit record, the system will
prompt error message to the user to inform them to enter the data. The system will
also prompt the error message when wrong data format enter by the user.
The system will prompt successful message to inform the user when new visit record
is being added into database.
The system will prompt a confirmation message to ask the user whether want to
continue to perform delete visit record when user clicks on the Delete Button.
The system will prompt successful message to inform the user when current visit
record is successful deleted from the database.
If the user missed out some input data when add new prescription record, the system
will prompt error message to the user to inform them to enter the data. The system
will also prompt the error message when wrong data format enter by the user.
The system will prompt successful message to inform the user when new prescription
record is being added into database.
The system will prompt successful message to inform the user when current
prescription details is being updated into database.
The system will prompt a confirmation message to ask the user whether want to
continue to perform delete prescription record when user clicks on the Remove
Button.
The system will prompt successful message to inform the user when current
prescription record is successful deleted from the database.
Chapter 6
Conclusion
6. Conclusion
Due to all information are already store in the database, so the staff can
retrieve everything for example patient details through the system in a fastest way
instead of searching the patient record from a bunch of messy document on the
cabinet. This Clinic Management System is to achieve the patient satisfaction on
shorter waiting time and better service provided to the patient. With this system, the
clinic can save up a lot of response time to handle a patient. So, the clinic can provide
better service to more patients within an operation day.
Everything are digitalize including all the data that belongs to the clinic will
store in a well organized database. Staff is easy to maintain such well organized data
as it is easy when they want to modified some detail from particular records,
searching for data, add in some new data or delete some data with the help of the
system. They can perform all the activity that I mentioned in an efficient way.
Secure database
The user of the system is allowed to access to those data that authority to
his/her level. For example, the patient private information is restricted to access only
by doctor level user at the clinic.
With the help of the system, the clinic does not need to hire for so many
workers to cope with bunch of patient because the operation of the clinic is
digitalized. Most of the things could do by the system effectively and efficiency, thus
the number of worker can be reduced.
I had faced kind of coding problems, logical problem as well as system flow
problem when I developing this project. Fortunately, I can able to solve all these
problems with the aid of help from my supervisor, my friends and of course the
solutions from Google search. Besides that, my supervisor does provide me with
precious suggestion and advice on enhancing my system to a better one. With the
advices and suggestion that he gave, it was bring a lot of benefits to us.
Although this project is a toughest task ever to me but I believe that it could
really help me a lot when I come out to working. Last but not least, I know the effort
that I’d pay and the time that contributed to this project is worth the knowledge and
experience that I gain. I would like to use this opportunity to show my gratefulness to
everyone that kindly given out their helping hand to me when I needed them. Thanks
again.
7. Reference
1. Robert Orfali, Dan Harkey, Jeri Edwards, 1999, “Client/Server Survival Guide”,
John Wiley & Sons, Inc.
Viewed on 29 October 2010.
Available from:
<http://www.pdftop.com/view/aHR0cDovL3d3dy5qb3VybmFsLmF1LmVkdS9pamN
pbS8yMDAxL21heTAxL2FyY2hpdGVjdHVyZS5kb2M=>
2. Russell F. Lewis and Ned Simpson, 2003, ‘Implementation Guide for the Use of
Bar Code Technology in Healthcare’. Health Industry Business Communications
Council.
Viewed on 28 February 2010.
Available from:
<http://www.pdftop.com/view/aHR0cDovL3d3dy5oaW1zcy5vcmcvY29udGVudC9m
aWxlcy9JbXBsZW1lbnRhdGlvbl9ndWlkZS5wZGY=>.
8. Appendices
Sample of Medical Certificate (MC) from clinic
9. User Guide
Login
4
3
Main Page
1 2 3 4 5
10
3. Patients Menu - Patient List, Patient Queue Maintenance, Patient Calling Page.
5. Report Menu - Patient Card, Patient Dispensary Report, and Payment Receipt
Treatment Maintenance
4 5 6
3. List of the treatment. Double click the record to edit the treatment.
Staff Maintenance
1
3 2
5 6
3. List of the staff. Double click the record to edit the staff profile.
5. Click Edit button to go to Edit Staff Profile page for particular staff.
2 3
4 5
2 6
Change Password
2 3
Inventory Maintenance
3 7
2 4 5
3. List of the item. Double click the record to edit the item detail.
2 3
2 3
Patient Maintenance
1
3 2
5 6
7 4
3. List of the patient. Double click the record to edit the patient profile.
5. Click Edit button to go to Edit Patient Profile page for particular patient.
1
3
3. Click Print Patient Card button to print current patient’s patient card.
1 2
2 3
3 4
5
2
3 4
5 2
5. Click Clear All Queue Record button to remove all the queue record from database.
2 3
3 4 7
8
2
6. Click View Dispensary Report button to view current visit’s dispensary report.
8. Click Print Payment Receipt button to print current visit’s payment receipt.
2 3
1. Enter MC detail.
1 2
3. Click View Visit button to view and edit the selected visit record.
4. Click View Dispensary Report button to view selected visit record’s dispensary
report.
4 5
3 7
2. List of prescription. Double click on record from list to edit the prescription record.
6. Click Add Visit button to add the new visit into database.
4 5
3
7 8
2. List of prescription. Double click on record from list to edit the prescription record.
5 6