Tổng quan nghiên cứu

Trong kỷ nguyên số hóa, nhu cầu tiếp cận thông tin y tế chính xác ngày càng trở thành mối quan tâm hàng đầu của cộng đồng. Đại dịch Covid-19 xuất hiện vào năm 2020 cùng với các đợt bùng phát dịch sốt xuất huyết hằng năm tại Việt Nam đã đặt ra thách thức lớn: làm thế nào để người dân và nhân viên y tế có thể sàng lọc, tiếp cận nguồn tin y tế đáng tin cậy giữa bối cảnh hơn 40% tin tức lan truyền trên không gian mạng tiềm ẩn nguy cơ sai lệch hoặc thiếu kiểm chứng.

Nghiên cứu giải quyết bài toán phân mảnh dữ liệu y tế bằng cách xây dựng hệ thống tự động tổng hợp thông tin về dịch bệnh, tập trung trọng tâm vào dịch sốt xuất huyết và mạng lưới cơ sở khám chữa bệnh tại Việt Nam. Mục tiêu cụ thể của đề án là làm chủ công nghệ thu thập dữ liệu bất đồng bộ với Scrapy Framework, thiết kế kiến trúc tiểu dịch vụ (Microservices) có khả năng mở rộng cao, đồng thời kết hợp hệ quản trị cơ sở dữ liệu quan hệ MySQL và công cụ tìm kiếm phân tán Elasticsearch nhằm tối ưu hóa hiệu năng truy xuất dữ liệu.

Phạm vi nghiên cứu bao gồm việc thu thập, chuẩn hóa dữ liệu từ các cổng thông tin y tế chính thống, báo chí chuyên ngành và danh mục bệnh viện trên toàn quốc, đặc biệt tập trung vào các đô thị lớn trong giai đoạn năm 2024. Về mặt giá trị thực tiễn, hệ thống đạt mục tiêu kỹ thuật với độ trễ phản hồi dưới 10 giây, thời gian đồng bộ dữ liệu chỉ mục mới không quá 60 giây, hỗ trợ người dân tra cứu thông tin dịch bệnh và cơ sở y tế theo thời gian thực với độ chính xác đạt trên 98%.

Cơ sở lý thuyết và phương pháp nghiên cứu

Khung lý thuyết áp dụng

Nghiên cứu được xây dựng trên nền tảng các lý thuyết và mô hình kiến trúc phần mềm hiện đại:

  • Mô hình kiến trúc tiểu dịch vụ (Microservices Architecture): Vận dụng nguyên lý "chia để trị" (Divide and Conquer) nhằm phân rã hệ thống thành các dịch vụ độc lập như Gateway, Discovery Server, Main Service và Crawl Data Service. Mô hình này giúp loại bỏ điểm nghẽn đơn lẻ, cho phép triển khai, đóng gói và nâng cấp từng cấu phần mà không làm gián đoạn toàn bộ hệ thống.
  • Lý thuyết thu thập dữ liệu web và xử lý bất đồng bộ (Web Scraping & Asynchronous Processing): Dựa trên nền tảng thư viện Twisted của Python, Scrapy Framework triển khai cơ chế Non-blocking I/O và Event Loop, giúp xử lý hàng trăm luồng yêu cầu HTTP đồng thời mà không chiếm dụng tài nguyên tính toán cục bộ.
  • Mô hình truy hồi thông tin và đánh chỉ mục đảo (Information Retrieval & Inverted Index): Áp dụng lý thuyết lập chỉ mục của Apache Lucene thông qua Elasticsearch để lưu trữ tài liệu dưới dạng Document-oriented JSON, hỗ trợ tìm kiếm toàn văn (Full-text Search) và tìm kiếm gần đúng (Fuzzy Search).

Các khái niệm cốt lõi trong đề án bao gồm: Chu trình dữ liệu Spider Pipeline, Cơ chế định tuyến và cân bằng tải Gateway, Xác thực bảo mật phân quyền đa tầng và Mô hình lưu trữ dữ liệu lai giữa quan hệ (RDBMS) và phi quan hệ (NoSQL/Search Engine).

Phương pháp nghiên cứu

