Mục tiêu đề tài Đề tài “Xây dựng website hỗ trợ đặt lịch khám online “ sẽ bao gồm các mục tiêu như sau: - Tạo ra một trang web với giao diện đẹp, thân thiện với người dùng và dễ dàng sử
Trang 1ĐỒ ÁN TỐT NGHIỆP CÔNG NGHỆ THÔNG TIN
Trang 2BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP HỒ CHÍ MINH
KHOA ĐÀO TẠO CHẤT LƯỢNG CAO
KHÓA LUẬN TỐT NGHIỆP
SINH VIÊN THỰC HIỆN:
Nguyễn Thiện Nghĩa 19110247 Phạm Đắc Trường 19110307
KHÓA: 2019-2023
GIẢNG VIÊN HƯỚNG DẪN: TS LÊ VĂN VINH XÂY DỰNG WEBSITE HỖ TRỢ ĐẶT LỊCH KHÁM BỆNH
Trang 3CỘ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 28 tháng 05 năm 2023
NHIỆM VỤ ĐỀ TÀI
Họ và tên sinh viên: Phạm Đắc Trường MSSV: 19110307
Họ và tên sinh viên: Nguyễn Văn Nghĩa MSSV: 19110247
Ngành: Công Nghệ Thông Tin
Giảng viên hướng dẫn: TS Lê Văn Vinh
Ngày nhận đề tài:13 / 02 / 2023 Ngày nộp đề tài: 29 / 05 / 2023
1 Tên đề tài: XÂY DỰNG WEBSITE HỖ TRỢ ĐẶT LỊCH KHÁM BỆNH
2 Nội dung thực hiện đề tài
-Tìm hiểu công nghệ ReactJS, NodeJs, MySql
-Phân tích thiết kế xây dựng website
Thời gian thực hiện: 15 tuần (Bắt đầu từ 13/02/2023 đến 29/05/2023)
Chữ ký của SV: ………
Chữ ký của SV: ………
TRƯỞNG NGÀNH GIẢNG VIÊN HƯỚNG DẪN
(Ký, ghi rõ họ tên) (Ký, ghi rõ họ tên)
Trang 4CỘ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ÁO VIÊN HƯỚNG DẪN
Họ và tên sinh viên: Phạm Đắc Trường MSSV: 19110237
Họ và tên sinh viên: Nguyễn Văn Nghĩa MSSV: 19110247
Ngành: Công nghệ Thông tin
Tên đề tài: : XÂY DỰNG WEBSITE HỖ TRỢ ĐẶT LỊCH KHÁM BỆNH
Họ và tên Giáo viên hướng dẫn: TS Lê Văn Vinh
Về nội dung đề tài và khối lượng thực hiện
Ưu điểm:
Khuyết điểm:
Đề nghị cho bảo vệ hay không?
Đánh giá loại:
Điểm:
Tp Hồ Chí Minh, ngày 28 tháng 05 năm 2023
Giảng viên hướng dẫn (Ký & ghi rõ họ tên)
Trang 5Độc lập – Tự do – Hạnh phúc
******
PHIẾU NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN
Họ và tên sinh viên: Phạm Đắc Trường MSSV: 19110307
Họ và tên sinh viên: Nguyễn Văn Nghĩa MSSV: 19110247
Ngành: Công nghệ Thông tin
Tên đề tài: : XÂY DỰNG WEBSITE HỖ TRỢ ĐẶT LỊCH KHÁM BỆNH
Họ và tên Giảng viên phản biện : Ths Lê Thị Minh Châu
Về nội dung đề tài và khối lượng thực hiện
Ưu điểm:
Khuyết điểm:
Đề nghị cho bảo vệ hay không?
Đánh giá loại:
Điểm:
Tp Hồ Chí Minh, ngày 28 tháng 05 năm 2023
Giảng viên phản biện (Ký & ghi rõ họ tên)
Trang 6BẢNG PHÂN CHIA CÔNG VIỆC
Phạm Đắc Trường 19110307 - Code Back-end 100%
- Viết báo cáo 50% TốtNguyễn Thiện Nghĩa 19110247 - Code Front-end 100%
- Viết báo cáo 50% Tốt
Trang 7LỜI CẢM ƠN
Để làm được tốt đề tài và bài báo cáo này, chúng em đã học hỏi và muốn gửi lời cảm ơn giảng viên, thạc sĩ Lê Văn Vinh Chúng em cảm ơn thầy đã đưa ra những lời khuyên từ kinh nghiệm thực tiễn của mình để định hướng cho nhóm em làm đúng các yêu cầu của đề tài đã được giao, luôn hỗ trợ và đưa ra những chỉnh sửa kịp thời giúp chúng em khắc phục nhược điểm và hoàn thành tốt cũng như đúng thời hạn đã đề ra
Đề tài và bài báo cáo được chúng em thực hiện với những kiến thức còn hạn chế cùng nhiều hạn chế khác về kiến thức cũng như kinh nghiệm trong việc thực hiện báo cáo tiểu luận chuyên ngành Do đó, trong quá trình làm có những thiếu sót là điều không thể tránh khỏi nên nhóm mong muốn nghe được những ý kiến đóng góp quý báu của thầy để kiến thức của chúng em được hoàn thiện hơn và nhóm em có thể làm tốt hơn nữa trong những lần sau
Cuối lời, chúng em kính chúc cô luôn có sức khỏe và thành công hơn nữa trong sự nghiệp trồng người Một lần nữa chúng em chân thành cảm ơn thầy!
Tp Hồ Chí Minh, ngày 26 tháng 05 năm 2023
Trang 8Khóa luận tốt nghiệp
LỜI NÓI ĐẦU
Công nghệ thông tin ngày nay được xem là một ngành quan trọng và là động lực thúc đẩy sự phát triển trong các lĩnh vực kinh tế, văn hóa và xã hội Trong thời gian gần đây, chúng ta đã chứng kiến sự tiến bộ liên tục của công nghệ thông tin Việc mua sắm, làm việc, đọc báo hay xem tin tức trở nên ngày càng thuận tiện hơn Nhờ internet, con người có thể thực hiện nhiều hoạt động ngay tại nhà mà không cần phải ra khỏi nhà Mô hình này đã được áp dụng rộng rãi ở các nước phát triển, tuy nhiên ở nước ta, do hạ tầng viễn thông chưa được phát triển hoàn thiện, việc triển khai vẫn gặp nhiều khó khăn, đặc biệt là trong lĩnh vực thanh toán điện tử
Trong những năm tới, thương mại điện tử chắc chắn sẽ được phát triển mạnh tại nước ta Khi đó, chúng ta sẽ chứng kiến sự bùng nổ của thương mại điện tử và sự ra đời của các cửa hàng chỉ tồn tại trên mạng internet - cửa hàng ảo Với mạng internet, mọi người có thể ngồi tại nhà và thực hiện các hoạt động từ mua sắm, làm việc cho đến giao dịch trực tuyến hoặc đặt lịch khám
Khi dân số ngày càng tăng việc đến bệnh viện cũng tạo ra khó khan trong việc chờ các thủ tục được hoàn thành nên nhóm em quyết định thử nghiệm mô hình đặt lịch khám bệnh trực tuyến, sẽ giúp cho mọi người đặt biệt là người lớn có thể đặt lịch khám bệnh
mà không đến bệnh viện đặt lịch trực tiếp
Trang 9MỤC LỤC
LỜI CẢM ƠN i
LỜI NÓI ĐẦU ii
DANH MỤC BẢNG BIỂU v
DANH MỤC HÌNH ẢNH vi
PHẦN MỞ ĐẦU 1
1 Đặt vấn đề 1
2 Mục tiêu đề tài 1
3 Đối tượng nghiên cứu 2
4 Phạm vi nghiên cứu 2
5 Ý nghĩa và khoa học thực tiễn 3
PHẦN NỘI DUNG 4
CHƯƠNG 1 : CƠ SỞ LÝ THUYẾT 4
1.1 Khái niệm các công nghệ sử dụng 4
1.2 Ưu điểm của các công nghệ 7
CHƯƠNG 2 : KHẢO SÁT HIỆN TRẠNG 11
2.1 Từ khóa tìm kiếm 11
2.2 Khảo sát Website hỗ trợ đặt lịch khám bệnh 11
2.3 Nhận xét 20
CHƯƠNG 3: PHÂN TÍCH HỆ THỐNG 22
3.1 Phân tích yêu cầu người dùng 22
3.2 Chức năng và đối tượng của Website 45
Trang 10Khóa luận tốt nghiệp
3.4 Lược đồ Sequence diagram 47
CHƯƠNG 4: THIẾT KẾ GIAO DIỆN 67
4.1 Giao diện phía người dùng 67
4.2 Giao diện phía admin 73
4.3 Giao diện phía doctor 79
PHẦN KẾT LUẬN 82
1 Kết quả đạt được 82
2 Các ưu điểm và những mặt còn hạn chế 82
2.1 Ưu điểm 82
2.2 Hạn chế 82
3 Hướng phát triển 82
4 Cài đặt chương trình 83
4.3 Cài đặt 83
TÀI LIỆU THAM KHẢO 85
Trang 11DANH MỤC BẢNG BIỂU
Bảng 3 1 : Bảng yêu cầu chức năng nghiệp vụ phía khách hàng 22
Bảng 3 2 : Bảng yêu cầu chức năng nghiệp vụ phía bác sĩ 23
Bảng 3 3 : Bảng yêu cầu chức năng nghiệp vụ phía admin 24
Bảng 3 4 : Bảng yêu cầu chức năng hệ thống 24
Bảng 3 5 : Bảng yêu cầu phi chức năng, chất lượng 25
Bảng 3 6 : Bảng đặc tả Use Case “Đăng nhập” 27
Bảng 3 7: Bảng đặc tả Use case “Xem thông tin đặt lịch khám bệnh” 28
Bảng 3 8 : Bảng đặc tả Use Case “Thêm kế hoạch khám bệnh của bác sĩ” 29
Bảng 3 9 : Bảng đặc tả Use Case “Xác nhận lịch hẹn khám bệnh” 30
Bảng 3 10 : Bảng đặc tả Use Case “Tạo thông tin bác sĩ” 31
Bảng 3 11 : Bảng đặc tả Use Case “Cập nhập thông tin bác sĩ” 32
Bảng 3 12: Bảng đặc tả Use Case “Thêm thông tin tài khoản bác sĩ” 33
Bảng 3 13 : Bảng đặc tả Use Case “Sửa tài khoản bác sĩ” 34
Bảng 3 14 : Bảng đặc tả Use Case “Xóa tài khoản bác sĩ” 35
Bảng 3 15 : Bảng đặc tả Use Case “Thêm chuyên khoa” 36
Bảng 3 16 : Bảng đặc tả Use Case “Xóa chuyên khoa” 37
Bảng 3 17 : Bảng đặc tả Use Case “Thêm thông tin chuyên khoa” 38
Bảng 3 18 : Bảng đặc tả Use Case “Xóa phòng khám” 39
Bảng 3 19 : Bảng đặc tả Use Case “Sửa thông tin phòng khám” 40
Bảng 3 20 : Bảng đặc tả Use Case “Sửa thông tin chuyên khoa” 41
Bảng 3 21 : Bảng đặc tả Use Case “ Tra cứu thông tin chuyên khoa” 42
Bảng 3 22 : Bảng đặc tả Use Case “Tra cứu thông tin phòng khám” 43
Bảng 3 23 : Bảng đặc tả Use Case “Tra cứu thông tin bác sĩ” 44
Bảng 3 24 : Bảng đặc tả Use Case đặt lịch khám bệnh 45
Trang 12Khóa luận tốt nghiệp
DANH MỤC HÌNH ẢNH
Hình 1 1: Virtual Dom trong ReactJs [1] 5
Hình 2 1: Trang chủ website Bệnh Viện Pháp 12
Hình 2 2: Chi tiết về các chuyên khoa 13
Hình 2 3: Trang chủ của website Hello Bác sĩ 14
Hình 2 4: Lọc bác sĩ trang Hello Bác sĩ 15
Hình 2 5: Trang chủ website Tâm Anh hospital 17
Hình 2 6: Trang chủ website bệnh viện 115 19
Hình 3 1: Lược đồ Use case phía admin và doctor 25
Hình 3 2: Lược đồ Use Case phía Guest 26
Hình 3 3: Lược đồ Use Case “Đăng nhập” 27
Hình 3 4: Lược đồ Use Case “Xem thông tin đặt lịch khám bệnh” 28
Hình 3 5: Lược đồ Use Case “Thêm kế hoạch khám bệnh” 29
Hình 3 6: Lược đồ Use Case “Xác nhận lịch hẹn khám bệnh” 30
Hình 3 7: Lược đồ Use Case “Tạo thông tin bác sĩ” 31
Hình 3 8: Lược đồ Use Case “Cập nhập thông tin bác sĩ” 32
Hình 3 9: Lược đồ Use Case “Thêm tài khoản bác sĩ” 33
Hình 3 10: Lược đồ Use Case “Sửa tài khoản bác sĩ” 34
Hình 3 11: Lược đồ Use Case “Xóa tài khoản bác sĩ” 35
Hình 3 12: Lược đồ Use Case “Thêm thông tin chuyên khoa” 36
Hình 3 13: Lược đồ Use Case “Xóa chuyên khoa” 37
Hình 3 14: Lược đồ Use Case “Thêm thông tin phòng khám” 38
Hình 3 15: Lược đồ Use Case “Xóa phòng khám” 39
Hình 3 16: Lược đồ Use Case “Sửa thông tin phòng khám” 40
Hình 3 17: Lược đồ Use Case “Sửa thông tin chuyên khoa” 41
Hình 3 18: Lược đồ Use Case “Tra cứu thông tin chuyên khoa” 42
Hình 3 19: Lược đồ Use case “Tra cứu thông tin phòng khám” 43
Trang 13Hình 3 22: Lược đồ lớp 47
Hình 3 23: Lược đồ tuần tự “Đăng nhập” 48
Hình 3 24: Lược đồ tuần tự “Đặt lịch khám bệnh” 49
Hình 3 25: Lược đồ tuần tự “Tra cứu thông tin phòng khám” 50
Hình 3 26: Lược đồ tuần tự “Tra cứu thông tin bác sĩ” 51
Hình 3 27: Lược đồ tuần tự “Sửa thông tin phòng khám” 52
Hình 3 28: Lược đồ tuần tự “Xóa phòng khám” 53
Hình 3 29: Lược đồ tuần tự “Thêm phòng khám” 54
Hình 3 30: Lược đồ tuần tự “Xóa tài khoản bác sĩ” 55
Hình 3 31: Lược đồ tuần tự “ Sửa tài khoản bác sĩ” 56
Hình 3 32: Lược đồ tuần tự “Thêm tài khoản bác sĩ” 57
Hình 3 33: Lược đồ tuần tự “Xác nhận lịch hẹn khám bệnh” 58
Hình 3 34: Lược đồ tuần tự “Tạo thông tin bác sĩ” 59
Hình 3 35: Lược đồ tuần tự “Cập nhập thông tin bác sĩ” 60
Hình 3 36: Lược đồ tuần tự “Tra cứu thông tin chuyên khoa” 61
Hình 3 37: Lược đồ đồ tuần tự “Xóa chuyên khoa” 62
Hình 3 38: Lược đồ tuần tự “Thêm chuyên khoa” 63
Hình 3 39: Lược đồ tuần tự “Sửa thông tin chuyên khoa” 64
Hình 3 40: Lược đồ tuần tự “ Xem lịch hẹn khám bệnh” 65
Hình 3 41: Lược đồ tuần tự “Thêm kế hoạch khám bệnh” 66
Hình 4 1: Giao diện trang chủ 67
Hình 4 2: Các chuyên khoa phổ biến 68
Hình 4 3: Các cơ sở y tế nổi bật 68
Hình 4 4: Bác sĩ nổi bật trong tuần 68
Hình 4 5: Giao diện trang thông tin chuyên khoa 69
Hình 4 6: Hình các bác sĩ thuộc chuyên khoa 69
Hình 4 7: Giao diện bác sĩ chưa có thông tin 70
Hình 4 8: Giao diện bác sĩ đã có thông tin 71
Trang 14Khóa luận tốt nghiệp
Hình 4 10: Các bác sĩ thuộc phòng khám 72
Hình 4 11: Trang đặt lịch khám bệnh 73
Hình 4 12: Giao diện trang đăng nhập 74
Hình 4 13: Trang quản lí tài khoản bác sĩ 75
Hình 4 14: Bảng tài khoản bác sĩ và quản trị 75
Hình 4 15: Trang tạo thông tin bác sĩ 76
Hình 4 16: Trang thêm kế hoạch khám bệnh 76
Hình 4 17: Giao diện trang quản lí phòng khám 77
Hình 4 18: Chỉnh sửa thông tin phòng khám 77
Hình 4 19: Trang quản lí chuyên khoa 78
Hình 4 20: Chỉnh sửa xóa thông tin chuyên khoa 78
Hình 4 21: Giao diện trang chỉnh sửa quản lí chuyên khoa 79
Hình 4 22: Giao diện trang thêm kế hoạch khám bệnh 79
Hình 4 23 : Giao diện trang quản lí bệnh nhân khám bệnh 80
Hình 4 24: Gửi thông tin khám bệnh 80
Trang 15PHẦN MỞ ĐẦU
1 Đặt vấn đề
Trong thời đại công nghệ số hiện nay, việc sử dụng internet đã trở thành một phần không thể thiếu trong cuộc sống hàng ngày của chúng ta Cùng với sự phát triển mạnh mẽ của các công nghệ thông tin và viễn thông, việc truy cập vào thông tin và dịch vụ trực tuyến đã trở nên phổ biến và thuận tiện hơn bao giờ hết Trong lĩnh vực y tế, việc đặt lịch khám trực tuyến đang dần trở thành xu hướng, mang lại nhiều lợi ích đáng kể cho cả bệnh nhân và các nhà cung cấp dịch vụ y tế
Tuy nhiên, hiện tại vẫn còn nhiều hạn chế và thách thức trong việc đặt lịch khám trực tuyến Một số bệnh viện và cơ sở y tế vẫn chưa áp dụng hệ thống đặt lịch trực tuyến, khiến cho việc đặt lịch khám trở nên khó khăn và tốn thời gian cho bệnh nhân Hơn nữa, các hệ thống đặt lịch hiện có không đáp ứng đầy đủ các nhu cầu và tiện ích của người dùng Vì vậy, việc tạo ra một website hỗ trợ đặt lịch khám online sẽ giúp cải thiện tình hình hiện tại và mang lại lợi ích cho cả bệnh nhân và các nhà cung cấp dịch vụ y tế
2 Mục tiêu đề tài
Đề tài “Xây dựng website hỗ trợ đặt lịch khám online “ sẽ bao gồm các mục tiêu như sau:
- Tạo ra một trang web với giao diện đẹp, thân thiện với người dùng và dễ dàng
sử dụng Người dùng cần có thể tìm thông tin về bác sĩ, các phòng khám và lựa chọn lịch khám phù hợp một cách dễ dàng
- Hệ thống này nên cho phép bác sĩ cập nhật lịch trình, xem và xác nhận các cuộc hẹn đã đặt và quản lý thông tin bệnh nhân một cách thuận tiện
- Xây dựng các tính năng người dùng cần có thể chọn bác sĩ, phòng khám, và ngày giờ khám một cách dễ dàng và nhanh chóng thông qua trang web
Trang 16Chương 1: Phần mở đầu
- Cung cấp tính năng nhắc nhở và thông báo cho người dùng để đảm bảo họ không bỏ lỡ cuộc hẹn khám bệnh Hệ thống sẽ gửi thông báo qua email khi người dung đặt lịch thành công
3 Đối tượng nghiên cứu
Đề tài "Xây dựng website hỗ trợ đặt lịch khám bệnh" tập trung vào hai đối tượng chính, bao gồm:
- Kiến thức thực tiễn để quản lý và vận hành hệ thống hỗ trợ đặt lịch khám bệnh: Nghiên cứu về quy trình quản lý người dùng, lịch trình khám bệnh và các thống
kê liên quan Đồng thời, tập trung nghiên cứu về quy trình đặt lịch khám, xử lý đơn đặt lịch và giao tiếp với bệnh nhân
- Công nghệ áp dụng trong xây dựng website: Nghiên cứu về các công nghệ phù hợp như RESTful API, ReactJS, MySQL và các thư viện hỗ trợ để xây dựng hệ thống website Mục tiêu là xây dựng các API cho phép truy xuất, thao tác dữ liệu và xử lý giao diện tương tác với người dùng một cách chính xác, bảo mật
và hiệu quả
Với sự kết hợp giữa kiến thức thực tiễn và các công nghệ áp dụng, đề tài này hướng đến việc xây dựng một website hỗ trợ đặt lịch khám bệnh hiệu quả, đáp ứng nhu cầu của người dùng và mang lại trải nghiệm tốt trong quá trình tương tác với
hệ thống
4 Phạm vi nghiên cứu
Đề tài chủ yếu áp dụng các kiến thức đã nghiên cứu trước đó vào hệ thống thực tế, vì thế phạm vi nghiên cứu của đề tài nằm ở mức xử lý các tác vụ cơ bản của một website và ứng dụng đặt lịch khám như là: xem thông và chi tiết các bác
sĩ, chuyên khoa và phòng khám, đặt lịch khám bệnh
Trang 175 Ý nghĩa và khoa học thực tiễn
Sau khi hoàn thiện đề tài, nhóm nghiên cứu đã rút ra nhiều kinh nghiệm quý giá cũng như bài học bổ ích, đặc biệt liên quan đến việc áp dụng các công nghệ hiện đang được sử dụng rộng rãi trong thực tế Đồng thời, đề tài cũng đã đóng góp một phần nhỏ trong việc đơn giản hóa quá trình đặt lịch khám bệnh cho mọi người
Khi triển khai website hỗ trợ đặt lịch khám bệnh trong thực tế, việc đặt lịch trực tuyến sẽ trở nên dễ dàng hơn và giúp tối ưu thời gian cho mọi người khi lựa chọn bác
sĩ Điều này mang lại lợi ích quan trọng cho cả bệnh nhân và các cơ sở y tế, giúp tiết kiệm thời gian và tăng cường trải nghiệm người dùng
Tóm lại, đề tài đã đạt được mục tiêu của việc xây dựng một hệ thống đặt lịch khám bệnh trực tuyến, góp phần đơn giản hóa quá trình khám bệnh và mang lại lợi ích cho
cả bệnh nhân và cơ sở y tế
Trang 18Chương 1: Cơ sở lý thuyết
PHẦN NỘI DUNG
CHƯƠNG 1 : CƠ SỞ LÝ THUYẾT
1.1 Khái niệm các công nghệ sử dụng
1.1.1 ReactJs
ReactJS là một thư viện JavaScript phổ biến được sử dụng để xây dựng giao diện người dùng (UI) cho các ứng dụng web Được phát triển bởi Facebook, ReactJS giúp tạo ra các giao diện tương tác phong phú và dễ bảo trì
ReactJS áp dụng một khái niệm gọi là "component" để xây dựng giao diện người dùng Mỗi thành phần đại diện cho một phần của giao diện và có thể được kết hợp để tạo thành các giao diện phức tạp Việc sử dụng component giúp tái sử dụng mã, tăng tính module và giúp dễ dàng duy trì và mở rộng ứng dụng
ReactJS sử dụng một nguyên tắc gọi là "Virtual DOM" để tăng hiệu suất Virtual DOM là một phiên bản nhẹ của DOM (Document Object Model) thực tế, được duy trì bởi React Khi dữ liệu thay đổi, React so sánh Virtual DOM mới với phiên bản trước đó và chỉ cập nhật những phần thay đổi thực sự trong DOM thực
tế Điều này giúp giảm thiểu việc tác động trực tiếp lên DOM và cải thiện hiệu suất ứng dụng
Một trong những đặc điểm nổi bật của ReactJS là khả năng tương tác mạnh
mẽ Nó cho phép cập nhật dữ liệu và hiển thị những thay đổi tương ứng trên giao diện người dùng một cách nhanh chóng và mượt mà
ReactJS cũng hỗ trợ việc xử lý dữ liệu hai chiều (two-way data binding) thông qua việc kết hợp với thư viện quản lý trạng thái như Redux hoặc MobX Điều này giúp quản lý trạng thái ứng dụng dễ dàng và đồng bộ hóa dữ liệu giữa các thành phần
Tóm lại, ReactJS là một công nghệ mạnh mẽ và phổ biến để xây dựng giao
Trang 19Virtual DOM và khả năng tương tác mạnh mẽ, ReactJS đơn giản hóa việc phát triển ứng dụng web phức tạp và cung cấp trải nghiệm người dùng tốt hơn
Hình 1 1: Virtual Dom trong ReactJs [1]
1.1.2 NodeJs
Node.js là một môi trường chạy mã JavaScript phía máy chủ (server-side) dựa trên Chrome V8 JavaScript engine Nó cung cấp khả năng xây dựng các ứng dụng web và dịch vụ mạng hiệu suất cao và có khả năng mở rộng
Node.js sử dụng mô hình không đồng bộ (asynchronous) và sự kiện driven) để xử lý yêu cầu Điều này cho phép nó xử lý nhiều yêu cầu cùng một lúc
(event-mà không phải chờ đợi yêu cầu trước hoàn thành, tăng cường hiệu suất ứng dụng
Với npm (Node Package Manager), Node.js cung cấp hàng ngàn thư viện và module cho phát triển ứng dụng Npm không chỉ giúp bạn sử dụng các thư viện sẵn
có mà còn cho phép chia sẻ gói của bạn với cộng đồng phát triển Node.js
Node.js có khả năng mở rộng vượt trội Nhờ cấu trúc không đồng bộ và khả năng xử lý đa luồng, nó có thể xử lý hàng nghìn yêu cầu đồng thời mà không gây block hoặc làm chậm hệ thống Điều này làm cho Node.js trở thành lựa chọn phổ biến cho các ứng dụng đòi hỏi khả năng mở rộng cao
Trang 20Chương 1: Cơ sở lý thuyết
Với một cộng đồng phát triển đông đảo, Node.js cung cấp tài liệu và hỗ trợ phong phú Điều này giúp việc học và sử dụng Node.js trở nên dễ dàng và thuận tiện
1.1.3 MySQL
MySQL là một hệ quản trị cơ sở dữ liệu quan hệ mã nguồn mở phổ biến Nó được phát triển bởi Oracle Corporation và có sự hỗ trợ đông đảo từ cộng đồng phát triển
MySQL được sử dụng rộng rãi trong các ứng dụng web và hệ thống quản lý
cơ sở dữ liệu do tính bảo mật, độ tin cậy và hiệu suất cao Nó hỗ trợ ngôn ngữ truy vấn SQL (Structured Query Language), cho phép bạn tương tác với cơ sở dữ liệu bằng các câu lệnh truy vấn
Một trong những đặc điểm nổi bật của MySQL là khả năng xử lý dữ liệu lớn và khả năng mở rộng Nó có thể xử lý hàng triệu bản ghi và hỗ trợ các công nghệ như phân vùng (partitioning) và sao chép dữ liệu (replication) để tăng cường hiệu suất và khả năng chịu tải của hệ thống
MySQL cung cấp các tính năng quản lý cơ sở dữ liệu như tạo, sửa đổi và xóa cơ sở dữ liệu, bảng và chỉ mục Nó hỗ trợ các tính năng bảo mật như quản lý người dùng, phân quyền truy cập và mã hóa dữ liệu.Ngoài ra, MySQL cũng tương thích với nhiều ngôn ngữ lập trình và framework phát triển ứng dụng phổ biến Nó cung cấp các giao diện lập trình (API) để tương tác với cơ sở dữ liệu từ các ngôn ngữ như PHP, Python, Java, Node.js và nhiều ngôn ngữ khác
Tóm lại, MySQL là một hệ quản trị cơ sở dữ liệu quan hệ mạnh mẽ và phổ biến, được sử dụng rộng rãi trong các ứng dụng web và hệ thống quản lý cơ sở dữ liệu Với tính bảo mật, độ tin cậy và khả năng mở rộng, MySQL là một lựa chọn tuyệt vời cho việc lưu trữ và quản lý dữ liệu
Trang 211.1.4 Redux
Redux là một thư viện quản lý trạng thái (state management) trong các ứng dụng web phát triển dựa trên JavaScript Nó được sử dụng rộng rãi trong các ứng dụng React để quản lý trạng thái của ứng dụng một cách hiệu quả và dễ dàng Redux hoạt động dựa trên một nguyên tắc cơ bản là sử dụng một "store" duy nhất để lưu trữ toàn bộ trạng thái của ứng dụng Trạng thái này được biểu diễn dưới dạng một cây đối tượng bất biến (immutable object tree) Bất kỳ thay đổi nào vào trạng thái đều phải thông qua các hành động (actions) được gửi tới store Hành động này mô tả một sự thay đổi cụ thể trong trạng thái của ứng dụng Redux cũng cho phép sử dụng các "middleware" để mở rộng chức năng của
nó Middleware có thể được sử dụng để xử lý các tác vụ bất đồng bộ, ghi nhật ký, kiểm tra điều kiện và thực hiện các thay đổi khác vào luồng xử lý hành động Một trong những lợi ích quan trọng của Redux là giúp quản lý trạng thái của ứng dụng một cách tổ chức và dễ dàng Nó giúp ràng buộc dữ liệu và trạng thái với giao diện người dùng, cho phép cập nhật trạng thái một cách nhất quán và dễ dàng theo dõi các thay đổi
Tổng kết lại, Redux là một thư viện quản lý trạng thái mạnh mẽ và phổ biến trong cộng đồng phát triển React, giúp quản lý trạng thái ứng dụng một cách hiệu quả và dễ dàng, đồng thời cung cấp khả năng mở rộng thông qua việc sử dụng middleware
1.2 Ưu điểm của các công nghệ
ReactJS:
Tái sử dụng mã: ReactJS cho phép xây dựng các thành phần giao diện có thể tái sử dụng Điều này giúp giảm sự lặp lại mã, tăng tính module và giảm thời gian phát triển
Trang 22Chương 1: Cơ sở lý thuyết
Virtual DOM: ReactJS sử dụng Virtual DOM để tối ưu hóa hiệu suất Khi
dữ liệu thay đổi, React so sánh Virtual DOM mới với phiên bản trước đó và chỉ cập nhật những phần thay đổi thực sự trong DOM thực tế Điều này giúp cải thiện tốc độ và hiệu suất của ứng dụng
Khả năng tương tác: ReactJS cung cấp khả năng tương tác mạnh mẽ, cho phép cập nhật dữ liệu và hiển thị những thay đổi tương ứng trên giao diện người dùng một cách nhanh chóng và mượt mà Điều này tạo ra trải nghiệm người dùng tốt hơn
Hỗ trợ cộng đồng: ReactJS có một cộng đồng phát triển đông đảo và phong phú Có nhiều tài liệu, hướng dẫn và thư viện hỗ trợ, giúp việc học và sử dụng ReactJS trở nên thuận tiện và dễ dàng
Cộng đồng phát triển mạnh mẽ: Node.js có một cộng đồng phát triển đông đảo và nhiều nguồn tài liệu học tập Cộng đồng này cung cấp hỗ trợ, góp ý và chia
sẻ kiến thức để giúp người dùng Node.js dễ dàng tiếp cận và giải quyết các vấn đề phát triển
Đa nền tảng: Node.js có thể chạy trên nhiều nền tảng, bao gồm Windows, macOS và Linux Điều này cho phép phát triển và triển khai ứng dụng trên nhiều môi trường khác nhau
Trang 23Độ tin cậy và bảo mật: MySQL cung cấp các tính năng bảo mật như quản lý người dùng, phân quyền truy cập và mã hóa dữ liệu Nó cũng có tính năng khôi phục dữ liệu, giúp đảm bảo tính toàn vẹn và tin cậy của cơ sở dữ liệu
Hiệu suất và khả năng mở rộng: MySQL có khả năng xử lý dữ liệu lớn và khả năng mở rộng cao Nó hỗ trợ các công nghệ như phân vùng và sao chép dữ liệu để tăng cường hiệu suất và khả năng chịu tải của hệ thống
Tương thích đa ngôn ngữ: MySQL tương thích với nhiều ngôn ngữ lập trình
và framework phát triển ứng dụng phổ biến Điều này giúp nâng cao tính linh hoạt
và tiện lợi trong việc phát triển ứng dụng
Cộng đồng hỗ trợ: MySQL có một cộng đồng phát triển rộng lớn, cung cấp tài liệu, hướng dẫn và hỗ trợ Cộng đồng này giúp người dùng giải quyết các vấn
đề phát triển, chia sẻ kiến thức và tìm kiếm giải pháp hiệu quả
Redux :
Quản lý trạng thái dễ dàng: Redux giúp quản lý trạng thái ứng dụng một cách dễ dàng và hiệu quả Trạng thái của ứng dụng được lưu trữ trong một "store" duy nhất, làm cho việc theo dõi và cập nhật trạng thái trở nên đơn giản
Dữ liệu ứng dụng dễ dàng chia sẻ: Redux cho phép dữ liệu và trạng thái được chia sẻ một cách dễ dàng giữa các thành phần của ứng dụng Điều này giúp tránh việc truyền dữ liệu qua lại giữa các thành phần một cách không cần thiết và giúp tạo ra một cấu trúc ứng dụng rõ ràng
Tính nhất quán và dễ dàng theo dõi các thay đổi: Redux sử dụng một quy trình đơn giản và định rõ để cập nhật trạng thái của ứng dụng Mọi thay đổi vào trạng thái đều phải thông qua các hành động (actions) và qua các reducer để trả về trạng thái mới Điều này giúp duy trì tính nhất quán của trạng thái và dễ dàng theo dõi các thay đổi trong ứng dụng
Dễ dàng kiểm thử: Redux giúp việc kiểm thử ứng dụng trở nên dễ dàng hơn
Vì trạng thái của ứng dụng được lưu trữ trong store và các thay đổi trạng thái được
Trang 24Chương 1: Cơ sở lý thuyết
thực hiện thông qua các hành động và reducer, nên việc kiểm thử các phần của ứng dụng trở nên đơn giản và có thể tách biệt
Mở rộng và tích hợp dễ dàng: Redux hỗ trợ các middleware để mở rộng chức năng của nó Middleware cho phép thực hiện các tác vụ bất đồng bộ, ghi nhật
ký, kiểm tra điều kiện và thực hiện các thay đổi khác vào luồng xử lý hành động Điều này giúp Redux tích hợp dễ dàng với các công nghệ và thư viện khác
Trang 25CHƯƠNG 2 : KHẢO SÁT HIỆN TRẠNG
2.1 Từ khóa tìm kiếm
Nhằm phục vụ tốt nhất cho việc thực hiện đề tài cuối kì của môn học, sau khi thảo luận chọn ra đề tài là “Xây dựng Website hỗ trợ đặt lịch khám bệnh” Nhóm
em đã tham khảo các Website trên Internet để học hỏi và xem các trang website đó
có những chức năng tiêu biểu nào từ đó kết hợp với ý tưởng đã có hướng tới xây dựng một Website hợp nhất với tiêu chuẩn môn học và khả năng nhóm
Trước hết để đánh giá được khách quan các từ khóa tìm kiếm đã được sử dụng như: "20 Website hỗ trợ đặt lịch khám bệnh được nhiều người truy cập ở Việt Nam", "Website hỗ trợ đặt lịch khám bệnh nổi tiếng nhất Việt Nam" Sau khi nhập
từ khóa tìm kiếm nhóm đã chọn các kết quả hiển thị gần nhất và các web hỗ trợ đặt lịch khám có thể vừa có số người truy cập đông hoặc cũng có thể là các bệnh viện
đã có tiếng tăm ở thực tế để đưa ra các đánh giá chân thực nhất hỗ trợ cho việc đưa
ra các tiêu chuẩn khi tạo hệ thống
Hoàn thành weiste với khả năng và có kết quả tốt nhất, khi các kết quả tìm kiếm được hiển thị nhóm em đã không hẳn chỉ khảo sát các Website có độ nhận diện cao, được nhiều người truy cập mà còn tham khảo những Website kinh doanh thông thường chẳng hạn như: Booking care…
Trang 26Chương 2: Khảo sát hiện trạng
thân thiện, dễ dàng để tìm kiếm các bác sĩ và các bệnh viện, và cho phép người dùng đặt lịch khám bệnh trong vài bước đơn giản
Hình 2 1: Trang chủ website Bệnh Viện Pháp
a Nội dung Website
Trang web đặt lịch khám bệnh nên cung cấp đầy đủ thông tin về bác sĩ và bệnh viện, bao gồm tên, địa chỉ, số điện thoại và các chuyên khoa để người dùng có thể chọn được bác sĩ và bệnh viện phù hợp với nhu cầu của mình
b Các chức năng của Website
- Đặt lịch khám bệnh: Cho phép người dùng đặt lịch khám bệnh trực tuyến với bác
sĩ và bệnh viện mà họ đã chọn
- Tìm kiếm bác sĩ và bệnh viện: Cung cấp công cụ tìm kiếm để người dùng có thể tìm kiếm bác sĩ và bệnh viện theo chuyên khoa, địa điểm, bảo hiểm, giờ làm việc
và nhiều tiêu chí khác
- Xem thông tin chi tiết về bác sĩ và bệnh viện: Cung cấp thông tin chi tiết về bác sĩ
và bệnh viện, bao gồm tên, hình ảnh địa chỉ, số điện thoại, lịch trình làm việc và
Trang 27các chuyên khoa để người dùng có thể chọn được bác sĩ và bệnh viện phù hợp với nhu cầu của mình
- Tư vấn y tế trực tuyến: Cung cấp chức năng tư vấn y tế trực tuyến để giải đáp thắc mắc của người dùng về các vấn đề liên quan đến sức khỏe
- Chi tiết về các chuyên khoa và mỗi chuyên khoa sẽ có nhiều bác sĩ đảm nhiệm
Hình 2 2: Chi tiết về các chuyên khoa
c Bố cục trang web
- Header: Gồm có các mục như tên dịch vụ y tế, hướng dẫn người bệnh, thai sản, tin tức, giới thiệu và liên hệ…
- Footer: Thông tin liên lạc, địa chỉ và các liên kết website
d Nhận xét ưu và nhược điểm
Ưu điểm:
Trang 28Chương 2: Khảo sát hiện trạng
Người dùng có thể dễ dàng tìm kiếm các bác sĩ và bệnh viện phù hợp với nhu cầu của mình, đặt lịch khám bệnh, quản lý lịch trình khám bệnh và thanh toán phí mà không cần phải tốn công sức nhiều
Truy cập thông tin bác sĩ và bệnh viện: Người dùng có thể xem thông tin chi tiết về các bác sĩ và bệnh viện
Nhược điểm:
Chưa có phần bình luận
2.2.2 Website đặt lịch khám bệnh Hello Bác sĩ
https://hellobacsi.com/care/
Hình 2 3: Trang chủ của website Hello Bác sĩ
a Nội dung website
Hello Bacsi giúp khách hàng có thể đặt lịch khám, gồm các chuyên gia sức khỏe và y bác sĩ từ nhiều chuyên khoa, với đầy đủ chứng nhận, chứng chỉ hành nghề, hỗ trợ xây dựng và củng cố nội dung theo chuyên môn của mình Trách nhiệm của chuyên gia là bảo đảm tính chính xác về mặt y học ở những nội dung
Trang 29đăng tải trên Hello Bacsi, thường xuyên cập nhật các thông tin mới về khoa học, nghiên cứu và sức khỏe
b Chức năng tiêu biểu
- Đăng kí tư vấn khám sức khỏe
-Tư vấn y tế trực tuyến: Cung cấp chức năng tư vấn y tế trực tuyến để giải đáp thắc mắc của người dùng về các vấn đề liên quan đến sức khỏe
- Đăng nhập có thể liên kết bằng FB hoặc qua Email
- Tìm kiếm bác sĩ hoặc chuyên khoa: Cho phép người dùng tìm kiếm bác sĩ hoặc chuyên khoa mà họ cần khám bệnh ở thành phố mà họ mong muốn
Hình 2 4: Lọc bác sĩ trang Hello Bác sĩ
- Thanh toán trực tuyến: Cho phép người dùng thanh toán trực tuyến cho các dịch
vụ y tế mà họ sử dụng trên website
Trang 30Chương 2: Khảo sát hiện trạng
- Xem thông tin chi tiết về bác sĩ và bệnh viện: Cung cấp thông tin chi tiết về bác sĩ
và bệnh viện, bao gồm tên, hình ảnh địa chỉ, số điện thoại, lịch trình làm việc và các chuyên khoa để người dùng có thể chọn được bác sĩ và bệnh viện phù hợp với nhu cầu của mình
Bố cục Website được phân chia hợp lý Thiết kế dễ sử dụng và đơn giản
Sắp xếp và phân loại các chuyên mục bệnh để người dùng có thể lựa chọn
Nhược điểm:
Chưa có chức năng bình luận
2.2.3 Website đặt lịch khám bệnh Tâm Anh hospital
https://tamanhhospital.vn/
Trang 31Hình 2 5: Trang chủ website Tâm Anh hospital
a Các nội dung website
Hiển thị những dịch vụ khám chữa bệnh chất lượng cao về y khoa, tiếp cận phương pháp, kỹ thuật và phác đồ hiện đại, được hưởng các dịch vụ cao cấp như ở nước ngoài Có những chuyên gia bác sĩ giỏi về chuyên môn, nhiều kinh nghiệm, bệnh viện đã quy tụ được đội ngũ chuyên gia hàng đầu từ nhiều lĩnh vực như nam khoa tiết niệu, sản phụ khoa, nhi khoa, hô hấp, cơ xương khớp, hỗ trợ sinh sản, tai mũi họng, thần kinh…
b Chức năng tiêu biểu
- Đăng kí đặt lịch khám bệnh: có thể chọn khung giờ, ngày khám, bác sĩ, và địa điểm chi nhánh khám bệnh
- Có nhân viên tư vấn y tế trực tuyến và chat bot
- Có nhiều dịch vụ đặc biệt: như khu vip, chăm sóc thai sản trọn gói,…
- Có phần review bác sĩ
Trang 32Chương 2: Khảo sát hiện trạng
- Các tin tức liên quan đến y học và bệnh viện được cập nhật thường xuyên
Bố cục Website được phân chia hợp lý Thiết kế đơn giản
Sắp xếp và phân loại các chuyên mục bệnh để người dùng có thể lựa chọn
Nhược điểm:
Website hiển thị nhiều bác sĩ nhưng khi vào đặt lịch thì có khí ít khung giờ và bác
sĩ có thể khám
Trang 332.2.4 Website đặt lịch khám bệnh - bệnh viện nhân dân 115
https://benhvien115.com.vn/
Hình 2 6: Trang chủ website bệnh viện 115
a Nội dung Website
Hiển thị những dịch vụ khám chữa bệnh Thông tin các bác sĩ, dịch vụ giải đáp thắc mắc, chăm sóc khách hàng và cho phép đặt lịch khám bệnh online
b Các chức năng chính
- Đăng kí đặt lịch khám bệnh nhanh
- Có tư vấn trực tuyến bằng chat bot:
- Tìm kiếm bác sĩ theo tên, chuyên khoa
- Chức năng hỏi đáp miễn phí với bác sĩ
c Bố cục website
Trang 34Chương 2: Khảo sát hiện trạng
- Header : Giới thiệu , tin tức và hoạt động, dịch vụ khám bệnh, chăm sóc khách hàng, lịch khám, bảng giá, tuyển dụng, thông báo
- Footer : Tên bệnh viện, địa chỉ, thông tin liên lạc
- Màu sắc chủ đạo : Trắng và xanh
d Ưu và nhược điểm
a Nội dung của Website
- Một số điểm về bệnh viện : tên bệnh viện, hình ảnh, địa chỉ, số đt, email, ngành nghề kinh doanh
- Phân loại bệnh : danh mục từng loại bệnh, tên bệnh, hình ảnh, mô tả…
- Tin tức của website: nội dung tin tức trong nước va ngoài nước, sự kiện đang
và sắp diễn ra, hoạt động công ty, thông liên quan trong ngành trong hoặc ngoài nước
b Chức năng (User)
- Xem thông tin chi tiết giới thiệu về bác sĩ và phòng khám
- Xem các list hình ảnh, chi tiết sản phẩm của website
Trang 35- Chức năng liên hệ: Cho phép khách liên hệ, phản hồi, đặt hàng lịch khám bệnh thông qua hệ thống website khi có nhu cầu
Trang 36Chương 3: Phân tích hệ thống
CHƯƠNG 3: PHÂN TÍCH HỆ THỐNG
3.1 Phân tích yêu cầu người dùng
3.1.1 Yêu cầu chức năng
3.1.1.1 Yêu cầu chức năng nghiệp vụ (phân chia theo model / bộ phận)
Khách :
STT Yêu cầu Loại yêu cầu Mô tả / Ràng buộc /
Công thức
Biểu mẫu liên quan (nếu có)
Tra cứu Khách có thể xem mô tả
phòng khám
3 Xem thông
tin chuyên khoa
Tra cứu Khách có thể xem mô tả
chuyên khoa
4 Đặt lịch
khám
Lưu trữ, nhập liệu
Người dùng có thể chọn các bác sĩ mình muốn đặt lịch , sau đó nhập thông tin địa chỉ để đặt lịch
Bảng 3 1 : Bảng yêu cầu chức năng nghiệp vụ phía khách hàng
Bác sĩ :
STT Yêu cầu Loại yêu cầu Mô tả / Ràng buộc /
Công thức
Biểu mẫu liên quan (nếu có)
Trang 371 Đăng nhập Tra cứu, tìm
kiếm
Bác sĩ đã có tài khoản đăng nhập bằng email và password đã đăng ký
2 Thêm kế
hoạch khám bệnh
Lưu trữ, nhập liệu
Bác sĩ có thể thêm kế hoạch khám bệnh
3 Xem lịch
khám bệnh
Tra cứu, tìm kiếm
Bác sĩ có thể tra cứu lịch khám bệnh dựa vào ngày đặt
Bảng 3 2 : Bảng yêu cầu chức năng nghiệp vụ phía bác sĩ
Admin :
STT Yêu cầu Loại yêu cầu Mô tả / Ràng buộc /
Công thức
Biểu mẫu liên quan (nếu có)
1 Quản lý
thông tin bác
sĩ
Lưu trữ, nhập liệu
Admin có thể thêm, thay đổi thông tin của bác sĩ
2 Quản lý các
tài khoản bác
sĩ
Lưu trữ, nhập liệu
Admin có thể thêm sửa, xóa các tài khoản
3 Quản lý
chuyên khoa
Lưu trữ, nhập liệu
Admin có thể thêm, sửa, xóa các chuyên khoa
4 Quản lý
phòng khám
Lưu trữ, nhập liệu
Admin có quyền thêm xóa sửa các phòng khám
Trang 38Chương 3: Phân tích hệ thống
Bảng 3 3 : Bảng yêu cầu chức năng nghiệp vụ phía admin
3.1.1.2 Yêu cầu chức năng hệ thống
1 Giao diện đơn giản, dễ dàng
4 Bảo mật, xác thực thông tin Tính bảo mật
Bảng 3 4 : Bảng yêu cầu chức năng hệ thống
3.1.2 Yêu cầu phi chức năng, chất lượng
1 Phân Quyền Phân quyền cho 3 loại người dung :
Guest,Doctor, Admin
Ở dạng Guest: Người sử dụng được thực hiện nhiều tính năng gồm: xem chi tiết chuyên khoa, bác sĩ và đặt lịch khám
2 Quản lí
người sử dụng
Phần quản lí người dùng: phía admin sẽ xoá tài khoản bác sĩ, tạo mới tài khoản cho bác
sĩ
Trang 393 Quản lí các
chuyên khoa, phòng khám
Quản lí các sản phẩm : Thêm, xóa, sửa các chuyên, khoa phòng khám…
Bảng 3 5 : Bảng yêu cầu phi chức năng, chất lượng
3.1.3 Lược đồ Use Case
Actor doctor and admin:
Hình 3 1: Lược đồ Use case phía admin và doctor
Trang 40Chương 3: Phân tích hệ thống
Actor Guest:
Hình 3 2: Lược đồ Use Case phía Guest