Các phương thức đối tượng

Một phần của tài liệu Quản lý bệnh nhân bệnh viện đa khoa tỉnh Khánh Hòa (Trang 68)

Open method :

Được sử dụng để mở một liên kết với database. Ngay sau khi tạo instance cho Connection Object, ta cĩ thể mở một kết nối với Data Soure để truy xuất dữ

liệu.

Execute method:

Cho phép thực thi một câu lệnh tác động lên Data Soure.

Trong đĩ CommandText là chuỗi lệnh cần thực hiện, thơng quá số option các giá trị khác nhau quy định loại CommandText.

Giá trị Danh hiệu hằng tương

ứng Loại của CommandText

0 adCmdUnknown Mặc định khi định nghĩa 1 adCmdText Là một câu lệnh, ví dụ như

là SQL

2 adCmdTable Tên của table mà ta sẽ tạo Recordset từđĩ 3 adCmdStoreProc Một Store procedure trong

Data soure

Thơng thường các giá trị trên được gán sẵn vào các danh hiệu hằng và được

đặt trong file include cĩ tên adovbs.inc.

Trong chương trình chúng tôi sử dụng giá trị mặc định tức giá trị là:

adCmdUnknown

- Close method: Phương thức này dùng để đóng các kết nối được chỉ ra sau câu lênh. Ta cũng có thể set biến đối tượng này về Nothing

Ngoài ra Visual Basic còn cung cấp một dich vụ kết nối dữ liệu bằng Data Environment rất tiện lợi đây cũng là một dạng kết nối ADO rất dễ sử dụng cũng như tạo kết nối tất cả đều được thức hiện qua giao diện đồ hoạ. Trong Data Environment có thể lưu trữ các bảng (Table), các Stored Procedure cũng như các hàm hay các View khác.

Command object:

Thay vì dùng phương thức Execute của Connection để query hay update data soure, ta cĩ thể sử dụng Command.

Methods

CreateParameter: Dùng để tạo một đối tượng Parameter

Execute: Dùng để thực thi câu lệnh được đặc tả trong phương thức CommandText.

Properties

ActiveConnection: Chỉ định đối tượng Connection nào được sử dụng trong

đối tượng Command.

CommandTimeout: Xác định thời gian thực thi lệnh, giá trị thời gian này tính theo second.

CommandType: Cho biết kiểu của query đặc tả trong CommandText

Prepared: Tạo ra lệnh chuẩn bị trước khi thực thi.

Recordset Oject:

Là kết quả trả về khi thực hiện một query, thực chất nĩ là một bảng trong bộ

nhớ, ta cĩ thể truy xuất các record của nĩ qua các phương thức và thuộc tính.

Methods:

Open: Mở recordset mới

Addnew:Tạo một record trong Recordset.

Update:Cập nhật các thay đổi vào record hiện hành.

Delete: Xố record hiện hành.

Move: Dịch chuyển con trỏ record hiện hành.

MoveFirst:Đến record đầu tiên.

MoveNext:Đến record kế tiếp.

MovePrevious: Trở về record trước đĩ.

MoveLast: Đến record cuối cùng.

Requery: Thực thi lại query tạo ra recordset.

GetRow: Chứa các record vào một query.

Close:Đĩng lại đối tượng Recordset.

Properties:

AbsolutePosition: Số thứ tự (vật lý) của record hiện tại.

BOF: Là True nếu con trỏ nằm trước record đầu tiên.

EOF: Là True nếu con trỏ nằm sau record cuối cùng.

CursorType: Kiểu của con trỏđược sử dụng trong recordset.

Tạo Recordset:Trước tiên ta instace cho record bằng phát biểu Recordset_name = Server.CreataObject(“ADODB.Recordset”)

Sau đĩ dùng phương thức Execute của đối tượng Connection hay Command

để tạo ra recordset.

Recordset_name = ConnectionObject.Execute (CommandText,_ Recordaffected, Options)

Trong đĩ:

Soure: Là một CommandObject hay một lệnh SQL hoặc là Store Procedure.

ActiveConnection: Là tên của Connection đã được mở kết nối với database.

CursorType: Là kiểu con trỏ sử dụng với recordset, thơng số này cĩ kiểu số và được gán trị qua các tên hằng tương ứng như sau:

AdOpen ForwardOnly = 0: Là giá trị mặc định, chỉ cho phép duyệt các record theo một chiều từđầu đến cuối, khơng cho phép cập nhật hay xố bỏ các record trong đĩ.

AdOpenKeyset = 1: Chế độ này cho phép cập nhật các record, nhưng cấm truy xuất đến record của user khác thêm vào record.

AdOpenDynamic = 2 : Chế độ này cho phép tất cả các thao tác trên như: thêm vào, loại bỏ, cập nhật và duyệt theo tất cả chiều lên xuống tuỳ ý.

AdOpenStatic = 3: Gần giống như chếđộ OpenForwardOnly.

III. MỘT SỐ ĐOẠN CHƯƠNG TRÌNH TRONG BÀI SỬ DỤNG CÁC PHƯƠNG THỨC TRÊN.

Để hiển thị dư liệu đã có trên table ta có đoạn mã lệnh sau:

Private Sub Display_Listview() Dim rs As New ADODB.Recordset Dim Str

Dim mItem As listItem listItem.ListItems.Clear

Str = "select * from tblTinh order by Matinh asc"

Set rs = cn.Execute(Str) 'Thuc Hien Mot Lenh SQL duoc chi ra boi str If rs.EOF = False Then

While Not rs.EOF

mItem.SubItems(1) = rs!TenTinh rs.MoveNext

Wend End If End Sub

Ơû đây ListItem là đối tượng Listview có chức năng hiển thị dữ liệu, trong đoạn chương trình trên ta sử dụng phương thức (Set rs = cn.Execute(Str)) để thực hiện một câu truy vấn (Câu truy vấn trả về một Record là thông tin của table tỉnh)kết quả trả về từ câu truy vấn này được gán cho rs và được hiển thị trên Listview.

Để thêm mới một tỉnh (thành) ta có mã lệnh sau

DE.Sp_NhapTinh MaTinh, TenTinh

Trong đó DE là đối tượng Data Environment mà ta đã nói ở trên còn SP_NhapTinh là các hàm (hay các Stored Procedure) đã được viết và lưu trong cơ sở dữ liệu, câu lệnh truy vấn tạo mới một tỉnh như sau:

Create proc Sp_NhapTinh

@MaTinh nchar(3), -- MaTinh và TenTinh là các tham số dầu vào của @TenTinh char(30) -- Stored Procedure

AS

Insert Into tblTINH ( MaTinh, TenTinh ) Values ( @MaTinh,@TenTinh ) GO

Tương tự với phương Stored Procedure sửa tên tỉnh

Với việc xoá một tỉnh có khác chút ít việc xoá một tỉnh có liên quan đến các ràng buộc toàn vẹn. Việc xoá một tỉnh không chỉ xóa đi tỉnh đó, việc này phải đi kém với việc xoá tất cả các huyện cũng như các xa thuộc tỉnh ngoài ra ta còn phải xoá tất các các bệnh nhân và nhân viên (cùng giấy tờ kèm theo) thuộc tỉnh cần xoá. Mã lệnh có dạng như sau:

--- Thủ tục dùng để xoá một tỉnh --- CREATE PROCEDURE Sp_XoaTinh

@Matinh nchar(3), ‘Tham số đầu vào của Stored Procedure @TenTinh char(30)

AS

DELETE From tblKhamBenh

Where tblKhamBenh.MaBenhNhan in ( Select MaBenhNhan

From TblBenhNhan

Where tblBenhNhan.maXa in (Select MaXa From tblXa Where tblXa.MaHuyen in

(Select MaHuyen From tblHuyen Where tblHuyen.MaTinh=@MaTinh))) --- Xoá khám bệnh úng với nhân viên thuộc tỉnh

DELETE From tblkhamBenh

Where tblKhamBenh.MaNhanVien in ( Select MaNhanVien

From TblNhanVien

Where tblNhanVien.maXa in (Select MaXa From tblXa Where tblXa.MaHuyen in

(Select MaHuyen From tblHuyen Where tblHuyen.MaTinh=@MaTinh))) ---- Xóa dùng thuốc ứng với đơn thuốc của bệnh nhân DELETE From tblDungThuoc

