1. Trang chủ
  2. » Luận Văn - Báo Cáo

Xây dựng hệ thống video conference chẩn Đoán bệnh lý mất trí nhớ trên nền tảng web

72 0 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Xây Dựng Hệ Thống Video Conference Chẩn Đoán Bệnh Lý Mất Trí Nhớ Trên Nền Tảng Web
Tác giả Phùng Bá Công
Người hướng dẫn TS. Trần Đức Minh
Trường học Trường Đại Học Phenikaa
Chuyên ngành Công Nghệ Thông Tin
Thể loại báo cáo đồ án tốt nghiệp
Năm xuất bản 2024
Thành phố Hà Nội
Định dạng
Số trang 72
Dung lượng 1,96 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Giải pháp bao gồm việc triển khai một hệ thống video conference kết nối trực tuyến cho phép bác sĩ và bệnh nhân tương tác dễ dàng thông qua video, từ đó giúp bác sĩ thực hiện các b

Trang 1

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC PHENIKAA

BÁO CÁO ĐỒ ÁN TỐT NGHIỆP

XÂY DỰNG HỆ THỐNG VIDEO CONFERENCE CHẨN ĐOÁN BỆNH LÝ MẤT TRÍ NHỚ

TRÊN NỀN TẢNG WEB

Sinh viên: Phùng Bá Công

Giảng viên hướng dẫn: TS Trần Đức Minh

Copies for internal use only in Phenikaa University

Trang 2

Họ và tên sinh viên:

- Phùng Bá Công

Điện thoại liên lạc: 0961177815 Email: 20010940@gmail.com Lớp: K14 – CNTT VJ Hệ đào tạo: Chính quy

Tôi cam kết đồ án này là công trình nghiên cứu của bản thân tôi Các kết quả nêu trong đồ án là trung thực, là thành quả của riêng tôi, không sao chép theo bất kỳ công trình nào khác Tất cả những tham khảo trong đồ án – bao gồm hình ảnh, bảng biểu,

số liệu, và các câu từ trích dẫn – đều được ghi rõ ràng và đầy đủ nguồn gốc trong danh mục tài liệu tham khảo Tôi xin hoàn toàn chịu trách nhiệm với dù chỉ một sao chép vi phạm quy chế của nhà trường

Hà Nội, ngày 29 tháng 8 năm 2024

Tác giả đồ án

Họ và tên sinh viên

Lời cam kết

Copies for internal use only in Phenikaa University

Trang 3

Trước hết, em xin gửi lời cảm ơn chân thành và sâu sắc nhất đến quý thầy cô tại trường Đại học Phenikaa, đặc biệt là các thầy cô trong Khoa Công nghệ thông tin tại trường , đã tận tình giảng dạy, truyền đạt kiến thức và kinh nghiệm quý báu cho

em trong suốt quá trình học tập tại trường

Em xin bày tỏ lòng biết ơn đến thầy Trần Đức Minh người đã hướng dẫn, giúp

đỡ và động viên em trong suốt quá trình thực hiện đồ án tốt nghiệp Sự chỉ dẫn tận tình và những góp ý quý báu của thầy đã giúp em hoàn thành tốt đồ án tốt nghiệp này Không chỉ trong giai đoạn thực hiện đồ án mà còn ở trong các môn học dưới sự giảng dạy của thầy Thầy đã giúp đỡ, định hướng cũng như đưa ra những lời khuyên hữu ích, từ đó em giúp đề ra hướng đi của mình và để có thể đạt được kết quả mà mình mong muốn trong 4 năm học tập tại trường

Em cũng xin chân thành cảm ơn các anh chị và các bạn trong cùng ngành Công nghệ thông tin đã luôn sẵn lòng hỗ trợ, chia sẻ kiến thức và kinh nghiệm, giúp em có được những điều kiện thuận lợi để em hoàn thành đồ án tốt nghiệp này

Bên cạnh đó, em xin gửi lời cảm ơn đến gia đình và bạn bè đã luôn ở bên, động viên

là chỗ dựa tinh thần vững chắc để em có thể tập trung hoàn thành nhiệm vụ học tập của mình

Cuối cùng, em xin chân thành cảm ơn tất cả mọi người đã giúp đỡ và ủng hộ

em trong suốt quá trình học tập và thực hiện đồ án này Sự hỗ trợ và động viên từ mọi người là nguồn động lực to lớn để em hoàn thành tốt đồ án và đạt được những kết quả đáng khích lệ

Em xin chân thành cảm ơn!

Lời cảm ơn

Copies for internal use only in Phenikaa University

Trang 4

Trong bối cảnh nhu cầu ngày càng cao về việc đánh giá và điều trị bệnh lý mất trí nhớ, việc tiếp cận bác sĩ qua hình thức trực tuyến đang trở nên cần thiết hơn bao giờ hết Hiện tại, bệnh nhân và gia đình thường phải đối mặt với nhiều khó khăn như thời gian chờ đợi lâu và các thủ tục phức tạp tại các cơ sở y tế chuyên khoa Để khắc phục những hạn chế này, hệ thống kết nối video trực tuyến giữa bác sĩ và bệnh nhân được đề xuất nhằm giảm bớt khoảng cách địa lý và thời gian, tạo điều kiện thuận lợi cho việc khám và đánh giá bệnh tình

Giải pháp bao gồm việc triển khai một hệ thống video conference kết nối trực tuyến cho phép bác sĩ và bệnh nhân tương tác dễ dàng thông qua video, từ đó giúp bác sĩ thực hiện các bài kiểm tra và đánh giá bệnh nhân hiệu quả hơn Hệ thống được thiết kế với tính năng quản lý người dùng, quản lý lịch sử khám và kiểm tra, từ đó đảm bảo hiệu suất và tính bảo trì

Trong tương lai, hệ thống sẽ tiếp tục được mở rộng với các tính năng như tăng cường nhiều bài kiểm tra khác nhau, tích hợp trí tuệ nhân tạo (AI) để hỗ trợ bác sĩ trong việc chẩn đoán và đưa ra các khuyến nghị điều trị Ngoài ra, việc cải thiện chất lượng video và âm thanh nhằm tối ưu hóa trải nghiệm người dùng cũng là một định hướng quan trọng Hệ thống sẽ được mở rộng khả năng tương thích với nhiều thiết bị khác nhau, từ máy tính để bàn đến thiết bị di động Bảo mật dữ liệu sẽ được tăng cường để bảo vệ thông tin nhạy cảm của bệnh nhân và bác sĩ Cuối cùng, khả năng tích hợp với các hệ thống quản lý bệnh viện và hồ sơ y tế, kết hợp thêm các biểu đồ phân tích tình trạng của bệnh nhân qua các lần thăm khám

Tóm tắt

Copies for internal use only in Phenikaa University

Trang 5

Lời cam kết ii

Lời cảm ơn iii

Tóm tắt iv

Mục lục v

Danh mục hình vẽ viii

Danh mục bảng x

Danh mục các từ viết tắt xi

Danh mục thuật ngữ xiii

Chương 1 Giới thiệu đề tài 1

1.1 Đặt vấn đề 1

1.2 Mục tiêu và phạm vi đề tài 1

1.3 Định hướng giải pháp 3

Chương 2 Kiến thức cơ sở 4

2.1 Phương pháp đánh giá chứng mất trí nhớ 4

2.2 Tổng quan kiến trúc của hệ thống 7

2.2.1 Kiến trúc chính của hệ thống 7

2.2.2 Các kiến trúc còn lại của hệ thống 9

2.3 Công nghệ sử dụng chính 10

Mục lục

Copies for internal use only in Phenikaa University

Trang 6

2.3.1 Công nghệ WebRTC 10

2.3.2 STUN Server 12

2.3.3 TURN Server 13

2.4 Công nghệ sử dụng còn lại 14

2.4.1 ViteJS 14

2.4.2 ReactJS 14

2.4.3 TypeScript 15

2.4.4 Ant Design 16

2.4.5 TailwindCSS 16

2.4.6 NodeJS 17

2.4.7 Express 17

2.4.8 WebSocket 18

2.4.9 PeerJS 18

2.4.10 MongoDB 19

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

3.1 Khảo sát hiện trạng 20

3.2 Tổng quan chức năng 21

3.2.1 Biểu đồ use case tổng quan 21

3.2.2 Biểu đồ use case quản lý người dùng 23

