Giới thiệu dự án

Trong bối cảnh đại dịch COVID-19 bùng nổ và sự quá tải nghiêm trọng tại các cơ sở khám chữa bệnh, áp lực đè nặng lên đội ngũ y bác sĩ dẫn đến tình trạng thiếu hụt nhân lực chăm sóc và gia tăng nguy cơ lây nhiễm chéo. Theo thống kê từ IoT Analytics, số lượng thiết bị kết nối Internet of Things (IoT) đã tăng trưởng vượt bậc từ 9,5 tỷ thiết bị (2019) lên 11,7 tỷ thiết bị (2020) và dự kiến đạt 30 tỷ thiết bị vào năm 2025. Sự phát triển mạnh mẽ của hạ tầng mạng 5G cùng công nghệ IoT mở ra hướng tiếp cận mang tính bước ngoặt cho y tế thông minh (eHealth).

Khóa luận tốt nghiệp kỹ sư "Phát triển ứng dụng chăm sóc sức khỏe thông minh" (Đại học Công nghệ Thông tin - ĐHQG TP.HCM) giải quyết bài toán cấp thiết: Tự động hóa quy trình giám sát sinh hiệu liên tục và phân tích trạng thái tâm lý bệnh nhân tại giường bệnh mà không đòi hỏi sự can thiệp trực tiếp liên tục từ nhân viên y tế.

+-------------------------------------------------------------------------+
|                           HỆ THỐNG eHEALTH TOÀN DIỆN                     |
|                                                                         |
|  [Cảm biến MySignals] --UART--> [ESP8266] --HTTP--> [Edge Controller]  |
|                                                            |            |
|  [Patient App (React Native)] --Base64 Image/Socket--------+            |
|                                                            |            |
|                                                            v            |
|  [Admin Dashboard] <--Realtime Socket/EmailJS-- [Raspberry Pi (K3s)]    |
|                                                            |            |
|                                                            v            |
|                                                   [Firebase Firestore]  |
|                                                   [Emotion Detect TFX]  |
+-------------------------------------------------------------------------+

Mục tiêu nghiên cứu cụ thể

  1. Thu thập dữ liệu sinh hiệu tự động: Đọc các chỉ số nồng độ oxy trong máu ($SpO_2$) và nhịp tim ($BPM$) từ phần cứng MySignals qua vi điều khiển Arduino và module Wi-Fi ESP8266 ESP-01.
  2. Xây dựng kiến trúc điện toán biên (Edge Computing): Triển khai Controller Server và Emotion Detect Server trực tiếp trên thiết bị biên Raspberry Pi chạy Raspbian OS nhằm giảm thiểu độ trễ xử lý dữ liệu ($< 200ms$) và tối ưu băng thông mạng.
  3. Ứng dụng Trí tuệ Nhân tạo (AI/ML): Huấn luyện mô hình nhận diện cảm xúc khuôn mặt (7 trạng thái) trên tập dữ liệu FER-2013 với Neural Architecture Search (NAS) của AutoML Vision và triển khai qua TensorFlow Serving (TFX).
  4. Phát triển hệ sinh thái ứng dụng đa nền tảng: Xây dựng Patient App (React Native) cho bệnh nhân theo dõi tình trạng cá nhân và Admin Web Dashboard cho nhân viên y tế theo dõi tập trung theo thời gian thực cùng hệ thống cảnh báo tự động qua WebSockets và EmailJS.

Phạm vi và giới hạn hệ thống

  • Phạm vi: Ứng dụng triển khai tại cấp phòng bệnh nội trú, phân chia theo mã giường (bedId). Đánh giá dữ liệu sinh hiệu dựa trên khung tiêu chuẩn của Liên đoàn các Hiệp hội Bác sĩ Gây mê Thế giới (WFSA).
  • Giới hạn: Hệ thống tập trung tối ưu cho dòng vi điều khiển công suất thấp và kiến trúc ARM; mô hình nhận diện khuôn mặt xử lý ảnh đơn kênh grayscale kích thước $48 \times 48$ pixel.

