TỔNG QUAN VỀ ĐỀ TÀI NGHIÊN CỨU
Lý do chọn đề tài
Cách mạng công nghiệp 4.0 đang diễn ra mạnh mẽ trên toàn cầu, đặc biệt tại Việt Nam, nơi công nghệ được cải tiến và ứng dụng nhanh chóng trong nhiều ngành nghề Công nghệ thông tin hiện đóng vai trò quan trọng trong sự phát triển của xã hội.
Công nghệ thông tin giúp con người làm việc với độ chính xác cao, quản lý và tổ chức công việc hiệu quả, đồng thời cập nhật thông tin nhanh chóng và chính xác Sự phát triển của công nghệ thông tin không chỉ nâng cao đời sống con người mà còn đáp ứng nhu cầu ngày càng cao về chăm sóc sức khỏe và y tế Do đó, việc ứng dụng công nghệ thông tin vào dịch vụ y tế là vô cùng cần thiết.
Dịch vụ chăm sóc sức khỏe tại Việt Nam chưa được chú trọng và phát triển đầy đủ, khiến người dân phải đến trực tiếp các phòng khám để khám và chữa bệnh Tình trạng bệnh nhân phải xếp hàng, chờ đợi, và gọi điện đặt lịch rất tốn thời gian Đặc biệt, bệnh nhân ở tỉnh xa gặp khó khăn trong việc di chuyển, tốn kém chi phí, và không nắm rõ lịch khám, giá khám cũng như địa chỉ phòng khám Do đó, tôi đã thực hiện đề tài “Xây dựng Website đặt lịch khám bệnh” nhằm cải thiện tình hình này.
Website cung cấp nền tảng công nghệ kết nối nhanh chóng giữa bệnh nhân và phòng khám, cho phép đặt lịch khám tại nhà, tiết kiệm thời gian và công sức cho bệnh nhân Đồng thời, nó giúp đội ngũ y tế giảm bớt khối lượng công việc Đây là cầu nối quan trọng giữa bác sĩ và bệnh nhân, mang lại sự hài lòng và tôn trọng, là thước đo chất lượng dịch vụ của phòng khám.
Mục tiêu
Xây dựng website đặt lịch khám bệnh giúp người dùng dễ dàng nắm bắt thông tin về phòng khám và lịch khám, từ đó lựa chọn dịch vụ phù hợp nhất Website cung cấp tính năng đặt lịch khám online, mang lại sự thuận tiện, nhanh chóng và tiết kiệm thời gian cho người sử dụng.
- Tạo website giúp người dùng có thể dễ dàng tìm kiếm bác sĩ, có thể thuận tiện đặt lịch khám online
- Xây dựng cơ sở dữ liệu để quản lý các thông tin
- Xây dựng được hệ thống quản lý bác sĩ
- Xây dựng được chức năng tạo lịch khám bệnh, giúp bác sĩ chủ động được thời gian làm việc
Nội dung nghiên cứu
Để đạt được mục tiêu trên đề tài tiến hành nghiên cứu các nội dung sau:
❖ Nội dung 1: Khảo sát thực trạng
Khảo sát nhu cầu của người dùng thông qua phỏng vấn trực tiếp và phiếu khảo sát online cho thấy mong muốn có một website để đặt lịch khám bệnh.
Để website hoạt động hiệu quả, cần có cơ sở dữ liệu MySQL để quản lý tài khoản, đặt lịch khám và thông tin bác sĩ Phần backend sẽ đảm nhiệm việc xuất nhập và quản lý dữ liệu, trong khi các chức năng giao diện tương tác với người dùng sẽ được phát triển ở frontend.
- Nghiên cứu các công nghệ phát triển backend là Node.js
- Nghiên cứu các công nghệ phát triển frontend cho web là HTML, CSS, Bootstrap 4, ReactJS
❖ Nội dung 3: Xây dựng phát triển backend và frontend
Phân tích cơ sở dữ liệu và thiết kế mô hình kết cấu là bước quan trọng trong việc phát triển backend cho hệ thống quản trị web Đồng thời, việc lập trình các giao diện frontend cũng cần được chú trọng để đảm bảo tính tương tác và trải nghiệm người dùng tốt nhất.
Đối tượng và phạm vi nghiên cứu
- Quy trình đặt lịch khám bệnh tại các phòng khám vừa và nhỏ
- Quy trình khi bác sĩ thực hiện tạo lịch khám theo ngày
- Quy trình khi một bệnh nhân thực hiện thao tác đặt lịch khám trên website
- Xây dựng và quản lý cơ sở dữ liệu đặt lịch khám bệnh
- Phạm vi công nghệ: Nghiên cứu các công nghệ xây dựng cơ sở dữ liệu, công nghệ phát triển web
- Phạm vi đối tượng: Nghiên cứu tìm hiểu thông qua mạng internet, khảo sát mong muốn của người dùng về ứng dụng web đặt lịch khám bệnh thuận tiện.
Phương pháp nghiên cứu
❖ Kết hợp nghiên cứu lý thuyết và thực hành:
Phương pháp lý thuyết: Đọc và tìm hiểu tài liệu, kiến thức liên quan đến các thông tin dữ liệu về đặt lịch hẹn trực tuyến
Phương pháp thực hành: Cài đặt và đánh giá kết quả thực nghiệm khi phân tích và đánh giá tính hiệu quả trong thực tế
❖ Các phương pháp nghiên cứu khác:
Phương pháp thu thập dữ liệu bao gồm việc tìm hiểu nhu cầu và mong muốn của người dùng thông qua phỏng vấn trực tiếp tại địa phương, kết hợp với việc sử dụng phiếu khảo sát online.
Phương pháp chuyên gia: Tham khảo ý kiến của cô hướng dẫn Khương Thị Quỳnh và các thầy cô ngành Hệ thống thông tin.
CƠ SỞ LÝ THUYẾT
Mô tả bài toán
Trong bối cảnh dịch bệnh phức tạp, nhiều người chọn sử dụng laptop hoặc điện thoại thông minh để phục vụ nhu cầu hàng ngày Việc phát triển các sản phẩm ứng dụng công nghệ thông tin cho ngành y tế là rất cần thiết Từ góc độ bệnh nhân, họ thường phải chờ đợi để lấy số thứ tự, thanh toán và khám bệnh, trong khi bác sĩ và phòng khám lại phải đối mặt với tình trạng quá tải và lịch làm việc dày đặc Do đó, tôi mong muốn phát triển một hệ thống đặt lịch hẹn với bác sĩ, tạo ra sự tương tác hiệu quả giữa bác sĩ và bệnh nhân, với ba loại người dùng: bệnh nhân, bác sĩ và quản trị viên.
Bệnh nhân có thể dễ dàng đặt lịch hẹn với bác sĩ, đồng thời xem thông tin chi tiết về bác sĩ như học hàm, tên, nơi công tác, lịch khám, địa chỉ và giá khám Ngoài ra, bệnh nhân cũng có thể tìm hiểu về các chuyên khoa, bao gồm thông tin về bệnh, dấu hiệu bệnh và danh sách bác sĩ có trình độ cao trong chuyên khoa đó Thông tin về phòng khám, bao gồm địa chỉ và chất lượng, cũng được cung cấp Cuối cùng, bệnh nhân nhận được thông tin về đơn thuốc do bác sĩ kê.
Quản trị viên có khả năng quản lý toàn bộ thông tin của hệ thống, bao gồm việc thêm, sửa, xóa tài khoản, bác sĩ, chuyên khoa và phòng khám, cũng như tạo lịch khám cho bác sĩ.
Bác sĩ có khả năng tạo lịch hẹn cho một ngày cụ thể, kiểm tra số lượng bệnh nhân đã đặt lịch trong ngày đó, và xác nhận thông tin đặt lịch khám cũng như kê đơn thuốc cho bệnh nhân.
Công nghệ phát triển Web
HTML (Ngôn ngữ Đánh dấu Siêu văn bản) được giới thiệu lần đầu vào năm 1991 bởi Tim Berners-Lee, người sáng lập World Wide Web Consortium (W3C) Phiên bản mới nhất, HTML5, mang đến nhiều tính năng vượt trội.
HTML là ngôn ngữ đánh dấu cho phép người dùng tạo và cấu trúc các thành phần trên trang web, bao gồm đoạn văn, tiêu đề, liên kết, trích dẫn và bảng biểu.
Các thẻ và các phần tử HTML giúp bạn có thể:
- Điều khiển hình thức và nội dung của trang
- Xuất bản các tài liệu trực tuyến và truy xuất thông tin trực tuyến bằng cách sử dụng các liên kết được chèn vào tài liệu html
- Tạo các biểu mẫu trực tuyến để thu thập thông tin về người dùng, quản lý các giao dịch
- Chèn các đối tượng như audio clip, video clip vào tài liệu html
Ví dụ về HTML ( xem thêm tại https://www.w3schools.com/html/ )
Hình 1: Ví dụ về câu lệnh HTML 2.2.2 Tổng quan về CSS
CSS, hay còn gọi là Cascading Style Sheets, là ngôn ngữ định dạng dùng để mô tả cách trình bày các trang web, bao gồm màu sắc, bố cục và kiểu chữ.
Nó cho phép hiển thị nội dung phù hợp trên nhiều loại thiết bị với kích thước màn hình khác nhau, bao gồm cả màn hình lớn, màn hình nhỏ và máy in.
CSS độc lập với HTML và có thể sử dụng với bất kỳ ngôn ngữ đánh dấu nào dựa trên XML Nó giúp dọn dẹp mã HTML một cách gọn gàng và có cấu trúc hơn, đồng thời định dạng HTML để tạo ra giao diện đa dạng và đẹp mắt CSS tuân theo các tiêu chuẩn do W3C quy định.
Cấu trúc gồm các phần: selector (bộ chọn), property (thuộc tính), value (giá trị)
Cách sử dụng và độ ưu tiên CSS
- Chèn css trực tiếp vào thẻ HTML
- Chèn css vào cặp thẻ
- Tạo file riêng để viết css và gọi file css vào phần head của trang HTML
Ví dụ về CSS ( xem thêm tại https://www.w3schools.com/css/ )
Hình 2: Ví dụ về câu lệnh CSS 2.2.3 Tổng quan về Bootstrap 4
Bootstrap 4 là phiên bản mới của Bootstrap, là framework HTML, CSS và JavaScript phổ biến nhất để thiết kế web đáp ứng, ưu tiên trên nền tảng di động Bootstrap 4 với nhiều component mới, stylesheet nhanh hơn và responsive hơn Được tạo ra để xây dựng các giao diện Website tương thích với tất cả các thiết bị có kích thước màn hình khác nhau
Bootstrap đã tạo ra một tiêu chuẩn riêng, và rất được các lập trình viên ưu chuộng Về cơ bản Bootstrap có 3 ưu điểm:
- Dễ sử dụng: Vì Bootstrap 4 được xây dựng trên HTML, CSS & Javascript
Bootstrap 4 cung cấp các CSS phản hồi sẵn có, tương thích với nhiều thiết bị khác nhau, giúp người dùng tiết kiệm thời gian trong việc phát triển website.
- Tương thích với các trình duyệt: Nó tương thích với tất cả các trình duyệt Chrome, Firefox, Internet Explorer
Ví dụ về Bootstrap 4 (xem thêm tại https://www.w3schools.com/bootstrap4/ )
Hình 3: Ví dụ về câu lệnh Bootstrap 4
Công nghệ lập trình và nền tảng phát triển
ReactJS là một opensource được phát triển bởi Facebook, ra mắt vào năm
ReactJS, ra mắt vào năm 2013, là một thư viện Javascript được sử dụng để xây dựng các tương tác với các thành phần trên website Điểm nổi bật của ReactJS là khả năng render dữ liệu không chỉ trên tầng Server mà còn trên Client.
Để tăng tốc quá trình phát triển và giảm thiểu rủi ro trong coding, React cung cấp khả năng tái sử dụng code thông qua hai khái niệm quan trọng: JSX và Virtual DOM.
JSX, hay còn gọi là JavaScript extension, là một phần mở rộng của React giúp đơn giản hóa việc thay đổi cây DOM bằng mã code theo kiểu HTML Kể từ khi ReactJS được hỗ trợ trên tất cả các trình duyệt web hiện đại, người dùng có thể tự tin sử dụng JSX trên bất kỳ trình duyệt nào.
Virtual DOM là bản sao của DOM thật, được ReactJS sử dụng để xác định các phần cần cập nhật khi có sự kiện thay đổi Khi người dùng tương tác, như bình luận trên blog và nhấn “Enter”, Virtual DOM sẽ quét qua để phát hiện những thay đổi và cập nhật chính xác vị trí cần thiết trên DOM thật.
Hình 5: Mô hình Dom Ảo và Dom thật
Reactjs rất hiệu quả nhờ vào việc tạo ra DOM ảo, nơi các component tồn tại Nó chỉ tính toán và cập nhật những thay đổi cần thiết lên DOM, giúp giảm thiểu các thao tác tốn kém trên DOM.
ReactJS đơn giản hóa việc viết mã JavaScript nhờ vào cú pháp đặc biệt JSX, cho phép kết hợp mã HTML và JavaScript JSX chuyển đổi các đoạn HTML thành các hàm khởi tạo đối tượng HTML thông qua bộ biến đổi JSX.
Hiệu năng cao đối với các ứng dụng có dữ liệu thay đổi liên tục, dễ dàng cho bảo trì và sửa lỗi
Server-side rendering with React.js allows components to be rendered both in the browser using the DOM and through HTML strings returned by the server.
Redux là một thư viện JavaScript giúp quản lý trạng thái một cách có thể dự đoán được, cho phép viết ứng dụng hoạt động nhất quán trên các môi trường máy khách, máy chủ và môi trường số Thư viện này cũng hỗ trợ việc kiểm tra dễ dàng và thường được sử dụng kết hợp với React.
❖ Nguyên lý vận hành của Redux
Hình 6: Nguyên lý vận hành của Redux
Quá trình xây dựng Redux các chuyên gia đã dựa vào 3 nguyên lý cơ bản sau:
Sử dụng nguồn dữ liệu đáng tin cậy duy nhất Các State của tất cả ứng dụng đều nằm trong một object tree nằm trong một Store duy nhất
Chỉ được phép đọc trạng thái: Có nghĩa rằng, để thay đổi State của ứng dụng thì chỉ có cách duy nhất là phát một Action
Utilizing pure functions for transformation is essential to demonstrate how the State is altered by the Action Therefore, we need to employ pure functions known as Reducers.
Hình 7: Cấu trúc điều hướng của Redux
Redux có 4 thành phần như sau:
Action: Là nơi mang các thông tin dùng để gửi từ ứng dụng đến Store Các thông tin này là 1 object mô tả những gì đã xảy ra
Reducer: Là nơi xác định State thay đổi như thế nào
Store: Là nơi quản lý State, cho phép truy cập State qua getState(), update State qua dispatch(action), đăng kí listener qua subscribe(listener)
View: Hiển thị dữ liệu được cung cấp bởi Store
State: là plain javascript object, không được biến đổi nó trực tiếp mà phải tạo object mới cho reducer trả về
Khả năng maintain bảo trì: Nghiêm ngặt trong cấu trúc làm cho code trở nên dễ dàng bảo trì hơn
Redux giúp tổ chức mã nguồn một cách chặt chẽ, mang lại sự nhất quán và dễ dàng hơn cho việc hợp tác trong nhóm.
Server rendering rất quan trọng, đặc biệt trong việc khởi tạo render, giúp người dùng có trải nghiệm tốt hơn và tối ưu hóa cho bộ máy tìm kiếm.
Developer tools: Developer có thể theo dõi mọi thứ xảy ra trong ứng dụng từ các actions đến sự thay đổi của state
2.3.3 Tổng quan về Node.js
NodeJS là nền tảng dựa trên V8 JavaScript Engine, cho phép phát triển ứng dụng web một cách đơn giản và dễ dàng mở rộng Được phát triển bởi Ryan Dahl vào năm 2009, NodeJS có khả năng hoạt động trên nhiều hệ điều hành như OS X, Microsoft Windows và Linux.
❖ Các tính năng của NodeJS
Lập trình hướng sự kiện và không đồng bộ trong NodeJS cho phép server không chờ đợi phản hồi từ API, mà sẽ tiếp tục xử lý các API khác Tất cả các API trong thư viện NodeJS đều hoạt động không đồng bộ, và cơ chế thông báo của Events giúp server nhận được phản hồi từ các lần gọi API trước đó.
NodeJS được xây dựng trên Công cụ JavaScript V8 của Google Chrome, cho phép xử lý mã nhanh chóng Mặc dù sử dụng mô hình đơn luồng, NodeJS có khả năng mở rộng cao nhờ vào vòng lặp sự kiện, giúp phục vụ một lượng lớn yêu cầu đồng thời, vượt trội hơn so với các máy chủ truyền thống như Apache HTTP Server.
Các ứng dụng NodeJS không sử dụng bộ đệm, nghĩa là chúng không có vùng nhớ tạm thời cho bất kỳ dữ liệu nào Thay vào đó, các ứng dụng này xuất dữ liệu theo khối một cách trực tiếp.
- Sử dụng JavaScript – một ngôn ngữ lập trình dễ học
- Chia sẻ cùng code ở cả phía client và server
- Module Node đang ngày càng phát triển mạnh mẽ
- Cộng đồng hỗ trợ tích cực
- Cho phép stream các file có kích thước lớn
2.3.4 Tổng quan về Express JS
PHÂN TÍCH THIẾT KẾ HỆ THỐNG
Khảo sát
Sau khi thực hiện khảo sát từ ngày 01/05/2022 đến 01/07/2022, chúng tôi đã thu thập ý kiến từ người dân trung niên qua hình thức khảo sát trực tiếp và từ thanh thiếu niên qua phiếu phỏng vấn online Câu hỏi chính của khảo sát là về sự cần thiết của việc tạo ra website đặt lịch khám bệnh online và mong muốn của mọi người về tính năng của website này Kết quả cho thấy 80% người tham gia ủng hộ ý tưởng này, trong khi chỉ có 20% cho rằng nó không cần thiết.
Nhiều người ủng hộ việc đặt lịch khám online nhằm giảm chi phí đi lại và tiết kiệm thời gian Họ mong muốn có một trang web dễ sử dụng để thuận tiện cho việc đặt lịch khám cho tất cả người dùng.
Khảo sát cho thấy hầu hết mọi người gặp khó khăn khi chờ đợi thủ tục khám bệnh, với thời gian xếp hàng lấy số rất lâu, đặc biệt là những người ở xa Họ cũng gặp khó khăn trong việc tìm kiếm thông tin quan trọng như giá khám và dịch vụ Do đó, việc phát triển ứng dụng website đặt lịch khám bệnh là cần thiết, giúp kết nối bệnh nhân với phòng khám một cách dễ dàng và thuận tiện, thay vì phải chờ đợi lâu tại các cơ sở y tế.
Phân tích hệ thống
3.2.1 Xác định các tác nhân
Hệ thống đã xác định ba đối tượng tác nhân chính: quản trị viên, bác sĩ và bệnh nhân, với các chức năng cụ thể cho từng tác nhân.
STT Tác nhân Mô tả Chức năng
Là người quản trị hệ thống, có tất cả các quyền trên hệ thống
2 Bác sĩ Là người tạo ra lịch khám cho bệnh nhân
• Tạo ra lịch khám bệnh
• Quản lý bệnh nhân khám bệnh
3 Bệnh nhân Là người đặt lịch khám bệnh, xem các thông tin chi tiết
• Xem thông tin về bác sĩ, phòng khám, chuyện khoa
Bảng 1: Danh sách các tác nhân 3.2.2 Xác định các use case chính
STT Use case Mô tả
1 Đăng nhập Đăng nhập vào hệ thống
2 Đăng xuất Đăng xuất ra khỏi hệ thống
3 Quản lý tài khoản Quản lý thêm, sửa, xóa tài khoản
4 Quản lý bác sĩ Quản lý thêm, sửa, xóa bác sĩ
5 Tạo lịch khám bệnh Thêm lịch khám bệnh
6 Quản lý bệnh nhân khám bệnh Xác nhận lịch khám và gửi hóa đơn
7 Quản lý chuyên khoa Thêm chuyên khoa
8 Quản lý phòng khám Thêm phòng khám
9 Đặt lịch khám bệnh Thực hiện đặt lịch khám
10 Xem các thông tin chi tiết Xem thông tin về bác sĩ, phòng khám, chuyên khoa
Bảng 2: Các use case chính
3.2.3 Biểu đồ use case hệ thống
3.2.3.1 Biểu đồ use case tổng quát
Hình 10: Biểu đồ use case tổng quát
3.2.3.2 Biểu đồ use case chi tiết
Hình 11: Biểu đồ use case Quản trị viên
Hình 12: Biểu đồ use casse Bác sĩ
Hình 13: Biểu đồ use case Bệnh nhân 3.2.4 Kịch bản use case
Tác nhân Quản trị viên, bác sĩ
Mô tả use case Cho phép người dùng đăng nhập vào hệ thống
Tiền điều kiện Người dùng có tài khoản để đăng nhập vào hệ thống
Luồng sự kiện chính B1: Người dùng mở hệ thống ra
B2: Hệ thống hiển thị giao diện đăng nhập B3: Người dùng nhập tài khoản và mật khẩu rồi nhấn đăng nhập
B4: Hệ thống kiểm tra tài khoản và mật khẩu, sai tài khoản hoặc mật khẩu chuyển sang luồng sự kiện phụ P1
B5: Hệ thống hiển thị giao diện trang chính
Hậu điều kiện Đăng nhập thành công
Luồng sự kiện phụ P1 Quản trị viên, bác sĩ đăng nhập không thành công:
- Hệ thống báo lỗi sai tên tài khoản hoặc mật khẩu không có trong cơ sở dữ liệu
Bảng 3: Kịch bản use case đăng nhập
Tác nhân Quản trị viên, bác sĩ
Mô tả use case Cho phép người dùng đăng xuất ra khỏi hệ thống
Tiền điều kiện Người dùng vẫn đang ở trong hệ thống
Luồng sự kiện chính B1: Người dùng nhấn đăng xuất
B2: Hệ thống hiển thị giao diện đăng nhập
Hậu điều kiện Đăng xuất thành công
Luồng sự kiện phụ Không có
Bảng 4: Kịch bản use case đăng xuất 3.2.4.3 Quản lý tài khoản
Use case Thêm tài khoản
Tác nhân Quản trị viên
Mô tả use case Cho phép người quản trị viên thêm tài khoản và thông tin tài khoản mới
Tiền điều kiện Quản trị viên đăng nhập vào hệ thống
Luồng sự kiện chính B1: Quản trị viên chọn chức năng quản lý tài khoản
B2: Hệ thống hiển thị giao diện quản lý tài khoản B3: Quản trị viên chọn chức năng thêm vào tài khoản
B4: Hệ thống hiển thị giao diện thêm tài khoản B5: Quản trị viên nhập thông tin tài khoản và nhấn lưu lại
B6: Hệ thống kiểm tra thông tin nhập vào, nếu đúng chuyển sang B7, sai hoặc trùng thông tin nhập chuyển sang luồng sự kiện phụ P1
B7: Thêm mới thành công, thông tin được lưu vào CSDL
Hậu điều kiện Hệ thống thêm tài khoản mới thành công
Luồng sự kiện phụ P1: Hệ thống phát hiện thông tin mới được thêm vào là sai hoặc trùng lặp với dữ liệu đã có, dẫn đến việc hệ thống thông báo lỗi Bảng 5 trình bày kịch bản use case cho việc thêm tài khoản.
Use case Sửa tài khoản
Tác nhân Quản trị viên
Mô tả use case Cho phép người quản trị viên sửa thông tin tài khoản
Tiền điều kiện Quản trị viên đăng nhập vào hệ thống
Luồng sự kiện chính B1: Quản trị viên chọn chức năng quản lý tài khoản
Hệ thống hiển thị giao diện quản lý tài khoản cho phép quản trị viên chọn tài khoản cần sửa đổi Sau khi chọn, giao diện sửa tài khoản sẽ được hiển thị, nơi quản trị viên có thể chỉnh sửa các thông tin và nhấn lưu lại Hệ thống sẽ kiểm tra thông tin đã chỉnh sửa; nếu hợp lệ, quá trình sẽ tiếp tục, còn nếu sai hoặc trùng với thông tin tài khoản khác, sẽ chuyển sang luồng sự kiện phụ.
B7: Sửa đổi thành công, thông tin được lưu vào CSDL
Hậu điều kiện Hệ thống sửa tài khoản thành công
Khi hệ thống phát hiện thông tin sửa đổi không chính xác hoặc trùng lặp với dữ liệu đã có trong cơ sở dữ liệu, nó sẽ thông báo lỗi.
Use case Xóa tài khoản
Tác nhân Quản trị viên
Mô tả use case Cho phép người quản trị viên xóa thông tin tài khoản
Tiền điều kiện Quản trị viên đăng nhập vào hệ thống
Luồng sự kiện chính B1: Quản trị viên chọn chức năng quản lý tài khoản
B2: Hệ thống hiển thị giao diện quản lý tài khoản B3: Quản trị viên chọn vào tài khoản muốn xóa B4: Hệ thống thực hiện xóa tài khoản trong CSDL
Hậu điều kiện Hệ thống xóa tài khoản thành công
Luồng sự kiện phụ Không có
Bảng 7: Kịch bản use case xóa tài khoản
Use case Thêm bác sĩ
Tác nhân Quản trị viên
Mô tả use case Cho phép người quản trị viên thêm bác sĩ và thông tin bác sĩ mới
Tiền điều kiện Quản trị viên đăng nhập vào hệ thống
Luồng sự kiện chính B1: Quản trị viên chọn chức năng quản lý bác sĩ
Hệ thống hiển thị giao diện quản lý bác sĩ cho phép quản trị viên thêm bác sĩ mới một cách dễ dàng Khi chọn chức năng thêm bác sĩ, hệ thống sẽ hiển thị giao diện cần thiết để thực hiện thao tác này.
Quản trị viên nhập thông tin bác sĩ và lưu lại Hệ thống sẽ kiểm tra tính chính xác của thông tin; nếu đúng, sẽ chuyển sang bước tiếp theo, nếu sai hoặc trùng lặp, sẽ chuyển sang luồng sự kiện phụ.
B7: Thêm mới thành công, thông tin được lưu vào CSDL
Hậu điều kiện Hệ thống thêm bác sĩ mới thành công
Luồng sự kiện phụ P1: Hệ thống thấy thông tin thêm mới sai hoặc trùng với thông tin đã có trong cơ sở dữ liệu hệ thống thông báo lỗi
Bảng 8: Kịch bản use case thêm bác sĩ
Use case Quản lý tài khoản
Tác nhân Quản trị viên
Mô tả use case Cho phép người quản trị viên sửa thông tin bác sĩ
Tiền điều kiện Quản trị viên đăng nhập vào hệ thống
Luồng sự kiện chính B1: Quản trị viên chọn chức năng quản lý bác sĩ
Hệ thống hiển thị giao diện quản lý bác sĩ cho phép quản trị viên chọn bác sĩ cần sửa đổi Sau khi lựa chọn, hệ thống sẽ hiển thị giao diện để sửa đổi thông tin bác sĩ Quản trị viên có thể chỉnh sửa các thông tin cần thiết và nhấn lưu lại để cập nhật.
B6: Hệ thống kiểm tra thông tin đã chỉnh sửa, nếu hợp lệ chuyển sang B7, sai hoặc trùng thông tin tài khoản khác chuyển sang luồng sự kiện phụ P1
B7: Sửa đổi thành công, thông tin được lưu vào CSDL
Hậu điều kiện Hệ thống sửa thông tin bác sĩ thành công
Khi hệ thống phát hiện thông tin sửa đổi không chính xác hoặc trùng lặp với dữ liệu đã có trong cơ sở dữ liệu, nó sẽ thông báo lỗi Bảng 9 trình bày kịch bản use case liên quan đến việc sửa thông tin bác sĩ.
Use case Quản lý tài khoản
Tác nhân Quản trị viên
Mô tả use case Cho phép người quản trị viên xóa thông tin bác sĩ
Tiền điều kiện Quản trị viên đăng nhập vào hệ thống
Luồng sự kiện chính B1: Quản trị viên chọn chức năng quản lý bác sĩ
B2: Hệ thống hiển thị giao diện quản lý bác sĩ B3: Quản trị viên chọn vào bác sĩ muốn xóa B4: Hệ thống thực hiện xóa tài khoản trong CSDL
Hậu điều kiện Hệ thống xóa bác sĩ thành công
Luồng sự kiện phụ Không có
Bảng 10: Kịch bản use case xóa bác sĩ
Use case Quản lý chuyên khoa
Tác nhân Quản trị viên
Mô tả use case Cho phép quản trị viên thêm mới chuyên khoa
Tiền điều kiện Quản trị viên đăng nhập vào hệ thống
Luồng sự kiện chính B1: Quản trị viên chọn chức năng quản lý chuyên khoa
B2: Hệ thống hiển thị giao diện quản lý chuyên khoa B3: Quản trị viên nhập vào thông tin thêm mới chuyên khoa và nhấn lưu lại
B4: Hệ thống kiểm tra thông tin nhập vào, nếu đúng chuyển sang B5, sai hoặc trùng thông tin nhập chuyển sang luồng sự kiện phụ P1
B5: Thêm mới thành công, thông tin được lưu vào CSDL
Hậu điều kiện Hệ thống thêm mới chuyên khoa thành công
Hệ thống sẽ thông báo lỗi khi phát hiện thông tin thêm vào không chính xác hoặc trùng lặp với dữ liệu đã có trong cơ sở dữ liệu.
Bảng 11: Kịch bản use case thêm chuyên khoa 3.2.4.6 Quản lý phòng khám
Use case Quản lý phòng khám
Tác nhân Quản trị viên
Mô tả use case Cho phép quản trị viên thêm mới phòng khám
Tiền điều kiện Quản trị viên đăng nhập vào hệ thống
Luồng sự kiện chính B1: Quản trị viên chọn chức năng quản lý phòng khám
B2: Hệ thống hiển thị giao diện quản lý phòng khám B3: Quản trị viên nhập vào thông tin thêm mới phòng khám và nhấn lưu lại
B4: Hệ thống kiểm tra thông tin nhập vào, nếu đúng chuyển sang B5, sai hoặc trùng thông tin nhập chuyển sang luồng sự kiện phụ P1
B5: Thêm mới thành công, thông tin được lưu vào CSDL
Hậu điều kiện Hệ thống thêm mới phòng khám thành công
Hệ thống sẽ thông báo lỗi khi phát hiện thông tin thêm vào không chính xác hoặc trùng lặp với dữ liệu đã có trong cơ sở dữ liệu.
Bảng 12: Kịch bản use case thêm phòng khám
Use case Tạo lịch khám bệnh
Tác nhân Quản trị viên, bác sĩ
Mô tả use case Cho phép quản trị viên và bác sĩ tạo lịch khám bệnh
Tiền điều kiện Quản trị viên, bác sĩ đăng nhập vào hệ thống
Quản trị viên và bác sĩ bắt đầu bằng cách chọn chức năng tạo lịch khám bệnh Hệ thống sẽ hiển thị giao diện để thực hiện việc này Sau đó, họ sẽ chọn các thông tin cần thiết để tạo lịch khám bệnh và nhấn lưu lại.
B6: Hệ thống kiểm tra thông tin, nếu đúng chuyển sang B7, nếu bỏ trống không chọn đủ thông tin chuyển sang luồng sự kiện phụ P1
B7: Thêm mới thành công, thông tin được lưu vào CSDL
Hậu điều kiện Hệ thống tạo lịch khám bệnh thành công
Luồng sự kiện phụ P1: Hệ thống thấy thông tin tạo lịch không nhập đầy đủ thông tin thì hệ thống thông báo lỗi
Bảng 13: Kịch bản use case tạo lịch khám bệnh 3.2.4.8 Quản lý bệnh nhân khám bệnh
Use case Quản lý bệnh nhân khám bệnh
Mô tả use case Cho phép bác sĩ quản lý những bệnh nhân đã đặt lịch khám
Tiền điều kiện Bác sĩ đăng nhập vào hệ thống
Luồng sự kiện chính B1: Bác sĩ chọn chức năng quản lý bệnh nhân khám bệnh
Hệ thống hiển thị giao diện quản lý bệnh nhân khám bệnh, cho phép theo dõi những bệnh nhân đang chờ xác nhận Bác sĩ có thể xác nhận sự có mặt của bệnh nhân và gửi đơn thuốc qua email cho họ.
B4: Xác nhận gửi thành công, thông tin bệnh nhân được chuyển trạng thái trong CSDL
Hậu điều kiện Xác nhận đặt lịch và gửi đơn thuốc thành cho bệnh nhân
Luồng sự kiện phụ Không có
Bảng 14: Kịch bản use case quản lý bệnh nhân khám bệnh
Use case Đặt lịch khám bệnh
Mô tả use case Cho phép bệnh nhân đặt lịch khám bệnh mong muốn
Tiền điều kiện Bệnh nhân truy cập vào website
Luồng sự kiện chính B1: Bệnh nhân truy cập vào website đặt lịch khám bệnh
B2: Bệnh nhân chọn một bác sĩ muốn đặt lịch B2: Hệ thống hiển thị thông tin bác sĩ và hiển thị lịch khám
B3: Bệnh nhân nhấn chọn một lịch khám mong muốn B4: Hệ thống hiển thị form điền thông tin đăng ký lịch khám
Bệnh nhân cần điền đầy đủ thông tin vào mẫu đơn Hệ thống sẽ kiểm tra tính chính xác của thông tin; nếu đúng, sẽ chuyển sang bước tiếp theo Nếu thông tin không đầy đủ hoặc sai, hệ thống sẽ chuyển sang luồng sự kiện phụ P1.
B7: Đặt lịch hẹn thành công lưu vào CSDL, hệ thống gửi mail xác nhận tới cho bệnh nhân
Hậu điều kiện Hệ thống cho phép đặt lịch khám bệnh thành công
Luồng sự kiện phụ P1: Hệ thống thấy thông tin đặt lịch sai hoặc không nhập đầy đủ thông tin thì hệ thống thông báo lỗi
Bảng 15: Kịch bản use case đặt lịch khám bệnh 3.2.4.10 Xem các thông tin chi tiết
Use case Xem các thông tin chi tiết
Mô tả use case Cho phép bệnh nhân xem các thông tin về bác sĩ, phòng khám, chuyên khoa
Tiền điều kiện Bệnh nhân truy cập vào website
Luồng sự kiện chính B1: Bệnh nhân truy cập vào website đặt lịch khám bệnh
B2: Tại trang website bệnh nhân click vào xem thông tin bác sĩ, chuyên khoa hoặc phòng khám
B3: Hệ thống hiển thị đầy đủ các thông tin về bác sĩ, chuyên khoa hoặc phòng khám mà bệnh nhân mong muốn
Hậu điều kiện Xem được đầy đủ các thông tin mong muốn
Luồng sự kiện phụ Không có
Bảng 16: Kịch bản use case xem thông tin chi tiết
3.2.5 Xây dựng biểu đồ hoạt động
3.2.5.1 Biểu đồ hoạt động đăng nhập
Hình 14: Biểu đồ hoạt động đăng nhập 3.2.5.2 Biểu đồ hoạt động đăng xuất
Hình 15: Biểu đồ hoạt động đăng xuất
3.2.5.3 Biểu đồ hoạt động quản lý tài khoản
Hình 16: Biểu đồ hoạt động thêm tài khoản
Hình 17: Biểu đồ hoạt động sửa tài khoản
Hình 18: Biểu đồ hoạt động xóa tài khoản
3.2.5.4 Biểu đồ hoạt động quản lý bác sĩ
Hình 19: Biểu đồ hoạt động thêm bác sĩ
Hình 20: Biểu đồ hoạt động sửa bác sĩ
Hình 21: Biểu đồ hoạt động xóa bác sĩ
3.2.5.5 Biểu đồ hoạt động quản lý chuyên khoa
Hình 22: Biểu đồ hoạt động thêm chuyên khoa
3.2.5.6 Biểu đồ hoạt động quản lý phòng khám
Hình 23: Biểu đồ hoạt động thêm phòng khám
3.2.5.7 Biểu đồ hoạt động tạo lịch khám bệnh
Hình 24: Biểu đồ hoạt động tạo lịch khám bệnh
3.2.5.8 Biểu đồ hoạt động quản lý bệnh nhân khám bệnh
Hình 25: Biểu đồ hoạt động quản lý bệnh nhân khám bệnh
3.2.5.9 Biểu đồ hoạt động đặt lịch khám bệnh
Hình 26: Biểu đồ hoạt động đặt lịch khám bệnh
3.2.5.10 Biểu đồ hoạt động xem các thông tin chi tiết
Hình 27: Biểu đồ hoạt động xem các thông tin chi tiết 3.2.6 Xây dựng biểu đồ tuần tự
3.2.6.1 Biểu đồ tuần tự đăng nhập
Hình 28: Biểu đồ tuần tự đăng nhập
3.2.6.2 Biểu đồ tuần tự đăng xuất
Hình 29: Biểu đồ tuần tự đăng xuất 3.2.6.3 Biểu đồ tuần tự quản lý tài khoản
Hình 30: Biểu đồ tuần tự thêm tài khoản
Hình 31: Biểu đồ tuần tự sửa tài khoản
Hình 32: Biểu đồ tuần tự xóa tài khoản
3.2.6.4 Biểu đồ tuần tự quản lý bác sĩ
Hình 33: Biểu đồ tuần tự thêm bác sĩ
Hình 34: Biểu đồ tuần tự sửa bác sĩ
Hình 35: Biểu đồ tuần tự xóa bác sĩ 3.2.6.5 Biểu đồ tuần tự quản lý chuyên khoa
Hình 36: Biểu đồ tuần tự thêm chuyên khoa
3.2.6.6 Biểu đồ tuần tự quản lý phòng khám
Hình 37: Biểu đồ tuần tự thêm phòng khám 3.2.6.7 Biểu đồ tuần tự tạo lịch khám bệnh
Hình 38: Biểu đồ tuần tự tạo lịch khám bệnh
3.2.6.8 Biểu đồ tuần tự quản lý bệnh nhân khám bệnh
Hình 39: Biểu đồ tuần tự quản lý bệnh nhân khám bệnh 3.2.6.9 Biểu đồ tuần tự đặt lịch khám bệnh
Hình 40: Biểu đồ tuần tự đặt lịch khám bệnh
3.2.6.10 Biểu đồ tuần tự xem các thông tin chi tiết
Hình 41: Biểu đồ tuần tự xem các thông tin chi tiết
3.2.7 Xây dựng biểu đồ lớp
Hình 42: Triển khai biểu đồ lớp
Thiết kế cơ sở dữ liệu
3.3.1 Xác định các thực thể thuộc tính
Bài viết mô tả cấu trúc dữ liệu của một bảng trong cơ sở dữ liệu, bao gồm các trường như id (khóa chính, kiểu int(11)), email (kiểu varchar(255)), password (mật khẩu, kiểu varchar(255)), firstName (tên đầu, kiểu varchar(255)), lastName (tên đệm, kiểu varchar(255)), address (địa chỉ, kiểu varchar(255)), gender (giới tính, kiểu varchar(255)), roleId (vai trò, kiểu varchar(255)), phonenumber (số điện thoại, kiểu varchar(255)), positionId (chức danh, kiểu varchar(255)), và image (ảnh, kiểu longblob).
The table includes several key fields: the primary key is represented by the 'id' as an integer (int(11)) The 'doctorId' corresponds to the doctor's identification number, also an integer The 'specialtyId' and 'clinicId' are integers that represent the specialty and clinic identification numbers, respectively The 'priceId' is a varchar(255) that denotes the price code for consultations The 'provinceId' indicates the address as a varchar(255), while 'paymentId' specifies the payment method, also as a varchar(255) Additionally, 'addressClinic' provides the clinic's address in varchar(255), 'nameClinic' denotes the clinic's name in varchar(255), and 'note' offers supplementary remarks in varchar(255).
Trường dữ liệu bao gồm: id (khóa chính, kiểu int(11)), image (ảnh chuyên khoa, kiểu longblob), name (tên chuyên khoa, kiểu varchar(255)), descriptionHTML (thông tin chuyên khoa, kiểu text), và descriptionMarkdown (thông tin chuyên khoa, kiểu text).
Trường dữ liệu của bảng khối khám bao gồm: id (khóa chính, kiểu int(11)), image (ảnh phòng khám, kiểu longblob), name (tên phòng khám, kiểu varchar(255)), descriptionHTML (thông tin phòng khám, kiểu text) và descriptionMarkdown (thông tin phòng khám, kiểu text).
Bài viết mô tả cấu trúc dữ liệu của một trường thông tin bác sĩ, bao gồm các trường như id (mã phòng khám), doctorId (mã bác sĩ), specialtyId (mã chuyên khoa), clinicId (mã phòng khám), contentHTML và contentMarkdown (thông tin bác sĩ dưới dạng HTML và Markdown), cùng với description (mô tả) Tất cả các trường mã đều có kiểu dữ liệu là int(11) và được xác định là khóa chính, trong khi contentHTML, contentMarkdown và description có kiểu dữ liệu là longtext.
Bài viết mô tả cấu trúc dữ liệu của một trường với các thuộc tính như sau: "id" là khóa chính kiểu int(11), "keyMap" là mã thuộc tính kiểu varchar(255), "type" là kiểu thuộc tính kiểu varchar(255), "valueEn" là giá trị tiếng Anh kiểu varchar(255), và "valueVi" là giá trị tiếng Việt kiểu varchar(255).
The table includes the following fields: "id" as the primary key of type int(11), "statusId" representing the status code as varchar(255), "doctorId" for the doctor's ID as int(11), "patientID" for the user's ID as int(11), "date" indicating the appointment date as varchar(255), and "timeType" for the appointment time as varchar(255).
3.3.2 Mô hình cơ sở dữ liệu vật lý
Hình 43: Mô hình cơ sở dữ liệu vật lý
TRIỂN KHAI HỆ THỐNG
Môi trường lập trình
❖ Môi trường lập trình ứng dụng web Để phát triển ứng dụng website, sử dụng một số môi trường lập trình như:
- Visual Studio Code: Phiên bản 1.68.1
- Ngôn ngữ lập trình ReactJS: Phiên bản 17.0.2
- MySql2: Phiên bản 2.2.5 và sequelize 6.6.2
- Thực hiện đưa website chạy trên môi trường localhost XAMPP
4.1.1 Xây dựng cơ sở dữ liệu
Hình 44: Mô hình triển khai cơ sở dữ liệu
PhpMyAdmin là một công cụ mã nguồn mở miễn phí, được phát triển bằng ngôn ngữ PHP, giúp quản lý MySQL thông qua giao diện trình duyệt web.
Nó có khả năng thực hiện nhiều tác vụ như tạo, sửa đổi hoặc xóa cơ sở dữ liệu, bảng, các trường và bản ghi; thực hiện các báo cáo SQL; cũng như quản lý người dùng và cấp phép.
❖ Các tính năng của PHPMyAdmin
Một số tính năng thường được sử dụng trên phpMyAdmin:
• Quản lý user(người dùng): thêm, xóa, sửa(phân quyền)
• Quản lý cơ sở dữ liệu: tạo mới, xóa, sửa, thêm bảng, hàng, trường, tìm kiếm đối tượng
• Nhập xuất dữ liệu(Import/Export): hỗ trợ các định dạng SQL, XML và CSV
• Thực hiện các truy vấn MySQL, giám sát quá trình và theo dõi
• Sao lưu và khôi phục(Backup/Restore): Thao tác thủ công
4.1.2 Công cụ hỗ trợ lập trình
Xampp là phần mềm giúp tạo máy chủ web, tích hợp FTP Server, Apache, PHP, MySQL và phpMyAdmin Giao diện của Xampp dễ sử dụng, thuận tiện cho người dùng trong việc quản lý các dịch vụ máy chủ như bật, tắt hoặc khởi động lại.
Visual Studio Code là trình soạn thảo mã nguồn miễn phí và mã nguồn mở do Microsoft phát triển, hỗ trợ trên Windows, Linux và macOS Nó tích hợp chức năng debug, Git, và nổi bật với cú pháp, tự hoàn thành mã thông minh, cùng với khả năng cải tiến mã nguồn Người dùng có thể tùy chỉnh giao diện, phím tắt và các tùy chọn khác để phù hợp với nhu cầu cá nhân.
Hình 46: Giao diện Visual Studio code
Giao diện ứng dụng website
Hình 47: Giao diện trang chủ
• Nhằm mục đích hiển thị các danh mục và chức năng của website
• Người dùng sử dụng chức năng nào sẽ chọn vào chức năng đó để truy cập chức năng
4.2.1.2 Trang chuyên khoa phổ biến
Hình 48: Giao diện mục chuyên khoa phổ biến
• Hiện thị nội dung thông tin theo đúng chuyên khoa
• Hiển thị danh sách các bác sĩ theo chuyên khoa
• Để truy cập chức năng này người dùng từ trang chủ tại mục chuyên khoa phổ biến, nhấn chọn một chuyên khoa
4.2.1.3 Trang cơ sở y tế nổi bật
Hình 49: Giao diện mục cơ sở y tế nổi bật
• Hiện thị nội dung thông tin theo đúng phòng khám
• Hiển thị danh sách các bác sĩ công tác tại phòng khám đó
• Để truy cập chức năng này người dùng từ trang chủ tại mục cơ sở y tế nổi bật, nhấn chọn một phòng khám
4.2.1.4 Trang bác sĩ nổi bật tuần qua
Hình 50: Giao diện mục bác sĩ nổi bật tuần qua
• Hiện thị đầy đủ thông tin của bác sĩ
• Hiển thị lịch khám, giá giám, địa chỉ phòng khám
• Để truy cập chức năng này người dùng từ trang chủ tại mục bác sĩ nổi bật tuần qua nhấn chọn một bác sĩ
Hình 51: Giao diện đặt lịch khám bệnh
• Hiển thị popup điền thông tin đặt lịch khám bệnh
• Thông tin đặt lịch khám gồm: Họ và tên, số điện thoại, địa chỉ email, địa chỉ liên lạc, ngày sinh, giới tính
• Để truy cập chức năng này người dùng từ trang chủ , tại giao diện hiển thị thông tin bác sĩ, nhấn chọn vào một lịch khám bất kỳ
Hình 52: Giao diện trang đăng nhập
• Chức năng đăng nhập cần những thông tin sau:
- Textbox email: Quản trị viên và bác sĩ nhập email đăng nhập Nếu nhập email sai sẽ không login thành công
Để đăng nhập vào ứng dụng, quản trị viên và bác sĩ cần nhập mật khẩu Nếu mật khẩu được nhập không chính xác, ứng dụng sẽ thông báo lỗi sai mật khẩu.
- Sau khi điền đầy đủ thông tin một cách chính xác thì quản trị viên và bác sĩ chọn Đăng nhập để truy cập trang được phân quyền
4.2.2.2 Trang quản lý tài khoản
Hình 53: Giao diện trang quản lý tài khoản
• Hiện thị nội dung thông tin theo đúng form quản lý tài khoản
• Hiển thị danh sách các danh sách các user được tạo
• Để truy cập chức năng này quản trị viên thực hiện chức năng Đăng nhập theo đúng quyền, tại mục Người dùng chọn Quản lý tài khoản
4.2.2.3 Trang quản lý bác sĩ
Hình 54: Giao diện trang quản lý bác sĩ
• Hiện thị nội dung thông tin theo đúng form quản lý bác sĩ
• Hiển thị danh sách các trường nhập thông tin bác sĩ
• Để truy cập chức năng này quản trị viên thực hiện chức năng Đăng nhập theo đúng quyền, tại mục Người dùng chọn Quản lý bác sĩ
4.2.2.4 Trang quản lý tạo lịch khám bệnh
Hình 55: Giao diện tạo lịch khám bệnh
• Hiện thị nội dung thông tin theo đúng form tạo lịch khám bệnh
• Hiển thị các thông tin tạo lịch khám bệnh
Để sử dụng chức năng này, quản trị viên và bác sĩ cần đăng nhập với quyền hạn phù hợp Sau đó, tại mục Người dùng, họ chọn tùy chọn Tạo lịch khám bệnh.
4.2.2.5 Trang quản lý chuyên khoa
Hình 56: Giao diện quản lý chuyên khoa
• Hiện thị nội dung thông tin theo đúng form quản lý chuyên khoa
• Hiển thị các trường nhập thông tin chuyên khoa
• Để truy cập chức năng này quản trị viên thực hiện chức năng Đăng nhập theo đúng quyền, tại mục Chuyên khoa chọn Quản lý chuyên khoa
4.2.2.6 Trang quản lý phòng khám
Hình 57: Giao diện quản lý phòng khám
• Hiện thị nội dung thông tin theo đúng form quản lý phòng khám
• Hiển thị các trường nhập thông tin phòng khám
• Để truy cập chức năng này quản trị viên thực hiện chức năng Đăng nhập theo đúng quyền, tại mục Phòng khám chọn Quản lý phòng khám
4.2.2.7 Trang quản lý bệnh nhân khám bệnh
Hình 58: Giao diện quản lý bệnh nhân khám bệnh
• Hiện thị nội dung thông tin theo đúng form quản lý bệnh nhân khám bệnh
• Hiển thị thông tin bệnh nhân cần xác nhận khám để gửi đơn thuốc
• Để truy cập chức năng này bác sĩ thực hiện chức năng Đăng nhập theo đúng quyền, tại mục Người dùng chọn Quản lý bệnh nhân khám bệnh
Kiểm thử hệ thống
Cách thực hiện Manual Testing:
- Đầu tiên, thực hiện quan sát tất cả các tài liệu liên quan đến phần mềm website, để chọn các khu vực kiểm thử
- Phân tích viết test case các tài liệu yêu cầu để bao gồm tất cả các yêu cầu mà người dùng đã nêu
- Thực hiện test các trường hợp kiểm thử theo tài liệu đề ra
- Tất cả các trường hợp kiểm thử được thực thi theo cách thủ công bằng cách sử dụng kiểm thử Black box và kiểm thử white box
- Nếu lỗi xảy ra tái hiện lại lỗi, để thực hiện fix lại
- Khi đã fix xong các lỗi, thực hiện kiểm tra test lại cho đến khi phần mềm ứng dụng không còn lỗi xảy ra
TC_ID Mục đích kiểm thử Các bước thực hiện Kết quả mong đợi
1 Chức năng đăng nhập của
Quản trị viên và bác sĩ
1 Truy cập vào hệ thống Hiển thị giao diện, đúng design mong muốn
2 Kiểm tra các trường hợp đăng nhập thành công
1 Nhập tài khoản gmail đúng
3 Nhấn button đăng nhập Đăng nhập thành công
1.Đăng nhập nhiều lần cùng
1 tài khoản Đăng nhập thành công
Kiểm tra các trường hợp đăng nhập không thành công
1.Bỏ trống trường nhập gmail và password
2 Nhấn button đăng nhập Đăng nhập không thành công
1.Nhập vào gmail sai 2.Nhập password đúng Đăng nhập không thành công
1.Nhập vào gmail đúng 2.Nhập password sai Đăng nhập không thành công
1.Nhập gmail sai định dạng 2.Nhập password đúng Đăng nhập không thành công
1.Nhập toàn space vào gmail 2.Nhập password đúng Đăng nhập không thành công
Bảng 24: Test case đăng nhập
TC_ID Mục đích kiểm thử Các bước thực hiện Kết quả mong đợi
1 Chức năng đặt lịch khám bệnh
1 Truy cập vào hệ thống Hiển thị giao diện, đúng design mong muốn
2 Kiểm tra hiển thị thông tin bác sĩ
1.Chọn vào một bác sĩ muốn đặt lịch khám
Hiển thị đúng thông tin bác sĩ, giá khám, địa chỉ
3 Kiểm tra hiển thị thông tin đặt lịch khám
1.Chọn một thời gian đặt lịch khám bệnh
2 Hiển thị phiếu nhập thông tin bệnh nhân muốn đặt lịch khám
Hiển thị đúng form nhập, và nội dung cần nhập vào phiếu
4 Kiểm tra đặt lịch khám bệnh thành công
1.Chọn một thời gian đặt lịch khám bệnh
2.Nhập vào phiếu tất cả các thông tin của bệnh nhân 3.Nhấn button xác nhận
Nhận mail xác nhận thông tin đặt lịch khám
5 Kiểm tra đặt lịch khám thất bại
1.Chọn một thời gian đặt lịch khám bệnh
2.Bỏ trống tất cả các trường 3.Nhấn button xác nhận
Show popup thông báo lỗi
1.Chọn một thời gian đặt lịch khám bệnh
2.Bỏ trống trường họ và tên 3.Các trường còn lại nhập hợp lệ
Show popup thông báo lỗi
4.Nhấn button xác nhận 1.Chọn một thời gian đặt lịch khám bệnh
2.Bỏ trống trường nhập số điện thoại
3.Các trường còn lại nhập hợp lệ 4.Nhấn button xác nhận
Show popup thông báo lỗi
1.Chọn một thời gian đặt lịch khám bệnh
2.Bỏ trống trường nhập gmail 3.Các trường còn lại nhập hợp lệ 4.Nhấn button xác nhận
Show popup thông báo lỗi
1.Chọn một thời gian đặt lịch khám bệnh
2.Bỏ trống trường nhập lý do khám
3.Các trường còn lại nhập hợp lệ 4.Nhấn button xác nhận
Show popup thông báo lỗi
1.Chọn một thời gian đặt lịch khám bệnh
2.Bỏ trống trường nhập ngày sinh
3.Các trường còn lại nhập hợp lệ 4.Nhấn button xác nhận
Show popup thông báo lỗi
1.Chọn một thời gian đặt lịch khám bệnh
2.Bỏ trống trường nhập giới tính
3.Các trường còn lại nhập hợp lệ 4.Nhấn button xác nhận
Show popup thông báo lỗi
Bảng 25: test case đặt lịch khám bệnh