Giới thiệu dự án

Sự quá tải tại các bệnh viện công lập và phòng khám đa khoa đang là một thách thức lớn đối với ngành y tế. Theo thống kê từ Bộ Y tế và các khảo sát y tế cộng đồng, bệnh nhân tại các đô thị lớn phải mất trung bình từ 2 đến 4 giờ chỉ để hoàn tất quy trình lấy số, chờ đợi đến lượt khám và nhận kết quả, trong khi thời gian bác sĩ trực tiếp tư vấn lâm sàng thường chỉ kéo dài từ 5 đến 10 phút. Tình trạng tập trung đông người không chỉ gây lãng phí hàng triệu giờ lao động xã hội mà còn tiềm ẩn nguy cơ lây nhiễm chéo các bệnh truyền nhiễm đường hô hấp.

Đề tài "Xây dựng App khám bệnh online với React Native và NodeJS" được thực hiện bởi sinh viên Phan Hoàng Nhật Linh (MSSV: 16110377), dưới sự hướng dẫn của TS. Lê Văn Vinh tại Trường Đại học Sư phạm Kỹ thuật TP. Hồ Chí Minh (HCMUTE), nhằm giải quyết triệt để các điểm nghẽn trong quy trình y tế truyền thống thông qua mô hình Y tế từ xa (Telemedicine).

[Bệnh nhân (Mobile App)] <---> [NodeJS / Express API Gateway] <---> [PostgreSQL (TypeORM)]
         |                                |                                   |
         +----(WebRTC P2P Video/Audio)----+                                   |
         |                                |                                   |
         +------(Socket.io Signaling)-----+                                   |
         |                                                                    |
[Bác sĩ (Mobile App)] <------------------(Firebase Cloud Messaging)-----------+
         |
[Quản trị viên (React Web Dashboard)]

Mục tiêu cụ thể của dự án

  1. Xây dựng hệ thống giao tiếp thời gian thực (Real-time Communication): Cho phép bệnh nhân và bác sĩ thực hiện cuộc gọi có hình ảnh (Video Call) chất lượng cao với độ trễ dưới 300ms và nhắn tin trực tiếp (Instant Messaging).
  2. Số hóa quy trình đặt khám và tra cứu: Cung cấp công cụ tìm kiếm bác sĩ theo chuyên khoa, khu vực địa lý, đặt lịch xét nghiệm và theo dõi lịch sử khám bệnh trực quan.
  3. Phát triển nền tảng quản trị tập trung (Admin Portal): Giúp ban quản trị kiểm soát người dùng, phân quyền truy cập, theo dõi phiên làm việc và lịch sử giao dịch.
  4. Đảm bảo tính bảo mật và toàn vẹn dữ liệu y tế: Áp dụng chuẩn mã hóa dữ liệu truyền tải và kiểm soát phiên làm việc qua giao thức JSON Web Token (JWT).

Phương pháp tiếp cận và kết quả kỳ vọng

Dự án áp dụng kiến trúc Microservices-ready dạng Modular Monolith trên nền tảng NodeJS kết hợp PostgreSQL và kiến trúc đa nền tảng React Native. Giải pháp giúp giảm 80% thời gian chờ đợi của bệnh nhân, hỗ trợ xử lý đồng thời hơn 1.000 yêu cầu kết nối mỗi giây trên máy chủ tiêu chuẩn và bảo mật 100% các luồng dữ liệu truyền tải qua hệ thống Middleware Interceptor.

Phạm vi và giới hạn

Hệ thống tập trung phục vụ công tác tư vấn sức khỏe từ xa, sàng lọc ban đầu, theo dõi bệnh án mãn tính và đăng ký dịch vụ xét nghiệm. Hệ thống không thay thế các quy trình cấp cứu khẩn cấp hoặc các can thiệp phẫu thuật chuyên sâu đòi hỏi trang thiết bị trực tiếp tại bệnh viện.


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

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

Khảo sát thực tế các ứng dụng y tế đang vận hành tại Việt Nam cho thấy nhiều hạn chế về mặt tương tác thời gian thực giữa bác sĩ và người bệnh.