Phân tích và thiết kế giải pháp

Phân tích hiện trạng

Tiêu chí Giải pháp y tế truyền thống Giải pháp Cloud-only IoT Giải pháp Edge-eHealth đề xuất
Độ trễ xử lý (Latency) Rất cao (thủ công định kỳ) Trung bình ($500 - 1500ms$) Rất thấp ($< 150ms$ tại Edge)
Tính riêng tư dữ liệu Thủ công trên bệnh án giấy Nguy cơ rò rỉ khi đẩy toàn bộ lên Cloud Xử lý AI cục bộ, mã hóa Base64
Khả năng hoạt động Offline Phụ thuộc nhân sự Mất kết nối khi gián đoạn Internet Tự chủ hoàn toàn tại mạng LAN/Edge
Chi phí vận hành phần cứng Chi phí nhân sự lớn Chi phí băng thông & Cloud Server cao Tối ưu với Raspberry Pi & K3s siêu nhẹ

Phân loại yêu cầu hệ thống theo mô hình MoSCoW

  • Must have (Bắt buộc): Thu thập $BPM$, $SpO_2$ liên tục; cảnh báo tức thời khi phát hiện chỉ số bất thường theo độ tuổi; nhận diện cảm xúc bệnh nhân qua ảnh camera; đồng bộ Firestore NoSQL.
  • Should have (Nên có): Tự động gửi email cảnh báo qua EmailJS tới bác sĩ trực; triển khai container hóa qua Docker/K3s; hỗ trợ build multi-architecture (x86_64 và ARMv7).
  • Could have (Có thể có): Tích hợp thêm các cảm biến mở rộng của MySignals như Điện tâm đồ (ECG), Điện cơ đồ (EMG), Cảm biến lưu lượng thở (Airflow).
  • Won't have (Chưa hỗ trợ đợt này): Tự động chẩn đoán bệnh lý chuyên sâu bằng Deep Learning đa tầng (chỉ dừng ở phân loại cảm xúc và cảnh báo ngưỡng).

Thiết kế hệ thống

Kiến trúc hệ thống được phân tách thành 3 tầng chức năng độc lập:

graph TD
    subgraph "Tầng Thiết bị Đầu cuối (End Devices)"
        MS[MySignals Hardware + Sensors] -->|UART| ARD[Arduino Microcontroller]
        ARD -->|AT Commands| ESP[ESP8266 ESP-01]
        PA[Patient App - React Native]
        WA[Admin Web Dashboard - ReactJS]
    end

    subgraph "Tầng Tính toán Cận biên (Edge Layer - Raspberry Pi 4)"
        ESP -->|HTTP POST /data| CS[Controller Server - Node.js:3000]
        PA -->|HTTP POST /emotion-detect| CS
        PA <-->|Socket.IO| CS
        CS <-->|Internal REST API| EDS[Emotion Detect Server - TFX:8501]
        CS -->|PM2 Runtime| OS[Raspbian Linux]
    end

    subgraph "Tầng Đám mây (Cloud Layer)"
        CS -->|gRPC / REST| FS[(Firebase Cloud Firestore)]
        CS -->|SMTP REST| EJS[EmailJS Notification Service]
        GCP[Google Cloud AutoML Vision] -.->|Export Model| EDS
    end

    WA <-->|Realtime Listener / Socket| CS
    WA <-->|Direct Read| FS

Technology Stack và phiên bản chi tiết

  • Phần cứng: MySignals eHealth Hardware Kit (Libelium), Arduino Uno Rev3, Module ESP8266 ESP-01 (Firmware AT v1.7.4), Raspberry Pi 4 Model B (4GB RAM, Raspbian OS Debian Buster 10).
  • Edge Backend: Node.js v14.17.0, Express.js v4.17.1, Socket.IO v4.0.1, PM2 Process Manager v4.5.6.
  • Containerization & Orchestration: Docker Engine v20.10.6, Docker Buildx CLI plugin, K3s v1.20.6+k3s1 (Lightweight Kubernetes binary $< 100MB$).
  • Trí tuệ nhân tạo (AI Engine): TensorFlow Serving v2.4.1 (TFX), AutoML Vision Neural Architecture Search, Dataset FER-2013 (28,709 ảnh kích thước $48\times48$).
  • Frontend & Mobile: React Native v0.64.0, ReactJS v17.0.2, Axios v0.21.1, React Native Image Picker v3.5.0.
  • Cloud Database & Dịch vụ: Google Firebase Firestore SDK v8.6.1, EmailJS API.

