Bối cảnh và vấn đề nghiên cứu
Khóa luận tốt nghiệp kỹ sư ngành Kỹ thuật Phần mềm của sinh viên Nguyễn Cao Luyện (Trường Đại học Công nghệ Thông tin – Đại học Quốc gia TP. Hồ Chí Minh), dưới sự hướng dẫn của ThS. Lê Thanh Trọng và cán bộ phản biện ThS. Thái Thụy Hàn Uyên, tập trung vào đề tài "Xây dựng ứng dụng thu thập thông tin và cảnh báo dịch bệnh".
Theo trình bày của tác giả, dịch bệnh truyền nhiễm là mối đe dọa nghiêm trọng đối với tính mạng và an sinh xã hội toàn cầu, với minh chứng điển hình là đại dịch Covid-19 bùng phát từ tháng 01/2020 tại Trung Quốc và lan rộng ra 213 quốc gia và vùng lãnh thổ. Văn bản dẫn chứng các mốc dịch tễ cụ thể:
- Ngày 10/01/2020 ghi nhận ca tử vong đầu tiên vì Covid-19 tại Vũ Hán.
- Đến ngày 02/04/2020, dịch đã lan tới 204 quốc gia, vượt mốc 1 triệu ca nhiễm và 53,1 nghìn ca tử vong.
- Đến ngày 03/07/2020, quy mô lây nhiễm toàn cầu tăng vọt lên 11 triệu người mắc và 532,8 nghìn người tử vong.
Thực tế ứng phó chỉ ra rằng sự bùng phát nhanh chóng một phần xuất phát từ việc các quốc gia chưa đánh giá đúng mức độ nguy hiểm, đồng thời người dân thiếu hụt một kênh thông tin cảnh báo, thu thập dữ liệu và thống kê tình hình dịch bệnh tập trung, kịp thời. Nhiều giải pháp công nghệ thời điểm đó mang tính ứng phó nhất thời đối với Covid-19, khó tái sử dụng khi xuất hiện các loại thiên tai hoặc dịch bệnh khác trong tương lai.
Trước bối cảnh trên, đề tài xác định 4 mục tiêu nghiên cứu cụ thể:
- Cung cấp thông tin tình hình dịch bệnh và các khuyến cáo y tế chuyên môn một cách nhanh chóng.
- Thu thập dữ liệu từ người dùng về trang thiết bị y tế hiện có và các triệu chứng lâm sàng liên quan đến dịch bệnh.
- Thu thập và cung cấp thông tin về lịch trình dịch tễ cá nhân.
- Thống kê tình trạng triệu chứng theo từng khu vực địa lý, hỗ trợ tạo cảnh báo thiết thực cho cộng đồng và công cụ kiểm soát cho nhà quản lý.
Về phạm vi và đối tượng nghiên cứu:
- Đối tượng sử dụng: Chia làm hai nhóm chính gồm người dân (sử dụng điện thoại thông minh) và nhà chức trách (cơ quan chức năng có thẩm quyền quản lý dịch bệnh).
- Yêu cầu hệ thống: Vận hành trên nền tảng di động; giao diện dễ tiếp cận cho cả người có hoặc không có nền tảng tin học; hỗ trợ cơ chế hoạt động trực tuyến lẫn ngoại tuyến; đảm bảo độ chính xác dữ liệu và bảo mật thông tin cá nhân.
- Thời gian thực hiện đề cương: Từ ngày 16/09/2020 đến ngày 02/01/2021.
Cơ sở lý thuyết và phương pháp
Khóa luận kết hợp giữa phương pháp phân tích so sánh hệ thống hiện có và quy trình phát triển phần mềm chuyên nghiệp:
Khảo sát và đánh giá hệ thống hiện có
Tác giả tiến hành khảo sát chức năng, ưu điểm và nhược điểm của 4 ứng dụng cảnh báo và quản lý dịch bệnh/thiên tai:
- Sức khỏe Việt Nam (Tập đoàn Viettel): Tích hợp thông số dịch, tin tức nCoV, đánh giá nguy cơ, chatbot, báo cáo người bệnh. Hạn chế: Trang chủ quá nhiều thông tin, thiếu hướng dẫn chi tiết.
- NCOVI (VNPT): Cung cấp chức năng khai báo y tế tự nguyện, phản ánh thông tin dịch tễ, cập nhật dữ liệu thời gian thực. Hạn chế: Giao diện trang chủ quá tải, chưa tối ưu tương tác, không hỗ trợ phiên bản Android dưới 5.0.
- Bluezone: Ứng dụng phát hiện tiếp xúc gần qua sóng Bluetooth Low Energy (khoảng cách dưới 2 mét, thời gian từ 15 phút trở lên). Hạn chế: Việc bật Bluetooth liên tục gây phiền toái và tiêu tốn tài nguyên thiết bị.
- Ứng dụng cảnh báo động đất của Yahoo Japan Corp: Hệ thống cảnh báo thiên tai, sóng thần, mưa lớn, tội phạm đạt trên 5 triệu lượt cài đặt trên Google Play (tính đến ngày 28/01/2021). Hạn chế: Thiếu tính năng tương tác hai chiều với người dùng.
Phương pháp phát triển phần mềm
Đề tài áp dụng quy trình Agile (mô hình Scrum):
- Dự án chia thành các phân đoạn lặp (sprint) có chu kỳ khoảng 2 tuần.
- Tác giả thực hiện chu trình kỹ thuật phần mềm khép kín: khảo sát hiện trạng, phân tích yêu cầu người dùng, xây dựng product backlog, lập kế hoạch sprint, thiết kế kiến trúc/giao diện, hiện thực hóa các chức năng và kiểm thử.
Công cụ và nền tảng kỹ thuật
- Ngôn ngữ lập trình: Java.
- Nền tảng triển khai: Android (IDE: Android Studio).
- Mô hình kiến trúc: Mô hình ViewModel trong bộ thư viện Android Jetpack, gắn liền với vòng đời của Activity.
- Cơ sở dữ liệu: Firebase (Realtime Database/Cloud Firestore).
- Thư viện tích hợp dữ liệu: Thư viện APIFY phục vụ trích xuất và đồng bộ thông tin dịch tễ.
- Công cụ thiết kế: Microsoft Visio (mô hình hóa Use Case, sơ đồ tuần tự, kiến trúc) và Figma (thiết kế giao diện người dùng).
- Trong phần phạm vi đề cương, văn bản có đề cập thêm các khái niệm học máy như mô hình ngôn ngữ BERT, OpenAI GPT, kỹ thuật học chuyển tiếp TransferTransfo và tập dữ liệu đối thoại Persona chat.
Thiết kế và triển khai
Hệ thống được thiết kế theo mô hình hướng đối tượng, tập trung vào tính tương tác giữa người dùng và cơ quan quản lý y tế.
Phân tích tác nhân (Actors) và Use Case
Hệ thống xác định 3 tác nhân tham gia:
- Người dùng (People): Nhóm đối tượng có quyền truy cập cơ bản, thực hiện đăng nhập, đăng ký, khai báo y tế bản thân và người thân, theo dõi lịch trình di chuyển, xem thống kê ca bệnh và tiếp nhận cảnh báo nguy cơ.
- Lãnh đạo: Cán bộ quản lý tại quận, thành phố hoặc cơ quan chức năng được phân quyền; có nhiệm vụ quản lý số liệu ca bệnh trong khu vực, cập nhật tình trạng bệnh nhân (mới phát hiện hoặc đã hồi phục), ban hành thông báo và xem thống kê khảo sát.
- Quản trị viên (Admin): Người nắm toàn quyền hệ thống; quản lý tài khoản người dùng, phân quyền cho cấp lãnh đạo, quản lý bài viết truyền thông, tạo các bộ câu hỏi khảo sát dịch tễ và kiểm soát cơ sở dữ liệu chung.
Hệ thống bao gồm 29 Use Case chức năng được phân nhóm rõ ràng, tiêu biểu như: Quản lý tài khoản (Đăng nhập, Đăng ký, Lấy lại mật khẩu), Xem lịch trình cá nhân, Xem thông tin dịch bệnh, Cảnh báo nguy hiểm, Quản lý thông tin người dùng (Cập nhật, Xóa, Phân quyền), Quản lý ca nhiễm (Thêm ca bệnh, Cập nhật trạng thái hồi phục), Thống kê theo khu vực, Tạo cảnh báo khu vực, Quản lý khảo sát (Tạo khảo sát, Kê khai thông tin, Khai báo tự nguyện/người thân, Báo cáo vi phạm), và Quản lý thông tin truyền thông (Tạo và xem bài viết).
Thiết kế dữ liệu
Cơ sở dữ liệu lưu trữ trên Firebase được chuẩn hóa thành 10 bảng dữ liệu chính:
| Tên bảng dữ liệu | Mục đích và nội dung lưu trữ |
|---|---|
Account |
Quản lý thông tin tài khoản: email, mật khẩu, họ tên, CMND, số điện thoại, ngày sinh, quyền truy cập. |
Answers |
Lưu trữ câu trả lời khảo sát dịch tễ của người dùng (hỗ trợ cả định dạng văn bản Text và hình ảnh Image). |
Case |
Lưu trữ chi tiết hồ sơ bệnh nhân: mức độ lây nhiễm, thời gian bắt đầu/kết thúc ca bệnh, mã định danh người dùng. |
Post |
Quản lý các bài viết truyền thông, tin tức tuyên truyền phòng chống dịch do cơ quan chức năng tạo. |
PublicData |
Lưu trữ dữ liệu thống kê dịch bệnh công khai (số ca mắc, tử vong, bình phục tại Việt Nam và thế giới). |
Question |
Lưu trữ ngân hàng câu hỏi khảo sát y tế do Quản trị viên khởi tạo. |
RouteData |
Ghi nhận lịch trình di chuyển cá nhân theo tọa độ thời gian và địa điểm chi tiết đến cấp quận/huyện. |
TrackingStatus |
Quản lý trạng thái theo dõi sức khỏe và lịch sử tiếp xúc của người dùng. |
Survey |
Thông tin về các phiếu khảo sát, biểu mẫu kê khai dịch tễ, thu thập thông tin trang thiết bị y tế. |
Warnings |
Lưu trữ các bản tin cảnh báo khu vực, cấp độ nguy hiểm do Lãnh đạo hoặc Admin phát hành. |
Kiến trúc phần mềm và xử lý luồng dữ liệu
- Kiến trúc ứng dụng: Ứng dụng Android xây dựng trên mô hình phân tách tầng dữ liệu và tầng hiển thị thông qua
ViewModel. Vòng đời của ViewModel giúp duy trì trạng thái dữ liệu màn hình khi Activity bị thay đổi cấu hình (như xoay màn hình), độc lập với vòng đời giao diện UI. - Xử lý cảnh báo và dịch tễ: Hệ thống định vị người dùng dựa trên tọa độ GPS (kinh độ, vĩ độ) để xác định vị trí thực tế, đối chiếu với cơ sở dữ liệu vùng dịch đang phong tỏa hoặc lộ trình di chuyển của ca nhiễm (F0) nhằm gửi thông báo cảnh báo tiếp xúc gần.
Nội dung chính theo từng chương
Báo cáo khóa luận được cấu trúc thành 6 chương với nội dung cụ thể:
Chương 1: Mở đầu
Giới thiệu lý do lựa chọn đề tài xuất phát từ tác động nặng nề của đại dịch Covid-19 toàn cầu năm 2020. Tác giả phân tích tính cấp thiết của việc xây dựng một hệ thống đa năng, hỗ trợ cả người dân trong việc tự theo dõi sức khỏe lẫn nhà quản lý trong việc kiểm soát dịch bệnh một cách hệ thống, thay vì các biện pháp mang tính đối phó ngắn hạn.
Chương 2: Tổng quan đề tài
Trình bày kết quả nghiên cứu khảo sát 4 ứng dụng điển hình: Sức khỏe Việt Nam, NCOVI, Bluezone và ứng dụng cảnh báo của Yahoo Japan Corp. Phân tích ma trận ưu - nhược điểm của từng hệ thống; từ đó xác định rõ mục đích, yêu cầu kỹ thuật, phạm vi đề tài và đối tượng hướng đến. Chương này cũng phác thảo quy trình Scrum và công nghệ nền tảng (Android, Java, Firebase, APIFY).
Chương 3: Xây dựng ứng dụng thu thập thông tin và quản lý dịch bệnh
Chương trọng tâm về kỹ thuật phân tích và thiết kế hệ thống phần mềm:
- Xây dựng sơ đồ Use Case tổng thể và chi tiết hóa 29 Use Case.
- Thiết kế luồng xử lý bằng các sơ đồ tuần tự (Sequence Diagram) cho các nghiệp vụ chủ chốt: Đăng nhập, Đăng ký, Xem thông tin dịch bệnh, Kê khai thông tin, Nhập dữ liệu ca bệnh, Cập nhật trạng thái ca bệnh, Tạo cảnh báo, Thống kê khu vực, Quản lý bài viết, Quản lý khảo sát và Quản lý người dùng.
- Đặc tả cấu trúc 10 bảng dữ liệu trong CSDL Firebase.
- Thiết kế kiến trúc tổng thể hệ thống, kiến trúc ứng dụng di động và hệ thống wireframe/màn hình chức năng (Trang chủ, Bản đồ thực, Khai báo y tế, Quản trị Admin, Thêm ca bệnh, Tạo cảnh báo, Tạo khảo sát, Thống kê biểu đồ).
Chương 4: Cài đặt và triển khai ứng dụng
Tập trung vào hiện thực hóa phần mềm:
- Phân tích kiến trúc hệ điều hành Android, các thành phần giao diện (UI Components), vòng đời của Activity và ViewModel.
- Cài đặt chi tiết các chức năng đã thiết kế: Đăng ký tài khoản, Trả lời câu hỏi khảo sát, Xem thông tin người dùng, Tạo bộ câu hỏi khảo sát, Đăng tải bài viết truyền thông, và kết nối đồng bộ cơ sở dữ liệu Firebase.
Chương 5: Kết luận và hướng phát triển
Đánh giá mức độ hoàn thành dựa trên các mục tiêu ban đầu, tổng kết những tính năng đã cài đặt thành công, chỉ ra các hạn chế trong quá trình xây dựng ứng dụng và đề xuất lộ trình nâng cấp hệ thống trong tương lai.
Chương 6: Bảng kế hoạch làm việc
Trình bày kế hoạch thực hiện chi tiết theo từng mốc thời gian từ ngày 16/09 đến ngày 27/12, phân bổ qua các giai đoạn: Khảo sát hiện trạng, Phân tích yêu cầu, Thiết kế giao diện (15 màn hình), Thiết kế hệ thống, Triển khai giao diện, Triển khai xử lý nghiệp vụ bản đồ/cảnh báo GPS và Hoàn thiện báo cáo luận văn.
Kết quả và đóng góp
Kết quả định lượng và hồ sơ kỹ thuật
Khóa luận đã hoàn thành đầy đủ khối lượng nghiên cứu theo tiêu chuẩn tốt nghiệp kỹ sư:
- Bản báo cáo gồm 89 trang, kết cấu trong 6 chương.
- Hệ thống hóa 16 bảng số liệu phân tích và 38 hình vẽ mô hình hóa kỹ thuật.
- Tổng hợp 12 tài liệu tham khảo chuyên ngành.
- Đóng gói hoàn chỉnh 01 sản phẩm phần mềm chạy trên nền tảng Android.
Đóng góp thực tiễn của sản phẩm
So với các nghiên cứu và ứng dụng được khảo sát tại thời điểm năm 2020 - 2021, sản phẩm có những điểm mới do tác giả tự xác định:
- Tích hợp bản đồ dịch tễ cá nhân: Cung cấp tính năng trực quan hóa lộ trình di chuyển của ca bệnh trên bản đồ thời gian thực, cho phép người dùng đối chiếu lộ trình di chuyển cá nhân để phát hiện nguy cơ tiếp xúc.
- Mô hình kết hợp tính năng: Kết hợp đồng thời hai cơ chế then chốt vốn tồn tại riêng rẽ ở các ứng dụng đương thời: chức năng khai báo y tế/báo cáo vi phạm (như NCOVI) và tính năng tự động cảnh báo khi đi vào khu vực có dịch bệnh dựa trên định vị không gian (tương tự mục tiêu của Bluezone nhưng áp dụng cơ chế khoanh vùng bản đồ/GPS).
- Tính tổng quát hóa cao: Hệ thống không chỉ xây dựng riêng cho Covid-19 mà thiết kế mở để hỗ trợ thu thập dữ liệu về trang thiết bị y tế, phân bổ nguồn lực và kiểm soát các đợt bùng phát dịch bệnh khác có thể phát sinh.
- Phân cấp quản trị linh hoạt: Xây dựng quy trình xử lý khép kín cho cấp Lãnh đạo cơ sở để cập nhật nhanh hồ sơ ca bệnh (bằng CMND, mức độ lây nhiễm, trạng thái hồi phục) mà không làm gián đoạn hệ thống chung.
Hạn chế và hướng nghiên cứu tiếp
Hạn chế được ghi nhận
- Sự phụ thuộc vào quy mô người dùng: Để hệ thống thu thập thông tin chính xác và phát huy tối đa hiệu quả cảnh báo tiếp xúc, ứng dụng đòi hỏi lượng người cài đặt và sử dụng thường xuyên đủ lớn.
- Áp lực tối ưu hóa và cạnh tranh: Khó khăn lớn trong việc cạnh tranh thu hút người dùng với các nền tảng quốc gia sẵn có được bảo trợ bởi các tập đoàn công nghệ lớn; trong khi sai sót dữ liệu dịch tễ có thể dẫn đến hệ quả nghiêm trọng, đòi hỏi thuật toán tối ưu phải phản hồi nhanh và chính xác tuyệt đối.
- Giới hạn nguồn lực phát triển: Thời gian thực hiện đồ án ngắn và quy mô nhân sự đơn lẻ (01 sinh viên) dẫn đến tiến độ hoàn thiện một số nghiệp vụ chuyên sâu còn chậm hơn so với các nhóm kỹ thuật chuyên trách.
Hướng phát triển trong tương lai
- Hoàn thiện thuật toán cảnh báo tiếp xúc gần theo tọa độ GPS và bán kính cách ly để giảm thiểu sai số vị trí.
- Nâng cấp cơ chế đồng bộ dữ liệu ngoại tuyến (offline-to-online synchronization) khi người dùng di chuyển qua các khu vực không có sóng Internet.
- Mở rộng chức năng quản lý, phân bổ nguồn lực trang thiết bị y tế chuyên dụng theo từng cấp hành chính khi xảy ra thảm họa y tế diện rộng.
Giá trị tham khảo
Báo cáo khóa luận có giá trị tham khảo rõ ràng trong lĩnh vực Công nghệ Phần mềm và Hệ thống Thông tin:
- Tài liệu tham khảo đồ án CNTT: Cung cấp mẫu tài liệu kỹ thuật hoàn chỉnh cho sinh viên ngành Kỹ thuật Phần mềm, Khoa học Máy tính về quy trình xây dựng ứng dụng di động từ khâu phân tích yêu cầu (Use Case, Sequence Diagram), thiết kế CSDL NoSQL (Firebase), cho đến thiết kế giao diện bằng Figma.
- Mô hình hóa nghiệp vụ quản lý y tế cộng đồng: Cung cấp giải pháp tham khảo cho các nhà phát triển đang xây dựng ứng dụng giám sát dịch tễ, thu thập thông tin khảo sát xã hội học hoặc cảnh báo thiên tai khẩn cấp dựa trên dịch vụ định vị (LBS - Location-based Services).
- Tham khảo kiến trúc Android Jetpack: Là tài liệu trực quan minh họa cách tổ chức mã nguồn theo mô hình
ViewModelnhằm kiểm soát vòng đời ứng dụng Android một cách an toàn và bền vững.
Câu hỏi thường gặp
1. Khóa luận này giải quyết bài toán gì khác biệt so với hai ứng dụng NCOVI và Bluezone?
Ứng dụng tích hợp đồng thời hai tính năng chính vốn bị tách rời ở hai ứng dụng trên: tính năng khai báo y tế tự nguyện, phản ánh thông tin dịch bệnh (tương tự NCOVI) và cơ chế cảnh báo nguy cơ tiếp xúc gần, khoanh vùng khu vực cách ly bằng GPS (mục tiêu mà Bluezone tiếp cận qua Bluetooth). Đồng thời, sản phẩm bổ sung bản đồ trực quan hóa lịch trình di chuyển chi tiết của ca bệnh và tính năng tạo khảo sát động cho nhà quản lý.
2. Hệ thống phân chia quyền hạn của các nhóm người dùng như thế nào?
Hệ thống thiết lập 3 nhóm tác nhân (Actors): Người dùng (quyền thấp nhất, dùng để khai báo y tế cá nhân/người thân, xem bản đồ ca bệnh, nhận cảnh báo); Lãnh đạo (được quản trị viên cấp quyền cho cán bộ cấp quận/thành phố để nhập ca bệnh, cập nhật tình trạng hồi phục, xem thống kê khảo sát và tạo cảnh báo khu vực); Quản trị viên (nắm toàn quyền quản lý tài khoản, phân quyền, đăng bài viết tuyên truyền và tạo bộ câu hỏi khảo sát).
3. Công nghệ và cơ sở dữ liệu nào được sử dụng để xây dựng ứng dụng?
Ứng dụng được lập trình bằng ngôn ngữ Java trên môi trường Android Studio, áp dụng mô hình kiến trúc Android ViewModel. Hệ thống cơ sở dữ liệu thời gian thực được xây dựng trên nền tảng Firebase, kết hợp cùng thư viện APIFY để thu thập và xử lý các nguồn dữ liệu dịch bệnh công khai.
4. Quy trình phát triển phần mềm được triển khai theo mô hình nào?
Khóa luận áp dụng quy trình phát triển phần mềm Agile theo mô hình Scrum. Quá trình triển khai được chia thành các phân đoạn lặp (sprint) kéo dài 2 tuần, bao gồm toàn bộ các bước từ thu thập, phân tích yêu cầu, xây dựng danh mục sản phẩm (product backlog), thiết kế, hiện thực hóa các màn hình và kiểm thử chức năng.
5. Dữ liệu khảo sát dịch tễ và ca bệnh được lưu trữ trong những cấu trúc bảng nào?
Cơ sở dữ liệu Firebase của ứng dụng được chia thành 10 bảng dữ liệu chuyên biệt: Account (tài khoản), Answers (câu trả lời khảo sát dạng chữ hoặc ảnh), Case (thông tin ca bệnh), Post (bài viết), PublicData (số liệu dịch tễ công cộng), Question (câu hỏi khảo sát), RouteData (lịch trình di chuyển), TrackingStatus (trạng thái theo dõi), Survey (phiếu khảo sát) và Warnings (cảnh báo dịch bệnh).
Kết luận
Khóa luận tốt nghiệp của sinh viên Nguyễn Cao Luyện đã hoàn thành việc thiết kế và xây dựng trọn vẹn ứng dụng di động cảnh báo dịch bệnh trên nền tảng Android, đáp ứng đầy đủ các yêu cầu kỹ thuật đề ra trong đề cương kỹ sư phần mềm. Thông qua việc ứng dụng kiến trúc ViewModel kết hợp cơ sở dữ liệu Firebase và quy trình Agile/Scrum, đề tài đã giải quyết thành công bài toán tích hợp giữa khai báo dịch tễ, giám sát lộ trình ca nhiễm và hỗ trợ công cụ điều hành cho cán bộ y tế cơ sở. Báo cáo 89 trang với hệ thống biểu đồ UML chi tiết cùng 29 Use Case chức năng là tài liệu tham khảo có giá trị kỹ thuật thực tiễn cho sinh viên và các nhóm phát triển phần mềm cảnh báo y tế cộng đồng.