1. Trang chủ
  2. » Giáo Dục - Đào Tạo

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

70 22 0

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

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 70
Dung lượng 1,75 MB

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

Nội dung

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 2

DANH 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 3

2.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 4

2.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 5

Là 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 6

DANH 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 7

MỤ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 8

Hì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 9

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

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 11

khai 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 12

CHƯƠ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 14

xâ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 15

NodeJS 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 16

1.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 17

sở 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 18

CHƯƠ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 19

2.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 21

2.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 22

Nhâ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 23

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 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 24

4) 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 25

2.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 27

b) 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 28

2) 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 29

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 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 30

2.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 31

2.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 32

2.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 33

2.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 34

2.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 35

2.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

Ngày đăng: 04/08/2022, 06:05

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

w