Tải bản đầy đủ (.pdf) (74 trang)

Đồ án xây dựng ứng dụng di động hỗ trợ y tế theo yêu cầu

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (4.15 MB, 74 trang )

ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ MINH

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA CÔNG NGHỆ PHẦN MỀM

ĐỒ ÁN 1

XÂY DỰNG ỨNG DỤNG DI ĐỘNG HỖ TRỢ Y TẾ
THEO YÊU CẦU

GIẢNG VIÊN HƯỚNG DẪN: TS. Đỗ Thị Thanh Tuyền

SINH VIÊN THỰC HIỆN:
Đỗ Phạm Huy Khánh – 20521442
Nguyễn Văn Pháp - 20521731

TP. HỒ CHÍ MINH, tháng 6 năm 2023


LỜI CẢM ƠN
Sự phát triển như vũ bão của công nghệ thông tin (CNTT) đã tác động mạnh
mẽ và to lớn đến mọi mặt đời sống kinh tế xã hội. Ngày nay, CNTT đã trở thành một
trong những động lực quan trọng nhất của sự phát triển. Với khả năng số hóa mọi loại
thơng tin, máy tính trở thành phương tiện xử lý thông tin thống nhất và đa năng, thực
hiện được nhiều chức năng khác nhau trên mọi dạng thông tin thuộc mọi lĩnh vực
như: nghiên cứu, quản lý, kinh doanh, giáo dục, ...
Những ứng dụng của CNTT trong lĩnh vực y tế là những ứng dụng vô cùng
quan trọng. Ứng dụng di động đã tạo ra những đột phá trong việc theo dõi sức khỏe
cá nhân, quản lý bệnh tật, phân tích dữ liệu y tế lớn và cung cấp dịch vụ y tế từ xa.
Nhờ đó, mọi người có thể tiếp cận dịch vụ y tế tốt hơn, tiết kiệm thời gian và tăng
cường khả năng chủ động trong việc quản lý sức khỏe cá nhân của mình.


Là sinh viên CNTT, trong đồ án mơn Đồ án 1 này, nhóm chúng em đã chọn
và thực hiện đồ án “XÂY DỰNG ỨNG DỤNG DI ĐỘNG HỖ TRỢ Y TẾ THEO
YÊU CẦU”.
Nhóm xin gửi lời cảm ơn chân thành đến cơ Đỗ Thị Thanh Tuyền đã tận tình
giảng dạy, hướng dẫn chúng em trong suốt thời gian học vừa qua và các bạn học đã
góp ý và giúp đỡ nhóm trong q trình thực hiện đồ án này.
Do kiến thức và thời gian thực hiện hạn chế, đồ án của nhóm vẫn cịn nhiều
thiếu sót. Nhóm rất mong nhận được góp ý của cơ và các bạn để đồ án của nhóm được
hồn thiện.

Nhóm sinh viên thực hiện
ĐỖ PHẠM HUY KHÁNH - NGUYỄN VĂN PHÁP

2


MỤC LỤC
LỜI CẢM ƠN .............................................................................................................2
MỤC LỤC ...................................................................................................................3
DANH MỤC HÌNH ẢNH ..........................................................................................7
DANH MỤC BẢNG ...................................................................................................9
TĨM TẮT ĐỒ ÁN....................................................................................................11
Chương 1.

MỞ ĐẦU........................................................................................13

1.1.

Lí do chọn đề tài ...................................................................................13


1.2.

Mục đích ...............................................................................................13

1.3.

Phạm vi nghiên cứu ..............................................................................13

1.4.

Đối tượng sử dụng ................................................................................14

1.4.1.

Bệnh nhân: .....................................................................................14

1.4.2.

Bác sĩ: .............................................................................................14

1.5.

Phương pháp thực hiện .........................................................................15

1.6.

Cơng nghệ sử dụng ...............................................................................15

1.7.


Q trình thực hiện ...............................................................................16

Chương 2.
2.1.

CƠ SỞ LÝ THUYẾT .....................................................................17

Firebase .................................................................................................17

2.1.1.

Giới thiệu [3.1] ...............................................................................17

2.1.2.

Cách hoạt động [3.2] ......................................................................17

2.1.3.

Ưu điểm [3.2] .................................................................................18

2.1.4.

Nhược điểm [3.1] ...........................................................................18

2.2.

Dart .......................................................................................................18

2.3.


Flutter ....................................................................................................19

3


2.3.1.

Giới thiệu [1.2] ...............................................................................19

2.3.2.

Tính năng [1.2] ...............................................................................20

2.3.3.

Lí do sử dụng [1.2] .........................................................................20

2.4.

Bloc .......................................................................................................21

2.4.1.

Giới thiệu .......................................................................................21

2.4.2.

Khi sử dụng Cubit ..........................................................................21


