Bối cảnh và vấn đề nghiên cứu

Trong tiến trình hiện đại hóa và ứng dụng công nghệ thông tin vào lĩnh vực y tế, việc tự động hóa các quy trình theo dõi chỉ số sinh tồn của bệnh nhân đóng vai trò thiết yếu. Theo phương thức truyền thống tại các cơ sở y tế, nhân viên y tế hoặc bác sĩ phải trực tiếp thực hiện đo đạc nhịp tim và nồng độ oxy trong máu (SpO2) cho từng người bệnh, ghi chép số liệu thủ công vào sổ sách rồi mới nhập liệu vào hệ thống máy tính để lưu trữ. Quy trình thủ công này tiêu tốn nhiều thời gian, công sức và tiềm ẩn sai sót trong khâu nhập liệu.

Xuất phát từ thực tiễn trên, đề tài khóa luận thực tập cuối khóa "Hệ thống ghi nhận thông tin nhịp tim và nồng độ oxy trong máu – Giao tiếp mạng Blockchain và hệ thống HIS" được thực hiện bởi sinh viên Trương Huỳnh Phú Quí (ngành Kỹ thuật phần mềm, Khoa Công nghệ Thông tin, Trường Đại học An Giang) dưới sự hướng dẫn của ThS. Trương Minh Tuyền.

Mục tiêu và nhiệm vụ nghiên cứu của đề tài gồm các nội dung:

  1. Tìm hiểu nguyên lý đo nhịp tim và nồng độ oxy trong máu ngoại vi (SpO2).
  2. Nghiên cứu tài liệu kỹ thuật, sơ đồ kết nối, thư viện và cơ chế hoạt động của các linh kiện phần cứng Arduino/IoT.
  3. Nghiên cứu cơ chế hoạt động, tính năng bảo mật của mạng Blockchain và giải pháp cơ sở dữ liệu phân tán BigchainDB.
  4. Phân tích, thiết kế và xây dựng thiết bị phần cứng kết hợp phần mềm theo dõi sức khỏe, tích hợp cơ sở dữ liệu quan hệ và cơ chế lưu trữ phân tán hướng tới giao tiếp với hệ thống quản lý bệnh viện (HIS).

Đối tượng và phạm vi nghiên cứu:

  • Đối tượng sử dụng: Tất cả mọi người có nhu cầu theo dõi sức khỏe, đặc biệt là các bệnh nhân cần được giám sát chỉ số sinh tồn liên tục và định kỳ tại cơ sở y tế hoặc gia đình.
  • Phạm vi nghiên cứu: Tập trung vào việc thu thập, ghi nhận, xử lý và truyền tải thông tin về nhịp tim và chỉ số SpO2 từ cảm biến quang học qua vi điều khiển kết nối mạng không dây.
  • Thời gian và địa điểm thực hiện: Quá trình thực tập và thực nghiệm kéo dài 8 tuần (từ ngày 21/02/2022 đến ngày 17/04/2022) tại Trung tâm Tin học – Trường Đại học An Giang.

Cơ sở lý thuyết và phương pháp

Cơ sở lý thuyết y sinh và mạng máy tính

Khóa luận xây dựng nền tảng lý thuyết dựa trên các chuẩn y tế và công nghệ thông tin:

  • Chỉ số nhịp tim: Tần số co bóp của tim tính theo đơn vị nhịp/phút (bpm) ở trạng thái nghỉ ngơi. Ở người trưởng thành khỏe mạnh từ 18 tuổi trở lên, nhịp tim nghỉ dao động từ 60 đến 100 nhịp/phút; ở vận động viên chuyên nghiệp có thể ở mức 40 nhịp/phút (hoặc 32 nhịp/phút). Nhịp tim lớn hơn 100 nhịp/phút được coi là nhịp tim nhanh và dưới 60 nhịp/phút là nhịp tim chậm.
  • Độ bão hòa oxy trong máu ngoại vi (SpO2): Tỷ lệ phần trăm giữa hemoglobin gắn oxy so với tổng lượng hemoglobin trong máu. Phép đo sử dụng phương pháp đo xung quang học không xâm lấn qua mao mạch đầu ngón tay.