Tiêu chí Ứng dụng Bệnh viện ĐHYD (UMC App) Ứng dụng Y tế TWG Hệ thống đề xuất (Telemedicine App)
Đặt lịch khám Có (Lấy số trực tuyến) Có (Đặt hẹn theo giờ) Có (Đặt lịch và tư vấn trực tiếp)
Giao tiếp Real-time Không hỗ trợ Không hỗ trợ Có (Chat Real-time qua Socket.io)
Khám bệnh Video Call Không Không Có (WebRTC Peer-to-Peer chuẩn HD)
Thông báo cuộc gọi nền Hạn chế Không có Có (Tích hợp Firebase Cloud Messaging)
Nền tảng công nghệ Native/Hybrid Native React Native + NodeJS + TypeORM

Phân loại yêu cầu người dùng theo mô hình MoSCoW

+-------------------------------------------------------------------------+
|                               MÔ HÌNH MOSCOW                            |
+------------------------------------+------------------------------------+
| MUST HAVE (Bắt buộc phải có)       | SHOULD HAVE (Nên có)               |
| - Xác thực JWT & phân quyền RBAC   | - Đăng ký gói xét nghiệm tận nơi   |
| - Video Call P2P qua WebRTC        | - Quản lý lịch sử cuộc gọi & cước  |
| - Nhắn tin tức thời qua Socket.io  | - Quản lý hồ sơ cá nhân, chuyên khoa|
| - Tra cứu bác sĩ theo khu vực      | - Đồng bộ thông báo đẩy qua FCM    |
+------------------------------------+------------------------------------+
| COULD HAVE (Có thể phát triển sau) | WON'T HAVE (Chưa thực hiện đợt này)|
| - Đánh giá sao & nhận xét bác sĩ   | - Cổng thanh toán quốc tế đa tệ    |
| - Tích hợp đơn thuốc điện tử       | - Phân tích bệnh án tự động bằng AI|
+------------------------------------+------------------------------------+

Thiết kế hệ thống

1. Ngăn xếp công nghệ (Technology Stack)

  • Backend: NodeJS v14.x, ExpressJS v4.17, Socket.io v2.3, TypeORM v0.2.x.
  • Frontend Mobile: React Native v0.62 (sử dụng React Native CLI), React Navigation v4.x, WebRTC Native Module.
  • Frontend Dashboard: ReactJS v16.13, Redux, Ant Design.
  • Database: PostgreSQL v12.x (Hỗ trợ cấu trúc quan hệ chặt chẽ, tối ưu truy vấn JSON và chuẩn hóa quan hệ).
  • Hạ tầng viễn thông & Đẩy tin: WebRTC (Mesh Networking cho 1-1 Call), Google Firebase Cloud Messaging (FCM).

2. Thiết kế Cơ sở dữ liệu (Database Schema)

Hệ thống được chuẩn hóa ở dạng 3NF với 5 thực thể chính:

-- 1. Bảng User: Lưu trữ thông tin bệnh nhân, bác sĩ và quản trị viên
CREATE TABLE "users" (
    "id" VARCHAR PRIMARY KEY,
    "account" VARCHAR(50) UNIQUE NOT NULL,
    "password" VARCHAR(255) NOT NULL,
    "fullname" VARCHAR(100) NOT NULL,
    "email" VARCHAR(100) UNIQUE NOT NULL,
    "phone" VARCHAR(20),
    "avatar" VARCHAR(255),
    "gender" VARCHAR(10),
    "birthday" TIMESTAMP,
    "address" VARCHAR(255),
    "city" VARCHAR(100),
    "introduction" TEXT,
    "history" TEXT,
    "typeOfPlaceWork" VARCHAR(100),
    "roleId" INT NOT NULL DEFAULT 1, -- 1: Patient, 2: Doctor, 3: Admin
    "status" VARCHAR(20) DEFAULT 'ACTIVE',
    "createdAt" TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    "updatedAt" TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    "deleteAt" TIMESTAMP
);

-- 2. Bảng Room: Quản lý phiên hội thoại giữa Bác sĩ và Bệnh nhân
CREATE TABLE "rooms" (
    "id" VARCHAR PRIMARY KEY,
    "senderId" VARCHAR REFERENCES "users"("id"),
    "recieverId" VARCHAR REFERENCES "users"("id"),
    "portal" VARCHAR(50),
    "createdAt" TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    "updatedAt" TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    "deleteAt" TIMESTAMP
);