2.4.3.

Khi không sử dụng Cubit ...............................................................22

Chương 3.

THIẾT KẾ KIẾN TRÚC HỆ THỐNG ..........................................25

3.1.

Kiến trúc hệ thống.................................................................................25

3.2.

Các chức năng chính .............................................................................26

3.3.

Phân tích yêu cầu ..................................................................................27

3.4.

Sơ đồ Usecase .......................................................................................28

3.5.

Mô tả usecase ........................................................................................28

3.6.


Đặc tả Use case .....................................................................................30

3.6.1.

Use-case "Đăng nhập" ...................................................................30

3.6.2.

Use-case “Đăng kí” ........................................................................31

3.6.3.

Use-case “Quên mật khẩu” ............................................................31

3.6.4.

Use-case “Theo dõi cộng đồng” ....................................................32

3.6.5.

Use-case “Quản lý hồ sơ sức khỏe” ...............................................32

3.6.6.

Use-case “Thực hiện cuộc gọi” ......................................................33

3.6.7.

Use-case “Xem danh sách bác sĩ theo triệu chứng” ......................34


3.6.8.

Use-case “Quản lý thông tin cá nhân” ...........................................34

3.6.9.

Use-case “Quản lý cuộc hẹn” ........................................................35

3.6.10.

Use-case “Quản lý hồ sơ của các bệnh nhân đã khám” .................35

4


3.6.11.

Use-case “Nhận thông báo cuộc hẹn” ............................................36

3.7.

Sơ đồ lớp ...............................................................................................37

3.8.

Giải thích các lớp ..................................................................................37

3.8.1.

Bảng Person ...................................................................................37


3.8.2.

Bảng Patient ...................................................................................38

3.8.3.

Bảng Doctor ...................................................................................38

3.8.4.

Bảng Review ..................................................................................38

3.8.5.

Bảng Appointment .........................................................................39

3.8.6.

Bảng HealthRecord ........................................................................40

3.8.7.

Bảng Post .......................................................................................40

3.8.8.

Bảng Chat .......................................................................................41

Chương 4.


THIẾT KẾ VÀ XÂY DỰNG GIAO DIỆN ...................................43

4.1.

Tổng quan về giao diện .........................................................................43

4.2.

Chi tiết các màn hình ............................................................................45

4.2.1.

Màn hình đăng nhập .......................................................................45

4.2.2.

Màn hình đăng ký bệnh nhân .........................................................46

4.2.3.

Màn hình đăng ký bác sĩ ................................................................47

4.2.4.

Màn hình lấy lại mật khẩu..............................................................48

4.2.5.

Màn hình trang chủ của bệnh nhân ................................................49


4.2.6.

Màn hình đặt cuộc hẹn ...................................................................50

4.2.7.

Màn hình thơng tin chi tiết của bác sĩ ............................................51

4.2.8.

Màn hình quản lý cuộc hẹn của bệnh nhân ....................................52

4.2.9.

Màn hình chi tiết cuộc hẹn của bệnh nhân .....................................53

4.2.10.

Màn hình thanh toán ......................................................................54

5


4.2.11.

Màn hình quản lý hồ sơ sức khỏe của bệnh nhân ..........................55

4.2.12.


Màn hình quản lý thơng tin cá nhân của bệnh nhân ......................56

4.2.13.

Màn hình hỏi đáp ...........................................................................57

4.2.14.

Màn hình đăng câu hỏi ...................................................................58

4.2.15.

Màn hình chỉnh sửa thơng tin bác sĩ ..............................................59

4.2.16.

Màn hình chỉnh sửa giờ cho bác sĩ.................................................60

4.2.17.

Màn hình thơng tin bác sĩ (phía bác sĩ) ..........................................61

4.2.18.

Màn hình trang chủ bác sĩ ..............................................................62

4.2.19.

Màn hình quản lý thơng tin của bác sĩ ...........................................63


4.2.20.

Màn hình chỉ tiết cuộc hẹn của bác sĩ ............................................64

4.2.21.

Màn hình quản lý hồ sơ sức khỏe của bác sĩ .................................65

4.2.22.

Màn hình chi tiết hồ sơ phía bác sĩ ................................................66

4.2.23.

Màn hình chẩn đốn .......................................................................68

4.2.24.

Màn hình gọi ..................................................................................69

Chương 5.
5.1.

KẾT LUẬN ....................................................................................70

Đánh giá ................................................................................................70

5.1.1.

Ưu điểm: ........................................................................................70


5.1.2.

Nhược điểm: ...................................................................................70

5.1.3.

Kết quả đạt được: ...........................................................................71

5.2.

Hướng phát triển ...................................................................................71

TÀI LIỆU THAM KHẢO .........................................................................................73

6