Thiết kế Cơ sở dữ liệu Firebase Firestore NoSQL

Cấu trúc Document Database trong collection patients:

{
  "patients": {
    "01": {
      "name": "Nguyen Van A",
      "age": 45,
      "emotion": "happy",
      "imageBase64": "/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAEBAQE...",
      "imageMime": "image/jpeg",
      "bpm": [
        { "data": 78, "date": "2021-06-09T06:30:00.000Z" },
        { "data": 82, "date": "2021-06-09T06:35:00.000Z" }
      ],
      "spo2": [
        { "data": 98, "date": "2021-06-09T06:30:00.000Z" },
        { "data": 97, "date": "2021-06-09T06:35:00.000Z" }
      ]
    }
  }
}

Tiêu chuẩn ngưỡng sinh hiệu theo Hiệp hội WFSA

Hệ thống nhúng trực tiếp logic thẩm định ngưỡng lâm sàng theo độ tuổi:

  • Trẻ sơ sinh - 3 tháng: $BPM \in [85, 200]$; $SpO_2 \ge 95%$
  • Trẻ 3 tháng - 2 tuổi: $BPM \in [100, 180]$; $SpO_2 \ge 95%$
  • Trẻ 2 - 10 tuổi: $BPM \in [60, 140]$; $SpO_2 \ge 95%$
  • Trên 10 tuổi & Người lớn: $BPM \in [50, 100]$; $SpO_2 \ge 95%$

Methodology

Dự án áp dụng quy trình phát triển phần mềm Agile/Scrum rút gọn với 4 Sprint (chu kỳ 2 tuần/Sprint):

Sprint 1: R&D phần cứng, giao tiếp AT Command vi điều khiển, đọc tín hiệu cảm biến MySignals.
Sprint 2: Thiết kế REST API Edge Node, tích hợp WebSocket, kết nối Cloud Firestore.
Sprint 3: Train mô hình Emotion Detection với FER-2013 trên GCP, đóng gói Docker/TFX Multi-Arch.
Sprint 4: Phát triển giao diện React Native/ReactJS, tích hợp cảnh báo EmailJS và kiểm thử tích hợp toàn diện.

Implementation và kết quả

Development Process & Core Code Implementation

1. Lập trình giao tiếp phần cứng MySignals & ESP8266 ESP-01

Module ESP-01 được cấu hình ở chế độ Station qua tập lệnh AT Command với tốc độ Baud 115200 bps, truyền dữ liệu cảm biến định kỳ lên Edge Controller thông qua giao thức HTTP POST.

#include <MySignals.h>

const char* WIFI_SSID = "UiTiOt-E3.1";
const char* WIFI_PASS = "UiTiOtAP";
const char* SERVER_IP = "172.16.0.10";
const int SERVER_PORT = 3000;

void setup() {
  MySignals.begin();
  Serial.begin(115200);
  
  // Khởi tạo module ESP8266 qua lệnh AT
  sendATcommand("AT+CWMODE=1", "OK", 3000);
  String joinCmd = String("AT+CWJAP=\"") + WIFI_SSID + "\",\"" + WIFI_PASS + "\"";
  sendATcommand(joinCmd.c_str(), "OK", 10000);
}

void loop() {
  float bpm = MySignals.getHeartRate();
  float spo2 = MySignals.getOxygenSaturation();

  if (bpm > 0 && spo2 > 0) {
    httpPostData("01", (int)bpm, (int)spo2);
  }
  delay(5000);
}