-- 3. Bảng Message: Lưu trữ tin nhắn trao đổi
CREATE TABLE "messages" (
    "id" VARCHAR PRIMARY KEY,
    "senderId" VARCHAR REFERENCES "users"("id"),
    "recieverId" VARCHAR REFERENCES "users"("id"),
    "room" VARCHAR REFERENCES "rooms"("id"),
    "content" TEXT NOT NULL,
    "code" VARCHAR(50),
    "createdAt" TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    "updatedAt" TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    "deleteAt" TIMESTAMP
);

-- 4. Bảng CallHistory: Ghi nhận nhật ký cuộc gọi video
CREATE TABLE "call_histories" (
    "id" VARCHAR PRIMARY KEY,
    "senderId" VARCHAR REFERENCES "users"("id"),
    "recieverId" VARCHAR REFERENCES "users"("id"),
    "room" INT,
    "callduration" VARCHAR(30),
    "callType" VARCHAR(20),
    "amount" VARCHAR(50),
    "code" VARCHAR(50),
    "createdAt" TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    "updatedAt" TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    "deleteAt" TIMESTAMP
);

-- 5. Bảng Transaction: Theo dõi biến động số dư và viện phí
CREATE TABLE "transactions" (
    "id" VARCHAR PRIMARY KEY,
    "senderId" VARCHAR REFERENCES "users"("id"),
    "recieverId" VARCHAR REFERENCES "users"("id"),
    "portal" VARCHAR(50),
    "amount" INT NOT NULL,
    "createdAt" TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    "updatedAt" TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    "deleteAt" TIMESTAMP
);

3. Thiết kế Giao diện lập trình ứng dụng (RESTful API Specification)

  • POST /api/v1/auth/login: Xác thực tài khoản, trả về JWT Payload chứa userIdroleId.
  • GET /api/v1/doctors: Truy vấn danh sách bác sĩ với bộ lọc theo city, typeOfPlaceWork và trạng thái hoạt động.
  • POST /api/v1/chat/send-message: Khởi tạo và lưu trữ tin nhắn văn bản vào PostgreSQL.
  • POST /api/v1/calls/initiate: Khởi tạo phiên gọi, cấp phát Room ID và bắn tín hiệu FCM tới thiết bị nhận.
  • GET /api/v1/admin/users: Quản lý danh sách người dùng dành riêng cho phân quyền Quản trị viên (Role 3).

Phương pháp luận phát triển (Methodology)

Dự án áp dụng quy trình phát triển phần mềm linh hoạt (Agile Scrum) kéo dài trong 4 tháng (01/04/2020 – 01/08/2020) với 4 giai đoạn chính:

[Khảo sát & Lập đặc tả] -> [Thiết kế DB & Kiến trúc API] -> [Phát triển Core Realtime] -> [Kiểm thử & UAT]
    (01/04 - 01/05)               (02/05 - 01/06)                   (02/06 - 20/07)          (21/07 - 01/08)
  1. Sprint 1 (01/04/2020 - 01/05/2020): Nghiên cứu công nghệ Node.js, WebRTC, React Native; khảo sát ứng dụng UMC và TWG; phân tích yêu cầu nghiệp vụ.
  2. Sprint 2 (02/05/2020 - 01/06/2020): Xây dựng sơ đồ Use Case, Sequence Diagram cho các luồng Gọi/Chat/Xác thực; thiết kế lược đồ quan hệ PostgreSQL và thiết kế giao diện UI trên Figma.
  3. Sprint 3 (02/06/2020 - 20/07/2020): Xây dựng API ExpressJS với TypeORM; tích hợp WebRTC Signaling qua Socket.io; lập trình giao diện React Native và React Admin Portal.
  4. Sprint 4 (21/07/2020 - 01/08/2020): Thực hiện Unit Test, tích hợp kiểm thử tải hệ thống, đóng gói ứng dụng Android APK và hoàn thiện tài liệu luận văn.

Triển khai và kết quả (Implementation & Results)

Quy trình phát triển kỹ thuật

1. Cơ chế xác thực Token Interceptor trong NodeJS