DANH MỤC HÌNH ẢNH
Hình 2.1 Firebase ......................................................................................................17
Hình 2.2 Dart [4.2] ....................................................................................................19
Hình 2.3 Flutter .........................................................................................................20
Hình 2.4 Cubit ...........................................................................................................21
Hình 2.5 Luồng hoạt động khi dùng Cubit ...............................................................22
Hình 2.6 Bloc ............................................................................................................22
Hình 2.7 Luồng hoạt động của Bloc .........................................................................23
Hình 3.1 Kiến trúc hệ thống client server [3.1] ........................................................25
Hình 3.2 Tổng quan về chức năng ............................................................................26
Hình 3.3: Sơ đồ Usecase ...........................................................................................28
Hình 3.4: Sơ đồ lớp ...................................................................................................37

Hình 4.1: Thiết kế màn hình cho bệnh nhân .............................................................43
Hình 4.2: Thiết kế màn hình cho bác sĩ ....................................................................44
Hình 4.3: Thiết kế màn hình truy cập vào ứng dụng ................................................44
Hình 4.4 Màn hình đăng nhập ...................................................................................45
Hình 4.5 Màn hình đăng ký bệnh nhân .....................................................................46
Hình 4.6 Màn hình đăng ký bác sĩ ............................................................................47
Hình 4.7 Màn hình lấy lại mật khẩu..........................................................................48
Hình 4.8 Màn hình trang chủ của bệnh nhân ............................................................49
Hình 4.9 Màn hình đặt cuộc hẹn ...............................................................................50
Hình 4.10 Màn hình thơng tin chi tiết của bác sĩ ......................................................51
Hình 4.11 Màn hình quản lý cuộc hẹn của bệnh nhân ..............................................52
Hình 4.12 Màn hình quản lý cuộc hẹn của bệnh nhân ..............................................53

7


Hình 4.13 Màn hình thanh tốn.................................................................................54
Hình 4.14 Màn hình quản lý hồ sơ sức khỏe của bệnh nhân ....................................55
Hình 4.15 Màn hình quản lý thơng tin cá nhân của bệnh nhân ................................56
Hình 4.16 Màn hình hỏi đáp .....................................................................................57
Hình 4.17 Màn hình đăng câu hỏi .............................................................................58
Hình 4.18 Màn hình chỉnh sửa thơng tin bác sĩ ........................................................59
Hình 4.19 Màn hình chỉnh sửa giờ của bác sĩ ...........................................................60
Hình 4.20 Màn hình thơng tin bác sĩ (phía bác sĩ) ....................................................61
Hình 4.21 Màn hình trang chủ bác sĩ ........................................................................62
Hình 4.22 Màn hình quản lý cuộc hẹn của bác sĩ .....................................................63
Hình 4.23 Màn hình chi tiết cuộc hẹn của bác sĩ ......................................................64
Hình 4.24 Màn hình quản lý hồ sơ sức khỏe của bác sĩ............................................65
Hình 4.25 Màn hình chi tiết hồ sơ phía bác sĩ ..........................................................66
Hình 4.26 Màn hình chẩn đốn .................................................................................68

Hình 4.27 Màn hình gọi ............................................................................................69

8


DANH MỤC BẢNG
Bảng 3.1 Danh sách actor..........................................................................................28
Bảng 3.2 Mô tả Use case. ..........................................................................................28
Bảng 3.3: Mô tả Usecase Đăng nhập ........................................................................30
Bảng 3.4: Mơ tả Usecase Đăng kí .............................................................................31
Bảng 3.5: Mơ tả Usecase Quên mật khẩu .................................................................31
Bảng 3.6: Mô tả Usecase Theo dõi cộng đồng .........................................................32
Bảng 3.7: Mô tả Usecase Quản lý hồ sơ sức khỏe ....................................................32
Bảng 3.8: Mô tả Usecase Thực hiện cuộc gọi ...........................................................33
Bảng 3.9: Mô tả Usecase Xem danh sách bác sĩ theo triệu chứng ...........................34
Bảng 3.10: Mô tả Usecase Quản lý thông tin cá nhân ..............................................34
Bảng 3.11: Mô tả Usecase Quản lý cuộc hẹn ...........................................................35
Bảng 3.12: Mô tả Usecase Quản lý cuộc hẹn ...........................................................35
Bảng 3.13: Mô tả Usecase Quản lý cuộc hẹn ...........................................................36
Bảng 3.14 Bảng Person. ............................................................................................37
Bảng 3.15 Bảng Patient. ............................................................................................38
Bảng 3.16 Bảng Doctor. ............................................................................................38
Bảng 3.17 Bảng Review. ...........................................................................................38
Bảng 3.18 Bảng Appointment. ..................................................................................39
Bảng 3.19 Bảng HealthRecord. .................................................................................40
Bảng 3.20 Bảng Post. ................................................................................................40
Bảng 3.21 Bảng Chat. ...............................................................................................41
Bảng 4.1 Thành phần màn hình đăng nhập ...............................................................45
Bảng 4.2 Thành phần màn hình đăng ký bệnh nhân .................................................46


