Tải bản đầy đủ (.pdf) (136 trang)

Xây dựng website đặt lịch khám bệnh online

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (23.34 MB, 136 trang )

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



×