Bối cảnh và vấn đề nghiên cứu
Khóa luận tốt nghiệp "Trang web đặt lịch khám trực tuyến" được thực hiện bởi sinh viên Đặng Huỳnh Hoàng Long (MSSV: 17110173, Lớp: 17110CLST1) và Phạm Ngọc Tiến (MSSV: 17110238, Lớp: 17110CLST3), thuộc Khoa Đào tạo Chất lượng cao, Ngành Công nghệ Phần mềm / Công nghệ Thông tin, Trường Đại học Sư phạm Kỹ thuật Thành phố Hồ Chí Minh, dưới sự hướng dẫn của TS. Nguyễn Thiên Bảo (thời gian thực hiện từ ngày 07/03/2022 đến ngày 18/06/2022).
Về bối cảnh thực tiễn, tác giả xuất phát từ tình hình các hoạt động khám chữa bệnh y tế cũng như việc di chuyển gặp nhiều cản trở do tác động của đại dịch bệnh. Bên cạnh đó, sự phổ cập ngày càng sâu rộng của Internet và tiến bộ công nghệ đã thúc đẩy xu hướng số hóa trong lĩnh vực y tế. Rất nhiều bác sĩ, phòng khám tư nhân và các nhà khởi nghiệp đã nhận thấy tiềm năng của mô hình kinh doanh trực tuyến nhằm cung cấp dịch vụ tiện ích, tiếp cận nguồn bệnh nhân mới vượt qua rào cản địa lý truyền thống, đồng thời tối ưu hóa nguồn thu và tăng cường nhận diện dịch vụ trên không gian mạng.
Mục tiêu nghiên cứu và triển khai của đề tài bao gồm các điểm trọng tâm sau:
- Xây dựng một ứng dụng web phục vụ việc đặt lịch khám sức khỏe trực tuyến dành cho người dùng và các cơ sở y tế.
- Vận dụng kiến trúc giao tiếp RESTful API kết hợp với các công nghệ phần mềm chuyên dụng gồm nền tảng Node.js ở phía máy chủ, thư viện ReactJS ở phía giao diện người dùng và hệ quản trị cơ sở dữ liệu quan hệ MySQL.
- Cung cấp phân hệ quản lý tập trung cho quản trị viên nhằm kiểm soát hồ sơ bác sĩ, phân quyền tài khoản, xét duyệt tư cách hành nghề trên hệ thống và theo dõi thống kê doanh thu.
- Cung cấp giải pháp cho người bệnh chủ động lựa chọn khung giờ, chuyên khoa, bác sĩ phù hợp và thực hiện quy trình đăng ký, thanh toán tiện lợi, chính xác và an toàn.
Nhiệm vụ nghiên cứu được phân định thành 8 hạng mục công việc cụ thể:
- Xây dựng trang chủ hiển thị thông tin giới thiệu bác sĩ và các chuyên khoa phòng khám phục vụ.
- Xây dựng hệ thống đăng nhập phân quyền cho 3 nhóm đối tượng: Quản trị viên, Bác sĩ và Người dùng.
- Xây dựng các trang đăng ký tài khoản dành riêng cho Bác sĩ và Người dùng.
- Xây dựng trang chi tiết bác sĩ cung cấp thông tin lý lịch, nơi khám, lịch làm việc và chức năng đặt hẹn khám bệnh.
- Xây dựng trang chuyên khoa tổng hợp danh sách bác sĩ thuộc chuyên khoa đó và hỗ trợ công cụ lọc theo tỉnh thành.
- Xây dựng phân hệ quản trị (Admin) để quản lý tài khoản người dùng, tài khoản bác sĩ, danh mục chuyên khoa, thiết lập kế hoạch khám bệnh và phê duyệt hoặc từ chối đơn đăng ký hành nghề của bác sĩ.
- Xây dựng phân hệ dành cho bác sĩ để tự cập nhật thông tin cá nhân, đăng ký/điều chỉnh khung giờ khám bệnh và xử lý các đơn đặt lịch hẹn của bệnh nhân.
- Xây dựng phân hệ báo cáo thống kê dành cho quản trị viên về số lượng đơn đặt lịch khám và doanh thu hệ thống.
Về đối tượng và phạm vi nghiên cứu:
- Đối tượng nghiên cứu: Người có nhu cầu kiểm tra, chăm sóc sức khỏe; đội ngũ y bác sĩ cần tìm kiếm và quản lý lịch hẹn bệnh nhân; người quản trị vận hành hệ thống y tế trực tuyến.
- Phạm vi nghiên cứu: Ứng dụng tập trung giải quyết bài toán giảm thiểu thời gian chờ đợi chen chúc tại phòng khám, hạn chế nguy cơ tiếp xúc đông người trong điều kiện dịch bệnh; hệ thống vận hành trên môi trường mạng máy tính, cho phép người dùng truy cập bằng trình duyệt web mọi lúc, mọi nơi.
Cơ sở lý thuyết và công nghệ áp dụng
Đề tài áp dụng các nền tảng kỹ thuật và lý thuyết phát triển phần mềm bao gồm:
Nền tảng phía máy chủ (Server-side): Node.js và hệ sinh thái liên quan
- Node.js: Nền tảng thực thi mã JavaScript phía máy chủ xây dựng trên nền tảng V8 JavaScript Engine. Hệ thống tận dụng kiến trúc hướng sự kiện với cơ chế Non-blocking I/O vận hành trên một luồng đơn (single-thread) thông qua Event Loop để xử lý đồng thời nhiều kết nối mạng với mức tiêu thụ bộ nhớ RAM thấp. Tác giả vận dụng các phương pháp xử lý bất đồng bộ như Callback, Promise và cú pháp
async/await.
- Trình quản lý gói (Package Manager): Khóa luận nghiên cứu việc quản trị các thư viện phụ thuộc thông qua npm và yarn. Môi trường triển khai thực tế yêu cầu phiên bản Node.js version 14.
- Strapi Framework: Được nghiên cứu trong tài liệu như một giải pháp headless CMS hỗ trợ xây dựng sẵn các endpoint RESTful API, cung cấp khả năng mở rộng qua plugin và quản trị nội dung linh hoạt.
- Express Framework: Web framework trên nền JavaScript hỗ trợ định tuyến (routing), xử lý phần mềm trung gian (middlewares) và tích hợp các engine giao diện.
Hệ quản trị cơ sở dữ liệu: MySQL
- Mô hình vận hành: Hệ quản trị cơ sở dữ liệu quan hệ (RDBMS) mã nguồn mở tuân thủ giấy phép GNU Public License (GPL), hoạt động theo mô hình Client - Server. Hệ thống lưu trữ dữ liệu dưới dạng các bảng hai chiều và quản lý ràng buộc quan hệ toàn vẹn thông qua các câu lệnh truy vấn chuẩn SQL.
- Đặc tính kỹ thuật: Hỗ trợ xử lý giao dịch an toàn (transactions) với các cơ chế xác nhận (commit), phục hồi (rollback) và xử lý sự cố. Nhược điểm được tác giả chỉ rõ trong tài liệu là hiệu năng truy xuất có xu hướng suy giảm khi số lượng bản ghi phình to, yêu cầu tài nguyên lưu trữ lớn và quá trình gỡ lỗi (debug) các stored procedures tương đối phức tạp.
- Môi trường giả lập: Tác giả sử dụng gói phần mềm tích hợp XAMPP (bao gồm Apache, MySQL, PHP, Perl) để giả lập môi trường máy chủ cơ sở dữ liệu cục bộ trên máy tính phát triển.
Thư viện giao diện phía máy khách (Client-side): ReactJS
- Kiến trúc Component: Xây dựng giao diện ứng dụng dạng Single Page Application (SPA). Giao diện được module hóa thành các khối độc lập có khả năng tái sử dụng, phân tách thành Functional Component (kết hợp React Hooks từ phiên bản React 16.8) và Class Component.
- Quản lý dữ liệu nội tại:
- Props (Properties): Dữ liệu bất biến (immutable) truyền một chiều từ component cha xuống component con nhằm mục đích trừu tượng hóa giao diện.
- State: Dữ liệu nội bộ có thể thay đổi (mutable) của từng component. Trạng thái giao diện được cập nhật bất đồng bộ thông qua hàm
setState, kích hoạt cơ chế render lại thành phần và các nút con trực thuộc.
- Vòng đời Component (Lifecycle): Tác giả hệ thống hóa 3 giai đoạn của React Class Component gồm: Mounting (
constructor, componentWillMount, render, componentDidMount), Updating (componentWillReceiveProps, shouldComponentUpdate, componentWillUpdate, render, componentDidUpdate) và Unmounting (componentWillUnmount).
- Môi trường đóng gói: Ứng dụng sử dụng bộ công cụ
create-react-app, trình biên dịch mã Babel và trình đóng gói Webpack.
Thiết kế và triển khai hệ thống
Hệ thống được thiết kế theo mô hình phân tầng hướng dịch vụ, sử dụng RESTful API làm cầu nối trao đổi dữ liệu định dạng JSON giữa máy khách ReactJS và máy chủ Node.js/Express.
Phân tích yêu cầu và hệ thống Use Case
Hệ thống thiết lập quyền hạn cho 3 tác nhân chính (Actors): Quản trị viên (Admin), Người dùng/Bệnh nhân (User) và Bác sĩ (Doctor). Toàn bộ nghiệp vụ được chia thành 24 Use Case từ UC_01 đến UC_24:
| Mã Use Case |
Tên Use Case |
Tác nhân thực hiện (Actor) |
| UC_01 |
Đăng nhập |
Admin, Bác sĩ, User |
| UC_02 |
Đăng xuất |
Admin, Bác sĩ, User |
| UC_03 |
Đăng ký tài khoản |
Bác sĩ, User |
| UC_04 |
Quản lý bác sĩ |
Admin |
| UC_05 |
Thêm thông tin bác sĩ |
Admin |
| UC_06 |
Xem thông tin bác sĩ |
User (đã hoặc chưa có tài khoản) |
| UC_07 |
Đăng ký lịch khám |
User |
| UC_08 |
Thanh toán |
User |
| UC_09 |
Quản lý chuyên khoa |
Admin |
| UC_10 |
Thêm chuyên khoa |
Admin |
| UC_11 |
Xem thông tin chuyên khoa |
User, Bác sĩ |
| UC_12 |
Xem các bác sĩ có trong chuyên khoa |
User, Bác sĩ |
| UC_13 |
Lọc các bác sĩ theo tỉnh thành |
User, Bác sĩ |
| UC_14 |
Quản lý thông tin tài khoản người dùng |
Admin |
| UC_15 |
Xác nhận tài khoản bác sĩ đăng ký |
Admin |
| UC_16 |
Hủy yêu cầu đăng ký tài khoản của bác sĩ |
Admin |
| UC_17 |
Cập nhật thông tin tài khoản |
Admin |
| UC_18 |
Xóa tài khoản |
Admin |
| UC_19 |
Quản lý kế hoạch khám bệnh |
Admin, Bác sĩ |
| UC_20 |
Cập nhật thông tin lịch khám chữa bệnh |
Admin, Bác sĩ |
| UC_21 |
Thêm lịch khám chữa bệnh cho bác sĩ |
Admin, Bác sĩ |
| UC_22 |
Cập nhật thông tin tài khoản cá nhân |
Admin, Bác sĩ, User |
| UC_23 |
Xác nhận thông tin đăng ký lịch khám |
User |
| UC_24 |
Xác nhận đơn đăng ký lịch khám của người dùng |
Bác sĩ |
Quy tắc nghiệp vụ (Business Rules)
Văn bản quy định chặt chẽ các logic nghiệp vụ ràng buộc hệ thống:
- Xét duyệt bác sĩ: Bác sĩ đăng ký tài khoản mới không được phép hoạt động ngay mà phải chuyển vào hàng đợi xét duyệt; tài khoản chỉ kích hoạt sau khi quản trị viên phê duyệt (UC_03, UC_15).
- Quản lý trạng thái khung giờ khám: Khi người dùng chọn một khung giờ khám bệnh cụ thể, khung giờ đó sẽ lập tức bị khóa và ẩn khỏi giao diện công khai để chống trùng lặp lịch. Trường hợp người dùng hủy bỏ quy trình đăng ký hoặc hủy thanh toán, hệ thống sẽ mở khóa và cho phép hiển thị lại khung giờ đó trên giao diện (UC_07, UC_08).
- Quy trình xác nhận đa bước: Sau khi người dùng gửi đơn đăng ký lịch, hệ thống tự động gửi email thông báo xác nhận. Bác sĩ kiểm tra và nhấn đồng ý; lúc này hệ thống mới gửi email chứa liên kết thanh toán cho người dùng (UC_07, UC_08, UC_24).
Thiết kế cơ sở dữ liệu và giao diện màn hình
- Cơ sở dữ liệu: Thiết kế sơ đồ quan hệ thực thể, tiêu biểu có bảng liên kết thực thể trung gian
doctor_clinic_specialty để quản lý mối quan hệ đa chiều giữa bác sĩ, cơ sở phòng khám và chuyên khoa phụ trách, kết hợp cùng các bảng lưu trữ tài khoản, lịch làm việc và đơn đặt khám.
- Danh mục màn hình chức năng: Toàn bộ giao diện hệ thống được mã hóa và đặc tả chi tiết từ SCP001 đến SCP015:
- SCP001: Giao diện đăng nhập.
- SCP002: Giao diện trang đăng ký dành cho bác sĩ.
- SCP003: Giao diện trang đăng ký dành cho người dùng.
- SCP004 - SCP005: Giao diện trang chủ (phần 1 và phần 2).
- SCP006: Giao diện hiển thị danh sách các bác sĩ.
- SCP007: Giao diện quản lý thông tin bác sĩ (Admin).
- SCP008: Giao diện quản lý lịch khám bệnh của bác sĩ.
- SCP009: Giao diện quản lý chuyên khoa.
- SCP010: Giao diện hiển thị chi tiết thông tin bác sĩ.
- SCP011: Giao diện đăng ký lịch khám.
- SCP012: Giao diện quản lý đơn đặt lịch khám bệnh.
- SCP013: Giao diện danh mục chuyên khoa.
- SCP014: Giao diện thanh toán hóa đơn.
- SCP015: Giao diện điền thông tin thanh toán.
Nội dung chính theo từng chương
Chương 1: Mở đầu
Chương 1 thiết lập tính cấp thiết của đề tài trong bối cảnh giãn cách và những biến động y tế do dịch bệnh gây ra. Tác giả phân tích nhu cầu chuyển dịch mô hình hoạt động của các phòng khám và bác sĩ sang môi trường mạng nhằm mở rộng tệp khách hàng và tăng trưởng thu nhập. Nội dung chương công bố rõ mục tiêu nghiên cứu, 8 nhiệm vụ kỹ thuật cụ thể, đối tượng nghiên cứu và phạm vi triển khai trên nền tảng web trực tuyến. Phần cuối chương liệt kê chi tiết các kết quả chức năng dự kiến đạt được trên 3 phân hệ người dùng: Quản trị viên (thống kê doanh thu, duyệt bác sĩ, tạo chuyên khoa), Người dùng (tra cứu, đặt hẹn, thanh toán) và Bác sĩ (quản lý lịch trình, duyệt đơn hẹn).
Chương 2: Cơ sở lý thuyết
Chương này đóng vai trò tổng hợp nền tảng công nghệ phục vụ quá trình xây dựng hệ thống:
- Phía Server: Giới thiệu kiến trúc Node.js, cơ chế Non-blocking I/O thông qua Event Loop, trình quản lý gói npm/yarn, framework quản trị Strapi và hướng dẫn cấu hình môi trường Node.js phiên bản 14 bằng trình soạn thảo Visual Studio Code.
- Phía Cơ sở dữ liệu: Phân tích nguyên lý hệ quản trị CSDL quan hệ MySQL, giấy phép mã nguồn mở GPL, mô hình Client - Server, các ưu nhược điểm kỹ thuật và hướng dẫn thiết lập hệ thống máy chủ cục bộ bằng phần mềm XAMPP.
- Phía Client: Trình bày thư viện ReactJS, cấu trúc chia nhỏ giao diện thành các Component (Functional và Class), cách thức truyền và bảo toàn dữ liệu thông qua Props, cơ chế quản lý trạng thái động bất đồng bộ bằng State (
setState), chi tiết 3 giai đoạn của vòng đời Component (Mounting, Updating, Unmounting) cùng quy trình thiết lập môi trường phát triển với Webpack và Babel.
Chương 3: Khảo sát hiện trạng và xác định yêu cầu
Nội dung chương trình bày kết quả khảo sát thực tế trên hai nền tảng y tế trực tuyến tại Việt Nam nhằm đúc rút bài học thiết kế:
| Nền tảng khảo sát |
Ưu điểm ghi nhận |
Nhược điểm ghi nhận |
| BookingCare |
- Thanh menu điều hướng đầy đủ, dễ tìm kiếm theo nhiều từ khóa. - Cung cấp thông tin y tế, bệnh học rõ ràng. - Bố cục, màu sắc và biểu ngữ (banner) thiết kế đẹp mắt. |
- Độ sáng giao diện tương đối cao, gây khó khăn khi thao tác ngoài trời. |
| Jio Health |
- Giao diện hiện đại, trẻ trung. - Nhiều chuyên mục thông tin chi tiết, dịch vụ đa dạng. |
- Nhiều chi tiết nhỏ gây rối mắt, bố cục thị giác có phần mất cân bằng về phía bên phải. |
Từ kết quả khảo sát, nhóm tác giả xác định yêu cầu hệ thống phải bố trí thông tin chuyên khoa và bác sĩ trực quan, có bộ lọc theo tỉnh thành, tối ưu hóa quy trình đặt hẹn và thanh toán nhanh gọn. Chương 3 cũng xác lập sơ đồ Use Case tổng quát, các sơ đồ Use Case phân rã cho từng Actor (Admin, User, Bác sĩ), sơ đồ luồng quy trình đăng ký lịch khám, bảng danh mục 24 Use Case (UC_01 đến UC_24) và tài liệu hóa chi tiết các bảng đặc tả nghiệp vụ, kịch bản chính (Main Success Scenario), ngoại lệ (Exceptions) và quy tắc nghiệp vụ (Business Rules).
Chương 4: Thiết kế ứng dụng
Chương 4 cụ thể hóa kiến trúc phần mềm thông qua các mô hình kỹ thuật:
- Thiết kế dữ liệu: Xây dựng sơ đồ quan hệ cơ sở dữ liệu, đặc tả chi tiết cấu trúc các bảng dữ liệu chuyên biệt, nổi bật là bảng kết hợp
doctor_clinic_specialty.
- Thiết kế tương tác động (Sequence Diagrams): Xây dựng hệ thống 11 sơ đồ tuần tự biểu diễn tương tác giữa Actor - Interface - Controller - Database, bao gồm: Đăng nhập, Người dùng đăng ký tài khoản, Bác sĩ đăng ký tài khoản, Quản lý tài khoản, Quản lý bác sĩ, Quản lý chuyên khoa, Đăng ký lịch khám, Quản lý đơn đặt lịch, Cập nhật thông tin tài khoản và Thanh toán.
- Thiết kế giao diện: Xây dựng layout chi tiết và lập bảng mô tả thông số cho 15 màn hình giao diện người dùng (từ mã
SCP001 đến SCP015).
Chương 5: Cài đặt và kiểm thử ứng dụng
Chương này phản ánh giai đoạn hoàn thiện sản phẩm:
- Cài đặt ứng dụng: Triển khai liên kết mã nguồn giữa phía giao diện ReactJS với hệ thống API của Node.js/Express và cơ sở dữ liệu MySQL trên môi trường XAMPP.
- Kiểm thử phần mềm: Trình bày bảng kiểm thử phần mềm (Bảng 5.1), thực hiện kiểm thử chức năng (Functional Testing) đối với các kịch bản đăng nhập, đăng ký tài khoản, quản lý thông tin bác sĩ, thao tác đặt lịch hẹn theo khung giờ và chu trình thanh toán trực tuyến.
Chương 6: Kết luận
Chương tổng kết toàn bộ kết quả nghiên cứu lý thuyết và thực nghiệm phần mềm của khóa luận; tự đánh giá các kiến thức tích lũy được trong quá trình làm đồ án và đề xuất các định hướng phát triển hoàn thiện hệ thống trong tương lai.
Kết quả và đóng góp
Khóa luận đạt được các kết quả cụ thể theo đúng các mục tiêu ban đầu:
- Xây dựng hoàn chỉnh hệ thống phần mềm web: Hiện thực hóa ứng dụng web đặt lịch khám với 15 màn hình giao diện được chuẩn hóa (
SCP001 đến SCP015), đáp ứng đầy đủ 24 Use Case nghiệp vụ cho cả 3 nhóm đối tượng: Quản trị viên, Bác sĩ và Người bệnh.
- Tự động hóa luồng nghiệp vụ y tế trực tuyến: Xây dựng thành công cơ chế khóa khung giờ khám tức thời khi phát sinh giao dịch đặt lịch và mở lại khi có thao tác hủy; thiết lập chu trình xác thực lịch hẹn đa bước tích hợp thông báo qua thư điện tử giữa bệnh nhân và bác sĩ trước khi thanh toán.
- Tích hợp các công nghệ phần mềm tiêu chuẩn: Ứng dụng thành công mô hình Single Page Application sử dụng ReactJS kết hợp hệ thống RESTful API bất đồng bộ trên Node.js/Express và cơ sở dữ liệu quan hệ MySQL.
- Đóng góp thực tiễn: Hệ thống đưa ra một mô hình triển khai thực tế giải quyết tình trạng bệnh nhân phải xếp hàng chờ đợi lâu tại các phòng khám, giảm tải áp lực cho nhân viên y tế và cung cấp công cụ chuyển đổi số cho các phòng khám, bác sĩ tư nhân sau thời kỳ dịch bệnh.
Hạn chế và hướng nghiên cứu tiếp
Dựa trên nội dung khóa luận và phạm vi triển khai thực tế, các hạn chế và hướng mở rộng được xác định như sau:
- Hạn chế kỹ thuật:
- Hệ quản trị cơ sở dữ liệu MySQL được tác giả chỉ ra trong cơ sở lý thuyết là có nguy cơ suy giảm tốc độ truy xuất khi lượng bản ghi gia tăng vượt ngưỡng, đồng thời phụ thuộc nhiều vào tài nguyên bộ nhớ lưu trữ và kết nối máy chủ.
- Hệ thống chủ yếu tập trung vận hành trên nền tảng trình duyệt web dành cho máy tính (desktop), chưa phát triển phiên bản chuyên biệt trên nền tảng di động native.
- Quy trình khám bệnh mới chỉ dừng lại ở bước đặt lịch hẹn và thanh toán dịch vụ, chưa tích hợp không gian khám bệnh hoặc hội chẩn từ xa.
- Hướng phát triển tiếp theo:
- Tích hợp thêm các phân hệ tư vấn sức khỏe trực tuyến thời gian thực (real-time) như phòng chat tư vấn hoặc hội thoại truyền hình (video call) giữa bác sĩ và bệnh nhân.
- Mở rộng liên kết với đa dạng các cổng thanh toán điện tử trực tuyến trên thị trường nhằm tối ưu hóa trải nghiệm chi trả hóa đơn của người dùng.
- Phát triển phiên bản ứng dụng di động (Mobile App) trên nền tảng React Native để hỗ trợ người dùng thao tác tiện lợi hơn ngoài trời.
- Nâng cấp cấu trúc cơ sở dữ liệu và áp dụng các giải pháp lưu trữ đệm (caching) để cải thiện khả năng chịu tải khi quy mô dữ liệu mở rộng.
Giá trị tham khảo
Tài liệu khóa luận tốt nghiệp này có giá trị tham khảo hữu ích đối với:
- Sinh viên ngành Công nghệ Thông tin, Kỹ thuật Phần mềm: Tài liệu cung cấp mẫu tham khảo chuẩn mực về đồ án tốt nghiệp ứng dụng web, từ khâu khảo sát hiện trạng sản phẩm thực tế (BookingCare, Jio Health), lập sơ đồ Use Case, xây dựng 11 sơ đồ tuần tự (Sequence Diagram) đến thiết kế dữ liệu và giao diện.
- Lập trình viên Fullstack (ReactJS - Node.js): Cung cấp tài liệu tham khảo thực tế về cách tổ chức kiến trúc ứng dụng web hướng dịch vụ (SPA kết hợp RESTful API), kỹ thuật xử lý bất đồng bộ trong Node.js (v14) và mô hình quản lý vòng đời, trạng thái dữ liệu (Props/State) trong ReactJS.
- Nhà phát triển hệ thống quản lý y tế/đặt hẹn: Rất đáng tham khảo phân hệ quản trị logic nghiệp vụ (Business Rules) liên quan đến việc kiểm soát trạng thái khóa/mở khung giờ khám bệnh, quy trình kiểm duyệt hồ sơ bác sĩ và mô hình quan hệ dữ liệu
doctor_clinic_specialty.
Câu hỏi thường gặp
1. Quy trình phê duyệt tài khoản bác sĩ trên hệ thống được thực hiện như thế nào?
Theo quy tắc nghiệp vụ tại UC_03 và UC_15, khi bác sĩ tiến hành đăng ký tài khoản trên hệ thống, tài khoản chưa được kích hoạt ngay. Hệ thống yêu cầu tài khoản này phải ở trạng thái chờ để Quản trị viên (Admin) kiểm tra thông tin. Sau khi quản trị viên phê duyệt xác nhận trong trang quản trị, tài khoản bác sĩ mới chính thức được kích hoạt và cho phép đăng nhập để sử dụng các chức năng như cập nhật kế hoạch khám và quản lý đơn đăng ký.
2. Cơ chế khóa và giải phóng khung giờ khám bệnh được xử lý ra sao?
Căn cứ theo quy tắc nghiệp vụ của UC_07 và UC_08, khi một người dùng chọn một khung giờ và gửi đơn đăng ký khám, hệ thống sẽ tự động khóa khung giờ đó và không hiển thị trên giao diện chung để tránh tình trạng trùng lịch giữa các bệnh nhân. Nếu trong quá trình đăng ký hoặc thanh toán người dùng chủ động hủy đơn, hệ thống sẽ tự động mở khóa và hiển thị lại khung giờ đó trên giao diện để những người dùng khác có thể tiếp tục chọn.
3. Tác giả đã tiến hành khảo sát những hệ thống thực tế nào để xây dựng yêu cầu phần mềm?
Trong Chương 3, tác giả đã tiến hành khảo sát và đánh giá giao diện, chức năng của hai nền tảng y tế trực tuyến là BookingCare (đánh giá cao hệ thống menu, thông tin y tế rõ ràng nhưng giao diện nền khá sáng khi dùng ngoài trời) và Jio Health (giao diện đẹp mắt, trẻ trung, dịch vụ đa dạng nhưng nhiều chi tiết nhỏ gây rối mắt, bố cục lệch phải). Từ đó, nhóm tác giả rút kinh nghiệm để thiết kế giao diện cân đối, rõ ràng và bổ sung bộ lọc bác sĩ theo tỉnh thành cho từng chuyên khoa.
4. Hệ thống yêu cầu cấu hình và phiên bản công nghệ cụ thể nào khi cài đặt?
Theo nội dung Chương 2, hệ thống yêu cầu môi trường thực thi máy chủ là Node.js phiên bản 14 (Node v14) cùng các gói thư viện quản lý qua npm/yarn. Phía cơ sở dữ liệu sử dụng MySQL được cài đặt và quản lý thông qua gói tích hợp XAMPP cục bộ. Phía giao diện người dùng xây dựng bằng ReactJS (sử dụng React Hooks từ bản 16.8) thông qua công cụ khởi tạo create-react-app, Webpack và Babel.
5. Quản trị viên (Admin) có những quyền hạn cụ thể nào đối với dữ liệu bác sĩ và tài chính?
Quản trị viên được cấp quyền: Thống kê doanh thu và đơn đặt lịch của hệ thống; tạo tài khoản, thêm, chỉnh sửa thông tin cho bác sĩ (giá dịch vụ, hình thức thanh toán); tạo và điều chỉnh kế hoạch khám bệnh của bác sĩ; phê duyệt đồng ý hoặc hủy bỏ yêu cầu đăng ký tài khoản của bác sĩ mới; quản lý danh mục các chuyên khoa trong hệ thống.
Kết luận
Khóa luận tốt nghiệp "Trang web đặt lịch khám trực tuyến" của sinh viên Đặng Huỳnh Hoàng Long và Phạm Ngọc Tiến đã giải quyết thành công bài toán số hóa quy trình đăng ký khám chữa bệnh trong bối cảnh thực tiễn nhiều biến động y tế. Đề tài vận dụng hiệu quả kiến trúc RESTful API kết hợp các công nghệ phổ biến gồm Node.js, Express, ReactJS và MySQL để xây dựng một hệ thống đa tác nhân hoàn chỉnh với 24 ca sử dụng và 15 giao diện chức năng. Hệ thống đã hiện thực hóa được quy trình phối hợp khép kín giữa người bệnh, bác sĩ và quản trị viên, cung cấp tài liệu tham khảo có giá trị học thuật và ứng dụng thực tiễn cao cho sinh viên ngành Công nghệ phần mềm.