9


Bảng 4.3 Thành phần màn hình đăng ký bác sĩ ........................................................47
Bảng 4.4 Thành phần màn hình lấy lại mật khẩu......................................................48
Bảng 4.5 Thành phần màn hình trang chủ của bệnh nhân ........................................49
Bảng 4.6 Thành phần màn hình đặt cuộc hẹn ...........................................................50
Bảng 4.7 Thành phần màn hình thơng tin chi tiết của bác sĩ ....................................51
Bảng 4.8 Thành phần màn hình quản lý cuộc hẹn của bệnh nhân ............................52
Bảng 4.9 Thành phần màn hình quản lý cuộc hẹn của bệnh nhân ............................53
Bảng 4.10 Thành phần màn hình thanh tốn ............................................................54
Bảng 4.11 Thành phần màn hình quản lý hồ sơ sức khỏe của bệnh nhân ................55
Bảng 4.12 Thành phần màn hình quản lý thơng tin cá nhân của bệnh nhân ............56
Bảng 4.13 Thành phần màn hình hỏi đáp .................................................................57
Bảng 4.14 Thành phần màn hình đăng câu hỏi .........................................................58
Bảng 4.15 Thành phần màn hình chỉnh sửa thông tin bác sĩ ....................................59
Bảng 4.16 Thành phần màn hình chỉnh sửa giờ của bác sĩ .......................................60
Bảng 4.17 Thành phần màn hình thơng tin bác sĩ (phía bác sĩ) ................................61
Bảng 4.18 Thành phần màn hình trang chủ bác sĩ ....................................................62
Bảng 4.19 Thành phần màn hình quản lý cuộc hẹn của bác sĩ .................................63
Bảng 4.20 Thành phần màn hình chi tiết cuộc hẹn của bác sĩ ..................................64
Bảng 4.21 Thành phần màn hình quản lý hồ sơ sức khỏe của bác sĩ........................65
Bảng 4.22 Thành phần màn hình chi tiết hồ sơ phía bác sĩ ......................................66
Bảng 4.23 Thành phần màn hình chẩn đốn .............................................................68
Bảng 4.24 Thành phần màn hình gọi ........................................................................69

10


TÓM TẮT ĐỒ ÁN

Đồ án này tập trung vào việc phát triển một ứng dụng di động tư vấn y tế nhằm
tạo sự tương tác giữa bác sĩ và bệnh nhân. Ứng dụng này có hai chức năng chính, tạo
cơ hội cho bệnh nhân tìm kiếm và đặt cuộc hẹn với bác sĩ dựa trên triệu chứng của
họ, cùng với khả năng thực hiện cuộc hẹn qua video call. Ngoài ra, ứng dụng cũng
cung cấp một nền tảng như mạng xã hội chuyên về hỏi đáp cho sức khỏe, nơi bệnh
nhân có thể đăng bài viết về tình trạng sức khỏe của mình và nhận được câu trả lời từ
các bác sĩ.
Trước tiên, bệnh nhân có thể tìm kiếm bác sĩ dựa trên triệu chứng của mình
thơng qua ứng dụng. Họ có thể tìm kiếm theo các tiêu chí như chun mơn, kinh
nghiệm hoặc tên bác sĩ. Khi tìm thấy bác sĩ phù hợp, bệnh nhân có thể xem thơng tin
cá nhân và hồ sơ chuyên môn của bác sĩ để đảm bảo sự phù hợp.
Sau đó, bệnh nhân có thể đặt cuộc hẹn với bác sĩ thông qua ứng dụng. Việc
đặt cuộc hẹn sẽ bao gồm chọn ngày, giờ của cuộc hẹn. Khi đến ngày hẹn, bệnh nhân
và bác sĩ sẽ thực hiện cuộc hẹn qua video call. Điều này giúp tiết kiệm thời gian và
khả năng tiếp cận với bác sĩ từ xa. Ứng dụng cũng cung cấp chức năng quản lý lịch
sử cuộc hẹn, cho phép bệnh nhân và bác sĩ theo dõi và xem lại thông tin về các cuộc
hẹn trước đó (ví dụ như chuẩn đốn và lời dặn của bác sĩ).
Ngồi ra, ứng dụng cũng cung cấp một nền tảng như mạng xã hội chuyên về
hỏi đáp cho sức khỏe. Bệnh nhân có thể đăng bài viết về tình trạng sức khỏe của mình
và nhận được câu trả lời từ các bác sĩ. Điều này tạo ra một cộng đồng hỗ trợ nơi bệnh
nhân có thể chia sẻ thơng tin và kinh nghiệm với nhau.
Qua việc triển khai ứng dụng di động tư vấn y tế này, đã mang lại nhiều lợi
ích cho cả bác sĩ và bệnh nhân. Bệnh nhân có thể dễ dàng tìm kiếm và đặt cuộc hẹn
với bác sĩ, tiết kiệm thời gian và công sức. Nền tảng hỏi đáp cung cấp một kênh tương
tác linh hoạt giữa bệnh nhân và các chuyên gia y tế, giúp cung cấp thông tin và lời
khuyên y tế cho bệnh nhân trong thời gian nhanh nhất.
Tóm lại, ứng dụng di động tư vấn y tế này cung cấp một giải pháp tiện lợi và hiệu
quả cho bệnh nhân và bác sĩ trong việc tương tác và tư vấn y tế từ xa.

