STT Actor Mô tả
1 Nhân viên Là các bác sĩ và các y tá điều dưỡng trong bệnh
viện. Trong đó bác sĩ là người trực tiếp khám chữa bệnh cho bệnh nhân. Bao gồm các chức năng như: đăng nhập, tìm kiếm bệnh nhân, khám bệnh, chỉ định cận lâm sàng, xem kết quả cận lâm sàng, kê toa thuốc cho bệnh nhân, tìm kiếm và xem chi tiết thuốc; y tá điều dưỡng là những người thực hiện việc tiếp nhận bệnh nhân, bao gồm các chức năng
chính sau: đăng nhập, thêm bệnh nhân mới, tìm kiếm và sửa thông tin bệnh nhân, lập phiếu khám bệnh, lập và in hóa đơn cho bệnh nhân.
2 Quản trị Là các bác sĩ trưởng khoa, nhân viên phòng hành
chính của bệnh viện có thể thực hiện các chức năng quản lý các danh mục như: thuốc, bảng ICD (danh mục tên bệnh), dịch vụ cận lâm sàng, nhân viên, người dùng.
Bảng 2.1: Danh sách Actor 2.1.2 Danh sách Use-case:
STT Use-Case Mô tả
1 Đăng nhập Đăng nhập hệ thống.
2 Đổi mật khẩu Thay đổi thông tin mật khẩu khi muốn.
3 Tìm kiếm thuốc Tìm kiếm thuốc và xem thông tin chi tiết của thuốc
4 Tìm kiếm bệnh nhân Tìm kiếm và xem thông tin chi tiết của bệnh nhân.
5 Khám bệnh Khám bệnh
6 Chỉ định cận lâm sàng Chỉ định các dịch vụ cận lâm sàng cho bệnh nhân
7 Xem kết quả cận lâm
sàng
Xem kết quả của từng dịch vụ cận lâm sàng
8 Kê toa thuốc Kê toa thuốc cho bệnh nhân
9 In toa thuốc In toa thuốc cho bệnh nhân
10 Xem quá trình khám
bệnh
Xem quá trình khám bệnh (thông tin chi tiết những lần khám trước) của một bệnh nhân
11 Thêm bệnh nhân Thêm thông tin của bệnh nhân mới
12 Lập hóa đơn Lập hóa đơn viện phí
13 In hóa đơn In hóa đơn cho bệnh nhân
14 Quản lý thuốc Thêm, xóa (cập nhật tình trạng đã xóa), hay sửa
thông tin thuốc
15 Quản lý bệnh lý Thêm, xóa (cập nhật tình trạng đã xóa), sửa các
thông tin về bệnh lý.
16 Quản lý dịch vụ cận
lâm sàng
Thêm, xóa (cập nhật tình trạng đã xóa), sửa thông tin các dịch vụ cận lâm sàng của bệnh viện
tin của nhân viên trong bệnh viện. Bảng 2.2: Danh sách Use-case
2.1.3 Use-case Diagram cho các actor:
Dang xuat
Hien thi chi tiet thuoc Tim kiem thuoc
<<include>>
Tim kiem benh nhan Hien thi chi tiet benh nhan
<<include>> Ke toa thuoc In toa thuoc <<extend>> Dang nhap BacSi
Doi mat khau <<extend>>
Xem qua trinh dieu tri Kham benh <<extend>> <<extend>> <<extend>> <<extend>> Chi dinh CLS <<extend>>
Xem ket qua CLS <<extend>>
<<extend>>
2.1.3.2 Use-case Diagram cho actor Y tá, điều dưỡng:
Dang nhap
Tim kiem benh nhan
Sua thong tin Them benh nhan
<<extend>> <<extend>>
<<extend>> Dang xuat
Y ta, dieu duong
Lap hoa don <<extend>>
In hoa don <<extend>>
Tim kiem thuoc <<extend>>
Doi mat khau <<extend>>
Hình 2-11: Usecase Diagram cho actor Y tá điều dưỡng
2.1.3.3 Use-case Diagram cho actor Quantri:
Dang nhap
Quan ly Nhan vien Dang xuat Quantri <<extend>> Quan ly Dich vu Quan ly Benh ly <<extend>> <<extend>>
Doi mat khau <<extend>>
Quan ly thuoc <<extend>>
2.2 Sơ đồ kiến trúc chung của hệ thống:
Hình 2-13: Sơ đồ kiến trúc chung hệ thống
2.3 Module Tiếp nhận bệnh nhân:
2.3.1 Chức năng Đăng nhập hệ thống:* Activity cho usecase Đăng nhập: * Activity cho usecase Đăng nhập:
Giao dien dang nhap
Nhap ten dang nhap,mat khau
Hien thi giao dien trang chu Kiem Tra
Kiem tra Ten dang nhap va Mat Khau co trong csdl chua.
Sai Dung
Hien thi Thong bao loi Trang chu voi cac chuc nang user duoc quyen su dung Kiem tra du lieu
nhap vao co hop le (khong de trong)
Hình 2-14: Activity diagram Đăng nhập
CLASS TFPD F IMAGES JS ADMIN CONTROLLER INDEX VIEW
* Đặc tả use-case Đăng nhập:
Tên Đăng nhâ ̣p
Actor Nhân viên, quản trị
Điều kiện trước User ở màn hình đăng nhâ ̣p
Điều kiện sau Hiển thi ̣ các chức năng của user
Dòng sự kiên chính 1. User nhâ ̣p Username và password
2. Cho ̣n button Đăng Nhâ ̣p
3. Hê ̣ thống kiểm tra thông tin nhâ ̣p vào nếu không hơ ̣p lê ̣ hoă ̣c giá tri ̣ nhâ ̣p null. [A1]
4. Kiểm tra thông tin trong CSDL, nếu không có thông tin [A2].
5. Thông báo đăng nhâ ̣p thành công và hiển thi ̣ các chức năng của user.
6. Kết thúc usecase
Sự kiện phụ A1. Hiển thi ̣ thông báo các thông tin
nhâ ̣p chưa đầy đủ.
A2. Hiển thi ̣ thông báo không có user này trong CSDL
: taikhoan : taikhoan : User
: User
: frmDangnhap
: frmDangnhap : DangNhap_controller : DangNhap_controller Nhap username va password
CheckLogin(username,password )
CheckLogin(username,password ) Kiem tra thong tin
return result Hien thi thong bao
Hình 2-15: Sequence Đăng nhập
2.3.2 Chức năng Đổi mật khẩu:
* Activity Diagram cho usecase Đổi mật khẩu:
Giao dien Doi mat khau Nhap thông tin Nhap cac thong tin:
ten dang nhap, mat khau cu, mat khau moi
Nhan button Doi mat khau
Thong bao thanh cong
Thong bao loi
Kiem tra Sai
Dung Kiem tra thong tin
nhap vao hop le khong
* Đặc tả Use-case Đổi mật khẩu:
Tên Đổi mật khẩu
Actor User sử dụng hệ thống
Điều kiện trước User ở màn hình đổi mật khẩu
Điều kiện sau Hiển thị thông báo đổi mật khẩu thành
công cho user.
Dòng sự kiện chính 1. User nhâ ̣p Username và old password
và new password. 2. Cho ̣n button Submit
3. Hê ̣ thống kiểm tra thông tin nhâ ̣p vào nếu không hơ ̣p lê ̣ hoă ̣c giá tri ̣ nhâ ̣p null. [A1]
4. Kiểm tra username và old pasword trong CSDL, nếu không có [A2]. 5. Thông báo đổi mật khẩu thành công[A3]
6. Kết thúc usecase
Dòng sự kiện phụ A1. Hiển thi ̣ thông báo các thông tin
nhâ ̣p chưa đầy đủ.
A2. Hiển thi ̣ thông báo user này không có thực trong CSDL.
A3. Chuyển tới usecase Đăng nhập * Sequence Diagram Use-case Đổi mật khẩu:
: controllerdoimatkhau : controllerdoimatkhau : User
: User : frmdoimatkhau : frmdoimatkhau : taikhoan : taikhoan Nhap mat khau cu,mat khau cu,xac nhan mat khau
doimatkhau(o,n,manv) doimatkhau(old) true or false true or false Thong bao ket qua
Hình 2-17: Sequence Đổi mật khẩu
2.3.3 Chức năng Tìm kiếm bệnh nhân:
* Activity Diagram cho usecase Tìm kiếm bệnh nhân
Giao dien kham benh Nhap ma benh nhan Nhan button OK
Thong bao loi
Hien thi thong tin benh nhan
Kiem tra Khong co
có Kiem tra ma
benh nhan co trong CSDL
* Đặc tả use-case Tìm kiếm bệnh nhân:
Tiêu chí 1: tìm theo mã bệnh nhân
Tên Tìm kiếm bệnh nhân
Actor Nhân viên
Điều kiện trước Cho ̣n chức năng tìm kiếm bệnh nhân
Điều kiện sau Hiển thi ̣ danh sách chi tiết bệnh nhân
tìm kiếm được
Dòng sự kiện chính 1. Nhâ ̣p mã bệnh nhân muốn tìm kiếm
2. Cho ̣n button OK
3. Kiểm tra dữ liê ̣u có trong CSDL không
4. Nếu không có trong CSDL [A2] 6. Hiển thi ̣ thông tin chi tiết về bệnh nhân đó
7. Kết thúc usecase
Dòng sự kiện phụ A2. Thông báo không tìm thấy, trở lại
giao diện chính
Tiêu chí 2: tìm kiếm nhanh bằng tên bệnh nhân
Tên Tìm kiếm bệnh nhân
Actor Nhân viên
Điều kiện trước Cho ̣n chức năng tìm kiếm bệnh nhân
Điều kiện sau Hiển thi ̣ danh sách chi tiết bệnh nhân
tìm kiếm được
Dòng sự kiện chính 1. Nhâ ̣p tên bệnh nhân muốn tìm kiếm
(nhập 1 hay 1 vài ký tự trong tên bệnh nhân)
2. Kiểm tra dữ liê ̣u có trong CSDL không
3. Nếu không có trong CSDL [A2] 4. hiển thị tên bệnh nhân (hoặc hiển thị
nhiều bệnh nhân do cùng tên ) 5. chọn tên bệnh nhân cần tìm
6. hiển thị thông tin chi tiết bệnh nhân 7. Kết thúc usecase
Dòng sự kiện phụ A2. Quay lại giao diện, nhập lại thông
tin
* Sequence diagram use-case Tìm kiếm bệnh nhân:
: frmbenhnhan : frmbenhnhan : Nhanvien
: Nhanvien : controllerbenhnhan : controllerbenhnhan : BenhNhan : BenhNhan
timkiem(ten)
timkiembn(ten) Nhap ten benh nhan can tim
array array
Hien thi gia tri trong mang
Hình 2-19: Sequence Tìm kiếm bệnh nhân
2.3.4 Chức năng Thêm bệnh nhân mới:
* Đặc tả Use-case Thêm bệnh nhân:
Tên Thêm bệnh nhân
Actor Nhân viên (y tá, điều dưỡng)
Điều kiện trước Cho ̣n chức năng thêm bệnh nhân
Điều kiện sau Thông tin bệnh nhân mới được thêm
thành công
gồm: họ tên bệnh nhân, ngày sinh, giới tính, địa chỉ, tiền căn; thông tin người thân gồm: tên thân nhân, chứng minh nhân dân, điện thoại.
2. Cho ̣n button “Tiếp Nhận”
3. Kiểm tra dữ liệu nhập vào có hợp lệ không
4. Nếu chưa hợp lệ [A1]
5. Kiểm tra thân nhân đã có trong CSDL (kiểm tra CMND của thân nhân ) 5.1 Luồng xử lý khi thân nhân đã có - Nếu CMND trùng, hệ thống sẽ lấy mã thân nhân đó.
- Lưu thông tin bệnh nhân vào CSDL
- Thông báo thêm thành công và thông báo mã bệnh nhân đó.
5.2 Luồng xử lý khi thân nhân chưa có trong CSDL
- Nếu CMND không trùng trong CSDL
- Hệ thống lưu thông tin thân nhân vào CSDL
- Kiểm tra lưu thông tin thân nhân thành công.
- Nếu lưu thông tin thân nhân thành công, thực hiện thêm thông tin bệnh nhân vào CSDL
- Thông báo thành công và cho biết mã bệnh nhân đó.
6. Kết thúc usecase
Dòng sự kiện phụ A1. Thông báo thông tin không hợp lệ,
quay lại bước 1
: controllerbenhnhan : controllerbenhnhan : Nhanvien
: Nhanvien : index.php : index.php : frmbenhnhan : frmbenhnhan : controllertiencan : controllertiencan : controllerkhambenh : controllerkhambenh : Controllerhoadon : Controllerhoadon : BenhNhan : BenhNhan : PhieuKhamBenh : PhieuKhamBenh : TienCan : TienCan : hoadon : hoadon : toathuoc : toathuoc
Chon chuc nang Tiep nhan benh nhan
eve:addbenhnhan addbenhnhan() tenbn,ngaysinh,gioitinh,tentn,tuoi ,diachi,cmnd,dienthoai addbenhnhan() true or false true or false addtiencan(maicd) addtiencan() true or false showtiencan() showtiencan() array array
Hien thi gia tri trong mang getmabn() getmabn() array array addphieu(maphieu,mabn,manv,ngaykham) addphieu() addhoadon(maphieu,manv,ngaykham) addhoadon() getmahd() getmahd() array array addcthoadon(mahd,mapk,madv,ldv,gt) addcthoadon() addtoa(manv,mapk,ngay) addcttoa() true or false timkiem(ten) timkiembn(ten) array array
Hien thi gia tri trong mang
2.4 Module Khám bệnh:
2.4.1 Chức năng Khám bệnh:
* Activity Diagram cho usecase Khám bệnh:
Tim kiem benh nhan giao dien kham benh
hien thi thong tin ca nhan benh nhan
nhap cac thong tin ve tinh trang suc khoe
Thong bao loi
Ke toa thuoc
Khong co
co Thong tin: nhip tho,
mach, huyet ap, can nang, trieu chung
chan doan
nhan button In toa thuoc Luu lai toan bo chi tiet phieu
kham va Xuat ra toa thuoc Xem chi tiet tai mo hinh tim kiem benh nhan
chi dinh CLS xem chi tiet tai mo
hinh Chi dinh CLS
Xem ket qua CLS xem chi tiet o mo
hinh Xem ket qua CLS
Xem them mo hinh Ke toa thuoc
chon ten benh trong combobox
* Đặc tả use-case Khám bệnh:
Tên Khám bệnh
Actor Nhân viên (Bác sĩ)
Điều kiện trước Chọn chức năng khám bệnh
Điều kiện sau Lưu lại toàn bộ thông tin khám bệnh
của bệnh nhân
Dòng sự kiện chính 1. Tìm bệnh nhân [A1]
2. Hệ thống hiển thị thông tin chi tiết của bệnh nhân tìm kiếm.
3. Tại usecase này, user có thể thực hiện chức năng Xem quá trình khám bệnh của bệnh nhân đó (nếu bệnh nhân này từng khám ở bệnh viện) [A2] 4. Bác sĩ thực hiện chức năng khám bệnh: nhập các thông tin như: các thông số cơ bản của bệnh nhân (nhịp thở, mạch, cân nặng, huyết áp ), triệu chứng, chẩn đoán bệnh
5. Chỉ định cận lâm sàng, chuyển tới [A3]
6. Xem kết quả cận lâm sàng, chuyển tới [A4]
7. Nếu cần thiết thì hẹn ngày tái khám. 8. Kê toa thuốc cho bệnh nhân[A5] 9. Kết thúc usecase
Dòng sự kiện phụ A1. Chuyển tới usecase Tìm kiếm bệnh
nhân
A2. Chuyển tới usecase Xem lịch sử khám bệnh
A3. chuyển tới usecase Chỉ định CLS A4, Chuyển tới usecase Xem kết quả
CLS
A5. Chuyển tới usecase Kê toa thuốc * Sequence diagram use-case Khám bệnh:
: frmkhambenh : frmkhambenh : Nhanvien
: Nhanvien : controllerbenhnhan : controllerbenhnhan : controllerkhambenh : controllerkhambenhcontrollerdauhieusinhtoncontrollerdauhieusinhton : : : BenhNhan : BenhNhan : PhieuKhamBenh : PhieuKhamBenh : Dauhieusinhton : Dauhieusinhton : toathuoc : toathuoc
Nhap ma benh nhan
getbn(mabn)
getbn() gia tri 0 or array gia tri 0 or array
getmaphieu(mabn,ngaykham)
getmaphieu() gia tri 0 or array gia tri 0 or array
addphieu(name,mabn,ngaykham)
addphieu() Khi getmaphieu()
tra ve gia tri 0
addtoa(manv,ngaykham) addtoa() getmatoa() getmatoa() array array
Luu Session['matoa'] bang gia tri ma toa trong mang
getmaphieu(mabn,ngaykham)
getmaphieu() array array
Nhap thong tin kham benh mach,nhiptho,chieucao,nhietdo,huyetap,ca nnang,ngayhenkham,trieuchung,ngaykham mapk,cannang,huyetap,nhiptho, mach,nhietdo,chieucao adddauhieusinhton() adddauhieusinhton() true or false true or false updatePhieuKhamBenh(maphieu,ngayhenkham,trieuchung) updatePhieuKhamBenh() true or false true or false thong bao ket qua Hình 2-22: Sequence Khám bệnh
2.4.2 Chức năng Chỉ định cận lâm sàng:
* Đặc tả use-case Chỉ định cận lâm sàng:
Tên Chỉ định CLS
Actor Nhân viên (Bác sĩ)
Điều kiện trước Chọn chức năng chỉ định cận lâm sàng
Điều kiện sau Các dịch vụ cận lâm sàng được thêm
Dòng sự kiện chính 1. Nhâ ̣p tên dịch vu CLS muốn thêm
(hệ thống sẽ hỗ trợ tìm kiếm nhanh bằng cách khi user gõ chữ thì hệ thống sẽ hiển thị tên các dịch vụ có chứa ký tự mà user gõ)
2. Chọn dịch vu CLS
3. Hiển thị thông tin chi tiết dịch vụ CLS đó trong table danh sách các chỉ đinh CLS
(có thể thực hiện thêm nhiều dịch vụ, lặp lai bước 2 và 3)
4. Xóa dịch vụ đã thêm vào danh sách các chỉ định CLS:
4.1 Chọn 1 (hay nhiều) dịch vụ trong table danh sách các chỉ định
4.2 Nhấn button “Bỏ chọn dịch vụ” 4.3 Hệ thống xóa những dịch vụ được chọn.
5. Nhấn button Chỉ Định
6. Hệ thống lưu lại các dịch vụ được chọn
7. Kết thúc usecase
giao diện tìm kiếm * Sequence diagram use-case Chỉ định cận lâm sàng:
2.4.3 Chức năng Kê toa thuốc:
*Activity Diagram cho Use-case Kê toa thuốc:
Yeu cau user nhap them thong tin Tai giao dien kham benh
(phan ke toa thuoc)
He thong hien thi chi tiet thuoc Co trong CSDL
Khong co
So luong thuoc trong toa, ngay dung may lan(chi dinh dung), lan dung voi so luong bao nhieu (lieu dung), so ngay dung
Luu lai toa thuoc cua benh nhan Tim kiem thuoc
nhan button In toa thuoc
He thong in toa thuoc va thong bao thanh cong chi tiet xem
usecase Tim kiem thuoc
gom: ten thuoc, don vi tinh, duong dung, don gia lap lai de chon
nhieu thuoc khi ke toa thuoc
Hình 2-23: Activity diagram Kê toa thuốc
* Đặc tả use-case Kê toa thuốc:
Actor Nhân viên(Bác sĩ)
Điều kiện trước Chọn chức năng Kê toa thuốc.
Điều kiện sau Hiển thị chi tiết toa thuốc
Dòng sự kiện 1. Tìm kiếm thuốc
2. Chọn thuốc cần dùng (hệ thống sẽ hỗ trợ thông tin cơ bản về thuốc như: đơn vị tính, cách dùng, số lượng uống trong 1 lần)
3. Hiển thị chi tiết thuốc trong toa thuốc.
4. Yêu cầu user nhập thêm các chỉ định cách dùng thuốc như: chỉ định dùng, liều dùng, ngày dùng.
5. Nhấn button In Toa Thuốc [A1] 9. Kết thúc usecase
Dòng sự kiện phụ A1. Chuyển tới usecase In toa thuốc
: frmkhambenh : frmkhambenh : Nhanvien
: Nhanvien : controllerkhambenh : controllerkhambenh : Thuoc : Thuoc showthuoc()
showlist() array array
Chon ten thuoc,nhap so luong,lieu dung,ngaydung,chidinh
addcttoa(matoa,ngay,cd,lieu,soluong,tt,maphieu,mathuoc) addcttoa() true or false true or false showtoa(matoa) showlist() array array
Hien thi gia tri trong mang
2.4.4 Chức năng Tìm kiếm thuốc:
* Activity Diagram cho usecase Tìm kiếm thuốc
Giao dien kham benh nhap ky tu ten
thuoc
he thong hien thi nhung ten thuoc co cac ky tu user nhap vao
chon ten thuoc can tim
hien thi thong tin chi tiet thuoc tim trong CSDL nhung thuoc co chua ky tu nhap
Hình 2-25: Activity diagram Tìm kiếm thuốc
* Đặc tả use-case Tìm kiếm thuốc:
Tên Tìm kiếm thuốc
Actor Nhân viên
Điều kiện trước Cho ̣n chức năng tìm kiếm thuốc
Điều kiện sau Hiển thi ̣ danh sách chi tiết thuốc tìm
kiếm được
Dòng sự kiện chính 1. Nhâ ̣p tên thuốc muốn tìm kiếm (có
thể nhập một hay vài ký tự nếu người dùng không nhớ chính xác)
2. Kiểm tra dữ liê ̣u có trong CSDL 3. Nếu không có trong CSDL [A1] 4. Nếu có hệ thống lấy những tên thuốc
có những ký tự được nhập hiển thị 5. chọn thuốc cần tìm
6. hiển thị đầy đủ thông tin thuốc trong table danh sách thuốc
7. Kết thúc usecase
Dòng sự kiện phụ A1. không hiển thị tên thuốc, nhập lại
* Sequence diagram use-case Tìm kiếm thuốc:
:
Timkiemthuoc_controller :
Timkiemthuoc_controller : Nhanvien
: Nhanvien : frmTimkiemthuoc : frmTimkiemthuoc