3.2.3 Biểu đồ use case quản lý lịch sử cuộc gọi 24

3.2.4 Biểu đồ use case quản lý các bài kiểm tra 25

3.3 Đặc tả chức năng 26

3.3.1 Đặc tả use case đăng nhập 26

3.3.2 Đặc tả use case cập nhật thông tin người dùng 28 Copies for internal use only in Phenikaa University

Trang 7

3.3.3 Đặc tả use case tham gia cuộc gọi của bác sĩ 29

3.3.4 Đặc tả use case tham gia cuộc gọi của bệnh nhân 30

3.3.5 Đặc tả use case thực hiện bài kiểm tra cho bệnh nhân 31

3.4 Yêu cầu phi chức năng 32

3.5 Thiết kế chi tiết 33

3.5.1 Thiết kế giao diện 33

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

3.5.3 Thư viện và công cụ sử dụng 40

3.6 Thiết kế kiến trúc 41

3.6.1 Lựa chọn kiến trúc phần mềm 41

3.6.2 Áp dụng mô hình MVCS vào hệ thống 41

Chương 4 Chương trình thực nghiệm 45

4.1 Thực nghiệm chức năng đăng nhập 45

4.2 Thực nghiệm chức năng thay đổi thông tin người dùng 48

4.3 Thực nghiệm chức năng kết nối video của bác sĩ và bệnh nhân 51

4.4 Thực nghiệm chức năng thực hiện bài kiểm tra của bác sĩ cho bệnh nhân 54

Chương 5 Kết luận và hướng phát triển 57

5.1 Kết luận 57

5.2 Hướng phát triển 58

Tài liệu tham khảo 59 Copies for internal use only in Phenikaa University

Trang 8

Hình 2.1 Tổng quan kiến trúc của hệ thống 7

Hình 3.1 Biểu đồ use case tổng quan 21

Hình 3.2 Biểu đồ use case quản lý người dùng 23

Hình 3.3 Biểu đồ use case quản lý lịch sử cuộc gọi 24

Hình 3.4 Biểu đồ use case quản lý các bài kiểm tra 25

Hình 3.5 Biểu đồ tuần tự chức năng đăng nhập 26

Hình 3.6 Biểu đồ tuần tự chức năng cập nhật thông tin người dùng 28

Hình 3.7 Biểu đồ tuần tự chức năng tham gia cuộc gọi của bác sĩ 29

Hình 3.8 Biểu đồ tuần tự chức năng tham gia cuộc gọi của bệnh nhân 30

Hình 3.9 Biểu đồ tuần tự chức năng kiểm tra cho bệnh nhân 31

Hình 3.10 Thiết kế giao diện của admin 36

Hình 3.11 Thiết kế giao diện của bác sĩ khi thực hiện cuộc gọi với bệnh nhân 36

Hình 3.12 Thiết kế giao diện của bác sĩ khi thực hiện bài kiểm tra và ghi hình 37

Hình 3.13 Giao diện của bệnh nhân khi thực hiện cuộc gọi với bác sĩ 37

Hình 3.14 Biểu đồ thực thể liên kết 38

Hình 3.15 Mô hình MVCS 42

Hình 3.16 Áp dụng mô hình MVCS vào hệ thống 42

Hình 3.17 Model (M) áp dụng vào hệ thống 43

Hình 3.18 Controller (C) áp dụng vào hệ thống 44

Hình 3.19 Service (S) áp dụng vào hệ thống 44

Danh mục hình vẽ

Copies for internal use only in Phenikaa University

Trang 9

Hình 4.1 Thực nghiệm API đăng nhập 46

Hình 4.2 Giao diện khi người dùng nhập thiếu thông tin hoặc sai định dạng email 47 Hình 4.3 Giao diện khi người dùng đăng nhập sai thông tin tài khoản 47

Hình 4.4 Giao diện khi người dùng đăng nhập thành công 48

Hình 4.5 Thực nghiệm API thay đổi thông tin người dùng 49

Hình 4.6 Thay đổi thông tin người dùng trên giao diện 50

Hình 4.7 Giao diệnn người dùng nhập sai định dạng khi cập nhật thông tin 50

Hình 4.8 Giao diện kết nối video và audio của bác sĩ và bệnh nhân 52

Hình 4.9 Giao diện của bệnh nhân khi bác sĩ kết thúc cuộc gọi 53

Hình 4.10 Giao hiện khi bác sĩ kết thúc cuộc gọi 53

Hình 4.11 Giao diện bác sĩ thực hiện bài kiểm tra cho bệnh nhân 55

Hình 4.12 Tương tác các câu trả lời của bác sĩ và bệnh nhân trên giao diện 55

Hình 4.13 Giao diện khi bệnh nhân hoàn thành bài kiểm tra 56

Copies for internal use only in Phenikaa University

Trang 10

Bảng 3.1 Danh sách thư viện và công cụ sử dụng 40

Bảng 4.1 Thực nghiệm chức năng đăng nhập 45

Bảng 4.2 Thực nghiệm chức năng thay đổi thông tin người dùng 48

Bảng 4.3 Thực nghiệm chức năng kết nối video của bác sĩ và bệnh nhân 51

Bảng 4.4 Thực nghiệm chức năng bác sĩ cho bệnh nhân thực hiện bài kiểm tra 54

Danh mục bảng

Copies for internal use only in Phenikaa University

Trang 11

MVVM Mô hình Model-View-ViewModel

MVCS Mô hình Model-View-Controller-Service

CNTT Công nghệ thông tin

CSDL Cơ sở dữ liệu

I/O

input/output Đầu vào/Đầu ra

Danh mục các từ viết tắt

Copies for internal use only in Phenikaa University

Trang 12

HTTP

HyperText Transfer Protocol Giao thức truyền tải siêu văn bản

ERD

Entity Relationship Diagrams

Sơ đồ thực thể liên kết

RDBMS

Relational Database Management System

Hệ quản trị cơ sỡ dữ liệu quan hệ

P2P

Peer-to-Peer

Mô hình kết nối ngang hàng

DOM

Document Object Model

Mô hình các đối tượng tài liệu

STUN

Simple Traversal of UDP through NAT Một giao thức mạng cho phép các máy khách tìm ra địa chỉ công khai của mình

TURN

Traversal Using Relays around NAT Một giao thức hỗ trợ truyền tải các trình biên dịch địa chỉ mạng hoặc tường lửa cho các ứng dụng đa phương tiện

Copies for internal use only in Phenikaa University

Trang 13

STUN server Máy chủ hỗ trợ NAT traversal

TURN server Máy chủ chuyển tiếp lưu lượng mạng

Peer-to-Peer Mô hình kết nối trực tiếp giữa hai thiết bị ngang hàng

mà không thông qua máy chủ

Candidate Địa chỉ mạng tiềm năng mà các peer có thể sử dụng để

Trang 14

1.1 Đặt vấn đề

Trong bối cảnh dân số già hóa ngày càng gia tăng, bệnh lý mất trí nhớ đang trở thành một vấn đề y tế nghiêm trọng Đây là một tình trạng bệnh lý không chỉ ảnh hưởng đến sức khỏe tâm thần và thể chất của bệnh nhân mà còn tạo gánh nặng lớn cho gia đình và hệ thống y tế Hiện nay, quá trình chẩn đoán và điều trị bệnh lý mất trí nhớ thường yêu cầu bệnh nhân và người thân phải đến các cơ sở y tế chuyên khoa, dẫn đến nhiều khó khăn như thời gian chờ đợi lâu, chi phí cao và thủ tục phức tạp

Việc không thể tiếp cận dễ dàng và kịp thời các dịch vụ y tế chuyên sâu làm tăng nguy cơ bệnh lý trở nên nghiêm trọng hơn và giảm hiệu quả điều trị Nếu vấn đề này không được giải quyết, nó sẽ tiếp tục gây ảnh hưởng tiêu cực đến chất lượng cuộc sống của người bệnh và có thể trở thành gánh nặng cho gia đình cũng như hệ thống

y tế Hơn nữa, việc giải quyết vấn đề này không chỉ mang lại lợi ích trực tiếp cho các bệnh nhân mà còn có thể mở rộng ứng dụng vào các lĩnh vực khác như chăm sóc sức khỏe từ xa cho các bệnh lý khác, đồng thời cải thiện hệ thống chăm sóc y tế toàn diện hơn

1.2 Mục tiêu và phạm vi đề tài

Trong tình trạng bệnh nhân và người thân phải đến các cơ sở y tế chuyên khoa

để khám và điều trị, đặc biết là đối với những bệnh nhân bị mắc bệnh suy giảm trí nhớ, dẫn đến nhiều khó khăn như thời gian chờ đợi lâu, chi phí cao và thủ tục phức tạp Bệnh nhân và gia đình cần một giải pháp giúp giảm bớt gánh nặng từ việc di chuyển đến cơ sở y tế, đồng thời cung cấp dịch vụ khám và tư vấn hiệu quả hơn Các sản phẩm hiện tại chủ yếu tập trung vào việc cung cấp dịch vụ video call cho mục đích chung, nhưng chưa đặc biệt tối ưu hóa cho các nhu cầu của bệnh nhân mắc bệnh

Chương 1 Giới thiệu đề tài

Copies for internal use only in Phenikaa University

Trang 15

lý mất trí nhớ nhằm hỗ trợ các chức năng đánh giá đặc thù và tương tác từ xa Các bác sĩ cũng cần một công cụ hỗ trợ để thực hiện chẩn đoán từ xa, theo dõi tiến trình điều trị, và giao tiếp trực tiếp với bệnh nhân để đưa ra các phương án điều trị phù hợp

Qua quá trình phân tích các nhu cầu người dùng, có thể thấy rằng hiện tại chưa

có nhiều giải pháp phù hợp để đáp ứng yêu cầu chẩn đoán từ xa một cách hiệu quả Các hệ thống hiện tại thường chưa chú trọng đến việc cung cấp dịch vụ video call trực tuyến trong lĩnh vực y tế, đặc biệt là trong những lĩnh vực chuyên khoa và đặc thù như bệnh lý mất trí nhớ Điều này dẫn đến sự thiếu hụt trong việc tiếp cận dịch

vụ y tế, và người dùng thường phải đối mặt với các vấn đề như thời gian chờ đợi lâu, chi phí cao, và sự phức tạp trong thủ tục

Dựa trên các phân tích và đánh giá trên, các hạn chế chính hiện tại bao gồm việc thiếu một hệ thống video conference trực tuyến sử dụng hiệu quả và tích hợp tốt với các dịch vụ y tế chuyên sâu Những hạn chế này cần được khắc phục để đáp ứng nhu cầu ngày càng cao của người dùng

Từ đó, mục tiêu của đề tài là phát triển một hệ thống video conference chuyên biệt cho việc chẩn đoán bệnh lý mất trí nhớ trên nền tảng web Hệ thống sẽ hướng đến việc cung cấp một nền tảng video conference hỗ trợ việc chẩn đoán, thực hiện các bài kiểm tra chuyên sâu và tư vấn từ xa Tạo điều kiện thuận lợi cho các bệnh nhân có thể tiếp cận dịch vụ y tế dễ dàng hơn, giảm thiểu thời gian chờ đợi và chi phí

di chuyển

Hệ thống dự kiến sẽ tạo nên đột phá trong việc cung cấp dịch vụ chẩn đoán chẩn đoán bệnh lý mất trí nhớ từ xa, mang lại sự tiện lợi và hiệu quả cho người dùng Điều này không chỉ giúp giải quyết vấn đề tiếp cận dịch vụ y tế mà còn có thể mở rộng ứng dụng vào các lĩnh vực chăm sóc sức khỏe khác trong tương lai Copies for internal use only in Phenikaa University

Trang 16

1.3 Định hướng giải pháp

Định hướng giải pháp được chọn là xây dựng một hệ thống video conference chuyên biệt cho việc chẩn đoán bệnh lý mất trí nhớ, tận dụng các công nghệ hiện đại

để phát triển giao diện và xử lý dữ liệu Đề tài sẽ áp dụng các công nghệ bao gồm Vite, ReactJS, TypeScript và TailwindCSS cho phía client, NodeJS, PeerJS cho phía server và MongoDB cho cơ sở dữ liệu

Ở phía client, hệ thống sử dụng Vite để tối ưu hóa quy trình phát triển và xây dựng ứng dụng, ReactJS và TypeScript để xây dựng giao diện người dùng tương tác,

và TailwindCSS để tạo kiểu dáng linh hoạt Ở phía server, NodeJS và PeerJS sẽ hỗ trợ việc xây dựng tính năng, truyền tải video và âm thanh trong thời gian thực, kết nối CSDL và client, trong khi đó MongoDB sẽ được sử dụng để quản lý và lưu trữ

dữ liệu một cách hiệu quả

Qua đó, hệ thống đóng góp chính vào việc phát triển một hệ thống video conference hiệu quả, đáp ứng yêu cầu về hiệu suất, tính linh hoạt, và khả năng bảo trì

và mở rộng trong tương lai Mang lại kết quả là một trang web video conference tối

ưu hóa cho việc chẩn đoán bệnh lý mất trí nhớ, giúp cải thiện khả năng tiếp cận dịch

vụ y tế từ xa, hỗ trợ công việc chẩn đoán bệnh lý đồng thời cung cấp một giải pháp

dễ bảo trì và phát triển trong tương lai

Copies for internal use only in Phenikaa University

Trang 17

2.1 Phương pháp đánh giá chứng mất trí nhớ

Chứng mất trí nhớ (dementia) là một trong những rối loạn phổ biến ở người lớn tuổi, đặc biệt là những người trên 65 tuổi Đây là tình trạng suy giảm nghiêm trọng chức năng nhận thức, bao gồm trí nhớ, khả năng ngôn ngữ, sự chú ý và các kỹ năng tư duy khác Các dạng phổ biến của chứng mất trí nhớ bao gồm bệnh Alzheimer,

sa sút trí tuệ mạch máu, và sa sút trí tuệ liên quan đến các bệnh thần kinh khác Khi bệnh tiến triển, bệnh nhân dần mất khả năng thực hiện các hoạt động thường ngày, dẫn đến suy giảm chất lượng cuộc sống

Việc phát hiện sớm và đánh giá chính xác mức độ suy giảm nhận thức là điều cực kỳ quan trọng trong việc quản lý và điều trị chứng mất trí nhớ Để làm điều này, các bài kiểm tra đánh giá nhận thức được phát triển nhằm giúp các bác sĩ và chuyên gia đánh giá được tình trạng của bệnh nhân một cách hiệu quả Các bài kiểm tra này không chỉ giúp chẩn đoán mức độ suy giảm trí nhớ mà còn cung cấp cơ sở để theo dõi quá trình điều trị

Qua quá trình phân tích và khảo sát, phương pháp đánh giá phổ biến nhất cho chứng mất trí nhớ là phương pháp Mini-Mental State Examination (MMSE) Vì vậy trong đồ án này, MMSE được lựa chọn để đưa vào bài kiểm tra của hệ thống Phương pháp này đã được sử dụng rộng rãi trong nghiên cứu lâm sàng và thực hành y tế, nhằm cung cấp cái nhìn sâu sắc về chức năng nhận thức và khả năng ghi nhớ của bệnh nhân

MMSE (Mini-Mental State Examination)[4] là một trong những công cụ phổ biến và tiêu chuẩn để đánh giá suy giảm nhận thức và chứng mất trí nhớ MMSE bao gồm một loạt các câu hỏi và bài tập được thiết kế để kiểm tra nhiều khía cạnh khác nhau của nhận thức, bao gồm:

Chương 2 Kiến thức cơ sở

Copies for internal use only in Phenikaa University

Trang 18

Định hướng thời gian và không gian:

• Câu hỏi về thời gian: Bệnh nhân được yêu cầu trả lời các câu hỏi liên quan đến thời gian như ngày, tháng, năm, mùa và ngày trong tuần

• Câu hỏi về địa điểm: Bệnh nhân phải xác định mình đang ở đâu, bao gồm quốc gia, tỉnh/thành phố, bệnh viện hoặc địa điểm cụ thể và tầng nhà

Điểm đánh giá: Tổng cộng 10 điểm, với mỗi câu trả lời đúng được tính 1 điểm

Ghi nhớ ngay lập tức và ghi nhớ ngắn hạn:

• Ghi nhớ ngay lập tức: Bác sĩ nêu ra ba đồ vật đơn giản (ví dụ: "quả táo", "chìa khóa", "bóng") và yêu cầu bệnh nhân lặp lại ngay lập tức Mỗi từ được lặp lại đúng sẽ được tính điểm