Khoảng giá trị SpO2 Tình trạng sinh lý và khuyến cáo
97% - 99% Chỉ số oxy trong máu tốt
94% - 96% Chỉ số oxy trung bình, cần thở thêm oxy
90% - 93% Chỉ số oxy thấp, cần xin ý kiến bác sĩ điều trị
Dưới 92% (không thở oxy) hoặc dưới 95% (có thở oxy) Dấu hiệu suy hô hấp rất nặng
Dưới 90% Biểu hiện cấp cứu trên lâm sàng
  • Giao thức truyền thông I2C (Inter-Integrated Circuit): Giao thức truyền thông nối tiếp đồng bộ 2 dây do Philips Semiconductors phát triển, bao gồm đường tín hiệu dữ liệu SDA (Serial Data) và đường tạo xung nhịp đồng hồ SCL (Serial Clock). Khung truyền gồm điều kiện Start, địa chỉ thiết bị ngoại vi, các bit dữ liệu, bit phản hồi ACK/NACK và điều kiện Stop.
  • Công nghệ Blockchain và BigchainDB: Nền tảng dữ liệu chuỗi khối phân tán giải quyết bài toán đồng thuận các vị tướng Byzantine (Byzantine Generals Problem). Hệ thống tích hợp BigchainDB – giải pháp cơ sở dữ liệu hiệu năng cao có backend MongoDB, hỗ trợ khả năng chịu lỗi Byzantine (BFT), đảm bảo tính bất biến, phân quyền và độ trễ thấp (~1 giây) cho mỗi khối giao dịch.
  • Giao thức mạng IP: Cơ chế định tuyến và nhận diện thiết bị qua IPv4 (32 bit), IPv6, phân loại IP tĩnh, IP động (quản lý qua DHCP), IP Public và IP Private.

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

Tác giả áp dụng các phương pháp nghiên cứu kỹ thuật:

  • Phương pháp thu thập và tổng hợp tài liệu: Khảo sát các thông số kỹ thuật phần cứng, thư viện lập trình nhúng cho ESP8266, MAX30102 và màn hình hiển thị SSD1306.
  • Phương pháp thực nghiệm và phát triển hệ thống: Phân tích yêu cầu, thiết kế cơ sở dữ liệu quan hệ, lắp ráp mạch điện tử và lập trình các mô-đun phần mềm theo quy trình phát triển ứng dụng mạng.

Thiết kế và triển khai

Hệ thống được thiết kế hoàn chỉnh từ tầng thiết bị thu thập dữ liệu (IoT Node), tầng truyền thông mạng, đến tầng cơ sở dữ liệu và máy chủ xử lý trung tâm.

Cấu trúc phần cứng và kết nối mạch

Thiết bị đo sử dụng các linh kiện điện tử chuyên dụng được ghép nối qua chuẩn I2C:

  1. Khối vi điều khiển: Kit RF Thu Phát Wifi ESP8266 NodeMCU Lua D1 Mini sử dụng IC ESP8266 WiFi SoC (phiên bản ESP-12), tích hợp chip nạp và giao tiếp UART CH340, hỗ trợ lập trình qua môi trường Arduino IDE, kích thước 34.2 x 25.6 mm, nguồn nuôi qua cổng MicroUSB 5VDC hoặc chân 3.3V/5V.
  2. Khối cảm biến sinh trắc học: Cảm biến MAX30102 MH-ET LIVE sử dụng phương pháp đo quang phổ mao mạch ngón tay, kích thước 20.5 x 15.5 mm.
  3. Khối hiển thị tại chỗ: Màn hình OLED 0.96 inch giao tiếp I2C, độ phân giải 128x64 điểm ảnh, sử dụng IC điều khiển SSD1306, công suất tiêu thụ 0.04W, góc nhìn lớn hơn 160 độ.