11



Báo cáo này bao gồm 74 trang và chia thành 5 chương chính:
Chương 1, nhóm trình bày mở đầu với việc giới thiệu lí do chọn đề tài, mục đích
nghiên cứu, phạm vi nghiên cứu, đối tượng sử dụng (bao gồm bệnh nhân và bác sĩ),
phương pháp thực hiện và cơng nghệ sử dụng. Q trình thực hiện dự án cũng được
đề cập.
Chương 2 tập trung vào cơ sở lý thuyết với các nội dung chính về Firebase, Dart,
Flutter và Bloc – các công nghệ được sử dụng trong dự án.
Chương 3, đề cập đến thiết kế kiến trúc hệ thống, các chức năng chính của hệ
thống, phân tích yêu cầu, sơ đồ Usecase và mô tả usecase. Các lớp trong hệ thống
cũng được giới thiệu và giải thích.
Chương 4 tập trung vào thiết kế và xây dựng giao diện của ứng dụng, cung cấp
tổng quan về giao diện và giới thiệu chi tiết các màn hình được xây dựng.
Chương 5 tóm tắt kết luận dựa trên việc đánh giá hiệu quả của dự án. Ưu điểm và
nhược điểm của hệ thống được đánh giá, cùng với kết quả đạt được. Cuối cùng, nhóm
cũng đề xuất hướng phát triển cho dự án trong tương lai.

12


Chương 1. MỞ ĐẦU
1.1.
-

Lí do chọn đề tài
Y tế đóng vai trò rất quan trọng đối với nhiều lĩnh vực trong cuộc sống, trong
đó đặc biệt là sức khỏe con người. Bên cạnh đó, trong những năm gần đây,
việc ngành y tế đối mặt với một nhu cầu lớn trong việc sử dụng các ứng dụng
y tế. Với sự phát triển của các ứng dụng ý tế, người dùng bây giờ có thể tận

dụng các dịch vụ y tế một cách thoải mái tại nhà của họ và thảo luận về bệnh
tật và các vấn đề y tế của họ để nhận được sự hỗ trợ ngay lập tức.

-

Một ứng dụng di động hỗ trợ cho tư vấn và khám chữa bệnh có thể góp phần
lớn cho cải thiện sức khỏe trong nhiều cách. Đầu tiên, nó có thể cung cấp
một nền tảng trung tâm cho người dùng truy cập, chọn và đặt lích hẹn đối
với bác sĩ phù hợp với tình hình của họ. Thứ hai là họ có thể theo dõi được
tình hình thuốc uống bởi ứng dụng. Điều này có thể giúp tối ưu hố tiết kiệm
thời gian cho bệnh nhân và bác sĩ. Tổng thể, một ứng dụng di động hỗ trợ y
tế theo yêu cầu có thể giúp cải thiện lĩnh vực y tế, đồng thời sẽ là ứng dụng
cực kì tiện lợi trong bối cảnh cách ly, điển hình là đại dịch Covid-19.

1.2.
-

Mục đích
Cung cấp cho người dùng (bệnh nhân) một nền tảng để có thể được hỗ trợ
mặt y tế đúng lúc.

-

Giúp người dùng (Bệnh nhân) có thể quản lý sức khỏe của mình.

-

Cung cấp một mạng xã hội cho người dùng (Bác sĩ và bệnh nhân) để họ có
thể cải thiện sức khỏe cộng đồng.


1.3.

Cung cấp một trải nghiệm trực tuyến về mặt y học tốt hơn cho khách hàng.
Phạm vi nghiên cứu

-

Nền tảng hỗ trợ: Triển khai trên điện thoại (Hệ điều hành android)

-

Chức năng:
o Hệ thống gợi ý danh sách các bác sĩ cho khách hàng lựa chọn.

13


