Lịch sử giải quyết vấn đề
Để khắc phục những vấn đề trong quản lý hồ sơ bệnh nhân, thuốc và bác sĩ tại các phòng khám tư nhân, nhiều tổ chức đã nhanh chóng tiến hành nghiên cứu và phát triển các ứng dụng cùng website nhằm hỗ trợ bệnh nhân và bác sĩ trong quá trình khám chữa bệnh.
Jane.app là ứng dụng hỗ trợ phòng khám tư nhân, được đồng sáng lập bởi Ali Taylor và Trevor Johnston Ứng dụng này nổi bật với nền tảng website, cho phép bệnh nhân và bác sĩ dễ dàng đặt lịch hẹn và tổ chức khám bệnh trực tuyến qua Zoom Jane.app thu thập dữ liệu từ các cuộc khám bệnh, giúp bác sĩ quản lý hồ sơ bệnh nhân qua EMR và theo dõi thông tin bệnh nhân dựa trên tuổi, địa chỉ, loại bệnh và gói điều trị Tuy nhiên, ứng dụng không hỗ trợ quản lý thuốc trong phòng khám.
Uno là ứng dụng web do công ty UNOTECH phát triển, tương tự như Jane.app, nhằm hỗ trợ các phòng khám tư nhân Ứng dụng này không chỉ tích hợp các tính năng của Jane.app mà còn mở rộng khả năng hỗ trợ tư vấn, thanh toán phí khám bệnh, chi phí thuốc online và lập hóa đơn tự động Tuy nhiên, Uno vẫn chưa cung cấp tính năng quản lý thuốc trong phòng khám.
AdvancedMD là một ứng dụng window form do Raul Villar phát triển, nhằm hỗ trợ các phòng khám tư nhân Ứng dụng này lưu trữ dữ liệu trên nền tảng đám mây AWS, giúp bác sĩ và quản lý xử lý thông tin về bệnh nhân, thuốc và cuộc hẹn một cách nhanh chóng và an toàn AdvancedMD cho phép bệnh nhân đăng ký online trên các nền tảng Android, IOS, Windows, MacOS và Linux, đồng thời tổng hợp thông tin để tạo ra báo cáo và thống kê về tình hình phòng khám Tuy nhiên, ứng dụng không hỗ trợ khám bệnh online.
Mục tiêu đề tài
Phần mềm quản lý phòng khám bệnh tư nhân là giải pháp hiệu quả cho việc quản lý bệnh nhân, chẩn đoán, thuốc, và kê toa Nó cho phép người quản trị theo dõi tình trạng của bệnh nhân và bác sĩ, cũng như danh sách chẩn đoán Hệ thống hỗ trợ cập nhật, thêm, sửa, xóa và tra cứu thông tin liên quan đến bệnh nhân, bác sĩ, thuốc, chẩn đoán và toa thuốc một cách dễ dàng và nhanh chóng.
Phương pháp nghiên cứu
Để tối ưu hóa việc sử dụng ứng dụng quản lý phòng khám tư nhân, người dùng cần nắm vững cách thức hoạt động và kiến trúc của ứng dụng qua quá trình cài đặt và sử dụng Bên cạnh việc tìm hiểu về ứng dụng, việc xây dựng trong môi trường hệ thống phổ biến và hỗ trợ tốt cũng rất quan trọng Trong bài viết này, chúng tôi lựa chọn hệ điều hành Windows và Android để đảm bảo hiệu quả tối ưu cho ứng dụng.
Java là một ngôn ngữ lập trình phổ biến, chủ yếu được sử dụng cho phát triển ứng dụng trên điện thoại và máy tính để bàn Với cộng đồng hỗ trợ mạnh mẽ, Java giúp lập trình viên dễ dàng trong việc sử dụng và xử lý lỗi trong quá trình phát triển ứng dụng.
Tham khảo các thiết kế giao diện liên quan đến bài toán, thực hiện lập trình và kiểm thử, đồng thời thêm và chỉnh sửa chức năng để phù hợp với yêu cầu của bài toán.
Hệ quản trị cơ sở dữ liệu MySQL là lựa chọn hàng đầu cho các lập trình viên nhờ vào tốc độ cao, tính ổn định và dễ sử dụng MySQL hỗ trợ nhiều hệ điều hành và cung cấp một hệ thống phong phú các hàm tiện ích mạnh mẽ, giúp tối ưu hóa việc lưu trữ dữ liệu cho ứng dụng.
Dùng quản lý CSDL bằng giao diện phpMyAdmin: đây là ngôn ngữ mã nguồn mở viết bằng PHP dùng để quản lý CSDL MySQL thông qua trình duyệt web.
Kết quả đạt được
- Giao diện Bệnh nhân ( Patient ):
Bệnh nhân có thể dễ dàng đăng ký và đăng nhập vào hệ thống, với yêu cầu đăng ký được xác nhận bởi Admin Họ cũng có thể cập nhật thông tin cá nhân và thông tin tài khoản của mình một cách thuận tiện.
Có quyền đăng ký lịch khám bệnh dựa theo ngày, giờ và tự chọn bác sĩ, ngoài ra còn có thể xem tình trạng khám bệnh.
Có thể xem thông tin thông tin về toa thuốc, tổng số tiền, loại thuốc, chi tiết toa thuốc.
Admin đăng nhập vào hệ thống, cập nhật thông tin cá nhân và thông tin tài khoản
Quản lý tài khoản cho bác sĩ và bệnh nhân là nhiệm vụ của admin, bao gồm các chức năng như đăng ký, xác nhận yêu cầu đăng ký, sửa đổi thông tin tài khoản và xóa tài khoản.
Admin có thể quản lý lịch rảnh của bác sĩ (Đăng ký, sửa đổi thông tin, xóa).
Admin có thể quản lý lịch khám bệnh của bác sĩ (Đăng ký, sửa đổi thông tin, xóa).
Admin có thể quản lý lịch thuốc (Đăng ký, sửa đổi thông tin, xóa).
Admin có thể quản lý toa thuốc của bệnh nhân ( sửa đổi thông tin, xóa).
- Giao diện bác sĩ ( Doctor ) :
Bác sĩ có thể dễ dàng đăng ký và đăng nhập vào hệ thống, tuy nhiên yêu cầu đăng ký cần được Admin xác nhận Sau khi đăng nhập, bác sĩ có thể cập nhật thông tin cá nhân và thông tin tài khoản của mình.
Bác sĩ có thể quản lý lịch rảnh của bản thân bác sĩ (Đăng ký, sửa đổi thông tin, xóa).
Bác sĩ có thể quản lý lịch khám bệnh của bản thân bác sĩ (Đăng ký, sửa đổi thông tin, xóa).
Bác sĩ đăng ký và sửa đổi thông tin của thuốc.
Bác sĩ có thể quản lý toa thuốc mà bác sĩ đã kê ( thêm, sửa đổi, xóa).
Giới thiệu tổng quát về đề tài.
Chương 2 : Thiết kế, cài đặt giải thuật, biểu diễn cơ sở dữ liệu, trình bày các bước xây dựng hệ thống bằng phương pháp lọc cộng tác.
Chương 3 : Kiểm thử hệ thống và đánh giá độ chính xác, tốc độ của hệ thống.
Trình bày kết quả đạt được và hướng phát triển hệ thống.
Mô tả chi tiết bài toán
Ứng dụng này giúp Admin quản lý toàn bộ hoạt động và dữ liệu của phòng khám tư nhân, bao gồm thông tin bác sĩ, bệnh nhân, lịch rảnh và lịch khám bệnh Người dùng cũng có thể xem chi tiết toa thuốc và thuốc được kê Đặc biệt, ứng dụng cho phép bệnh nhân tự đăng ký lịch khám theo thời gian cá nhân và tra cứu thông tin toa thuốc từ bác sĩ.
Hoạt động của người quản trị (Admin):
Quản lý, thêm, xóa, chỉnh sửa thông tin của bản thân Admin (ID, tên, ngày sinh, giới tính, địa chỉ, số điện thoại, email, mật khẩu).
Quản lý, thêm, xóa, chỉnh sửa thông tin của bác sĩ (ID, tên, ngày sinh, giới tính, địa chỉ, số điện thoại, email, mật khẩu, Bằng cấp, chuyên ngành).
Quản lý, thêm, xóa, chỉnh sửa thông tin của bệnh nhân (ID, tên, ngày sinh, giới tính, địa chỉ, số điện thoại, email, tuổi, nhóm máu).
Quản lý, xóa, chỉnh sửa thông tin lịch rảnh của bác sĩ (ID bác sĩ, ngày rảnh, thời gian bắt đầu, thời gian kết thúc).
Quản lý và cập nhật các hoạt động khám bệnh giữa bác sĩ và bệnh nhân, bao gồm các thông tin quan trọng như ID bác sĩ, ID bệnh nhân, ngày khám, thời gian bắt đầu và kết thúc, triệu chứng, bệnh nền, chẩn đoán và trạng thái.
Quản lý thông tin thuốc bao gồm các chức năng thêm, xóa và chỉnh sửa các dữ liệu quan trọng như ID thuốc, tên thuốc, công ty sản xuất, thành phần, ngày sản xuất, ngày hết hạn và giá mỗi viên thuốc.
Quản lý danh sách toa thuốc bao gồm các thông tin quan trọng như ID toa thuốc, ID hoạt động khám bệnh, ngày tạo và tổng giá trị của toa Ngoài ra, chi tiết toa thuốc cũng cần ghi rõ ID toa thuốc, ID thuốc, tên thuốc, giá trên một viên, số lượng viên và tổng giá trị.
Hoạt động của bác sĩ (Doctor):
Bạn có thể xem và chỉnh sửa thông tin cá nhân của mình, bao gồm ID bác sĩ, tên, ngày sinh, giới tính, địa chỉ, số điện thoại, chứng chỉ, chuyên ngành, email, mật khẩu, câu hỏi và câu trả lời để lấy lại mật khẩu, cũng như trạng thái tài khoản.
Thêm và chỉnh sửa lịch rảnh của bản thân bác sĩ(ID lịch rảnh, Ngày rảnh, thời gian bắt đầu, thời gian kết thúc).
Bác sĩ có thể thêm và chỉnh sửa thông tin hoạt động khám bệnh của mình, bao gồm ID hoạt động khám, ID bệnh nhân, triệu chứng, bệnh nền, chẩn đoán, ngày khám, thời gian bắt đầu, thời gian kết thúc và trạng thái.
Kê toa thuốc cho mỗi trường hợp đã được chẩn đoán.
Danh sách toa thuốc bao gồm các thông tin chi tiết như ID toa thuốc, ID hoạt động khám bệnh, ngày tạo và tổng giá trị Mỗi toa thuốc còn ghi rõ ID thuốc, tên thuốc, giá trên một viên, số lượng viên và tổng giá trị của toa.
Hoạt động của bệnh nhân (Patient):
Xem và chỉnh sửa thông tin cá nhân của bạn bao gồm ID bệnh nhân, tên, ngày sinh, giới tính, địa chỉ, số điện thoại, nhóm máu, email, mật khẩu, câu hỏi và câu trả lời lấy lại mật khẩu, cũng như trạng thái tài khoản.
Quản lý thông tin khám bệnh của bệnh nhân bao gồm việc thêm, sửa, xóa các cuộc khám chưa được chẩn đoán, với các dữ liệu quan trọng như ID hoạt động khám, ID bác sĩ, triệu chứng, bệnh nền, chẩn đoán, ngày khám, thời gian bắt đầu, thời gian kết thúc và trạng thái.
Xem chi tiết các toa thuốc mà bác sĩ đã kê, bao gồm ID toa thuốc, ID hoạt động khám bệnh, ngày tạo và tổng giá Thông tin chi tiết về từng thuốc trong toa cũng được cung cấp, bao gồm ID thuốc, tên thuốc, giá trên một viên, số lượng viên và tổng giá trị.
Vấn đề và giải pháp liên quan đến bài toán
2.1 Xây dựng và quản lý cơ sở dữ liệu:
MySQL là một hệ thống quản trị cơ sở dữ liệu mã nguồn mở (Relational
Hệ thống Quản lý Cơ sở Dữ liệu (RDBMS) hoạt động dựa trên mô hình client-server, cho phép người dùng tạo và quản lý các cơ sở dữ liệu hiệu quả RDBMS không chỉ là phần mềm mà còn là dịch vụ hỗ trợ quản lý mối quan hệ giữa các dữ liệu, đảm bảo tính tổ chức và dễ dàng truy cập thông tin.
Xampp là chương trình tạo máy chủ Web (Web Server) được tích hợp sẵn
XAMPP là một chương trình đa nền tảng, hỗ trợ các công cụ như Apache, PHP, MySQL, FTP Server và Mail Server, cùng với phpMyAdmin, cho phép người dùng dễ dàng quản lý cơ sở dữ liệu Chương trình này hoạt động hiệu quả trên cả ba hệ điều hành phổ biến: Linux, Windows và MacOS.
2.2 Chọn lựa ngôn ngữ lập trình:
Java là một ngôn ngữ lập trình phổ biến, chủ yếu được sử dụng để phát triển ứng dụng cho điện thoại di động và máy tính để bàn Với cộng đồng hỗ trợ mạnh mẽ, Java giúp lập trình viên dễ dàng hơn trong việc sử dụng và xử lý lỗi trong quá trình phát triển.
Thiết kế hệ thống
Cấu trúc chức năng của ứng dụng được thiết kế tối giản, giúp người dùng dễ dàng hiểu và sử dụng hiệu quả trong suốt quá trình trải nghiệm.
♦ Cơ sở dữ liệu được thiết kế bằng MySQL gồm 9 bảng nhầm chi tiết hóa và tối ưu các loại dữ liệu:
Bảng 1: Thông tin tài khoản Admin.
Bảng 2: Thông tin tài khoản Doctor.
Bảng 3: Thông tin tài khoản Patient.
Bảng 4: Thông tin thuốc Drug.
DOCTOR_ID Int, Khóa ngoại
Bảng 5: Thông tin lịch rảnh.
PATIENT_ID Int, Khóa ngoại
DOCTOR_ID Int, Khóa ngoại
Bảng 6: Thông tin lịch khám bệnh.
APPOINTMENT_ID Int, Khóa ngoại
Bảng 7: Thông tin hóa đơn.
BILL_ID Int, Khóa chính
DRUG_ID Int, Khóa chính
Bảng 8: Thông chi tiết hóa đơn.
♦ Mô hình Dữ liệu Khái niệm: Ảnh 2: Mô hình dữ liệu khái niệm.
♦ Mô hình Dữ liệu Vật lý: Ảnh 3: Mô hình dữ liệu vật lý.
Cài đặt FRONTEND
Để thiết kế giao diện trực quan và thân thiện, tôi sẽ sử dụng Java Swing, một bộ công cụ GUI do Sun Microsystems phát triển, giúp dễ dàng kết nối với cơ sở dữ liệu MySQL Java Swing, viết tắt của Swing của Java Foundation (JFC), cho phép xây dựng các ứng dụng tối ưu cho hệ điều hành Windows.
2.1 Thiết kế giao diện đăng nhập: Ảnh 4: Giao diện đăng nhập theo người dùng.
2.2 Thiết kế giao diện đăng ký tài khoản: Ảnh 5: Giao diện đăng ký theo người dùng.
2.3 Thiết kế giao diện thay đổi mật khẩu: Ảnh 6: Giao diện thay đổi mật khẩu theo người dùng.
2.4 Thiết kế giao diện thay đổi thông tin Admin: Ảnh 7: Giao diện thay đổi thông tin Admin.
2.5 Thiết kế giao diện quản lý bác sĩ: Ảnh 8: Giao diện quản lý bác sĩ. Ảnh 9: Giao diện duyệt đơn đăng ký bác sĩ.
2.6 Thiết kế giao diện quản lý bệnh nhân: Ảnh 10: Giao diện quản lý bệnh nhân. Ảnh 11: Giao diện duyệt đơn đăng ký bệnh nhân.
2.7 Thiết kế giao diện quản lý lịch rảnh bác sĩ của admin: Ảnh 12: Giao diện quản lý lịch rảnh bác sĩ của admin.
2.8 Thiết kế giao diện quản lý lịch khám của admin: Ảnh 13: Giao diện quản lý lịch khám của admin.
2.9 Thiết kế giao diện quản lý thuốc của admin: Ảnh 14: Giao diện quản lý thuốc của admin.
2.10 Thiết kế giao diện quản lý toa thuốc của admin: Ảnh 15: Giao diện quản lý toa thuốc của admin. Ảnh 16: Giao diện chi tiết toa thuốc.
2.11 Thiết kế giao diện thay đổi thông tin người dùng bác sĩ: Ảnh 17: Giao diện thay đổi thông tin bác sĩ.
2.12 Thiết kế giao diện quản lý lịch rảnh của người dùng bác sĩ: Ảnh 18: Giao diện quản lý lịch rảnh của người dùng bác sĩ.
2.13 Thiết kế giao diện quản lý lịch khám của người dùng bác sĩ: Ảnh 19: Giao diện quản lý lịch khám của người dùng bác sĩ.
2.14 Thiết kế giao diện kê đơn thuốc: Ảnh 20: Giao diện kê đơn thuốc. Ảnh 21: Giao diện xem đơn thuốc đã kê.
2.15 Thiết kế giao diện quản lý thuốc cho người dùng bác sĩ: Ảnh 22: Giao diện quản lý thuốc.
2.16 Thiết kế giao diện thay đổi thông tin của người dùng bệnh nhân: Ảnh 23: Giao diện thay đổi thông tin bệnh nhân.
2.17 Thiết kế giao diện đăng ký lịch khám bệnh của người dùng bệnh nhân: Ảnh 24: Giao diện đăng ký lịch khám.
2.18 Thiết kế giao diện xem đơn thuốc được kê toa của bệnh nhân: Ảnh 25: Giao diện xem đơn thuốc được kê.
Cài đặt BACKEND
3.1 Khởi tạo cấu trúc thư mục source code: Ảnh 26: Cấu trúc thư mục ứng dụng.
3.1.1 Cài đặt thư mục Images: Đây là thư mục chứa các tệp hình ảnh sử dụng cho việc tạo giao diện ứng dụng.
3.1.2 Cài đặt thư mục Libraries: Đây là thư mục chứa các thư viện cần thiết cho việc tạo và chạy ứng dụng.
3.1.3 Cài đặt thư mục ClinicManagementSystem:
♦ Sử dụng Java Swing và các thành phần của Java Swing để tạo các giao diện của ứng dụng:
Label Spinner Toggle Button Check Box
Radio Button Combo Box Text Field Text Area
Password Field Text Pane Table Frame
Bảng 9: Đối tượng sử dụng tạo GUI
♦ Thư mục này chứa các giao diện được tạo ra bở Java Swing:
3.1.4 Cài đặt thư mục Model: Đây là thư mục chứa các lớp ứng với các bảng được tạo trong cơ sở dữ liệu, mỗi lớp sẽ gồm tất cả các thuộc tính và hàm lấy, nhập dữ liệu cho đối tượng.
3.1.5 Cài đặt thư mục Function: Đây là thư mục gồm các lớp mang vai trò cung cấp các hàm hỗ trợ thực hiện chức năng của giao diện liên quan đến đối tượng cụ thể như tạo kết nối với MySQL,thực hiện truy vấn (lấy, cập nhật dữ liệu) với MySQL và các chức năng được sử dụng với mỗi bảng trong cơ sở dữ liệu.
3.2 Cài đặt kết nối và truy xuất dữ liệu với cơ sở dữ liệu MySQL:
3.2.1 Cài đặt kết nối MySQL: Để kết nối ta cần phải tạo class ConnectionSql trong thư mục Function và import các thư viện của java.sql:
Sử dụng “Class.forName(“com.mysql.jdbc.Driver”)” để chỉ dẫn cho Java biết sẽ kết nối với loại database MySQL.
Sử dụng “DriverManager.getConnection” để tạo một kết nối đến cơ sở dữ liệu MySQL với database có url = jdbc:mysql://localhost:3306/clinic, username “root ” và password = “”.
3.2.2 Cài đặt truy xuất tới MySQL:
After creating the ConnectionSql class, we can invoke the Connection method to connect to the database We also need to develop a DbOperation class that includes two functions: setDataOrDelete for updating or deleting data, and getData for retrieving data.
Hàm setDataOrDelete nhận hai đối số là Query và msg, Query chứa code truy vấn tới MySQl và msg chứa chuỗi trả về nếu thành công.
Hàm getData trả về một đối tượng ResultSet, nhận vào một đối số là Query chứa mã truy vấn Nếu truy vấn thành công, hàm sẽ cung cấp dữ liệu tương ứng.
3.3 Cài đặt BACKEND cho giao diện đăng nhập:
♦ Dữ liệu cần xử lý:
Kiểu Tên biến Miêu tả
Combo box cbxType Chọn kiểu người dùng
Text txtPass Nhận mật khẩu
Check box checkbox Chọn hiển thị, che mật khẩu
Button btnClear Reset giao diện
Button btnSignUP Chuyển giao diện đăng ký
Button btnForgot Chuyển giao diện quên mật khẩu
Button btnExit Thoát Ứng dụng
♦ Cài đặt chức năng nút Clear:
Dùng setText() đặt giá trị mặt định cho email và pass là rỗng và setEnabled() đặt nút Login không nháy chuột được.
♦ Cài đặt chức năng nút Exit:
Dùng showConfirmDialog hiển thị hộp thoại lựa chọn có hoặc không, nếu chọn có, chương trình sẽ thoát:
♦ Cài đặt chức năng nút Forgot:
Dùng setVisible(false) để thoát frame hiện tại, và new ForgotPassword():
♦ Cài đặt chức năng nút SignUP:
♦ Cài đặt chức năng kiểm tra dữ liệu nhập vào gồm email, password:
Sử dụng matches để check email hợp lệ và kiểm tra password rỗng.
♦ Cài đặt chức năng nút login: Đầu tiên ta phải tạo hàm đăng nhập tại 3 lớp FunctionAdmin,FunctionDoctor và FunctionPatient:
Tiếp theo, tại chức năng của login ta sẽ lấy kiểu người dùng, email và password khi người dùng bấm nút đăng nhập.
Tùy vào loại người dùng mà ta gọi hàm login, nếu đúng sẽ mở giao diện chính:
3.4 Cài đặt BACKEND cho giao diện đăng ký:
♦ Dữ liệu cần xử lý:
Kiểu Tên biến Miêu tả
Combo box cbxType Chọn kiểu người dùng
JDateChooser jdcDOB Nhận ngày sinh
Combo box cbxGender Nhận Giới tính
Text txtAddress Nhận địa chỉ
Text txtPhone Nhận số điện thoại
Text txtPass Nhận mật khẩu
Text txtQuest Nhận câu hỏi bảo mật
Text txtAnswer Nhận câu trả lời
Text txtCertificate Nhận bằng cấp
Text txtSpecialist Nhận chuyên ngành
Combo box cbxBlood Nhận loại máu
Button btnLogin Chuyển giao diện đăng nhập
♦ Cài đặt chức năng nút Clear:
♦ Cài đặt chức năng nút Login:
♦ Cài đặt chức năng nút SignUP: Đầu tiên ta phải tạo hàm đăng ký tại 2 lớp FunctionDoctor vàFunctionPatient:
Tại chức năng SignUP, chúng ta sẽ lấy giá trị từ combo box loại người dùng để xác định loại tài khoản mà người dùng muốn đăng ký Dựa vào loại người dùng, hệ thống sẽ truy xuất dữ liệu phù hợp từ các bảng khác nhau và gọi hàm Register để hoàn tất quá trình đăng ký.
3.5 Cài đặt BACKEND cho giao diện đổi mật khẩu:
♦ Dữ liệu cần xử lý:
Kiểu Tên biến Miêu tả
Combo box cbxType Chọn kiểu người dùng
Text txtQuestion Nhận câu hỏi bảo mật
Text txtAnswer Nhận câu trả lời
Text txtNewPassword Nhận mật khẩu mới
Button btnSearch Tìm Câu hỏi bảo mật theo email
Button btnUpdate Đổi mật khẩu người dùng
♦ Cài đặt chức năng nút Clear:
♦ Cài đặt chức năng nút Search:
Lấy email và loại người dùng đã chọn để tra cứu câu hỏi bảo mật trong cơ sở dữ liệu Nếu không tìm thấy, hệ thống sẽ hiển thị thông báo cho biết email không tồn tại hoặc loại người dùng đã chọn không đúng Ngược lại, nếu tìm thấy, câu hỏi bảo mật sẽ được gán vào biến textQuestion.
♦ Cài đặt chức năng nút Update:
Để cập nhật mật khẩu mới, trước tiên cần trả lời câu hỏi bảo mật Nếu câu trả lời chính xác, hệ thống sẽ tiến hành cập nhật mật khẩu; nếu không, sẽ hiển thị thông báo rằng câu trả lời không hợp lệ.
3.6 Cài đặt BACKEND cho giao diện thay đổi thông tin của Admin:
♦ Dữ liệu cần xử lý:
Kiểu Tên biến Miêu tả
Combo box txtName Nhận tên
JDateChooser jdcDOB Nhận ngày sinh
Combo box cbxGender Nhận giới tính
Text txtAddress Nhận địa chỉ
Text txtPhone Nhận số điện thoại
Text txtPass Nhận mật khẩu
Text txtQuest Nhận câu hỏi bảo mật
Text txtAnswer Nhân câu trả lời
Button btnUpdate Câp nhật thông tin
♦ Cài đặt chức năng nút Update: Để cập nhật thông tin người dùng Admin ta cần tạo hàm Update:
Tiếp tục, ta lấy dữ liệu và gọi hàm Updateđể cập nhật thông tin người dùng:
3.7 Cài đặt BACKEND cho giao diện quản lý bác sĩ:
♦ Dữ liệu cần xử lý:
Kiểu Tên biến Miêu tả
JDateChooser jdcDOB Nhận ngày sinh
Combo box cbxGender Nhận giới tính
Text txtAddress Nhận địa chỉ
Text txtPhone Nhận số điện thoại
Text txtPass Nhận mật khẩu
Text txtQuest Nhận câu hỏi bảo mật
Text txtAnswer Nhân câu trả lời
Text txtCertificate Nhận bằng cấp
Text txtSpecialist Nhận chuyên ngành
Table tbShowList Bảng hiển thị danh sách bác sĩ
Button btnAdd Thêm bác sĩ
Button btnUpdate Cập nhật thông tin bác sĩ
Button btnDelete Xóa bác sĩ
Button btnCreateRequest Chuyển giao diện duyệt thông tin bác sĩ
♦ Cài đặt chức năng nút CreateRequest, chuyển hướng giao diện yêu cầu đăng ký:
Để hiển thị danh sách bác sĩ khi giao diện được khởi tạo, trước tiên cần tạo hàm GetAllRecords trong lớp FunctionDoctor.
Chúng ta sẽ sử dụng lớp DefaultTableModel của Java để lấy mô hình bảng bác sĩ Đầu tiên, sử dụng hàm GetAllRecords để thu thập danh sách bác sĩ, sau đó áp dụng hàm addRow của lớp DefaultTableModel để thêm dữ liệu vào bảng.
Để cài đặt chức năng hiển thị thông tin bác sĩ khi nháy chuột vào bảng, cần tạo một hàm tìm kiếm dựa trên ID của bác sĩ.
Sử dụng hàm getSelectedRow() từ đối tượng tbShowList để xác định hàng đã chọn, sau đó áp dụng hàm getValueAt() để lấy id của bác sĩ Cuối cùng, gọi hàm SearchForID và gán giá trị thông tin bác sĩ cùng các thành phần liên quan.
♦ Cài đặt chức năng Add, thêm bác sĩ: Đầu tiên, tạo hàm Add trong lớp FunctionDoctor:
Tiếp theo, lấy các giá trị trong các thành phần và gọi hàm này để thêm bác sĩ:
♦ Cài đặt chức năng Update, cập nhật thông tin bác sĩ:
♦ Cài đặt chức năng Delete, xóa thông tin bác sĩ:
Tạo hàm Delete trong lớp FunctionDoctor:
Tiếp theo, lấy giá trị ID bác sĩ của trường txtID và chạy hàm Delete để xóa bác sĩ:
3.8 Cài đặt BACKEND cho giao diện duyệt đơn đăng ký tài khoản của bác sĩ:
♦ Cài đặt chức năng hiển thị thông tin bác sĩ đăng ký khi khởi tạo giao diện:
Tạo hàm GetAllRequests trong lớp FunctionDoctor để lấy thông tin bác sĩ đăng ký:
Sử dụng lớp DefaultTableModel trong Java để lấy mô hình bảng bác sĩ, áp dụng hàm GetAllRequests để thu thập danh sách bác sĩ và sử dụng hàm addRow của lớp DefaultTableModel để thêm thông tin vào bảng.
♦ Cài đặt chức năng cho phép đơn đăng ký:
Ta sử dụng lại hàm SearchForID, gán trạng thái là true và cập nhật thông tin bác sĩ bằng hàm update:
3.9 Cài đặt BACKEND cho giao diện quản lý bệnh nhân:
♦ Dữ liệu cần xử lý:
Kiểu Tên biến Miêu tả
JDateChooser jdcDOB Nhận ngày sinh
Combo box cbxGender Nhận giới tính
Text txtAddress Nhận địa chỉ
Text txtPhone Nhận số điện thoại
Text txtPass Nhận mật khẩu
Text txtQuest Nhận câu hỏi bảo mật
Text txtAnswer Nhân câu trả lời
Combo box cbxBlood Nhận nhóm máu
Table tbShowList Bảng hiển thị danh sách bệnh nhân
Button btnAdd Thêm bệnh nhân
Button btnUpdate Cập nhật thông tin bệnh nhân
Button btnDelete Xóa bệnh nhân
Button btnCreateRequest Chuyển giao diện duyệt thông tin bệnh nhân
Để hiển thị danh sách bệnh nhân khi giao diện được khởi tạo, trước tiên cần tạo hàm GetAllRecords trong lớp FunctionPatient.
Chúng ta sẽ sử dụng lớp DefaultTableModel trong Java để lấy mô hình bảng bệnh nhân Bằng cách sử dụng hàm GetAllRecords, chúng ta có thể thu thập danh sách bệnh nhân và sau đó sử dụng hàm addRow của lớp DefaultTableModel để thêm dữ liệu vào bảng.
Để cài đặt chức năng hiển thị thông tin bác sĩ khi nháy chuột vào bảng bệnh nhân, trước tiên cần tạo hàm tìm kiếm theo ID bệnh nhân Sau đó, chỉ cần gọi hàm SearchForID và gán giá trị của thông tin bệnh nhân cùng các thành phần liên quan.
Kiểm thử chức năng giao diện đăng ký
Mục tiêu của kiểm thử là đảm bảo rằng đơn đăng ký được gửi thành công đến cơ sở dữ liệu và hiển thị đúng trong danh sách tài khoản của người dùng, bao gồm cả bác sĩ và bệnh nhân.
♦ Kiểm thử: nhập thông tin cho đơn bác sĩ, nhập thông tin cho đơn bệnh nhân
Kiểm thử chức năng giao diện đăng nhập
♦ Mục tiêu kiểm thử: đăng nhập thành công vào giao diện người dùng admin, bác sĩ và bệnh nhân
♦ Kiểm thử: nhập email và mật khẩu của mỗi loại người dùng.
Kiểm thử chức năng cập nhật thông tin
Mục tiêu của quá trình kiểm thử là cập nhật thông tin tài khoản người dùng Do giao diện này giống nhau cho cả ba loại người dùng, chúng ta chỉ cần thực hiện kiểm thử trên giao diện người dùng của admin.
♦ Kiểm thử: thay đổi thông tin người dùng
Kiểm thử chức năng giao diện quản lý bác sĩ
Mục tiêu kiểm thử bao gồm việc xem danh sách bác sĩ, thêm mới, cập nhật và xóa bác sĩ Do giao diện này tương tự như giao diện quản lý bệnh nhân, chúng ta chỉ cần thực hiện kiểm thử trên giao diện này.
♦ Kiểm thử: mở giao diện, thêm bác sĩ, cập nhật bác sĩ, xóa bác sĩ
Cập nhật thông tin bác sĩ “TOI LA BAC SI”:
Xóa người dùng bác sĩ có ID là 3
Thêm người dùng bác sĩ:
Kiểm thử chức năng giao diện quản lý lịch rảnh
♦ Mục tiêu kiểm thử: xem danh sách lịch rảnh, thêm lịch rảnh, cập nhật và xóa lịch rảnh
♦ Kiểm thử: xem danh sách lịch rảnh, tạo lịch rảnh, cập nhật lịch rảnh, xóa lịch rảnh
Xem danh sách lịch rảnh:
Cập nhật lịch rảnh ID 2:
6 Kiểm thử chức năng giao diện quản lý lịch khám của admin – đăng ký lịch khám của bệnh nhân, bác sĩ:
♦ Mục tiêu kiểm thử: xem danh sách lịch khám, thêm lịch khám, cập nhật và xóa lịch khám
♦ Kiểm thử: xem danh sách lịch khám, tạo lịch khám, cập nhật lịch khám, xóa lịch khám
Cập nhật lịch khám ID 1 (trước – sau):
Kiểm thử chức năng giao diện quản lý thuốc
♦ Mục tiêu kiểm thử: Xem danh sách thuốc, thêm, sửa và xóa thuốc
♦ Kiểm thử: mở giao diện, thêm thuốc, sửa thuốc, xóa thuốc:
Sửa thuốc có ID 1 (trước-sau):
Kiểm thử chức năng giao diện kê toa thuốc của bác sĩ
♦ Mục tiêu kiểm thử: tạo được toa thuốc dựa trên lịch khám đã chẩn đoán, coi được chi tiết toa thuốc
♦ Kiểm thử: chọn lịch khám đã chẩn đoán từ bảng lịch khám, chọn các loại thuốc cần kê và thêm vào đơn thuốc:
Kết quả đạt được
Phần mềm quản lý phòng khám tư nhân được phát triển nhằm hỗ trợ quản lý hiệu quả các hoạt động như quản lý bác sĩ, bệnh nhân, lịch rảnh, lịch khám, đơn thuốc và thuốc.
Phần mềm có giao diện trực quan, dễ sử dụng.
Xây dựng thành công các chức năng quan trọng như quản lý bác sĩ, quản lý bệnh nhân, quản lý lịch rảnh, quản lý lịch khám, quản lý đơn thuốc, quản lý thuốc và đăng ký lịch khám, giúp tối ưu hóa quy trình chăm sóc sức khỏe.
Hướng phát triển
Thay đổi hoạt động mở cửa sổ mỗi khi chuyển giao diện.
Phát triển thêm tính năng đăng ký lịch khám theo khoản thời gian (14-5-
Phát triển thêm chức năng sắp xếp danh sách bác sĩ, bệnh nhân, toa thuốc dựa theo thời gian.
Phát triển thêm chức năng lập biểu đồ cột vào biểu đồ tròn theo số liệu của bệnh nhân.