• Ghi nhớ ngắn hạn: Sau khi thực hiện các phần kiểm tra khác, bệnh nhân được hỏi để lặp lại ba từ đã được nói trước đó nhằm đánh giá khả năng ghi nhớ ngắn hạn

Điểm đánh giá: Ghi nhớ ngay lập tức và ngắn hạn có tổng cộng 6 điểm

Ngôn ngữ và khả năng thực hiện yêu cầu:

• Gọi tên: Bệnh nhân được yêu cầu gọi tên các đồ vật quen thuộc như đồng hồ

và bút

• Thực hiện yêu cầu 3 bước: Bệnh nhân được yêu cầu làm theo một chuỗi lệnh

ba bước như "Hãy cầm giấy lên, gấp lại và đặt xuống"

• Đọc và làm theo chỉ dẫn: Bệnh nhân đọc một câu lệnh ("Nhắm mắt lại") và thực hiện hành động

Copies for internal use only in Phenikaa University

Trang 19

• Viết câu: Bệnh nhân được yêu cầu viết một câu có nghĩa, thể hiện khả năng ngôn ngữ

Điểm đánh giá: Các phần liên quan đến ngôn ngữ có tổng cộng 8 điểm

Khả năng thị giác không gian:

• Bệnh nhân được yêu cầu sao chép một hình vẽ gồm hai hình ngũ giác chồng lên nhau

Điểm đánh giá: 1 điểm nếu sao chép đúng hình vẽ

Tổng điểm: tổng cộng bài kiểm tra sẽ có tối đa 30 điểm

Dựa vào điểm số khi bệnh nhân thực hiện bài kiểm tra, bác sĩ có thể đánh giá sơ

bộ về tình trạng của bệnh nhân như sau:

• Không có suy giảm nhận thức: ≥ 24 điểm

• Suy giảm nhận thức nhẹ: 20 – 23 điểm

• Suy giảm nhận thức vừa: 14 – 19 điểm

• Suy giảm nhận thức nặng: 0 – 13 điểm

Copies for internal use only in Phenikaa University

Trang 20

2.2 Tổng quan kiến trúc của hệ thống

Không tìm thấy mục nhập nào của bảng hình minh họa.

Hình 2.1 Tổng quan kiến trúc của hệ thống

Hệ thống được xây dựng nhằm mục đích thực hiện các cuộc gọi video trực tuyến giữa các peer (người dùng) với nhau Hệ thống bao gồm nhiều thành phần chính

để đảm bảo việc kết nối và truyền tải dữ liệu âm thanh, video được diễn ra một cách hiệu quả, bao gồm các máy chủ (server) và các công nghệ mạng khác nhau Dưới đây

là giải thích về từng thành phần trong kiến trúc hệ thống:

2.2.1 Kiến trúc chính của hệ thống

Hệ thống sự dụng mô hình Peer-to-Peer (P2P)[5] P2P là một mô hình mạng phân tán trong đó các thiết bị (peer) có thể giao tiếp trực tiếp với nhau mà không cần thông qua máy chủ trung gian Thay vì dựa vào các máy chủ trung tâm để điều phối

và truyền tải dữ liệu, các peer trong mạng P2P chia sẻ tài nguyên và dữ liệu trực tiếp với nhau, giúp giảm tải cho các máy chủ và tối ưu hóa băng thông

Đặc Điểm Chính Của Mạng P2P:

Copies for internal use only in Phenikaa University

Trang 21

• Tính Phi Tập Trung: Trong mạng P2P, không có máy chủ chính hay máy chủ trung tâm điều khiển toàn bộ hệ thống Mỗi peer có thể thực hiện cả vai trò của máy khách (client) lẫn máy chủ (server) Các peer có thể gửi và nhận dữ liệu trực tiếp mà không cần đi qua một điểm trung gian nào

• Tính Phân Tán: Dữ liệu và tài nguyên được chia sẻ giữa các peer trong mạng, không tập trung vào một vị trí duy nhất Điều này giúp hệ thống có khả năng mở rộng và tránh được sự cố đơn điểm (single point of failure)

• Khả Năng Mở Rộng: Hệ thống P2P có thể mở rộng dễ dàng bằng cách thêm nhiều peer vào mạng mà không cần thay đổi kiến trúc hệ thống Khi có thêm peer mới, hệ thống có thể tăng cường khả năng truyền tải dữ liệu mà không cần phụ thuộc vào máy chủ trung tâm

• Tương Tác Trực Tiếp: Các peer tương tác với nhau trực tiếp, đặc biệt là trong các ứng dụng truyền thông thời gian thực như WebRTC Khi hai peer kết nối với nhau trong một cuộc gọi video hoặc truyền dữ liệu, dữ liệu sẽ đi trực tiếp

từ peer này sang peer kia mà không phải thông qua server trung gian Điều này giúp giảm độ trễ (latency) và cải thiện chất lượng kết nối

Lợi Ích Của Mô Hình P2P

• Bằng cách truyền dữ liệu trực tiếp giữa các peer, P2P giúp giảm lượng băng thông cần thiết trên các máy chủ trung gian

• Truyền dữ liệu trực tiếp giữa các peer giảm thiểu độ trễ, giúp cải thiện trải nghiệm của người dùng, đặc biệt là trong các ứng dụng thời gian thực như video call hoặc voice chat

• Mô hình P2P có khả năng mở rộng tốt, vì mỗi peer có thể đồng thời tham gia nhiều kết nối và chia sẻ tài nguyên với các peer khác mà không cần phụ thuộc vào máy chủ

Thách Thức Của Mô Hình P2P

• Một trong những thách thức lớn nhất trong mạng P2P là việc vượt qua các NAT và firewall để giúp các peer có thể kết nối trực tiếp với nhau STUN và TURN server là những giải pháp giúp giải quyết vấn đề này

Copies for internal use only in Phenikaa University

Trang 22

• Vì các peer giao tiếp trực tiếp với nhau, vấn đề bảo mật và quyền riêng tư phải được đảm bảo Cần phải mã hóa dữ liệu và thiết lập các biện pháp bảo vệ để tránh bị tấn công từ bên ngoài

• Trong mạng P2P, mỗi peer có thể rời mạng bất cứ lúc nào Điều này có thể gây ra sự gián đoạn trong các kết nối hoặc mất dữ liệu nếu không có cơ chế

dự phòng

Mạng P2P là một giải pháp mạnh mẽ và hiệu quả cho việc truyền dữ liệu giữa các peer, đặc biệt là trong các ứng dụng thời gian thực như WebRTC Mô hình này giúp giảm tải cho các máy chủ, tối ưu hóa băng thông và giảm độ trễ, nhưng cũng đặt ra các thách thức về NAT traversal và bảo mật

Trong WebRTC, P2P là nền tảng cơ bản để thực hiện các cuộc gọi video, truyền tải dữ liệu giữa các peer với nhau một cách trực tiếp Các bước cơ bản trong việc thiết lập kết nối P2P giữa hai peer trong WebRTC sẽ được trình bày ở phần sau

2.2.2 Các kiến trúc còn lại của hệ thống

Node.js (Backend Server): Node.js đóng vai trò như một máy chủ backend

Nó cung cấp các API cho ứng dụng khách (client) React, chịu trách nhiệm nhận yêu cầu từ người dùng và gửi dữ liệu liên quan đến cơ sở dữ liệu MongoDB Backend cũng tương tác với signaling server để quản lý kết nối WebRTC giữa các peer

MongoDB (Database): MongoDB là hệ quản trị cơ sở dữ liệu NoSQL, được

sử dụng để lưu trữ dữ liệu người dùng, lịch sử cuộc gọi, và các thông tin liên quan đến phiên kết nối Khi người dùng yêu cầu thông tin từ server, dữ liệu sẽ được truy xuất từ MongoDB và trả về cho frontend để hiển thị hoặc thực hiện các thao tác khác

React (Frontend): React đóng vai trò là frontend cho ứng dụng web Người dùng tương tác với giao diện được tạo ra từ React để thực hiện các chức năng như đăng nhập, bắt đầu cuộc gọi, hoặc nhận cuộc gọi Các yêu cầu này sẽ được gửi đến Node.js server thông qua API React cũng sử dụng WebRTC thông qua thư viện PeerJS để thiết lập kết nối trực tiếp với các peer khác

