BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT
THÀNH PHỐ HỒ CHÍ MINH
ĐỒ ÁN TỐT NGHIỆP
CƠNG NGHỆ THÔNG TIN
XÂY DỰNG WEBSITE
ĐẶT LỊCH KHÁM BỆNH ONLINE
GVHD: ThS. NGÔ NGỌC ĐĂNG KHOA
SVTH : NGUYỄN TRẦN ĐĂNG KHOA
S K L0 1 0 2 6 5
Tp. Hồ Chí Minh, tháng 5/2023
TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT THÀNH PHỐ HỒ CHÍ MINH
KHOA ĐÀO TẠO CHẤT LƯỢNG CAO
KHÓA LUẬN TỐT NGHIỆP
XÂY DỰNG WEBSITE ĐẶT LỊCH KHÁM BỆNH ONLINE
SVTH :
NGUYỄN TRẦN ĐĂNG KHOA
19154035
NGÀNH: CÔNG NGHỆ THÔNG TIN
GVHD: ThS NGÔ NGỌC ĐĂNG KHOA
Tp. Hồ Chí Minh, tháng 05 năm 2023
CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
Độc lập – Tự do – Hạnh phúc
*******
Tp. Hồ Chí Minh, ngày 29 tháng 05 năm 2022
ĐỀ CƯƠNG KHÓA LUẬN TỐT NGHIỆP
Họ và tên sinh viên: Nguyễn Trần Đăng Khoa
MSSV: 19154035
Ngành: Công Nghệ Thông Tin
Giảng viên hướng dẫn: ThS. Ngô Ngọc Đăng Khoa
Thời gian làm khóa luận : từ: 30/01/2023 đến: 28/05/2023
TRƯỞNG NGÀNH
Nguyễn Đăng Quang
GIẢNG VIÊN HƯỚNG DẪN
Ngô Ngọc Đăng Khoa
CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
Độc lập – Tự do – Hạnh phúc
*******
PHIẾU NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN
Họ và tên Sinh viên 1: Nguyễn Trần Đăng Khoa..................MSSV: 19154035
Ngành: Công Nghệ Thông Tin
Tên đề tài: XÂY DỰNG WEBSITE ĐẶT LỊCH KHÁM BỆNH ONLINE
Họ và tên giảng viên hướng dẫn: ThS. NGÔ NGỌC ĐĂNG KHOA
NHẬN XÉT
1. Về nội dung đề tài và khối lượng thực hiện:..................................................................
............................................................................................................................................
2. Ưu điểm:.........................................................................................................................
............................................................................................................................................
3. Khuyết điểm:..................................................................................................................
............................................................................................................................................
4. Đề nghị cho bảo vệ hay không?
5. Đánh giá loại:
6. Điểm:
CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
Độc lập – Tự do – Hạnh phúc
*******
PHIẾU NHẬN XÉT CỦA GIẢNG VIÊN PHẢN BIỆN
Họ và tên Sinh viên 1: Nguyễn Trần Đăng Khoa..................MSSV : 19154035
Ngành: Công Nghệ Thông Tin
Tên đề tài: XÂY DỰNG WEBSITE ĐẶT LỊCH KHÁM BỆNH ONLINE
Họ và tên GIẢNG VIÊN PHẢN BIỆN:
NHẬN XÉT
1. Về nội dung đề tài và khối lượng thực hiện:..................................................................
............................................................................................................................................
2. Ưu điểm:.........................................................................................................................
............................................................................................................................................
3. Khuyết điểm:..................................................................................................................
............................................................................................................................................
4. Đề nghị cho bảo vệ hay không?
..
5. Đánh giá loại:
..
6. Điểm:
..
LỜI CAM ĐOAN
Em xin cam đoan đề tài khóa luận chuyên ngành “Xây dựng website đặt lịch
khám bệnh online” là thành quả của quá trình học tập, tìm hiểu và với sự hướng dẫn
của GIẢNG VIÊN HƯỚNG DẪN là thầy Ngơ Ngọc Đăng Khoa. Tồn bộ tài liệu được
sử dụng để tham khảo được trích dẫn từ các nguồn tài liệu ở mục TÀI LIỆU THAM
KHẢO.
TP. Hồ Chí Minh, tháng 5 năm 2023
Sinh viên thực hiện
Nguyễn Trần Đăng Khoa
19154035
1
LỜI CẢM ƠN
Lời đầu tiên, cho phép em được gửi lời cảm ơn chân thành đến thầy Ngô Ngọc
Đăng Khoa, người đã phụ trách hướng dẫn em trong việc thực hiện và hoàn thành bài
báo cáo một cách tốt và hiệu quả nhất. Những sự chỉ dạy, nhật xét, đóng góp ý kiến từ
thầy đã góp phần rất quan trọng trong việc giúp em hoàn thành đề tài một cách hồn
thiện nhất.
Cảm ơn các thầy cơ trong khoa Cơng Nghệ Thơng Tin đã ln nhiệt tình, cống
hiến, tận tình giải đáp các thắc mắc của em. Bên cạnh đó, em xin được cảm ơn các bạn
cùng khóa, các anh chị khóa trên đã khơng ngần ngại chia sẻ các thơng tin, kinh
nghiệm bổ ích giúp em hồn thiện hơn đề tài của mình.
Báo cáo được thực hiện trong một khoảng thời gian có hạn, cùng với những hạn
chế về mặt kiến thức nên việc sai sót là điều khơng thể tránh khỏi trong q trình thực
hiện. Em kính mong nhận được những lời nhận xét, ý kiến đóng góp quý báu từ q
thầy cơ để em có thêm kinh nghiệm và hoàn thành tốt hơn những đề tài sau này.
Em xin chân thành cảm ơn !
TP. Hồ Chí Minh, tháng 5 năm 2023
Sinh viên thực hiện
Nguyễn Trần Đăng Khoa
19154035
2
MỤC LỤC
LỜI CAM ĐOAN
LỜI CẢM ƠN
CHƯƠNG 1: TỔNG QUAN
1.1. Tính cấp thiết của đề tài
1.2. Mục đích của đề tài
1.3. Kết quả dự kiến đạt được
CHƯƠNG 2: CƠ SỞ LÝ THUYẾT
2.1. NodeJS
2.2. ExpressJS
2.3. ReactJs
2.4. MySQL
CHƯƠNG 3: KHẢO SÁT HIỆN TRẠNG VÀ XÁC ĐỊNH YÊU CẦU
3.1.1.
3.1.2. />3.1.3. Giải pháp là gì?
3.2. Xác định yêu cầu
3.3.2. Liệt kê các actor
3.3.3. Bảng use case
CHƯƠNG 4: THIẾT KẾ ỨNG DỤNG
4.1. Thiết kế dữ liệu
4.1.1. Sơ đồ thiết kế dữ liệu
4.1.2. Mô tả sơ đồ thiết kế dữ liệu
4.2. Sơ đồ tuần tự (Sequence Diagram)
4.2.1. Sequence Bệnh nhân đặt lịch hẹn
4.2.2. Sequence gửi hóa đơn cho bệnh nhân
4.3. Kiến trúc hệ thống
4.3.1. Kiến trúc web client
4.3.2. Kiến trúc web server
CHƯƠNG 5: TỔNG QUAN VỀ HỆ THỐNG ĐẶT LỊCH
5.1. Các chức năng chính:
5.1.1. Đăng nhập/ Đăng xuất
5.1.2. Đăng ký
1
2
5
5
5
5
7
7
7
7
8
9
9
10
10
10
13
14
65
65
65
65
67
67
68
69
69
70
74
74
74
75
3
5.1.3. Chức năng cho phân quyền Bệnh nhân
5.1.4. Chức năng cho phân quyền Admin
5.1.5. Chức năng cho phân quyền Doctor
5.1.6. Chức năng cho phân quyền quản lý
CHƯƠNG 6: CÀI ĐẶT VÀ KIỂM THỬ ỨNG DỤNG
6.1. Cài đặt ứng dụng
6.2. Kiểm thử phần mềm
6.2.1. Chức năng đăng ký
6.2.2. Chức năng đăng nhập
6.2.3 Chức năng đặt lịch
6.2.4 Chức năng Đăng ký lịch của bác sĩ
6.2.5 Chức năng Gửi đơn thuốc cho bệnh nhân của bác sĩ
CHƯƠNG 7: KẾT LUẬN
7.1. Kết quả đạt được
7.2. Ưu điểm và nhược điểm
7.2.1. Ưu điểm
7.2.2. Nhược điểm
7.3. Hướng phát triển trong tương lai
TÀI LIỆU THAM KHẢO
76
94
112
115
119
119
121
121
122
123
124
125
127
127
128
128
128
129
130
4
CHƯƠNG 1: TỔNG QUAN
1.1. Tính cấp thiết của đề tài
Gần đây, sau đại dịch Covid-19, ta có thể nhận thấy rằng mọi người bắt đầu
nhận thức được tầm quan trọng hàng đầu của sức khỏe. Nhưng khơng có gì là không
tồn tại mặt hạn chế, khi nhu cầu tăng cao thì các dịch vụ y tế lại quá tải. Nguyên nhân
chính là do chúng ta chưa có cơng cụ để quản lý lịch đăng ký hay đăng ký trước và họ
chỉ làm theo cách lỗi thời là xếp hàng và bốc số dẫn đến việc người bệnh phải tốn quá
nhiều thời gian để được khám bệnh.
1.2. Mục đích của đề tài
Xây dựng hệ thống hỗ trợ người dùng đặt lịch và tiếp cận được với mạng lưới
bác sĩ lớn nhằm mục đích tạo trải nghiệm khám bệnh tối ưu nhất với bệnh nhân. Hệ
thống được xây dựng hướng tới việc hỗ trợ các phòng khám và bác sĩ.
Với bác sĩ thì họ được hỗ trợ hiển thị thơng tin lịch đăng ký rõ ràng theo tuần và
thông tin bệnh nhân theo chuẩn y khoa phù hợp cho quá trình thăm khám. Đối với
người quản lý thơng tin phịng khám và bác sĩ họ được cung cấp công cụ để quản lý,
thống kê và tra cứu thông tin bệnh nhân triệt để từ đó tạo trải nghiệm tốt với hệ thống
1.3. Kết quả dự kiến đạt được
-
Hiểu được các kiến thức về các công nghệ ExpressJs, ReactJs, NodeJs,…
-
Xây dựng được một website hồn chỉnh hỗ trợ cho ba đối tượng chính mà hệ
thống nhắm đến
5
-
Áp dụng mã nguồn mở OpenAI (cụ thể là ChatGPT) vào hệ thống
-
Áp dụng các thư viện khác nhau để tạo trải nghiệm người đùng tốt nhất
(Select,ApexChart,...)
-
Áp dụng JWT trong q trình sử dụng để đảm bảo thơng tin được bảo mật
-
Áp dụng các kiến thức về thiết kế và trải nghiệm người dùng của môn học
Tương tác người máy nhằm tạo ra giao diện có bố cục đẹp mắt, mang tính hệ thống và
luồng tương tác sử dụng của người dùng và hệ thống dễ hiểu, hợp logic.
6
CHƯƠNG 2: CƠ SỞ LÝ THUYẾT
2.1. NodeJS
Node.js là một môi trường thời gian chạy JavaScript phụ trợ, đa nền tảng, mã
nguồn mở, thực thi mã JavaScript bên ngồi trình duyệt web.
Node.js cho phép các nhà phát triển sử dụng JavaScript để viết các cơng cụ dịng
lệnh và cho các tập lệnh chạy tập lệnh phía máy chủ để tạo nội dung trang web động
trước khi trang được gửi tới trình duyệt web
Do đó, Node.js đại diện cho mơ hình "JavaScript everywhere", thống nhất phát
triển ứng dụng web xung quanh một ngơn ngữ lập trình duy nhất, thay vì các ngơn ngữ
khác nhau cho kịch bản phía máy chủ và phía máy khách
2.2. ExpressJS
Express.js, hay Express, là một khung ứng dụng web phụ trợ cho Node.js, được
phát hành dưới dạng phần mềm mã nguồn mở và miễn phí theo Giấy phép MIT. Nó
được thiết kế để xây dựng các ứng dụng web và API. Nó được gọi là khung máy chủ
tiêu chuẩn thực tế cho Node.js
Express đang là một trong những framework phổ biến nhất trong lập trình các
ứng dụng server-side và được áp dụng trong nhiều framework sử dụng Javascript khác
2.3. ReactJs
React là thư viện JavaScript phổ biến nhất để xây dựng giao diện người dùng
(UI). Nó cung cấp tốc độ phản hồi tuyệt vời cho đầu vào của người dùng bằng cách sử
dụng một phương pháp kết xuất trang web mới. ReactJS được phát triển bởi Facebook.
Nó được ra mắt dưới dạng một công cụ JavaScript nguồn mở vào năm 2013. Một trong
những tính năng độc đáo của React là việc trực quan hóa dữ liệu có thể được thực hiện
khơng chỉ ở lớp Máy chủ mà cịn ở lớp Máy khách.
7
Dễ sử dụng, tạo các component nhẹ: React cung cấp khả năng phát triển nhanh
và dễ sử dụng, phù hợp với tình hình hiện tại của dự án.
Các thành phần có thể tái sử dụng: cho các mục đích thơ sơ, đây là một lợi thế
lớn cho sự phát triển nhanh nhẹn.
Nguồn mở khổng lồ: React có một cộng đồng hỗ trợ lớn với nhiều bên tham gia
khác nhau.
2.4. MySQL
MySQL là một hệ thống quản trị cơ sở dữ liệu mã nguồn mở (Relational
Database Management System, viết tắt là RDBMS) hoạt động theo mơ hình
client-server. RDBMS là một phần mềm hay dịch vụ dùng để tạo và quản lý các cơ sở
dữ liệu (Database) theo hình thức quản lý các mối liên hệ giữa chúng.
MySQL có nhiều phiên bản cho các hệ điều hành khác nhau: phiên bản Win32
cho các hệ điều hành dòng
Và tại dự án này để kết nối giữa server và database thì em sử dụng Sequelize
8
CHƯƠNG 3: KHẢO SÁT HIỆN TRẠNG VÀ XÁC ĐỊNH
YÊU CẦU
3.1. Khảo sát hiện trạng
3.1.1.
Đây là website đặt lịch khám chuyên về sản phụ khoa nhưng lại hạn chế mua
gói dịch vụ nên tạo trải nghiệm không rõ ràng cho khách hàng dẫn đến trải nghiệm
không thân thiện với người dùng.
Không biết thông tin bác sĩ trực tiếp làm việc
9
3.1.2. />
Chỉ hỗ trợ duy nhất một bệnh viện, không tạo hệ sinh thái nhiều bệnh viện,
phòng khám
3.1.3. Giải pháp là gì?
Tạo một hệ thống đặt lịch hẹn trực tuyến:
Giúp người bệnh chủ động trong việc khám bệnh
Giúp bác sĩ dễ dàng quản lý bệnh nhân qua website
3.2. Xác định yêu cầu
Xây dựng một trang web cuộc hẹn y tế có cấu trúc phổ biến như sau:
-
Bệnh nhân: hỗ trợ đặt lịch, điền các thông tin cá nhân và y tế, xem thông tin lịch
hẹn theo bộ lọc. Đặt câu hỏi về bệnh lý và nhận được câu trả lời từ ChatGPT
-
Bác sĩ: đăng ký lịch trống, xem lịch hẹn theo tuần và ngày. Quản lý thông tin
bệnh nhân theo bộ lọc và quản lý thông tin thuốc theo bộ lọc
10
-
Người quản lý: quản lý thông tin cơ sở ý tế, thông tin chuyên khoa, thông tin
bác sĩ, xem thông tin lịch hẹn của bác sĩ và thông tin người đăng ký khám bệnh. Đặt
lịch đối với cơ sở y tế là bệnh viện
3.3. Đặc tả chức năng
3.3.1. Bảng requirement dành cho use case
System Functions Main Use Cases
Use Case #
Guest
Login
UC_1.1
Register
UC_1.2
Logout
UC_1.3
Xem thông tin chi tiết chuyên khoa
UC_1.4
Xem thông tin chi tiết phịng khám
UC_1.5
Xem thơng tin chi tiết bác sĩ
UC_1.6
Đăng ký lịch hẹn
UC_1.7
Xem, sửa thông tin cá nhân
UC_1.7
Đánh giá buổi khám bệnh
UC_1.8
Hủy lịch đăng ký
UC_1.9
Xem thông tin đơn thuốc
UC_1.10
Xem thêm thông tin về bệnh
UC_1.11
Thêm người dùng
UC_2.1
Xóa người dùng
UC_2.2
Patient
Admin
11
Sửangười dùng
UC_2.3
Thêm thông tin bổ sung của bác sĩ
UC_2.4
Sửa thông tin bổ sung của bác sĩ
UC_2.5
Quản lý lịch hẹn của bác sĩ
UC_2.6
Thêm thơng tin chun khoa
UC_2.7
Xóa thơng tin chun khoa
UC_2.8
Sửa thơng tin chun khoa
UC_2.9
Thêm phịng khám
UC_2.10
Xóa phịng khám
UC_2.11
Sửa phịng khám
UC_2.12
Quản lý lịch khám bệnh
UC_3.1
Xem lịch khám bệnh theo ngày
UC_3.2
Điền thông tin đơn thuốc cho bệnh nhân
UC_3.3
Xem thông tin đơn thuốc theo ngày
UC_3.4
Xem lịch khám bệnh theo tuần
UC_4.1
Điền thông tin đơn thuốc cho bệnh nhân
UC_4.2
Xem thông tin đơn thuốc theo ngày
UC_4.3
Doctor Clinic
Doctor Hospital
Accountant Clinic
Xem thông tin lịch khám bệnh của các bác sĩ
UC_5.1
Sửa phòng khám
UC_5.2
12
Thêm thơng tin bác sĩ thuộc phịng khám
UC_5.3
Sửa thơng tin bác sĩ thuộc phòng khám
UC_5.4
Accountant Hospital
Quản lý lịch khám bệnh của bác sĩ trực thuộc bệnh UC_6.1
viện
Sửa thông tin bệnh viện
UC_6.2
Sửa thông tin chuyên khoa của bệnh viện
UC_6.3
Xem lịch khám bệnh của các bác sĩ
UC_6.4
Bảng 3.1. Bảng Requirement dành cho use case
3.3.2. Liệt kê các actor
● Bệnh nhân: người có thể đặt lịch hẹn và đánh giá sau khi khám bệnh
● Quản trị viên: người có thể quản lý tất cả người dùng, lịch trình, phịng khám.
● Bác sĩ phịng khám: người có thể tải lên lịch trình có thể đăng ký và tải lên hồ sơ
bệnh án cho từng bệnh nhân
● Bác sĩ bệnh viện: xem thông tin lịch hẹn đã được đăng ký và tải lên hồ sơ bệnh
án cho bệnh nhân
● Quản lý phòng khám: quản lý thơng tin phịng khám, xem thơng tin lịch hẹn
quản lý thông tin của các bác sĩ
● Quản lý bệnh viện: quản lý thông tin và chuyên khoa của bệnh viện, thêm thông
tin lịch hẹn cho bác sĩ của bệnh viện
Luồng module chính: với sự tham gia của các actor: bệnh nhân, quản lý phòng khám,
bác sĩ phòng khám hoặc bệnh nhân, quản lý bệnh viện, bác sĩ bệnh viện
Tình huống:
● Bệnh nhân đặt lịch khám bệnh
● Bệnh nhân đến cơ sở y tế theo lịch hẹn
13
●
●
●
●
Thư ký xác nhận lịch hẹn với bệnh nhân
Bác sĩ tiếp nhận và khám bệnh
Bác sĩ gửi đơn thuốc cho bệnh nhân
Bệnh nhân xem đơn thuốc và đánh giá buổi hẹn(xem thêm thông tin về bệnh lý
với ChatGPT)
Tương ứng với các Use Case: Đặt lịch khám bệnh, Gửi Đơn thuốc, Đánh giá buổi hẹn,
Xem thông tin bệnh nhân
3.3.3. Bảng use case
14
3.3.3.1. Use case login
USE CASE – 1.1
Use Case
No.
Use Case
Name
Author
Date
UC_1.1
Use Case Version
1.0
Login
Nguyen Tran Dang Khoa
26/05/2023
Priority
Low
Actor:
Bệnh nhân, bác sĩ, admin muốn đăng nhập vào hệ thống
Summary:
● Cho phép người dùng đăng nhập vào hệ thống
Goal:
● Người dùng đăng nhập vào hệ thống theo vai trò nhất định
Preconditions:
● Người dùng phải nhập đủ các trường thông tin username/password
Post conditions:
● Success: Người dùng được chuyển đến trang làm việc.
● Fail: Người dùng không thể đăng nhập.
Main Success Scenario:
Step
Actor Action
System Response
1
Người dùng nhập
Hệ thống chuyển password thành các
các trường
kí tự *
username,
password
●
15