Sơ đồ ghép nối dây giữa các thành phần phần cứng được xác lập như sau:

Chân linh kiện MAX30102 Chân Kit ESP8266 Chân màn hình OLED 0.96 inch Chức năng tín hiệu
VIN 3.3V ~ 5V VCC Cấp nguồn hoạt động
GND GND GND Nối đất (0VDC)
SDA D2 SDA Đường truyền dữ liệu I2C
SCL D1 SCL Đường truyền xung nhịp I2C

Thiết kế cơ sở dữ liệu

Hệ thống quản trị cơ sở dữ liệu MySQL được thiết kế gồm 3 bảng thực thể chính để phục vụ việc ghi nhận và phân quyền:

+-------------------------------------------------------------+
|                          TAIKHOAN                           |
+-------------------------------------------------------------+
| ID (PK, int)                                                |
| TaiKhoan (nvarchar(200), not null)                          |
| MatKhau (nvarchar(200), not null)                           |
| Quyen (int, not null)                                       |
+-------------------------------------------------------------+

+-------------------------------------------------------------+
|                          BENHNHAN                           |
+-------------------------------------------------------------+
| MaBenhNhan (PK, nvarchar(20))                               |
| HoTen (nvarchar(250), not null)                             |
| SoCMND (nvarchar(12), not null)                             |
| GioiTinh (nvarchar(3), not null)                            |
| NgaySinh (data, not null)                                   |
| SoPhong (int, not null)                                     |
| GhiChu (ntext, not null)                                    |
+-------------------------------------------------------------+
                               |
                               | 1
                               |
                               | n
+-------------------------------------------------------------+
|                            DATA                             |
+-------------------------------------------------------------+
| ID (PK, int)                                                |
| MaThietBi (nvarchar(20), not null)                          |
| HR (int, not null)                                          |
| Oxi (float, not null)                                       |
| Times (datetime, not null)                                  |
| MaBenhNhan (FK, nvarchar(20), not null)                     |
+-------------------------------------------------------------+

Chi tiết cấu trúc các bảng dữ liệu trong MySQL:

  • Bảng BenhNhan: Lưu thông tin hành chính của bệnh nhân (MaBenhNhan - Khóa chính, HoTen, SoCMND, GioiTinh, NgaySinh, SoPhong, GhiChu).
  • Bảng Data: Lưu trữ lịch sử đo đạc sinh hiệu (ID - Khóa chính, MaThietBi, HR - Nhịp tim/phút, Oxi - Nồng độ oxy SpO2, Times - Thời gian ghi nhận, MaBenhNhan - Khóa ngoại liên kết bảng bệnh nhân).
  • Bảng TaiKhoan: Lưu thông tin tài khoản đăng nhập (ID - Khóa chính, TaiKhoan, MatKhau, Quyen truy cập).

Luồng xử lý dữ liệu và ca sử dụng

Hệ thống phân định quyền hạn rõ ràng cho 3 nhóm tác nhân (Actors):

  • Admin: Quản lý toàn bộ hệ thống gồm các thao tác Thêm, Sửa, Xóa, Xem đối với tài khoản, thông tin bệnh nhân và dữ liệu đo nhịp tim/SpO2.
  • Bác sĩ: Quản lý hồ sơ bệnh nhân (Thêm, Sửa, Xóa, Xem), theo dõi dữ liệu đo của bệnh nhân và thực hiện cấu hình mạng WiFi cho thiết bị đo.
  • Bệnh nhân: Đăng nhập vào hệ thống để tra cứu thông tin cá nhân và xem các kết quả đo nhịp tim, SpO2 của chính mình.