Nghiên cứu kết hợp chặt chẽ giữa khảo sát lý thuyết và phương pháp thực nghiệm công nghệ:

  • Nguồn dữ liệu: Dữ liệu nghiên cứu được thu thập từ các trang thông tin điện tử chính thống của Bộ Y tế, các báo điện tử uy tín có chuyên mục dịch tễ và hệ thống website của các bệnh viện lớn trên toàn quốc trong năm 2024.
  • Cỡ mẫu và phương pháp chọn mẫu: Nghiên cứu thực hiện lấy mẫu có chủ đích (Purposive Sampling) trên 120 cơ sở y tế tuyến trung ương, tuyến tỉnh và hơn 1.500 bài báo chuyên đề về dịch sốt xuất huyết. Cỡ mẫu này đảm bảo tính đại diện cho các vùng dịch tễ trọng điểm tại Hà Nội, Thành phố Hồ Chí Minh và khu vực miền Trung.
  • Phương pháp phân tích và lý do lựa chọn: Nghiên cứu sử dụng phương pháp phân tích yêu cầu phần mềm theo chuẩn UML (Unified Modeling Language), biểu diễn qua 12 ca sử dụng (Use Cases) chính và 17 biểu đồ tuần tự. Phương pháp thực nghiệm đo kiểm hiệu năng được lựa chọn để đánh giá tốc độ thu thập của Scrapy so với các thư viện truyền thống, cũng như so sánh độ trễ truy vấn giữa MySQL và Elasticsearch.
  • Timeline nghiên cứu: Tiến trình nghiên cứu được thực hiện trong 6 tháng đầu năm 2024, bao gồm 4 giai đoạn: khảo sát công nghệ, phân tích thiết kế mô hình, lập trình triển khai hệ thống và kiểm thử hiệu năng.

Kết quả nghiên cứu và thảo luận

Những phát hiện chính

Quá trình thử nghiệm và triển khai thực tế hệ thống đã mang lại các kết quả nổi bật sau:

  • Tối ưu hóa hiệu suất thu thập dữ liệu: Scrapy Framework kết hợp với bộ phân tích cú pháp XPath và CSS Selectors giúp rút ngắn khoảng 68% thời gian trích xuất dữ liệu thô so với các giải pháp crawler tuần tự thông thường. Tỷ lệ bóc tách dữ liệu có cấu trúc chính xác từ các trang tin y tế đạt 98,5%.
  • Hiệu năng tìm kiếm vượt trội: Việc áp dụng Elasticsearch để lưu trữ và đánh chỉ mục dữ liệu bài báo cùng danh mục bệnh viện giúp giảm độ trễ truy vấn xuống dưới 120 mili-giây đối với các truy vấn văn bản phức tạp, nhanh hơn khoảng 4,5 lần so với việc truy vấn trực tiếp bằng câu lệnh SQL trên cơ sở dữ liệu quan hệ truyền thống.
  • Độ ổn định của kiến trúc phân tán: Thử nghiệm kiểm tải cho thấy tầng API Gateway cùng Discovery Server định tuyến chính xác 100% các yêu cầu từ giao diện người dùng đến các dịch vụ xử lý nghiệp vụ, duy trì thời gian phản hồi trung bình của hệ thống ở mức 2,2 giây ngay cả khi có nhiều tác vụ thu thập ngầm đang hoạt động.
  • Tính toàn vẹn dữ liệu xác thực: Cơ chế quản trị tài khoản với bảng mã định danh phân loại rõ ràng (loại kích hoạt tài khoản và loại quên mật khẩu) giúp ngăn ngừa 100% các xung đột token xác thực, bảo vệ an toàn cho thông tin cá nhân của người dùng.

Thảo luận kết quả

Hiệu năng ấn tượng của hệ thống bắt nguồn từ việc kết hợp sức mạnh chuyên biệt của từng công nghệ: Python Flask đảm nhiệm tính linh hoạt của các tác vụ bóc tách dữ liệu với Scrapy, trong khi Java Spring Boot bảo đảm tính chặt chẽ, an toàn cho logic xử lý cốt lõi và phân quyền truy cập.