o Face call trực tuyến.
o Quản lý dữ liệu khách hàng (Bệnh nhân và bác sĩ): khách hàng có thể
tạo tài khoản để lưu thơng tin cá nhân.
o Tích hợp hệ thống thanh toán.
o Quản lý hồ sơ sức khỏe của người dùng.
o Xây dựng một mạng xã hội để tư vấn sức khỏe.
1.4.

Đối tượng sử dụng

1.4.1. Bệnh nhân:
-


Bệnh nhân khi sử dụng ứng dụng sẽ có trải nghiệm thuận tiện và đáng tin
cậy trong việc quản lý sức khỏe cá nhân. Họ có thể dễ dàng đặt lịch hẹn với
các bác sĩ theo thời gian phù hợp với sự linh hoạt và tiện lợi. Không chỉ giúp
bệnh nhân lựa chọn bác sĩ phù hợp với nhu cầu và mong muốn, ứng dụng
cũng cung cấp thông tin chi tiết về từng bác sĩ, giúp họ hiểu rõ hơn về chuyên
môn và kinh nghiệm của bác sĩ.

-

Qua tính năng Face call, bệnh nhân có thể tư vấn hoặc khám chữa bệnh từ
xa, giúp tiết kiệm thời gian và giảm thiểu việc di chuyển khơng cần thiết. Họ
cũng có thể quản lý hồ sơ sức khỏe cá nhân, ghi chép lại các lời dặn, tư vấn
hoặc đơn thuốc mà bác sĩ gợi ý trong lịch sử cuộc gọi. Ngồi ra, bệnh nhân
có cơ hội tham gia cộng đồng hỏi đáp, đăng những câu hỏi thắc mắc của
mình để nhận được sự hỗ trợ từ các bác sĩ khác trong ứng dụng.
1.4.2. Bác sĩ:

-

Đối với bác sĩ, ứng dụng mang đến sự tiện lợi và tối ưu hóa cơng việc quản
lý lịch trình và thơng tin cá nhân. Họ có khả năng xác nhận và quản lý lịch
hẹn từ bệnh nhân một cách thuận tiện, giúp tổ chức thời gian làm việc một
cách hiệu quả. Cũng như bệnh nhân, bác sĩ có thể thực hiện cuộc gọi video
tư vấn, mang lại lợi ích lớn cho việc tư vấn từ xa và khám chữa bệnh.

-

Quản lý hồ sơ sức khỏe của bệnh nhân trở nên dễ dàng hơn với tính năng
ghi chép, ghi nhận thơng tin về bệnh án và đánh dấu q trình điều trị. Bác


14


sĩ cũng có thể tham gia vào cộng đồng hỏi đáp trong ứng dụng để giúp đỡ
bệnh nhân và trả lời các thắc mắc về sức khỏe. Việc quản lý thơng tin cá
nhân cũng giúp bác sĩ duy trì sự chính xác và bảo mật trong q trình sử
dụng ứng dụng.
1.5.

Phương pháp thực hiện

-

Tìm hiểu cơng nghệ: Flutter.

-

Tìm hiểu các công cụ hỗ trợ: Figma, Draw.io (WebApp hỗ trợ vẽ diagram).

-

Môi trường làm việc: notion.com.

-

Thu thập yêu cầu thông qua:
o Tìm hiểu dựa trên các bài báo nghiên cứu.
o Tìm hiểu các ứng dụng hiện có trên thị trường.

-


Phân tích và xác định yêu cầu.

-

Thiết kế:
o Thiết kế đối tượng
o Thiết kế dữ liệu
o Thiết kế giao diện

-

Cài đặt.

-

Kiểm thử.

-

Hoàn thiện sản phẩm.

1.6.

Công nghệ sử dụng

-

Công cụ thiết kế UI/UX: Figma.


-

Ngôn ngữ sử dụng: Dart.

-

Xây dựng ứng dụng di động: Flutter

-

Cơ sở dữ liệu: Firebase.

-

Kiến trúc ứng dụng: Bloc.

15


1.7.

Quá trình thực hiện

Trải qua quá trình tìm hiểu và thực hiện đề tài, nhóm đã giải quyết được các vấn
đề đặt ra ban đầu, từng bước giải quyết và liên tục đặt ra những vấn đề mới để
ngày càng hồn thiện sản phẩm. Những bước thực hiện:
-

Phân tích u cầu bài tốn.


-

Lựa chọn nền tảng cơng nghệ phù hợp với yêu cầu.

-

Nghiên cứu cơ sở lý thuyết của công nghệ lựa chọn.

-

Áp dụng lý thuyết vào xây dựng ứng dụng thực tiễn.

-

Kiểm tra và khám phá các ứng dụng tương tự để tối ưu hoá trải nghiệm
người dùng và cải thiện các tính năng cho ứng dụng.

Link github: />
16