Where tblDungThuoc.MaDonThuoc in (Select MaDonThuoc From tblDonThuoc Where tblDonThuoc.MaBenhNhan in (Select MaBenhNhan From tblBenhNhan Where tblBenhNhan.maXa in (Select MaXa From tblXa Where tblXa.MaHuyen in

(Select MaHuyen From tblHuyen

Where tblHuyen.MaTinh=@MaTinh)))) -- Xoá đơn thuốc của bệnh nhân thuộc tỉnh

DELETE From tblDonThuoc

Where tblDonThuoc.MaBenhNhan in (Select MabenhNhan

From tblBenhNhan

Where tblBenhNhan.maXa in (Select MaXa From tblXa Where tblXa.MaHuyen in

Where tblHuyen.MaTinh=@MaTinh))) --- Xoá tạm ứng của bệnh nhân thuộc tỉnh

DELETE From tblTamUng

Where tblTamUng.MaBenhNhan in ( Select MaBenhNhan

From TblBenhNhan

Where tblBenhNhan.maXa in (Select MaXa From tblXa Where tblXa.MaHuyen in

(Select MaHuyen From tblHuyen Where tblHuyen.MaTinh=@MaTinh))) --- Xoá bệnh án của bệnh nhân

DELETE From tblBenhAn

Where tblBenhAn.MaBenhNhan in ( Select MaBenhNhan From TblBenhNhan

Where tblBenhNhan.maXa in (Select MaXa From tblXa Where tblXa.MaHuyen in

(Select MaHuyen From tblHuyen Where tblHuyen.MaTinh=@MaTinh))) ---Xoá các bệnh nhân thuộc tỉnh --- DELETE From tblBenhNhan

Where tblBenhNhan.maXa in (Select MaXa From tblXa Where tblXa.MaHuyen in

(Select MaHuyen From tblHuyen Where tblHuyen.MaTinh=@MaTinh)) --- Xoá dùng thuốc mà nhân viên thuộc tỉnh lập DELETE From tblDungThuoc

Where tblDungThuoc.MaDonThuoc in (Select MaDonThuoc From tblDonThuoc Where tblDonThuoc.MaNhanVien in (Select MaNhanVien From tblNhanVien Where tblNhanVien.maXa in (Select MaXa From tblXa Where tblXa.MaHuyen in

(Select MaHuyen From tblHuyen

Where tblHuyen.MaTinh=@MaTinh)))) --- Xoá đơn thuốc mà nhân viên lập

DELETE From tblDonThuoc

Where tblDonThuoc.MaNhanVien in (Select MaNhanVien

From tblNhanVien

Where tblNhanVien.maXa in (Select MaXa From tblXa Where tblXa.MaHuyen in

(Select MaHuyen From tblHuyen

Where tblHuyen.MaTinh=@MaTinh))) --- Xoá bệnh án mà nhân viên lập

DELETE From tblBenhAn

Where tblBenhAn.MaNhanVien in ( Select MaNhanVien From TblNhanVien

Where tblNhanVien.maXa in (Select MaXa From tblXa Where tblXa.MaHuyen in

(Select MaHuyen From tblHuyen

Where tblHuyen.MaTinh=@MaTinh)) ) ---Xoá tất cả nhân viên thuộc tỉnh---

DELETE From tblNhanVien Where tblNhanVien.maXa in

(Select MaXa From tblXa Where tblXa.MaHuyen in

(Select MaHuyen From tblHuyen Where tblHuyen.MaTinh=@MaTinh)) --- Xoá tất cả các xã thuộc tỉnh--- DELETE From tblXa

Where tblXa.MaHuyen in

(Select MaHuyen From tblHuyen Where tblHuyen.MaTinh = @Matinh) ---Xoá tất cả các huyện thuộc tỉnh--- DELETE From tblHuyen

Where tblHuyen.Matinh = @Matinh --- Xoá tỉnh có mã tỉnh được chỉ ra--

DELETE From tblTinh Where MaTinh=@Matinh GO

Đối với các thủ tục xoá một huyện cũng nhaư một xã ta cũng phải đi xó tất cả các bệnh nhân và nhân viên trực thuộc địa danh đó.

Trong qúa trình trình bày dữ liệu chúng tôi đã sử dụng một số View để kết nối bảng ví dụ với View địa chỉ như sau:

CREATE VIEW dbo.vwDiaChi AS