Quy trình vận hành: Sau khi khởi động, bác sĩ truy cập mạng phát ra từ ESP8266 để cấu hình SSID và mật khẩu WiFi cho thiết bị qua giao diện Web. Cảm biến MAX30102 đọc tín hiệu quang từ ngón tay bệnh nhân, truyền qua bus I2C đến ESP8266. ESP8266 đồng thời xuất kết quả hiển thị trực tiếp lên màn hình OLED 0.96 inch và gửi gói tin qua HTTP/RESTful API hoặc Socket lên Node.js Server để lưu đồng thời vào MySQL và ghi nhận lên chuỗi khối Blockchain.


Nội dung chính theo từng chương

Chương 1: Giới thiệu về cơ quan thực tập

Chương này giới thiệu tổng quan về Trung tâm Tin học – Trường Đại học An Giang (tọa lạc tại số 18 Ung Văn Khiêm, Phường Đông Xuyên, TP. Long Xuyên, Tỉnh An Giang). Trung tâm là đơn vị sự nghiệp công lập trực thuộc trường, chịu trách nhiệm quản lý hạ tầng mạng băng thông tối thiểu 1 Gbps, trung tâm dữ liệu (Data Center) hoạt động 24/24 và áp dụng hệ thống quản lý chất lượng theo tiêu chuẩn ISO 9001:2008. Chương 1 trình bày chi tiết về cơ cấu tổ chức, các nhiệm vụ tư vấn, triển khai hệ thống thông tin, đào tạo chứng chỉ tin học quốc gia (A, B) và các hoạt động cung cấp dịch vụ công nghệ thông tin.

Chương 2: Tổng quan và cơ sở lý thuyết

Chương 2 trình bày toàn bộ lý thuyết nền tảng cho đề tài, bao gồm:

  • Định nghĩa y khoa và bảng tiêu chuẩn sinh lý về nhịp tim, nguyên nhân dẫn đến rối loạn nhịp tim (nhanh >100 bpm, chậm <60 bpm).
  • Bản chất chỉ số SpO2, nguyên lý đo quang phổ phản xạ/xuyên thấu và thang phân loại độ bão hòa oxy máu tiêu chuẩn.
  • Thông số kỹ thuật của Kit ESP8266 NodeMCU Lua D1 Mini, cảm biến nhịp tim MAX30102 MH-ET LIVE, màn hình OLED 0.96 inch SSD1306 và cơ chế truyền nhận khung dữ liệu theo giao thức I2C.
  • Lý thuyết mạng Blockchain: nguồn gốc từ bài toán các vị tướng Byzantine, lịch sử hình thành từ năm 1991 (W. Scott Stornetta, Stuart Haber) đến năm 2008-2009 khi Satoshi Nakamoto phát hành Bitcoin; cấu trúc BigchainDB tích hợp MongoDB; các ngôn ngữ và nền tảng lập trình như Arduino, Node.js, MySQL; cùng cấu trúc phân lớp địa chỉ IP (IPv4, IPv6, Static, Dynamic).

Chương 3: Phân tích và thiết kế hệ thống

Chương 3 tập trung vào khâu phân tích yêu cầu kỹ thuật và hiện thực hóa mô hình:

  • Mô tả bài toán nghiệp vụ theo dõi chỉ số nhịp tim và SpO2 liên tục trong bệnh viện.
  • Thiết lập bảng yêu cầu chức năng cho 3 nhóm đối tượng: Admin, Bác sĩ, Bệnh nhân; cùng các yêu cầu phi chức năng về tính ổn định 24/24, độ bảo mật phân quyền và khả năng mở rộng.
  • Xây dựng sơ đồ Use Case tổng quát, các đặc tả chi tiết cho Use Case "Đăng nhập" và "Thiết lập và kết nối WiFi cho thiết bị".
  • Trình bày sơ đồ tuần tự (Sequence Diagram), sơ đồ lớp (Class Diagram), sơ đồ mạch nguyên lý Arduino kết nối ngoại vi.
  • Thiết kế lược đồ quan hệ cơ sở dữ liệu vật lý gồm các bảng BenhNhan, Data, TaiKhoan.
  • Minh họa các giao diện cấu hình WiFi của thiết bị và giao diện màn hình OLED hiển thị kết quả đo tại các mốc thời gian thực nghiệm.