Hệ thống sử dụng Json Web Token (JWT) được ký bằng giải thuật HMAC-SHA256. Mọi yêu cầu từ Client gửi lên đều phải đi qua Middleware để giải mã và kiểm tra quyền:

// Middleware xác thực JWT trên máy chủ ExpressJS
const jwt = require('jsonwebtoken');

const authInterceptor = (req, res, next) => {
    const authHeader = req.headers['authorization'];
    const token = authHeader && authHeader.split(' ')[1];

    if (!token) {
        return res.status(401).json({ success: false, message: 'Truy cập bị từ chối: Thiếu Token xác thực' });
    }

    jwt.verify(token, process.env.JWT_SECRET_KEY, (err, decodedUser) => {
        if (err) {
            return res.status(403).json({ success: false, message: 'Token không hợp lệ hoặc đã hết hạn' });
        }
        req.user = decodedUser;
        next();
    });
};

module.exports = authInterceptor;

2. Cơ chế thiết lập cuộc gọi WebRTC qua Socket.io Signaling

Quá trình bắt tay kết nối P2P giữa Bệnh nhân và Bác sĩ được quản lý bởi máy chủ tín hiệu (Signaling Server):

// Quản lý luồng tín hiệu WebRTC trên Socket.io Server
io.on('connection', (socket) => {
    // Đăng ký định danh thiết bị vào kênh riêng
    socket.on('join-room', (roomId, userId) => {
        socket.join(roomId);
        socket.to(roomId).broadcast.emit('user-connected', userId);
    });

    // Chuyển tiếp Session Description Protocol (SDP) Offer
    socket.on('call-user', ({ userToCall, signalData, from, name }) => {
        io.to(userToCall).emit('call-made', { signal: signalData, from, name });
    });

    // Chuyển tiếp SDP Answer khi bác sĩ chấp nhận cuộc gọi
    socket.on('make-answer', ({ to, signal }) => {
        io.to(to).emit('answer-made', { signal });
    });

    // Trao đổi ICE Candidates để vượt NAT/Firewall
    socket.on('ice-candidate', ({ target, candidate }) => {
        io.to(target).emit('ice-candidate-received', candidate);
    });
});

Kiểm thử và đánh giá hiệu năng (Testing & Benchmarks)

Hệ thống đã trải qua quá trình kiểm thử tự động với Jest cho các module logic và kiểm thử hiệu năng thông qua công cụ Apache Bench.

+--------------------------------------------------------------------+
|               KẾT QUẢ KIỂM THỬ TẢI HỆ THỐNG (APACHE BENCH)         |
+--------------------------------------------------------------------+
| Metric                          | Đo đạc thực tế  | Tiêu chuẩn mục tiêu |
| Phản hồi API Auth/Users         | 48 ms           | < 150 ms          |
| Phản hồi truy vấn danh sách BS | 62 ms           | < 200 ms          |
| Thiết lập phiên WebRTC Call     | 210 ms          | < 500 ms          |
| Tỷ lệ chuyển tiếp gói tin chat  | 100% (< 15ms)   | 99.9% (< 50ms)    |
| Tải đồng thời không lỗi (RPS)   | 1,250 req/sec   | > 500 req/sec     |
+--------------------------------------------------------------------+

Bảng kết quả kiểm thử các kịch bản chức năng chính

Mã kiểm thử Kịch bản kiểm thử Dữ liệu đầu vào Kết quả mong đợi Trạng thái
TC_AUTH_01 Đăng nhập tài khoản Bác sĩ Số điện thoại & Mật khẩu đúng Trả về JWT Token, chuyển vào Dashboard Đạt (Pass)
TC_CALL_02 Bệnh nhân gọi video cho Bác sĩ Bấm nút Gọi trên profile BS Kích hoạt FCM, mở màn hình WebRTC Đạt (Pass)
TC_CHAT_03 Gửi tin nhắn có ký tự đặc biệt Ký tự Unicode và Text dài Tin nhắn lưu vào PostgreSQL, hiển thị ngay Đạt (Pass)
TC_ADMIN_04 Khóa tài khoản người dùng Chọn người dùng, đổi status Tài khoản bị ngắt kết nối lập tức Đạt (Pass)

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