SELECT dbo.tblTINH.TenTinh, dbo.tblHUYEN.TenHuyen, dbo.tblXA.TenXa, dbo.tblXA.Maxa FROM dbo.tblHUYEN INNER JOIN

dbo.tblTINH ON dbo.tblHUYEN.MaTinh = dbo.tblTINH.MaTinh INNER JOIN

dbo.tblXA ON dbo.tblHUYEN.MaHuyen = dbo.tblXA.MaHuyen

Để tìm kiếm một bệnh nhân chúng tôi sử dụng một hàm tìm kiếm hàm này trả về một table các tiêu chí tìm kiếm được chỉ ra bằng các tham số đầu vào của hàm. Ví dụ về một hàm tìm kiếm bệnh nhân theo họ và tên đầy đủ trong chương trình.

CREATE FUNCTION udf_TimBenhNhanTheoHoTen (@HoBenhNhan Char(20), @TenBenhNhan char(20)) RETURNS Table --- AS --- Return Select * From tblBenhNhan

Where (tblBenhNhan.HoBenhNhan= @HoBenhNhan) and (tblBenhNhan.TenBenhNhan= @TenBenhNhan) GO

---

Trọng đoạn chương trình trên việc tìm một bệnh nhân là khá đơn giản. Giả sử ta nhớ đầy đủ họ và tên đầy đủ của bệnh nhân ta có thể tìm theo phương pháp trên. Song nếu chỉ nhớ được họ hoặc tên của bệnh nhân thi ta cũng có thể tìm được bệnh nhân bằng các hàm tìm theo họ, theo tên bệnh nhân, trong chương

trình còn sử dụng một số hàm khác mà chúng tôi không tiện trình bày trong báo cáo này.

Thoạt tiên ta có cảm giác một hàm (Function) hơi giống với một View song với View thì không có dữ liệu đầu vào còn với hàm thì ngược lại. Rõ ràng để truy xuất dữ liệu với hàm là linh hoạt hơn với View rất nhiều.

CHƯƠNG IV

GIỚI THIỆU MỘT SỐ FORM CHÍNH KHI CHẠY CHƯƠNG TRÌNH

Dưới đây là form chính của chương trình, khi chạy chương trình thì form này được gọi đầu tiên, từ form này ta cĩ thể thực hiện chương trình từ các form khác như: Tập tin, Nhập dữ liệu, nhân viên, bệnh nhân, thống kê, tìm kiếm, báo biểu.

Taị giao diện chính của chương trình khi nhấn chuột vào nhập liệu, từđây chon thơng tin cần đăng nhập như: Vị trí khám bệnh, nơi diều trị, bệnh, thuốc.

Tại đây sẽ thêm mới vị trí khám bệnh khi cĩ vị trí khám bệnh mới được thành lập, hay sửa vị trí khám bệnh khi vị trí khám bệnh thay đổi hoặc xố vị trí khám bệnh khi vị trí khám bệnh khơng cịn.

Thêm mới bằng nút mới, khi khơng muốn thực hiện cơng việc này thì nhấn nút bỏ qua. Tương tự khi ta xố, sửa ta cũng thực hiện như vậy.

Form Xã: Thực hiện bằng cách nhấn vào địa chỉ. Tại đây chọn đăng nhập thơng tin cho tỉnh, huyện hay xã.

Tại đây thêm mới, xố bỏ hay sửa thơng tin về xã khi một xã tách ra hay thơng tin về xã bị thay đổi và xố bỏ khi xã đĩ khơng cịn tồn tại.

Thêm mới bằng cách nhấn nút mới, huỷ bỏ cơng việc bằng cách nhấn nút bỏ

qua.

Thay đổi thơng tin về xã bằng cách nhấn nút sửa, huỷ bỏ cơng việc bằng cách nhấn nút bỏ qua, hồn thành cơng việc bằng cách nhấn nút lưu.

Xố thơng tin về xã bằng cách nhấn nút xố.

Form hồ sơ nhân viên: Khi nhấn nhân viên trên form chính. tại đây chọn một số thơng tin cần đăng nhập như: Form hồ sơ nhân viên, quá trình cơng tác.

Tại đây thêm mới hồ sơ nhân viên khi cĩ nhân viên tới cơng tác tại bệnh viện, bằng cách nhấn nút mới, hồn thành cơng việc khi nhấn nút lưu, huỷ bỏ cơng việc khi nhấn nút bỏ qua.