Dữ liệu thực nghiệm được minh chứng chi tiết thông qua các biểu đồ hoạt động và bảng cấu trúc cơ sở dữ liệu. Cụ thể, mô hình thực thể liên kết với 4 bảng trung tâm trong MySQL (Role, User, Account_Token, Crawl) hoạt động độc lập với chỉ mục bài báo và bệnh viện trong Elasticsearch, loại bỏ hoàn toàn hiện tượng nghẽn cổ chai (Bottleneck) khi hệ thống tiếp nhận các đợt truy cập tăng đột biến trong mùa dịch. So với các nghiên cứu trước đây vốn thường tích hợp crawler chung với khối xử lý giao diện nguyên khối (Monolithic), mô hình phân tán này giảm thiểu 75% nguy cơ gián đoạn dịch vụ khi website nguồn thay đổi cấu trúc mã nguồn HTML.

Đề xuất và khuyến nghị

Để phát triển và mở rộng hệ thống thành một nền tảng giám sát dịch tễ số hóa toàn diện, các giải pháp sau được đề xuất:

  • Tích hợp mô hình xử lý ngôn ngữ tự nhiên (NLP): Nhóm kỹ sư phát triển phần mềm cần nhúng các mô hình phân loại văn bản và trích xuất thực thể tên riêng (Named Entity Recognition) trong giai đoạn nửa đầu năm 2025, nhằm tự động phân loại mức độ khẩn cấp của tin tức dịch bệnh và giảm 50% thời gian biên tập thủ công của quản trị viên.
  • Mở rộng hạ tầng lưu trữ và thu thập phân tán: Bộ phận vận hành hệ thống cần triển khai cụm Scrapy Cluster và Elasticsearch Cluster trên môi trường container hóa (Docker, Kubernetes) trong 6 tháng tới, nâng mục tiêu năng lực xử lý lên hơn 5.000 yêu cầu/giây và mở rộng phạm vi theo dõi thêm 10 loại bệnh truyền nhiễm nhiệt đới khác.
  • Chuẩn hóa giao diện lập trình ứng dụng mở (Open API): Cơ quan quản lý y tế và các bệnh viện cần phối hợp ban hành chuẩn kết nối API đồng bộ trong vòng 12 tháng, cho phép hệ thống tự động đồng bộ thời gian làm việc thực tế và năng lực tiếp nhận bệnh nhân tại các chuyên khoa sốt xuất huyết.
  • Phát triển phiên bản ứng dụng di động đa nền tảng: Nhóm phát triển giao diện cần tận dụng hạ tầng dịch vụ RESTful API sẵn có để phát hành ứng dụng trên iOS và Android trước quý 4 năm 2025, giúp người dùng nhận thông báo cảnh báo dịch bệnh theo vị trí địa lý tức thời.

Đối tượng nên tham khảo luận văn

Luận văn mang lại giá trị tham khảo chuyên môn sâu sắc cho 4 nhóm đối tượng chính:

  • Học viên cao học và sinh viên chuyên ngành Khoa học máy tính, Công nghệ thông tin: Là tài liệu mẫu mực về phân tích, thiết kế hệ thống theo kiến trúc tiểu dịch vụ, đặc tả ca sử dụng UML và kỹ thuật lập trình backend đa ngôn ngữ (Java Spring Boot kết hợp Python Flask).
  • Kỹ sư dữ liệu và lập trình viên Backend: Nắm bắt toàn diện cách thức xây dựng chu trình thu thập dữ liệu web tự động quy mô lớn với Scrapy Framework, xử lý bất đồng bộ Twisted và cấu hình đánh chỉ mục nâng cao trên Elasticsearch.
  • Cán bộ quản lý thông tin tại các cơ sở y tế, bệnh viện: Tìm thấy giải pháp công nghệ hiệu quả để số hóa danh mục dịch vụ khám chữa bệnh, tối ưu hóa kênh tiếp cận bệnh nhân và nâng cao chất lượng truyền thông phòng chống dịch.
  • Nhà nghiên cứu và cơ quan hoạch định chính sách y tế công cộng: Tham khảo mô hình giám sát thông tin dịch tễ trực tuyến tự động nhằm ngăn chặn tin giả và nâng cao năng lực ứng phó y tế khẩn cấp trong cộng đồng.

Câu hỏi thường gặp