Copies for internal use only in Phenikaa University

Trang 23

PeerJS (Peer): PeerJS là một thư viện hỗ trợ WebRTC, cung cấp các API giúp việc thiết lập kết nối peer-to-peer (P2P) giữa các người dùng đơn giản hơn Thông qua PeerJS, các peer có thể kết nối trực tiếp để truyền dữ liệu video và âm thanh trong các cuộc gọi trực tuyến

Signaling Server: Trước khi thiết lập kết nối P2P, các peer cần trao đổi thông tin về kết nối của mình (các candidate ICE, SDP) Đây là vai trò của signaling server Thông qua signaling server, các peer trao đổi các dữ liệu signaling cần thiết để thiết lập một kết nối P2P Trong hệ thống này, signaling server có thể được xây dựng bằng WebSocket

STUN và TURN Server: Các server này giúp các peer tìm thấy nhau và duy trì kết nối ổn định, ngay cả khi một hoặc cả hai peer đứng sau tường lửa (firewall) hoặc NAT (Network Address Translation)

• STUN Server: Được sử dụng để xác định địa chỉ IP công cộng và cổng của peer khi peer đang đứng sau NAT

• TURN Server: Nếu các peer không thể kết nối trực tiếp với nhau (do NAT hoặc firewall quá phức tạp), TURN server sẽ đóng vai trò như một trung gian

để truyền dữ liệu

Chi tiết về các công nghệ được sử dụng trong kiến trúc của hệ thống sẽ được trình bày ở phần sau

2.3 Công nghệ sử dụng chính

2.3.1 Công nghệ WebRTC

WebRTC (Web Real-Time Communication)[1] là một bộ các tiêu chuẩn mở giúp cho các trình duyệt và ứng dụng có thể trao đổi âm thanh, video, và dữ liệu trực tiếp với nhau mà không cần qua một máy chủ trung gian WebRTC cho phép thiết lập kết nối peer-to-peer (P2P), sử dụng công nghệ ICE (Interactive Connectivity Establishment)

để tìm cách kết nối giữa các peer

Copies for internal use only in Phenikaa University

Trang 24

Các thành phần chính của WebRTC bao gồm:

• MediaStream: Dòng dữ liệu chứa âm thanh và video

• RTCPeerConnection: Là một giao diện chính của WebRTC để quản lý kết nối P2P, giúp peer gửi và nhận các luồng dữ liệu media

• DataChannel: Cho phép gửi dữ liệu tùy ý (chẳng hạn như văn bản hoặc file) giữa các peer qua WebRTC

Cơ Chế Hoạt Động Của WebRTC:

1 Signaling: Trước khi có thể thiết lập kết nối P2P, các peer cần trao đổi thông tin với nhau qua quá trình signaling Thông tin signaling bao gồm địa chỉ IP, cổng kết nối, các candidate ICE, và mô tả phiên (session description) Quá trình này giúp các peer tìm thấy nhau và quyết định cách thiết lập kết nối trực tiếp Thông thường, signaling được xử lý qua WebSocket, nhưng nó cũng có thể được thực hiện qua bất kỳ giao thức nào khác

2 ICE (Interactive Connectivity Establishment): ICE là giao thức dùng để giúp các peer tìm ra con đường kết nối tối ưu nhất, đặc biệt khi một trong hai hoặc

cả hai peer đang đứng sau NAT hoặc firewall Khi hai peer đã trao đổi thông tin signaling, giao thức ICE sẽ bắt đầu tìm cách kết nối trực tiếp giữa các peer bằng cách xác định con đường tốt nhất (tức là kết nối thông qua địa chỉ IP công cộng hoặc thông qua các NAT/firewall nếu cần)

3 STUN và TURN Server: Các server này hỗ trợ trong việc thiết lập kết nối Trong các trường hợp mà peer không thể kết nối trực tiếp do NAT hoặc firewall, STUN server được sử dụng để giúp peer tìm ra địa chỉ IP công cộng của mình Nếu vẫn không thể kết nối trực tiếp, TURN server sẽ được sử dụng

để đóng vai trò làm trung gian truyền tải dữ liệu giữa các peer

Ưu điểm:

• WebRTC cho phép truyền tải dữ liệu âm thanh, video, và dữ liệu khác theo thời gian thực, giúp tạo nên trải nghiệm tương tác liền mạch giữa các người dùng

Copies for internal use only in Phenikaa University

Trang 25

• WebRTC hoạt động trên nền tảng trình duyệt mà không cần cài đặt thêm bất kỳ phần mềm bổ sung nào

• Sử dụng mô hình P2P, WebRTC giúp giảm tải cho các server trung gian bằng cách cho phép truyền dữ liệu trực tiếp giữa các peer

• WebRTC tự động mã hóa các luồng dữ liệu, bảo vệ tính riêng tư và bảo mật của các kết nối

sử dụng khi kết nối có thể thực hiện trực tiếp, và không yêu cầu relay dữ liệu

Quá trình hoạt động:

1 Khi một peer cần xác định địa chỉ IP công cộng của mình, nó gửi một yêu cầu đến STUN server

2 STUN server trả về địa chỉ IP công cộng và cổng của peer

3 Peer sử dụng thông tin này để gửi trực tiếp các gói dữ liệu đến peer khác

Trang 26

• STUN chỉ đơn giản cung cấp thông tin về IP công cộng và cổng, không phải tham gia vào truyền tải dữ liệu, do đó không gây tốn tài nguyên hệ thống Nhược điểm:

• STUN không hoạt động hiệu quả trong các mạng có NAT phức tạp hoặc bị firewall hạn chế, đặc biệt là NAT Symmetric, dẫn đến cần sử dụng TURN server

• STUN chỉ đóng vai trò hỗ trợ kết nối P2P chứ không truyền tải dữ liệu, vì vậy trong trường hợp không kết nối được, phải dựa vào TURN server

2.3.3 TURN Server

TURN (Traversal Using Relays around NAT) là một giao thức tương tự STUN nhưng phức tạp hơn Khi STUN không thể thiết lập kết nối trực tiếp giữa các peer do NAT hoặc firewall quá khắt khe, TURN sẽ được sử dụng Thay vì gửi dữ liệu trực tiếp, các peer sẽ gửi dữ liệu qua TURN server, đóng vai trò là trung gian truyền tải Quá trình hoạt động:

1 Nếu các peer không thể kết nối trực tiếp, dữ liệu media sẽ được gửi đến TURN server

2 TURN server sau đó chuyển tiếp dữ liệu đến peer kia

3 Tuy giải pháp này làm tăng độ trễ và yêu cầu tài nguyên lớn hơn, nó đảm bảo rằng kết nối có thể thực hiện được trong các tình huống phức tạp

TURN thường được sử dụng như một giải pháp dự phòng khi STUN không thể thực hiện kết nối P2P

Ưu điểm:

• Khi STUN không thể giúp các peer kết nối trực tiếp, TURN server đóng vai trò làm trung gian, đảm bảo việc truyền tải dữ liệu ngay cả khi có NAT phức tạp hoặc firewall

• TURN server cung cấp một kênh đáng tin cậy và ổn định để truyền dữ liệu khi kết nối P2P thất bại, giúp duy trì liên lạc trong mọi tình huống

Copies for internal use only in Phenikaa University

Trang 27

2.4 Công nghệ sử dụng còn lại

2.4.1 ViteJS

Vite là một công cụ xây dựng đặc biệt nổi bật với tốc độ và hiệu suất cao nhờ kiến trúc mới mẻ so với các công cụ truyền thống như Webpack hay Parcel Vite chủ yếu tập trung vào hai đặc điểm chính: thời gian khởi động nhanh và quá trình phát triển mượt mà thông qua Hot Module Replacement (HMR) Với HMR, việc cập nhật

mã nguồn trong quá trình phát triển mà không cần tải lại trang giúp tiết kiệm thời gian và tăng năng suất, cung cấp các công cụ tối ưu hóa như gộp mã (code concatenation), nén và tối ưu hóa mã nguồn để giảm kích thước file và tăng tốc tải trang Vite hoạt động bằng cách chia quá trình xây dựng thành hai giai đoạn: tải module trong thời gian phát triển bằng ES modules (chỉ tải những gì cần thiết khi sử dụng) và xử lý nhanh chóng quá trình đóng gói sản phẩm khi xuất bản Vite có cấu hình tối giản, sử dụng được ngay mà không cần cấu hình phức tạp như Webpack Điều này làm cho Vite dễ tiếp cận với những người mới bắt đầu hoặc những dự án nhỏ, đồng thời vẫn mạnh mẽ và linh hoạt cho các dự án lớn Vite hỗ trợ TypeScript, JSX, CSS-in-JS và nhiều tính năng khác mà không cần cài đặt bổ sung Điều này giúp Vite dễ dàng tích hợp với các công nghệ hiện đại như React, Vue, hay TailwindCSS, cải thiện trải nghiệm phát triển