Kết quả và đóng góp

Kết quả kỹ thuật đạt được

  1. Phần cứng thu thập dữ liệu: Đã kết nối thành công mạch vi điều khiển ESP8266 D1 Mini với cảm biến quang học MAX30102 và màn hình OLED 0.96 inch qua chuẩn giao tiếp I2C trên 2 chân GPIO D1 (SCL) và D2 (SDA).
  2. Khả năng cấu hình mạng linh hoạt: Xây dựng cơ chế phát sóng WiFi từ thiết bị, cho phép người dùng truy cập giao diện web nội bộ để cấu hình SSID và mật khẩu mạng WiFi đích cho thiết bị hoạt động độc lập.
  3. Hiển thị và kiểm thử thực tế: Thiết bị hoạt động ổn định, ghi nhận và cập nhật chỉ số nhịp tim (HR) cùng nồng độ oxy trong máu (SpO2) hiển thị trực quan lên màn hình OLED theo thời gian thực (ghi nhận kiểm thử tại các mốc thời gian đo liên tục như 30 giây và 32 giây).
  4. Mô hình phần mềm và cơ sở dữ liệu: Thiết kế hoàn chỉnh kiến trúc cơ sở dữ liệu quan hệ MySQL đáp ứng việc lưu trữ hồ sơ bệnh án, thông tin tài khoản người dùng và chuỗi giá trị đo sinh hiệu theo mốc thời gian (Times).
[ Bệnh nhân đeo thiết bị MAX30102 ] 
        [ Node.js Web Server ]
[ Cơ sở dữ liệu MySQL ]   [ Mạng Blockchain / BigchainDB ]

Đóng góp của đề tài

  • Cung cấp một giải pháp thiết kế hệ thống IoT y tế với chi phí tối ưu, sử dụng các linh kiện phần cứng nhỏ gọn, tiêu thụ ít điện năng (OLED 0.04W, cảm biến kích thước nhỏ gọn).
  • Định hình mô hình kết hợp giữa cơ sở dữ liệu quan hệ truyền thống và công nghệ sổ cái phân tán (Blockchain/BigchainDB) nhằm hướng tới việc bảo vệ tính toàn vẹn dữ liệu y tế, ngăn chặn hành vi chỉnh sửa trái phép số liệu bệnh án khi tích hợp vào hệ thống thông tin bệnh viện (HIS).

Hạn chế và hướng nghiên cứu tiếp

Khóa luận xác định các mặt hạn chế và định hướng phát triển trong tương lai dựa trên phạm vi nghiên cứu:

  • Tối ưu hóa thiết kế phần cứng: Cần đóng gói thiết bị đo thành dạng vòng đeo tay hoặc thiết bị đeo chuyên dụng (Wearable Device) nhỏ gọn, tăng tính tiện lợi và thẩm mỹ khi gắn vào cơ thể bệnh nhân.
  • Mở rộng giao tiếp hệ thống: Hoàn thiện và nâng cấp các hàm API để kết nối trực tiếp, đồng bộ toàn diện với hệ thống thông tin bệnh viện (HIS) thực tế.
  • Hoàn thiện tính năng Blockchain: Triển khai sâu hơn các hợp đồng thông minh (Smart Contracts) và mở rộng mạng lưới các nút (nodes) BigchainDB để kiểm chứng hiệu năng xử lý giao dịch đồng thời trong môi trường bệnh viện thực tế.

Giá trị tham khảo