Chương 2. CƠ SỞ LÝ THUYẾT
2.1.

Firebase

2.1.1. Giới thiệu [3.1]
-

Firebase ở đây chính là dịch vụ cơ sở dữ liệu hoạt động trên nền tảng của đám

mây – cloud. Đi kèm với đó chính là hệ thống máy chủ cực kỳ mạnh mẽ đến
từ Google. Chức năng chính đó là giúp người sử dụng lập trình được những
ứng dụng bằng phương pháp đơn giản hóa các thao tác cùng đa dạng cơ sở dữ
liệu.

-

Cụ thể đó chính là những giao diện lập trình cho ứng dụng API đơn giản. Mục
đích đó là tăng số lượng người sử dụng, thu lại nhiều lợi nhuận hơn bao giờ
hết. Đặc biệt đó cịn là dịch vụ đa năng và bảo mật cực hồn hảo.

Hình 2.1 Firebase
2.1.2. Cách hoạt động [3.2]
-

Phát triển ứng dụng di động: Firebase giúp lập trình viên phát triển ứng dụng
di động một cách nhanh chóng và giúp giảm thiểu chi phí. Bên cạnh đó,
Firebase cho phép phát triển ứng dụng trên cả nền tảng iOS và Android.

-

Phát triển ứng dụng web: Các API đơn giản và hữu dụng giúp bạn có thể
xây dựng ứng dụng mà khơng cần backend và server.

17


-

Lưu trữ và đồng bộ dữ liệu: Firebase thường xuyên sao lưu dữ liệu nhằm

đảo bảo tính sẵn có của dữ liệu. Bên cạnh đó, chức năng này của Firebase cịn
giúp cho mọi thơng tin và dữ liệu của người dùng sẽ được bảo mật một cách
tốt nhất nếu có trường hợp xấu xảy ra.

-

Quản lý đăng nhập: Firebase Authentication giúp nhà phát triển quản lý
người dùng ứng dụng một cách đơn giản và an toàn. Cụ thể, Firebase cung cấp
nhiều phương pháp quản lý đăng nhập thông qua email với mật khẩu Google
và Facebook.
2.1.3. Ưu điểm [3.2]

-

Sử Dụng Đơn Giản, Dễ Dàng.

-

Tốc Độ Phát Triển Nhanh Chóng.

-

Nền Tảng Google Phát Triển Mạnh Mẽ.

-

Firebase App Không Sở Hữu Máy Chủ.
2.1.4. Nhược điểm [3.1]

-


Nền Tảng Không Hoạt Động Tại Nhiều Quốc Gia.

-

Firebase Chỉ Hoạt Động Với NoSQL Và CSDL.

-

Firebase Chỉ Chạy Trên Google Cloud.

2.2.
-

Dart

Dart là một ngơn ngữ lập trình được thiết kế bởi Lars Bak và Kasper Lund và
được phát triển bởi Google. Ngơn ngữ lập trình có thể được sử dụng để phát
triển ứng dụng web và thiết bị di động cũng như ứng dụng máy chủ và máy
tính để bàn. [4.2]

-

Nó là một ngơn ngữ dựa trên lớp, hướng đối tượng với cú pháp kiểu C. Nó có
thể biên dịch thành mã máy, JavaScript hoặc WebAssugging. Nó hỗ trợ các
giao diện, mixin, các lớp trừu tượng, tổng quát thống nhất và suy luận kiểu.
[4.2]

18



Hình 2.2 Dart [4.2]

2.3.

Flutter

2.3.1. Giới thiệu [1.2]
-

Flutter là một bộ công cụ phát triển phần mềm giao diện người dùng với mã
nguồn mở do Google tạo ra. Flutter được sử dụng để phát triển các ứng dụng
đa nền tảng cho nhiều hệ điều hành như: iOS, Android, Linux, … từ một cơ
sở mã nguồn duy nhất.

-

Flutter có hai thành phần chính đó là:
o Một Software Development Kit (SDK): Ở đây tích hợp các cơng cụ
có khả năng phát triển các ứng dụng của bạn, trong đó có các cơng cụ
giúp bạn biên dịch mã của mình thành mã máy gốc (mã cho Android
và iOS).
o Một UI Library based on widgets (Framework): Tổng hợp các thành
phần giao diện người dùng (UI) có thể tái sử dụng như: text input,
button, slider, … hỗ trợ bạn có thể cá nhân hóa theo nhu cầu sử dụng.

19


Hình 2.3 Flutter

2.3.2. Tính năng [1.2]
-

Flutter được xem là một react framework.

-

Lập trình viên có thể sử dụng ngơn ngữ lập trình Dart rất đơn giản và thuận
tiện bởi nhờ Flutter.

-