2.4.2 ReactJS

ReactJS là một thư viện JavaScript mã nguồn mở do Facebook phát triển, được

sử dụng chủ yếu để xây dựng các giao diện người dùng (UI) trong các ứng dụng web ReactJS hoạt động theo nguyên tắc component-based (dựa trên thành phần), giúp chia Copies for internal use only in Phenikaa University

Trang 28

nhỏ giao diện thành các phần có thể tái sử dụng và quản lý dễ dàng Điểm nổi bật của ReactJS là khả năng quản lý trạng thái thông qua các hooks như useState, useEffect, cùng với sự hỗ trợ mạnh mẽ của hệ sinh thái như React Router, Redux và Context API Điều này giúp React trở thành công cụ lý tưởng cho các ứng dụng có tính tương tác cao và yêu cầu cập nhật giao diện theo thời gian thực như hệ thống video conference Kiến trúc component-based của React cho phép chia giao diện người dùng thành các thành phần độc lập, dễ bảo trì và tái sử dụng Điều này giúp việc phát triển ứng dụng lớn trở nên dễ dàng hơn, và đồng thời tối ưu hóa hiệu suất React sử dụng một phiên bản DOM ảo giúp cải thiện hiệu suất bằng cách chỉ cập nhật những phần cần thiết trên giao diện, thay vì làm mới toàn bộ DOM mỗi khi có sự thay đổi Điều này giúp tối ưu hoá tốc độ phản hồi của ứng dụng, một yếu tố rất quan trọng trong các ứng dụng video conference yêu cầu sự mượt mà và thời gian thực React cung cấp các công cụ mạnh mẽ để quản lý trạng thái của ứng dụng như Context API, Redux, hoặc các hook như useState, useEffect Điều này giúp việc quản lý và đồng

bộ hóa dữ liệu giữa các thành phần khác nhau trong ứng dụng trở nên dễ dàng và hiệu quả hơn

2.4.3 TypeScript

TypeScript là một phiên bản mở rộng của JavaScript, được phát triển bởi Microsoft Điểm nổi bật của TypeScript là việc cung cấp kiểm tra kiểu tĩnh (static typing), giúp phát hiện lỗi trong quá trình biên dịch trước khi chạy chương trình TypeScript tuân theo cú pháp và cách viết của JavaScript, nhưng bổ sung thêm các tính năng như kiểu dữ liệu, class, interface, và hỗ trợ đầy đủ các tính năng của ES6+ (EcmaScript 6+) Tính năng nổi bật nhất của TypeScript là kiểm tra kiểu tĩnh, cho phép phát hiện lỗi khi lập trình viên khai báo các biến, hàm, hoặc tham số không đúng kiểu Điều này giúp giảm thiểu lỗi liên quan đến việc truyền sai kiểu dữ liệu, đặc biệt quan trọng đối với các dự án phức tạp như hệ thống video conference, nơi cần quản

lý nhiều trạng thái và dữ liệu người dùng TypeScript hỗ trợ lập trình hướng đối tượng với các khái niệm như class, interface, kế thừa và tính đa hình, giúp việc tổ chức và duy trì cấu trúc mã dễ dàng hơn, đồng thời tăng tính mở rộng cho dự án Các tính năng này rất hữu ích trong các hệ thống lớn, cần quản lý nhiều thành phần khác nhau Copies for internal use only in Phenikaa University

Trang 29

Với JavaScript, các lỗi chỉ được phát hiện khi chương trình chạy (runtime), trong khi TypeScript phát hiện lỗi ngay trong quá trình biên dịch (compile-time) Điều này giúp lập trình viên nhanh chóng khắc phục lỗi trước khi phát hành, đảm bảo tính ổn định của hệ thống TypeScript là một siêu ngôn ngữ của JavaScript, có nghĩa là tất cả mã JavaScript hợp lệ đều có thể chạy trong TypeScript Điều này giúp các lập trình viên

có thể chuyển đổi dần từ JavaScript sang TypeScript mà không cần phải viết lại toàn

bộ mã TypeScript giúp duy trì một cấu trúc mã rõ ràng và chặt chẽ, điều này cực kỳ hữu ích khi làm việc với các dự án lớn hoặc khi cần mở rộng hệ thống Các tính năng như interface và generics giúp mã trở nên dễ hiểu hơn và dễ bảo trì hơn, đặc biệt khi

có nhiều lập trình viên cùng làm việc trên một dự án

2.4.4 Ant Design

Ant Design là một thư viện UI mạnh mẽ và phong phú được phát triển bởi Ant Financial, một trong những công ty con của tập đoàn Alibaba Ant Design cung cấp các thành phần giao diện người dùng (UI) chuyên nghiệp, hiện đại và thân thiện với người dùng, được tối ưu cho việc phát triển các ứng dụng web với React Đây là một trong những thư viện UI phổ biến nhất trong hệ sinh thái React nhờ vào sự tiện lợi,

dễ dàng sử dụng và tính linh hoạt cao trong thiết kế Ant Design tuân theo nguyên tắc thiết kế UI đồng nhất, chuyên nghiệp, giúp phát triển giao diện người dùng nhanh chóng mà không cần tốn quá nhiều công sức để định hình phong cách Ant Design cung cấp một bộ các component phong phú và được sử dụng phổ biến trong các ứng dụng, như Button, Form, Table, Modal, Pagination, và nhiều thành phần khác, giúp tiết kiệm thời gian và công sức khi phát triển ứng dụng

2.4.5 TailwindCSS

TailwindCSS là một framework CSS theo hướng utility-first, tức là tập trung vào việc sử dụng các class CSS nhỏ gọn, trực tiếp để xây dựng giao diện người dùng Thay vì cung cấp các thành phần giao diện sẵn có như các framework CSS truyền thống, TailwindCSS cho phép lập trình viên tạo ra các giao diện tùy chỉnh và linh hoạt hơn bằng cách sử dụng các class utility được định nghĩa sẵn Với TailwindCSS, lập trình viên có thể dễ dàng cấu hình lại các class utility theo ý muốn bằng cách Copies for internal use only in Phenikaa University

Trang 30

chỉnh sửa tệp cấu hình “tailwind.config.js” Điều này giúp tạo ra giao diện hoàn toàn tùy chỉnh mà không bị ràng buộc vào các thành phần mặc định Các class utility trong TailwindCSS có thể được tái sử dụng nhiều lần trong suốt dự án mà không phải viết lại CSS cho mỗi phần tử Điều này không chỉ giảm thiểu kích thước file CSS mà còn giúp tổ chức mã rõ ràng hơn, dễ dàng quản lý và bảo trì

2.4.6 NodeJS

NodeJS là một môi trường runtime mã nguồn mở dựa trên JavaScript được thiết kế để xây dựng các ứng dụng web nhanh chóng và có khả năng mở rộng NodeJS nổi bật nhờ kiến trúc non-blocking I/O, tức là xử lý các tác vụ I/O (input/output) mà không cần chờ đợi một tác vụ hoàn thành trước khi bắt đầu xử lý các tác vụ khác Điều này giúp NodeJS rất phù hợp cho việc xử lý yêu cầu đồng thời và các ứng dụng thời gian thực như video conference Nhờ vào mô hình I/O bất đồng bộ, NodeJS có khả năng xử lý nhiều yêu cầu cùng lúc mà không bị nghẽn, giúp tăng hiệu suất của ứng dụng Một lợi thế lớn của NodeJS là nó sử dụng JavaScript, cùng ngôn ngữ với client, giúp đồng bộ hóa tốt giữa client và server Điều này không chỉ giúp giảm bớt

sự khác biệt giữa front-end và back-end mà còn giúp các nhà phát triển sử dụng JavaScript trong toàn bộ quá trình phát triển ứng dụng

2.4.7 Express

