CHƯƠNG 1: GIỚI THIỆU ỨNG DỤNG Ứng dụng sẽ cung cấp các tính năng hỗ trợ sức khỏe cơ bản như: —_ Đặt lịch khám bệnh: Người dùng có thể đặt lịch khám trực tuyến một cách nhanh chóng.. — _
Trang 1
ĐẠI HỌC QUỐC GIA TP.HCM
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN KHOA ĐIỆN TỬ - VIỄN THÔNG
BỘ MÔN VIÊN THÔNG - MẠNG
DE TAL UNG DUNG HO TRO Y TE
GIẢNG VIÊN HƯỚNG DẪN:
NGUYÊN THÁI CÔNG NGHĨA
Trang 2
ĐẠI HỌC QUỐC GIA TP.HCM
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN KHOA ĐIỆN TỬ - VIỄN THÔNG
BỘ MÔN VIÊN THÔNG - MẠNG
NHÓM 2
BAO CAO DO AN CUOI KÌ
BAO CAO BO AN MÔN HỌC: LẬP TRÌNH DI ĐỘNG
DE TAL UNG DUNG HO TRO Y TE
GIẢNG VIÊN HƯỚNG DẪN:
NGUYÊN THÁI CÔNG NGHĨA DANH SÁCH SINH VIÊN THỰC HIỆN:
Trang 3
LỜI CÁM ƠN
Chúng em xin gửi lời cảm ơn chân thành đến thầy Nguyễn Thái Công Nghĩa — giảng viên môn Lập trình di động của Chuyên ngành Viễn Thông — Mang, Khoa Điện tử - Viễn thông Trong quá trình học tập và tìm hiểu môn học, chúng em nhận được sự quan tâm, giúp
đỡ, hướng dẫn tận tình, tâm huyết của thầy Thầy đã trang bị cho chúng em những kiến thức,
kỹ năng cơ bản cần có, đồng thời giúp chúng em định hướng phương pháp học tập để hoàn thành đồ án này Thông qua những kiến thức đã được học, chúng em đã cô gắng hoàn thiện
đồ án này một cách chỉnh chu nhất có thê
Tuy nhiên, trong quá trình thực hiện đồ án, vì kiến thức còn hạn chế nên chúng em
không tránh khỏi còn nhiều thiếu sót khi tìm hiểu, thực hiện, đánh giá và trình bày Chúng
em rất mong sẽ nhận được sự quan tâm và góp ý của thầy để đồ án được hoàn chỉnh và đầy
đủ hơn
Lời cuối cùng, chúng em xin chúc thầy nhiều sức khoẻ, thành công và hạnh phúc
Trang 4MỤC LỤC
(00/80 VN - 4 ƠỊỎ 5
0:00/9)1986119/9)089:010080 1080100000078 .-ẬäâẬậẬÄẰH)HH 6
CHƯƠNG 2: CHỨC NĂNG ỨNG DỤNG Q.0 2.vS TH TH 11121 1111.1111 errie 7 CHƯƠNG 3: THÀNH PHẢN ỨNG DỤNG 2n n2 v2.2 TH 22H11 111111111 rree 8 “hs, 0 8 <A 8
3.1.1 Ngơn ngữ lập trình Kotlin c=hhhnc ¡5 (ÍỈ
“h7 nh nh SP 2T 9o: 9
3.1.3 Thành phần xác thực va lưu trữ - oogle FirebasSe + tt 2 EEvv Hy grrec 10 3.2 Các thành phần chính trong ứng dụng 25 S2 SE St +t#ExeexEek xxx reo 11 3.2.1 So db hé thong ýš ồễồễồ - d 11
B.2.2 ACTIVITY 11
E5 9°
3.2.4 ODJECt MOE] oo ố.e
3.3 Quy trìnnh vận hành các chức năng 3.3.1 Tao va dang nhap tat khoan nh eee eee ẻ
3.3.2 Xem, tạo, xĩa và chính sửa hồ sơ bệnh nhân - - E231 SE SE TH rrkt 19 3.3.3 Tạo, xem lịch hẹn với bác sĩ 3.3.4 Liên lạc dịch vụ khẩn cấp se ng 3.3.5 Tìm kiếm và cập nhật tin tức về y tế, đời sống 3.3.6 Xem, thay đơi thơng tin bác sĩ nh HH H111 11111111 111011 11 HE 11111111 HH gu 24 3.3.7 Bác sĩ xem danh sách lịch hẹn và hỗ sơ bệnh án . - -Ă- 6 Ă E13 ES vs ng Hy rerry 25 3.4 Ưu điểm, hạn chế và hướng phát triển ứng dụng cˆ “hàn 5 .AAẬÄĂäĂẶ.,, ƠĨƠ 3.4.1.1 Tính ỨHg (HHR Ăn TH TH HT HH TH TH TT TK kh 3.4.1.2 Gi CIE n6 dẰƯiâ¬a¬aaaa nể
3.4.2 Hạn chế - Ăn 1T TY TT HT Hà TH TH TT Tà TT TT Hà Tà TT TT TH TH KH TT Tà Trà Kon na n ốố.ố ẻ.ố
J8 43000 D0017 .HA
IV 90) 0S) 904/01 .A Ơ ĐÁNH GIÁ THÀNH VIÊN 5 5c tt TH HH HH HH 0H11 Ho ĐÁNH GIÁ CỦA GIÁO VIÊN
Trang 5TÓM TẮT
Ngày nay chúng ta đang sống trong thời đại công nghệ số Hầu hết mợi hoạt động của con người đều diễn ra trên các thiết bị công nghệ kỹ thuật số như điện thoại thông minh, máy tính bảng Theo thống kê, mỗi người dùng trung bình dành khoảng 5 giờ mỗi ngày trên điện thoại di động của mình
Điều này cho thấy điện thoại đã trở thành một phần không thê thiếu trong cuộc sống hàng ngày của mọi người Do đó, nhu cầu quản lý và chăm sóc sức khỏe một cách thuận tiện, nhanh chóng mà không cần phải đến trực tiếp các cơ sở y tế cũng ngày càng tăng Đây chính là cơ hội dé phát triển ứng dụng quản lý sức khỏe trực tuyến như ý tưởng của chúng
Trang 6CHƯƠNG 1: GIỚI THIỆU ỨNG DỤNG
Ứng dụng sẽ cung cấp các tính năng hỗ trợ sức khỏe cơ bản như:
—_ Đặt lịch khám bệnh: Người dùng có thể đặt lịch khám trực tuyến một cách nhanh
chóng Hệ thống sẽ gửi thông báo nhắc lịch tới người dùng
— _ Hồ sơ bệnh nhân: Ứng dụng sẽ lưu trữ các thông tin cá nhân, tiền sử bệnh của người dùng đề cung cấp cho bác sĩ khi khám bệnh Người dùng có thê cập nhật hồ sơ
— Cuéc goi khan cap: Tính năng này giúp người dùng nhanh chóng liên lạc với đường dây nóng y tế trong trường hợp cần cấp cứu
—_ Tìm kiếm y tế: Người dùng có thê tra cứu thông tin về các bệnh, phòng khám, bác sĩ trên ứng dụng web
Ý tưởng này hướng tới mục tiêu hỗ trợ người dùng quản lý sức khỏe một cách thuận tiện, nhanh chóng thông qua ứng dụng di động
Trang 7CHƯƠNG 2: CHỨC NĂNG ỨNG DỤNG
Đây là một ứng dụng hỗ trợ y tế, nên các chứng năng chính của nó sẽ liên quan mật thiết nhất định đến các thông tin y tế Dưới đây sẽ là những chức năng mà ứng dụng có thê làm được:
Đối với người dùng thường (bệnh nhân):
—_ Tạo và lưu trữ hồ sơ y tế của bản thân
— Đặt và xem lịch hẹn với bác sĩ trong viện
—_ Tra cứu và liên lạc nhanh chóng với các số điện thoại khân cấp, kế cả các đường dây không thuộc lĩnh vực y tế
— _ Tra cứu và duyệt nhanh các thông tin liên quan đến ngành y tế
Đối với các bác sĩ:
—_ Tạo và xem hồ sơ tài khoản của mình
— _ Tìm kiếm các lịch hẹn với bệnh nhân thuộc khoa của mình theo ngày
—_ Duyệt hoặc từ chối cuộc hẹn
Trang 8CHUONG 3: THANH PHAN UNG DUNG
Kotlin được tài trợ bởi Google, được công bồ là một trong những ngôn ngữ chính thức cho Android Development năm 20 L7
3.1.1.2 Đặc điểm
Kotlin là ngôn ngữ lập trình hướng đối tượng và hỗ trợ các tính năng lập trình hướng đối tượng tiên tiễn như kế thừa, đa hình, đóng gói
Kiểu dữ liệu mạnh: Kotlin có hệ thống kiểu dữ liệu mạnh giúp tránh lỗi NullPointer
thường gặp ở Java Nó tự động xử lý kiểu dữ liệu null an toàn hơn
Lambda expressions: Kotlin hỗ trợ lambda expressions giúp viết code đồng bộ, không phải dùng lớp ấn danh Code trở nên súc tích và dé đọc hơn
Extension functions: Chung cho phép mở rộng chức năng cho các lớp không phải do minh tao ra, giúp code dé bao trì và mở rộng hơn
Coroutines: Là cơ chế đồng bộ hóa dễ sử dụng, giúp xử lý tác vụ nặng và I/O ma không cần luông
Dễ đọc: Cú pháp Kotlin gọn gàng và rõ ràng hơn Java nhờ cú pháp mạnh mẽ hơn
Tương thích Java: Kotlin code có thể chạy trên JVMI và tương tác với thư viện Java hiện có
Trang 93.1.2 Android Studio
Android Studio là một môi trường tích hợp phát triển (Integrated Development Environment — IDE) được phát triển bởi Google dành cho việc phát triển ứng dụng trên nền tảng Android Nó cung cấp một loạt các công cụ và tính năng đề giúp nhà phát triển xây dựng và triển khai ứng dụng Android một cách dễ dàng
Công cụ này cung cấp một giao diện trực quan và các trình biên dịch, trình gỡ lỗi, trình tạo giao diện người dùng, trình quản lý phiên bản và nhiều công cụ khác Nó hỗ trợ viết code trong ngôn ngữ Java hoặc Kotlin và tích hợp sẵn các thư viện và công cụ phát triển Android
Một trong những tính năng quan trọng của công cụ này là khả năng sử dụng Gradle, một hệ thống quản lý dự án mạnh mẽ Gradle cho phép bạn quản lý phụ thuộc, xây dựng, kiêm thử và đóng gói ứng dụng Android một cách linh hoạt và hiệu quả
Android Studio cung cấp một loạt các tính năng và công cụ để giúp nhà phát triển xây dựng ứng dụng Android, bao gồm:
— Bồ cục ứng dụng trực quan, giao diện thân thiện với người sử dụng Các nhà phát trién có thê thao tác nhanh chóng bằng các thao tác kéo thả, điều này giúp việc phat triển ứng dụng đơn giản và toàn điện hơn
— Chay img dung tirc thi hỗ trợ các thay đôi thực hiện trong quá trình phát triển Người
sử dụng có thê chạy thử ngay lập tức mà không mắt thêm thời gian xây dựng APK
và cài đặt
—_ Trình mô phỏng ứng dụng nhanh chóng, hỗ trợ mô phỏng hiên thị giống hệt một chiếc điện thoại Android đề nhà phát triển có thể kiểm tra ứng dụng trông như thế nào trong các thiết bị cài đặt
—_ Chỉnh sửa mã code nhanh chóng nhờ các mã gợi ý trong thư viện nhằm tăng tốc độ viết mã cũng như độ chính xác
— Instant Run gitp nha phat triên thay đối các ứng dụng đang chạy mà không cần thêm các thao tác xây dựng APK mới
—_ Hỗ trợ kết nổi Firebase giúp tạo các bản cập nhật trực tiếp và cung cấp kết nỗi cơ
Trang 10—_ Có nhiều mẫu có sẵn giúp lập trình viên tạo mới ứng dụng đơn giản dựa vào công
cụ w1zard
— Tich hop tinh năng dò và sửa lỗi nhanh chóng
— Hỗ trợ tích hợp Maven và sử dụng kho lưu trữ Maven để quản lý các thư viện và phụ thuộc của dự án
3.1.3 Thành phần xác thực và lưu trữ - Google Firebase
Firebase là một nền tảng di động và web do Google cung cấp, giúp phát triển và quản
lý ứng dụng Firebase bao gồm các dịch vụ sau:
— Realtime Database*: Cơ sở dữ liệu thời gian thực cho phép dữ liệu được đồng bộ hóa giữa các thiết bị theo thời gian thực
— Cloud Firestore: Dich vu co so di ligu NoSQL dựa trên tài liệu, được thiét ké dé lưu trữ và truy vấn dữ liệu của ứng dụng
— Cloud Storage: Dich vụ lưu trữ đám mây cho phép lưu trữ dữ liệu dung lượng lớn
— Cloud Functions: Cho phép chay mã máy chủ không đồng bộ khi có sự kiện xảy ra trong ứng dụng
— Cloud Messaging: Dich vu nhan tin dam mây cho phép gửi thông báo đến thiết bị người dùng
— Cloud Identity and Access Management (LAM): Dich vụ quán lý danh tính và quyền truy cập cho phép quản lý quyền truy cập vào ứng dụng của bạn
Với việc tạo và xác thực tài khoản, Firebase sẽ có nhiều phương thức tạo và xác thực khác nhau, bao gồm: email, số điện thoại, tài khoản dịch vụ (Google, Facebook, Microsoft, Apple ) hoặc tài khoản nội bộ của doanh nghiệp Mỗi phương thức xác thực sẽ có từng ưu nhược điểm riêng Đối với ứng dụng của nhóm, phương thức xác thực là sử dụng chính email của người dùng đề tạo và đăng nhập tài khoản, áp dụng cho cả bác sĩ lẫn bệnh nhân
Về lưu trữ dữ liệu, Firebase cung cấp 2 lựa chọn: Realtime Database và FireStore Database Realtime vốn di la dang database có sẵn từ lúc có Firebase, về cơ bản giống như
một ñle JSON cỡ lớn để lưu trữ các thông tin, ưu điểm chính là tốc độ truy vẫn nhanh hơn
FireStore là phiên bản nâng cấp của Realtime, được tạo ra cho các yêu cầu truy vấn phức tạp hơn, do đó có cấu trúc dữ liệu cũng phân chia phức tạp hơn và được chia vào các
Trang 11collection và document riêng lẻ, các chủ thể sẽ được lưu thành các document trong một collection Voi yéu cau truy vẫn và độ phức tạp của dữ liệu bệnh nhân, bác sĩ, các số khẩn cấp thì nhóm đã chọn FireStore làm database chính cho ứng dụng
AccountCreatingActivity
CreateProfleDoctorActvil) SettingsActivity Sign Up
v } AccountSigninActivity Log In |}——»< Role »—Doctor { MainDoctorActivity } ProttedetaidoctorActivity]
Đây là phần nòng cốt đề tạo nên logic và các thuật toán cho ứng dụng
Trong ứng dụng này, có tông cộng khoảng 18 Activity, được liệt kê trong các bảng bên dưới:
11
Trang 12Các Activity chung:
AccountCreatingActivity Activity khởi chạy khi bệnh nhân hoặc bác sĩ chưa có tài
khoản và phải tạo tài khoản mới
AccountSignlInActivity Được khởi tạo ngay lúc ứng dụng khởi chạy, sử dụng cho
việc đăng nhập tài khoản được tạo trên ung dung
SettingsActivity Activity được khỏi chạy khi bệnh nhân/bác sĩ bắm vào
nút cài đặt trên màn hình đăng nhập đề truy cập vào giao điện cài đặt ứng dụng và xem thông tin ứng dụng
danh sách hồ sơ có trong tài khoản
ProfileDetailActivity Activity hién thị thông tin chỉ tiết của một hỗ sơ bất kỳ
trong danh sách
ProfileDetailEditActivity Activity giúp bệnh nhân chính sửa thông tin hồ sơ của
mình khi có bât kỳ thông tin cân cập nhật, sửa đôi
PickAppointmentActivity
Acticity nơi bệnh nhân có thê tạo một cuộc hẹn bằng cách chọn một hồ sơ, lựa chọn khoa, giờ và điền thêm thông tin bé sung
AppointmentListActivity Activity giúp bệnh nhân liệt kê các cuộc hẹn của từng hồ
sơ bằng cách tìm theo số điện thoại của hồ sơ đó
AppointmentDetailActivity Activity hién thị chỉ tiết thông tin một cuộc hẹn bắt kì
trong danh sách tìm được
EmergencyActivity Activity hiển thị các danh sách sô điện thoại khẩn cấp
Trang 13
hiện có và liên lạc với đường dây trợ giúp được chọn ngay lập tức
HealthWikiActivity
Activity dẫn bệnh nhân đến trang tra cứu và cập nhật các
tin tức về y tê, sức khỏe va đời sông
ProfileDetailDoctorActivity Activity giúp bác sĩ xem thông tin tài khoản của
mình
CreateProfileDoctorActivity Activity giúp bác sĩ sẽ khởi tạo hay chính sửa thông
tin tài khoản
AppointmentDetailDoctorActivity| cuộc hẹn bắt kì trong danh sách liệt kê được, và quyết định chấp nhận hay từ chối cuộc hẹn
AppointmentAdapter Adapter hỗ trợ hiển thị danh sách các cuộc hẹn, dùng cả
trong Activity cua bac si lan bénh nhân
CustomProfileAdapter Adapter hỗ trợ hiển thị danh sách các hồ sơ bệnh nhân mà
tài khoản da tao, chi co 6 Activity cua bénh nhân
CustomEmergencyAdapte
Adapter hỗ trợ hiển thị danh sách các số liên lạc khẩn cấp,
chỉ có 6 Activity cua bệnh nhân
Trang 14
3.2.4 Object Model
Đây là thành phần giúp định nghĩa và lưu giữ các thông tin thuộc tính của các object
Có 4 dạng ObJect được định nghĩa và sử dụng trong app:
—_ AppointmemtModel: dùng cho đã liệu của Ì cuộc hẹn
appUserProvince String Tinh/thành phố nơi bệnh nhân sinh sống
appSelectedDepartmer String Khoa khám bệnh đã chọn, theo ID khoa
appSelectedDate String Ngày khám bệnh đã chọn
appSelectedTime String Khung giờ khám đã chọn, theo mã khung giờ
appSymptomsinfo String Mô tả bô sung các triệu chứng
appDoctor String Bác sĩ thăm ee cm eo có bác sĩ tiếp
Trang 15— EmergencyModel - đừng cho đữ liệu của 1 số khẩn cấp
Tên thuộc tính | Loại dữ liệu Miêu tả
name String Tên của đơn vị vận hành đường day khan cap
phone String Số điện thoại đường dây khẩn cấp
Trên database, các thuộc tính trên được lưu tại đường dẫn:
+ emergeney/<tên nội bộ đơn vị>! (đối với ngôn ngữ Anh)
+ emergency-vi/<tén ndi bộ đơn vị>l (đỗi với ngôn ngữ Việt)
hospita1-ChoRay
Chí có quản trị viên quản lý cơ sở đữ liệu mới có thê thêm, chỉnh sửa hoặc xóa các
document chứa các thông tin trên
— ProfileDoctorModel — ding cho théng tin của Ì tài khoản bác sĩ
15