Quy trình nghiệp vụ của nhân viên Y tế: Nhân viên y tế sau khi đăng nhập vào hệ thống sẽ có thể tìm kiếm và quản lý thông tin người dân, check thông tin của người dân, thống kê số lượng
Trang 1-
ĐỒ ÁN TỐT NGHIỆP NGÀNH KỸ THUẬT PHẦN MỀM
XÂY DỰNG ỨNG DỤNG WEBSITE HỆ THỐNG THÔNG TIN QUẢN
LÝ KHAI BÁO Y TẾ ĐIỆN TỬ SỬ DỤNG NODEJS, REACTJS VÀ
MONGODB
CBHD : ThS Nguyễn Đức Lưu Sinh viên : Nguyễn Thị Ngọc Ánh
Mã số sinh viên : 2018604140
Hà Nội – Năm 2022
Trang 2DANH MỤC BẢNG BIỂU ii
MỤC LỤC HÌNH VẼ iii
MỞ ĐẦU 1
CHƯƠNG 1 CƠ SỞ LÝ THUYẾT 4
1.1 Tổng quan về website khai báo y tế 4
1.1.1 Khai báo y tế 4
1.1.2 Tình hình khai báo y tế hiện nay 4
1.2 Các công cụ thiết kế website hệ thống thông tin khai báo y tế 5
1.2.1 NodeJS 5
1.2.2 Javascript 6
1.2.3 ReactJS 7
1.2.4 MongoDB 8
1.3 Kiến trúc phần mềm 9
CHƯƠNG 2 PHÂN TÍCH THIẾT KẾ HỆ THỐNG 10
2.1 Phân tích yêu cầu 10
2.2 Các yêu cầu phi chức năng 11
2.3 Biểu đồ use case 11
2.3.1 Biểu đồ use case tổng quan 11
2.3.2 Use case phân rã người dân đăng nhập 12
2.3.3 Use case phân rã quản lý thông tin cá nhân người dân 13
2.3.4 Use case phân rã quản lý thông tin người dân 13
2.3.5 Use case phân rã tạo mã QR 14
2.4 Mô tả chi tiết use case 14
Trang 32.4.2 Mô tả use case Đăng nhập của người dân 15
2.4.3 Mô tả use case Tạo QR code 17
2.4.4 Mô tả use case quản lý thông tin người dân 18
2.4.5 Mô tả use case người dân cập nhật thông tin 19
2.4.6 Mô tả use case người dân khai báo khẩn 20
2.5 Biểu đồ trình tự 22
2.5.1 Chức năng đăng nhập của người dân 22
2.5.2 Chức năng đăng nhập của nhân viên y tế 23
2.5.3 Chức năng tạo mã QR code 24
2.5.4 Chức năng cập nhật thông tin khai báo người dân 25
2.5.5 Chức năng quản lý thông tin người dân 26
2.6 Sơ đồ hoạt động 27
2.6.1 Chức năng đăng nhập của nhân viên y tế 27
2.6.2 Chức năng đăng nhập của người dân 28
2.6.3 Chức năng tạo QR code của người dân 29
2.6.4 Chức năng quản lý thông tin người dân 30
2.6.5 Chức năng xem khai báo chi tiết người dân 31
2.7 Thiết kế cơ sở dữ liệu 32
2.7.1 Quan hệ giữa các bảng 32
2.7.2 Chi tiết các bảng 32
2.8 Thiết kế giao diện 35
2.8.1 Màn hình đăng nhập 35
2.8.2 Màn hình nhập mã otp 35
Trang 42.8.4 Màn hình mã QR 37
2.8.5 Màn hình khai báo khẩn cấp 37
2.8.6 Màn hình danh sách khai báo y tế 38
CHƯƠNG 3 CÀI ĐẶT CHƯƠNG TRÌNH VÀ KIỂM THỬ HỆ THỐNG 39
3.1 Cài đặt chương trình 39
3.2 Phần mềm khai báo y tế điện tử 40
3.2.1 Màn hình chức năng đăng nhập của người dân 40
3.2.2 Màn hình trang chủ khai báo y tế 42
3.2.3 Màn hình hướng dẫn khai báo y tế 44
3.2.4 Màn hình thống kê khai báo y tế của nhân viên y tế 44
3.3 Kiểm thử phần mềm khai báo y tế điện tử 46
3.3.1 Kiểm thử chức năng đăng nhập của người dân 46
3.3.2 Kiểm thử chức năng đăng nhập của nhân viên y tế 48
3.3.3 Kiểm thử chức năng khai báo y tế 49
3.3.4 Kiểm thử chức năng khai báo khẩn cấp 55
KẾT LUẬN 59
TÀI LIỆU THAM KHẢO 60
PHỤ LỤC 61
Trang 5Là một sinh viên trường đại học Công nghiệp Hà Nội, đồ án tốt nghiệp
là minh chứng cho những kiến thức đã có sau bốn năm học tập Trong quá trình hoàn thành đồ án tốt nghiệp, ngoài sự cố gắng của bản thân em cũng nhận được sự hướng dẫn tận tình của thầy cô cùng các anh chị bạn bè Qua đây, em xin chân thành cảm ơn khoa Công nghệ thông tin, trường đại học Công nghiệp
Hà Nội đã trang bị kiến thức cho em trong suốt quá trình học tập và tạo cơ hội
để em được làm đồ án tốt nghiệp Đặc biệt, em cảm ơn tới thầy ThS Nguyễn Đức Lưu đã luôn giúp đỡ, hướng dẫn, chỉ bảo tận tình để em hoàn thành tốt đồ
án của mình Em đã cố gắng hoàn thành đồ án tốt nghiệp nhưng vẫn rất mong nhận được sự đóng góp ý của thầy cô và các bạn để đồ án của em được hoàn thiện hơn
Em xin chân thành cảm ơn!
Trang 6DANH MỤC BẢNG BIỂU
Bảng 1.1: Các yêu cầu phi chức năng 11
Bảng 2.1: Chi tiết bảng admin 33
Bảng 2.2: Chi tiết bảng user 35
Bảng 2.3: Chi tiết bảng form 36
Bảng 2.4: Chi tiết bảng formtype 36
Bảng 2.5: Chi tiết bảng question 37
Bảng 2.6: Chi tiết bảng answer 37
Bảng 3.1: Kiểm thử chức năng đăng nhập của người dân 50
Bảng 3.2: Kiểm thử chức năng đăng nhập của nhân viên y tế 52
Bảng 3.3: Kiểm thử chức năng khai báo y tế 54
Bảng 3.4: Kiểm thử chức năng khai báo khẩn cấp 60
Trang 7MỤC LỤC HÌNH VẼ
Hình 2.1 Biểu đồ use case tổng quan 11
Hình 2.2: Biểu đồ use case phân rã đăng nhập của người dân 12
Hình 2.3: Biểu đồ use case phân rã quản lý thông tin cá nhân 13
Hình 2.4: Biểu đồ use case phân rã quản lý thông tin người dân 13
Hình 2.5: Biểu đồ use case phân rã quản lý tài khoản 14
Hình 2.6: Biểu đồ trình tự chức năng đăng nhập của người dân 22
Hình 2.7: Biểu đồ trình tự chức năng đăng nhập của admin và nhân viên y tế 23
Hình 2.8: Biểu đồ trình tự chức năng tạo mã QR Code 24
Hình 2.9: Biểu đồ trình tự chức năng cập nhật thông tin người dân 25
Hình 2.10: Sơ đồ hoạt động nhân viên y tế đăng nhập 27
Hình 2.11: Sơ đồ hoạt động chức năng người dân đăng nhập 28
Hình 2.12: Sơ đồ hoạt động người dân tạo QR code 29
Hình 2.13: Sơ đồ hoạt động quản lý thông tin người dân 30
Hình 2.14: Sơ đồ hoạt động xem khai báo chi tiết người dân 31
Hình 2.15: Cơ sở dữ liệu 32
Hình 2.16: Giao diện đăng nhập 35
Hình 2.17: Giao diện nhập mã otp 35
Hình 2.18: Giao diện khai báo y tế 36
Hình 2.19: Giao diện mã QR 37
Hình 2.20: Giao diện khai báo khẩn cấp 37
Hình 2.21: Màn hình danh sách khai báo y tế 38
Hình 3.22: Màn hình khởi chạy dự án 39
Hình 3.23: Mở terminal chạy chương trình 39
Hình 3.24: Màn hình đăng nhập 40
Hình 3.25: Màn hinh mail khi nhận được mã otp 40
Hình 3.26: Màn hình nhập mã otp đăng nhập 41
Hình 3.27: Màn hình khai báo y tế 42
Trang 8Hình 3.28: Màn hình tạo mã QR code 43
Hình 3.29: Màn hình khai báo y tế khẩn cấp 44
Hình 3.30: Màn hình hướng dẫn khai báo y tế 44
Hình 3.31: Màn hình danh sách khai báo y tế 44
Hình 3.32: Màn hình xem chi tiết khai báo y tế 45
Trang 9bộ y tế cập nhật thông tin và tình hình sức khỏe của bệnh nhân một cách nhanh chóng và có phương pháp điều trị kịp thời hạn chế được rủi ro đáng tiếc xảy ra
Chính vì lý do trên, em chọn đề tài “Xây dựng ứng dụng Website hệ thống
thông tin quản lý khai báo y tế điện tử sử dụng NodeJS, ReactJS và MongoDB” là có tính thực tiễn
3 Mục tiêu nghiên cứu
- Tổng hợp được các kiến thức về NodeJS, ReactJS và MongoDB để áp dụng vào xây dựng Website hệ thống thông tin khai báo y tế điện tử
- Nghiên cứu, khảo sát thực tế các ứng dụng website hệ thống thông tin quản ký tờ khai y tế, khai báo y tế
Trang 10- Phát biểu được bài toán cần xử lý cho một ứng dụng website khai báo y
tế
- Nghiên cứu và đưa ra hướng làm cũng như công cụ công nghệ trong việc phát triển ứng dụng website hệ thống khai báo y tế
- Phân tích thiết kế cho hệ thống thông tin khai báo y tế
- Cài đặt và triển khai ứng dụng
- Website hệ thống thông tin khai báo y tế điện tử hướng tới tất cả các người dân đang sinh sống trên lãnh thổ Việt Nam hoặc đang có ý định nhập cảnh về Việt Nam giúp cho người dân có thể dễ dàng khai báo y tế
mà không phải trực tiếp đến các cơ quan có thẩm quyền khai báo làm giảm được tình trạng lây nhiễm chéo
- Hệ thống khai báo y tế có giao diện thân thiện và phù hợp với người dùng
4 Nội dung nghiên cứu
- Khảo sát yêu cầu, quá trình khai báo y tế
- Nghiên cứu, phân tích yêu cầu về chức năng, phi chức năng của website
- Thiết kế và phát triển hệ thống website hệ thống thông tin khai báo y tế điện tử:
o Người dân hoàn thành các chức năng: Khai báo y tế, khai hộ, khai báo khẩn cấp, hướng dẫn khai báo y tế
o Nhân viên y tế: Thống kê khai báo khẩn cấp, tìm kiếm khai báo y tế theo các tình trạng, trạng thái khai báo, xử lý thông tin khai báo …
- Cài đặt website và kiểm thử các chức năng
5 Phạm vi của đề tài
- Về chức năng khai báo y tế: Khi người dân muốn khai báo y tế thì đăng nhập hệ thống khai báo bằng email Đăng nhập hệ thống thành công, người dân tiến hành nhập thông tin khai báo y tế Khai báo y tế thành công thì sẽ hiển thị màn hình mã QR Code, người dân có thể tải mã QR Code về máy Ngoài chức năng khai báo, người dân thực hiện chức năng
Trang 11khai hộ hoặc khai báo khẩn cấp Trong trường hợp người dân chưa biết
sử dụng hệ thống khai báo y tế thì người dân vào hướng dẫn khai báo y
tế
- Về phần nhân viên y tế: Thống kê được các trường hợp khai báo y tế khẩn cấp, lọc và tìm kiếm các tình trạng khai báo y tế Ngoài ra, nhân viên y tế có thể chỉnh sửa hoặc xóa thông tin khai báo người dân
6 Phương pháp thực hiện
- Nghiên cứu lý thuyết kết hợp cùng khảo sát thực tế một số website khai báo y tế lớn, từ đó phân tích và thiết kế hệ thống website hệ thống thông tin khai báo y tế
- Nghiên cứu về ngôn ngữ ReactJS, NodeJS và MongoDB
- Phát triển ứng dụng web trong phạm vi thử nghiệm
7 Bố cục đề tài
(Nội dung chính đề tài chia thành 3 chương)
Chương 1: Cơ sở lý thuyết
Giới thiệu về các công cụ để ứng dụng vào phát triển phần mềm khai báo điện tử: NodeJS, Javascript, ReactJS và MongoDB
Chương 2: Phân tích thiết kế hệ thống
Phân tích tích yêu cầu, mô tả các biểu đồ use case, biểu đồ trình tự, sơ
đồ hoạt động và thiết kế giao diện của từng chức năng hệ thống khai báo
y tế điện tử
Chương 3: Cài đặt chương trình và kiểm thử hệ thống
Mô tả cách cài đặt phần mềm khai báo y tế, hướng dẫn sử dụng, kết quả
đạt được và kiểm thử của phần mềm khai báo y tế
Trang 12CHƯƠNG 1 CƠ SỞ LÝ THUYẾT
1.1 Tổng quan về website khai báo y tế
1.1.1 Khai báo y tế
Khai báo y tế là người dân tự khai báo các thông tin của mình, bao gồm: thông tin về hành chính cá nhân, thời gian đã đi, đến ngoài tỉnh trong vòng 14 ngày qua; có hay không có các triệu chứng nhiễm Covid-19, Trong các thông tin trên thì thông tin đi, đến nơi khác trong vòng 14 ngày qua là quan trọng nhất; nó quyết định nhiều hay ít các mốc dịch tễ, tương ứng nhiều hay ít các F1, F2; từ đó cần phải phong tỏa nhiều hay ít điểm, diện phong tỏa rộng hay hẹp?
Ý nghĩa việc khai báo y tế:
- Biết được các mốc dịch tễ qua lịch trình di chuyển để cơ quan chức năng truy vết, khoanh vùng kịp thời Nếu khai báo y tế ngay sẽ không để phát sinh các mốc dịch tễ mới, không phát sinh thêm F1, F2
- Biết được tình trạng sức khỏe của người khai báo, được lấy mẫu xét nghiệm ngay Có kết quả xét nghiệm sớm là thông tin quyết định cho điều tra truy vết
- Là trách nhiệm pháp lý của người khai, là căn cứ để chính quyền ra quyết định cách ly y tế
1.1.2 Tình hình khai báo y tế hiện nay
Đối với các cơ quan, tổ chức, doanh nghiệp, cơ sở sản xuất kinh doanh, các chủ hộ kinh doanh, quản lý các địa điểm công cộng tập trung đông người:
- Thực hiện và chỉ đạo các cơ quan, đơn vị trực thuộc thực hiện Đăng ký điểm kiểm dịch/checkin cho cơ quan, đơn vị, cơ sở sản xuất, địa điểm kinh doanh để kiểm soát vào và ra cơ quan, đơn vị hằng ngày đối với khách đến và đi thông qua mã QR
Trang 13- Đảm bảo mạng wifi, internet ổn định tại các điểm có mã QR để người dân kết nối internet và khai báo trực tuyến;
- Cử người giám sát, hỗ trợ người cần sự trợ giúp việc thực hiện quét mã QR;
- Theo dõi và quản trị thông tin khách vào ra trên trang quản trị, cung cấp danh sách cho lãnh đạo đơn vị khi có yêu cầu
Đối với người dân:
- Thực hiện nghiêm các quy định về phòng chống dịch, chấp hành theo nguyên tắc 5K của Bộ Y tế
- Cài đặt các ứng dụng “khai báo và kiểm soát vào ra”, Bluezone trên điện thoại thông minh
- Thực hiện khai báo y tế định kỳ (07 ngày 1 lần) trên ứng dụng khai bao
và kiểm soát vào ra Lưu mã QR code của tờ khai y tế Trường hợp người không có điện thoại thông minh, người già có thể nhờ người thân khai báo hộ
- Khi ra vào các cơ quan công sở, công ty, cơ sở sản xuất kinh doanh, nơi đông người phải thực hiện việc khai báo y tế, đưa mã QR code tờ khai y
tế để người kiểm soát quét mã thực hiện check in/check out khi vào/ra
- Hợp tác với cơ quan chức năng, cung cấp thông tin chính xác, đầy đủ phục vụ truy vết phòng chống dịch khi có yêu cầu
1.2 Các công cụ thiết kế website hệ thống thông tin khai báo y tế
1.2.1 NodeJS
Một nền tảng phát triển độc lập được xây dựng ở trên Javascript Runtime của Chrome mà chúng ta có thể xây dựng được các ứng dụng mạng một cách nhanh chóng và dễ dàng mở rộng là công cụ NodeJS
NodeJS có thể được dùng để xây dựng các loại ứng dụng khác nhau như các ứng dụng dòng lệnh, ứng dụng web, ứng dụng trò chuyện theo thời gian thực, máy chủ REST API, Tuy nhiên, NodeJS thường được dùng chủ yếu để
Trang 14xây dựng các chương trình mạng như máy chủ web, tương tự như PHP, Java hoặc ASP.NET
Phần Core bên dưới của Nodejs được viết hầu hết bằng C++ nên cho tốc
độ xử lý và hiệu năng khá cao
Nodejs tạo ra được các ứng dụng có tốc độ xử lý nhanh, realtime thời gian thực
Nodejs áp dụng cho các sản phẩm có lượng truy cập lớn, cần mở rộng nhanh, cần đổi mới công nghệ, hoặc tạo ra các dự án Startup nhanh nhất có thể
NodeJS có thể tạo, mở, đọc, ghi, xóa và đóng các tệp ngay khi đang truy cập trên máy chủ
Xây dựng nội dung cho các trang Web động
Thực hiện thu thập dữ liệu theo yêu cầu cụ thể
Thực hiện truy vấn, sửa, xóa, thêm các dữ liệu trong các hệ quản trị cơ
sở như: Microsoft SQL Server, MySQL, MongoDB, PostgreSQL
1.2.2 Javascript
JavaScript là một ngôn ngữ lập trình của HTML và WEB Nó là nhẹ và được sử dụng phổ biến nhất như là một phần của các trang web, mà sự thi hành của chúng cho phép Client-Side script tương tác với người sử dụng và tạo các trang web động Nó là một ngôn ngữ chương trình thông dịch với các khả năng hướng đối tượng
Nhiệm vụ của Javascript là xử lý những đối tượng HTML trên trình duyệt Nó có thể can thiệp với các hành động như thêm/xóa/sửa các thuộc tính CSS và các thẻ HTML một cách dễ dàng Hay nói cách khác, Javascript là một ngôn ngữ lập trình trên trình duyệt ở phía client Tuy nhiên, hiện nay với sự xuất hiện của NodeJS đã giúp cho Javascript có thể làm việc ở backend
Javascript Framework là một bộ thư viện được xây dựng dựa vào ngôn ngữ lập trình Javascript Mỗi framework thường được tạo ra để phục vụ cho một lĩnh vực nào đó Ví dụ với Angular và React thì chuyên xử lý frontend,
Trang 15NodeJS thì chuyên xử lý backend, jQuery là một thư viện rất mạnh khi xử lý DOM HTML và CSS
Ứng dụng trong lập trình website: Khi nhắc đến lập trình web người ta không thể không nhắc đến bộ 03 HTML, CSS và JavaScript Có thể nói không phải là tất cả, song hầu như các website đang chạy hiện nay đều sử dụng JavaScript và các Front-end framework của nó như: Bootstrap, jQuery Foundation, UIKit,… Ở đó JavaScript giúp tạo các hiệu ứng hiển thị trên website, các tương tác với người dùng
Xây dựng các ứng dụng web cho máy chủ: Đây là một xu hướng công nghệ có thể nói là rất hót hiện nay (từ 2016 đến giờ) Các doanh nghiệp hiện nay khá hào hứng với các Frame work từ JavaScript như: Node.js, AngularJS,… Cụ thể những cái này sẽ hỗ trợ tạo ra các ứng dụng web thiên về tương tác thời gian thực của người dùng Nếu cùng cấu hình máy chủ tương tự thì điều đó là không thể đối với PHP, Java, Python, Net khi số lượng người dùng tương tác cùng lúc quá nhiều Máy chủ sẽ không thể nào gánh nổi, nhưng với các Frame work của JavaScript thì mọi chuyện sẽ hoàn toàn khác
1.2.3 ReactJS
ReactJS là một thư viện trong đó có chứa nhiều JavaScript mã nguồn mở
và cha đẻ của ReactJS đó chính là một ông lớn với cái tên ai cũng biết đó chính
là Facebook Mục đích của việc tạo ra ReactJS là để tạo ra những ứng dụng website hấp dẫn với tốc độ nhanh và hiệu quả cao với những mã hóa tối thiểu
Và mục đích chủ chốt của ReactJS đó chính là mỗi website khi đã sử dụng ReactJS thì phải chạy thật mượt thật nhanh và có khả năng mở rộng cao và đơn giản thực hiện
Thay vì làm việc trên toàn bộ ứng dụng web, ReactJS cho phép Developer chia nhỏ cấu trúc UI thành những component đơn giản hơn
ReactJS thường dùng để chạy tại phía Client Nhưng nó cũng có thể chạy được trên Server nếu Server đó hiểu được Javascript, chẳng hạn như NodeJS Server
Trang 161.2.4 MongoDB
MongoDB là một database hướng tài liệu, một dạng NoSQL database
Vì thế, MongoDB sẽ tránh cấu trúc table-based của relational database để thích ứng với các tài liệu như JSON có một schema rất linh hoạt gọi là BSON MongoDB sử dụng lưu trữ dữ liệu dưới dạng Document JSON nên mỗi một collection sẽ các các kích cỡ và các document khác nhau Các dữ liệu được lưu trữ trong document kiểu JSON nên truy vấn sẽ rất nhanh
Mongodb chính là một database hướng tài liệu, nên khi đó mọi dữ liệu
sẽ được lưu trữ trong document theo kiểu JSON thay vì lưu theo dạng bảng như CSDL quan hệ nên việc truy cập vấn sẽ nhanh chóng hơn
Với các CSDL quan hệ thì chúng ta sẽ có khái niệm bảng, khi đó các cơ
sở dữ liệu quan hệ sẽ sử dụng các bảng để có thể lưu trữ dữ liệu, còn với Mongodb thì bạn cần phải sử dụng khái niệm collection thay cho bảng
Mongodb chính là một hệ quản trị cơ sở dữ liệu mà trong đó mã nguồn
mở là CSDL thường thuộc NoSql và được hàng triệu người sử dụng
So với RDBMS thì trong Mongodb collection thường sẽ ứng với table, còn document sẽ tương ứng với row MongoDB sẽ sử dụng các document để thay cho row trong RDBMS
Với các collection có trong Mongodb thường sẽ được cấu trúc rất linh hoạt nên nó cho phép các dữ liệu được lưu trữ mà không cần phải tuân theo bất
kỳ một cấu trúc nhất định nào
Các thông tin có liên quan đều sẽ được lưu trữ cùng với nhau để người dùng có thể truy cập truy vấn nhanh hơn thông qua các ngôn ngữ truy vấn Mongodb
Trang 17sở dữ liệu như cho phép xem, truy xuất, xử lý dữ liệu,…
View (V): Đây là phần giao diện (theme) dành cho người sử dụng Nơi
mà người dùng có thể lấy được thông tin dữ liệu của MVC thông qua các thao tác truy vấn như tìm kiếm hoặc sử dụng thông qua các website Thông thường, các ứng dụng web sử dụng MVC View như một phần của hệ thống, nơi các thành phần HTML được tạo ra Bên cạnh đó, View cũng có chức năng ghi nhận hoạt động của người dùng để tương tác với Controller Tuy nhiên, View không
có mối quan hệ trực tiếp với Controller, cũng không được lấy dữ liệu từ Controller mà chỉ hiển thị yêu cầu chuyển cho Controller mà thôi Ví dụ: Nút
“delete” được tạo bởi View khi người dùng nhấn vào nút đó sẽ có một hành động trong Controller
Controller (C): Bộ phận có nhiệm vụ xử lý các yêu cầu người dùng đưa
đến thông qua view Từ đó, C đưa ra dữ liệu phù hợp với người dùng Bên cạnh
đó, Controller còn có chức năng kết nối với model
Trang 18CHƯƠNG 2 PHÂN TÍCH THIẾT KẾ HỆ THỐNG
2.1 Phân tích yêu cầu
“Hệ thống quản lý khai báo y tế” tập trung vào nhiệm vụ liên quan đến việc kiểm soát và nắm bắt thông tin và lộ trình di chuyển của toàn dân, giúp các đơn vị có chức năng dễ dàng thống kê được số lượng đối tượng cần lưu để phục vụ cho công tác chống dịch Đặc biệt, những người liên quan đến các ca bệnh, người đi từ tâm dịch trở về, người có biểu hiện sốt, ho, khó thở,… sẽ được cách ly tập trung và lấy mẫu xét nghiệm tại chỗ Các trường hợp khác sẽ được tư vấn, hướng dẫn thực hiện các biện pháp phòng chống dịch khi về địa phương Với tình hình hiện nay người nhiễm covid cách ly tại nhà rất nhiều, hệ thống khai báo y tế giúp cán bộ y tế cập nhật thông tin và tình hình sức khỏe của bệnh nhân một cách nhanh chóng và có phương pháp điều trị kịp thời hạn chế được rủi ro đáng tiếc xảy ra
Quy trình nghiệp vụ của người dân: Người dân sau khi đăng ký tài khoản
và đăng nhập bằng email thoại sẽ bắt đầu tiến hành khai báo các thông tin cá nhân, sau khai báo, người dân có thể chỉnh sửa thông tin Khi người dân bấm gửi thông tin, họ sẽ nhận được mã QR Code chứa đựng các thông tin của họ Người dân có thể tải mã QR Code về dưới dạng hình ảnh Thêm vào đó người dân có thể tiến hành khai báo khẩn cấp trong trường hợp đặc biệt Ngoài ra, người dân thực hiện khai hộ và xem hướng dẫn khai báo y tế
Quy trình nghiệp vụ của nhân viên Y tế: Nhân viên y tế sau khi đăng nhập vào hệ thống sẽ có thể tìm kiếm và quản lý thông tin người dân, check thông tin của người dân, thống kê số lượng người đã khai báo, hỗ trợ
Trang 192.2 Các yêu cầu phi chức năng
Bảng 1.1: Các yêu cầu phi chức năng
- Giao diện tiếng Việt
- Cung cấp một giao diện đơn giản, gần gũi, trực quan và dễ sử dụng đối với người dùng
2 Bảo mật - Vẫn tồn tại các lỗ hổng bảo mật cần được vá trong tương lai
3 Tốc độ xử lý
- Tốc độ xử lý nhanh trong hầu hết các trường hợp và sẽ xử lý chậm hơn đối với vài tác vụ cần xử lý nhiều dữ liệu
4 Thời gian hoạt
động - Có thể hoạt động hiệu quả 24/24
5 Yêu cầu thực thi - Người dùng có thể hoạt động đồng thời với nhiều vai trò khác nhau
2.3 Biểu đồ use case
2.3.1 Biểu đồ use case tổng quan
Hình 2.1 Biểu đồ use case tổng quan
Biểu đồ use case tổng quan mô tả về hệ thống quản lý khai báo y tế bao gồm 3 tác nhân:
Dang ky Khai bao y te
Tao QR code
Xem huong dan
Quan ly thong tin ca nhan
Quan ly thong tin nguoi dan
Khai bao khan cap (from UseCaseTongQuan)
Trang 20- Người dân: người dân cần đăng ký tài khoản sau đó sẽ được đăng nhập vào hệ thống và tiến hành khai báo các thông tin cá nhân Sau khi hoàn thành các thông tin cá nhân, người dân sẽ nhận được mã QR Code chứa đựng các thông tin vừa khai báo, mã QR Code có thể được tải về Ngoài ra, người dân có thể cập nhật lại thông tin khai báo, khai báo hộ hoặc khai báo khẩn cấp
- Nhân viên y tế: nhân viên y tế sẽ đăng nhập với tài khoản đã được cấp sẵn Họ có các chức năng như quản lý thông tin người dân, thống kê số liệu, tìm kiếm thông tin, check thông tin người dân
2.3.2 Use case phân rã người dân đăng nhập
Hình 2.2: Biểu đồ use case phân rã đăng nhập của người dân
Sau khi người dân đã đăng ký tài khoản bằng email, hệ thống sẽ kiểm tra địa chỉ email và gửi mã otp về tài khoản email đăng ký, họ sẽ nhận được
mã otp để truy cập vào hệ thống và bắt đầu tiến hành khai báo
Trang 212.3.3 Use case phân rã quản lý thông tin cá nhân người dân
Hình 2.3: Biểu đồ use case phân rã quản lý thông tin cá nhân
Người dân có thể chỉnh sửa lại thông tin cá nhân, cập nhật lại thông tin khai báo hoặc có thể tiến hành khai báo hộ Sau khi cập nhật lại thông tin thì hệ thống sẽ tạo lại mã QR Code có chứa thông tin đã được cập nhật Toàn bộ thông tin khai báo của người dân sẽ được gửi lên hệ thống để các nhân viên y tế có thể kiểm tra Ngoài ra người dân có thể tiến hành khai báo khẩn cấp trong những trường hợp đặc biệt
2.3.4 Use case phân rã quản lý thông tin người dân
Hình 2.4: Biểu đồ use case phân rã quản lý thông tin người dân
Cap nhat thong tin
Chinh sua thong tin
Khai bao ho
Khai bao khan cap
Thay doi thong tin
Them thong tin
(from Use Case View)
Trang thai xu ly Thong tin nguoi dan
Tim kiem thong tin
Xoa thong tin
Thong ke so lieu
NhanVienYTe
(from Use Case View)
Quan ly thong tin nguoi dan
(from Use Case View)
Trang 22Nhân viên y tế có chức năng quản lý các thông tin của người dân, sau khi người dân khai báo và gửi thông tin, nhân viên y tế sẽ nhận được các thông tin đó và tiến hành xử lý, nhân viên y tế có thể tra cứu thông tin người dân qua tên, số điện thoại, ngày tháng khai báo,… sau đó tiến hành xử lý Có thể để lại trạng thái xử lý để các nhân viên khác biết được tình trạng
Hệ thống sẽ thu thập số liệu khai báo khẩn cấp và thống kê dưới dạng biểu đồ để nhân viên y tế dễ kiểm soát
Sau khi đã xử lý các thông tin khai báo, nhân viên y tế có thể xóa các thông tin đã được xử lý
2.3.5 Use case phân rã tạo mã QR
Hình 2.5: Biểu đồ use case phân rã quản lý tài khoản
Khi người dân khai báo y tế thành công sẽ chuyển sang màn hình mã QR Code cho phép người dân tải mã QR để dễ dàng khai báo y tế khi di chuyển khỏi vùng dịch
2.4 Mô tả chi tiết use case
2.4.1 Mô tả use case Đăng nhập của nhân viên y tế
Use case này cho phép nhân viên y tế đăng nhập hệ thống để thực hiện các chức năng của mình
● Luồng sự kiện:
1) Use case này bắt đầu khi nhân viên y tế bắt đầu vào hệ thống khai báo
y tế Hiển thị lên màn hình đăng nhập
2) Người dùng đăng nhập cần nhập đủ thông tin đăng nhập
3) Hệ thống kiểm tra thông tin đã hợp lệ hay chưa Tra bảng ADMIN trên CSDL Cho phép nhân viên y tế đăng nhập, hiển thị lên màn hình
Tai ma QR
<<extend>>
Trang 23Use case kết thúc
o Luồng rẽ nhánh:
1) Tại bước 3 luồng cơ bản, nếu người dùng đăng nhập thông tin không hợp lệ, hệ thống sẽ hiển thị thông báo “không tồn tại tài khoản”, ngược lại use case sẽ tiếp tục
2) Nếu không kết nối được cơ sở dữ liệu tại bất kỳ thời điểm nào trong quá trình thực hiện use case thì hệ thống sẽ hiển thị thông báo “lỗi kết nối” và use case kết thúc
● Các yêu cầu đặc biệt
Cần kiểm soát quyền thực hiện use case này để đảm bảo tính an toàn
và bảo mật
● Tiền điều kiện
Người quản trị, nhân viên y tế đã có tài khoản đăng nhập
● Hậu điều kiện
Nếu use case này thành công thì hiển thị màn hình chính Nếu không trạng thái của hệ thống sẽ không thay đổi
● Điểm mở rộng
Không có
2.4.2 Mô tả use case Đăng nhập của người dân
Use case này cho phép người dân đăng nhập hệ thống để thực hiện các chức năng của mình
● Luồng sự kiện:
o Luồng cơ bản:
1) Use case này bắt đầu khi người dân bắt đầu vào hệ thống khai báo
y tế Hiển thị lên màn hình đăng nhập
2) Người dân đăng nhập cần nhập đủ thông tin email đăng nhập 3) Người dân ấn vào nút đăng nhập
Trang 244) Hệ thống kiểm tra thông tin đã hợp lệ hay chưa Cho phép người dân nhập mã OTP
5) Hệ thống kiểm tra thông tin nhập mã OTP đã hợp lệ hay chưa Cho phép người dùng đăng nhập và khai báo y tế
Use case kết thúc
o Luồng rẽ nhánh:
1) Tại bước 3 luồng cơ bản, nếu người dùng đăng nhập thông tin không hợp lệ, hệ thống sẽ hiển thị thông báo “không tồn tại email”, ngược
lại use case sẽ tiếp tục
2) Tại bước 4 luồng cơ bản, nếu người dùng đăng nhập thông tin không hợp lệ, hệ thống sẽ hiển thị thông báo “Mã otp không đúng”, ngược lại use case sẽ tiếp tục
3) Tại bước 4 luồng cơ bản, nếu người dùng không nhập mã otp trong vòng 30 phút, hệ thống sẽ hiển thị thông báo “Mã otp không đúng”, ngược lại use case sẽ tiếp tục
4) Nếu không kết nối được cơ sở dữ liệu tại bất kỳ thời điểm nào trong quá trình thực hiện use case thì hệ thống sẽ hiển thị thông báo “lỗi kết nối” và use case kết thúc
● Các yêu cầu đặc biệt
Cần kiểm soát quyền thực hiện use case này để đảm bảo tính an toàn
và bảo mật
● Tiền điều kiện
Người quản trị, nhân viên y tế đã có tài khoản đăng nhập
● Hậu điều kiện
Nếu use case này thành công thì hiển thị màn hình chính Nếu không trạng thái của hệ thống sẽ không thay đổi
● Điểm mở rộng
Không có
Trang 252.4.3 Mô tả use case Tạo QR code
Use case này cho phép người dân tạo mã QR code để thực hiện các chức năng của mình
2) Người dân đăng nhập cần nhập đủ thông tin khai báo y tế
3) Người dân ấn vào nút gửi tờ khai thông tin
4) Hệ thống kiểm tra thông tin đã hợp lệ hay chưa Sau đó hiển thị màn hình mã QR Code
Use case kết thúc
o Luồng rẽ nhánh:
1) Tại bước 3 luồng cơ bản, nếu người dùng nhập thông tin không hợp lệ, hệ thống sẽ hiển thị thông báo “Yêu cầu nhập đúng và đủ
thông tin”, ngược lại use case sẽ tiếp tục
2) Nếu không kết nối được cơ sở dữ liệu tại bất kỳ thời điểm nào trong quá trình thực hiện use case thì hệ thống sẽ hiển thị thông báo “lỗi kết nối” và use case kết thúc
● Các yêu cầu đặc biệt
Cần kiểm soát quyền thực hiện use case này để đảm bảo thông tin khai báo hợp lệ, chính xác
● Tiền điều kiện
Người dân nhập mã OTP thành công
● Hậu điều kiện
Nếu use case này thành công thì hiển thị màn hình mã QR code Nếu không trạng thái của hệ thống sẽ không thay đổi
Trang 26● Điểm mở rộng
Không có
2.4.4 Mô tả use case quản lý thông tin người dân
Use case này cho phép nhân viên y tế xem, thêm, sửa, xóa thông tin khai báo y tế
o Luồng cơ bản:
1) Use case này bắt đầu khi nhân viên y tế đăng nhập hệ thống thành công
Hệ thống lấy thông tin danh sách khai báo y tế gồm thông tin: Họ tên, email, số điện thoại, ngày sinh, giới tính, địa chỉ từ bảng FORM và hiển thị danh sách khai báo y tế lên màn hình
2) Tìm kiếm khai báo y tế
o Nhân viên y tế nhập tên người dân khai báo y tế sau đó nhấn enter Hệ thống sẽ lấy tên người dân từ bảng FORM hiển thị lên màn hình
o Nhân viên y tế chọn tìm kiếm theo trạng thái khai báo: Thông báo Covid-19 hoặc khai báo y tế
o Nhân viên y tế chọn tìm kiếm theo mức độ tình hình bệnh dịch: Tất cả, khẩn cấp, cảnh báo, thường
3) Cập nhật thông tin khai báo y tế người dân
a) Nhân viên y tế kích vào nút “Chi tiết” trên danh sách khai báo y tế Hệ thống sẽ sẽ lấy các thông tin của người dân khai báo y tế gồm: Họ tên, email, số điện thoại, ngày sinh, giới tính, quốc tịch, địa chỉ từ bảng USER và hiển thị lên màn hình
b) Nhân viên y tế chỉnh sửa thông tin của người dân, sau đó nhấn nút “Lưu thông tin” Hệ thống cập nhật thông tin danh mục vào bảng FORM sau
đó hiển thị danh sách sản phẩm sau khi được cập nhật
4) Xóa thông tin người dân
a) Nhân viên y tế kích vào nút “Xóa” thông tin người dân trong danh sách các giỏ hàng Hệ thống hiển thị một màn hình xác nhận xóa
Trang 27b) Nhân viên y tế kích vào nút “OK” Hệ thống xóa thông tin người dân trong danh sách người dân đã khai báo y tế và cập nhật lại bảng FORM sau đó lấy thông tin về các người dân đã khai báo từ bảng FORM và hiển thị lên màn hình
Use case kết thúc
o Luồng rẽ nhánh:
1) Tại thời điểm nào trong quá trình thực hiện use case nếu không kết nối được với cơ sở dữ liệu thì hệ thống sẽ hiển thị một thông báo lỗi và use case kết thúc
2) Tại bước 2a trong luồng cơ bản khi hệ thống không tìm thấy bản ghi nào thì hệ thống sẽ hiển thị “No data” và use case kết thúc
3) Tại bước 3b trong luồng cơ bản nếu sửa thông tin sai thì hệ thống sẽ thông báo lỗi, không cho phép sửa thông tin và use case kết thúc 4) Tại bước 4b trong luồng cơ bản nếu không thể xóa được sản phẩm hệ thống sẽ hiển thị một thông báo lỗi và use case kết thúc
Các yêu cầu đặc biệt:
Không có
Người dân đã khai báo y tế thành công
Không có
Điểm mở rộng:
Không có
2.4.5 Mô tả use case người dân cập nhật thông tin
Use case này cho phép người dân cập nhật thông tin khai báo y tế
Trang 282) Người dân sửa thông tin khai báo y tế sau đó kích vào nút “Gửi
tờ khai” Hệ thống cập nhật thông tin bộ sưu tập vào bảng FORM và hiển thị lên màn hình
Use case kết thúc
o Luồng rẽ nhánh:
1) Tại bất kỳ thời điểm nào trong quá trình thực hiện use case, nếu không kết nối được với cơ sở dữ liệu thì hệ thống sẽ hiển thị một thông báo lỗi và use case kết thúc
2) Tại bước 2 luồng cơ bản nếu người dân sửa sai thông tin khai báo y tế thì hệ thống sẽ thông báo lỗi “Bạn nhập sai thông tin”
và use case kết thúc
Các yêu cầu đặc biệt:
Không có
Người dân phải đăng nhập thành công hệ thống
Khi cập nhật xong thông tin sẽ hiển thị màn hình mã QR code
Điểm mở rộng:
Không có
2.4.6 Mô tả use case người dân khai báo khẩn
Use case này cho phép người dân khai báo thông tin khẩn cấp
o Luồng cơ bản:
1) Người dân kích vào nút “Thông báo nguy cơ COVID-19” trên màn hình khai báo y tế Hệ thống sẽ hiển thị màn hình yêu cầu nhập thông tin khai báo khẩn cấp
2) Người dân nhập thông tin khai báo y tế khẩn cấp và kích vào nút
“Thêm mới” Hệ thống sẽ thêm một bản ghi mới vào bảng FORM
o Luồng rẽ nhánh:
Trang 291) Tại bất kỳ thời điểm nào trong quá trình thực hiện use case, nếu không kết nối được với cơ sở dữ liệu thì hệ thống sẽ hiển thị một thông báo lỗi và use case kết thúc
2) Tại bước 2 luồng cơ bản nếu người dân nhập thiếu thông tin khai báo y tế thì hệ thống sẽ thông báo lỗi “Bạn nhập sai thông tin” và use case kết thúc
o Các yêu cầu đặc biệt:
Không có
o Tiền điều kiện:
Người dân phải đăng nhập thành công hệ thống
o Hậu điều kiện:
Khi cập nhật xong thông tin sẽ hiển thị màn hình mã QR code
o Điểm mở rộng:
Không có
Trang 302.5 Biểu đồ trình tự
2.5.1 Chức năng đăng nhập của người dân
Hình 2.6: Biểu đồ trình tự chức năng đăng nhập của người dân
Người dân nhập địa chỉ email vào form đăng nhập, hệ thống sẽ kiểm tra email và báo lỗi khi sai email Với kết quả email chính xác, hệ thống gửi mã otp tới địa chỉ email, người dân nhập mã otp để tiến hành đăng nhập Mã otp chỉ có giá trị trong 30p, sau khoảng thời gian này người dân cần yêu cầu gửi lại
mã otp Khi đăng nhập thành công, hệ thống sẽ điều hướng tới trang khai báo
10: Lay thong tin dang nhap ()
3: Gui yeu cau dang nhap ()
4: Lay bang user ()
5: Lay bang user ()
6: setOtp()
7: return ket qua
8: Kiem tra email ()
11: Lay bang user ()
12: Lay bang user ()
13: getOtp()
14: return ket qua
Trang 312.5.2 Chức năng đăng nhập của nhân viên y tế
Hình 2.7: Biểu đồ trình tự chức năng đăng nhập của admin và nhân viên y tế
Nhân viên y tế đăng nhập vào hệ thống qua form đăng nhập, thông tin được gửi lên và hệ thống so sánh với thông tin ở data, sau đó hệ thống sẽ gửi trả kết quả lại và được hiển thị trên giao diện Dữ liệu chính xác hệ thống sẽ báo đăng nhập thành công và báo thất bại khi các thông tin đăng nhập sai
: NhanVienYTe : DangNhapUI : DangNhapUI : DangNhapController : DangNhapController : Admins : ICsdl : CSDL 1: Nhap ten dang nhap ()
2: Nhap mat khau ()
3: Lay thong tin dang nhap ()
4: Lay bang ADMINS ()
5: Lay bang ADMINS()
6: getAdmins()
7: return ket qua
Trang 322.5.3 Chức năng tạo mã QR code
Hình 2.8: Biểu đồ trình tự chức năng tạo mã QR Code
Người dân nhập thông tin khai báo cá nhân và gửi yêu cầu lên hệ thống,
hệ thống sẽ xác nhận yêu cầu và kiểm tra thông tin nhập, nếu chính xác hệ thống xác nhận và tạo mã QR Code và hiển thị trên giao diện người dân Nếu thông tin sai, hệ thống yêu cầu nhập lại thông tin cho chính xác
: NguoiDan :
TaoMaQRUI
: TaoMaQRUI
: TaoMaQRController : Form : ICsdl : CSDL
1: Nhap thong tin khai bao()
2: Kich nut "Gui thong tin"()
3: Lay thong tin khai bao()
4: CreateKhaiBao()
5: Lay bang FORM()
6: Lay bang FORM()
7: return ket qua
8: hien thi man hinh ma QR code()
Trang 332.5.4 Chức năng cập nhật thông tin khai báo người dân
Hình 2.9: Biểu đồ trình tự chức năng cập nhật thông tin người dân
Người dân có thể sửa lại thông tin khai báo và sau đó cập nhật lại trên hệ thống, hệ thống tiếp nhận yêu cầu và xác minh thông tin, nếu chính xác thì yêu cầu cập nhật thông tin được xử lý thành công và hệ thống sẽ gửi về một mã QR Code mới, nếu sai thông tin hệ thống sẽ thông báo để người dân nhập lại chính xác
: NguoiDan Hien thi thong tin da khai bao()
: CapNhatThongTinUI Hien thi thong tin da khai bao() : CapNhatThongTinUI
: CapNhatThongTinController
: CapNhatThongTinController
: Form : ICsdl
: CSDL 1: Dang nhap thanh cong()
2: Lay thong tin khai bao()
3: getFormByID() 4: return ket qua
6: Sua thong tin khai bao y te()
5: Hien thi thong tin da khai bao()
7: Kich nut "Gui thong tin"()
8: Sua thong tin khai bao()
9: updateFormByID() 10: Cap nhat bang FORM()
11: Cap nhat bang FORM() 12: return ket qua
13: Hien thi man hinh ma QR code()
Trang 342.5.5 Chức năng quản lý thông tin người dân
: NhanVienYTe : QuanLyThongTinNguoiDanUI :
QuanLyThongTinNguoiDanController
: QuanLyThongTinNguoiDanController
: Form : ICsdl : CSDL 1: Dang nhap thanh cong()
2: Lay thong tin nguoi dan khai bao()
3: Doc bang FORM()
4: Doc bang FORM() 5: getFORM()
6: return ket qua 7: Nhap ten nguoi dan()
8: Kich nut enter()
9: Lay thong tin theo ten()
11: Doc bang FORM() 12: GetHoTen()
13: return ket qua
14: Hien thi danh sach tim kiem theo ten()
16: Sua thong tin nguoi dan()
17: Kich nut "Cap nhat"()
15: Kich nut "Chi tiet"()
18: Sua thong tin khai bao()
19: updateFormByID()
22: return ket qua
20: Cap nhat bang FORM()
21: Cap nhat bang FORM()
23: Hien thi danh sach khai bao()
24: Kich nut "Xoa"()
25: Hien thi man hinh xac nhan xac()
26: Kich nut "Dong y"()
27: Xoa thong tin khai bao()
28: deleteFormByID() 29: Cap nhat bang FORM()
30: Cap nhat bang FORM() 31: return ket qua
32: Hien danh sach khai bao()
10: Doc bang FORM()
Trang 352.6 Sơ đồ hoạt động
2.6.1 Chức năng đăng nhập của nhân viên y tế
Hình 2.10: Sơ đồ hoạt động nhân viên y tế đăng nhập
Nhân viên y tế đăng nhập bằng tài khoản đã được cấp Hệ thống báo đăng nhập thành công khi thông tin đăng nhập là chính xác, nếu sai thông tin sẽ phải nhập lại
Vao man hinh dang nhap
Hien thi form dang nhap
Nhap thong tin
Chon dang nhap
Kiem tra thong tin
Dang nhap thanh cong
Dang nhap that bai