Express là một framework back-end dành cho Node.js, cung cấp các công cụ mạnh mẽ để xây dựng các ứng dụng web và API dễ dàng, hiệu quả Express giúp giảm bớt sự phức tạp trong việc phát triển web bằng cách cung cấp một lớp trừu tượng trên các tính năng cơ bản của Node.js, giúp lập trình viên tập trung vào việc xây dựng các tính năng mà không phải lo lắng quá nhiều về cấu trúc hạ tầng phức tạp Express cung cấp cơ chế định tuyến URL dựa trên phương thức HTTP (GET, POST, PUT, DELETE) và đường dẫn URL, giúp lập trình viên dễ dàng định nghĩa các endpoint trong ứng dụng Sử dụng hệ thống middleware mạnh mẽ, cho phép quản lý và kiểm soát luồng xử lý các request và response Điều này giúp bạn dễ dàng thêm các tính năng như xử lý lỗi, xác thực, logging hoặc nén dữ liệu Express hoạt động rất tốt với các cơ sở dữ liệu như MongoDB, MySQL, …

Copies for internal use only in Phenikaa University

Trang 31

2.4.8 WebSocket

WebSocket là một thư viện phổ biến trong môi trường Node.js được sử dụng

để phát triển các ứng dụng thời gian thực WebSocket hỗ trợ các kết nối giữa client

và server, giúp truyền dữ liệu và sự kiện nhanh chóng với độ trễ thấp mà không cần refresh trang hay gửi lại yêu cầu HTTP thông thường Phía server, Node.js chịu trách nhiệm quản lý kết nối WebSocket và xử lý sự kiện từ client Phía client, JavaScript chạy trên trình duyệt giúp kết nối tới server qua WebSocket và gửi, nhận dữ liệu từ server WebSocket có thể tự động kết nối lại nếu kết nối bị gián đoạn do mất mạng hoặc lỗi server, giúp cải thiện trải nghiệm người dùng WebSocket còn cho phép phân nhóm người dùng vào các room (phòng) hoặc namespace, giúp dễ dàng quản lý các phiên video conference hoặc chat nhóm

2.4.9 PeerJS

PeerJS[2] là một thư viện JavaScript giúp đơn giản hóa việc sử dụng WebRTC

để tạo các kết nối peer-to-peer (P2P) giữa các trình duyệt Mục tiêu chính của PeerJS

là làm cho việc triển khai WebRTC trở nên dễ dàng và tiện lợi hơn bằng cách cung cấp các API thân thiện và trừu tượng hóa một số phức tạp liên quan đến việc thiết lập các kết nối trực tiếp giữa các thiết bị (peer)

Việc kết nối người dùng đối với việc sử dụng WebRTC tương đối phức tạp, vì vậy cần có một thư viện hộ trợ việc đơn giản hóa vấn đề kết nối của WebRTC PeerJS trừu tượng hóa các thao tác phức tạp trong việc thiết lập kết nối WebRTC bằng cách cung cấp các hàm API dễ sử dụng Người dùng chỉ cần gọi các hàm như

“peer.connect()” để kết nối với một peer khác và “peer.call()” để thiết lập cuộc gọi video PeerJS quản lý quá trình trao đổi SDP và ICE, giúp người phát triển không cần viết quá nhiều mã để xử lý các bước tín hiệu hóa (signaling)

Các thành phần chính trong PeerJS bao gồm: Peer Object: Tạo một đối tượng peer mới để bắt đầu hoặc nhận kết nối; PeerServer: Server tín hiệu (signaling server) của PeerJS giúp các peers tìm nhau và trao đổi các thông tin cần thiết để thiết lập kết nối; Connection & Call Object: “peer.connect()” cho phép hai peers giao tiếp qua DataConnection và “peer.call()” thiết lập cuộc gọi video qua MediaConnection Copies for internal use only in Phenikaa University

Trang 32

Từ các thành phần của PeerJS, PeerJS cung cấp một luồng kết nối đơn giản hơn:

• Khởi tạo peer: Mỗi người dùng khởi tạo một đối tượng peer với ID duy nhất

• Kết nối P2P: Khi người dùng này gọi đến người dùng khác, một MediaConnection được tạo ra với peer ID của người dùng

• Truyền video: Sau khi kết nối, video của bác sĩ và bệnh nhân được truyền trực tiếp giữa hai thiết bị

Khi sử dụng WebRTC thuần, nhà phát triển cần phải tự xây dựng các giải pháp tín hiệu (signaling) và xử lý tất cả các bước trao đổi ICE và SDP một cách thủ công Điều này yêu cầu nhiều hiểu biết kỹ thuật và có thể làm tăng độ phức tạp của dự án Gây khó khăn trong việc triển khai và quản lý các kết nối phức tạp, đặc biệt là khi mở rộng quy mô ứng dụng

2.4.10 MongoDB

MongoDB[3] là một cơ sở dữ liệu NoSQL dạng document-oriented (dữ liệu dạng tài liệu), nơi dữ liệu được lưu trữ dưới dạng JSON-like documents Không giống như các hệ quản trị cơ sở dữ liệu quan hệ (RDBMS) như MySQL, MongoDB không

có bảng hoặc các mối quan hệ cố định giữa dữ liệu, thay vào đó, các document được lưu trữ trong các collection và có thể chứa các cấu trúc dữ liệu đa dạng và phức tạp MongoDB lưu trữ dữ liệu dưới dạng các tài liệu JSON, giúp dễ dàng lưu trữ và quản

lý dữ liệu không có cấu trúc cố định Điều này phù hợp với các ứng dụng yêu cầu lưu trữ dữ liệu thay đổi liên tục hoặc phức tạp Hỗ trợ khả năng mở rộng horizontal scaling (mở rộng theo chiều ngang) thông qua sharding – phân chia dữ liệu trên nhiều máy chủ, giúp hệ thống dễ dàng mở rộng khi cần thiết Cung cấp cơ chế index linh hoạt

và các công cụ mạnh mẽ để thực hiện các phép tính toán và tìm kiếm dữ liệu, giúp tối ưu hóa tốc độ truy vấn dữ liệu lớn MongoDB còn hỗ trợ replication (sao lưu dữ liệu), giúp đảm bảo tính sẵn sàng của dữ liệu và bảo vệ dữ liệu khỏi mất mát trong trường hợp xảy ra sự cố.Copies for internal use only in Phenikaa University

Trang 33

3.1 Khảo sát hiện trạng

Trong quá trình phát triển hệ thống video conference, việc khảo sát hiện trạng

là bước đầu tiên và vô cùng quan trọng Nguồn thông tin cho việc khảo sát này thường được lấy từ ba nguồn là người dùng, các hệ thống đã có sẵn và các ứng dụng tương

tự Dựa vào khảo sát từ ba nguồn này, để đưa ra những đánh giá và so sánh các tính năng, hiệu suất, và những vấn đề đang tồn tại trong các giải pháp hiện tại để đưa ra phương án phát triển phù hợp cho hệ thống

Yêu cầu từ phía người dùng là yếu tố quyết định trực tiếp đến việc hệ thống

có đáp ứng được nhu cầu thực tế hay không Thông qua việc tìm hiểu về tình trạng thực tế của xã hội, qua việc thu thập được các mong muốn, vấn đề và khó khăn mà người dùng gặp phải trong các hệ thống hay ứng dụng trong lĩnh vực y tế hiện tại Đặc biệt, là việc tiếp cận ý tế đối với những người cao tuổi bị mắc bệnh lý mất trí nhớ Vì vậy mà hệ thống cần quan tâm vào những vào việc dễ sử dụng, có một giao diện đơn giản, thân thiện với người dùng, có một kết nối ổn định Đó là những yếu tố cần chú trọng trong quá trình phát triển hệ thống

Việc khảo sát các hệ thống video conference đã có sẵn trên thị trường, từ đó rút ra được những ưu điểm và nhược điểm của các hệ thống này Các hệ thống nổi tiếng như Zoom, Google Meet hay Microsoft Teams cung cấp nhiều tính năng mạnh

mẽ như chia sẻ màn hình, ghi lại cuộc gọi, và hỗ trợ nhiều người tham gia Tuy nhiên, một số hệ thống có thể thiếu tính linh hoạt trong việc cá nhân hóa giao diện hoặc hạn chế về khả năng mở rộng, cũng như đó chỉ là những hệ thống video call chung, chưa tập trung vào một lĩnh vực nhất định Từ những thông tin này, hệ thống được điều chỉnh thiết kế để phát triển một hệ thống chỉ kết nối giữa một bác sĩ với một bệnh

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

