Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 76 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
76
Dung lượng
2,1 MB
Nội dung
Khóa luận tốt nghiệp Lời cảm ơn Để hồn thành khóa luận tốt nghiệp này, trước hết tơi xin gửi lời cảm ơn quý báu đến thầy, cô giáo Trường Đại Học Kinh Tế Huế tận tình dạy dỗ, bảo cung cấp cho kiến thức quý báu suốt bốn năm học Đặc biệt, xin gửi lời cảm ơn chân thành sâu sắc đến Thầy giáo- Th.s Lê Viết Mẫnngười trực tiếp hướng dẫn giúp đỡ tơi suốt q trình thực hiện, nghiên cứu hồn thành khóa luận Trong thời gian thực tập Bệnh viện Quân Y 268- Thừa Thiên Huế Cô, Chú, Anh, Chị toàn thể Bệnh viện, đặc biệt anh chị khoa Dược bảo tận tình, tạo điều kiện thuận lợi, truyền đạt kiến thức thực tế cung cấp thông tin cần thiết phục vụ cho đề tài nghiên cứu Chính xin gửi lời cảm ơn chân thành đến Ban lãnh đạo Bệnh viện Quân Y 268- Thừa Thiên Huế Cô Chú, Anh Chị giúp hồn thành khóa luận Cuối cùng, tơi xin gửi lời cảm ơn đến người thân gia đình bạn bè hết lòng ủng hộ, giúp đỡ nhiều thời gian qua Xin chân thành cảm ơn! Huế, ngày 16 tháng 05 năm 2014 Sinh viên thực Nguyễn Thị Lan Phương i SVTH: Nguyễn Thị Lan Phương i Khóa luận tốt nghiệp MỤC LỤC LỜI CẢM ƠN i MỤC LỤC ii DANH MỤC CÁC KÝ HIỆU VÀ CHỮ VIẾT TẮT iv DANH MỤC CÁC SƠ ĐỒ v DANH MỤC CÁC BẢNG BIỂU vii MỞ ĐẦU Lí chọn đề tài .8 Mục tiêu nghiên cứu .9 Đối tượng phạm vi nghiên cứu Phương pháp nghiên cứu 10 Nội dung khóa luận 10 CHƢƠNG 1: TỔNG QUAN VỀ BỆNH VIỆN QUÂN Y 268 11 1.1 Lịch sử hình thành phát triển bệnh viện Quân Y 268 .11 1.2 Cơ cấu tổ chức nguồn lực bệnh viện 12 1.3 Khảo sát trạng quản lý bán dược phẩm Bệnh viện Quân Y 268Thừa Thiên Huế 13 1.3.1 Khảo sát trạng 13 1.3.2 Đánh giá hệ thống 14 CHƢƠNG 2: CƠ SỞ LÝ LUẬN CỦA VIỆC XÂY DỰNG PHẦN MỀM QUẢN LÝ 17 2.1 Tổng quan lập trình hướng chức (POP) 17 2.1.1 Giới thiệu .17 2.1.2 Các khái niệm 18 2.2 Quy trình xây dựng phần mềm quản lý .19 2.2.1 Khảo sát tìm hiểu yêu cầu 20 2.2.2 Phân tích yêu cầu 20 2.2.3 Thiết kế hệ thống 21 SVTH: Nguyễn Thị Lan Phương ii Khóa luận tốt nghiệp 2.2.4 Cài đặt thử nghiệm đơn thể phần mềm .21 2.2.5 Thử nghiệm tổng thể phần mềm 21 2.2.6 Bảo trì phát triển phần mềm 22 2.3 Hệ quản trị sở liệu SQL Server 22 2.3.1 Ngôn ngữ truy vấn liệu có cấu trúc (SQL - Structure Query Language) .22 2.3.2 Hệ quản trị sở liệu (DBMS - DataBase Management System) 24 2.3.3 Hệ quản trị sở liệu SQL Server 25 2.4 Ngôn ngữ lập trình C# 27 2.4.1 Tổng quan kiến trúc Net Framework .27 2.4.2 Tổng quan kiến trúc ADO.NET 28 2.4.3 Giới thiệu ngôn ngữ C# 29 CHƢƠNG 3: PHÂN TÍCH, THIẾT KẾ VÀ XÂY DỰNG PHẦN MỀM QUÁN LÝ DƢỢC PHẨM TẠI BỆNH VIỆN QUÂN Y 268 32 3.1 Mơ tả tốn .32 3.2 Phân tích hệ thống 34 3.2.1 Phân tích yêu cầu 35 3.2.2 Sơ đồ phân rã chức (BFD – Business Function Diagram): 36 3.2.3 Mô tả chức .37 3.2.4 Sơ đồ ngữ cảnh (Context Diagram) .40 3.2.5 Sơ đồ mơ hình luồng liệu (DFD – Data Flow Diagram): 41 3.3 Thiết kế hệ thống 46 3.3.1 Thiết kế sở liệu 46 3.3.2 Một số thuật tốn chương trình 57 3.4 Thiết kế giao diện 61 3.5 Đóng gói sản phẩm cài đặt 66 3.6 Kiểm thử .68 KẾT LUẬN 69 TÀI LIỆU THAM KHẢO PHỤ LỤC SVTH: Nguyễn Thị Lan Phương iii Khóa luận tốt nghiệp DANH MỤC CÁC KÝ HIỆU VÀ CHỮ VIẾT TẮT BFD : Business Function Diagram POP : Procedure - Oriented Programming CSDL : Cơ sở liệu Đ : Đúng DFD : Data Flow Diagram QLDN : Quản lý doanh nghiệp S : Sai SQL : Structure Query Language TNDN : Thu nhập doanh nghiệp SVTH: Nguyễn Thị Lan Phương iv Khóa luận tốt nghiệp DANH MỤC CÁC SƠ ĐỒ Hình 1.1: Sơ đồ cấu tổ chức Bệnh viên Quân Y 268 .12 Hình 2.1: Mơ hình thác nước .20 Hình 2.2: Các thành phần SQL Server (Nguồn Microsoft) 26 Hình 3.1: Sơ đồ chức BFD 36 Hình 3.2: Chức quản lý hệ thống 37 Hình 3.3: Chức quản lý danh mục 38 Hình 3.4: Chức quản lý Xuất, nhập kho .38 Hình 3.5: Chức tìm kiếm 39 Hình 3.6: Chức Thống kê .39 Hình 3.7: Sơ đồ ngữ cảnh 41 Hình 3.8: Sơ đồ phân rã mức 43 Hình 3.9: Sơ đồ phân rã mức mức cho chức 1.0 .44 Hình 3.10: Sơ đồ phân rã mức cho chức 2.0 .44 Hình 3.11: Sơ đồ phân rã mức cho chức 3.0 .45 Hình 3.12: Sơ đồ phân rã mức cho chức 4.0 .45 Hình 3.13: Sơ đồ phân rã mức cho chức 5.0 .46 Hình 3.14: Sơ đồ thực thể - Mối quan hệ cho chức quản lý Dược phẩm .50 Hình 3.15: Mơ hình sở liệu mối quan hệ .56 Hình 3.16: Giao diện chương trình .61 Hình 3.17: Giao diện form đăng nhập hệ thống 62 Hình 3.18: Giao diện form phân quyền 62 Hình 3.19: Giao diện form hóa đơn .63 Hình 3.20: Giao diện form nhập hàng 63 Hình 3.21: Giao diện form báo cáo thống kê 64 Hình 3.22: Giao diện form báo cáo bán hàng 64 SVTH: Nguyễn Thị Lan Phương v Khóa luận tốt nghiệp Hình 3.23: Giao diện form báo cáo thống kê 65 Hình 3.24: Giao diện form thêm dược phẩm .65 Hình 3.25: Màn hình giao diện đóng gói phần mềm .66 Hình 3.26: Màn hình giao diện thiết lập yếu tố đầu 67 Hình 3.27: Màn hình giao diện thiết lập file shortcut 67 SVTH: Nguyễn Thị Lan Phương vi Khóa luận tốt nghiệp DANH MỤC CÁC BẢNG BIỂU Bảng 3.1: Các tập thực thể thuộc tính .46 Bảng 3.2: Bảng Users 51 Bảng 3.3: Bảng bệnh nhân 51 Bảng 3.4: Bảng Nhà sản xuất 51 Bảng 3.5: Bảng Nhà phân phối 52 Bảng 3.6: Bảng Thuốc 52 Bảng 3.7: Bảng nhóm thuốc 53 Bảng 3.8: Bảng đơn vị tính 53 Bảng 3.9: Bảng hóa đơn nhập .54 Bảng 3.10: Bảng chi tiết hóa đơn nhập 54 Bảng 3.11: Bảng hóa đơn xuất 55 Bảng 3.12: Chi tiết hóa đơn xuất 55 Bảng 3.13: Bảng SystemLog 56 SVTH: Nguyễn Thị Lan Phương vii Khóa luận tốt nghiệp MỞ ĐẦU Lí chọn đề tài Ngày giới, công nghệ thông tin phát triển nhanh chóng, mạnh mẽ, có ứng dụng sâu sắc có vai trị quan trọng vào hầu hết mặt đời sống xã hội, đặc biệt cơng tác quản lí, từ quản lí nhân quản lí kho, quản lí bán hàng, quản lí văn bản, hồ sơ Trong lĩnh vực quản lí, việc quản lí thuốc vấn đề đặt hầu hết Bệnh viện, thị trường sản phẩm y tế dược phẩm thị trường đặc thù Thị trường dược phẩm với số lượng sản phẩm, dòng dược phẩm ngày nhiều phát triển đa dạng, mặt phục vụ cho công tác chữa bệnh tốt mặt khác điều lại gây phần khó khăn cho sở, bệnh viện việc thống kê kiểm sốt thực trạng sản phẩm Chính địi hỏi phải có phương thức quản lý sản phẩm thuốc phù hợp để nâng cao hiệu công việc đồng thời giảm áp lực cho nhân viên người quản lý Có phần mềm quản lí hiệu khơng mang lại lợi ích mặt kinh tế, giúp tiết kiệm chi phí, nhân lực mà cịn đem lại lợi ích mặt quản lí, giúp người quản lí lấy báo cáo thống kê thời điểm với độ xác cao; giúp nhà lãnh đạo nhà đầu tư có định nhanh chóng, kịp thời quản lí điều hành Khơng thế, cịn giúp kiểm tra hoạt động hàng ngày, hoạt động định kì phận nhanh chóng, đơn giản Chính điều nên xu hướng bệnh viện quan tâm ứng dụng tin học vào việc xây dựng phần mềm để quản lý khoa học Ở Bệnh viện Quân Y 268 tồn chế quản lý dược phẩm thủ công Ban lãnh đạo Bệnh viện quan tâm đến vấn đề ứng dụng tin học việc hoàn thiện chế quản lý chế quản lý dược phẩm Bệnh viện để công tác cứu chữa người bệnh bệnh viện có hiệu cao Nhận thức vấn đề nên trình thực tập Bệnh viện Quân Y 268, em định chọn đề tài “Xây dựng phần mềm quản lý dược phẩm SVTH: Nguyễn Thị Lan Phương Khóa luận tốt nghiệp Bệnh viện Quân Y 268 – Thừa Thiên Huế” làm đề tài khóa luận tốt nghiệp nhằm góp phần nhỏ bé mình, hi vọng giúp ích cho cơng tác quản lí thuốc Bệnh viện tốt hơn, hiệu Mục tiêu nghiên cứu Mục tiêu tổng quát: Trên sở nghiên cứu phân tích u cầu cơng tác quản lý nhân sự, nghiên cứu mơ hình hệ thống thống tin quản lý dược phẩm xây dựng phần mềm quản lý dược phẩm, đáp ứng yêu cầu quản lý, xử lý thông tin dược phẩm đơn vị Mục tiêu cụ thể: - Nghiên cứu tổng quan mục tiêu phân tích quy trình quản lý dược phẩm bệnh viện Quân Y 268 - Hệ thống hóa lí luận liên quan ngơn ngữ lập trình C# quy trình xây dựng phần mềm quản lý - Đề xuất quy trình quản lý dược phẩm đáp ứng nhu cầu bệnh viện Quân Y 268 - Phân tích, thiết kế xây dựng phần mềm dựa quy trình quản lý dược phẩm cho bệnh viện Quân Y 268 ngôn ngữ C# Đối tƣợng phạm vi nghiên cứu • Đối tượng nghiên cứu Đối tượng nghiên cứu đề tài chế quản lý dược phẩm bệnh viện Quân Y 268 • Phạm vi nghiên cứu - Phạm vi nội dung: Đề tài tập trung phân tích chế quản lý dược phẩm bệnh viện Quân Y 268 xây dựng phần mềm ứng dụng phù hợp đặc thù bệnh viện Quân Y 268 - Phạm vi không gian: nghiên cứu thực Bệnh viên Quân Y 268 SVTH: Nguyễn Thị Lan Phương Khóa luận tốt nghiệp - Phạm vi thời gian: Nghiên cứu sử dụng thông tin chế quản lý dược phẩm bệnh viện năm 2012-2013 Phƣơng pháp nghiên cứu - Phương pháp thu thập thông tin: chủ động tìm kiếm, nghiên cứu tài liệu liên quan đến đề tài; quan sát quy trình làm việc nhân viên, thao tác nghiệp vụ hoạt động quản lý dược phẩm - Phương pháp phân tích thiết kế hệ thống: dựa thơng tin thu để tiến hành phân tích, thiết kế hệ thống bao gồm chức phân hệ phần mềm xây dựng thơng qua q trình mơ hình hóa hệ thống, chuẩn hóa sở liệu cách phù hợp Sau tiến hành phân tích, thiết kế hệ thống, lựa chọn ngơn ngữ lập trình Visual C Sharp để tiến hành lập trình tảng NET Framework hệ quản trị sở liệu SQL Server 2008 Nội dung khóa luận Ngoài phần mở đầu kết luận, nội dung khóa luận trình bày chương với kết cấu sau: Chương I: Tổng quan bệnh viện Quân Y 268 – Trình bày sơ lược lịch sử hình thành phát triển Bệnh viện Đồng thời giới thiệu cấu tổ chức nguồn lực Bệnh viện Quân y 268 Chương II: Cơ sở lý luận việc phân tích, thiết kế xây dựng phần mềm quản lý - Trình bày tổng quan ngơn ngữ lập trình C# ứng dụng Đồng thời giới thiệu hệ quản trị sở liệu Microsoft SQL Server, công cụ dùng để thiết kế sở liệu thiết kế giao diện chương trình Chương III: Phân tích, thiết kế xây dựng phần mềm quản lý dược phẩm Bệnh viện Quân y 268 – Đây nội dung khóa luận Chương trình bày tất giai đoạn từ khảo sát trạng, mô hệ thống, phân tích hệ thống thơng tin, thiết kế sở liệu, xây dựng thuật toán, thiết kế giao diện, chương trình khâu cuối chạy thử sản phẩm đầu SVTH: Nguyễn Thị Lan Phương 10 Khóa luận tốt nghiệp Hình 3.17: Giao diện form đăng nhập hệ thống 3.4.3 Giao diện form nhật ký ngƣời dùng Giao diện dùng quản lý xem thao tác mà người dùng thực hệ thống Hình 3.18: Giao diện form phân quyền 3.4.4 Giao diện form hóa đơn bán Giao diện thể thơng tin bệnh nhân đến mua dược phẩm, mã số hóa đơn, mã dược phẩm bán với tên dược phẩm gì, đơn giá hay số lượng bao nhiêu, tổng tiền bán hóa đơn SVTH: Nguyễn Thị Lan Phương 62 Khóa luận tốt nghiệp Hình 3.19: Giao diện form hóa đơn 3.4.5 Giao diện form nhập hàng Giao diện thể thông tin nhà cung cấp đến cung cấp hàng cho Công ty, thông tin nhân viên nhập hàng đó, mã số phiếu nhập, mã mặt hàng bán với tên hàng gì, đơn giá số lượng bao nhiêu, tổng tiền phải trả phiếu nhập hàng Hình 3.20: Giao diện form nhập hàng SVTH: Nguyễn Thị Lan Phương 63 Khóa luận tốt nghiệp 3.4.6 Giao diện hóa đơn nhập Hình 3.21: Giao diện form báo cáo thống kê 3.4.7 Giao diện tìm kiếm hóa đơn Giao diện người dùng tìm kiếm hóa đơn theo mã, tên theo ngày tháng Hình 3.22: Giao diện form báo cáo bán hàng SVTH: Nguyễn Thị Lan Phương 64 Khóa luận tốt nghiệp 3.4.8 Giao diện quản lý dƣợc phẩm Hình 3.23: Giao diện form báo cáo thống kê 3.4.9 Giao diện thêm dƣợc phẩm Hình 3.24: Giao diện form thêm dược phẩm SVTH: Nguyễn Thị Lan Phương 65 Khóa luận tốt nghiệp 3.5 Đóng gói sản phẩm cài đặt 3.5.1 Đóng gói sản phẩm Đóng gói sản phẩm khâu quan trọng khâu cuối q trình viết phần mềm Quy trình đóng gói phần mềm thực theo bước sau: - Bước 1: Trên menu chương trình ta kích chuột phải vào slution tạo project chọn vào Add/New Project xuất hộp thoại New project sau: Hình 3.25: Màn hình giao diện đóng gói phần mềm Trên giao diện này, ta chọn vào Other Project Typer/Setup and Deploment/Visual Studion Installer/Setup Prọect, mục name Location ta đặt tên sản phẩm phần mềm đường dẫn lưu trữ file cài đặt,… sau nhấn nút ok để hoàn thành việc tạo Setup Project - Bước 2: Click phải chuột lên Application Folder/Add/File… di chuyển đến file cài đặt Bin/Debug/File.exe Tiếp theo kích chuột phải vào Application Folder/Add/Project Output… xuất hộp thoại cho phép chọn yếu tố đầu file đóng gói Đến ta SVTH: Nguyễn Thị Lan Phương 66 Khóa luận tốt nghiệp chọn tất yếu tố nhấn ok Hình 3.26: Màn hình giao diện thiết lập yếu tố đầu Tiếp theo chuột phải vào Application Folder/Add/Icon - Bước 3: Kích vào User’s Desktop sau kích chuột phải vào khung bên phải chọn Ceate New Shortcut/Application Folder/File.exe, ta kích chuột phải vào file Shortcut vừa tạo, chọn Properties Window, bên phải mục Icon chọn Icon vừa Add lúc trước, chọn Application Folder Ok Hình 3.27: Màn hình giao diện thiết lập file shortcut - Bước 4: Click phải chuột lên Setup Project chọn Build để xây dựng kết thúc việc đóng gói phần mềm SVTH: Nguyễn Thị Lan Phương 67 Khóa luận tốt nghiệp 3.5.2 Cài đặt hƣớng dẫn sử dụng Hướng dẫn cài đặt: Cài đặt sở liệu: Attach sở liệu vào Microsoft SQL Server 2008 Cài đặt chương trình: chạy file.exe đóng gói chương trình, chọn hướng dẫn cài đặt next Sau cài đặt xong biểu tượng chương trình hình desktop, có tên “Medicine Manager” Người sử dụng cần nháy đúp chuột đăng nhập vào chương trình tiến hành sử dụng chương trình Hướng dẫn sử dụng: Đăng nhật hệ thống: Để vào phần mềm, người dùng cần đăng ký tài khoản mật Quản lý có quyền Admin có quyền thêm người dùng có quyền sử dụng chức khác phần mềm Sau đăng nhập người dùng cập nhật, sửa, lưu, xóa bảng danh mục thông tin liên quan đến cơng tác bán hàng Người sử dụng thực tra cứu thông tin bệnh nhân theo tiêu chí mã bệnh nhân, tên bệnh nhân, đồng thời in báo cáo nộp cho Ban Lãnh Đạo 3.6 Kiểm thử Phần mềm chạy thử chưa phát lỗi nghiêm trọng, bước đầu an toàn khả thi Phần mềm xây dựng có đầy đủ chức theo yêu cầu phần đặc tả hệ thống SVTH: Nguyễn Thị Lan Phương 68 Khóa luận tốt nghiệp KẾT LUẬN Qua trình thực tập tìm hiểu tình hình thực tế thời gian qua, nhận thấy thiết kế xây dựng phần mềm quản lý dược phẩm cách khoa học xu hướng bệnh viện quan tâm Với đề tài "Xây dựng phần mềm quản lý dược phẩm Bệnh viện Quân Y 268 – Thừa Thiên Huế" nắm bắt cách thức xây dựng phần mềm quản lý dựa vào công cụ Visual Studio 2010, vận dụng Visual Studio 2010 xây dựng phần mềm quản lý dược phẩm Bệnh viện Quân Y 268 Phần mềm có ưu điểm giao diện thân thiện, thuận tiện cho người dùng, dễ dàng sử dụng quản lý Hỗ trợ nhiều chức phù hợp với thực tế việc tìm kiếm thơng tin, trao đổi quản lý nhân Nhìn chung phần mềm ứng dụng vào việc quản lý phẩm cho bệnh viện hoàn toàn khả thi, đáp ứng nhiều nhu cầu cho công tác quản lý dược phẩm Tuy nhiên hạn chế thời gian khả năng, chưa giải trọn vẹn vấn đề nảy sinh trình quản lý Hy vọng tương lai với trau dồi kiến với góp ý Thầy cơ, em hồn thiện đề tài hơn, tìm hiểu thêm số chức chưa thực ứng dụng, tiến hành bổ sung số chức để hệ thống quản lý tốt dược phẩm Bên cạnh bổ sung điều chỉnh thêm số tính để hệ thống ngày hoạt động hiệu Ứng dụng công nghệ vào việc quản lý sở liệu xây dựng phần mềm Một lần xin chân thành cám ơn giúp đỡ tận tình Thầy giáo-Th.s Lê Viết Mẫn toàn thể bác sĩ Bệnh viện Quân Y 268 giúp tơi hồn thành đề tài SVTH: Nguyễn Thị Lan Phương 69 Khóa luận tốt nghiệp TÀI LIỆU THAM KHẢO Dƣơng Quang Thiện Lập trình Visual C# nào? Tập 1,2,3 Nhà xuất Tổng hợp TPHCM, 2005 Hàn Viết Thuận Giáo trình hệ thống thơng tin quản lý Trường đại học Kinh tế quốc dân, Khoa tin học kinh tế Nhà xuất đại học Kinh tế quốc dân Hà Nội, 2008 Lê Văn Tƣờng Lân Giáo trình cơng nghệ phần mềm.Trường đại học Khoa học Huế, Khoa công nghệ thông tin Huế, 2006 Nguyễn Mậu Hân Giáo trình phân tích thiết kế hệ thống thông tin Trường đại học Khoa học Huế, Khoa Công nghệ thông tin Huế, 2004 Phạm Hữu Khang C# 2005 Nhà xuất nhà xuất Lao Động Xã Hội, 2006 Phạm Hữu Khang C# 2005 Lập trình WindowsForm Nhà xuất nhà xuất Lao Động Xã Hội, 2006 Trần Nguyên Phong Giáo trình SQL Trường đại học Khoa học Huế, Khoa công nghệ thông tin Huế, 2004 SVTH: Nguyễn Thị Lan Phương Khóa luận tốt nghiệp PHỤ LỤC MỘT SỐ ĐOẠN CODE TRONG CHƢƠNG TRÌNH Code đăng nhập hệ thống private BusCommon busCommon; private BusUser busUser; private User user; public Login() { InitializeComponent(); busCommon = new BusCommon(); busUser = new BusUser(); user = new User(); } private void btnLogin_Click(object sender, EventArgs e) { this.Submit(); } public void Submit() { if (!ValidateFrom.CheckEmty(txtUsername.Text)) { txtUsername.Focus(); MessageBox.Show(this, "UserName Invalid!"); } else if (!ValidateFrom.CheckEmty(txtPassword.Text)) { txtPassword.Focus(); MessageBox.Show(this, "Password Invalid!"); } else { User user = busUser.GetUser(txtUsername.Text,txtPassword.Text); if (user != null) { if (radioButton1.Checked) { SystemLog systemLog = new SystemLog(user.IDUser, DateTime.Now.ToString(), "Đăng nhập vào quản lý"); busUser.SetSystemLog(systemLog); QuanLy ql = new QuanLy(user); ql.Visible = true; SVTH: Nguyễn Thị Lan Phương Khóa luận tốt nghiệp this.Visible = false; } else if (radioButton2.Checked) { SystemLog systemLog = new SystemLog(user.IDUser, DateTime.Now.ToString(), "Đăng nhập vào kê đơn"); busUser.SetSystemLog(systemLog); SellMedicine mm = new SellMedicine(user); mm.Show(); this.Visible = false; } } else { MessageBox.Show("Khơng tìm thấy người dùng nào!"); txtUsername.Focus(); } } } private void Login_Load(object sender, EventArgs e) { if (!busCommon.CheckConnectDB()) { CreateConnectionDB createConnDB = new CreateConnectionDB(); createConnDB.ShowDialog(); this.Visible = false; } } private void btnCencel_Click(object sender, EventArgs e) { Application.Exit(); } Đoạn code thêm, sửa bệnh nhân private BusBenhNhan busBN; private string _lastMaBN; private int mode; private BenhNhan benhNhan; private int index; public delegate void dgBenhNhan(BenhNhan benhNhan, int index); public dgBenhNhan dgBN; public BusUser busUser; public Them_Sua_BenhNhan(BenhNhan benhNhan, int index, int mode) { InitializeComponent(); busBN = new BusBenhNhan(); this.benhNhan = benhNhan; this.mode = mode; this.index = index; SVTH: Nguyễn Thị Lan Phương Khóa luận tốt nghiệp busUser = new BusUser(); } private void Them_Sua_BenhNhan_Load(object sender, EventArgs e) { if (mode == 1) { // Them Benh Nhan btnThem.Text = "Thêm"; BenhNhan lastBenhNhan = busBN.GetLastBenhNhan(); if (lastBenhNhan != null) { this._lastMaBN = lastBenhNhan.MaBN; } else { this._lastMaBN = "BN_0_ABCD"; } } else if (mode == 2) { btnThem.Text = "Cập nhật"; txtMaBN.Text = benhNhan.MaBN; txtHoTen.Text = benhNhan.HoTen; txtTuoi.Text = benhNhan.Tuoi.ToString(); txtDienThoai.Text = benhNhan.DienThoai; txtDiaChi.Text = benhNhan.DiaChi; } if (mode == 1) { int i = GetNumber(this._lastMaBN); TaoMa(i); } else if (mode == 2) { int i = GetNumber(this.benhNhan.MaBN); TaoMa(i); } } public bool CheckFrom() { if (txtHoTen.Text.Equals("")) { MessageBox.Show(this, "Nhập Họ Tên!", "Thông báo"); txtHoTen.Focus(); return false; } else if (ValidateFrom.CheckNumber(txtTuoi.Text) == false) SVTH: Nguyễn Thị Lan Phương Khóa luận tốt nghiệp { MessageBox.Show(this, "Nhập Tuổi!\nChỉ nhập số!", "Thông báo"); txtTuoi.Focus(); return false; } else if (txtDiaChi.Text.Equals("")) { MessageBox.Show(this, "Nhập địa chỉ!", "Thông báo"); txtDiaChi.Focus(); return false; } else if (ValidateFrom.CheckNumber(txtDienThoai.Text) == false) { MessageBox.Show(this, "Chưa nhập số điện thoại số không hợplệ\nChỉ nhập số!", "Thông báo"); txtDienThoai.Focus(); return false; } else return true; } private void button1_Click(object sender, EventArgs e) { if (mode == 1) { if (CheckFrom()) { BenhNhan benhNhan = new BenhNhan(txtMaBN.Text, txtHoTen.Text, Convert.ToInt32(txtTuoi.Text),txtDiaChi.Text,txtDienThoai.Text); int i = busBN.InsertBenhNhan(benhNhan); if (i > 0) { SystemLog systemLog = new SystemLog(SellMedicine.IDUser, DateTime.Now.ToString(), "Thêm bệnh nhân"); busUser.SetSystemLog(systemLog); MessageBox.Show(this,"Thêm bệnh nhân thành công!","Thông báo"); BenhNhan lastBenhNhan = busBN.GetLastBenhNhan(); dgBN(lastBenhNhan, index); this.Close(); } } } else if (mode == 2) { if (CheckFrom()) { SVTH: Nguyễn Thị Lan Phương Khóa luận tốt nghiệp BenhNhan benhNhan = new BenhNhan(this.benhNhan.IDBN, txtMaBN.Text, txtHoTen.Text, Convert.ToInt32(txtTuoi.Text), txtDiaChi.Text, txtDienThoai.Text); int i = busBN.UpdateBenhNhan(benhNhan); if (i > 0) { SystemLog systemLog = new SystemLog(SellMedicine.IDUser, DateTime.Now.ToString(), "Sửa thông tin bệnh nhân"); busUser.SetSystemLog(systemLog); MessageBox.Show(this, "Sửa thông tin bệnh nhân thành công!", "Thông báo"); dgBN(benhNhan,index); this.Close(); } } } } private void btnDong_Click(object sender, EventArgs e) { this.Close(); } public int GetNumber(string str) { if (str.IndexOf("_") != -1) { str = str.Substring(str.IndexOf("_") + 1); } if (str.IndexOf("_") != -1) { str = str.Substring(0, str.IndexOf("_")); } int num = Convert.ToInt32(str); return num; } public void TaoMa(int num) { if (mode == 1) { num += 1; } string str; if(num>9) str= "BN_" + num; else str = "BN_" + "0"+ num; txtMaBN.Text = str; } SVTH: Nguyễn Thị Lan Phương Khóa luận tốt nghiệp private void txtMaBN_KeyUp(object sender, KeyEventArgs e) { if (mode == 1) { int i = GetNumber(this._lastMaBN); TaoMa(i); } else if (mode == 2) { int i = GetNumber(this.benhNhan.MaBN); TaoMa(i); } } SVTH: Nguyễn Thị Lan Phương