Ứng dụng di động trên nền React Native hoạt động ổn định trên các thiết bị Android từ phiên bản 6.0 trở lên. Quá trình stream âm thanh và hình ảnh duy trì độ phân giải 720p ổn định ở tốc độ 30 khung hình/giây (FPS) trên đường truyền mạng 4G thông thường. Giao diện quản trị Admin trên nền Web hỗ trợ trực quan hóa dữ liệu người dùng, phân tích biến động phiên truy cập theo thời gian thực.


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

  1. Tối ưu hóa băng thông nhờ kiến trúc Hybrid WebRTC/Socket.io: Thay vì dẫn toàn bộ luồng truyền thông đa phương tiện qua máy chủ trung gian (làm tăng chi phí máy chủ và băng thông), hệ thống sử dụng máy chủ Node.js chỉ cho mục đích Signaling và trao đổi ICE Candidates. Khi kết nối được thiết lập, luồng Video/Audio đi trực tiếp dạng Peer-to-Peer, giúp giảm hơn 85% tải lưu lượng media cho máy chủ trung tâm.
  2. Cơ chế đánh thức ứng dụng nền (Background Wake-up) qua FCM: Giải quyết triệt để vấn đề hệ điều hành di động tự động tắt luồng ngầm của React Native khi tắt màn hình. Khi có cuộc gọi đến, Server gửi tín hiệu High-Priority Data Message qua Firebase, kích hoạt Activity nhận cuộc gọi tức thì trên máy Bác sĩ.
  3. Độc lập nền tảng nhờ React Native: Tái sử dụng hơn 85% mã nguồn chung giữa các nền tảng di động, giúp rút ngắn thời gian phát triển so với việc viết riêng rẽ Native Android (Java/Kotlin) và iOS (Swift).

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

Kịch bản ứng dụng thực tế

  • Tư vấn và theo dõi sức khỏe tại nhà: Bệnh nhân mắc các bệnh mãn tính (tiểu đường, huyết áp) định kỳ gọi video với bác sĩ phụ trách để điều chỉnh phác đồ mà không cần đến bệnh viện.
  • Sàng lọc ban đầu: Bệnh nhân ngoại tỉnh dễ dàng trao đổi hình ảnh lâm sàng với bác sĩ chuyên khoa tuyến trên để nhận định hướng điều trị đúng đắn.
  • Đặt lịch xét nghiệm tận nơi: Giúp các phòng xét nghiệm tư nhân tiếp cận nguồn khách hàng có nhu cầu lấy mẫu máu, mẫu dịch tại nhà.
[Bệnh nhân đặt lịch trên App]
             │
             ▼
[Hệ thống thông báo Bác sĩ]
             │
             ▼
[Thiết lập cuộc gọi WebRTC HD 1-1]
             │
             ▼
[Bác sĩ tư vấn & Ghi nhận kết quả]
             │
             ▼
[Lưu trữ lịch sử khám vào PostgreSQL]

Yêu cầu triển khai hạ tầng (Deployment Specification)

  • Phần cứng máy chủ tối thiểu: 2 vCPU, 4GB RAM, 50GB SSD Storage.
  • Hệ điều hành: Ubuntu Server 20.04 LTS.
  • Môi trường chạy: Node.js v14+, PostgreSQL 12+, Reverse Proxy Nginx với cấu hình SSL/TLS (HTTPS và WSS) bắt buộc để kích hoạt WebRTC Media Devices API trên thiết bị di động.

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