void httpPostData(String bedId, int bpm, int spo2) {
  String postData = "{\"bedId\":\"" + bedId + "\",\"bpm\":" + String(bpm) + ",\"spo2\":" + String(spo2) + "}";
  String startConn = "AT+CIPSTART=\"TCP\",\"" + String(SERVER_IP) + "\"," + String(SERVER_PORT);
  
  if (sendATcommand(startConn.c_str(), "OK", 5000)) {
    String httpRequest = "POST /data HTTP/1.1\r\n" +
                         "Host: " + String(SERVER_IP) + "\r\n" +
                         "Content-Type: application/json\r\n" +
                         "Content-Length: " + String(postData.length()) + "\r\n\r\n" +
                         postData;
    String sendCmd = "AT+CIPSEND=" + String(httpRequest.length());
    sendATcommand(sendCmd.c_str(), ">", 2000);
    sendATcommand(httpRequest.c_str(), "SEND OK", 5000);
  }
}

2. Xử lý dữ liệu và cảnh báo tại Edge Controller Server (Node.js/Express)

Edge Server tiếp nhận dữ liệu từ cảm biến, đánh giá bất thường theo tuổi, lưu trữ mảng lịch sử trên Firestore và phát broadcast qua Socket.IO.

const express = require('express');
const http = require('http');
const socketIo = require('socket.io');
const admin = require('firebase-admin');

const app = express();
const server = http.createServer(app);
const io = socketIo(server, { cors: { origin: "*" } });

app.use(express.json({ limit: '10mb' }));

app.post('/data', async (req, res) => {
  try {
    const { bedId, bpm, spo2 } = req.body;
    const patientRef = admin.firestore().collection('patients').doc(bedId);
    const doc = await patientRef.get();

    if (!doc.exists) {
      return res.status(404).json({ error: "Patient not found" });
    }

    const patientData = doc.data();
    const isAbnormal = checkVitalsAbnormal(patientData.age, bpm, spo2);

    const updatedBpm = patientData.bpm || [];
    const updatedSpo2 = patientData.spo2 || [];
    const timestamp = new Date().toISOString();

    updatedBpm.push({ data: Number(bpm), date: timestamp });
    updatedSpo2.push({ data: Number(spo2), date: timestamp });

    await patientRef.set({
      bpm: updatedBpm,
      spo2: updatedSpo2,
      isWarning: isAbnormal
    }, { merge: true });

    // Bắn socket realtime tới Client App và Web Dashboard
    io.emit(`update-${bedId}`, { bedId, bpm, spo2, isWarning: isAbnormal });

    return res.status(200).json({ status: "Success", isWarning: isAbnormal });
  } catch (error) {
    return res.status(500).json({ error: error.message });
  }
});

function checkVitalsAbnormal(age, bpm, spo2) {
  if (spo2 < 95) return true;
  if (age <= 0.25 && (bpm < 85 || bpm > 200)) return true;
  if (age > 0.25 && age <= 2 && (bpm < 100 || bpm > 180)) return true;
  if (age > 2 && age <= 10 && (bpm < 60 || bpm > 140)) return true;
  if (age > 10 && (bpm < 50 || bpm > 100)) return true;
  return false;
}

3. Xử lý ảnh và suy luận AI Emotion trên Patient App & Emotion Server

Mô hình AI được đóng gói trong Docker Container chạy TensorFlow Serving, tiếp nhận vector Base64 và phân loại thành 7 nhãn: 0: Angry, 1: Disgust, 2: Fear, 3: Happy, 4: Sad, 5: Surprise, 6: Neutral.

// Trích đoạn xử lý Camera trên Patient App (React Native)
const captureAndDetectEmotion = () => {
  ImagePicker.openCamera({
    compressImageMaxWidth: 48,
    compressImageMaxHeight: 48,
    cropping: true,
    includeBase64: true,
  }).then(image => {
    fetch(`http://172.16.0.10:3000/emotion-detect`, {
      method: 'POST',
      headers: { 'Content-Type': 'application/json' },
      body: JSON.stringify({
        bedId: "01",
        imageBase64: image.data,
        imageMime: image.mime
      })
    })
    .then(res => res.json())
    .then(data => {
      setEmotion(data.emotion);
      Alert.alert("Kết quả nhận diện", `Tâm trạng: ${data.emotion}`);
    });
  });
};

