3.6.1. Thiết kế cơ sở dữ liệu
3.6.1.1. tbl_Role
Thuộc tính Giải thích Kiểu dữ liệu Ghi chú role_id Mã loại INT Khóa chính,
tự tăng name Tên loại VARCHAR(255)
Bảng 1: Table Role
3.6.1.2. tbl_Account_role
Thuộc tính Giải thích Kiểu dữ liệu Ghi chú account_role_id Mã loại tài
khoản
INT Khóa chính, tự động tăng
account_id Mã tài khoản INT Khóa ngoại role_id Mã loại INT Khóa ngoại
Bảng 2: Table Account role
3.6.1.3. tbl_Account
Thuộc tính Giải thích Kiểu dữ liệu Ghi chú
account_id Mã tải khoản INT Khóa chính, tự tăng
encrypt_pw VARCHAR(255)
token VARCHAR(255)
user_name Tên người dùng VARCHAR(255) is_enabled BIT(1)
verification_code VARCHAR(255) email Email VARCHAR(255)
3.6.1.4. tbl_Patient
Thuộc tính Giải thích Kiểu dữ liệu Ghi chú
patient_id INT Khóa chính, tự tăng
address Địa chỉ VARCHAR(255) date_of_birth Ngày sinh DATE
delete_flag BIT(1)
email Email VARCHAR(255) gender Giới tính VARCHAR(255) guardian VARCHAR(255) name Tên VARCHAR(255) phone Số điện thoại VARCHAR(255)
account_id Mã tài khoản INT Khóa ngoại
Bảng 4: Table Patient
3.6.1.5. tbl_Message
Thuộc tính Giải thích Kiểu dữ liệu Ghi chú
message_id Mã tin nhắn INT Khóa chính, tự tăng
content Nội dung VARCHAR(255)
vaccination_history_id Lịch sử vaccinate INT Khóa chính, tự tăng after_status VARCHAR(255) dosage DOUBLE pre_status VARCHAR(255) status Trạng thái BIT(1)
patient_id INT
vaccination_id INT delete_flag BIT(1) end_time Ngày kết thúc TIME start_time Ngày bắt đầu TIME vaccination_times INT
Bảng 6: Table Vaccination history
3.6.1.7. tbl_Vaccination_transaction
Thuộc tính Giải thích Kiểu dữ liệu Ghi chú
vaccination_transaction_id INT Khóa chính, tự động tăng
price Giá DOUBLE
quantity Số lượng BIGINT
vaccination_history_id Lịch sử tiêm INT Khóa ngoại
Bảng 7: Table Vaccination transaction
3.6.1.8. tbl_Provider
provide_id INT Khóa chính, tự động tăng name Tên VARCHAR(255)
Bảng 8: Table Provider
3.6.1.9. tbl_Invoice
Thuộc tính Giải thích Kiểu dữ liệu Ghi chú
invoice_id INT Khóa chính, tự động tăng delete_flag BIT(1)
expired DATE
price Giá BIGINT quatity Số lượng BIGINT
transaction_date VARCHAR(255)
provider_id INT Khóa ngoại vaccine_id Mã vaccine INT Khóa ngoại
Bảng 9: Table PrinterStatus
3.6.1.10. tbl_Vaccine
Thuộc tính Giải thích Kiểu dữ liệu Ghi chú
vaccine_id Mã vaccine INT Khóa chính, tự động tăng age Tuổi VARCHAR(255)
license_code VARCHAR(255) maintenance VARCHAR(255) name Tên VARCHAR(255) origin VARCHAR(255) quatity Số lượng BIGINT
vaccine_type_id Mã loại vaccine INT Khóa ngoại image Hình ảnh VARCHAR(255)
duration INT
time Thời gian INT
Bảng 10: Table Vaccine
3.6.1.11. tbl_Vaccine_type
Thuộc tính Giải thích Kiểu dữ liệu Ghi chú
vaccine_type_id Mã loại vaccine INT Khóa chính, tự động tăng name Tên VARCHAR(255)
Bảng 11: Table Vaccine type
3.6.1.12. tbl_Employee
Thuộc tính Giải thích Kiểu dữ liệu Ghi chú
employee_id Mã nhân viên INT Khóa chính, tự động tăng address Địa chỉ VARCHAR(255)
date_of_birth Ngày sinh DATE delete_flag BIT(1)
name Tên VARCHAR(255) phone Số điện thoại VARCHAR(255)
account_id Mã tài khoản INT Khóa ngoại position_id INT Khóa ngoại
Bảng 12: Table Employee
3.6.1.13. tbl_Position
Thuộc tính Giải thích Kiểu dữ liệu Ghi chú
position_id INT Khóa chính, tự động tăng
name VARCHAR(255)
Bảng 13: Table Position
3.6.1.14. tbl_Import_and_export
Thuộc tính Giải thích Kiểu dữ liệu Ghi chú
import_and_export_id INT Khóa chính, tự động tăng
action VARCHAR(255)
date DATE
delete_flag BIT(1) price Giá BIGINT quatity Số lượng BIGINT
storage_id INT Khóa chính, tự động tăng quatity Số lượng BIGINT
vaccine_id Mã vaccine INT Khóa ngoại
Bảng 15: Table Storage
3.6.1.16. tbl_Vaccination
Thuộc tính Giải thích Kiểu dữ liệu Ghi chú
vaccination_id Mã vaccine INT Khóa chính, tự động tăng
date DATE
delete_flag BIT(1)
description Mô tả VARCHAR(255) end_time Thời gian bắt
đầu
TIME
start_time Thời gian kết thúc
TIME
status Trạng thái BIT(1)
location_id INT Khóa ngoại vaccination_type_id Mã loại vaccine INT Khóa ngoại vaccine_id Mã vaccine INT Khóa ngoại
duration INT
times Thời gian INT
3.6.1.17. tbl_Vaccination_type
Thuộc tính Giải thích Kiểu dữ liệu Ghi chú
vaccination_type_id INT Khóa chính, tự động tăng name Tên VARCHAR(255)
Bảng 17: Table Vaccination type
3.6.1.18. tbl_Location
Thuộc tính Giải thích Kiểu dữ liệu Ghi chú
location_id INT Khóa chính, tự động tăng name Tên VARCHAR(255)
Bảng 18: Table Location
3.6.2. Kịch bản cho use-case
3.6.2.1.Xem danh sách tiêm chủng
Use case name: Xem danh sách tiêm chủng
Actors: Admin
Description: Admin xem và tìm kiếm danh sách tiêm chủng
Input: Admin đăng nhập tài khoản thành công. Chọn chức năng xem danh sách tiêm chủng.
Output: Hệ thống hiển thị danh sách tiêm chủng của các bệnh nhân đăng kí tiêm chủng, cho phép tìm kiếm bệnh nhận và xem thông tin bệnh nhân
Basic flow:
Bước 1: Admin đăng nhập thành công.
Bước 2: Hệ thống tự động hiển thị danh sách tiêm chủng.
Bước 5: Hệ thống kiểm tra tính hợp lệ các trường actor đã nhập và hiển thị kết quả ra màn hình
Exception flow: Hệ thống kiếm tra không hợp lệ (Không tìm thấy bệnh nhân) Thông báo không có kết quả.
3.6.2.2. Quản lý nhân viên
Use case name: Quản lý nhân viên
Actors: Admin
Description: Admin xem danh sách nhân viên, chỉnh sửa danh sách và tìm kiếm nhân viên.
Input: Admin đăng nhập tài khoản thành công. Chọn chức năng Quản lý và chọn nhân viên.
Output: Hệ thống hiển thị danh sách các nhân viên thuộc trung tâm, cho phép chỉnh sửa và phân quyền cho nhân viên, tìm kiếm và xem thông tin nhân viên.
Basic flow:
Bước 1: Admin đăng nhập thành công.
Bước 2: Nhấn vào mục quản lý và chọn nhân viên. Bước 3: Hệ thống hiển thị danh sách các nhân viên. Bước 4: Admin nhấn vào nhân viên để xem thông tin. Bước 5: Admin chỉnh sửa và phân quyền cho nhân viên
trong thông tin chi tiết nhân viên.
Bước 6: Admin nhấn vào mục tìm kiếm và nhập tên nhân viên để tìm kiếm.
Exception flow: Hệ thống kiếm tra không hợp lệ (Không tìm thấy nhân viên) Thông báo không có kết quả.
3.6.2.3. Xác nhận tiêm chủng
Use case name: Xác nhận tiêm chủng
Actors: Admin
Description: Admin xem thông tin bệnh nhân, kiểm tra lịch sử tiêm và xác nhận tiêm
Input: Admin đăng nhập tài khoản thành công.
Chọn chức năng Quản lý và chọn quản lý bệnh nhân.
Output: Hệ thống sẽ hiển thị thông tin bệnh nhân và lịch sử tiêm của bệnh nhân và nút xác nhận tiêm chủng.
Basic flow: Bước 1: Admin tìm kiếm và nhấn vào bệnh nhân cần xác nhận.
Bước 2: Hệ thống hiển thị thông tin của bệnh nhân cần tiêm và lịch sử tiêm chủng.
Bước 3: Admin nhập loại vaccine cần tiêm, liều lượng, số mũi và tình trạng bệnh nhân.
Bước 4: Admin nhấn button “Xong cho tiêm” để xác nhận cho phép tiêm vaccine.
Bước 5: Hệ thống xác nhận và hiển thị kết quả ra màn hình
Exception flow: Bước 4. Admin chọn button “Hủy” Use case dừng lại 3.6.2.4. Xem lịch sử tiêm chủng
Use case name: Xem lịch sử tiêm chủng
Actors: User
Description: User xem lịch sử tiểm chung của bản thân và đánh giá, phản hồi sau khi tiêm.
Input: User đăng nhập tài khoản thành công. Chọn chức năng lịch sử tiêm chủng
Output: Hệ thống hiển thị danh sách số lần tiêm vaccine, thời gian và loại vaccine đã tiêm.
Basic flow:
Bước 1: User nhấn vào nút “Tái khoản” “Lịch sử tiêm”.
Bước 2. Hệ thống hiển thị danh sách số lần tiêm chủng. Bước 3: Nhấn button “Phản hồi”
Bước 4: Hệ thống hiển thị thông tin lần tiêm chủng cần phản hồi.
Bước 5. Nhập tình trạng cá nhân cần phản hồi.
Bước 6: User nhấn “Phản hồi lại” để phản hồi tình trạng sau khi tiêm cho admin.
Bước 7: Hệ thống kiếm tra không hợp lệ Thông báo thông tin sai cho User Quay lại bước 4.
3.6.2.5. Quản lý bệnh nhân
Use case name: Xem danh sách bênh nhân
Actors: Admin
Description: Admin xem hoặc chỉnh sửa thông tin bênh nhân
Input: Admin đăng nhập tài khoản thành công. Chọn chức năng quản lý bệnh nhân
Output: Hệ thống hiển thị danh sách các bệnh nhân đã đăng kí tiêm chủng.
Basic flow:
Bước 1. Admin nhấn vào nút “Quản lí” “Bệnh nhân” Bước 2. Hệ thống hiển thị danh sách các bệnh nhân. Bước 3. Admin nhấn vào bệnh nhân để xem thông tin của bệnh nhân.
Bước 4. Admin nhấn vào biểu tượng chỉnh sử để chỉnh sửa thông tin bệnh nhân hoặc nhấn vào biểu tượng xóa để xóa bệnh nhân.
Bước 5. Admin chọn tìm kiếm theo tên.
Exception flow:
Bước 5: Hệ thống kiếm tra không hợp lệ Thông báo thông tin sai cho User Quay lại bước 2.
3.6.2.6. Đăng kí và đăng nhập
Use case name: Đăng kí và đăng nhập
Actors: User
Description: User đăng kí tài khoản và đăng nhập vào hệ thống
Input: Người dùng truy cập vào hệ thống.
Chọn chức năng đăng kí để tạo tài khoản hoặc đăng nhập khi có tài khoản.
Output: Hệ thống hiển thị form đăng kí cho người dùng mới hoặc form đăng nhập
Basic flow:
Bước 2: User nhập thông tin cá nhân
Bước 3. Nhấn button “Đăng kí” nếu đăng ký tài khoản hoặc “Đăng nhập” nếu đã có tài khoản
Exception flow:
Bước 3a. User chọn button “Hủy” Use case dừng lại Bước 4a. Hệ thống kiếm tra không hợp lệ Thông báo thông tin sai cho Actor Quay lại bước 2.
3.6.2.7. Quản lí danh sách tiêm chủng định kì
Use case name: Quản lí danh sách tiêm chủng định kì
Actors: Admin
Description: Admin tìm kiếm, thêm, sửa lịch tiêm
Input: Admin đăng nhập tài khoản thành công. Chọn chức năng quản lý lịch tiêm
Output: Hệ thống hiển thị lịch tiêm định kì của trung tâm.
Basic flow:
Bước 1. Admin nhấn vào nút “Quản lý” “Lịch tiêm định kỳ”.
Bước 2. Hệ thống hiển thị danh sách lịch tiêm định kì. Bước 3. Nhấn button “Tạo mới”
Bước 4. Nhập thông tin lịch tiêm.
Bước 5. Nhấn button “Tạo mới lịch tiêm”
Exception flow: Bước 5a. Actor chọn button “Hủy” Use case dừng lại Bước 6a. Hệ thống kiếm tra không hợp lệ Thông báo thông tin sai cho Admin Quay lại bước 4.
3.6.2.8. Quản lý vaccine
Use case name: Quản lý vaccine
Actors: Admin
Description: Admin xem hoặc thêm mới vaccine
Bước 3. Admin tìm kiếm và xem thông tin vaccine Bước 4. Admin nhấn vào “Thêm vaccine”
Bước 5. Nhập thông tin vaccine. Bước 6. Nhấn button “Lưu
Exception flow:
Bước 6a. Admin chọn button “Hủy” Use case dừng lại
Bước 5a: Hệ thống kiếm tra không hợp lệ Quay lại bước 2.
3.6.2.9. Đăng kí tiêm
Use case name: Đăng kí tiêm vaccine
Actors: User
Description: Người dùng đăng kí tiêm vaccine
Input: User đăng nhập tài khoản thành công. Chọn chức đăng ký tiêm
Output: Hệ thống hiển thị form đăng kí tiêm vaccine và danh sác loại vaccine
Basic flow:
Bước 1. User nhấn vào nút “Đăng kí tiêm”. Bước 2. Hệ thống hiển thị danh sách tiêm. Bước 3. Nhấn button “Đăng kí”
Bước 4. Nhập thông tin và chọn thời gian tiêm. Bước 5. Nhấn button “Đăng kí tiêm”
Bước 6. Hệ thống kiểm tra tính hợp lệ các trường đã nhập và hiển thị kết quả ra màn hình – Kết thúc use-case
Exception flow:
Bước 5a. Actor chọn button “Hủy” Use case dừn g lại
Bước 6: Hệ thống kiếm tra không hợp lệ Thông báo thông tin sai cho Actor=> Quay lại bước 2.
CHƯƠNG IV. KẾT QUẢ TRIỂN KHAI HỆ THỐNG WEBSITE 4.1. Công cụ xây dựng
Hệ quản trị cơ sở dữ liệu (MySQL Workbench): thiết kế cơ sở dữ liệu.
HTML, CSS, JS, Bootstrap: xây dựng giao diện chương trình.
Spring Framework: xây dựng Back-end(sever) chương trình.
Angular Framework: xây dựng Front-end chương trình
4.2. Thiết kế giao diện
4.2.1. Giao diện trang tiêm chủng định kỳ
4.2.2. Giao diện trang đăng ký tiêm
Hình 24: Giao diện trang đăng ký tiêm
4.2.3. Giao diện trang quản lý nhân viên
Hình 26: Giao diện thêm mới nhân viên
4.2.5. Giao diện quản lý bệnh nhân
Hình 28: Giao diện danh sách bệnh nhân
4.2.6. Giao diện lịch sử tiêm
4.2.7. Giao diện xác nhận tiêm
Hình 30: Giao diện xác nhận tiêm
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 1. Kết luận
1.1. Về công nghệ:
Tìm hiểu và nắm bắt được các công cụ thiết kế web.
Biết được các thiết kế web động cũng như cách tổ chức cơ sở dữ liệu.
Hiểu sâu hơn về Spring Framework, Angular.
Hiểu sâu và vận dụng thành thạo mô hình MVC, các kiến thức hổ trợ trong quá trình xây dụng hệ thống: CSS, HTML, MySQL, Javascript, Ajax, …
Tích lũy được kinh nghiệm về xây dụng kế hoạch cho việc phát triển một phần mềm hoàn chỉnh, cách bố trì và quản lý thời gian sao cho hợp lý.
1.2. Về ứng dụng:
Xây dựng thành công website “Website quản lý tiêm chủng cho trẻ em của trạm y tế” với các chức năng đáp ứng được nhu cầu quản lý tiêm chủng cho trẻ em. Giúp người dân có thể nắm bắt công nghệ và theo dõi được quá trình tiêm chủng qua công nghệ số
2. Hướng phát triển
- Xây dựng thêm một số chức năng mới
- Tối ưu hóa hệ thống để website hoạt động nhanh hơn.
- Nâng cấp và hoàn thiện giao diện người dùng, các chức năng và tính bảo mật của hệ thống.
PHỤ LỤC 1. Cài đặt IntelliJ IDEA
https://cungdev.com/2018/02/01/huong-dan-intellij-idea/
2. Thiết lập đường dẫn tới database
- Chọn file application.properties
TÀI LIỆU THAM KHẢO
[1].Bootstrap, https://getbootstrap.com/docs/3.4/css/ [2]. levunguyen. Học lập trình Spring Framework:
https://levunguyen.com/hoc-lap-trinh-spring-web/
[3]. levunguyen Học lập trình Angular: https://levunguyen.com/hoc- lap-trinh-angular/
[4]. NgoLeQuan. (2021). Lập trình web nâng cao. DaNang. [5]. topdev. Restful API: https://topdev.vn/blog/restful-api-la-gi/ [6]. wikipedia. (2022, 2 12). . Retrieved from Java programing: