Professional Documents
Culture Documents
1
INSERT INTO BACSI VALUES('BS01', N'BS Nguyễn Văn A');
INSERT INTO BACSI VALUES('BS02', N'BS Nguyễn Văn B');
INSERT INTO BACSI VALUES('BS03', N'BS Nguyễn Thị C');
2
4. Cài đặt Form Thêm thông tin bệnh nhân (ThemBNFrm.java)
Yêu cầu:
- Điền thông tin vào trong giao diện thêm bệnh nhân
- Nhấn “Thêm” để thêm thông tin bệnh nhân vào bảng BENHNHAN
- Nếu thêm thành công xuất hiện thông báo xác nhận “Thêm bệnh nhân thành công”; ngược lại
“Thêm bệnh nhân không thành công”.
3
4.2. Hàm khởi tạo form ThemBNFrm()
4
5. Cài đặt Form Đặt lịch khám của bệnh nhân (ThemPKBFrm.java)
Yêu cầu:
- Khi nhập mã bệnh nhân và nhấn phím enter thì sẽ hiển thị tên bệnh nhân vào textfield “Tên bệnh
nhân” (không chỉnh sửa được). Nếu không tìm thấy mã bệnh nhân sẽ xuất hiện thông báo “Bệnh
nhân chưa đăng ký”.
- Tên bác sĩ khám sẽ được load từ CSDL vào combobox “Tên bác sĩ”.
- Chọn ngày khám bệnh (ngày khám phải lớn hơn hoặc bằng ngày hiện tại).
- Nhập yêu cầu khám.
- Chọn bác sĩ khám trong combobox.
- Nhấn “Đặt lịch khám” toàn bộ thông tin trên sẽ lưu xuống bảng KHAMBENH.
- Nếu đặt lịch thành công xuất hiện thông báo xác nhận “Đặt lịch khám thành công”; ngược lại
“Đặt lịch khám không thành công”.
5
5.2. Hàm khởi tạo form ThemPKBFrm()
Sử dụng ListTenBS để đổ dữ liệu vào Combobox. Nhưng khi lấy thông tin của BS để lưu
vào bảng KHAMBENH thì phải lấy MaBS nên cần khai báo thêm ListMaBS
- Hàm LoadCbbTenBS
6
5.4. Xử lý sự kiện Enter sau khi nhập mã bệnh nhân ActionPerformed txtMaBN
7
8
5.5.2. Cài đặt sự kiện ActionPerformed btnDatLichKham
9
6. Cài đặt Form Thêm chi tiết khám bệnh (ThemCTKBFrm.java)
Yêu cầu:
- Tên bác sĩ được load từ CSDL vào combobox.
- Danh sách dịch vụ được load từ CSDL vào JTable “Danh sách dịch vụ”.
- Chọn bác sĩ trong combobox, nhập ngày tháng và nhấn enter => danh sách bệnh nhân đặt lịch
hẹn với bác sĩ sẽ hiển thị ở combobox “Tên bệnh nhân”. Lưu ý: chỉ load bệnh nhân chưa thanh
toán cho ngày khám đã được chọn.
- Chọn tên bệnh nhân sẽ hiển thị yêu cầu khám ở textfield “Yêu cầu khám” (không được chỉnh
sửa yêu cầu khám).
- Nhập kết luận ở textfield “Kết luận”.
- Chọn các dịch vụ, mỗi lần chọn dịch vụ bên “Danh sách dịch vụ” thì dịch vụ đó sẽ được hiển thị
bên JTable “Danh sách dịch vụ bác sĩ chọn” và bên “Danh sách dịch vụ sẽ không còn hiển thị
dịch vụ đó nữa. Thêm số lượng cho từng dịch vụ.
- Nhấn “Thêm” để thêm toàn bộ thông tin vào các bảng tương ứng trong CSDL.
10
6.1. Import Thư viện
Sử dụng ListTenBS để đổ dữ liệu vào Combobox. Nhưng khi lấy thông tin của BS để lưu
vào bảng KHAMBENH thì phải lấy MaBS nên cần khai báo thêm ListMaBS
- Hàm LoadCbbTenBS
11
- Gọi hàm LoadCbbTenBS() trong hàm khởi tạo ThemCTKBFrm()
- Hàm LoadTableDV
12
6.5. Hàm Load định nghĩa tiêu đề tblDVBSChon LoadTableDVBSChon()
- Khai báo biến toàn cục định nghĩa tablemodel tblModelDVBSChon
- Hàm LoadTableDVBSChon()
6.6. Xử lý sự kiện chọn cbbTenBS và chọn Ngày Khám sẽ đổ dữ liệu các Bệnh
nhân có lịch khám bệnh của BS và Ngày khám đó vào cbbTenBN
- Do datNgKham được set mặc định là ngày hiện tại, do đó khi chọn cbbTenBS thì sẽ đổ dữ liệu
vào cbbTenBN
- Khi chọn ngày Khám, nếu đã chọn cbbTenBS thì sẽ đổ dữ liệu vào cbbTenBN
- 2 Sự kiện trên cùng 1 cách giải quyết nên sẽ tạo hàm LoadCbbTenBN()
Sử dụng ListTenBN để đổ dữ liệu vào Combobox. Nhưng khi lấy thông tin của BN để lưu
vào bảng KHAMBENH thì phải lấy MaBN nên cần khai báo thêm ListMaBN
- Hàm LoadCbbTenBS
13
- Gọi hàm LoadCbbTenBN() trong hàm khởi tạo ThemCTKBFrm()
14
6.6.3. Xử lý sự kiện chọn datNgKham datNgKhamPropertyChange()
15
6.9. Xử lý sự kiện click btnThem ActionPerformed btnThem
Khi click Thêm Chi tiết khám bệnh:
- Thêm các dịch vụ có trong tblDSBSChon vào table THUPHI bao gồm các thuộc tính: MaKB,
MaDV, SoLuong, ThanhTien. Trong đó:
● MaKB: sẽ lấy từ đâu ???
● MaDV: lấy từ tblDSBSChon
● SoLuong: lấy từ tblDSBSChon
● ThanhTien: SoLuong * DonGia (lấy từ tblDSBSChon)
- Cập nhật Kết luận trong table KHAMBENH cho MaKB đang được chọn. Trong đó:
● KetLuan: lấy từ txtKetLuan
● MaKB: sẽ lấy từ đâu ???
- Vậy MaKB: sẽ lấy từ đâu ??? => Xác định MaKB trong sự kiện chọn cbbTenBN
- Gán giá trị cho MaKB trong sự kiện chọn cbbTenBN cbbTenBNActionPerformed
Trong sự kiện chọn cbbTenBN, bằng câu lệnh select “Lấy các khám bệnh của MaBN, của BS, có ngày
khám và chưa thanh toán” có thể lấy ra được MaKB đang được chọn.
Bổ sung dòng MaKB = rs.getString("MaKB")
- Gán lại giá trị cho MaKB trong sự kiện chọn CbbTenBS
Chọn lại CbbTenBS gán MaKB = null. Bổ sung dòng MaKB= null;
16
- Gán lại giá trị cho MaKB trong sự kiện chọn datNgKham
Chọn lại datNgKham gán MaKB = null. Bổ sung dòng MaKB= null;
17
7. Cài đặt Form Thanh toán tiền khám bệnh (ThanhToanFrm.java)
Yêu cầu:
- Khi nhập mã bệnh nhân và nhấn phím enter thì sẽ hiển thị tên bệnh nhân vào textfield “Tên bệnh
nhân” (không chỉnh sửa được).
18
- Chọn ngày khám => hiển thị thông tin khám bệnh của bệnh nhân trong ngày đã chọn (tất cả đều
không chỉnh sửa được) bao gồm: Yêu cầu khám, Kết luận, Danh sách dịch vụ đã khám (Tên
dịch vụ, số lượng, thành tiền), Tổng tiền.
- Checkbox “Đã thanh toán” nếu được chọn thì nút “Thanh toán” sẽ bị mờ (Không hoạt động
được); ngược lại, thì nút “Thanh toán” sẽ hiển thị, và khi chọn “Thanh toán” trạng thái “Thanh
toán” trong CSDL sẽ được chuyển thành “True” để xác định bệnh nhân đã thanh toán cho đơn
khám bệnh của mình.
19
7.2. Hàm khởi tạo form ThanhToanFrm()
- Hàm LoadTableDV()
7.4. Xử lý sự kiện enter khi nhập MaBN hoặc chọn Ngày Khám sẽ lấy dữ liệu
khám bệnh của BN khám trong ngày được chọn
- Do datNgKham được set mặc định là ngày hiện tại, do đó khi nhập MaBN và enter thì sẽ tìm
kiếm dữ liệu và đổ vào các trường thông tin
- Khi chọn ngày Khám, nếu đã nhập MaBN thì sẽ tìm kiếm dữ liệu và đổ vào các trường thông tin
- 2 Sự kiện trên cùng 1 cách giải quyết nên sẽ tạo hàm LoadData()
20
- Lấy thông tin các dịch vụ trong table THUPHI của MaKB đổ vào tblDV, tính tổng tiền. MaKB
được xác định ở bước tìm kiếm thông tin KHÁM BỆNH
- Khai báo biến toàn cục MaKB để gán giá trị MaKB đang được chọn
- Hàm LoadData()
21
7.4.2. Xử lý sự kiện enter sau khi nhập MaBN txtMaBNActionPerformed()
22
7.4.3. Xử lý sự kiện chọn Ngày khám datNgKhamPropertyChange()
23