Tại sao đề tài lại chọn Scrapy Framework thay vì các thư viện như BeautifulSoup hay Selenium?
Scrapy là một framework hoàn chỉnh được xây dựng trên thư viện bất đồng bộ Twisted, cho phép gửi nhiều yêu cầu HTTP đồng thời mà không bị nghẽn I/O. Điều này giúp Scrapy đạt tốc độ thu thập nhanh hơn từ 3 đến 5 lần so với BeautifulSoup, đồng thời tiêu tốn ít tài nguyên bộ nhớ hơn nhiều so với việc điều khiển trình duyệt ảo của Selenium.

Hệ thống xử lý thế nào khi các trang web nguồn thay đổi cấu trúc giao diện?
Hệ thống thiết kế bảng quản lý thu thập dữ liệu linh hoạt, lưu trữ các mẫu biểu thức chính quy (Regular Expression) và đường dẫn XPath/CSS Selector dưới dạng JSON. Khi trang nguồn thay đổi, quản trị viên chỉ cần cập nhật lại cấu hình trường dữ liệu trên giao diện quản trị mà không cần sửa đổi mã nguồn hoặc tái biên dịch hệ thống.

Vai trò của Elasticsearch trong kiến trúc hệ thống là gì?
Elasticsearch hoạt động như một cơ sở dữ liệu hướng tài liệu và công cụ tìm kiếm phân tán. Toàn bộ dữ liệu bài báo và thông tin chi tiết bệnh viện được đánh chỉ mục ngược, cho phép người dùng thực hiện các truy vấn tìm kiếm toàn văn, tìm kiếm gần đúng theo triệu chứng hoặc địa chỉ với tốc độ phản hồi tính bằng mili-giây.

Kiến trúc tiểu dịch vụ có gây áp lực lên tốc độ kết nối của hệ thống không?
Mặc dù việc giao tiếp giữa các dịch vụ qua REST API phát sinh chi phí mạng, hệ thống đã khắc phục bằng cách sử dụng Discovery Server và API Gateway để định tuyến thông minh kết hợp cơ chế cân bằng tải. Nhờ đó, tổng thời gian phản hồi toàn hệ thống vẫn được duy trì ổn định dưới ngưỡng 2,5 giây.

Hệ thống đảm bảo tính riêng tư cho tài khoản người dùng bằng cách nào?
Hệ thống sử dụng cơ chế băm mật khẩu bảo mật trước khi lưu vào MySQL, kết hợp phân quyền đa tầng qua Spring Security. Các token kích hoạt và đổi mật khẩu đều có thời gian hết hạn cụ thể, tự động vô hiệu hóa sau khi sử dụng để loại bỏ triệt để nguy cơ tấn công giả mạo.

Kết luận

  • Đề tài đã nghiên cứu và ứng dụng thành công Scrapy Framework để xây dựng hệ thống tự động bóc tách thông tin dịch bệnh và cơ sở y tế với độ chính xác đạt trên 98%.
  • Thiết kế hoàn chỉnh kiến trúc tiểu dịch vụ hiện đại, phân tách rõ ràng giữa tầng giao diện người dùng (TypeScript, Redux) và tầng nghiệp vụ đa nền tảng (Java Spring Boot, Python Flask).
  • Triển khai mô hình cơ sở dữ liệu lai hiệu quả giữa MySQL (quản lý người dùng, phân quyền, lịch sử) và Elasticsearch (lưu trữ chỉ mục, tìm kiếm bài báo, bệnh viện siêu tốc).
  • Xây dựng thành công 12 ca sử dụng thiết thực, cung cấp công cụ quản trị dữ liệu trực quan cho ban quản trị và trải nghiệm tìm kiếm tiện lợi cho người dân.
  • Kế hoạch tiếp theo trong giai đoạn 2025–2026 sẽ tập trung tích hợp trí tuệ nhân tạo để tự động tóm tắt tin tức và mở rộng triển khai ứng dụng di động cho cộng đồng.

Hãy liên hệ trực tiếp với tác giả hoặc truy cập kho học liệu của cơ sở đào tạo để tra cứu toàn văn đề án và áp dụng giải pháp công nghệ này vào các dự án số hóa y tế thực tế.