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

Một phần của tài liệu ĐỒ ÁN:Ứng dụng việc quản lý bằng tin học vo trong việc quản lý Bệnh pot (Trang 68 - 86)

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

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ì dng 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 Connectionnào được sử dụng trong đối tượng Command.

CommandText: Chỉ định câu lệnh cần thực hiện trên cơ sở dữ liệu.

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

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: Xoá 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.

RecordCount: Trả về tổng số record 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 xoá 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 ln 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

Set mItem = listItem.ListItems.Add(, , rs!MaTinh) 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

--- Xoá khám bệnh úng với bệnh nhân thuộc tỉnh 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

(Select MaHuyen From tblHuyen

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.

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 ny được gọi đầu tiên, từ form này ta có thể thực hiện chương trình từ cc form khc như: Tập tin, Nhập dữ liệu, nhn vin, bệnh nhn, thống k, tìm kiếm, bo biểu.

 Taị giao diện chính của chương trình khi nhấn chuột vo 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 xoá 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 ny thì nhấn nt bỏ qua. Tương tự khi ta xoá, sửa ta cũng thực hiện như vậy.

 Form X: Thực hiện bằng cch nhấn vo đị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, xoá bỏ hay sửa thông tin về x khi một x tch ra hay thơng tin về x bị thay đổi và xoá 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 cch nhấn nt sửa, huỷ bỏ cơng việc bằng cch nhấn nt bỏ qua, hoà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 cch nhấn nt 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 tc.

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, hoà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, hoà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ề nhn vin khi nhn vin khơng cịn cơng tc tại bệnh viện, bằng cch nhấn nt 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, xoá bỏ bệnh nhân khi bệnh nhân không cịn diều trị trong khoảng thời gian di.

Ngồi ra cịn một số form khác và thông tin khác như tìm kiếm bệnh nhn, tìm kiếm nhn vin, bo biểu, bo co thống k bệnh, danh sch bệnh nhn, danh sch 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ũ bo, việc tin học hố việc quản lý hnh chính l vơ cng quan trọng v bức thiết. Nĩ sẽ gip cho cc 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 Hoà, tuy chương trình ci đặt chưa được hoàn thiện các chức năng, song nếu có thời gian phát triển và hoàn thiện hơn thì chương trình ny 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 nhn tại bệnh viện một cch thuận tiện v dễ dng 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ể trnh đượ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 hoà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 nn 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 di v quản lý của

Một phần của tài liệu ĐỒ ÁN:Ứng dụng việc quản lý bằng tin học vo trong việc quản lý Bệnh pot (Trang 68 - 86)