Báo cáo thực tập cuối khóa này mang lại giá trị tham khảo thiết thực cho:

  • Sinh viên ngành Kỹ thuật phần mềm, Công nghệ Thông tin, Hệ thống nhúng và IoT: Tham khảo cách thức lập trình vi điều khiển ESP8266 giao tiếp qua giao thức I2C với cảm biến y sinh MAX30102 và màn hình SSD1306 trong môi trường Arduino IDE.
  • Người phát triển ứng dụng y tế thông minh: Tham khảo phương pháp phân tích yêu cầu phần mềm y tế, thiết kế lược đồ quan hệ CSDL quản lý bệnh nhân, kỹ thuật cấu hình Captive Portal WiFi cho thiết bị IoT và định hướng ứng dụng Blockchain/BigchainDB trong lưu trữ dữ liệu chuỗi khối.

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

1. Thiết bị phần cứng của hệ thống sử dụng những linh kiện chính nào?
Hệ thống sử dụng 3 thành phần chính: Kit RF Thu Phát Wifi ESP8266 NodeMCU Lua D1 Mini, Cảm biến đo nhịp tim và nồng độ oxy trong máu MAX30102 MH-ET LIVE, và Màn hình OLED 0.96 inch (driver SSD1306) giao tiếp qua bus I2C.

2. Cảm biến MAX30102 và màn hình OLED được kết nối với Kit ESP8266 qua những chân tín hiệu nào?
Cả hai module đều dùng chuẩn giao tiếp I2C và được nối chung vào chân D1 (SCL) và D2 (SDA) của ESP8266, cùng với các chân cấp nguồn 3.3V ~ 5V (VIN/VCC) và chân nối đất GND.

3. Cơ sở dữ liệu MySQL của hệ thống gồm những bảng nào và lưu trữ các thông tin gì?
Hệ thống gồm 3 bảng:

  • BenhNhan: Lưu mã bệnh nhân, họ tên, số CMND, giới tính, ngày sinh, số phòng, ghi chú.
  • Data: Lưu mã thiết bị, chỉ số nhịp tim (HR), chỉ số SpO2 (Oxi), thời gian đo (Times) và mã bệnh nhân liên kết.
  • TaiKhoan: Lưu thông tin tên tài khoản, mật khẩu và quyền hạn phân quyền.

4. Bác sĩ thực hiện thiết lập kết nối mạng WiFi cho thiết bị bằng cách nào?
Khi thiết bị hoạt động ở trạng thái chưa cấu hình, bác sĩ dùng điện thoại hoặc máy tính kết nối vào mạng WiFi do chính thiết bị ESP8266 phát ra, sau đó truy cập giao diện web nội bộ để nhập tên mạng (SSID) và mật khẩu (password) của mạng WiFi cần kết nối.

5. Vì sao đề tài lựa chọn BigchainDB làm giải pháp lưu trữ chuỗi khối cho dữ liệu y tế?
BigchainDB kết hợp các đặc tính của Blockchain (tính bất biến, phân quyền, khả năng chịu lỗi BFT) với hiệu năng của cơ sở dữ liệu MongoDB, cho phép lưu trữ khối lượng dữ liệu lớn, hỗ trợ viết câu truy vấn tìm kiếm nhanh và cung cấp độ trễ tạo khối thấp (~1 giây).


Kết luận

Báo cáo thực tập cuối khóa của tác giả Trương Huỳnh Phú Quí đã hoàn thành việc nghiên cứu, tích hợp phần cứng và thiết kế hệ thống ghi nhận nhịp tim, nồng độ oxy trong máu (SpO2) dựa trên nền tảng vi điều khiển ESP8266 và cảm biến MAX30102. Đề tài đã phân tích rõ nét các yêu cầu phần mềm y tế, xây dựng cơ sở dữ liệu phân quyền người dùng và định hướng lưu trữ an toàn qua BigchainDB/Blockchain. Toàn bộ kết quả thực nghiệm trong 8 tuần tại Trung tâm Tin học – Trường Đại học An Giang đã chứng minh tính khả thi của mô hình trong việc tự động hóa khâu giám sát chỉ số sinh tồn của bệnh nhân.