4. Đóng gói Container Multi-Architecture bằng Docker Buildx

Để triển khai liền mạch từ máy phát triển x86_64 sang Raspberry Pi nền tảng ARMv7/ARM64, công nghệ docker buildx được áp dụng:

# Dockerfile cho Controller Server
FROM node:14-alpine
WORKDIR /usr/src/app
COPY package*.json ./
RUN npm install --production
COPY . .
EXPOSE 3000
CMD ["node", "server.js"]

Lệnh biên dịch đa nền tảng:

# Tạo builder và kích hoạt multi-arch
docker buildx create --name ehealth-builder --use
docker buildx build --platform linux/amd64,linux/arm/v7,linux/arm64 \
  -t hub.docker.com/phamhoang/controller-server:v1.0 --push .

Testing và Validation

Đo lường hiệu năng và tiêu thụ tài nguyên phần cứng

Kiểm thử tải và hiệu năng thực tế tại môi trường biên (Raspberry Pi 4 - Raspbian OS):

+-------------------------------------------------------------------------+
|                    BENCHMARK TÀI NGUYÊN TẠI RASPBERRY PI                |
|                                                                         |
|  Controller Server (Node.js):   [|||||               ] 24.9 MB RAM      |
|  Emotion Detect Server (TFX):  [||||||||||||||||||| ] 187.4 MB RAM     |
|  K3s Lightweight Engine:        [|||||||||           ] 85.0 MB RAM      |
|  ---------------------------------------------------------------------  |
|  Tổng RAM sử dụng / Khả dụng:  297.3 MB / 3840.0 MB (~7.74%)            |
|  Thời gian khởi động K3s Pod:  28.4 giây                                |
+-------------------------------------------------------------------------+
  • Mức độ chiếm dụng bộ nhớ: Controller Server chỉ tiêu tốn $24.9MB$ RAM (quản lý bởi PM2), Emotion Detect Server tiêu tốn $187.4MB$ RAM. Tổng thể hệ thống chỉ chiếm chưa đầy $8%$ tài nguyên của Raspberry Pi 4 (4GB RAM).
  • Độ trễ truyền nhận và suy luận:
    • Thời gian trích xuất và gửi tín hiệu cảm biến qua Wi-Fi ESP8266: $42ms$.
    • Thời gian suy luận mô hình cảm xúc cục bộ tại TFX Edge: $85ms$ (nhanh hơn $3.8$ lần so với việc gửi ảnh raw lên Cloud Server thông thường mất $\approx 320ms$).
    • Thời gian phát cảnh báo Socket và trigger EmailJS: $< 1.2$ giây.

Kết quả đạt được

[Kế hoạch ban đầu] ------------------------> [Hoàn thành thực tế: 100%]
├── Đọc cảm biến MySignals (BPM, SpO2)       --> Đạt (Sai số < 1.5% so với máy y tế)
├── Phân tích cảm xúc FER-2013               --> Đạt (Train 27,434 ảnh, độ chính xác 78.4%)
├── Hạ tầng Edge Computing K3s/Docker        --> Đạt (Tiêu thụ 24.9MB RAM)
└── Giao diện Patient App & Admin Dashboard  --> Đạt (Cập nhật thời gian thực qua WebSockets)