Sửa hồ sơ về nhân viên khi thơng tin về nhân viên thay đổi, bằng cách nhấn nút sửa, hồn thành cơng việc nhấn nút lưu, huỷ bỏ cơng việc nhấn nút bỏ qua.

Xố bỏ thơng tin về nhân viên khi nhân viên khơng cịn cơng tác tại bệnh viện, bằng cách nhấn nút xố.

Form hồ sơ bệnh nhân: Khi nhấn bệnh nhân sẽ cĩ những thơng tin cần quan tâm như: Hồ sơ bệnh nhân, tạm ứng viện phí, bảo hiểm…

Tại form hồ sơ nhân viên, cĩ thể thêm mới khi cĩ bệnh nhân đến khám chữa bệnh, sửa đổi thơng tin về bệnh nhân, xố bỏ bệnh nhân khi bệnh nhân khơng cịn diều trị trong khoảng thời gian dài.

Ngồi ra cịn một số form khác và thơng tin khác như tìm kiếm bệnh nhân, tìm kiếm nhân viên, báo biểu, báo cáo thống kê bệnh, danh sách bệnh nhân, danh sách trưởng khoa….

CHƯƠNG V

KẾT LUẬN HƯỚNG PHÁT TRIỂN ĐỀ TÀI I. Kết luận:

Xây dựng hệ thống thông tin quản lý hiện nay không chỉ là việc lập trình đơn thuần, mà nó đòi hỏi một cách có hệ thống các giai đoạn khảo sát, phân tích thiết kế. Việc xây dựng hệ thống quản lý phải đáp ứng tất cả các vấn đề đặt ra từ khâu dặt vấn đề, giải quết bài toán, thiết kế bài toán cho đến việc đóng gói sản phẩm đưa ra thử nghiệm là một vấn đề đòi hỏi nhiều thời gian và công sức.

Đứng trước xu hướng phát triển của cơng nghệ thơng tin như vũ bão, việc tin học hố việc quản lý hành chính là vơ cùng quan trọng và bức thiết. Nĩ sẽ giúp cho các cơ quan nhà nước giải quyết các cơng việc được nhanh chĩng và hiệu quả. Ứng dụng cơ sở dữ liệu đã giải quyết được vấn đềđĩ.

Với đề tài Quản lý bệnh nhân tại bệnh viện đa khoa tỉnh Khánh Hồ, tuy chương trình cài đặt chưa được hồn thiện các chức năng, song nếu cĩ thời gian phát triển và hồn thiện hơn thì chương trình này sẽ cĩ ích rất nhiều giúp cho các nhân viên của bệnh viện trong cơng việc lưu trữ và thống kê bệnh nhân và nhân viên cũng như quản lý bệnh nhân tại bệnh viện một cách thuận tiện và dễ dàng hơn rất nhiều.

II. Hạn chế:

Do thời gian thực hiện đề tài tương đối hạn chế, kinh nghiệm chưa nhiều

nên chương trình khơng thể tránh được những thiếu sĩt nhất định. Bên cạnh đĩ chưong trình cị cĩ một số chức năng không cĩ đủ thời gian để thực hiện kịp. Đồng thời vẫn cịn cĩ một số form chưa hồn thành đầy đủ và chính xác và các ràng buộc về dữ liệu vẫn chưa đầy đủ lắm. Hơn nữa trong quá trình vừa viết chương trình vừa tìm hiểu về ngơn ngữ SQL Server nên chưa thể tránh khỏi những thiếu sĩt.

III. Hướng phát triển đề tài:

Chương trình quản lý bệnh nhân hoàn thành sẽ góp phần quan trọng trong việc quản lý cjứng từ sổ sách về bệnh nhân tại bệnh viện.

Để chương trình cĩ thể hoạt động hiệu quả hơn cần dữ liệu phải được lưu trữ

bằng hệ quản trị cơ sở dữ liệu cĩ tính bảo mật hơn. Cần cĩ sự kết hợp song song giữa quản lý nhân viên và bệnh nhân một cách chặt chẽ hơn để việc theo dõi và quản lý của bệnh viện được tốt hơn.

Một phần của tài liệu Quản lý bệnh nhân bệnh viện đa khoa tỉnh Khánh Hòa (Trang 68)