Mô tả yêu cầu hệ thống
Mô tả nghiệp vụ hệ thống
Ta có cơ sở dữ liệu của chương trình quản lý khám chữa bệnh nhân một khoa của một bệnh viện như sau:
TIEU LUAN MOI download : skknchat@gmail.com
Bệnh viện tiếp nhận nhiều bệnh nhân khám chữa bệnh và lưu trữ thông tin như mã bệnh nhân, tên, ngày sinh, giới tính, nghề nghiệp, quê quán, dân tộc và đối tượng Mỗi bệnh nhân sẽ được khám tổng quát cơ bản, từ đó tạo hồ sơ bệnh án với các thông tin như mã bệnh án, bác sĩ, ngày khám, lý do khám, tình trạng, tiền sử bệnh, huyết áp, cân nặng, nhiệt độ, phương án và tiền khám Sau khi khám, bệnh nhân sẽ được xét nghiệm tại phòng xét nghiệm, kết quả sẽ được ghi lại trong bệnh án xét nghiệm với mã bệnh án, xét nghiệm, ngày xét nghiệm, kết quả, kết luận, bác sĩ xét nghiệm và tiền xét nghiệm Cuối cùng, bệnh nhân sẽ nhận được bệnh án kết luận bao gồm mã bệnh án, bệnh, phương án điều trị và lời dặn của bác sĩ.
Bệnh án thuốc bao gồm các thông tin quan trọng như mã bệnh án, tên thuốc, số lượng, số ngày sử dụng, liều dùng, cách dùng và thành tiền Mỗi bệnh nhân có thể khám nhiều lần, và bệnh viện sẽ lưu trữ tất cả các bản ghi bệnh án để theo dõi trong các lần khám sau.
Bệnh viện lưu trữ thông tin chi tiết về tất cả bác sĩ, bao gồm mã bác sĩ, tên, ngày sinh, giới tính, quê quán, chuyên môn, trình độ và số điện thoại, cho phép mỗi bác sĩ khám cho nhiều bệnh nhân khác nhau Ngoài ra, bệnh viện còn ghi lại thông tin về tất cả loại thuốc, bao gồm mã thuốc, tên thuốc, công dụng, đơn vị tính, thành phần và đơn giá Các thông tin liên quan đến nghề nghiệp, quê quán, dân tộc, đối tượng, bệnh, phương án, kết luận, tình trạng, xét nghiệm, trình độ, chuyên môn, đơn vị tính và công dụng cũng được lưu trữ với tên và mã tương ứng.
1.2 Mô tả nghiệp vụ hệ thống
Bệnh viện tiếp nhận nhiều bệnh nhân đến khám và điều trị, đồng thời lưu trữ thông tin của từng bệnh nhân, bao gồm mã bệnh nhân, tên, ngày sinh và giới tính.
TIEU LUAN MOI download : skknchat@gmail.com tính, nghề nghiệp, quê quán, dân tộc, đối tượng (xét xem thuộc diện ưu tiên hay không).
Bệnh nhân sẽ được khám tổng quát bao gồm huyết áp, cân nặng, nhiệt độ và tình trạng bệnh để bệnh viện sắp xếp bác sĩ phù hợp Sau đó, bệnh nhân sẽ trải qua quá trình xét nghiệm và nhận đơn thuốc từ bác sĩ dựa trên tình trạng bệnh Khi hoàn tất, bệnh nhân sẽ nhận được bệnh án kết luận với các thông tin như mã bệnh án, bệnh, phương án điều trị và lời dặn của bác sĩ, cùng với bệnh án xét nghiệm chi tiết.
Bệnh án bao gồm các thông tin quan trọng như mã bệnh án, xét nghiệm, ngày xét nghiệm, kết luận, kết quả và bác sĩ thực hiện xét nghiệm, cùng với chi phí xét nghiệm Đối với bệnh án thuốc, các thông tin cần thiết bao gồm mã bệnh án, mã thuốc, số lượng, số ngày sử dụng, liều dùng, cách dùng và thành tiền Một bệnh nhân có thể đến khám nhiều lần, và bệnh viện sẽ lưu trữ bản ghi của tất cả các bệnh án này để đảm bảo theo dõi và quản lý sức khỏe hiệu quả.
Bệnh viện lưu trữ thông tin chi tiết về tất cả bác sĩ, bao gồm mã bác sĩ, tên, ngày sinh, giới tính, quê quán, chuyên môn, trình độ và số điện thoại Mỗi bác sĩ có thể khám cho nhiều bệnh nhân tại các thời điểm khác nhau Ngoài ra, bệnh viện cũng ghi lại thông tin về tất cả loại thuốc, với các dữ liệu như mã thuốc, tên thuốc, công dụng, đơn vị tính, thành phần và đơn giá.
Thiết kế chức năng hệ thống
2.1 Sơ đồ phân rã chức năng.
TIEU LUAN MOI download : skknchat@gmail.com
Tra Cứu Tìm Ki ếốm m
Th ng ốm Th ng ốm Danh
Bác Sĩ Thu ốmốm c Hốmồ ơS Tin
Nhân Bệnh Nhân Án Bệnh Bệnh
Bệnh Thu c ốmốm Án Án Án Án
2.2 Mô tả chức năng lá.
Bệnh nhân: Hiển thị thông tin chi tiết về bệnh nhân, cho phép người sử dụng thực hiện các thao tác như thêm, xóa, sửa và lưu thông tin mới, nhằm cập nhật và thay đổi thông tin bệnh nhân một cách hiệu quả.
Bác sĩ: Cung cấp thông tin chi tiết về bác sĩ, cho phép người dùng thực hiện các thao tác như thêm, xóa, sửa và lưu thông tin mới để cập nhật dữ liệu bác sĩ một cách hiệu quả.
Thuốc cung cấp thông tin chi tiết về các loại thuốc, cho phép người dùng thực hiện các thao tác như thêm, xóa, sửa và lưu thông tin mới, nhằm cập nhật và thay đổi thông tin liên quan đến thuốc điều trị bệnh.
- Danh sách hồ sơ bệnh án: hiển thị về danh sách bệnh án, cho phép người dùng tra cứu danh sách bệnh án theo mã bệnh nhân.
- Thông tin các bệnh án: cho phép người dùng tra cứu thông tin các bệnh án theo mã bệnh án.
TIEU LUAN MOI download : skknchat@gmail.com
- Bệnh nhân: Tìm các bệnh nhân theo tên, lý do khám, mã bệnh
- Bệnh án: Tìm các bệnh án theo bác sĩ, ngày đến khám và nhiệt độ của người bệnh
- Thông tin bệnh án: Báo cáo thông tin đầy đủ của một bệnh án theo mã bệnh án để đưa ra bản cáo cP thể
- Danh sách bệnh án: Báo cáo tất cả danh sách bệnh án theo bác sĩ
- Thông tin thuốc: Báo cáo thông tin đầy đủ của thuốc theo loại thuốc để nắm rõ bệnh viện đang có những loại thuốc nào
Cho phép người dùng thao tác nhập các thông tin về đối tượng cần thêm vào
- Nhập Dữ liệu ● Chức năng lưu
Bước 1: Kiểm tra tính chính xác và các hàm bắt lỗi dữ liệu
- Nếu sai báo lỗi và xóa trắng dữ liệu
- Nếu đúng chuyển sang bước 2
Bước 2: Kiểm tra khóa chính đã có trong CSDL
Nếu có thì thông báo lỗi và xóa trắng dữ liệu
Bước 3: cập nhật vào CSDL
Bước 4: đưa ra dữ liệu đã nhập, kết thúc
Sửa thông tin khi người dùng muốn thay đổi đổi dữ liệu.
TIEU LUAN MOI download : skknchat@gmail.com
Bước 1: click vào datagridview để chọn đối tượng cần sửa
Bước 2: Nhập dữ liệu cần thay đổi
Bước 4: Kiểm tra dữ liệu và các hàm bắt lỗi nếu có.
Nếu đúng thì lưu lại dữ liệu đã sửa và xóa trắng các nhập dữ liệu
Nếu sai hay thiếu dữ liệu thì báo lỗi và quay lại bước 2 ● Chức năng bỏ qua
- Khi chọn nút bỏ qua, các dữ liệu ở ô nhập dữ liệu sẽ xóa trắng ● Chức năng thoát
Thoát khỏi chương trình hiện hành và về formmain
Xóa dữ liệu trong CSDL
Bước 1: click vào datagridview và chọn dữ liêu cần xóa
Nếu có thì xóa dữ liệu, hiển thị thông báo
Nếu không, hiển thị lỗi
Tìm kiếm thông tin theo điều kiện lọc
Bước 1: Nhập thông tin cần tìm kiếm
Bước 2: Kiểm tra thông tin có tồn tại hay không
Nếu có thì hiện ra thông tin cần tìm kiếm
- Nếu không thì thông báo nhập lại thông tin và xóa trắng dữ liệu đầu vào ● Chức năng tìm kiếm lại
Các ô điều kiện tìm kiếm sẽ xóa trắng, cho phép người dùng tiếp tPc tìm kiếm lại thông tin
TIEU LUAN MOI download : skknchat@gmail.com
Báo cáo thông tin theo điều kiện lọc
Bước 1: Nhập thông tin cần báo cáo
Bước 2: Kiểm tra thông tin có tồn tại hay không
Nếu có thì hiện ra thông tin cần báo cáo
- Nếu không thì thông báo nhập lại thông tin Bước 3: In báo cáo ra file Excel
TIEU LUAN MOI download : skknchat@gmail.com
Giải quyết vấn đề
Thiết kế cơ sở dữ liệu
Dựa vào cơ sở dữ liệu, nhóm đã thiết kế được sơ đồ quan hệ sau:
STT Tên Kiểu dữ liệu Kích Khóa Giải thích trường thước
1 MaNN nvarchar 50 Khóa chính Mã nghề nghiệp
2 TenNN nvarchar 100 Tên nghề nghiệp
TIEU LUAN MOI download : skknchat@gmail.com
STT Tên Kiểu dữ liệu Kích Khóa Giải thích trường thước
1 MaQ nvarchar 50 Khóa chính Mã quê
STT Tên Kiểu dữ liệu Kích Khóa Giải thích trường thước
1 MaDT nvarchar 50 Khóa chính Mã dân tộc
2 TenDT nvarchar 50 Tên dân tộc
STT Tên Kiểu dữ liệu Kích Khóa Giải thích trường thước
1 MaĐT nvarchar 50 Khóa chính Mã đối tượng
2 TenĐT nvarchar 50 Tên đối tượng
STT Tên Kiểu dữ liệu Kích Khóa Giải thích trường thước
1 MaBN nvarchar 50 Khóa chính Mã bệnh nhân
2 TenBN nvarchar 100 Tên bệnh nhân
5 MaNN nvarchar 50 Khóa ngoại Mã nghề
6 MaQ nvarchar 50 Khóa ngoại Mã quê
7 MaDT nvarchar 50 Khóa ngoại Mã dân tộc
8 MaĐV nvarchar 50 Khóa ngoại Mã đối tượng
STT Tên Kiểu dữ liệu Kích Khóa Giải thích trường thước
1 MaCM nvarchar 50 Khóa chính Mã chuyên môn
2 TenCM nvarchar 100 Tên chuyên môn
STT Tên Kiểu dữ liệu Kích Khóa Giải thích trường thước
1 MaTĐ nvarchar 50 Khóa chính Mã trình độ
2 TenTĐ nvarchar 50 Tên trình độ
TIEU LUAN MOI download : skknchat@gmail.com
STT Tên Kiểu dữ liệu Kích Khóa Giải thích trường thước
1 MaBS nvarchar 50 Khóa chính Mã bác sĩ
2 TenBS nvarchar 50 Tên bác sĩ
5 MaCM nvarchar 50 Khóa ngoại Mã chuyên môn
6 MaQ nvarchar 50 Khóa ngoại Mã quê
7 MaTĐ varchar 50 Khóa ngoại Mã trình độ
8 SĐT nvarchar 15 Số điện thoại
STT Tên Kiểu dữ liệu Kích Khóa Giải thích trường thước
1 MaTT nvarchar 50 Khóa chính Mã tình trạng
2 TenTT nvarchar 100 Tên tình trạng
STT Tên Kiểu dữ liệu Kích Khóa Giải thích trường thước
1 MaPA nvarchar 50 Khóa chính Mã phương án
2 TenPA nvarchar 100 Tên phương án
STT Tên trường Kiểu dữ liệu Kích Khóa Giải thích thước
1 MaBA nvarchar 50 Khóa chính Mã bệnh án
2 MaBN nvarchar 50 Khóa ngoại Mã bệnh nhân
3 MaBS nvarchar 50 Khóa ngoại Mã bác sĩ
5 LiDoKham nvarchar 150 Lí do khám
6 MaTT nvarchar 50 Khóa ngoại Mã tình trạng
7 MaPA nvarchar 50 Khóa ngoại Mã phương án
8 TienSuBenh nvarchar 150 Tiền sử bệnh
TIEU LUAN MOI download : skknchat@gmail.com
STT Tên Kiểu dữ liệu Kích Khóa Giải thích trường thước
1 MaPA nvarchar 50 Khóa chính Mã phương án
2 TenPA nvarchar 50 Tên phương án
STT Tên Kiểu dữ liệu Kích Khóa Giải thích trường thước
1 MaPA nvarchar 50 Khóa chính Mã phương án
2 TenPA nvarchar 50 Tên phương án
STT Tên Kiểu dữ liệu Kích Khóa Giải thích trường thước
1 MaT nvarchar 50 Khóa chính Mã thuốc
3 MaCD nvarchar 50 Khóa ngoại Mã công dPng
4 MaĐV nvarchar 50 Khóa ngoại Mã đơn vị tính
STT Tên Kiểu dữ liệu Kích Khóa Giải thích trường thước
1 MaBA nvarchar 50 Khóa chính Mã bệnh án
2 MaT nvarchar 50 Khóa chính Mã thuốc
4 SoNgayDu float Số ngày dùng ng
STT Tên Kiểu dữ liệu Kích Khóa Giải thích trường thước
1 MaB nvarchar 50 Khóa chính Mã bệnh
TIEU LUAN MOI download : skknchat@gmail.com
STT Tên Kiểu dữ liệu Kích Khóa Giải thích trường thước
1 MaBA nvarchar 50 Thành phần Mã bệnh án khóa chính
2 MaB nvarchar 50 Thành phần Mã bệnh khóa chính
3 MaPA nvarchar 50 Khóa ngoại Mã phương án
4 LoiDanBS nvarchar 150 Lời dặn bác sĩ
STT Tên Kiểu dữ liệu Kích Khóa Giải thích trường thước
1 MaXN nvarchar 50 Khóa chính Mã xét nghiệm
2 TenXN nvarchar 50 Tên xét nghiệm
STT Tên Kiểu dữ liệu Kích Khóa Giải thích trường thước
1 MaKL nvarchar 50 Khóa chính Mã kết luận
2 TenKL nvarchar 100 Tên kết luận
STT Tên Kiểu dữ liệu Kích Khóa Giải thích trường thước
1 MaBA nvarchar 50 Thành phần Mã bệnh án khóa chính
2 MaXN nvarchar 50 Thành phần Mã xét nghiệm khóa chính
3 MaKL nvarchar 50 Khóa ngoại Mã két luận
4 NgayXN datetime Ngày xét nghiệm
6 BacSiXN nvarchar 50 Bác sĩ xét nghiệm
7 TienXN float Tiền xét nghiệm
Thiết kế hệ thống
TIEU LUAN MOI download : skknchat@gmail.com
The provided code snippet is from a C# program that utilizes various namespaces, including System, System.Collections.Generic, System.ComponentModel, System.Data, System.Drawing, System.Linq, System.Text, System.Threading.Tasks, and System.Windows.Forms It is part of the project "BàiTapLon_QuanLyBenhNhan_Nhom8.Forms," which suggests it is related to a patient management system developed by Group 8.
{ public partial class Formmain : Form
} private void Formmain_Load(object sender, EventArgs e)
} private void mnubenhnhan_Click(object sender, EventArgs e)
Forms.TimKiemBenhNhan a = new Forms.TimKiemBenhNhan(); a.Show();
} private void mnubacsi_Click(object sender, EventArgs e)
TIEU LUAN MOI download : skknchat@gmail.com
Forms.BacSi a = new Forms.BacSi(); a.Show();
} private void thoátToolStripMenuItem_Click(object sender, EventArgs e) { if(MessageBox.Show("ban co muon xoa khong","thong bao",MessageBoxButtons.YesNo,MessageBoxIcon.Question)==DialogResult.Yes)
} } private void mnubcaothongtinbenhan_Click(object sender, EventArgs e) {
} private void bệnhNhânToolStripMenuItem_Click(object sender, EventArgs e)
{ Forms.BenhNhan a = new Forms.BenhNhan(); a.Show();
} private void thuốcToolStripMenuItem_Click(object sender, EventArgs e) { Forms.Thuoc a = new Forms.Thuoc(); a.Show();
} private void danhSáchBệnhÁnToolStripMenuItem_Click(object sender, EventArgs e)
} private void thôngTinBệnhÁnToolStripMenuItem_Click(object sender, EventArgs e) {
} private void bệnhÂnToolStripMenuItem_Click(object sender, EventArgs e) {
} private void danhSáchBệnhÁnToolStripMenuItem1_Click(object sender, EventArgs e) {
} private void thôngTinThuốcToolStripMenuItem_Click(object sender, EventArgs e)
TIEU LUAN MOI download : skknchat@gmail.com
The code snippet provided is part of a C# application designed for managing patient records, specifically within the BàiTapLon_QuanLyBenhNhan_Nhom8 namespace It utilizes essential libraries such as System, System.Collections.Generic, System.Data, System.Drawing, and System.Windows.Forms, along with System.Data.SqlClient for database connectivity This structure indicates a focus on creating a user-friendly interface for effective patient management.
{ public partial class Dangnhap : Form
} private void btndangnhap_Click(object sender, EventArgs e) { Funcions.Funcion.ketnoi(); string sql; sql = "select TenDN, MaDN from Tbldangnhap where TenDN=N'" + txttendangnhap.Text + "'and MaDN=N'" + txtmatkhau.Text +
SqlCommand a = new SqlCommand(sql, Funcions.Funcion.Conn); SqlDataReader reader = a.ExecuteReader(); if (reader.Read() == true) { this.Hide();
TIEU LUAN MOI download : skknchat@gmail.com
Form batdau = new Formmain(); batdau.Show();
} else { MessageBox.Show("ban nhap sai tai khoan hoac mat khau",
"thong bao", MessageBoxButtons.OK, MessageBoxIcon.Error); txttendangnhap.Text = ""; txtmatkhau.Text = ""; txttendangnhap.Focus();
} } private void btnthoat_Click(object sender, EventArgs e) { if (MessageBox.Show("ban co muon thoat khong", "thong bao", MessageBoxButtons.YesNo, MessageBoxIcon.Question) ==
} } private void Dangnhap_Load(object sender, EventArgs e)
2.1.3 Giao diện các form thông tin. a) Thuoc.cs
Codeusing System; using System.Collections.Generic; using System.ComponentModel;
To download the TIEU LUAN MOI, please contact skknchat@gmail.com The application utilizes essential namespaces such as System.Data, System.Drawing, System.Linq, System.Text, System.Threading.Tasks, and System.Windows.Forms This project is part of the BàiTapLon_QuanLyBenhNhan_Nhom8.Forms namespace, focusing on patient management.
{ public partial class Thuoc : Form
} private void Thuoc_Load(object sender, EventArgs e)
Funcions.Funcion.fillcombo("SELECT MaDV,MaDV FROM Tbldonvitinh", comboBoxmadonvi, "MaDV", "TenDV"); comboBoxmadonvi.SelectedIndex = -1;
The function `fillcombo` populates the combo box with data from the database using the SQL query "SELECT MaCD, TenCD FROM Tblcongdung", setting the combo box's selected index to -1 The data grid view is then loaded with the function `load_datagridview(dataGridView1)` Additionally, the text box for entering the drug code is disabled, along with the save, skip, edit, and delete buttons, ensuring a streamlined user experience.
} void load_datagridview(DataGridView data1)
{ string sql = "select * from Tthuoc"; bang01 = Funcions.Funcion.GetDataTable(sql); data1.DataSource = bang01;
{ textBoxmathuoc.Text = ""; textBoxtenthuoc.Text = ""; textBoxthanhphan.Text = ""; textBoxdongia.Text = ""; comboBoxmadonvi.Text = ""; comboBoxmacong.Text = "";
} private void buttgithem_Click(object sender, EventArgs e)
{ reset(); textBoxmathuoc.Focus(); buttonluu.Enabled = true; buttonsua.Enabled = false; buttonxoa.Enabled = false; buttonboqua.Enabled = true; textBoxmathuoc.Enabled = true;
} private void buttonluu_Click(object sender, EventArgs e)
TIEU LUAN MOI download : skknchat@gmail.com if (textBoxmathuoc.Text == "") { MessageBox.Show("chưa nhập mã thuốc"); textBoxmathuoc.Focus();
MessageBox.Show("chưa nhập tên thuốc"); textBoxtenthuoc.Focus();
} else if (comboBoxmacong.Text == "") { MessageBox.Show("chưa chọn mã công dụng");
} else if (comboBoxmadonvi.Text == "") { MessageBox.Show("chưa chọn mã đơ n vị");
MessageBox.Show("chưa nhập thành phần thuốc"); textBoxthanhphan.Focus();
} else if (Int32.TryParse(textBoxdongia.Text, out int a) == false) { MessageBox.Show("nhập sai đơn giá"); textBoxdongia.Focus();
} else { string check = "SELECT MaT from Tthuoc WHERE MaT=N'" + textBoxmathuoc.Text.Trim() + "'"; if(Funcions.Funcion.checkkey(check)) {
MessageBox.Show("da co ma thuoc nay", "thong bao", MessageBoxButtons.OK, MessageBoxIcon.Warning); textBoxmathuoc.Text = ""; textBoxmathuoc.Focus();
} string sql1 = "INSERT INTO Tthuoc VALUES(N'" + textBoxmathuoc.Text.Trim() + "', N'" + textBoxtenthuoc.Text.Trim() + "', N'" + comboBoxmacong.SelectedValue.ToString() + "', N'" + comboBoxmadonvi.SelectedValue.ToString() + "',N'" + textBoxthanhphan.Text.Trim() + "', '" + textBoxdongia.Text.Trim() + "' )";
Funcions.Funcion.runsql(sql1); load_datagridview(dataGridView1); reset(); buttonsua.Enabled = false; buttonxoa.Enabled = false;
} } private void dataGridView1_Click(object sender, EventArgs e)
To download the TIEU LUAN MOI, contact skknchat@gmail.com The current row data is populated in the respective text boxes and combo boxes: the medicine code is set in textBoxmathuoc, the medicine name in textBoxtenthuoc, the company code in comboBoxmacong, and the unit code in comboBoxmadonvi Additionally, the components and unit price are filled in textBoxthanhphan and textBoxdongia, respectively The save button (buttonluu) and add button (buttgithem) are disabled, while the edit button (buttonsua), delete button (buttonxoa), and skip button (buttonboqua) are enabled for further actions.
} private void buttonboqua_Click(object sender, EventArgs e)
{ reset(); buttgithem.Enabled = true; buttonluu.Enabled = false; buttonsua.Enabled = false; buttonxoa.Enabled = false;
} private void buttonxoa_Click(object sender, EventArgs e)
MessageBox.Show("chon thuoc để xóa", "", MessageBoxButtons.OK); return;
MessageBox.Show("khong co gi để xóa", "", MessageBoxButtons.OK); return;
} string caulenh = "delete from Tthuoc where MaT=
N'" + textBoxmathuoc.Text.Trim() + "'"; if (MessageBox.Show("bạn có muốn xóa khong", "xóa dữ liệu", MessageBoxButtons.YesNo, MessageBoxIcon.Question) ==
} load_datagridview(dataGridView1); reset(); buttonboqua.Enabled = true; buttonluu.Enabled = false; buttonsua.Enabled = false; buttgithem.Enabled = true;
} private void buttonsua_Click(object sender, EventArgs e)
{ MessageBox.Show("chon thuoc để sua", "", MessageBoxButtons.OK); return;
TIEU LUAN MOI download : skknchat@gmail.com if (bang01.Rows.Count == 0) {
MessageBox.Show("khong co gi để sua", "", MessageBoxButtons.OK); return;
MessageBox.Show("hay nhap don gia de sua", "thong bao", MessageBoxButtons.OK, MessageBoxIcon.Warning); textBoxdongia.Focus(); return;
MessageBox.Show("hay nhap ten thuoc de sua", "thong bao", MessageBoxButtons.OK, MessageBoxIcon.Warning); textBoxtenthuoc.Focus(); return;
MessageBox.Show("hay nhap thanh phan de sua", "thong bao", MessageBoxButtons.OK, MessageBoxIcon.Warning); textBoxthanhphan.Focus(); return;
MessageBox.Show("hay chon cong dung", "thong bao", MessageBoxButtons.OK, MessageBoxIcon.Warning); comboBoxmacong.Focus(); return;
MessageBox.Show("hay chon don vi", "thong bao", MessageBoxButtons.OK, MessageBoxIcon.Warning); comboBoxmadonvi.Focus(); return;
} string caulenh = "update Tthuoc set MaT=N'" + textBoxmathuoc.Text.Trim() + "',TenT=N'" + textBoxtenthuoc.Text.Trim() +
"',MaCD=N'" + comboBoxmacong.Text + "',MaDV=N'" + comboBoxmadonvi.Text +
"',ThanhPhan=N'" + textBoxthanhphan.Text.Trim() + "',DonGia='" + textBoxdongia.Text.Trim() + "' where MaT='" + textBoxmathuoc.Text.Trim() + "'
Funcions.Funcion.runsql(caulenh); load_datagridview(dataGridView1); reset(); buttonsua.Enabled = false; buttonxoa.Enabled = false; buttonboqua.Enabled = true; buttonluu.Enabled = true; buttgithem.Enabled = false;
} private void buttondong_Click(object sender, EventArgs e)
TIEU LUAN MOI download : skknchat@gmail.com c) BenhNhan.cs
The provided code snippet is a C# program that utilizes various namespaces, including System, System.Collections.Generic, System.ComponentModel, System.Data, System.Drawing, System.Linq, System.Text, System.Threading.Tasks, and System.Windows.Forms It is part of a project named "BàiTapLon_QuanLyBenhNhan_Nhom8.Forms," which suggests it is related to a patient management system This project likely involves creating forms for user interaction, managing patient data, and implementing functionalities essential for healthcare management.
{ public partial class BenhNhan : Form
} private void BenhNhan_Load(object sender, EventArgs e)
TIEU LUAN MOI download : skknchat@gmail.com txtmabn.Enabled = false; btnluu.Enabled = false; btnboqua.Enabled = false;
Funcions.Funcion.fillcombo("select MaNN,TenNN from Tblnghenghiep", cbnghe, "MaNN", "TenNN"); cbnghe.SelectedIndex = -1;
Funcions.Funcion.fillcombo("select MaQ,TenQ from Tblque", cbque, "MaQ",
Funcions.Funcion.fillcombo("select MaDT,TenDT from Tbldantoc", cbdantoc,
Funcions.Funcion.fillcombo("select MaDTuong,TenDTuong from
Tbldoituong", cbdoituong, "MaDTuong", "TenDTuong"); cbdantoc.SelectedIndex = -1; resetvalue(); load_datagrid();
{ txtmabn.Text = ""; chkgtinh.Checked = false; mskngsinh.Text = ""; txttenbn.Text = ""; cbque.Text = ""; cbdantoc.Text = ""; cbdoituong.Text = ""; cbnghe.Text = "";
The SQL query retrieves patient data from the "Tblbenhnhan" table, selecting fields such as patient ID, name, gender, date of birth, occupation code, hometown code, ethnicity code, and object code The resulting data is then assigned to the data source of a grid view, where the columns are appropriately labeled for clarity.
TIEU LUAN MOI download : skknchat@gmail.com
} private void btnthem_Click(object sender, EventArgs e)
{ btnsua.Enabled = false; btnxoa.Enabled = false; btnboqua.Enabled = true; btnluu.Enabled = true; btnthem.Enabled = false; txtmabn.Focus(); txtmabn.Enabled = true; resetvalue();
} private void dgridbenhnhan_Click(object sender, EventArgs e)
MessageBox.Show("ban dang o che do them moi", "thong bao", MessageBoxButtons.OK, MessageBoxIcon.Information); return;
MessageBox.Show("khong co du lieu trong bang", "thong bao", MessageBoxButtons.OK, MessageBoxIcon.Information); return;
To retrieve patient information from the current row of the data grid, the following values are extracted: the patient's identifier (MaNN), qualification code (MaQ), diagnosis code (MaDT), and corresponding code (MaDTuong) The patient's ID (MaBN) and name (TenBN) are displayed in the text fields txtmabn and txttenbn, respectively The gender is determined by checking if the value in the "GT" column equals "Nam," which sets the chkgtinh checkbox accordingly Additionally, the date of birth is populated in the mskngsinh field, while the profession is selected from the database using a function that retrieves the profession name (TenNN).
Tblnghenghiep where MaNN=N'" + ma + "'"); cbque.Text = Funcions.Funcion.getfiedvalues("select TenQ from Tblque where MaQ=N'" + mai + "'"); cbdantoc.Text = Funcions.Funcion.getfiedvalues("select TenDT from
TIEU LUAN MOI download : skknchat@gmail.com cbdoituong.Text = Funcions.Funcion.getfiedvalues("select TenDTuong from Tbldoituong where MaDTuong=N'" + mae + "'"); btnsua.Enabled = true; btnxoa.Enabled = true; btnboqua.Enabled = true;
} private void btnsua_Click(object sender, EventArgs e)
{ string sql, gt; if (txtmabn.Text == "")
MessageBox.Show("ban chua chon de sua", "thong bao", MessageBoxButtons.OK, MessageBoxIcon.Warning); return;
MessageBox.Show("khong co du lieu trong bang", "thong bao", MessageBoxButtons.OK, MessageBoxIcon.Information); return;
MessageBox.Show("ban chua nhap ten hang", "thong bao", MessageBoxButtons.OK, MessageBoxIcon.Warning); txttenbn.Focus(); return;
MessageBox.Show("Bạn phải nhập ngày sinh", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Warning); mskngsinh.Focus(); return;
MessageBox.Show("Bạn chưa chọn nghề nghiệp", "thong bao", MessageBoxButtons.OK, MessageBoxIcon.Warning); cbnghe.Focus(); return;
TIEU LUAN MOI download : skknchat@gmail.com
MessageBox.Show("Bạn chưa chọn dân tộc", "thong bao", MessageBoxButtons.OK, MessageBoxIcon.Warning); cbdantoc.Focus(); return;
MessageBox.Show("Bạn chưa chọn quê quán", "thong bao", MessageBoxButtons.OK, MessageBoxIcon.Warning); cbque.Focus(); return;
MessageBox.Show("Bạn chưa chọn đối tượng", "thong bao", MessageBoxButtons.OK, MessageBoxIcon.Warning); cbdoituong.Focus(); return;
} if (!Funcions.Funcion.ktrangaysinh(mskngsinh.Text))
MessageBox.Show("Bạn phải nhập lại ngày sinh", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Warning); mskngsinh.Text = ""; mskngsinh.Focus(); return;
} if (chkgtinh.Checked == true) gt = "Nam"; else gt = "Nữ"; sql = "update Tblbenhnhan set TenBN=N'" + txttenbn.Text.Trim().ToString() +
"',GT=N'" + gt + "',NS='" + Funcions.Funcion.datetime( mskngsinh.Text) +
"',MaNN=N'" + cbnghe.SelectedValue.ToString() + "',MaQ=N'" + cbque.SelectedValue.ToString() + "',MaDT=N'" + cbdantoc.SelectedValue.ToString() + "',MaDTuong = N'" + cbdoituong.SelectedValue.ToString() + "' WHERE MaBN=N'" + txtmabn.Text + "'";
Funcions.Funcion.runsql(sql); load_datagrid(); resetvalue(); btnboqua.Enabled = false;
} private void btnxoa_Click(object sender, EventArgs e)
TIEU LUAN MOI download : skknchat@gmail.com if (tbbn.Rows.Count == 0)
MessageBox.Show("k con du lieu de xoa", "thong bao", MessageBoxButtons.OK, MessageBoxIcon.Warning); return;
MessageBox.Show("ban chua chon du lieu de xoa", "thong bao", MessageBoxButtons.OK, MessageBoxIcon.Warning); return;
} if (MessageBox.Show("ban co muon xoa khong", "thong bao",
MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
{ sql = "delete from Tblbenhnhan where MaBN=N'" + txtmabn.Text.Trim() +
Funcions.Funcion.runsql(sql); resetvalue(); load_datagrid();
} private void btnluu_Click(object sender, EventArgs e)
{ string sql, gt; if (txtmabn.Text == "")
MessageBox.Show("chua nhap ma benh nhan", "thong bao", MessageBoxButtons.OK, MessageBoxIcon.Warning); txtmabn.Focus(); return;
MessageBox.Show("chua nhap ten benh nhan", "thong bao", MessageBoxButtons.OK, MessageBoxIcon.Warning); txttenbn.Focus(); return;
MessageBox.Show("Bạn phải nhập ngày sinh", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Warning); mskngsinh.Focus(); return;
TIEU LUAN MOI download : skknchat@gmail.com
} if (!Funcions.Funcion.ktrangaysinh(mskngsinh.Text))
MessageBox.Show("Bạn phải nhập lại ngày sinh", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Warning); mskngsinh.Text = ""; mskngsinh.Focus(); return;
MessageBox.Show("Bạn chưa chọn nghề nghiệp", "thong bao", MessageBoxButtons.OK, MessageBoxIcon.Warning); cbnghe.Focus(); return;
MessageBox.Show("Bạn chưa chọn dân tộc", "thong bao", MessageBoxButtons.OK, MessageBoxIcon.Warning); cbdantoc.Focus(); return;
MessageBox.Show("Bạn chưa chọn quê quán", "thong bao", MessageBoxButtons.OK, MessageBoxIcon.Warning); cbque.Focus(); return;
MessageBox.Show("Bạn chưa chọn đối tượng", "thong bao", MessageBoxButtons.OK, MessageBoxIcon.Warning); cbdoituong.Focus(); return;
} if (chkgtinh.Checked == true) gt = "nam"; else gt = "nữ"; sql = "SELECT MaBN FROM Tblbenhnhan WHERE MaBN=N'" + txttenbn.Text.Trim() + "'"; if (Funcions.Funcion.checkkey(sql))
TIEU LUAN MOI download : skknchat@gmail.com
MessageBox.Show("Mã bệnh nhân này đã có, bạn phải nhập mã khác",
"Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Warning); txtmabn.Focus(); txtmabn.Text = ""; return;
The SQL command inserts patient data into the Tblbenhnhan table, including fields such as patient ID, name, gender, date of birth, occupation, hometown, ethnicity, and insurance type After executing the SQL command, the data grid is refreshed, and the input fields are reset The buttons for adding, editing, and deleting records are enabled, while the save and cancel buttons are disabled, and the patient ID field is set to read-only.
} private void btnboqua_Click(object sender, EventArgs e)
{ btnboqua.Enabled = false; btnthem.Enabled = true; btnsua.Enabled = true; btnxoa.Enabled = true; btnluu.Enabled = false; txtmabn.Enabled = false; resetvalue();
} private void btnthoat_Click(object sender, EventArgs e)
TIEU LUAN MOI download : skknchat@gmail.com
The provided code snippet is a C# program that utilizes various namespaces, including System, System.Collections.Generic, System.ComponentModel, System.Data, System.Drawing, System.Linq, System.Text, System.Threading.Tasks, and System.Windows.Forms It is part of a project named "BàiTapLon_QuanLyBenhNhan_Nhom8.Forms," indicating its focus on patient management within a group project context.
{ public partial class BacSi : Form
} private void BacSi_Load(object sender, EventArgs e)
{ load_dgr_Bacsi(); btnThem.Enabled = true;
TIEU LUAN MOI download : skknchat@gmail.com btnSua.Enabled = true; btnXoa.Enabled = true; btnLuu.Enabled = false; btnBoqua.Enabled = false; txtMaBS.Enabled = false;
Funcions.Funcion.fillcombo("select MaCM,TenCM from Tblchuyenmon", cboCM, "MaCM", "TenCM"); cboCM.SelectedIndex = -1;
Funcions.Funcion.fillcombo("select MaTD,TenTD from Tbltrinhdo", cboTD,
Funcions.Funcion.fillcombo("select MaQ,TenQ from Tblque", cbQQ, "MaQ",
} private void load_dgr_Bacsi()
The SQL query retrieves essential information about doctors, including their ID, name, gender, date of birth, hometown, specialty, education level, and phone number, by joining multiple tables The resulting data is displayed in a DataGridView, where each column is labeled appropriately: "Mã bác sĩ" for doctor ID, "Tên bác sĩ" for name, "Giới tính" for gender, "Ngày sinh" for date of birth, "Quê quán" for hometown, "Chuyên môn" for specialty, "Trình độ" for education level, and "Số điện thoại" for phone number The DataGridView is configured to prevent users from adding new rows and to allow programmatic editing only.
{ txtMaBS.Text = ""; txtTenBS.Text = ""; txtSDT.Text = ""; cboCM.Text = ""; cboTD.Text = ""; cbQQ.Text = ""; mskNS.Text = ""; ckbGT.Checked = false;
} private void btnThoat_Click_1(object sender, EventArgs e)
TIEU LUAN MOI download : skknchat@gmail.com this.Close();
} private void btnThem_Click_1(object sender, EventArgs e)
{ btnThem.Enabled = false; btnSua.Enabled = false; btnXoa.Enabled = false; btnLuu.Enabled = true; ; btnBoqua.Enabled = true; resetvalue(); txtMaBS.Enabled = true; txtMaBS.Focus();
} private void btnSua_Click_1(object sender, EventArgs e)
MessageBox.Show("Không còn dữ liệu", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information); return;
MessageBox.Show("Chưa chọn bản ghi nào", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information); return;
MessageBox.Show("Phải có tên bác sĩ", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information); return;
MessageBox.Show("Phải chọn quê quán", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information); return;
MessageBox.Show("Phải chọn chuyên môn", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information); return;
TIEU LUAN MOI download : skknchat@gmail.com if (cboTD.Text == "")
MessageBox.Show("Phải chọn trình độ", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information); return;
MessageBox.Show("Phải có số điện thoại", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information); return;
MessageBox.Show("Phải có ngày sinh", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information); return;
} if (!Funcions.Funcion.ktrangaysinh(mskNS.Text))
MessageBox.Show("Bạn phải nhập lại ngày sinh", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Warning); mskNS.Text = ""; mskNS.Focus(); return;
} string GT; if (ckbGT.Checked == true)
GT = "Nữ"; string sql; sql = "update tblBacsi set TenBS=N'" + txtTenBS.Text + "',SDT= N'" +
Convert.ToInt32(txtSDT.Text) + "',GT =N'" + GT + "',MaTD=N'" + cboTD.SelectedValue.ToString() + "',MaQ=N'" + cbQQ.SelectedValue.ToString() +
"',MaCM=N'" + cboCM.SelectedValue.ToString() + "',NS=N'" +
Funcions.Funcion.datetime(mskNS.Text) + "' where MaBS =N'" + txtMaBS.Text + "'";
Funcions.Funcion.runsql(sql); resetvalue(); load_dgr_Bacsi(); btnBoqua.Enabled = false;
} private void btnXoa_Click_1(object sender, EventArgs e)
TIEU LUAN MOI download : skknchat@gmail.com
MessageBox.Show("Không còn dữ liệu", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information); return;
MessageBox.Show("chưa chọn bản ghi nào để xoá", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information); return;
} if (MessageBox.Show("Bạn có muốn xóa không?", "Thông báo",
MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == DialogResult.OK)
{ string sql = "delete Tblbacsi where MaBS=N'" + txtMaBS.Text + "'";
Funcions.Funcion.runsql(sql); load_dgr_Bacsi(); resetvalue();
} private void btnLuu_Click_1(object sender, EventArgs e)
MessageBox.Show("Phải nhập tên mã bác sĩ", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information); return;
MessageBox.Show("Phải nhập tên bác sĩ", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information); return;
MessageBox.Show("Phải chọn quê quán", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information); return;
MessageBox.Show("Phải chọn chuyên môn", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information); return;
TIEU LUAN MOI download : skknchat@gmail.com
MessageBox.Show("Phải chọn trình độ", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information); return;
MessageBox.Show("Phải nhập số điện thoại", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information); return;
MessageBox.Show("Phải nhập ngày sinh", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information); return;
} if (!Funcions.Funcion.ktrangaysinh(mskNS.Text))
MessageBox.Show("Bạn phải nhập lại ngày sinh", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Warning); mskNS.Text = ""; mskNS.Focus(); return;
} string GT; if (ckbGT.Checked == true)
GT = "Nữ"; string sql; sql = "SELECT MaBS FROM Tblbacsi WHERE MaBS=N'" + txtTenBS.Text.Trim() + "'"; if (Funcions.Funcion.checkkey(sql))
MessageBox.Show("Mã bác sĩ này đã có, bạn phải nhập mã khác", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Warning); txtMaBS.Focus(); txtMaBS.Text = ""; return;
(MaBS,TenBS,GT,NS,MaQ,MaCM,MaTD,SDT) VALUES(N'" + txtMaBS.Text +
Funcions.Funcion.datetime(mskNS.Text) + "',N'" + cbQQ.SelectedValue.ToString() +
"',N'" + cboCM.SelectedValue.ToString() + "',N'" + cboTD.SelectedValue.ToString() +
TIEU LUAN MOI download : skknchat@gmail.com
Funcions.Funcion.runsql(sql); load_dgr_Bacsi(); resetvalue(); btnXoa.Enabled = true; btnThem.Enabled = true; btnSua.Enabled = true; btnBoqua.Enabled = false; btnLuu.Enabled = false; txtMaBS.Enabled = false;
} private void btnBoqua_Click_1(object sender, EventArgs e)
{ resetvalue(); btnBoqua.Enabled = false; btnThem.Enabled = true; btnXoa.Enabled = true; btnSua.Enabled = true; btnLuu.Enabled = false; txtMaBS.Enabled = false;
} private void dgrBacsi_Click(object sender, EventArgs e)
{ string a, b, c; if (btnThem.Enabled == false)
MessageBox.Show("Đang ở chế độ thêm mới!", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information); txtMaBS.Focus(); return;
MessageBox.Show("Không có dữ liệu!", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information); return;
The code retrieves and displays the selected doctor's information from the data grid, including their ID (MaBS), name (TenBS), phone number (SDT), and date of birth (NS) Additionally, it fetches the corresponding queue name (TenQ) based on the queue ID (MaQ) and obtains the medical specialty ID (MaCM) for further processing.
TIEU LUAN MOI download : skknchat@gmail.com cboCM.Text = Funcions.Funcion.getfiedvalues("select TenCM from
In the Tblchuyenmon database, the current selection is identified by the MaCM value The 'MaTD' value is retrieved from the selected row in the dgrBacsi grid, and the corresponding 'TenTD' is populated in the cboTD dropdown Additionally, the gender checkbox (ckbGT) is checked based on whether the selected gender is "Nam." Finally, the buttons for editing (btnSua), deleting (btnXoa), and canceling (btnBoqua) are enabled for user interaction.
TIEU LUAN MOI download : skknchat@gmail.com
“ Một bệnh nhân có nhiều hồ sơ bệnh án, khi chọn một bệnh nhân sẽ hiện danh sách các bệnh án của bệnh nhân đó”
1 Trả lời các câu hỏi trong bước “Phân tích câu hỏi”
3 Giao diện sau khi xử lý
Danh sách hồ sơ bênh án TimKiemBenhNhan Form
Danh sách hồ sơ bệnh án Lable1 Lable
Mã Bệnh Nhân Lable2 Lable cbomabenhnhan Combobox
Tra cứu bệnh án btntracuu Button
Tra cứu lại btntracuulai Button
Tra cứu danh sách groupbox1 Groupbox
TIEU LUAN MOI download : skknchat@gmail.com
4 Code using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace BàiTapLon_QuanLyBenhNhan_Nhom8.Forms
{ public partial class DanhSachHoSoBenhAn : Form
} private void DanhSachHoSoBenhAn_Load(object sender, EventArgs e) { Funcions.Funcion.ketnoi();
Funcions.Funcion.fillcombo("select distinct MaBN from Tblhosobenhan", cbomabenhnhan, "MaBN", "MaBN"); cbomabenhnhan.SelectedIndex = -1; loadDataTraCuu();
TIEU LUAN MOI download : skknchat@gmail.com private void loadDataTraCuu()
The SQL query retrieves patient data by selecting specific fields such as medical record number, patient ID, patient name, doctor ID, examination date, examination reason, treatment status, medical history, blood pressure, weight, temperature, and examination fee from the joined tables of patient records and hospital admission records The resulting data is displayed in a DataGridView, with customized column headers for better clarity, and user input for adding new rows is disabled to maintain data integrity during the examination process.
} private void btntracuu_Click(object sender, EventArgs e)
MessageBox.Show("Chưa nhập điều kiện tìm kiếm", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Error); cbomabenhnhan.Focus(); return;
} string sql = "select MaBA, Tblhosobenhan.MaBN, TenBN,MaBS,
NgayKham, LyDoKham,HuyetAp, CanNang From Tblbenhnhan join Tblhosobenhan on Tblhosobenhan.MaBN = Tblbenhnhan.MaBN Where 1 = 1"; if (cbomabenhnhan.Text != "") sql = sql + " AND Tblhosobenhan.MaBN Like N'%" + cbomabenhnhan.Text +
"%'"; tblHSBA = Funcions.Funcion.GetDataTable(sql); dataGridViewTraCuu.DataSource = tblHSBA; if (tblHSBA.Rows.Count == 0)
MessageBox.Show("khong co ban ghi duoc tim", "thong bao", MessageBoxButtons.OK, MessageBoxIcon.Error); cbomabenhnhan.Text = "";
MessageBox.Show("Co" +" "+ tblHSBA.Rows.Count +" "+ "ban ghi thoa man", "thong bao", MessageBoxButtons.OK,
MessageBoxIcon.Information); btntracuu.Enabled = false; btntracuulai.Enabled = true;
} private void btnthoat_Click(object sender, EventArgs e)
} private void btntracuulai_Click(object sender, EventArgs e)
{ loadDataTraCuu(); btntracuu.Enabled = true; btntracuulai.Enabled = false; cbomabenhnhan.Text = "";
TIEU LUAN MOI download : skknchat@gmail.com
“ Khi chọn một bệnh án sẽ hiển thị thông tin về xét nghiệm, kết luận và thuốc điều trị của bệnh án đó”
1 Trả lời các câu hỏi trong bước “phân tích câu hỏi”
3 Giao diện sau khi xử lý
Thông Tin Bệnh Án TimKiemBenhNhan Form
Thông Tin Bệnh Án Lable1 Lable
Mã Bệnh Án Lable2 Lable cbomabenhnhan Combobox
Tra cứu lại btntracuau Button
Thông Tin Bệnh Án Thuốc groupbox1 Groupbox
Thông Tin Bệnh Án Xét Nghiệm Groupbox2 Groupbox
Thông Tin Bệnh Án Kết Luận Groupbox3 Groupbox
TIEU LUAN MOI download : skknchat@gmail.com