CHƯƠNG 1: TỔNG QUAN 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.
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.
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 hoà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 quá 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.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 ngoài trình duyệt web.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.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.
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.
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. Khảo sát hiện trạng 3.vn Đâ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.vn/ 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. 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. 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. Đặc tả chức năng 3. Bảng requirement dành cho use case System Functions Main Use Cases Use Case # Guest Login UC_1.2 Patient 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 Admin Thêm người dùng UC_2.1 Xóa người dùng UC_2.2 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 chuyên khoa UC_2.7 Xóa thông tin chuyên khoa UC_2.8 Sửa thông tin chuyên 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 Doctor Clinic 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 Doctor Hospital 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 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.
Bảng Requirement dành cho use case 3. 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. Bảng use case 14 3.
Use case login USE CASE – 1.1 Use Case UC_1.1 Use Case Version No.0 Use Case Login Name Author Nguyen Tran Dang Khoa Date 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 2 Người dùng nhấn Hệ thống chuyển đến trang làm vào nút đăng nhập việc theo vai trò của họ Alternative Scenario Exceptions No Actor Action System Response 1 Người dùng nhập Thông báo tài khoản không có sai thông tin trong hệ thống username 2 Người dùng nhập Thông báo nhập sai mật khẩu sai thông tin password 3. Use case Đăng ký USE CASE – 1.2 Use Case No.2 Use Case Version 1.