GIỚI THIỆU ĐỀ TÀI
Tên đề tài
XÂY DỰNG ỨNG DỤNG TƯ VẤN SỨC KHỎE
Lý do chọn đề tài
Trong bối cảnh cách mạng công nghệ số hóa 4.0, dịch vụ tư vấn sức khỏe trực tuyến đang thu hút sự quan tâm đáng kể của cộng đồng Mặc dù đã phổ biến ở nhiều nước phát triển, nhưng tại Việt Nam, dịch vụ này chỉ mới bắt đầu xuất hiện trong vài năm gần đây và đã có sự phát triển đáng kể Điều này được thúc đẩy mạnh mẽ bởi sự tiến bộ nhanh chóng của công nghệ và Internet, đặc biệt sau khi đại dịch COVID-19 bùng phát thì nhu cầu về chăm sóc và tư vấn sức khỏe trực tuyến trở thành một giải pháp công nghệ quan trọng để khắc phục một số khó khăn mà người dân gặp phải khi đến các trung tâm y tế truyền thống.
Dịch vụ tư vấn sức khỏe trực tuyến không chỉ giúp tiết kiệm thời gian và công sức của người dân trong việc di chuyển, tránh nguy cơ lây nhiễm chéo mà còn giúp giảm chi phí không cần thiết trong việc chăm sóc sức khỏe của bản thân và gia đình. Bên cạnh đó, một ứng dụng tư vấn sức khỏe trực tuyến có thể đóng vai trò quan trọng trong việc giảm áp lực cho hệ thống y tế, giúp tối ưu hóa tài nguyên y tế và cung cấp dịch vụ chăm sóc sức khỏe hiệu quả hơn Do đó, tư vấn sức khỏe trực tuyến đang trở thành một lựa chọn ngày càng phổ biến trong ngành y tế.
Với thực trạng trên, việc phát triển một ứng dụng tư vấn sức khỏe trực tuyến sẽ đồng thời đáp được ứng nhu cầu ngày càng tăng về khám sức khỏe từ xa của người dân và đóng góp tích cực cho sự phát triển toàn diện của ngành y tế, đó cũng chính là lý do nhóm chúng em chọn đề tài này.
Mục tiêu của đề tài
Mục tiêu của đề tài này là xây dựng phần mềm tư vấn sức khỏe trực tuyến giúp những người cần tư vấn sức khỏe có thể đặt khám để tương tác trực tuyến với bác sĩ nhằm giải quyết một số vấn đề phổ biến của khám sức khỏe truyền thống, như sự cách xa về địa lý, thời gian chờ đợi, nguy cơ lây nhiễm chéo và các quy trình phức tạp(ngoại trừ các bệnh nhân cần cấp cứu và các vấn đề phức tạp cần thăm khám trực tiếp).
Đối tượng và phạm vi nghiên cứu
- Người cần tư vấn sức khỏe.
- Ứng dụng sẽ có giao diện quản lý và chức năng liên quan cho từng đối tượng của đề tài, bao gồm giao diện cho người dùng, giao diện quản lý của bác sĩ và giao diện quản lý của quản trị viên.
- Đề tài sẽ tập trung vào phát triển tính năng cụ thể của ứng dụng, bao gồm khả năng tư vấn sức khỏe, đặt lịch hẹn, giao diện người dùng, quản lý lịch sử tư vấn, và các tính năng liên quan.
- Nghiên cứu các công nghệ và framework được sử dụng trong việc phát triển ứng dụng, chẳng hạn như Flutter và Dart, cũng như quản lý dữ liệu sử dụng Firebase.
- Ứng dụng sẽ tích hợp và triển khai tính năng gọi video thông qua dịch vụ của
Phương pháp nghiên cứu
- Trải nghiệm và quan sát các ứng dụng tư vấn sức khỏe trực tuyến hiện có trên thị trường như “Wellcare”, “eDoctor”, từ đó đề ra các yêu cầu chức năng và phi chức năng.
- Phân tích ưu điểm, nhược điểm của các ứng dụng khác để áp dụng và rút kinh nghiệm khi xây dựng đề tài.
- Khảo sát người dùng để thu thập và phân tích ý kiến về giao diện và nhu cầu chức năng mong muốn của từng đối tượng.
- Nghiên cứu tài liệu các công nghệ liên quan, cập nhật các phiên bản mới và ứng dụng chúng.
- Phát triển song song với kiểm thử để tiết kiệm thời gian và chi phí bảo trì.
Công cụ sử dụng
Trong quá trình thực hiện đề tài, nhóm đã sử dụng một số công cụ để phục vụ cho việc triển khai đề tài, bao gồm:
- Công cụ quản lý CSDL: Firebase.
Firebase Firestore (CSDL thời gian thực).
Firebase Storage (lưu trữ tệp).
- Công cụ xây dựng ứng dụng: Visual Studio Code.
- Công cụ vẽ sơ đồ phân tích thiết kế: StarUML.
CƠ SỞ LÝ THUYẾT
Tổng quan về framework Flutter
Flutter là một framework phát triển ứng dụng di động mã nguồn mở được phát triển bởi Google Framework này cho phép bạn xây dựng các ứng dụng đa nền tảng với giao diện người dùng tương tự trên cả iOS và Android từ một mã nguồn duy nhất Flutter sử dụng ngôn ngữ lập trình Dart để phát triển ứng dụng [4]
2.1.2 Ưu và nhược điểm của framework Flutter
- Đa nền tảng: Flutter cho phép phát triển ứng dụng di động cho cả iOS và Android từ một mã nguồn duy nhất, giúp tiết kiệm thời gian và công sức.
- Hiệu suất cao: Flutter sử dụng kỹ thuật rendering riêng biệt và cấu trúc widget để cải thiện hiệu suất ứng dụng Điều này đảm bảo cho trải nghiệm người dùng mượt mà và đáng tin cậy.
- Giao diện người dùng tương tự: Flutter cung cấp một bộ các widget thích ứng phong phú, cho phép bạn tạo ra giao diện người dùng đẹp và tương tự trên cả hai nền tảng.
- Cộng đồng phát triển mạnh mẽ: Flutter hiện có một cộng đồng lớn và nhiều tài nguyên hữu ích, giúp dễ dàng tìm kiếm hỗ trợ và giải quyết vấn đề.
- Kích thước ứng dụng lớn: do tích hợp một bộ thư viện đồ sộ, kích thước của ứng dụng Flutter có thể lớn hơn so với ứng dụng native truyền thống.
- Hạn chế của các plugin: một số plugin của Flutter có thể hạn chế chức năng so với các phiên bản native tương ứng.
Tổng quan về ngôn ngữ Dart
Hình 2.2 Icon ngôn ngữ Dart
Dart là một ngôn ngữ lập trình được phát triển bởi Google, được sử dụng chủ yếu trong việc phát triển ứng dụng di động và web Dart kết hợp tính năng của ngôn ngữ tĩnh và động, và tập trung vào hiệu suất và tốc độ trong việc xây dựng ứng dụng Nó cung cấp một cú pháp gọn nhẹ và hỗ trợ việc phát triển ứng dụng di động với Flutter [5]
2.2.2 Ưu và nhược điểm của ngôn ngữ Dart?
- Hiệu suất cao: Dart được thiết kế để cung cấp hiệu suất tốt và thời gian chạy nhanh Nó có thể xử lý tốt trong việc xây dựng ứng dụng di động và web.
- Tính nhất quán: Dart cung cấp một cú pháp gọn nhẹ và có cấu trúc rõ ràng, giúp làm cho mã nguồn dễ đọc, hiểu và bảo trì.
- Hỗ trợ đa nền tảng: Dart không chỉ được sử dụng trong Flutter, mà còn có thể sử dụng để phát triển ứng dụng web thông qua framework AngularDart.
- Hạn chế trong môi trường phát triển: so với một số ngôn ngữ lập trình khác, Dart có một cộng đồng phát triển nhỏ hơn và ít tài liệu hơn, điều này có thể làm cho việc tìm kiếm hỗ trợ và thông tin khó khăn hơn.
- Cú pháp riêng: Dart có cú pháp riêng và khá khác biệt so với các ngôn ngữ lập trình phổ biến khác.
Tổng quan về Firebase
Firebase là một nền tảng phát triển ứng dụng di động và web được cung cấp bởi Google Nó cung cấp một bộ các dịch vụ đám mây như cơ sở dữ liệu thời gian thực (Firebase Firestore), lưu trữ tệp (Firebase Storage), xác thực người dùng, thông báo đẩy, phân tích và nhiều dịch vụ khác Firebase giúp đơn giản hóa và tăng tốc quá trình phát triển ứng dụng bằng cách cung cấp các công cụ và hạ tầng được xây dựng sẵn [6]
2.3.2 Ưu và nhược điểm của Firebase?
- Dễ sử dụng: Firebase cung cấp một giao diện người dùng thân thiện và các công cụ dễ sử dụng, giúp người phát triển nhanh chóng triển khai tính năng của ứng dụng.
- Phát triển nhanh: Firebase cung cấp nhiều dịch vụ như cơ sở dữ liệu thời gian thực, xác thực người dùng và lưu trữ tệp tin.
- Tích hợp tốt: Firebase tích hợp tốt với các dịch vụ khác của Google và cung cấp các API và SDK dễ sử dụng để tích hợp vào ứng dụng của bạn.
- Giới hạn mở rộng: Firebase có một số giới hạn về quy mô và khả năng mở rộng Đối với các ứng dụng lớn, có lưu lượng truy cập cao, có thể xem xét các giải pháp khác.
- Phí sử dụng: một số dịch vụ của Firebase có thể yêu cầu phí sử dụng, đặc biệt đối với các ứng dụng có lưu lượng sử dụng lớn.
Tổng quan về Agora
Agora là một nền tảng cung các giải pháp liên quan đến hội nghị trực tuyến và tương tác trực tiếp trong ứng dụng di động và web Agora cung cấp các API cho việc tích hợp tính năng âm thanh, video và trò chuyện trực tiếp vào ứng dụng của bạn Nó cho phép xây dựng các ứng dụng hội thảo trực tuyến, tương tác trực tiếp giữa người dùng, trò chuyện trong trò chơi và nhiều ứng dụng khác có yêu cầu về truyền thông trực tiếp [7]
1.1.2 Ưu và nhược điểm của Agora?
- Tích hợp âm thanh và video: Agora cung cấp các API và SDK cho phép tích hợp dễ dàng tính năng âm thanh và video trực tiếp vào ứng dụng của bạn.
- Hiệu suất cao: Agora được tối ưu hóa để cung cấp trải nghiệm truyền thông trực tiếp mượt mà và ổn định, giúp người dùng tương tác trực tiếp hiệu quả.
- Tích hợp đa nền tảng: Agora hỗ trợ phát triển ứng dụng trên nhiều nền tảng như iOS, Android và web, đảm bảo tính tương thích và khả năng sử dụng trên nhiều thiết bị.
- Giới hạn trong các gói miễn phí: các gói miễn phí của Agora có một số hạn chế về số lượng người dùng, thời gian sử dụng và chất lượng truyền thông. Đối với các ứng dụng có quy mô lớn, có thể cần xem xét các gói trả phí.
- Giới hạn số lượng người dùng: gói miễn phí của Agora có thể giới hạn số lượng người dùng đồng thời truy cập trong một cuộc gọi hoặc phòng họp. Điều này có thể gây hạn chế nếu ứng dụng của bạn cần hỗ trợ một số lượng lớn người dùng cùng lúc.
- Giới hạn thời gian sử dụng: gói miễn phí của Agora có thể giới hạn thời gian sử dụng hàng tháng hoặc hàng ngày Nếu ứng dụng của bạn đòi hỏi sử dụng truyền thông thời gian thực trong thời gian dài hoặc tần suất cao, giới hạn này có thể gây ràng buộc và yêu cầu bạn nâng cấp lên gói trả phí.
PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG
Khảo sát hiện trạng
3.1.1 Các quy trình, nghiệp vụ
Đối với người cần tư vấn sức khỏe
- Đăng ký và xác thực tài khoản: người dùng phải đăng ký và xác thực tài khoản.
- Tạo hồ sơ sức khỏe: người dùng tạo hồ sơ sức khỏe cá nhân với thông tin về tiền sử bệnh và kết quả xét nghiệm.
- Lựa chọn bác sĩ: người dùng chọn bác sĩ từ danh sách có sẵn trên ứng dụng.
- Tạo yêu cầu tư vấn: người dùng mô tả triệu chứng và gửi yêu cầu tư vấn.
- Tư vấn trực tuyến: trao đổi thông tin qua tin nhắn hoặc cuộc gọi video với bác sĩ.
- Chẩn đoán: bác sĩ đánh giá thông tin và đưa ra chẩn đoán sơ bộ và đề xuất điều trị.
- Lưu trữ thông tin: lưu trữ thông tin phiếu khám và lịch sử bệnh án.
- Thanh toán và đánh giá: người dùng thanh toán dịch vụ và trải nghiệm tư vấn, sau khi tư vấn xong thì có thể đánh giá bác sĩ.
- Đăng ký và xác thực tài khoản: bác sĩ đăng ký và xác thực tài khoản chuyên.
- Xác nhận yêu cầu tư vấn: bác sĩ nhận thông báo về yêu cầu tư vấn từ người dùng.
- Xem thông tin hồ sơ sức khỏe: bác sĩ xem thông tin hồ sơ sức khỏe cá nhân của người dùng, bao gồm tiền sử bệnh và kết quả xét nghiệm.
- Tư vấn trực tuyến: bác sĩ và người dùng trao đổi thông tin qua tin nhắn hoặc cuộc gọi video để hiểu rõ hơn về triệu chứng và tình trạng sức khỏe.
- Chẩn đoán và tư vấn: dựa trên thông tin được cung cấp, bác sĩ đưa ra chẩn đoán sơ bộ, cung cấp tư vấn và đề xuất điều trị phù hợp.
- Lưu trữ thông tin: bác sĩ lưu trữ thông tin cuộc trò chuyện và lịch sử bệnh án cho việc theo dõi và tham khảo sau này.
- Thanh toán và đánh giá: bác sĩ nhận thanh toán dịch vụ từ người dùng và có thể nhận được đánh giá từ người dùng về trải nghiệm tư vấn.
Đối với quản trị viên
- Quản lý bác sĩ: quản trị viên quản lý danh sách bác sĩ, bao gồm đăng ký, xác thực tài khoản và cập nhật thông tin chuyên môn.
- Quản lý yêu cầu tư vấn: quản trị viên xác nhận và giám sát yêu cầu tư vấn từ người dùng, đảm bảo rằng các yêu cầu được xử lý một cách hiệu quả và đáp ứng kịp thời.
- Hỗ trợ giao tiếp: quản trị viên hỗ trợ giao tiếp giữa người dùng và bác sĩ, đảm bảo rằng thông tin được truyền đạt một cách chính xác và an toàn.
- Quản lý dữ liệu: quản trị viên đảm bảo rằng thông tin về người dùng, bác sĩ và cuộc trò chuyện được lưu trữ một cách bảo mật và tuân thủ quy định về bảo vệ dữ liệu.
- Thanh toán và hạch toán: quản trị viên quản lý quá trình thanh toán từ người dùng và hạch toán các giao dịch tài chính liên quan đến dịch vụ tư vấn sức khỏe.
- Quản lý đánh giá: quản trị viên xem xét và quản lý đánh giá từ người dùng về bác sĩ và trải nghiệm tư vấn cũng như các câu hỏi trên cộng đồng hỏi đáp.
3.1.2 Khảo sát ứng dụng hiện có
Trong quá trình xây dựng và triển khai phần mềm, nhóm có tham khảo qua ứng dụng “YouMed” và thấy được một vài ưu điểm của ứng dụng này Điển hình là ngoài việc khách hàng có thể đặt lịch cuộc gọi thì còn có chức năng “Gọi video ngay” (chức năng này chỉ được sử dụng với những bác sĩ đã bật trạng thái sẵn sàng nhận cuộc gọi). Khách hàng sau khi thanh toán thì có thể gọi ngay cho bác sĩ mà không cần đặt trước (phù hợp với một số trường hợp cần khám gấp).
Ngoài ra, nhóm còn tham khảo ứng dụng “IVIE – Bác sĩ ơi” và thấy được tính năng
“Hỏi đáp bác sĩ miễn phí và ẩn danh” khá hay Với chức năng này, khách hàng có thể đăng câu hỏi lên trang “Cộng đồng hỏi đáp” của ứng dụng và sẽ có các bác sĩ phản hồi rất nhanh Với chế độ ẩn danh này thì khách hàng sẽ không sợ bị lộ thông tin cá nhân.
Các ưu điểm của một số ứng dụng mà nhóm tham khảo sẽ được nhóm cân nhắc,chọn lọc tùy theo nguồn lực của nhóm mà áp dụng vào dự án Việc xác định các ưu và nhược điểm của từng ứng dụng hiện có trên thị trường sẽ giúp sản phẩm dự án trở nên hoàn thiện hơn và đảm bảo đầy đủ các tính năng cơ bản cũng như có thêm một số tính năng mới như gọi video ngay và hỏi đáp ẩn danh.
Yêu cầu phần mềm
Các chức năng chính trong giao diện cho người cần tư vấn sức khỏe
- Đăng ký gọi video tư vấn.
- Quản lý lịch hẹn tư vấn.
- Nhắn tin với bác sĩ và quản trị viên.
- Hỏi đáp ẩn danh trên cộng đồng.
- Quản lý hồ sơ sức khỏe của bản thân và người thân
- Đánh giá chất lượng dịch vụ sau khám.
- Theo dỏi chỉ số sức khỏe.
Các chức năng chính trong giao diện quản lý của bác sĩ
- Nhắn tin với bệnh nhân và quản trị viên.
- Trả lời câu hỏi cộng đồng.
- Quản lý hồ sơ bệnh án.
- Thống kê (doanh thu, thống kê lượt tư vấn trong ngày,…)
Các chức năng chính trong giao diện quản lý của quản trị viên
- Xóa đánh giá bác sĩ từ người dùng.
- Xóa câu hỏi ẩn danh.
- Nhắn tin với người dùng và bác sĩ.
3.2.2 Yêu cầu phi chức năng
- Ứng dụng cần đảm bảo tính sẵn sàng cao, hoạt động ổn định.
- Dữ liệu phải được lưu trữ và truy xuất một cách hiệu quả, hạn chế việc xảy ra tình trạng truy xuất chậm hay lỗi.
- Ứng dụng phải có chức năng đăng nhập bảo mật để đảm bảo chỉ những người dùng được phân quyền mới có thể truy cập vào hệ thống.
- Ứng dụng phải có khả năng đồng bộ hóa thông tin và cập nhật dữ liệu thời gian thực để đảm bảo rằng các thông tin được cập nhật liên tục và chính xác.
Sơ đồ Use – case
Hình 3.8 Sơ đồ Use – case chi tiết của bác sĩ
Hình 3.9 Sơ đồ Use – case chi tiết của quả trị viên
Bảng 3.1 Danh sách Use-case
Quyền hệ thống STT Tên Use - case Ý nghĩa
Người cần tư vấn sức khỏe
1 Đăng ký Đăng ký vào ứng dụng.
2 Đăng nhập Đăng nhập vào ứng dụng.
3 Đăng ký gọi video tư vấn Đăng ký gọi ngay hoặc đặt lịch gọi để được tư vấn.
4 Quản lý lịch hẹn tư vấn Hủy/Đặt lại lịch hẹn/Đánh giá sau khám.
5 Nhắn tin Nhắn tin với bác sĩ và nhân viên chăm sóc khách hàng.
6 Hỏi đáp ẩn danh trên cộng đồng
Thêm mới/Tra cứu câu hỏi.
7 Quản lý hồ sơ sức khỏe bản thân và người thân
Xem và xuất thống kê doanh thu.
8 Đánh giá chất lượng sau khám Đánh giá bác sĩ từ người dùng sau khi kết thúc khám.
9 Theo dỏi chỉ số sức khỏe Thêm/Xóa/Sửa chỉ số sức khỏe của bản thân.
Xem các kết quả khám (gồm chẩn đoán, ghi chú, hình ảnh) được bác sĩ trả về sau khi kết thúc khám.
Bác sĩ 1 Đăng nhập Đăng nhập vào ứng dụng.
2 Quản lý lịch khám Thêm lịch khám/ Xóa lịch khám/
Sửa thông tin lịch khám. quả sau khám.
4 Nhắn tin Nhắn tin với bệnh nhân và quản trị viên.
5 Trả lời câu hỏi cộng đồng Thêm câu trả lời cho câu hỏi trên trang cộng đồng hỏi đáp.
6 Quản lý hồ sơ bệnh án Xem/Xóa/Tra cứu hồ sơ bệnh án.
Gửi thông tin chẩn đoán, ghi chú và hình ảnh cho bênh nhân sau khi kết thúc khám.
8 Thống kê doanh thu Xem thống kê doanh thu.
1 Đăng nhập Đăng nhập vào ứng dụng.
2 Quản lý bác sĩ Thêm mới/Xoá/Sửa thông tin/Tra cứu bác sĩ.
3 Xóa đánh giá sau khám Xóa đánh giá về bác sĩ sau khi kết thúc tư vấn.
4 Xóa câu hỏi ẩn danh Xóa câu hỏi trên trang hỏi đáp cộng đồng.
5 Nhắn tin Nhắn tin với bác sĩ và người dùng.
6 Xử lý thanh toán Duyệt các phiếu khám đã thanh toán.
7 Thống kê Xem thống kê doanh thu tổng và doanh thu của từng bác sĩ.
Đặc tả Use – case
Bảng 3.2 Đặc tả Use – case đăng ký
Tên Use – case Đăng ký
Mô tả Use – case Người cần tư vấn sức khỏe đăng ký tài khoản với ứng dụng hệ thống
(Trigger) Người dùng khởi động ứng dụng hệ thống
Actors Người cần tư vấn sức khỏe.
Use – case liên quan Không có
Tiền điều kiện Người dùng chưa có tài khoản của ứng dụng.
Nếu thành công, người dùng có tài khoản để truy cập vào ứng dụng với phân quyền tương
Nếu không thành công, thông báo phải được trả về cho người dùng
1 Người dùng chọn nút Đăng ký trên trang Đăng nhập
2 Ứng dụng hiển thị giao diện Đăng Ký
3 Người dùng nhập số điện thoại và chọn nút gởi mã xác nhận.
4 Ứng dụng gởi mã xác nhận về số điện thoại và người dùng nhập mã xác nhận Nếu không nhận được mã thì quay lại bước 2.
5 Ứng dụng thông báo xác nhận thành công và hiển thị tới màn hình nhập thông cá nhân.
6 Người dùng nhập thông tin cá nhân của mình sau đó xác nhận và quay lại màn hình Đăng nhập.
Luồng sự kiện ngoại lệ
Người dùng chọn nút tắt ứng dụng hoặc mất kết nối mạng. Use – case Đăng ký kết thúc
Bảng 3.3 Đặc tả Use – case đăng nhập
Tên Use – case Đăng nhập
Mô tả Use – case Người dùng đăng nhập vào ứng dụng hệ thống
Kích hoạt (Trigger) Người dùng khởi động ứng dụng hệ thống
Actors Người cần tư vấn sức khỏe, bác sĩ, quản trị viên
Use – case liên quan Không có
Tiền điều kiện Người dùng chưa đăng nhập vào hệ thống
Nếu thành công, người dùng truy cập vào ứng dụng với phân quyền tương ứng
Nếu không thành công, thông báo phải được trả về cho người dùng
1 Người dùng mở ứng dụng
2 Ứng dụng hiển thị giao diện Đăng nhập
3 Người dùng nhập tài khoản, mật khẩu rồi chọn nút Đăng nhập
4 Ứng dụng kiểm tra thông tin trong CSDL, nếu thông tin đăng nhập sai thì đến luồng sự kiện phụ S1
5 Ứng dụng thông báo đăng nhập thành công
6 Ứng dụng hiển thị giao diện tương ứng với quyền của người dùng
1 Hệ thống hiển thị thông báo đăng nhập không thành công
2 Quay lại bước 2 trong luồng sự kiện chính
Luồng sự kiện ngoại lệ
Người dùng chọn nút tắt ứng dụng hoặc mất kết nối mạng. Use – case Đăng nhập kết thúc
3.4.3 Đăng ký gọi video tư vấn
Bảng 3.4 Đặc tả Use – case đăng ký gọi video tư vấn
Tên Use – case Đăng ký gọi video tư vấn
Mô tả Use – case Người cần tư vấn sức khỏe đăng ký đặt lịch gọi hoặc đăng ký gọi ngay để được tư vấn sức khỏe
Người dùng chọn chức năng Gọi video với bác sĩ tại Trang chủ.
Actors Người cần tư vấn sức khỏe
Use – case liên quan Không có
Tiền điều kiện Người dùng đã đăng nhập vào ứng dụng
Người dùng đã truy cập vào giao diện Danh sách bác sĩ ngay
Nếu thành công, một lịch khám được thêm mới vào CSDL và tại giao diện Quản lý lịch khám cập nhật lịch khám vừa được tạo
Nếu không thành công, thông báo lỗi phải được trả về cho người dùng và không có thay đổi trong CSDL
1 Người dùng đăng nhập vào ứng dụng và chọn chức năng Gọi video với bác sĩ
2 Ứng dụng hiển thị giao diện Danh sách bác sĩ với danh sách Bác sĩ được truy xuất từ CSDL
3 Người dùng sử dụng thanh tìm kiếm hoặc chức năng lọc bác sĩ
4 Người dùng chọn nút Đặt lịch gọi với bác sĩ được chọn Nếu chọn nút Gọi video ngay thì chuyển sang luồng sự kiện phụ S1
5 Ứng dụng hiển thị giao diện Thông tin bác sĩ
6 Người dùng chọn ngày hẹn và giờ hẹn; nhập thông tin chiệu trứng và chọn hình ảnh (nếu có) Sau đó chọn nút Tiếp Tục Nếu người dùng chọn nút Quay lại thì quay lại bước 2
7 Ứng dụng hiển thị màn hình Xác nhận thông tin
8 Người dùng nhấn nút Xác nhận, sau đó hiện màn hình thanh toán
9 Người dùng chọn phương thức thanh toán sau đó thanh toán
10 Ứng dụng tạo lịch hẹn trên CSDL và hiển thị màn hình Nhận lịch hẹn Người dùng chọn nút Về trang chủ để chuyển sang màn hình trang chủ Nếu người dùng chọn nút Chat với bác sĩ thì hiển thị giao diện chat với bác sĩ
1 Ứng dụng hiển thị thông tin thanh toán
2 Sau khi thanh toán thanh công thì thực hiện gọi video
Luồng sự kiện ngoại lệ
Người dùng chọn nút tắt ứng dụng hoặc mất kết nối mạng Use – case Đăng ký gọi video tư vấn kết thúc
3.4.4 Quản lý lịch hẹn tư vấn
Tên Use – case Hủy lịch khám
Mô tả Use – case Người cần tư vấn sức khỏe hủy lịch khám có trạng thái đã được duyệt hoặc chờ duyệt
Người dùng chọn chức năng hủy lịch khám trong màn hình thông tin lịch khám
Actors Người cần tư vấn sức khỏe
Use – case liên quan Không có
Tiền điều kiện Người dùng đã đăng nhập vào ứng dụng
Người dùng đã truy cập vào giao diện Danh sách lịch
Người dùng chọn lịch khám muốn hủy trong bộ lọc chờ duyệt và đã duyệt
Hậu điều kiện Nếu thành công thì trạng thái của lịch khám đã chọn chuyển sang đã hủy
1 Người dùng đăng nhập vào ứng dụng và chọn vào Quản lý lịch hẹn tư vấn
2 Ứng dụng hiển thị giao diện Danh sách các lịch khám có trong CSDL
3 Người dùng chọn danh mục trạng thái “đã duyệt” hoặc “chờ duyệt”
4 Người dùng chọn lịch khám muốn hủy
5 Ứng dụng hiển thị thông tin lịch khám đã chọn
6 Người dùng chọn vào nút Hủy lịch khám sau đó xác nhận, nếu chọn hủy thì quay về bước 5
7 Cập nhật trạng thái của lịch khám được chọn trên CSDL thay đổi sang trạng thái “đã hủy”
Luồng sự kiện phụ Không có
Luồng sự kiện ngoại lệ
Người dùng chọn nút tắt ứng dụng hoặc mất kết nối mạng Use – case Hủy lịch khám kết thúc
Bảng 3.6 Đặc tả Use – case đặt lại lịch khám
Tên Use – case Đặt lại lịch khám
Mô tả Use – case Người cần tư vấn sức khỏe đặt lại lịch khám có trạng thái đã khám, quá hẹn và đã hủy
Người dùng chọn chức năng đặt lại lịch khám trong màn hình thông tin lịch khám
Actors Người cần tư vấn sức khỏe
Use – case liên quan Không có
Người dùng đã đăng nhập vào ứng dụng Người dùng đã truy cập vào giao diện Danh sách lịch khám
Người dùng chọn lịch khám muốn đặt lại trong danh mục trạng thái “đã khám”, “quá hẹn” và “đã hủy”
Hậu điều kiện Nếu thành công thì lịch khám đã chọn sẽ được thay đổi và lưu vào cơ sở dữ liệu
1 Người dùng đăng nhập vào ứng dụng và chọn vào Quản lý lịch hẹn tư vấn
2 Ứng dụng hiển thị giao diện Danh sách các lịch khám có trong CSDL
3 Người dùng chọn danh mục trạng thái “đã khám”, “quá hẹn”, “đã hủy”
4 Người dùng chọn lịch khám muốn đặt lại
5 Ứng dụng hiển thị thông tin lịch khám đã chọn
6 Người dùng chọn vào nút Đặt lại lịch khám sau đó xác nhận và chuyển tới màn hình Đăng ký gọi video tư vấn, nếu chọn hủy thì quay về bước 5
7 Nhập thông tin về lịch khám mới và bỏ qua bước thanh toán nếu trạng thái là quá hẹn còn nếu không thì vẫn thực
8 Cập nhật trạng thái hoặc thêm mới lịch khám trên CSDL
Luồng sự kiện phụ Không có
Luồng sự kiện ngoại lệ
Người dùng chọn nút tắt ứng dụng hoặc mất kết nối mạng. Use – case Hủy lịch khám kết thúc
Bảng 3.7 Đặc tả Use – case tra cứu lịch khám
Tên Use – case Tra cứu lịch khám
Mô tả Use – case Người dùng sử dụng để tra cứu lịch khám đã tồn tại trên
Người dùng nhập thông tin cần tra cứu giao diện quản lý lịch khám
Actors Người cần tư vấn sức khỏe
Use – case liên quan Không có
Người dùng đã đăng nhập vào ứng dụng hệ thống Người dùng đã truy cập vào giao diện quản lý lịch khám Người dùng chọn chức năng tra cứu lịch khám
Nếu tìm thấy, thông tin dữ liệu được lọc theo từ khoá tìm kiếm và hiển thị lên giao diện quản lý lịch khám
Nếu không tìm thấy, giao diện quản lý thông tin khách hàng hiển thị danh sách rỗng
1 Người dùng đăng nhập vào ứng dụng và chọn vào chức năng quản lý lịch khám
2 Ứng dụng hiển thị giao diện quản lý thông tin lịch khám ứng với danh sách lịch khám được truy xuất từ CSDL ứng với mục trạng thái đã chọn.
3 Người dùng nhập từ khoá vào thanh tìm kiếm
4 Ứng dụng tiến hành truy vấn trên CSDL với từ khoá được nhập, nếu không tìm thấy thì đến luồng sự kiện phụ S1
5 Ứng dụng hiển thị thông tin các lịch khám được tìm thấy lên giao diện quản lý lịch khám
1 Hệ thống hiển thị danh sách rỗng lên giao diện quản lý lịch khám
2 Kết thúc Use – case Tra cứu lịch khám
Luồng sự kiện ngoại lệ
Người dùng chọn nút tắt ứng dụng hệ thống hoặc mất điện. Use – case Tra cứu khách hàng kết thúc
3.4.5 Quản lý hỏi đáp cộng đồng
3.4.5.1 Hỏi đáp ẩn danh trên cộng đồng.
Bảng 3.8 Đặc tả Use – case hỏi đáp ẩn danh trên cộng đồng
Tên Use – case Hỏi đáp ẩn danh trên cộng đồng
Mô tả Use – case Người cần tư vấn sức khỏe có thể thêm mới câu hỏi ẩn danh trên trang Hỏi đáp cộng đồng
Kích hoạt (Trigger) Người dùng chọn chức năng hỏi đáp cộng đồng tại giao diện người dùng
Actors Người cần tư vấn sức khỏe và bác sĩ
Use – case liên quan Không có
Tiền điều kiện Người dùng đã đăng nhập và truy cập vào ứng dụng
Người dùng chọn chức năng hỏi đáp cộng đồng
Nếu thành công, câu hỏi mới được thêm vào và dữ liệu tại giao diện Hỏi đáp cộng đồng được cập nhật
Nếu không thành công, thông báo lỗi phải được trả về cho người dùng và không có thay đổi trong dữ liệu
1 Người dùng đăng nhập và chọn trang Hỏi đáp cộng đồng
2 Ứng dụng hiển thị trang Hỏi đáp cộng đồng với danh sách câu hỏi truy xuất từ CSDL
3 Người dùng chọn nút Đặt câu hỏi
4 Ứng dụng hiển thị trang Nhập thông tin và câu hỏi
5 Người dùng nhập thông tin và nhấn nút Gửi
6 Ứng dụng kiểm tra định dạng của thông tin, nếu định dạng không hợp lệ thì đến luồng sự kiện S1
7 Ứng dụng lưu thông tin câu hỏi mới vào CSDL và hiển thị thông báo thêm mới thành công
8 Hệ thống cập nhật và hiển thị danh sách câu hỏi lên trang Hỏi đáp cộng đồng với chế độ ẩn danh (chỉ hiển thị giới tính và tuổi)
1 Hệ thống thông báo lỗi do định dạng của thông tin không hợp lệ
2 Quay lại bước 2 trong luồng sự kiện chính
Luồng sự kiện ngoại lệ
Người dùng chọn nút tắt ứng dụng hoặc mất kết nối mạng Use– case Hỏi đáp ẩn danh trên cộng đồng kết thúc
3.4.5.2 Trả lời câu hỏi cộng đồng
Bảng 3.9 Đặc tả Use – case trả lời câu hỏi cộng đồng
Tên Use – case Trả lời câu hỏi cộng đồng
Mô tả Use – case Bác sĩ sử dụng để thêm mới câu trả lời về câu hỏi cộng đồng đã tồn tại trong CSDL
Kích hoạt (Trigger) Bác sĩ chọn chức năng trả lời câu hỏi cộng đồng
Use – case liên quan Không có
Bác sĩ đã đăng nhập vào ứng dụng Bác sĩ truy cập vào giao diện Hỏi đáp cộng đồng Bác sĩ chọn chức năng thêm câu trả lời
Nếu thành công, câu trả lời sẽ được thêm trong CSDL
Nếu không thành công, thông báo lỗi phải được trả về cho bác sĩ và không có sự thay đổi trong CSDL
1 Bác sĩ đăng nhập và chọn chức năng Hỏi đáp cộng đồng
2 Ứng dụng hiển thị trang Hỏi đáp cộng đồng với danh sách câu hỏi được truy xuất từ cơ sở dữ liệu CSDL
3 Bác sĩ chọn câu hỏi Ứng dụng hiển thị màn hình Câu hỏi chi tiết với dữ liệu đang tồn tại trong CSDL
4 Bác sĩ chọn nút Thêm câu trả lời
5 Ứng dụng hiển thị màn hình Thêm câu trả lời nút Hủy quay về bước 3
7 Ứng dụng cập nhật câu trả lời vào CSDL
8 Ứng dụng cập nhật và hiển thị danh sách câu trả lời lên màn hình Câu hỏi chi tiết
Luồng sự kiện phụ Không có
Luồng sự kiện ngoại lệ
Người dùng chọn nút tắt ứng dụng hoặc mất kết nối mạng Use – case Trả lời câu hỏi cộng đồng kết thúc
3.4.6 Quản lý hồ sơ sức khỏe của bản thân và người thân
3.4.6.1 Thêm hồ sơ người thân
Bảng 3.10 Đặc tả Use – case thêm hồ sơ người thân
Tên Use – case Thêm hồ sơ người thân
Mô tả Use – case Người cần tư vấn sức khỏe thêm hồ sơ của người thân của mình vào danh sách người thân.
Người cần tư vấn sức khỏe chọn chức năng thêm người thân ở màn hình quản lý hồ sơ sức khỏe.
Actors Người cần tư vấn sức khỏe.
Use – case liên quan Không có
Người dùng đã đăng nhập vào ứng dụng.
Người dùng đã truy cập vào giao diện quản lý hồ sơ sức khỏe
Người dùng chọn chức năng thêm hồ sơ sức khỏe người thân
Hậu điều kiện Nếu thành công, một hồ sơ sức khỏe người thân mới được thêm vào CSDL và dữ liệu tại giao diện quản lý hồ sơ sức khỏe phải được cập nhật hồ sơ vừa được thêm.
Nếu không thành công, thông báo lỗi phải được trả về cho người dùng và không có thay đổi trong CSDL
1 Người dùng đăng nhập vào ứng dụng và chọn chức năng hồ sơ sức khỏe
2 Ứng dụng hiển thị giao diện quản lý hồ sơ sức khỏe với danh sách các hồ sức khỏe người thân nếu có.
3 Người dùng chọn nút Thêm hồ sơ.
4 Ứng dụng hiển thị giao diện Tạo hồ sơ sức khỏe người thân.
5 Người dùng nhập thông tin hồ sơ sức khỏe người thân và chọn nút Tạo hồ sơ Nếu người dùng chọn nút quay về thì quay lại bước 2.
6 Ứng dụng kiểm tra định dạng của thông tin, nếu định dạng không hợp lệ thì đến luồng sự kiện phụ S1.
7 Ứng dụng lưu thông tin hồ sơ sức khỏe mới vào CSDL và hiển thị thông báo thêm hồ sơ sức khỏe thành công
8 Ứng dụng cập nhật và hiển thị danh sách hồ sơ sức khỏe người thân lên giao diện quản lý hồ sơ sức khỏe.
1 Ứng dụng thông báo lỗi định dạng của thông tin không hợp lệ
2 Quay lại bước 2 trong luồng sự kiện chính
Luồng sự kiện ngoại lệ
Người dùng chọn nút tắt ứng dụng hoặc mất kết nối mạng.Use – case Thêm hồ sơ người thân kết thúc
3.4.6.2 Xóa hồ sơ người thân
Bảng 3.11 Đặc tả Use – case xóa hồ sơ người thân
Tên Use – case Xoá hồ sơ người thân.
Mô tả Use – case Người dùng sử dụng để xoá một hồ sơ sức khỏe người thân đã tồn tại trong CSDL
Người dùng chọn chức năng xoá hồ sơ sức khỏe người thân tại giao diện quản lý thông tin hồ sơ người thân.
Actors Người cần tư vấn sức khỏe
Use – case liên quan Không có
Người dùng đã đăng nhập vào ứng dụng
Người dùng truy cập vào giao diện quản lý hồ sơ sức khỏe người thân
Người dùng chọn chức năng xóa hồ sơ sức khỏe người thân
Nếu thàng công, hồ sơ sức khỏe đó không còn tồn tại trong CSDL
Nếu không thành công, trạng thái của hồ sơ sức khỏe đó phải được thay đổi trong CSDL, đồng thời thông báo đã cập nhật trạng thái phải được trả về cho người dùng
1 Người dùng đăng nhập vào ứng dụng và chọn chức năng quản lý hồ sơ sức khỏe.
2 Ứng dụng hiển thị giao diện quản lý hồ sơ sức khỏe người thân với danh sách hồ sơ sức khỏe được truy xuất từ CSDL
3 Người dùng chọn hồ sơ sức khỏe cần xoá.
4 Ứng dụng hiển thị thông tin hồ sơ sức khỏe đã chọn
5 Người dùng chọn nút Xóa để xoá hồ sơ sức khỏe người thân Nếu người dùng chọn nút Quay lại thì quay lại bước 2
6 Ứng dụng tiến hành xoá thông tin hồ sơ sức khỏe người thân trong CSDL và hiển thị thông báo xoá thành công
7 Ứng dụng cập nhật và hiển thị danh sách hồ sơ sức khỏe lên giao diện Quản lý hồ sơ sức khỏe.
Luồng sự kiện phụ Không có
Luồng sự kiện ngoại lệ
Người dùng chọn nút tắt ứng dụng hoặc mất kết nối mạng. Use – case Xóa hồ sơ người thân kết thúc
3.4.6.3 Sửa thông tin hồ sơ người thân
Bảng 3.12 Đặc tả Use – case sửa thông tin hồ sơ người thân
Tên Use – case Sửa thông tin hồ sơ người thân
Mô tả Use – case Người cần tư vấn sức khỏe sử dụng để cập nhật thông tin một hồ sơ sức khỏe người thân đã tồn tại trong CSDL
Người dùng chọn chức năng sửa thông tin hồ sơ sức khỏe người thân tại giao diện Quản lý hồ sơ sức khỏe
Actors Người cần tư vấn sức khỏe
Người dùng đã đăng nhập vào ứng dụng Người dùng truy cập vào giao diện Quản lý hồ sơ sức khỏe
Người dùng chọn chức năng sửa thông tin hồ sơ sức khỏe người thân
Nếu thành công, hồ sơ sức khỏe đó đã được thay đổi trong CSDL
Nếu không thành công, thông báo lỗi phải được trả về cho người dùng và không có sự thay đổi trong CSDL
1 Người dùng đăng nhập và chọn chức năng Hồ sơ sức khỏe
2 Ứng dụng hiển thị giao diện quản lý hồ sơ sức khỏe người thân với danh sách hồ sơ sức khỏe người thân được truy xuất từ CSDL
3 Người dùng chọn hồ sơ sức khỏe người thân cần cập nhật
4 Ứng dụng hiển thị thông tin hồ sơ sức khỏe người thân được chọn với dữ liệu đang tồn tại trong CSDL
5 Người dùng nhập thông tin cần chỉnh sửa
6 Người dùng chọn nút Lưu để cập nhật thông tin Nếu người dùng chọn nút Quay lại thì quay lại bước 2
7 Ứng dụng tiến hành kiểm tra định dạng thông tin, nếu định dạng không hợp lệ thì đến luồng sự kiện phụ S1
8 Ứng dụng lưu thông tin cập nhật vào CSDL và hiển thị thông báo cập nhật thành công
9 Ứng dụng cập nhật và hiển thị danh sách hồ sơ sức khỏe người thân lên giao diện quản lý hồ sơ sức khỏe người thân
1 Ứng dụng thông báo lỗi định dạng của thông tin không hợp lệ
2 Quay lại bước 2 trong luồng sự kiện chính
Luồng sự kiện ngoại lệ
Người dùng chọn nút tắt ứng dụng hoặc mất kết nối mạng. Use – case Sửa hồ sơ sức khỏe người thân kết thúc
Bảng 3.13 Đặc tả Use – case tư vấn trực tuyến
Tên Use – case Tư vấn trực tuyến
Mô tả Use – case Người cần tư vấn và bác sĩ có thể tương tác với nhau thông qua gọi video
(Trigger) Người cần tư vấn sức khỏe thực hiện cuộc gọi khi tới lịch hẹn
Actors Người cần tư vấn sức khỏe và bác sĩ
Use – case liên quan Không có
Người cần tư vấn và bác sĩ đã đăng nhập vào ứng dụng Người cần tư vấn đã truy cập vào giao diện Quản lý lịch khám
Người cần tư vấn chọn mục Đã khám và chọn nút Vào cuộc gọi
Hậu điều kiện Người cần tư vấn và bác sĩ thực hiện được cuộc gọi và tư vấn
1 Người dùng đăng nhập vào ứng dụng và chọn chức năng Quản lý lịch khám sách lịch khám được truy xuất từ CSDL
3 Người dùng chọn mục Đã duyệt
4 Ứng dụng hiển thị danh sách các lịch hẹn đã được duyệt
5 Người dùng con nút Vào cuộc gọi trên phiếu khám
6 Ứng dụng hiển thị thông tin hồ sơ người khám và thông tin triệu chứng, hình ảnh
7 Người dùng chọn nút Xác nhận để thực hiện cuộc gọi. Nếu chọn nút Đóng thì quay lại bước 4
8 Ứng dụng thông báo cho bác sĩ vào cuộc gọi
9 Bác sĩ nhận cuộc gọi và tiến hình trao đổi với bệnh nhân
Luồng sự kiện phụ Không có
Luồng sự kiện ngoại lệ
Người dùng chọn nút tắt ứng dụng hoặc mất kết nối mạng. Use – case Thêm bác sĩ kết thúc
Bảng 3.14 Đặc tả Use – case thêm bác sĩ
Tên Use – case Thêm bác sĩ
Mô tả Use – case Quản trị viên sử dụng để thêm mới một bác sĩ chưa tồn tại trong CSDL
Người dùng chọn chức năng thêm bác sĩ tại giao diện Quản lý bác sĩ
Use – case liên quan Không có
Quản trị viên đã đăng nhập vào ứng dụng Quản trị viên đã truy cập vào giao diện Quản lý bác sĩ Quản trị viên chọn chức năng thêm bác sĩ
Nếu thành công, một bác sĩ mới được thêm vào CSDL và dữ liệu tại trang Quản lý bác sĩ được cập nhật bác sĩ vừa thêm
Nếu không thành công, thông báo lỗi phải được trả về cho quản trị viên và không có thay đổi trong CSDL
1 Quản trị viên đăng nhập vào ứng dụng và chọn chức năng Quản lý bác sĩ
2 Ứng dụng hiển thị giao diện Quản lý bác sĩ với danh sách bác sĩ được truy xuất từ CSDL
3 Quản trị viên chọn nút Thêm
4 Ứng dụng hiển thị giao diện nhập thông tin bác sĩ
5 Người dùng nhập thông tin bác sĩ và chọn nút Thêm. Nếu người dùng nhấn quay lại thì quay lại bước 4
6 Ứng dụng kiểm tra định dạng của thông tin Nếu định dạng không hợp lệ thì đến luồng sự kiện phụ S1
7 Ứng dụng lưu thông tin bác sĩ mới vào CSDL và hiển thị thông báo thêm bác sĩ thành công
8 Ứng dụng cập nhật và hiển thị danh sách bác sĩ lên giao diện Quản lý bác sĩ
1 Ứng dụng thông báo lỗi do định dạng của thông tin không hợp lệ
2 Quay lại bước 2 trong luồng sự kiện chính
Luồng sự kiện ngoại lệ
Người dùng chọn nút tắt ứng dụng hoặc mất kết nối mạng. Use – case Thêm bác sĩ kết thúc
Bảng 3.15 Đặc tả Use – case xóa bác sĩ
Tên Use – case Xóa bác sĩ
Mô tả Use – case Quản trị viên sử dụng để xóa bác sĩ tồn tại trong CSDL
Kích hoạt (Trigger) Người dùng chọn chức năng xóa bác sĩ tại giao diện Quản lý bác sĩ
Use – case liên quan Không có
Quản trị viên đã đăng nhập vào ứng dụng Quản trị viên đã truy cập vào giao diện Quản lý bác sĩ Quản trị viên chọn chức năng xóa bác sĩ
Nếu thành công, xóa bác sĩ trong CSDL và dữ liệu tại trang Quản lý bác sĩ được cập nhật
Nếu không thành công, thông báo lỗi phải được trả về cho quản trị viên và không có thay đổi trong CSDL
1 Quản trị viên đăng nhập và chọn trang Quản lý bác sĩ
2 Ứng dụng hiển thị giao diện Quản lý bác sĩ
3 Quản trị viên chọn bác sĩ cần xóa
4 Ứng dụng hiển thị hộp thoại Xác nhận xóa bác sĩ
5 Quản trị viên chọn nút Xoá Nếu chọn nút Hủy quay về bước 2
6 Ứng dụng xóa bác sĩ trong CSDL, cập nhật và hiển thị danh sách bác sĩ lên giao diện Quản lý bác sĩ
Luồng sự kiện phụ Không có
Luồng sự kiện ngoại lệ
Người dùng chọn nút tắt ứng dụng hoặc mất kết nối mạng Use – case Xóa bác sĩ kết thúc
3.4.8.3 Sửa thông tin bác sĩ
Bảng 3.16 Đặc tả Use – case sửa thông tin bác sĩ
Tên Use – case Sửa thông tin bác sĩ
Mô tả Use – case Quản trị viên cập nhật thông tin một bác sĩ đã tồn tại trong
Quản trị viên chọn chức năng sửa thông tin bác sĩ tại giao diện quản lý bác sĩ
Use – case liên quan Không có
Quản trị viên đã đăng nhập vào ứng dụng hệ thốngQuản trị viên đã truy cập vào giao diện Quản lý bác sĩQuản trị viên chọn chức năng sửa thông tin bác sĩ
Nếu không thành công, thông báo lỗi phải được trả về cho quản trị viên và không có sự thay đổi trong CSDL
1 Quản trị viên đăng nhập vào ứng dụng và chọn thẻ bác sĩ
2 Ứng dụng hiển thị giao diện quản lý bác sĩ với danh sách bác sĩ được truy xuất từ CSDL
3 Quản trị viên chọn bác sĩ cần cập nhật thông tin
4 Ứng dụng hiển thị thông tin bác sĩ được chọn với dữ liệu đang tồn tại trong CSDL
5 Quản trị viên nhập thông tin cần chỉnh sửa
6 Quản trị viên chọn nút Cập nhật để cập nhật thông tin. Nếu người dùng chọn quay lại thì quay lại bước 2
7 Hệ thống tiến hành kiểm tra định dạng thông tin, nếu định dạng không hợp lệ thì đến luồng sự kiện phụ S1
8 Hệ thống lưu thông tin cập nhật vào CSDL và hiển thị thông báo cập nhật thành công
9 Hệ thống cập nhật và hiển thị danh sách bác sĩ lên giao diện quản lý bác sĩ
1 Hệ thống thông báo lỗi do định dạng thông tin không hợp lệ
2 Quay lại bước 2 trong luồng sự kiện chính
Luồng sự kiện ngoại lệ
Người dùng chọn nút tắt ứng dụng hoặc mất kết nối mạng.Use – case Sửa thông tin bác sĩ kết thúc
3.4.9.1 Xóa đánh giá sau khám
Bảng 3.17 Đặc tả Use – case xóa đánh giá sau khám
Tên Use – case Xóa đánh giá sau khám
Mô tả Use – case Quản trị viên sử dụng để xóa đánh giá sau khi khám của người dùng trong CSDL
Kích hoạt (Trigger) Quản trị viên chọn chức năng xóa đánh giá tại trang Quản lý đánh giá
Use – case liên quan Không có
Quản trị viên đã đăng nhập vào ứng dụng Quản trị viên đã truy cập vào trang Quản lý đánh giá Quản trị viên chọn chức năng xóa đánh giá sau khám
Nếu thành công, xóa đánh giá trong CSDL và dữ liệu tại trang Quản lý đánh giá được cập nhật
Nếu không thành công, thông báo lỗi phải được trả về cho quản trị viên và không có thay đổi trong CSDL
1 Quản trị viên đăng nhập vào ứng dụng và chọn Quản lý đánh giá
2 Ứng dụng hiển thị trang Quản lý đánh giá với danh sách các đánh giá được truy xuất từ CSDL
3 Quản trị viên chọn đánh giá cần xóa
4 Ứng dụng hiển thị hộp thoại Xác nhận xóa đánh giá bước 2
6 Ứng dụng xóa đánh giá trong CSDL, cập nhật và hiển thị danh sách đánh giá lên trang Quản lý đánh giá
Luồng sự kiện phụ Không có
Luồng sự kiện ngoại lệ
Người dùng chọn nút tắt ứng dụng hoặc mất kết nối mạng Use – case Xóa đánh giá sau khám kết thúc
3.4.9.2 Xóa câu hỏi ẩn danh
Bảng 3.18 Đặc tả Use – case xóa câu hỏi ẩn danh
Tên Use – case Xóa câu hỏi ẩn danh
Mô tả Use – case Quản trị viên sử dụng để xóa câu hỏi ẩn danh trong CSDL
Kích hoạt (Trigger) Quản trị viên chọn chức năng xóa câu hỏi tại trang Hỏi đáp ẩn danh trên cộng đồng
Use – case liên quan Không có
Quản trị viên đã đăng nhập vào ứng dụng
Quản trị viên đã truy cập vào trang Hỏi đáp ẩn danh trên cộng đồng
Quản trị viên chọn chức năng xóa câu hỏi cộng đồng
Nếu thành công, xóa câu hỏi trong CSDL và dữ liệu tại trang Hỏi đáp ẩn danh được cập nhật
Nếu không thành công, thông báo lỗi phải được trả về cho quản trị viên và không có thay đổi trong CSDL
1 Quản trị viên đăng nhập vào ứng dụng và chọn Hỏi đáp cộng đồng
2 Ứng dụng hiển thị trang Hỏi đáp ẩn danh trên cộng đồng với danh sách câu hỏi được truy xuất từ CSDL
3 Quản trị viên chọn câu hỏi cần xóa
4 Ứng dụng hiển thị hộp thoại Xác nhận xóa câu hỏi
5 Quản trị viên chọn nút Xoá Nếu chọn nút Hủy quay về bước 2
6 Ứng dụng xóa câu hỏi trong CSDL, cập nhật và hiển thị danh sách câu hỏi lên trang Hỏi đáp ẩn danh trên cộng đồng
Luồng sự kiện phụ Không có
Luồng sự kiện ngoại lệ
Người dùng chọn nút tắt ứng dụng hoặc mất kết nối mạng Use – case Xóa câu hỏi ẩn danh kết thúc
Bảng 3.19 Đặc tả Use – case xử lý thanh toán
Tên Use – case Xử lý thanh toán
Mô tả Use – case Xữ lý các giao dịch thanh toán mà người cần tư vấn sức khỏe đã chuyển
Kích hoạt (Trigger) Quản trị viên chọn chức năng xử lý thanh toán ở trang chủ
Use – case liên quan Không có
Quản trị viên truy cập vào trang xử lý thanh toán Quản trị viên chọn giao dịch thanh toán cần xử lý
Hậu điều kiện Giao dịch thanh toán được cập nhật trên cơ sở dữ liệu
1 Quản trị viên đăng nhập vào ứng dụng và chọn chứ năng xử lý thanh toán
2 Ứng dụng hiển thị trang xử lý thanh toán với danh sách các giao dịch được truy xuất từ CSDL
3 Quản trị viên chọn giao dịch cần xử lý thanh toán
4 Ứng dụng hiển thị thông tin của giao dịch cần thanh toán.
5 Quản trị viên chọn duyệt hoặc từ chối sau khi kiểm tra lại tài khoản
6 Ứng dụng cập nhật thông tin của giao dịch cần thanh toán lại trên CSDL
Luồng sự kiện phụ Không có
Luồng sự kiện ngoại lệ
Người dùng chọn nút tắt ứng dụng hoặc mất kết nối mạng Use – case Xử lý thanh toán kết thúc
Bảng 3.20 Đặc tả Use – case đánh giá dịch vụ
Tên Use – case Đánh giá dịch vụ
Mô tả Use – case Người cần tư vấn sức khỏe sử dụng để đánh giá dịch vụ bác sĩ
Kích hoạt (Trigger) Sau khi kết thúc tư vấn trực tuyến với bác sĩ
Actors Người cần tư vấn sức khỏe và bác sĩ
Use – case liên quan Tư vấn trực tuyến
Tiền điều kiện Người cần tư vấn sức khỏe đã đăng nhập vào ứng dụng
Người dùng đã sử dụng dịch vụ tư vấn trực tuyến bác sĩ
Hậu điều kiện Thông tin đánh giá được thêm vào CSDL
1 Người dùng sau khi thực hiện kết thúc chức năng Tư vấn trực tuyến chuyển tới trang Đánh giá bác sĩ
2 Ứng dụng hiển thị ô chọn sao và lời nhắn
3 Người dùng nhấn chọn chất lượng và để lại lời nhắn
4 Sau khi nhấn xác nhận ứng dụng hiển thị thông báo thành cao và chuyển về Trang chủ.
Luồng sự kiện phụ Không có
Luồng sự kiện ngoại lệ
Người dùng chọn nút tắt ứng dụng hoặc mất kết nối mạng Use – case Đánh giá dịch vụ kết thúc
Bảng 3.21 Đặc tả Use – case nhắn tin
Tên Use – case Nhắn tin tư vấn với bác sĩ
Mô tả Use – case Người cần tư vấn sức khỏe sử dụng để trò chuyện với bác sĩ
Kích hoạt (Trigger) Người cần tư vấn sức khỏe chọn chức năng nhắn tin với bác sĩ tại trang Tin nhắn
Actors Người cần tư vấn sức khỏe và bác sĩ
Use – case liên quan Không có
Tiền điều kiện Người cần tư vấn sức khỏe đã đăng nhập vào ứng dụng
Người cần tư vấn sức khỏe đã truy cập vào trang Tin nhắn
Hậu điều kiện Tin nhắn được thêm vào CSDL
1 Người dùng đăng nhập và ứng dụng và chọn trang Tin nhắn
2 Ứng dụng hiển thị trang Tin nhắn với danh sách bác sĩ được truy xuất từ CSDL
3 Người dùng nhấn chọn bác sĩ muốn tư vấn
4 Ứng dụng hiển thị hộp thoại nhắn tin với bác sĩ đã chọn
5 Người dùng và bác sĩ có thể trao đổi với nhau
6 Ứng dụng lưu thông tin tin nhắn vào CSDL
Luồng sự kiện phụ Không có
Luồng sự kiện ngoại lệ
Người dùng chọn nút tắt ứng dụng hoặc mất kết nối mạng Use – case Nhắn tin tư vấn với bác sĩ kết thúc
Bảng 3.22 Đặc tả Use – case thống kê
Tên Use – case Thống kê doanh thu
Mô tả Use – case Quản trị viên, bác sĩ có thể xem doanh thu theo tháng
Kích hoạt Quản trị viên, bác sĩ chọn chức năng xem thống kê doanh thu
Actors Quản trị viên và bác sĩ
Use – case liên quan Không có
Tiền điều kiện Quản trị viên, bác sĩ đã đăng nhập vào ứng dụng
Quản trị viên, bác sĩ đã truy cập vào trang thống kê
Hậu điều kiện Đồ thị thống kê doanh thu hiện lên cho quản trị viên, bác sĩ
1 Quản trị viên, bác sĩ đăng nhập vào ứng dụng và chọn trang Thống kê
2 Người dùng chọn thời điểm cần xem thống kê
3 Ứng dụng hiển thị trang Thống kê doanh thu với đồ thị biểu doanh thu theo thời gian được truy xuất từ CSDL
4 Ứng dụng tiến hành truy xuất dữ liệu doanh thu từ phiếu khám trên CSDL trong thời điểm được chọn
Luồng sự kiện phụ Không có
Luồng sự kiện ngoại lệ
Người dùng chọn nút tắt ứng dụng hoặc mất kết nối mạng.Use – case Thống kê doanh thu kết
CÀI ĐẶT VÀ TRIỂN KHAI HỆ THỐNG
Môi trường cài đặt
- Hệ điều hành: Không áp dụng (vì ứng dụng di động Flutter không yêu cầu một máy chủ riêng biệt).
- Cơ sở dữ liệu: Firebase sẽ đảm nhận vai trò máy chủ để lưu trữ thông tin và dữ liệu.
- Hệ điều hành: Android (phiên bản 5.0 trở lên) hoặc iOS (phiên bản 10.0 trở lên).
- Bộ nhớ RAM: Tối thiểu 2GB.
- Bộ xử lý: Tối thiểu CPU 1.5 GHz hoặc tương đương trở lên.
- Kết nối mạng: Kết nối mạng ổn định để truy cập dữ liệu từ Firebase và thực hiện tư vấn sức khỏe trực tuyến.
4.1.2 Môi trường phát triển và triển khai hệ thống
4.1.2.1 Môi trường phát triển Để xây dựng ứng dụng tư vấn sức khỏe, nhóm sử dụng các công nghệ và phần mềm sau:
- Công cụ phát triển: Visual Studio Code.
- Ngôn ngữ lập trình: Dart 3.1.5.
- Cơ sở dữ liệu: Firebase Firestore để lưu trữ thông tin và dữ liệu kết hợp với Firebase Storage để lưu trữ các tệp.
- Giao diện người dùng: Flutter SDK cung cấp các thành phần giao diện người dùng có sẵn để xây dựng giao diện đẹp mắt và tương tác trong ứng dụng.
- Hệ điều hành: Android phiên bản 9.0.
Màn hình giao diện
4.2.1.1 Liên kết màn hình của giao diện người cần tư vấn sức khỏe
Hình 4.10 Liên kết màn hình của giao diện người cần tư vấn sức khỏe
4.2.1.2 Liên kết màn hình của giao diện bác sĩ
Hình 4.11 Liên kết màn hình của giao diện bác sĩ
4.2.1.3 Liên kết màn hình của giao diện quản trị viên
Hình 4.12 Liên kết màn hình của giao diện quản trị viên
Hình 4.13 Màn hình nhập số điện thoại
Hình 4.14 Màn hình nhập mã xác thực
Hình 4.15 Màn hình đăng ký
- Màn hình nhập số điện thoại: người dùng nhập số điện thoại và nhấn vào nút gởi mã.
- Màn hình nhập thông tin tài khoản: người dùng sẽ nhập thông tin của tài khoản mình và hoàn thành việc đăng ký bằng cách nhấn vào Đăng ký.
- Màn hình nhập mã xác nhận: mã xác nhận được gửi vào số điện thoại đã được nhập, nếu người dùng nhập sai số điện thoại có thể nhấn vào textbutton phía dưới để nhập lại số điện thoại Nhấn tiếp tục để qua màn hình kế tiếp.
Hình 4.16 Màn hình đăng nhập 4.2.3.2 Mô tả màn hình đăng nhập
- Màn hình đăng nhập: đây là màn hình mà người sử dụng ứng dụng nhập các thông tin của tài khoản mà mình có để đăng nhập vào ứng dụng, màn hình này bao gồm hai textfield nhập email và mật khẩu, button đăng nhập và text button để đăng ký tài khoản và quên mật khẩu.
Hình 4.17 Màn hình trang chủ người dùng Hình 4.18 Màn hình trang chủ bác sĩ
- Màn hình trang chủ người dùng: hiển thị tên của tài khoản đang đăng nhập, các chức năng cơ bản mà người dùng thường sử dụng, danh sách bác sĩ có trên ứng dụng.
- Màn hình trang chủ bác sĩ: hiển thị số lịch khám của bác sĩ trong hôm nay, thống kê doanh thu theo tháng của bác sĩ đó có thể nhấn vào để xem chi tiết.
Hình 4.19 Màn hình tài khoản
- Màn hình tài khoản: màn hình quản lý các chức năng cơ bản của tài khoản như: cài đặt đăng xuất, thông cá nhân…
4.2.6 Đăng ký gọi video tư vấn
Hình 4.20 Màn hình chọn lịch tư vấn (1)
Hình 4.21 Màn hình chọn lịch tư vấn (2)
Hình 4.22 Màn hình chọn lịch tư vấn (3)
Hình 4.23 Màn hình xác nhận thông tin đặt lịch
Hình 4.24 Màn hình thanh toán bằng mã QR Code
Hình 4.25 Màn hình nhận lịch khám
- Màn hình đặt lịch tư vấn: gồm các thông tin của người đặt lịch tư vấn, chọn ngày và giờ để đặt lịch khám và thông tin bổ sung.
- Mà hình xác nhận thông tin đặt lịch: hiển thị các thông tin người dùng vừa nhập và chọn Nếu không có thay đổi thì nhấn nút xác nhận để qua màn hình tiếp theo.
- Màn hình thanh toán bằng mã QR Code: hiển thị thông tin thanh toán và mã thanh toán, nhấn vào button Đã thanh toán nếu đã hoàn thành thanh toán.
- Màn hình nhận lịch khám: hiển thị thông cơ bản của lịch khám, bao gôm các thông tin như số thứ tự, ngày khám, giờ khám, và thông tin người đặt lịch khám. Ở đây bạn có thể chọn trở về trang chủ hoặc có thể chat luôn với bác sĩ.
4.2.7 Quản lý lịch hẹn tư vấn
Hình 4.26 Màn hình quản lý lịch khám người dùng
Hình 4.27 Màn hình quản lý lịch khám bác sĩ
Hình 4.28 Màn hình chi tiết lịch khám (1)
Hình 4.29 Màn hình chi tiết lịch khám (2)
Hình 4.30 Màn hình chi tiết lịch khám (3)
- Màn hình quản lý lịch khám người dùng: gồm ô tra cứu và các thẻ fillter để lọc các loại lịch khám khi hiển thị lên, phần phía dưới bao gồn các lịch khám đã được lọc.
- Màn hình quản lý lịch khám bác sĩ: hiển thị ngày được chọn có bao biêu lịch khám và bác sĩ có xem thông tin chi các lịch khám khi chọn.
- Màn hình chi tiết lịch khám: hiển thị thông tin của lịch khám hoặc thông tin
4.2.8 Hỏi đáp ẩn danh trên cộng đồng
Hình 4.31 Màn hình danh sách câu hỏi Hình 4.32 Màn hình đặt câu hỏi
- Màn hình danh sách các câu hỏi: hiện thị câu hỏi cộng đồng được phân loại bằng cách chọn các mục ở phía trên, người dùng có thể đặt câu hỏi khi nhấn vào nút đặt câu hỏi.
- Màn hình đặt câu hỏi: hiển thị các thông tin cần xác nhận và nơi để người dùng nhập câu hỏi cũng như là chủ đề về câu hỏi của mình.
4.2.10 Quản lý hồ sơ sức khỏe của bản thân và người thân
4.2.10.1 Màn hình quản lý hồ sơ sức khỏe của bản thân và người thân
Hình 4.33 Màn hình danh sách hồ sơ Hình 4.34 Màn hình chi tiết hồ sơ
Hình 4.35 Màn hình thêm hồ sơ Hình 4.36 Màn hình sửa thông tin hồ sơ
- Màn hình danh sách sức khỏe: hiển thị danh sác các hồ sơ sức khỏe có trong tài khoản, người dùng có thể thêm hồ sơ sức khỏe mới khi nhấn vào nút thêm hồ sơ sức khỏe.
- Màn hình chi tiết hồ sơ: hiển thị thông tin chi tiết hồ sơ được chọn có thể xóa khi nhấn vào biểu tượng góc trái.
- Màn hình thêm hồ sơ: hiển thị các nơi để người dùng nhập thông tin mới cho hồ sơ mới như ảnh họ tên, ảnh, số điện thoại, ngày sinh giới tính và mối quan hệ với người dùng hiện tại, thêm mới bằng cách nhấn vào nút thêm.
- Màn hình chỉnh sửa hồ sơ: hiển thị các thông tin của hồ sơ được chọn và người có thể thay đổi thông tin của hồ sơ đó, lưu lại bằng cách nhấn vào nút lưu.
Hình 4.37 Màn hình lịch khám đã duyệt Hình 4.38 Màn hình xác nhận khám
Hình 4.39 Màn hình cuộc gọi
- Màn hình đặt lịch khám đã duyệt: hiển thị các lịch khám đã duyệt và nếu như đã tới giờ khám thì sẽ hiển thị chức năng vào cuộc gọi, khi nhấn vào nút vào cuộc gọi hiện thị màn hình xác nhận.
- Màn hình xác nhận thông tin lịch khám: hiển thị thông tin xác nhận khám.
- Màn hình cuộc gọi: hiển thị hai màn hình cuộc hai người tham gia cuộc gọi bao gồm người dùng và bác sĩ.
Hình 4.40 Màn hình đánh giá bác sĩ Hình 4.41 Hộp thoại xem lại đánh giá