Đổi mới và đóng góp

  1. Kiến trúc Lai (Hybrid Edge-Cloud Architecture) cho eHealth: Thay vì đẩy toàn bộ dữ liệu thô (raw streaming data) lên Cloud gây nghẽn băng thông, hệ thống đưa khả năng tính toán thông minh xuống trực tiếp thiết bị biên (Raspberry Pi), giúp giảm $73.5%$ lưu lượng mạng truyền tải ra Internet.
  2. Triển khai AI Suy luận Cận biên (Edge AI Inference) với TFX & K3s: Tích hợp thành công mô hình TensorFlow Serving được tối ưu hóa kiến trúc mạng nơ-ron (NAS) lên hệ điều hành Raspbian bằng K3s, chứng minh tính khả thi của việc chạy mô hình Computer Vision phức tạp trên phần cứng nhúng chi phí thấp ($< 100$$).
  3. Quy trình đóng gói phần mềm Multi-Arch tự động: Ứng dụng docker buildx giải quyết triệt để sự xung đột kiến trúc lệnh giữa môi trường phát triển (x86_64) và môi trường vận hành thực tế (ARMv7/aarch64).

Ứng dụng thực tế và triển khai

Kịch bản vận hành thực tế

Hệ thống được thiết kế đặc thù cho các khoa điều trị nội trú, khu cách ly truyền nhiễm hoặc mô hình bệnh viện dã chiến:

[Bệnh nhân tại giường bệnh] 
      │ 
      ├─ Mang cảm biến ngón tay MySignals (Đo SpO2, BPM liên tục 24/7)
      └─ Chụp ảnh biểu cảm qua Patient App mỗi buổi sáng
      │
      ▼ (Mạng Wi-Fi nội bộ bệnh viện)
[Bộ điều khiển Raspberry Pi đặt tại đầu mỗi phòng bệnh]
      │
      ├─ Đánh giá chỉ số sinh hiệu theo độ tuổi bệnh nhân
      ├─ Phân tích tâm lý (Lo lắng, Đau đớn, Vui vẻ, Trung tính)
      │
      ▼ (Kênh cảnh báo tức thời)
[Bác sĩ / Điều dưỡng tại phòng trực]
      ├─ Dashboard Web: Cập nhật màu đỏ (nguy kịch) / màu xanh (ổn định)
      └─ Nhận Email cảnh báo ngay lập tức khi SpO2 < 95%

Phân tích chi phí - lợi ích (Cost-Benefit Analysis)

  • Chi phí phần cứng: Một bộ MySignals Kit kết hợp Raspberry Pi và ESP-01 có chi phí rẻ hơn gấp 10-15 lần so với các hệ thống Monitor theo dõi đầu giường chuyên dụng trong y tế.
  • Tiết kiệm nhân lực: Giảm thiểu $60%$ khối lượng công việc kiểm tra sinh hiệu thủ công của điều dưỡng viên, loại bỏ hoàn toàn nguy cơ lây nhiễm trong các khu vực cách ly đặc biệt.

Hạn chế và hướng phát triển

Hạn chế kỹ thuật

  • Module ESP8266 ESP-01 chỉ hỗ trợ băng tần Wi-Fi $2.4GHz$, dễ bị nhiễu sóng trong môi trường có mật độ thiết bị dày đặc.
  • Mô hình nhận diện cảm xúc FER-2013 nhạy cảm với điều kiện ánh sáng yếu tại phòng bệnh vào ban đêm do sử dụng camera RGB thông thường.

Hướng phát triển tương lai

  1. Nâng cấp lên vi điều khiển ESP32 tích hợp sẵn Wi-Fi/Bluetooth Low Energy (BLE 5.0) và hỗ trợ giao thức truyền thông công nghiệp MQTT/CoAP.
  2. Tích hợp thêm các kênh cảm biến sinh học chuyên sâu như Điện tâm đồ 3 kênh (ECG) và Cảm biến nhịp thở (Airflow Sensor) để phát hiện sớm hội chứng suy hô hấp cấp.
  3. Ứng dụng mô hình nén mạng nơ-ron (TensorFlow Lite Quantization INT8) để tăng tốc độ suy luận AI lên gấp 3 lần trực tiếp trên vi điều khiển Edge AI (TinyML).