Copies for internal use only in Phenikaa University

Trang 34

nhân trong cùng một thời điểm, tiếp thu tính năng ghi lại cuộc gọi và bổ sung tính năng thực hiện các bài kiểm tra chuyên sâu để chẩn đoán về bệnh lý mất trí nhớ

Sau quá trình khảo sát hiện trạng, hệ thống sẽ chú trọng vào các tính năng quan trọng cần phát triển sau: Kết nối một bác sĩ với một bệnh nhân; Ghi lại cuộc gọi; Đưa

ra các bài kiểm tra chuyên sâu; Lưu lại kết quả của các bài kiểm tra đó Những tính năng này sẽ góp phần xây dựng một hệ thống video conference chất lượng đáp ứng được nhu cầu của người dùng, đồng thời mang lại khả năng mở rộng trong tương lai

3.2 Tổng quan chức năng

3.2.1 Biểu đồ use case tổng quan

Hình 3.1 Biểu đồ use case tổng quan

Tác nhân tham gia:

• Admin (Quản trị viên): Quản lý toàn bộ hệ thống, bao gồm quản lý người dùng, lịch sử cuộc gọi, và các bài kiểm tra

• Doctor (Bác sĩ): Bác sĩ là người trực tiếp thực hiện cuộc gọi video với bệnh nhân, thực hiện các bài kiểm tra, quản lý lịch sử cuộc gọi

• Patient (Bệnh nhân): Bệnh nhân tham gia vào các cuộc gọi video với bác sĩ và Copies for internal use only in Phenikaa University

Trang 35

Vai trò của từng tác nhân:

Admin:

• Quản lý người dùng: Tạo, xóa, và quản lý thông tin người dùng

• Quản lý lịch sử cuộc gọi và các bài kiểm tra: Theo dõi và kiểm soát các cuộc gọi đã diễn ra và quản lý các bài kiểm tra của hệ thống

Doctor:

• Thực hiện cuộc gọi video với bệnh nhân

• Lưu và quản lý lịch sử cuộc gọi để theo dõi sức khỏe của bệnh nhân

• Ghi hình cuộc gọi và thực hiện các bài kiểm tra sức khỏe từ xa

Patient:

• Tham gia cuộc gọi video với bác sĩ

• Thực hiện các bài kiểm tra sức khỏe trong quá trình gọi video theo hướng dẫn của bác sĩ

Mô tả các use case chính:

Trang 36

Doctor:

• Xem lịch sử cuộc gọi: Bác sĩ có thể xem lại lịch sử các cuộc gọi trước đó với bệnh nhân, phục vụ cho việc đánh giá và chẩn đoán Đồng thời có thể xóa hay chỉnh sửa lại nội dung lịch sử cuộc gọi nếu cần thiết

• Thực hiện bài kiểm tra: Trong quá trình cuộc gọi video, bác sĩ có thể hướng dẫn bệnh nhân thực hiện các bài kiểm tra sức khỏe từ xa

• Ghi hình cuộc gọi: Bác sĩ có thể ghi lại các cuộc gọi để lưu trữ và tham khảo sau này nếu cần thiết

Patient:

• Tham gia cuộc gọi: Bệnh nhân có thể tham gia vào các cuộc gọi video đã được lên lịch với bác sĩ để nhận tư vấn và thực hiện các bài kiểm tra

3.2.2 Biểu đồ use case quản lý người dùng

Hình 3.2 Biểu đồ use case quản lý người dùng

Admin tạo tài khoản mới cho người dùng:

1 Admin nhập các thông tin cơ bản như tên, tuổi, địa chỉ, số điện thoại, email và vai trò (doctor, patient)

2 Hệ thống kiểm tra và xác nhận tính hợp lệ của thông tin

3 Hệ thống tạo tài khoản mới và thông báo thành công

Copies for internal use only in Phenikaa University

Ngày đăng: 05/12/2024, 16:14

HÌNH ẢNH LIÊN QUAN

Hình 2.1  Tổng quan kiến trúc của hệ thống - Xây dựng hệ thống video conference chẩn Đoán bệnh lý mất trí nhớ trên nền tảng web
Hình 2.1 Tổng quan kiến trúc của hệ thống (Trang 20)
Hình 3.3 Biểu đồ use case quản lý lịch sử cuộc gọi - Xây dựng hệ thống video conference chẩn Đoán bệnh lý mất trí nhớ trên nền tảng web
Hình 3.3 Biểu đồ use case quản lý lịch sử cuộc gọi (Trang 37)
Hình 3.5 Biểu đồ tuần tự chức năng đăng nhập - Xây dựng hệ thống video conference chẩn Đoán bệnh lý mất trí nhớ trên nền tảng web
Hình 3.5 Biểu đồ tuần tự chức năng đăng nhập (Trang 39)
Hình 3.8 Biểu đồ tuần tự chức năng tham gia cuộc gọi của bệnh nhân - Xây dựng hệ thống video conference chẩn Đoán bệnh lý mất trí nhớ trên nền tảng web
Hình 3.8 Biểu đồ tuần tự chức năng tham gia cuộc gọi của bệnh nhân (Trang 43)
Hình 3.10 Thiết kế giao diện của admin - Xây dựng hệ thống video conference chẩn Đoán bệnh lý mất trí nhớ trên nền tảng web
Hình 3.10 Thiết kế giao diện của admin (Trang 49)
Hình 3.12 Thiết kế giao diện của bác sĩ khi thực hiện bài kiểm tra và ghi hình - Xây dựng hệ thống video conference chẩn Đoán bệnh lý mất trí nhớ trên nền tảng web
Hình 3.12 Thiết kế giao diện của bác sĩ khi thực hiện bài kiểm tra và ghi hình (Trang 50)
Hình 3.13 Giao diện của bệnh nhân khi thực hiện cuộc gọi với bác sĩ - Xây dựng hệ thống video conference chẩn Đoán bệnh lý mất trí nhớ trên nền tảng web
Hình 3.13 Giao diện của bệnh nhân khi thực hiện cuộc gọi với bác sĩ (Trang 50)
Hình 3.14 Biểu đồ thực thể liên kết - Xây dựng hệ thống video conference chẩn Đoán bệnh lý mất trí nhớ trên nền tảng web
Hình 3.14 Biểu đồ thực thể liên kết (Trang 51)
Hình 3.19 Service (S) áp dụng vào hệ thống - Xây dựng hệ thống video conference chẩn Đoán bệnh lý mất trí nhớ trên nền tảng web
Hình 3.19 Service (S) áp dụng vào hệ thống (Trang 57)
Hình 4.1 Thực nghiệm API đăng nhập - Xây dựng hệ thống video conference chẩn Đoán bệnh lý mất trí nhớ trên nền tảng web
Hình 4.1 Thực nghiệm API đăng nhập (Trang 59)
Hình 4.4 Giao diện khi người dùng đăng nhập thành công - Xây dựng hệ thống video conference chẩn Đoán bệnh lý mất trí nhớ trên nền tảng web
Hình 4.4 Giao diện khi người dùng đăng nhập thành công (Trang 61)
Hình 4.6 Thay đổi thông tin người dùng trên giao diện - Xây dựng hệ thống video conference chẩn Đoán bệnh lý mất trí nhớ trên nền tảng web
Hình 4.6 Thay đổi thông tin người dùng trên giao diện (Trang 63)
Hình cuộc gọi - Xây dựng hệ thống video conference chẩn Đoán bệnh lý mất trí nhớ trên nền tảng web
Hình cu ộc gọi (Trang 65)
Hình 4.9  Giao diện của bệnh nhân khi bác sĩ kết thúc cuộc gọi - Xây dựng hệ thống video conference chẩn Đoán bệnh lý mất trí nhớ trên nền tảng web
Hình 4.9 Giao diện của bệnh nhân khi bác sĩ kết thúc cuộc gọi (Trang 66)
Hình 4.11 Giao diện bác sĩ thực hiện bài kiểm tra cho bệnh nhân - Xây dựng hệ thống video conference chẩn Đoán bệnh lý mất trí nhớ trên nền tảng web
Hình 4.11 Giao diện bác sĩ thực hiện bài kiểm tra cho bệnh nhân (Trang 68)

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w