Như mọi người đã biết, các kỹ sư của Got It đang tình nguyện xây dựng ứng dụng COVID-19 Check để chung tay cùng các nỗ lực của cộng đồng trong việc đẩy lùi dịch Coronavirus tại Việt nam. Sau khi bản thử nghiệm (public beta) được đưa ra để kiểm tra, xác thực các tính năng của hệ thống, cũng như nhận được nhiều ý kiến đóng góp rất có giá trị từ cộng đồng, các kỹ sư của Got It đang làm việc rất tích cực với sự hỗ trợ từ rất nhiều đối tác để có thể triển khai COVID-19 Check phục vụ cộng đồng trong thời gian sớm nhất.
Trong khi chờ đợi phiên bản chính thức, mời các bạn cùng tìm hiểu xem cơ chế hoạt động của COVID-19 Check như thế nào một cách chi tiết để biết làm sao COVID-19 Check có thể dự đoán được bạn là F mấy nhé. Ngoài ra đây là một dự án của cộng đồng, hy vọng là sau khi bạn đã biết cách COVID-19 Check hoạt động, bạn có thể chung tay cùng Got It team để làm cho ứng dụng trở nên thực sự có ích cho người dùng, cũng như các cơ quan chống dịch của Việt Nam. Mỗi người một chân một tay góp gió thành bão thì chả có gì mà ngại Cô Vy cả!
Mục lục
- Hình thức lây nhiễm Coronavirus phổ biến ở Việt Nam và cách thức ngăn chặn dịch lây lan
- Tại sao Đồ thị (Graph) được lựa chọn cho COVID-19 Check?
- Cách thức hoạt động của COVID-19 Check
- COVID-19 Check có thể giúp gì cho bạn và các hoạt động dập dịch
- Sử dụng COVID-19 Check thế nào
- Tính riêng tư về dữ liệu được COVID-19 Check đảm bảo thế nào?
- Kế hoạch phát triển tiếp theo và bạn có thể làm gì để tham gia COVID-19 Check?
Cho tới nay, các ca lây nhiễm Coronavirus ở Việt nam đều là do có tiếp xúc gần với người đã mang virus (có thể quen biết hoặc không), di chuyển về Việt Nam từ vùng dịch, đi chung phương tiện giao thông công cộng cùng với người đã bị nhiễm virus. Kể từ ngày 6/3/2020, hầu hết những ca mắc Coronavirus đều là những người từ ngước ngoài đến Việt Nam, được “nhập khẩu” qua đường hàng không và sau đó lây lan tiếp cho các ca khác trong nước như mô tả trong sơ đồ lây nhiễm của báo Tuổi trẻ dưới đây.
Trong 16 ca nhiễm Virus đầu tiên, Việt nam đã làm rất tốt trong việc ngăn chặn lây lan trong một thời gian dài thông qua việc cách ly triệt để những ca nhiễm bệnh và những người có tiếp xúc trực tiếp, thậm chí cả những người tiếp xúc ở mức độ trung gian. Coronavirus sẽ lây lan rất nhanh nếu không kiểm soát và cách ly kịp thời các ca nhiễm, ví dụ như trường hợp bệnh nhân số 34.
Để giúp việc cách ly được hiệu quả, Bộ Y tế Việt nam đã có hệ thống phân loại từ F0 tới F5 như minh hoạ của VietnamPlus:
Việc cách ly những người nhiễm, nghi nhiễm, hoặc có khả năng bị nhiễm là vô cùng quan trọng để tránh Coronavirus lây lan ra cộng đồng. Do đặc tính lây lan vô cùng nhanh của Coronavirus, không chỉ ở Việt nam mà rất nhiều nơi trên thế giới đã thực hiện việc cách ly với nhiều cấp độ khác nhau từ việc đóng cửa toàn bộ biên giới như Ý, phong toả cả một thành phố như Vũ hán (Trung quốc), tới việc yêu cầu người dân không ra đường như San Francisco (Mỹ), tất cả để giảm số lượng người bệnh tăng đột biến (flatten the curve), tránh việc hệ thống y tế bị sập do quá tải.
Việc xác định và phân loại các cá nhân từ F0 tới F5 một cách nhanh chóng sẽ rất hữu ích để giúp các cơ quan dập dịch triển khai việc thực hiện các biện pháp cách ly tương ứng cũng như giúp cho các cá nhân biết trước được độ rủi ro bị nhiễm Coronavirus của mình thế nào để chuẩn bị từ trước.
Tại sao Đồ thị (Graph) được lựa chọn cho COVID-19 Check?
Như đã trình bày ở trên, vấn đề mấu chốt để tìm ra F1 tới F5 một cách nhanh chóng là xây dựng được các mối nối liên quan, cụ thể có 3 loại mối nối:
- Mối tiếp xúc gần giữa các cá nhân: Được định nghĩa là hai hay nhiều cá nhân tiếp xúc ở vị trí gần nhau (≤ 2m) và có rủi ro bị lây Coronavirus nếu một người trong những cá nhân đó bị nhiễm bệnh. Một số ví dụ của mối liên kết gần là bắt tay, nói chuyện, họp, v.v..
- Mối nối là hành trình của các cá nhân: Như chúng ta đã thấy trên truyền thông về chuyến bay VN054 có rất nhiều người bị lây nhiễm Coronavirus. Và gần đây Bộ Y tế Việt nam cũng có rất nhiều thông báo khẩn để tìm những hành khách trên một số chuyến bay cụ thể do sau này mới phát hiện ra trên chuyến bay đó có người bị xét nghiệm dương tính với Coronavirus. Một số ví dụ của các mối nối này là đi cùng chuyến bay, đi cùng xe bus, hay du thuyền.
- Mối nối là các điạ điểm mà các cá nhân có mặt: Có một số trường hợp các cá nhân bị lây nhiễm Coronavirus khi xuất hiện ở vùng dịch, ví dụ như bệnh nhân số 17 và 18. Một ví dụ khác là việc bệnh nhân số 22, 23 và 35 đều có mặt ở địa điểm là Siêu thị Điện máy Xanh.
Để dễ hình dung hơn, ta có thể nhìn vào trường hợp của Bệnh nhân số 17 (BN17) — người có đầy đủ 3 loại mối nối như sau:
- Mối tiếp xúc gần giữa các cá nhân: các bệnh nhân số 19, 20, và 47
- Mối nối về hành trình: chuyến bay VN054
- Mối nối về địa điểm: các vùng dịch ở Châu Âu là Milan (Lombardy), London, Paris. Ngoài ra, cô còn có một mối nối về địa điểm nữa, chính là địa chỉ 125 Trúc Bạch, Hà Nội.
Các mối nối này có thể được minh hoạ vô cùng dễ dàng bởi Đồ thị (graph) gồm những điểm (node) và mối liên hệ giữa các điểm với nhau (relationship) như sau:
Như chúng ta đã thấy, đây là một phần của đồ thị biểu diễn những hành khách bị nhiễm bệnh trên chuyến bay VN054 và những người bị nhiễm bệnh sau khi tiếp xúc với những hành khách này.
Đây chính là đồ thị các F0, nếu có bất kỳ mối nối trực tiếp nào của các cá nhân khác vào đồ thị F0 này thì ngay lập tức những cá nhân đó sẽ trở thành F1, tương tự với F2, F3,… Vì chuyến bay VN054 được xác định có người bị nhiễm Coronavirus nên tất cả các hành khách khác đi trên chuyến bay này đều có thể được coi là F1. Tương tự với bệnh viện Hồng Ngọc, bởi BN17 đã có mặt tại đây nên tất cả mọi người cũng có mặt tại cùng thời điểm có thể được xác định là F1.
Đồ thị (graph) là một trong những phương án tốt nhất để biểu diễn các mối quan hệ như trên và khi mạng lưới được thiết lập, việc tìm kiếm, dự đoán, khoanh vùng,… sẽ được giải quyết vô cùng nhanh chóng bằng các giải thuật của lý thuyết đồ thị.
Về mặt công nghệ, có những cơ sở dữ liệu được tạo ra phục vụ chuyên biệt cho lưu trữ dữ liệu đồ thị, ví dụ như Neo4j có thể xử lý những đồ thị vô cùng lớn với hàng tỷ các mối quan hệ. Đây cũng là cơ sở mà các kỹ sư của Got It lựa chọn nền tảng để xây dựng COVID-19 Check.
Cách thức hoạt động của COVID-19 Check
Mục tiêu chính của COVID-19 Check là xây dựng một cơ sở dữ liệu đồ thị cực lớn để lưu trữ các mối tiếp xúc của các cá nhân trong vòng 14 ngày vừa qua (14 ngày là thời gian ủ bệnh phổ biến của Coronavirus, sau 14 ngày thì các mối tiếp xúc không còn giá trị sử dụng).
Cơ sở dữ liệu đồ thị này được xây dựng bằng cách kết hợp nhiều nguồn dữ liệu khác nhau:
- Dữ liệu do người dùng tự cung cấp
- Dữ liệu dịch tễ chính thống từ Ban Chỉ đạo chống dịch Coronavirus
- Dữ liệu mạng xã hội (social media) từ các đối tác tham gia đóng góp
Sau khi mạng lưới (network) các mối quan hệ trong vòng 14 ngày được thu thập hình thành, nếu có bất kỳ một thay đổi nào trên mạng lưới thì việc tính toán cho các node liên quan cũng sẽ được thực hiện một cách tức thì. Sau đây là một số ví dụ cụ thể:
- Khi một cá nhân (node) được xác nhận là nhiễm Coronavirus (F0) thì ngay lập tức có thể tìm ra được F1, F2, F3,…
- Khi một chuyến bay được xác nhận là có hành khách nhiễm Coronavirus (F0) thì toàn bộ các hành khách trên chuyến bay đó (F1) và những người tiếp xúc với họ (F2),… cũng được tìm ra ngay lập tức
- Khi một địa điểm được xác nhận là có người bị nhiễm Coronavirus (F0) thì tất cả những người đến địa điểm đó cùng thời gian với người nhiễm bệnh cũng được tìm ra ngay lập tức.
Khi đã tham gia vào mạng lưới, một cá nhân luôn biết mình còn cách xa những người bị nhiễm Coronavirus tới đâu (F mấy) dựa vào các mối quan hệ mà cá nhân đó đang có đối với những cá nhân, địa điểm, hay hành trình đang có trên mạng lưới. Chính vì thế càng nhiều cá nhân tham gia cung cấp dữ liệu chính xác thì kết quả tính toán của COVID-19 Check càng chính xác.
COVID-19 Check có thể giúp gì cho bạn và các hoạt động dập dịch
COVID-19 Check được thiết kế để hỗ trợ về mặt thông tin cho nhiều phía khi toàn dân tham gia dập dịch:
- Về phía người dùng: Nếu mọi người tham gia cập nhật dữ liệu thường xuyên về các mối tiếp xúc, địa điểm, hành trình của mình trong vòng 14 ngày vừa qua, họ sẽ luôn biết được mình đang có độ rủi ro nhiễm bệnh ở mức nào từ F0 tới F5+. Vậy nên, nếu cập nhật thông tin thường xuyên thì người dùng chính là những người có lợi ích trước tiên khi luôn có thông tin để chuẩn bị cho các tình huống khác nhau.
- Về phía các bộ phận chống dịch của chính phủ: Mạng lưới này sẽ giúp khoanh vùng, dự đoán để có thể chuẩn bị cách ly hay chữa trị những cá nhân có độ rủi ro cao về nhiễm bệnh cũng như khử trùng những khu vực được cho là không an toàn để tránh Coronavirus lây lan ra cộng đồng.
- Về phía các nhà nghiên cứu: Mạng lưới của COVID-19 Check sẽ cung cấp những thông tin để có thể áp dụng trong phân tích và sử dụng giải thuật AI để giúp cho các hoạt động chống dịch khác.
Sử dụng COVID-19 Check thế nào
Đối với người dùng, ứng dụng COVID-19 Check hoạt động vô cùng đơn giản.
1. Người dùng sử dụng số điện thoại di động của mình để tạo một tài khoản trong hệ thống. Số điện thoại di động là định danh duy nhất mà người dùng cung cấp để phục vụ cho việc xác thực và chống spam.
2. Người dùng sử dụng tính năng Check In để nhập dữ liệu trong vòng 14 ngày qua, bao gồm:
- các mối tiếp xúc gần với người khác
- các hành trình sử dụng phương tiện giao thông công cộng
- các địa điểm có mặt.
Lần đầu tiên cập nhật dữ liệu sẽ hơi mất thời gian vì cần có dữ liệu của 14 ngày trước, nhưng sau đó người dùng có thể cập nhật dữ liệu của từng ngày mỗi khi có một sự kiện nào đó xảy ra.
3. Người dùng kiểm tra độ rủi ro bị lây nhiễm Coronavirus của mình thế nào (F mấy). Hệ thống cũng tự động thông báo cho người dùng nếu có sự thay đổi về độ rủi ro để họ có thể chủ động chuẩn bị các kế hoạch cho mình.
Tính riêng tư về dữ liệu được COVID-19 Check đảm bảo thế nào?
COVID-19 Check rất quan tâm bảo vệ tính riêng tư cũng như dữ liệu cá nhân của người dùng và được thiết kế theo nguyên tắc sau:
- Hệ thống chỉ yêu cầu một số điện thoại di động hoặc email dùng để xác thực người dùng. Nếu người dùng sử dụng nhiều số điện thoại di động thì có thể thêm để hệ thống biết được và quản lý các mối tiếp xúc chính xác hơn. Ngoài ra hệ thống không bắt buộc người dùng cung cấp thêm thông tin cá nhân nào, kể cả Tên và Địa chỉ.
- Các mối tiếp xúc được tạo ra cũng qua số điện thoại di động hoặc email định danh.
- Các mối tiếp xúc lâu hơn 14 ngày so với ngày hiện tại sẽ được tự động xoá vĩnh viễn khỏi hệ thống.
Kế hoạch phát triển tiếp theo và bạn có thể làm gì để tham gia COVID-19 Check?
COVID-19 Check được thiết kế để có thể xử lý khối lượng dữ liệu lớn với hàng trăm triệu node (tương đương với dân số Việt nam) và hàng tỷ mối quan hệ. Hệ thống cũng được thiết kế theo phương án mở để có thể dễ dàng tích hợp các nguồn dữ liệu khác ví dụ như dữ liệu khổng lồ về social của Kompa/Filum hay các nguồn dữ liệu từ các đơn vị dập dịch để làm sao network có ích nhất cho cả người dùng và các đơn vị tham gia chống dịch.
Trong giai đoạn đầu, các kỹ sư của Got It đã phát triển xong phần backend và web frontend và đã tiến hành thử nghiệm với kết quả rất tốt. Tuy nhiên web frontend có nhiều hạn chế đối với người dùng, đặc biệt là trong việc nhập dữ liệu bởi hầu hết là phải nhập thủ công.
Trong thời gian tới, team sẽ tiếp tục phát triển ứng dụng trên di động (mobile app) để việc Check In sẽ được tự động hoá nhiều bước tạo ra tiện ích cho người dùng, từ đó sẽ giảm tâm lý ngại cập nhật dữ liệu do phải làm quá nhiều thứ thủ công.
Vì đây là một dự án cộng đồng và có thể sẽ phải là một dự án dài hơi cho tới khi đại dịch COVID-19 hoàn toàn bị dập tắt, team Got It kêu gọi mọi người cùng chung tay tình nguyện tham gia đội ngũ phát triển COVID-19 Check để sản phẩm ngày càng hoàn thiện và thực sự có ích cho các nỗ lực dập dịch tại Việt Nam.
Bạn không nhất thiết phải là một kỹ sư phần mềm để có thể tình nguyện tham gia dự án này, vì để có một sản phẩm tốt ra đời cần có sự kết hợp của rất nhiều người: Quản lý sản phẩm, Kỹ thuật, Vận hành, Tăng trưởng, Hỗ trợ khách hàng,… Vậy nên, chỉ cần bạn hứng thú với dự án này và có tâm muốn đóng góp một phần nhỏ bé cho cộng đồng, hãy trở thành tình nguyện viên của COVID-19 Check ngay với các vị trí sau:
- Mobile Engineer (iOS and Android)
- Social Media Specialist
- Customer Support Representative
- Growth Hacker