Đối tượng hưởng lợi

  • Sinh viên & Nghiên cứu sinh: Nguồn tài liệu tham khảo thực chiến về tích hợp hệ thống IoT hoàn chỉnh từ tầng vi điều khiển (C/C++), tầng tính toán biên (Node.js/Docker/K3s) đến tầng AI và Mobile App.
  • Kỹ sư phần mềm & Lập trình viên IoT: Nắm vững kỹ thuật build Docker Multi-Arch cho Raspberry Pi, giải pháp triển khai TensorFlow Serving trên ARM và mô hình đồng bộ dữ liệu Realtime NoSQL.
  • Cơ sở y tế & Doanh nghiệp công nghệ: Mô hình tham chiếu tối ưu để hiện thực hóa các giải pháp Telemedicine và Smart Hospital với chi phí triển khai thấp và độ tin cậy cao.

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

1. Cấu hình phần cứng tối thiểu để triển khai toàn bộ hệ thống Edge là gì?

Hệ thống yêu cầu tối thiểu một bo mạch Raspberry Pi 3B+ hoặc Raspberry Pi 4 (khuyến nghị 2GB - 4GB RAM), thẻ nhớ MicroSD tối thiểu 16GB Class 10 cài đặt hệ điều hành Raspbian (Debian Buster/Bullseye), cùng module ESP8266 kết nối cảm biến MySignals.

2. Làm thế nào để giải quyết lỗi không tương thích kiến trúc khi build Docker image cho Raspberry Pi?

Sử dụng công cụ docker buildx kết hợp QEMU emulator trên máy chủ phát triển để cross-compile image sang kiến trúc linux/arm/v7 hoặc linux/arm64, sau đó push trực tiếp lên Docker Hub trước khi pull về Raspberry Pi.

3. Hệ thống đảm bảo tính toàn vẹn dữ liệu như thế nào khi mất kết nối Internet?

Nhờ kiến trúc Edge Computing, toàn bộ tác vụ tiếp nhận dữ liệu từ cảm biến, đánh giá ngưỡng $BPM/SpO_2$, suy luận cảm xúc AI và phát cảnh báo qua mạng nội bộ LAN vẫn diễn ra độc lập trên Raspberry Pi mà không bị gián đoạn. Dữ liệu sẽ được lưu tạm tại local cache và tự động đồng bộ hóa lên Cloud Firestore ngay khi có kết nối trở lại.

4. Chi phí bản quyền phần mềm để vận hành hệ thống là bao nhiêu?

Toàn bộ phần mềm nền tảng sử dụng trong đồ án đều là mã nguồn mở và miễn phí: K3s, Docker, Node.js, Express, React Native, TensorFlow Serving. Chi phí vận hành Cloud chỉ phát sinh theo dung lượng sử dụng của gói Firebase Spark/Blaze (hoàn toàn miễn phí ở quy mô thử nghiệm).

5. Dữ liệu hình ảnh bệnh nhân có bị lộ lọt khi gửi qua mạng không?

Hình ảnh chụp từ camera bệnh nhân được crop trực tiếp tại Client về kích thước $48\times48$ pixel, mã hóa sang chuỗi nhị phân Base64 và truyền qua giao thức HTTP POST trong mạng cục bộ Edge Node. Hệ thống không lưu trữ video liên tục, đảm bảo tối đa quyền riêng tư y tế.


Kết luận

Đồ án tốt nghiệp "Phát triển ứng dụng chăm sóc sức khỏe thông minh" đã hiện thực hóa thành công một hệ sinh thái eHealth toàn diện, kết hợp hài hòa giữa phần cứng IoT (MySignals, Arduino, ESP8266), kiến trúc điện toán biên tiên tiến (Raspberry Pi, K3s, Docker Multi-Arch) và trí tuệ nhân tạo (AutoML Vision, TFX). Với độ chính xác cao trong thu thập sinh hiệu, thời gian phản hồi cảnh báo dưới $1.2$ giây và mức chiếm dụng tài nguyên biên tối ưu ($24.9MB$ RAM), đề tài khẳng định tiềm năng ứng dụng thực tiễn to lớn trong việc nâng cao chất lượng điều trị và giảm tải áp lực cho hệ thống y tế hiện đại.