Người dùng dễ dàng trải nghiệm, xây dựng giao diện và sửa lỗi nhanh chóng
nhờ tính năng hot reload.

-

Giao diện người dùng đẹp mắt, hoạt động phong phú, scroll mượt mà và khả
năng tự nhận thức nền tảng của các widget built – in.

-

Bằng cách thức tập hợp các layout, platform, và widget đa dạng mà framework
có thể giải quyết những thách thức khó khăn trong giao diện người dùng.

-

Đạt hiệu năng cao.

-


Flutter có khả năng thể hiện cùng một UI trên nhiều nền tảng.
2.3.3. Lí do sử dụng [1.2]

-

Phát triển phần mềm nhanh chóng.

-

Giao diện thu hút, bắt mắt.

-

Truy cập các tính năng và Software Development Kit native.

-

Phát triển ứng dụng thống nhất.

20


2.4.

Bloc

2.4.1. Giới thiệu
-


Tương tự mơ hình MVVM và MVP

-

Bloc là một lib để quản lý state cho Flutter application. B.L.o.C nghĩa là
Business Logic Component. Nhận 'Event' như là input và trả về output là
'State'. Bloc được xây dựng dựa trên RxDart.

-

Bloc là một design pattern giúp tách bản trình bày khỏi logic nghiệp vụ. Theo
mẫu BLoC tạo điều kiện thuận lợi cho khả năng kiểm tra và khả năng sử dụng
lại. Package này trừu tượng hóa các khía cạnh phản ứng của mẫu cho phép các
nhà phát triển tập trung vào việc viết logic nghiệp vụ. [5.2]
2.4.2. Khi sử dụng Cubit [5.2]

Hình 2.4 Cubit
-

Cubit là lớp mở rộng BlocBase và có thể được mở rộng để quản lý bất kỳ loại
trạng thái nào. Cubit yêu cầu một trạng thái ban đầu sẽ là trạng thái trước khi
phát ra được gọi. Trạng thái hiện tại của một khối có thể được truy cập thông
qua bộ lấy trạng thái và trạng thái của khối có thể được cập nhật bằng cách gọi
phát ra với một trạng thái mới.

21


Hình 2.5 Luồng hoạt động khi dùng Cubit
-


Các thay đổi trạng thái trong cubit bắt đầu bằng các lệnh gọi hàm được xác
định trước có thể sử dụng phương thức phát ra để xuất các trạng thái mới.
onChange được gọi ngay trước khi thay đổi trạng thái xảy ra và chứa trạng
thái hiện tại và trạng thái tiếp theo.
2.4.3. Khi khơng sử dụng Cubit [5.2]

Hình 2.6 Bloc

22


-

Bloc là một lớp nâng cao hơn dựa trên các sự kiện để kích hoạt các thay đổi
trạng thái thay vì các chức năng. Bloc cũng mở rộng BlocBase, có nghĩa là nó
có API cơng khai tương tự như Cubit. Tuy nhiên, thay vì gọi một chức năng
trên Khối và trực tiếp phát ra trạng thái mới, Khối nhận sự kiện và chuyển đổi
sự kiện đến thành trạng thái đi.

Hình 2.7 Luồng hoạt động của Bloc

- Các thay đổi trạng thái trong khối bắt đầu khi các sự kiện được thêm vào sẽ
kích hoạt onEvent. Các sự kiện sau đó được chuyển qua EventTransformer.
Theo mặc định, mỗi sự kiện được xử lý đồng thời nhưng có thể cung cấp một

23


EventTransformer tùy chỉnh để điều khiển luồng sự kiện đến. Sau đó, tất cả

các Trình xử lý sự kiện đã đăng ký cho loại sự kiện đó sẽ được gọi cùng với
sự kiện sắp tới. Mỗi EventHandler chịu trách nhiệm phát ra 0 hoặc nhiều trạng
thái để phản hồi lại sự kiện. Cuối cùng, onTransition được gọi ngay trước khi
trạng thái được cập nhật và chứa trạng thái hiện tại, sự kiện và trạng thái tiếp
theo.

24


Chương 3. THIẾT KẾ KIẾN TRÚC HỆ THỐNG
3.1.
-

Kiến trúc hệ thống

Lớp Client: Hiển thị giao diện người dùng, thông qua kết nối Internet để kết
nối đến cơ sở dữ liệu quản lý thư viện. Là nơi diễn ra các tương tác của người
dùng với chương trình như nhập, các thao tác truy xuất dữ liệu.

-

Lớp Server: Quản lý và chứa toàn bộ dữ liệu của phần mềm. Đồng thời xử lý
các yêu cầu nhập/xuất được gửi xuống từ lớp Client. Ứng dụng được dùng làm
lớp Server là Firebase.

Hình 3.1 Kiến trúc hệ thống client server [3.1]

25



×