Mục tiêu của khóa luận là mô phỏng một hệ thống cung cấp khả năng kết nối giữa người bệnh, tổ cấp cứu, bệnh viện và trung tâm điều hành trong công tác cấp cứu ngoại viện.. Hiện nay tron
Trang 1ĐẠ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
NGUYỄN TIẾN ĐẠT
KHÓA LUẬN TỐT NGHIỆP XÂY DỰNG HỆ THỐNG Y TẾ KHẨN CẤP
CHO TRUNG TÂM CẤP CỨU 115
Building an emergency medical system
for 115 emergency center
KỸ SƯ NGÀNH KỸ THUẬT PHẦN MỀM
TP.HỒ CHÍ MINH, 2021
Trang 2ĐẠI HỌC QUỐC GIA TP.HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
Trang 3THÔNG TIN HỘI ĐỒNG CHẤM KHÓA LUẬN TỐT NGHIỆP
Hội đồng chấm khóa luận tốt nghiệp, thành lập theo Quyết định số
……… ngày ……… của Hiệu trưởng Trường Đại học Công nghệ Thông tin
Trang 4LỜI CẢM ƠN
Sau hơn 4 năm học tập và rèn luyện tại Trường Đại Học Công Nghệ Thông Tin, được sự chỉ bảo và giảng dạy nhiệt tình của quý thầy cô, đặc biệt quý thầy cô trong khoa Công Nghệ Phần Mềm, chúng em đã nhận được vô vàng kiến thức bổ ích về lý thuyết và thực hành trong thời gian qua
Đặc biệt, em xin gửi lời cảm ơn và lòng biết ơn sâu sắc nhất tới Thầy Nguyễn Công Hoan Thầy đã tận tình giúp nhóm chúng em hoàn thành tốt báo cáo khóa luận
của mình trong suốt quá trình thực hiện đề tài
Trong thời gian thực hiện đề tài, em đã vận dụng những kiến thức nền tảng đã tích lũy đồng thời kết hợp với việc học hỏi và nghiên cứu những kiến thức mới Từ đó,
em vận dụng tối đa những gì đã thu thập được để hoàn thành một báo cáo khóa luận tốt nhất
Mặc dù đã rất cố gắng, tuy nhiên vì khả năng giới hạn nên vẫn không tránh khỏi những sai sót, em rất mong nhận được sự thông cảm và góp ý chân tình từ quý thầy
cô và các bạn Một lần nữa xin được chân thành cảm ơn mọi người
Em xin chân thành cảm ơn quý Thầy Cô!
Tp Hồ Chí Minh, ngày tháng năm
Nguyễn Tiến Đạt
Trang 5MỤC LỤC
Chương 1 GIỚI THIỆU TỔNG QUAN 2
1.1 Giới thiệu đề tài 2
1.2 Mục tiêu và phạm vi 3
1.2.1 Mục tiêu 3
1.2.2 Phạm vi 4
1.3 Ý nghĩa thực tiễn 4
1.4 Kết quả dự kiến 5
Chương 2 CÔNG NGHỆ SỬ DỤNG 6
2.1 Ứng dụng di động trên hệ điều hành Android 6
2.1.1 Cơ bản về ứng dụng Android 6
2.1.2 Sử dụng vị trí người dùng 7
2.2 Dịch vụ Google Maps Platform 8
2.2.1 Giới thiệu về Google Maps Platform 8
2.2.2 Một số ứng dụng có thể xây dựng 9
2.2.3 Cách sử dụng và phát triển 10
2.3 ASP.NET Core 11
2.3.1 Giới thiệu ASP.NET Core 11
2.3.2 Lý do lựa chọn ASP.NET 11
2.4 Angular frontend framework 12
2.4.1 Giới thiệu về Angular 12
2.4.2 Tại sao lựa chọn Angular 12
2.5 Dịch vụ Google Cloud Firebase 13
Trang 62.5.1 Giới thiệu về Firebase 13
2.5.2 Tính năng và lợi ích khi dùng Firebase 13
2.5.3 Cách sử dụng và phát triển 15
Chương 3 NGHIÊN CỨU THỰC NGHIỆM 16
3.1 Phân tích, làm rõ, đặc tả yêu cầu 16
3.1.1 Xác định yêu cầu hệ thống 16
3.1.2 Phân tích yêu cầu hệ thống 18
3.1.3 Sơ đồ Use Case 20
3.1.4 Sơ đồ Sequence 36
3.1.5 Sơ đồ State 38
3.1 Thiết kế trải nghiệm, giao diện người dùng 40
3.1.1 Nhóm màn hình Web của Điều phối viên 40
3.1.2 Nhóm màn hình Mobile xác thực người dùng 45
3.1.3 Nhóm màn hình Mobile cho Bệnh nhân gọi điện 46
3.1.4 Nhóm màn hình Mobile xem chi tiết 47
3.1.5 Nhóm màn hình Mobile cho Cấp cứu viên xử lý 48
3.2 Phân tích và thiết kế hệ thống 49
3.2.1 Thiết kế kiến trúc hệ thống 49
3.2.2 Thiết kế cơ sở dữ liệu 51
Chương 4 KẾT LUẬN 55
4.1 Kết quả đạt được 55
4.1.1 Về phía bản thân 55
4.1.2 Về phía khóa luận 55
Trang 74.2 Thuận lợi và khó khăn 56
4.2.1 Thuận lợi 56
4.2.2 Khó khăn 56
4.3 Ưu điểm và nhược điểm 56
4.3.1 Ưu điểm 56
4.3.2 Nhược điểm 57
Chương 5 HƯỚNG PHÁT TRIỂN 58
TÀI LIỆU THAM KHẢO 59
Trang 8DANH MỤC HÌNH
Hình 3-1: Sơ đồ Use-Case tổng quan 20
Hình 3-2: Biểu mẫu thông tin chi tiết yêu cầu cấp cứu 34
Hình 3-3: Biểu mẫu thông tin yêu cầu chuyển viện 35
Hình 3-4: Sơ đồ Sequence Nghiệp vụ cấp cứu ngoại viện 36
Hình 3-5: Sơ đồ State của YCCC 38
Hình 3-6: Màn hình đăng nhập Web cho Điều phối viên hoặc Quản trị viên 40
Hình 3-7: Màn hình quản lý Vai trò của Quản trị viên 41
Hình 3-8: Màn hình quản lý Người dùng của Quản trị viên 42
Hình 3-9: Màn hình giám sát năng lực trạm cấp cứu 43
Hình 3-10: Màn hình điều phối đội cấp cứu 44
Hình 3-11: Giao diện nhóm màn hình Mobile xác thực người dùng 45
Hình 3-12: Giao diện nhóm màn hình Mobile chính cho Bệnh nhân 46
Hình 3-14: Giao diện nhóm màn hình Mobile bổ trợ 47
Hình 3-13: Giao diện nhóm màn hình Mobile chính cho Cấp cứu viên 48
Hình 3-15: Sơ đồ kiến trúc hệ thống 49
Hình 3-16: Sơ đồ thiết kế CSDL 51
Trang 9DANH MỤC BẢNG
Bảng 3-1: Mô tả quy trình cấp cứu ngoại viện hiện tại 16
Bảng 3-2: Danh sách các Actor 21
Bảng 3-3: Danh sách các Use Case 22
Bảng 3-4: Đặc tả Use Case Gọi cấp cứu khẩn cấp 28
Bảng 3-5: Đặc tả Use Case Tạo yêu cầu cấp cứu 28
Bảng 3-6: Đặc tả Use Case Gọi điện thoại cấp cứu 29
Bảng 3-7: Lưu nội dung cuộc gọi 30
Bảng 3-8: Đặc tả Use Case Giám sát năng lực cấp cứu 30
Bảng 3-9: Đặc tả Use Case Điều phối đội cấp cứu 31
Bảng 3-10: Đặc tả Use Case Theo dõi thông tin thời gian thực 31
Bảng 3-11: Đặc tả Use Case Cập nhật thông tin YCCC 32
Bảng 3-12: Đặc tả Use Case Kết thúc cấp cứu 32
Bảng 3-13: Danh sách các bảng thực thể quan hệ 51
Bảng 3-14: Mô tả bảng thực thể Roles 52
Bảng 3-15: Mô tả bảng thực thể Users 52
Bảng 3-16: Mô tả bảng thực thể UserRoles 52
Bảng 3-17: Mô tả bảng thực thể Permissions 53
Bảng 3-18: Mô tả bảng thực thể OrganizationUnits 53
Bảng 3-19: Mô tả bảng thực thể UserOrganizationUnits 53
Bảng 3-20: Mô tả bảng thực thể Emergencies 54
Trang 10DANH MỤC TỪ VIẾT TẮT
Từ viết tắt Từ viết đầy đủ
HCMC EMS Ho Chi Minh City Emergency Medical System CCNV Cấp cứu ngoại viện
YCCC Yêu cầu cấp cứu
TCC / TCCNV Tổ cấp cứu / Tổ cấp cứu ngoại viện
YCCV Yêu cầu chuyển viện
CCV Cấp cứu viên
QTV Quản trị viên
ĐPV Điều phối viên
GMP Google Maps Platform
Trang 111
TÓM TẮT NỘI DUNG
Hiện nay, số lượt gọi cấp cứu 115 của người dân cứ tăng dần mỗi năm và đã tăng gấp 3 lần vào thời điểm năm 2019 (ước tính trên 25.000 cuộc gọi trong năm 2019) nếu so sánh với năn 2015 (8.787 cuộc gọi) Dù chuyên môn đã được nâng cao, tuy nhiên vẫn chưa đáp ứng được nhu cầu hiện tại của người dân Đặc biệt trong công tác điều phối, thông tin liên lạc giữa các bên và điều quan trọng là chưa kết nối hoàn toàn giữa người bệnh và phía trung tâm cấp cứu Chưa có một dịch vụ nào về gọi cấp cứu cho người dân hoàn chỉnh, chủ yếu là liên hệ thông qua số điện thoại 115 Vì vậy em
xin đề xuất đề tài khóa luận là “Xây dựng hệ thống y tế khẩn cấp cho trung tâm
cấp cứu 115” Mục tiêu của khóa luận là mô phỏng một hệ thống cung cấp khả năng
kết nối giữa người bệnh, tổ cấp cứu, bệnh viện và trung tâm điều hành trong công tác cấp cứu ngoại viện Giải pháp lựa chọn kết hợp các công nghệ để hiện thực gồm ứng dụng di động Android, ứng dụng web Angular + ASP.NET và một số dịch vụ điện toán đám mây như Google Map API Nội dung đề tài được chia thành:
- Chương 1: Giới thiệu tổng quan: Giới thiệu bối cảnh, lý do thực hiện đề tài
cũng như các giải pháp hiện tại cho vấn đề liên quan Từ đó rút ra hướng tiếp cận thực hiện đề tài
- Chương 2: Công nghệ sử dụng: Trình bày sơ lược về lý thuyết và kỹ thuật lập
trình của các công nghệ được sử dụng như: Android Java, ASP.NET, Angular, Google Map API,
- Chương 3: Nghiên cứu thực nghiệm: Phân tích, xác định yêu cầu người dùng
và hệ thống Phân tích và thiết kế hệ thống đáp ứng được yêu cầu đã đề ra
- Chương 4: Kết luận: Nêu đánh giá toàn bộ đề tài, trình bày những kết quả đạt
được, thuận lợi, khó khăn cũng như ưu nhược điểm của đề tài
- Chương 5: Hướng phát triển: Đề xuất hướng phát triển trong tương lai
Trang 122
Chương 1 GIỚI THIỆU TỔNG QUAN
1.1 Giới thiệu đề tài
Hiện nay mạng lưới cấp cứu ngoại viện đã phát triển mạnh về số lượng, bao gồm
1 trung tâm và 33 trạm cấp cứu vệ tinh phủ khắp 24 quận huyện trên địa bàn thành phố [1] Hệ thống cấp cứu ngoại viện đã hoạt động hiệu quả trong việc nâng cao khả năng đáp ứng nhu cầu người dân trong các tình huống y tế khẩn cấp, số lượt cấp cứu năm 2015 tăng từ hơn 8 000 đến hơn 25 000 trong năm 2019 [2] Tuy hoạt động hiệu quả như thế nhưng vẫn không đáp ứng hết nhu cầu người dân, cùng với việc tiếp nhận thông tin, tư vấn, điều phối lực lượng cấp cứu ngoại viện rất thô sơ, chủ yếu bằng ghi chép thủ công và trao đổi qua điện thoại bàn cố định làm cho kéo dài thời gian cấp cứu, ảnh hưởng rất nhiều đến sức khỏe người bệnh Hiện nay trong quá trình xây dựng đô thị thông minh, việc xây dựng trung tâm cơ sở dữ liệu dùng chung nhằm nâng cao hiệu quả quản lý khai thác và khả năng phân tích, dự báo thì không thể thiếu
hạ tầng dữ liệu y tế, nhất là dữ liệu về cấp cứu như tai nạn giao thông, chấn thương, đột quỵ v.v Vì vậy, cần thực hiện sớm để mạng lưới cấp cứu ngoại viện vừa hoàn thành nhiệm vụ được giao, vừa đáp ứng nhu cầu phát triển của thành phố
Mặc dù Trung tâm cấp cứu 115 TpHCM đã có một hệ thống ứng dụng công nghệ thông tin vào quá trình cấp cứu ngoại viện Tuy nhiên trong một số khía cạnh vẫn chưa phát huy được tối đa hiệu quả mà công nghệ thông tin mang lại Các trạm cấp cứu, xe cấp cứu và nhân viên thực hiện công tác y tế khẩn cấp đã đi vào quy chuẩn, chuyên nghiệp nhưng vẫn chưa ứng dụng các công cụ hỗ trợ từ xa cho người dân Sự rời ràng trong việc kết nối giữa người bệnh và tổ cấp cứu đang là vấn đề khó khăn nhất Phương pháp hiện tại và là duy nhất của trung tâm là liên lạc thông qua số điện thoại của bệnh nhân, điều nay mang lại sự phiền phức và tốn kém cho cả phía trung tâm và người bệnh
Mạng lưới cấp cứu ngoại viện vẫn chưa đáp ứng được nhu cầu của người dân Hoạt động trạm vệ tinh tuy đa dạng nhưng chưa đồng đều, thiếu xe cứu thương, nguồn nhân lực… Ngoài ra, hoạt động các trạm vệ tinh là tự nguyện, BV phải chịu thất thu
Trang 133
khi đến nơi không có bệnh nhân hoặc bệnh nhân chờ lâu quá đã tự túc di chuyển, không thu phí được Trung tâm cấp cứu 115 còn gặp nhiều khó khăn khi kết nối, trao đổi với trạm vệ tinh, các BV trong việc điều phối, hỗ trợ chuyên môn, vận chuyển người bệnh
Vì thế, xây dựng hệ thống điều hành mạng lưới cấp cứu thông minh kết nối trung tâm với người dân; kết nối Trung tâm cấp cứu 115 với kíp xe cứu thương để biết tình trạng xe cứu thương để điều phối, hỗ trợ kíp cấp cứu đi và tình hình thông tin bệnh nhân; kết nối trung tâm và BV điều trị giúp BV biết tình trạng bệnh nhân và Trung tâm biết được BV nào quá tải để điều phối… Ngoài ra, hệ thống cần có phần mềm phản hồi đánh giá, các dữ liệu phải được số hóa và phân tích định kỳ để phát triển mạng lưới cho hiệu quả Số liệu cập nhật thường xuyên trên dữ liệu dùng chung của
TP Qua đó phối hợp liên ngành và kịp thời báo cáo cho Sở Y tế những trường hợp khẩn cấp
1.2 Mục tiêu và phạm vi
1.2.1 Mục tiêu
Mục tiêu tổng quát: Xây dựng hệ thống điều hành cấp cứu tại Trung tâm cấp cứu
115, ứng dụng công nghệ thông tin và phương thức quản lý hiệu quả nhằm đáp ứng nhu cầu điều hành mạng lưới cấp cứu ngoại viện phục vụ người dân
Trang 144
- Hệ thống phải đáp ứng được mục tiêu thông tin liên lạc và kết nối giữa các bên tham gia vào hệ thống
- Hiển thị bản đồ trực quan và thông tin liên quan lên bản đồ
- Thiết kế UX/UI theo ngôn ngữ thiết kế Material Design
1.2.2 Phạm vi
- Phạm vi địa lý: khu vực địa phận Thành phố Hồ Chí Minh
- Phạm vi người dùng: mọi lứa tuổi và mọi giới tính
- Phạm vi chức năng:
o Bệnh nhân hoặc người thân bệnh nhân gọi cấp cứu
o Hỗ trợ nhân viên điều phối đội cấp cứu
o Theo dõi tiến trình cấp cứu thời gian thực
o Đăng ký thông tin y tế khẩn cấp
Nâng cao chất lượng đảm bảo sức khỏe cho người bệnh:
- Bệnh nhân cấp cứu được phục vụ kịp thời, có phương tiện và công cụ chủ động tiếp cận với dịch vụ cấp cứu Được chủ động nắm bắt thông tin, tình hiện cấp cứu hiện tại của bản thân và người thân
- Bảo vệ sự sống và an toàn của con người
- Cải thiện chất lượng cuộc sống (Thành phố an toàn – thành phố thông minh)
và điều kiện xã hội tốt hơn cho người dân
- Giúp giảm hoặc ngăn ngừa tổn thất kinh tế (Đảm bảo và duy trì cuộc sống cũng như hoạt động của người dân)
Nâng cao hiệu quả công tác quản lý, điều hành, cấp cứu:
Trang 16Ứng dụng Android là các chương trình được sử dụng trên hệ điều hành Android Các ứng dụng Android thuần túy được viết bằng các ngôn ngữ như Kotlin, Java và C++ Ngoài ra có thể sử dụng các công nghệ Cross-platform như ReactNative, Flutter
để phát triển ứng dụng Android Android SDK và Android Studio là một bộ công cụ phát triển dùng để biên dịch mã nguồn, dữ liệu và tài nguyên để đóng gói thành Android package có đuôi là apk Một file APK bao gồm tất cả nội dung của ứng dụng Android và được sử dụng để cài đặt ứng dụng lên các thiết bị chạy Android
Hệ thống Android hoạt động dựa trên nguyên tắc quyền hạn ít nhất Do đó, mỗi
một ứng dụng khi hoạt động sẽ chỉ có quyền truy cập vào các thành phần mà nó yêu cầu để thực hiện công việc của nó Điều này tạo ra một môi trường an toàn khi mà các ứng dụng không thể truy cập vào các thành phần khác của hệ thống mà không có quyền Tuy nhiên chúng ta vẫn sẽ có một số phương pháp để chia sẽ dữ liệu và sử dụng các thành phần của hệ thống [4]
Thành phần ứng dụng (App Components) là các khối xây dựng cơ bản của một ứng dụng Android Mỗi một component sẽ là một điều khởi động cho phép hệ thống hoặc người dùng có thể truy cập ứng dụng Có một số loại components trong ứng dụng Android như sau:
- Activities: Là một điểm bắt đầu cho một hoạt động tương tác với phía người
dùng Nó đại diện cho một màn hình với các giao diện người dùng
- Services: Là một điểm bắt đầu cho mục đích muốn giữ cho ứng dụng được hoạt
động ngầm (background) hoặc thông báo (foreground / notifications)
Trang 177
- Broadcast receivers: Là một thành phần chuyên dùng để phân phối và phản hồi
các sự kiện có phạm vi toàn hệ thống
- Content providers: Là một thành phần cho phép chia sẽ dữ liệu trong ứng dụng,
dữ liệu SQLite, dữ liệu trển dĩa, cho các ứng dụng khác
Ba trong số bốn loại component (activities, service và broadcast receiver) là có thể
kích hoạt bằng một lời gọi bất đồng bộ gọi là Intent Intent giúp liên kết các
component lại với nhau trong lúc runtime Intent đưa ra các yêu cầu về thao tác cho các component và quy định các component đang hoạt động cho ứng dụng nào
2.1.2 Sử dụng vị trí người dùng
Một trong những tính năng đặc biệt của ứng dụng di động đó là thông tin về vị trí Người dùng có thể mang thiết bị của họ đến bất kỳ đâu và thông những thông tin vị trí nhằm tăng trải nghiệm của người dùng Các APIs về vị trí của Google Play service
sẽ hỗ trợ cho việc theo dõi vị trí, khu vực địa lý và nhận biết các hoạt động vị trí
Để bảo vệ quyền riêng tư của người dùng, ứng dụng sử dụng các dịch vụ vị trí phải yêu cầu quyền truy cập thông tin vị trí Khi yêu cầu về quyền hạn sử dụng, người dùng sẽ quyết định họ có cho phép ứng dụng sử dụng các dịch vụ liên quan không Cho nên một kinh nghiệm đó là nên nêu rõ lý do vì sao sử dụng các dịch vụ này để
- Ứng dụng chia sẽ thông tin vị trí trong gia đình
- Ứng dụng IoT điều khiển các thiết bị dựa trên vị trí của người dùng
Ngoài ACCESS_COARSE_LOCATION và (hoặc) ACCESS_FINE_LOCATION
để sử dụng dịch vụ vị trí Ở các phiên bản Android 10 trở lên, thì phải khai báo quyền ACCESS_BACKGROUND_LOCATION ở file manifest [6]
Trang 188
Chú ý: Các thiết có hệ điều hành Android 8 trở lên thì khi chạy ứng dụng ở
background chỉ được phép truy cập và sử dụng một vài lần trong một giờ [7]
2.1.2.2 Foreground location
Một ứng dụng có tính năng chia sẽ hoặc nhận thông tin vị trí một vài lần có giới hạn thì nên truy cập vị trí với foreground, ví dụ:
- Các ứng dụng chỉ đường, hướng dẫn điều hướng di chuyển
- Các ứng dụng nhắn tin, chia sẽ thông tin vị trí hiện tại
Hệ thống sẽ cân nhắc sử dụng vị trí ở dạng foreground trong một số tình huống sau:
- Một activity thuộc về ứng dụng đang được hiển thị
- Một foreground service đang được vận hành
2.2 Dịch vụ Google Maps Platform
2.2.1 Giới thiệu về Google Maps Platform
GMP là một bộ gồm tập hợp các APIs và các SDKs cho phép các lập trình viên nhúng Google Maps vào bên trong các ứng dụng di động, các trang web hoặc có thể lấy dữ liệu từ Google Maps về Có rất nhiều dịch vụ hữu ích được tích hợp trong GMP liên quan đến việc sử dụng hệ thống thông tin địa lý Tùy theo những gì mà chúng ta cần mà có thể sử dụng một hoặc kết hợp nhiều APIs và SDKs dưới đây:
- Maps: Cho phép hiển thị bản đồ dưới dạng hình ảnh hoặc dạng bản đồ tương tác Tùy biến bản đồ với những markers, lines, màu sắc, polygons và hình ảnh, Trong đó có rất nhiều APIs và SDKs như:
o Maps JavaScript API
o Maps SDK for Android
o Maps SDK for iOS
o Maps Static API
o Maps URLs
Trang 199
- Routes: Giúp người dùng tìm ra đường đi tốt nhất từ điểm A đến điểm Z với sự toàn diện của dữ liệu và thông tin giao thông theo thời gian thực Gồm các tính năng được cung cấp thành các API như:
o Directions: Chỉ đường dành cho các phương tiện công cộng, xe đạp, xe hơi và đi bộ Tính toàn thời gian di chuyển dựa trên giao thông theo thời gian thực
o Distance Matrix: Cung cấp thời gian và khoảng cách di chuyển cho một hoặc nhiều địa điểm
- Places: Giúp người dùng khám phá ra các thông tin chi tiết của thế giới thực từ hơn 200 triệu địa điểm thú vị trên bản đồ của Google Maps Những tính năng liên quan đến Place gồm: Tìm kiếm, xem thông tin chi tiết, hình ảnh, tự động điền thông tin,
Trong phạm vi của ứng dụng, ở đây chúng ta sẽ sử dụng hai dịch vụ của GMP là Maps và Routes
- Gaming: Tạo ra các game nhập vai thế giới thực với hàng triệu mô hình thực thể 3D, với các dữ liệu luôn luôn được cập nhật trên bản đồ thế giới thực và làm cho việc tích hợp trở nên liền mạch hơn với Unity Ví dụ Pokemon Go
- Theo dõi hàng hóa: Cải thiện hiệu quả kinh doanh hơn bằng việc định vị phương tiện và hàng hóa theo thời gian thực, trực quan hóa vị trí của hàng hóa
và quá trình di chuyển của phương tiện trong các chuyến hàng phức tạp Còn rất nhiều ứng dụng cho phép xây dựng từ các dịch vụ của Google Maps Quan trọng là đều mang lại lợi ích cho các bên: Google cung cấp dịch vụ, bên cung cấp ứng
Trang 20Về phần chi phí sử dụng các API của GMP như sau:
- Miễn phí Map SDK for Android
- Đối với Maps Javascript API có giá mỗi 1000 request là $7
- Directions và Directions Advanced của Routes lần lượt là $5 và $10 mỗi 1000 request
- Geocoding của Places là $5 mỗi 1000 request
Tuy nhiên, GMP sẽ cho chúng ta miễn phí $200 mỗi tháng để sử dụng các dịch vụ Tức là nếu chúng ta sử dụng các có tính phí, mà vẫn nằm trong $200 miễn phí của GMP thì không cần phải trả bất kỳ khoản phí nào thêm
Sau khi tạo thành công tài khoản thanh toán, chúng ta cần tạo một project trong GCP Project trong GCP là một đơn vị cơ bản dùng để quản lý các dịch vụ tài nguyên, chi phí, các API và SDK được sử dụng Các chi phí phát sinh trong quá trình sử dụng của project sẽ được tính cho tài khoản thanh toán được liên kết
Tiếp đến chúng ta cần kích hoạt các API và SDK của GMP trong project Và sau
đó tạo một API key để có thể sử dụng GMP trong các ứng dụng Để tạo API key, từ Google Cloud Console của project, và phần APIs & Services / Credentials và thêm một Credentials mới
Trang 2111
2.3 ASP.NET Core
2.3.1 Giới thiệu ASP.NET Core
Trước khi giới thiệu về ASP.NET, chúng ta cùng đi sơ qua về NET .NET là một nền tảng dùng để phát triển, xây dựng nhiều loại phần mềm khác nhau Nó miễn phí
và là mã nguồn mở Với NET, chúng ta có thể sử dụng nhiều ngôn ngữ, trình soạn thảo, thư viện khác nhau để xây dựng web, ứng dụng di động, ứng dụng desktop, game, IoT
ASP.NET là một framework phát triển ứng dụng web mã nguồn mở, được tạo ra bởi Microsoft, nhằm xây dựng ứng dụng web hoặc các dựng vụ web với NET Nó là
đa nền tảng và có thể chạy trên Window, Linux, macOS, Docker
- Backend code: Khi sử dụng ASP.NET thì các đoạn code ở backend như là
xử lý nghiệp vụ, truy cập dữ liệu được viết bằng C#, F# hoặc Visual
Basic Với một hệ sinh thái gồ rất nhiều package và thư viện chúng ta có thể dễ dàng phát triển và mở rộng ứng dụng
- ASP.NET có thể tích hợp với một số framework frontend phổ biến hiện giờ như như Angular và React Nó bao gồm các template đã được cấu hình sẵn để kết hợp với ASP.NET
- ASP.NET cho phép chúng ta xây dựng nhiều loại ứng dụng web như là web page, REST APIs, microservice và các hub kết nối realtime
Trang 2212
2.4 Angular frontend framework
2.4.1 Giới thiệu về Angular
Angular là một nền tảng phát triển, được xây dựng dựa trên TypeScript Và bởi vì
là một nền tảng cho nên nó bao gồm:
- Một framework được thiết kế theo hướng thành phần (component-based)
để dễ dàng mở rộng ứng dụng web
- Một bộ các thư viện dễ dàng tích hợp với rất nhiều tính năng trong đó như
là định tuyến (routing), quản lý form nhập liệu, giao tiếp client-server,
- Một nhóm các công cụ cho developer giúp ích trong việc phát triển, kiểm thử và triển khai ứng dụng
Với Angular, chúng ta có thể đạt được nhiều lợi thế trong việc mở rộng ứng dụng Angular được thiết kế để chỉnh sửa, cập nhật dễ dàng nhất Angular là một hệ sinh thái gồm một nhóm đa dạng hơn 1.7 triệu lập trình viên, những người chuyên viết thư viện và những người sáng tạo nội dung
2.4.2 Tại sao lựa chọn Angular
Một số tính năng nổi bật khiến chúng ta nên cân nhắc sử dụng Angular:
- Tự động tạo mã nguồn: Angular có nhiều template cho những công việc phổ biến như tạo routing, component, testing Nó giúp chúng ta giảm thời gian viết code bằng tay cho những mẫu có sẵn như thế
- Mã nguồn được chia thành các file theo từng chức năng: dễ dàng quản lý,
mở rộng, sửa lỗi vì Angular tổ chức theo dạng module và component Mỗi module và component cũng được tách thành các file sao cho phù hợp
- Template: thành phần UI của Angular được viết trong các file html, data được truyền lên nhờ vào binding
- Công cụ dòng lệnh: với Angular CLI, nó sẽ cung cấp cho lập trình viên các tool hỗ trợ việc build, thêm component, test và deploy
Trang 2313
- Testing: cung cấp Karma cho unit-test các module, component Hoặc tùy chọn các end-to-end test như Cypress, Protractor,
2.5 Dịch vụ Google Cloud Firebase
2.5.1 Giới thiệu về Firebase
Firebase là một nền tảng phát triển phần mềm được phát triển bởi Firebase Inc và được cung cấp bở Google từ năm 2014 Nền tảng này là một giải pháp Backend-as-a-Service cho ứng dụng di động và ứng dụng web Bao gồm các dịch vụ xây dựng, kiểm thử và quản lý ứng dụng
BaaS là một giải pháp cho phép loại bỏ sự cần thiết của việc tự quản lý cơ sở dữ liệu backend và các phần cứng liên quan Firebase được tin dùng và phổ biến vì nó giúp các nhà phát triển có thể xây dựng các hệ thống kiểu Client-Server nhanh chóng,
ít tốn công sức và cũng như chi phí bỏ ra cho phép Server giảm đi đáng kể [8]
2.5.2 Tính năng và lợi ích khi dùng Firebase
2.5.2.1 Các chức năng chính của Firebase
a) Firebase Authentication
Hầu hết tất cả các ứng dụng đều cần phải định danh người dùng Việc biết được định danh người dùng sẽ giúp bảo mật được dữ liệu người dùng và cá nhân hóa các trải nghiệm của người dùng trên tất cả thiết bị của họ
Firebase Authentication cung cấp các dịch vụ backend, dễ dàng sử dụng các SDKs
và các thư viện UI để xác thực tài khoản Firebase Authentication hỗ trợ các dạng xác thực từ mật khẩu, số điện thoại, các nhà cung cấp xác thực bên thứ 3 như Google, Facebook, Twitter,
b) Firebase Realtime Database
Firebase Realtime Database là cơ sở dữ liệu được host trên nền tảng cloud Dữ liệu
sẽ được lưu trữ theo dạng JSON và được đồng bộ theo thời gian thực khi client kết nối Khi xây dựng các ứng dụng đa nền tảng cho iOS, Android và Javascript, tất cả
Trang 24Sử dụng Firebase Cloud Messaging, chúng ta có thể gửi thông báo đến ứng dụng client giống như là có một thông báo email mới hoặc thông báo cập nhật dữ liệu Chúng ta có thể gửi tin nhắn thông báo để thúc đẩy và giữ chân người dùng Cho phép người dùng gửi tin nhắn miễn phí ngay lập tức với lượng payload lên đến 4KB
2.5.2.2 Lợi ích của Firebase
a) Xây dựng ứng dụng nhanh chóng
Với Firebase, lập trình viên có thể tiết kiệm thời gian cho việc xây dựng các ứng dụng phía client Không phải tốn nhân lực để quản lý hệ thống, cơ sở hạ tầng phía backend Firebase cũng hỗ trợ cho việc xây dựng các ứng dụng đa nền tảng như mobile, web và cả game
b) Miễn phí với một số tính năng
Khi bắt đầu, Firebase không yêu cầu phải trả phí cũng như không cần phải có thẻ thanh toán Hầu hết các dịch vụ của Firebase đều miễn phí hoặc với một số lượng rất lớn Khi chúng ta cần sử dụng thêm khi đến giới hạn hoặc muốn sử dụng một dịch vụ đặc biệt, chúng ta chỉ việc chi trả cho những gì chúng ta sẽ xài Google gọi nó là Pay
as you go
Trang 2515
c) Tính linh hoạt và khả năng mở rộng
Ngoài việc sử dụng trực tiếp các dịch vụ của Firebase làm backend Nhà phát triển
có thể tự tùy biến và kết hợp các dịch vụ đấy để xây dựng server của riêng mình Firebase cho phép kết hợp với một số công nghệ backend như Node.JS, Java, Python,
Go và C# để tùy biến việc quản lý backend
d) Tài liệu hướng dẫn đầy đủ
Các tài liệu hướng dẫn sử dụng dịch vụ cũng như reference SDK rất là chi tiết Các trang hướng dẫn của Firebase sẽ giúp chúng ta tìm thấy các thông tin cần thiết để tích hợp vào các công nghệ đang hỗ trợ Hơn thế nữa còn có cả video hướng dẫn trên kênh Youtube của Firebase
2.5.3 Cách sử dụng và phát triển
Tương tự như Google Map Platform, để sử dụng được Firebase, chúng ta cũng cần
có một project cho ứng dụng của chúng ta trong Firebase Console Sau đó là đăng ký ứng dụng mà chúng ta sẽ thêm vào cho Firebase Chúng ta có thể thêm ứng dụng của mình là Android, iOS hoặc Web và Firebase sẽ hướng dẫn chúng ta các bước để đăng
ký
Để cài đặc các dependencies của Firebase đối với Android chúng ta cần thêm tập tin google-services.json (được tải từ Firebase) vào thư mục app của project Android Cấu hình và thêm những dependencies cho Firebase vào trong hai tập tin build.gradle
ở thư mục root và app của project Còn ở ứng dụng web thì chúng ta có thể sử dụng các package manager hoặc CDN để cấu hình Firebase cho nó
Trang 2616
Chương 3 NGHIÊN CỨU THỰC NGHIỆM
3.1 Phân tích, làm rõ, đặc tả yêu cầu
3.1.1 Xác định yêu cầu hệ thống
Ở quy trình cấp cứu ngoại viện hiện tại, bệnh nhân gọi điện cấp cứu cho trung tâm bằng số điện thoại 115 Điều phối viên ghi nhận lại thông tin, sau đó lựa chọn đội cấp cứu phù hợp nhất từ các trạm cấp cứu trên khắp tpHCM Đội cấp cứu sau đó chuẩn
bị thiết bị và lên đường đến địa điểm cấp cứu Sau khi hoàn tất công tác cấp cứu, bệnh nhân sẽ được chuyển về bệnh viện phù hợp Kết thúc ca cấp cứu bằng việc lập và ghi nhận báo cáo
Với quy trình và việc ứng dụng CNTT vào quy trình ở thời điểm hiện tại, trung tâm cấp cứu 115 Tp.HCM gặp nhiều khó khăn trong công tác quản lý, vận hành Ngoài ra, đối với phía bệnh nhân cũng gặp nhiều hạn chế khi cần cấp cứu
Qua khảo sát tìm hiểu và đọc tài liệu, ngoài những yêu cầu về các chức năng quản
lý thông dụng như quản lý danh sách nhân viên, danh sách bệnh viện, danh sách các trạm cấp cứu, Trung tâm cấp cứu 115 Thành phố Hồ Chí Minh còn có một quy trình nghiệp vụ đặc thù cho công tác y tế khẩn cấp đối với người dân như sau [9] [10]:
Bảng 3-1: Mô tả quy trình cấp cứu ngoại viện hiện tại
Trách nhiệm Các bước thực hiện Mô tả / tài liệu liên quan
Bộ phận điều
hành Tiếp nhận thông tin
Tiếp nhận thông tin thông tin YCCC: địa điểm, khoa phòng, số người cần cấp cứu, tình trạng hiện tại,
Thông báo lệnh điều động Tổ cấp cứu ngoại viện
Trang 27Xe cấp cứu ngoại viện thường trực 24/24 giờ ở vị trí quy định
Sẵn sàng mọi điều kiện trong vòng 5 phút Tùy trường hợp cấp cứu, Tổ trưởng TCCNV điều động bác sĩ Nội/Ngoại Bác
sĩ Nội/Ngoại có mặt ở TCCNV trong vòng
5 phút
TCCNV Cấp cứu tại hiện
trường
Khẩn trương triển khai cấp cứu: phân loại
và sơ cứu, ra y lệnh xử trí kịp thời
Sau cấp cứu tùy trình trạng để giải quyết: Bệnh nhân nhẹ, ổn định cho chăm sóc tại nhà; Bệnh nhân nặng thì vận chuyển về trạm cấp cứu hoặc bệnh viện thích hợp; Trên đường vận chuyển phải liên tục thông tin cho bệnh viện tiếp nhận
Ghi vào phiếu chuyển viện và sổ cấp cứu ngoại viện đầy đủ nội dung theo quy định
Tổ trường
TCCNV Báo cáo và lưu hồ sơ Trong và sau khi hoàn thành cấp cứ phải
báo cáo với Trung tâm và ghi sổ báo cáo
Trang 2818
Từ quá trình khảo sát, tìm hiểu các tin tức, tài liệu liên quan Cũng như đã được biết Trung tâm cấp cứu hiện đang sử dụng một hệ thống giải quyết các vấn đề được
đề cập ở trên [11] [12] Hế thống sẽ cung cấp các chức năng sau:
- Bệnh nhân hoặc người thân bệnh nhân gọi cấp cứu
- Hỗ trợ nhân viên điều phối đội cấp cứu
- Theo dõi tiến trình cấp cứu thời gian thực
- Đăng ký thông tin y tế khẩn cấp
3.1.2 Phân tích yêu cầu hệ thống
3.1.2.1 Bệnh nhân hoặc người thân gọi cấp cứu
Bệnh nhận hoặc người thân bệnh nhân, sử dụng ứng dụng để gọi điện cấp cứu cho trung tâm cấp cứu 115 Cuộc gọi sẽ được chuyển tiếp cho điều phối viên tại trạm cấp cứu thích hợp Nội dung cuộc gọi sẽ được speech to text để thông tin cấp cứu được tiếp nhận nhanh chóng Các thông tin từ nội dung cuộc gọi và thông tin được đăng ký trước đó của bệnh nhân sẽ được chuyển đổi và tạo thành một yêu cầu cấp cứu trên hệ thống và cho phép phía trung tâm tiến hành thực hiện nghiệp vụ của họ
Với cách truyền thống, bệnh nhân bắt buộc gọi điện vào hotline và cung cấp thông tin cho điều phối viên tại trung tâm Việc này sẽ gây chậm chạm tại 2 giai đoạn là nhập thông tin cá nhân cũng như xác định vị trí của bệnh nhân Tuy nhiên nếu sử dụng chức năng này, thời gian sẽ được tối ưu với các thông tin đã được cung cấp trước Cùng với đó là tọa độ GPS cũng được cung cấp ngay lúc tạo giúp bỏ qua được bước xác định vị trí
3.1.2.2 Hỗ trợ nhân viên điều phối cấp cứu
Sau khi ghi nhận cuộc gọi cấp cứu với bệnh nhân, điều phối viên cần phải lựa chọn đội cấp cứu thích hợp Hệ thống sẽ giúp cho điều phối viên nắm bắt được năng lực cấp cứu của trạm và tình hình các ca cấp cứu hiện có Chẳng hạn như vị trí, tình trạng nghiệp vụ của đội cấp cứu, tình trạng các yêu cầu cấp cứu
Trang 2919
Khi thực hiện điều phối cho một bệnh nhân, hệ thống đề xuất cho điều phối viên các đội cấp cứu thích hợp nhất Điều phối viên có thể chọn lựa và chỉ định đội cấp cứu đó thực hiện nghiệp vụ của họ
3.1.2.3 Theo dõi tiến trình cấp cứu thời gian thực
Với tư cách là một bệnh nhân hoặc người thân bệnh nhân, khi chúng ta gọi cấp cứu, cảm giác lo lắng là điều luôn bao vây Không biết quá trình cấp cứu đến bước nào rồi? đội cấp cứu hiện đang đi đến đâu? Hay là với tư cách là một điều phối viên cũng như cấp cứu viên, chúng ta luôn cần nắm rõ thông tin nhanh nhất, chính xác nhất (đặc biệt là vị trí khi đang tiếp cận đến người bệnh)
Vì thế, hệ thống cung cấp khả năng cập nhật thông tin theo thời gian thực Các thông tin cấp cứu mỗi khi có thay đổi như là chỉnh sửa thông tin bệnh lý đều được hiển thị lại cho bệnh nhân, điều phối viên, cấp cứu viên Còn với thông tin vị trí của bệnh nhân và cấp cứu viên, cứ mỗi khi di chuyển đều được hiển thị trên màn hình bản đồ tương ứng
3.1.2.4 Đăng ký thông tin y tế khẩn cấp
Với những bệnh nhân hay có tiền sử bệnh án, những người hay gặp phải tình trạng cần phải gọi cấp cứu Những người có bệnh đặc biệt nguy hiểm cần cấp cứu kịp lúc như đột quỵ, trụy tim, hoặc hay ở một mình không có người thân bên cạnh
Người dùng mới, khi đăng ký có thể khai báo các thông tin y tế của bản thân, từ
đó đẩy nhanh quá trình xác định tình trạng của bệnh nhân khi họ gọi cấp cứu
Trang 3020
3.1.3 Sơ đồ Use Case
3.1.3.1 Sơ đồ Use Case
Hình 3-1: Sơ đồ Use-Case tổng quan
Trang 3121
Bảng 3-2: Danh sách các Actor
Mã số Tên Actor Ý nghĩa
Actor01 Người dùng Là Actor tổng quát cho các Actor cụ thể Người dùng
cung cấp các chức năng cơ bản như: Đăng nhập, Nhắn tin, Nhận thông báo, Cập nhật thông tin tài khoản, Actor02 Bệnh nhân Bệnh nhân có thể sử dụng hai loại tài khoản để đăng
nhập và thực hiện các chức năng
Ngoài các chức năng của Người dùng, Bệnh nhân có thể Tạo YCCC, Xem và cập nhật các thông tin của YCCC theo một số luật nghiệp vụ chuyên môn Actor03 Nhân viên Là Actor tổng quát của các Actor nhân viên cụ thể
Nhân viên có thể Xem và cập nhật thông tin của các YCCC theo luật nghiệp vụ Một số loại Nhân viên có thể xem thống kê số liệu cụ thể
Actor04 Quản trị viên
Actor06 Điều phối viên
(ĐPV)
ĐPV là người đứng giữa làm công tác liên lạc, điều phối giữa các bên Bệnh nhân, CCV, Bệnh viên trong một số trường hợp đặc biệt
ĐPV còn là người trực tiếp quan sát tất cả các YCCC
và đưa ra quyết định điều phối thích hợp
Trang 3222
Bảng 3-3: Danh sách các Use Case
Mã số Tên Use Case Ý nghĩa
UC-01.01 Xác thực định danh Yêu cầu đăng nhập để xác thực và phân
Trang 3323
UC-08.01 Kết thúc cấp cứu Hoàn tất công tác cấp cứu ngoại viện, kết
thúc YCCC, hoàn thành và lưu trữ báo cáo UC-03.01 Quản lý tài khoản Quản lý tài khoản người dùng (thêm, xem,
xóa, khôi phục mật khẩu, vô hiệu)
Use Case Xác thực định danh:
- Mục đích: Xác thực thông tin định danh người dùng, phân quyền và đảm bảo
an toàn bảo mật cho hệ thống
- Actor: Người dùng
- Mô tả: Tất cả các chức năng đều phải được xác thực và thuộc phân quyền mới được phép sử dụng:
o Người dùng: Quản lý tài khoản cá nhân
o Bệnh nhân: Thêm YCCC, Xem thông tin YCCC, Cập nhật thông tin YCCC
o Nhân viên: Xem thông tin YCCC, Cập nhật thông tin YCCC
o QTV: Quản lý tài khoản, Quản lý YCCC
o CCV: Xem thông tin YCCC, Cập nhật thông tin YCCC, Tiếp nhận cấp cứu, Sơ cứu và xử trí, Nhập viện / Nhập trạm, Lập báo cáo, Kết thúc cấp cứu
o ĐPV: Xem thông tin YCCC, Cập nhật thông tin YCCC, Kết thúc cấp cứu
Use Case Gọi cấp cứu khẩn cấp:
- Mục đích: Xác thực định danh người dùng nhanh chóng, trong trường hợp khẩn cấp Người dùng muốn xác thực để thực hiện các chức năng của Bệnh nhân
- Actor: Người dùng
Trang 3424
- Mô tả: Trong trường hợp người dùng chưa kịp xác thực định danh bằng phương pháp truyền thống (nhập thông tin) Nhưng lại cần gấp chức năng của Người bệnh để gọi cấp cứu Xác thực vô danh sẽ tạo và đăng nhập dưới phân quyền của Bệnh nhân như mô tả ở Use case Xác thực định danh
Use Case Tạo yêu cầu cấp cứu:
- Mục đích: Bệnh nhân khi cần gọi cấp cứu và muốn trung tâm cấp cứu biết đến YCCC của mình
- Actor: Bệnh nhân
- Mô tả: Trong tình huống cần gọi cấp cứu, Bệnh nhân chọn chức năng gọi cấp cứu Một YCCC được tạo ra, thông báo cho bên trạm cấp cứu thích hợp dựa trên thông tin vị trí của bệnh nhân thực hiện yêu cầu
Use Case Gọi điện thoại cấp cứu:
- Mục đích: Bệnh nhân khi cần gọi điện trực tiếp đến trung tâm cấp cứu để cung cấp thông tin về tình trạng cấp cứu
- Actor: Bệnh nhân
- Mô tả: Trong tình huống cần gọi cấp cứu, Bệnh nhân chọn chức năng gọi cấp cứu Cuộc gọi video được kết nối giữa bệnh nhân và điều phối viên
Use Case Lưu nội dung cuộc gọi:
- Mục đích: Lưu trữ lại nội dung cuộc trò truyện giữa bệnh nhân và điều phối viên để thuận tiện cho nghiệp vụ cấp cứu sau này
- Actor: Điều phối viên
- Mô tả: Sau khi cuộc gọi giữa bệnh nhân và điều phối viên kết thúc Nội dung của cuộ gọi sẽ được xuất thành file ghi âm để lưu lại và nội dung được speech-to-text sau đó cập nhật vào thông tin của YCCC
Trang 3525
Use Case Giám sát năng lực cấp cứu:
- Mục đích: Điều phối viên có thể nắm bắt được năng lực cấp cứu của trạm dựa trên tình trạng hiện tại của trạm
- Actor: Điều phối viên
- Mô tả: Điều phối viên dùng màn hình giám sát của ứng dụng web có thể nắm bắt, theo dõi được năng lực cấp cứu hiện tại của trạm để từ đó có những quyết định điều phối phù hợp dành cho bệnh nhân
Use Case Giám sát yêu cầu cấp cứu:
- Mục đích: Điều phối viên có thể theo dõi danh sách thông tin các yêu cầu cấp cứu hiện có
- Actor: Điều phối viên
- Mô tả: Điều phối viên dùng màn hình giám sát của ứng dụng web có thể nắm bắt, theo dõi được danh sách thông tin các yêu cầu cấp cứu hiện đang yêu cầu đối với trạm cấp cứu
Use Case Giám sát đội cấp cứu:
- Mục đích: Điều phối viên có thể theo dõi danh các đội cấp cứu trực thuộc trạm cấp cứu, tình trạng, vị trí của họ
- Actor: Điều phối viên
- Mô tả: Điều phối viên dùng màn hình giám sát của ứng dụng web có thể theo dõi danh các đội cấp cứu trực thuộc trạm cấp cứu, tình trạng, vị trí của họ