Hạn chế kỹ thuật hiện tại

  • Phụ thuộc vào NAT/Firewall: Ở các hệ thống mạng doanh nghiệp có tường lửa đa tầng (Symmetric NAT), việc kết nối P2P trực tiếp đôi khi gặp gián đoạn nếu thiếu máy chủ trung chuyển TURN Server độc lập.
  • Chưa tích hợp tự động hóa thanh toán: Hệ thống mới dừng lại ở việc quản lý và ghi nhận lịch sử giao dịch vào cơ sở dữ liệu (Transaction Table), chưa liên kết trực tiếp API các cổng thanh toán như VNPay, MoMo hay ZaloPay.

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

  • Bổ sung máy chủ Coturn (STUN/TURN) chuyên dụng để nâng tỷ lệ kết nối P2P thành công lên 99.9% trên mọi điều kiện mạng phức tạp.
  • Ứng dụng mô hình Trí tuệ nhân tạo (AI/Computer Vision) để hỗ trợ quét toa thuốc và phân tích chỉ số xét nghiệm tự động trước khi chuyển tới bác sĩ.
  • Xây dựng phân hệ hồ sơ bệnh án điện tử chuẩn hóa theo chuẩn y tế quốc tế HL7/FHIR.

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

  • Sinh viên & Nghiên cứu sinh ngành CNTT/KTPM: Tài liệu tham khảo hoàn chỉnh về kiến trúc ứng dụng Realtime, cách tích hợp WebRTC và Socket.io trên React Native.
  • Lập trình viên phát triển ứng dụng di động: Nắm vững mô hình kiến trúc kết nối Database qua TypeORM và thiết kế luồng JWT Interceptor chuẩn bảo mật.
  • Cơ sở y tế & Phòng khám đa khoa: Mô hình tham khảo chi phí thấp để triển khai phòng khám số (Digital Clinic), gia tăng hiệu suất tiếp cận bệnh nhân.

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

1. Yêu cầu kỹ thuật tối thiểu để chạy ứng dụng trên điện thoại di động là gì?

Thiết bị di động cần chạy hệ điều hành Android từ phiên bản 6.0 (Marshmallow) trở lên, có camera trước/sau, micro hoạt động bình thường và kết nối mạng Internet tối thiểu 3G hoặc Wi-Fi với tốc độ băng thông tối thiểu 1.5 Mbps cho cuộc gọi chất lượng 720p.

2. Dữ liệu hình ảnh và cuộc gọi video giữa bác sĩ và bệnh nhân có bị lưu trữ tại máy chủ không?

Không. Hệ thống sử dụng giao thức WebRTC truyền dữ liệu trực tiếp Peer-to-Peer theo chuẩn mã hóa SRTP (Secure Real-time Transport Protocol). Máy chủ trung tâm không giải mã hay lưu trữ luồng video/audio mà chỉ lưu thông tin nhật ký cuộc gọi (thời lượng, thời gian bắt đầu, người tham gia).

3. Hệ thống xử lý tình huống mất mạng đột ngột trong khi đang gọi video như thế nào?

Socket.io tích hợp cơ chế tự động kết nối lại (Auto-reconnect). Nếu mất mạng dưới 10 giây, phiên kết nối sẽ tự khôi phục ICE Candidate. Nếu vượt quá thời gian chờ, hệ thống sẽ ngắt phòng, lưu nhật ký cuộc gọi tới thời điểm đứt kết nối và chuyển người dùng về màn hình tin nhắn kèm thông báo lỗi.

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

Hệ thống được xây dựng 100% dựa trên các công nghệ nguồn mở miễn phí bản quyền: Node.js, React Native, PostgreSQL, TypeORM và WebRTC, giúp tối ưu hóa chi phí đầu tư ban đầu cho các đơn vị y tế vừa và nhỏ.

5. Làm thế nào để quản trị viên kiểm duyệt bằng cấp và danh tính của Bác sĩ?

Quản trị viên đăng nhập vào React Web Dashboard (roleId = 3), truy cập module Quản lý người dùng, xem xét các tệp tin đính kèm giới thiệu chuyên môn (introduction, typeOfPlaceWork) và đổi trạng thái tài khoản Bác sĩ sang ACTIVE để cho phép nhận cuộc gọi.


Kết luận

Đồ án tốt nghiệp "Xây dựng App khám bệnh online với React Native và NodeJS" của tác giả Phan Hoàng Nhật Linh đã hoàn thành toàn diện các mục tiêu đề ra cả về mặt lý thuyết lẫn sản phẩm thực nghiệm. Bằng cách kết hợp linh hoạt sức mạnh xử lý I/O không đồng bộ của Node.js, hiệu năng cơ sở dữ liệu mạnh mẽ của PostgreSQL qua TypeORM, cùng khả năng truyền thông trực tuyến của WebRTC và Socket.io trên nền tảng React Native, đề tài đã cung cấp một giải pháp chuyển đổi số y tế thiết thực, có khả năng ứng dụng cao vào thực tế đời sống xã hội.