Tài liệu tham khảo công nghệ thông tin Phân tích thiết kế hệ thống thông tin quản lý bệnh nhân tại bệnh viện đa khoa
Trang 1Lời nói đầu
Ngày này cùng với sự phát triển vợt bậc của khoa học kỹ thuật thì côngnghệ thông tin là một trong những lĩnh vực có nhiều đóng góp thiết thực nhất,công nghệ thông tin có mặt trong hầu hết các lĩnh vực của cuộc sống đặc biệtcông nghệ thông tin là một công cụ hỗ trợ rất đắc lực trong công tác quản lý.Chúng ta dễ dàng thấy đợc việc đa tin học vào trong quản lý kinh doanh là mộttrong những ứng dụng quan trọng trong rất nhiều ứng dụng cơ sở dữ liệu Nhờvào công tác tin học hóa mà công việc quản lý và điều hành doanh nghiệp tỏ rarất nhanh chóng và hiệu quả Chính vì lẽ đó mà cơ sở dữ liệu nh là một giảipháp hữu hiệu nhất cho các doanh nghiệp có thể tồn tại và phát triển một cáchnhanh chóng.
Bệnh viện đa khoa tỉnh Khánh Hòa là một trong những trung tâm khámchữa bệnh lớn nhất tỉnh Khánh Hòa Do đó nhu cầu ứng dụng cơ sở dữ liệutrong việc quản lý bệnh nhân là hết sức thiết thực Vì vậy em chọn đề tài phântích và thiết kế hệ thống thông tin quản lý bệnh nhân tại bệnh viện đa khoa tỉnhKhánh Hòa làm đề tài thực tập tốt nghiệp
Hệ thống đợc phân tích và thiết kế theo phơng pháp có cấu trúc và đợc càiđặt trên môi trờng Visual Basic 6.0 và đợc thiết kế dữ liệu dựa trên ngôn ngữSQL Server 2000, các chơng tiếp theo sẽ nói rõ hơn về vấn đề này
Mặc dù có nhiều cố gắng nhng vốn kiến thức cha sâu nên không thể tránhkhỏi những thiếu sót Rất mong đợc sự góp ý của quý thầy cô,anh chị cùngcác bạn để báo cáo đợc hoàn thiện hơn.
Tôi xin chân thành cảm ơn phòng Kế Hoạch Tổng Hợp bệnh viện đa khoatỉnh Khánh Hòa, quý thầy cô và các bạn đã tận tình giúp đỡ tôi hoàn thành báocáo này đặc biệt là cô Nguyễn Kim Anh ngời trực tiếp hớng dẫn em trong suốtthời gian thực tập vừa qua.
Sinh viên thực hiện:Bùi Văn Mừng
Chơng I: Giới Thiệu Nội Dung Đề Tài
I Giới thiệu hệ thống
1 Nhiệm vụ của hệ thống quản lý bệnh viện
Hệ thống quản lý bệnh nhân là một hệ thống giúp cho chúng ta quản lýbệnh nhân đã và đang điều trị tại bệnh viện, cũng nh trong quá trình khámchữa bệnh của bệnh nhân tại bệnh viện Quản lý việc thanh toán tạm ứng củabệnh nhân với bệnh viện cũng nh của bệnh viện với bảo hiểm y tế, quản lý l-
Trang 2ợng bệnh nhân đến điều trị tại bệnh viện trong những khoảng thời gian xácđịnh Đồng thời chúng ta đi thống kê số lợng Bệnh nhân mắc phải một số cănbệnh nào đó trong một thời gian trong năm để đa ra phơng pháp điều trị và đềphòng Đồng thời chúng ta còn thống kê đợc một số căn bệnh mà Bộ Y Tế vànhà nớc quan tâm.
2 Tổ chức của bệnh viện đa khoa tỉnh Khánh Hòa
a Quản lý một số thông tin về nhân viên làm việc tại bệnh viện
- Quản lý họ tên của nhân viên (chủ yếu là Y, Bác sĩ).- Quản lý địa chỉ của nhân viên
- Quản lý số điện thoại của nhân viên (nếu có).
- Và quản lý một số thông tin khác của nhân viên để phục vụ choviệc quản lý bệnh nhân cũng nh quá trình khám chữa bệnh của bệnhnhân trong bệnh viện đợc dễ dàng hơn nh: khoa, chuyên môn, chức vụ.
b Quản lý dữ liệu về bệnh nhân điều trị tại bệnh viện
Khi một bệnh nhân đến bệnh viện để khám chữa bệnh ta cần lu trữnhững thông tin sau:
- Quản lý họ tên bệnh nhân (họ và tên bệnh nhân quản lý riêng) - Quản lý địa chỉ bệnh nhân(quản lý địa chỉ tới mức xã).
- Quản lý bảo hiểm y tế của bệnh nhân (nếu bệnh nhân có thẻ bảohiểm y tế thì quản lý số thẻ bảo hiểm y tế và nếu bệnh nhân đó đanglàm việc tại một cơ quan nào đó thì Quản lý thêm cơ quan mà bệnhnhân đó đang làm việc)
- Trong quá trình khám chữa bệnh tại bệnh viện bệnh nhân có yêucầu dùng thêm một số dịch vụ, chúng ta quản lý thêm trong quá trình đóbệnh nhân đã dùng những dịch vụ nào.
- Quản lý hồ sơ chứng từ về các khoản tiền mà bệnh nhân phải đóngcho bệnh viện cũng nh đã đóng cho bệnh viện (Tạm ứng).
c Quản lý quá trình khám chữa bệnh của bệnh nhân tại bệnh viện
- Bệnh nhân đến nơi tiếp nhận bệnh nhân (phòng cấp số) để đăng kýkhám chữa bệnh và đợc chỉ định một vị trí khám bệnh.
+ Nếu bệnh nhân phải nhập viện thì bác sĩ cho một giấy nhậpviện, trên đó ghi đầy đủ thông tin về bệnh nhân và căn bệnh dự đoánsau đó bệnh nhân đợc đa đến khoa điều trị.
- Tại khoa điều trị bệnh nhân đợc bác sĩ khám lại và cho một đơnthuốc trên đơn thuốc có ghi đầy đủ tên thuốc số lợng và cách dùng.Theo định kỳ bác sĩ sẽ khám bệnh lại cho bệnh nhân (tùy theo từng loạibệnh nhân) Trong quá trình điều trị tại bệnh viện bác sĩ sẽ lập một bệnhán của bệnh nhân trong đó ghi đầy đủ thông tin về bệnh nhân, căn bệnhmà bệnh nhân mắc phải cũng nh diễn biến quá trình điều trị tại bệnhviện.
- Trong quá trình điều trị bệnh nhân có thể yêu cầu dùng thêm mộtsố dịch vụ nh: X_quang, Siêu âm việc sử dụng này cũng theo sự chỉđịnh của bác sĩ, mỗi loại dịch vụ có một giá riêng.
- Trong quá trình điều trị tại bệnh viện cứ ba ngày bệnh viện yêucầu bệnh nhân đóng tạm ứng viện phí một lần Nếu bệnh nhân có thẻ
Trang 3bảo hiểm y tế thì bệnh nhân chỉ phải đóng phần trăm viện phí theo quyđịnh của bảo hiểm y tế Trong quá trình điều trị nếu bệnh nhân khôngthanh toán viện phí mà tự ý xuất viện thì bệnh viện sẽ lu lại toàn bộthông tin về bệnh nhân đó
- Đối với bệnh nhân có thẻ bảo hiểm y tế thì vẫn phải nộp một phầnviện phí theo phần trăm ghi trên bảo hiểm.
- Theo chu kỳ hàng tháng bệnh viện thanh toán viện phí của bệnhnhân có bảo hiểm y tế với bảo hiểm y tế.
3 Những yêu cầu cần giải quyết
- Bệnh nhân có những yêu cầu sau:
+ Tổng chi phí trong thời gian điều trị tại bệnh viện.+ Tổng số tiền đã đóng
+ Tổng số tiền mà bệnh nhân phải đóng.+ Cần biết chi tiết các khoản phải đóng.- Các bác sĩ cần biết những thông tin sau:
+ Cần biết rõ diễn biến bệnh của bệnh nhân mà mình đang điều trị.
+ Cần tìm kiếm một số trờng hợp tơng tự để tìm lấy một số giải pháp chữatrị hữu hiệu nhất.
+ Cần thống kê bệnh nhân theo từng mùa hoặc theo từng bệnh để đa ra mộtsố phơng án hoạt động dự phòng một số bệnh theo từng mùa hoặc theotừng khu vực
- Ngời nhà bệnh nhân cần biết
+ Biết đợc diễn biến chính xác bệnh của ngời nhà mình (có một số trờnghợp bác sĩ không thể nói trực tiếp với bệnh nhân đợc nên phải nói với ngờinhà bệnh nhân)
+ Có thể biết quá trình điều trị của ngời nhà mình cũng nh biết rõ đợc ngờinhà mình đang đợc điều trị nh thế nào.
- Đối với nhân viên tài chính của bệnh viện
+ Tổng số tiền tạm ứng mà bệnh nhân đã đóng và cha đóng (còn lại là baonhiêu).
+ Tổng số bệnh nhân điều trị trong tháng có bảo hiểm y tế, và tổng chi phícủa những bệnh nhân này để thanh toán với bảo hiểm y tế.
4 Hớng phát triển của hệ thống quản lý bệnh nhân hiện nay.
Ngày nay với sự ra đời và phát triển nhanh chóng của máy tính đã làm thayđổi phong cách làm việc của hầu hết các cơ quan t nhân cũng nh nhà nớc Trớckia mọi thủ tục cũng nh việc lu trữ đều dựa trên giấy tờ do đó rất khó khăntrong việc tìm kiếm một hồ sơ về một ngời, cũng nh tìm kiếm một vấn đề nàođó trong rất nhiều hồ sơ lu trữ, cha kể đến việc thống kê theo một tiêu chí nàođó Ngày nay với sự trợ giúp của máy tính chúng ta có thể thực hiện các côngviệc đó một cách dễ dàng, nhanh chóng và chính xác Với hệ thống quản Lýbệnh nhân chúng ta có thể thực hiện việc tìm kiếm một bệnh nhân, cũng nhviệc thống kê bệnh nhân theo những tiêu chí mà ban lãnh đạo bệnh viện đa ramột cách nhanh chóng và hiệu quả
II.Hớng thực thi đề tài
- Đối tợng sử dụng: Đối tơng sử dụng hệ thống chủ yếu la nhân viên trongbệnh viện (chủ yếu là những ngời dùng chuyên nghiệp, có những hiểu biếtnhất định về chuyên môn cũng nh tin học) nên việc thiết kế một hệ thốngsử dụng chuyên nghiệp là việc cần thiết
- Vấn đề phân tích bài toán: Trong đề tài này em phân tích theo phơng phápcó cấu trúc, vì các lẽ nh sau:
Trang 4+ Phơng pháp có cấu trúc, trải qua thời gian đã chứng tỏ đợc tính kinh điểncủa nó.
+ Phơng pháp có cấu trúc là phơng pháp dung dị, không cầu kỳ nh một sốphơng pháp khác, dễ áp dụng, nhng lại rất hữu hiệu Ngày nay nó cha lạchậu mà vẫn còn phát huy tác dụng.
- Vấn đề lựa chọn ngôn ngữ cũng là một vấn đề hết sức quan trọng Hiện naycó rất nhiều hệ quản trị cơ sở dữ liệu nh Oracle, Access, Fospro, SQLServer, Song để phù hợp với cách quản lý tại bệnh viện hiện nay và đểcho hệ thống phát triển sau này (có thể đa lên mạng Internet cũng nh mạngliên bệnh viện ) Em đã lựa chọn ngôn ngữ SQL Server 2000 làm ngônngữ thiết kế dữ liệu và ngôn ngữ Visual Basic 6.0 làm ngôn ngữ thiết kếgiao diện Đặc điểm về hai ngôn ngữ này sẽ đợc trình bày kỹ ở chơng giớithiệu ngôn ngữ (các chơng tiếp theo) Tuy nhiên trong đề tài này em cài đặthệ thông trên máy đơn.
Chơng II Giới thiệu ngôn ngữ càiđặt hệ thống
I Giới thiệu chung về hệ quản trị cơ sở dữ liệu và SQLServer 2000
I.1 Hệ quản trị cơ sở dữ liệu là gì?
Một hệ quản trị cơ sở dữ liệu là một hệ thống các chơng trình hỗ trợ các tácvụ quản lý, khai thác dữ liệu theo mô hình cơ sở dữ liệu quan hệ.
SQL Server là một hệ thống quản Lý cơ sở dữ liệu quan hệ (RDBMS) haycòn đợc gọi là Relation Database Management System Cơ sở dữ liệu quan hệlà cơ sở dữ liệu mà dữ liệu bên trong nó đợc tổ chức thành các bảng Các bảngđợc tổ chức bằng cách nhóm dữ liệu theo cùng chủ đề và có chứa các cột vàcác hàng thông tin Sau đó các bảng này lại liên hệ với nhau bởi DatabaseEngine khi có yêu cầu RDBMS là một trong những mô hình cơ sở dữ liệuthông dụng nhất hiện nay.
I.2 Giới thiệu chung về SQL Server 2000
SQL (Structured Query Language) là ngôn ngữ dùng để truy vấn cơ sở dữliệu, hay nói cách khác đây là ngôn ngữ truy vấn cho phép lấy thông tin về từcác bảng dữ liệu.
SQL Server 2000 tối u hơn nhiều so với cơ sở dữ liệu quan hệ Chúng pháttriển để sử dụng trên nhiều ấn bản nh: CE, Personal, Desktop Engine, StandardDeveloper, Enterprise.
SQL Server 2000 hỗ trợ kiểm tra khóa chính, phụ thuộc tồn tại, miền giá trị, của dữ liệu bên trong các bảng một cách chặt chẽ.
… của dữ liệu bên trong các bảng một cách chặt chẽ.
SQL Server 2000 hỗ trợ khá mạnh cho cơ sở dữ liệu đa truy cập, cơ sở dữliệu mạng,
Trang 5Desktop Engine bạn sẽ thấy các dịch vụtrong hệ thống nh: SQL Server Profiler, vàmột số công cụ khác.
PersonalStandardDeveloperEnterpriseFull – Text
Sarch Đây là phần tự chọn trong lúc cài đặt, nếubạn muốn chức năng tìm kiếm thì nên chọnhệ thống này vì chúng không là phần mặcnhiên.
Full – Text Sarck cung cấp chức năng tìmkiếm (Word) rất mạnh, nếu sử dụng Iternetđể tìm kiếm thì đây là một giải pháp tuyệtvời Nếu bạn muốn tìm kiếm một chuỗi controng một văn bản lớn thì đây là công cụthích hợp cho công việc đó.
English Query English Query cho phép ngời sử dụng khôngcó kỹ thuật về SQL cũng có thể sử dụng SQLServer, bằng cách đặt câu hỏi chuỗi Englishsau đó đợc dịch ra Query mà có thể thực thitrên SQL Server.
Services Phần này không bao gồm mặc định trongphần cài đặt, chúng là dạng sản phẩm tựchọn, là công cụ phân tích OLAP (OnlineAnalysis Processing), sử dụng cho cơ sở dữliệu lớn.
PersonalStandardDeveloperEnterpriseReplication Chức năng này cho phép tái tạo một bản sao
đến SQL Server khác, thông thờng dùng chứcnăng này cho các hệ thống Server từ xa haytrong Network, nhằm để làm giảm trao đổidữ liệu giữa các SQL Server với nhau.
Data Transformation Servise (DTS) đợc mởrộng trong phiên bản SQL Server 2000, baogồm những chức năng trao đổi dữ liệu giữacác cơ sở dữ liệu, và giao tiếp dữ liệu giữacác cơ sở dữ liệu khác nhau, đây là nhữnggiải pháp lập trình trên Visual Basic.
- Views: Khung nhìn (hay bảng ảo) số liệu dựa trên bảng.- Stored Procedure: Các thủ tục lu trữ và hàm nội.
- Users defined: Hàm do ngời dùng định nghĩa.- Users: Ngời sử dụng cơ sở dữ liệu.
- Rules: Những quy tắc.
- Defaults: Các giá trị mặc nhiên.
Trang 6- User - defined data type: Kiểu dữ liệu do ngời dùng định nghĩa.- Full - text catalogs: Tập phân loại dữ liệu text
2 Các đối tợng cơ sở dữ liệu
Cơ sở dữ liệu là đối tợng có ảnh hởng cao nhất khi bạn làm việc với SQLServer, tuy nhiên những đối tợng con của cơ sở dữ liệu mới là thành phần chínhcủa cơ sở dữ liệu.
Bản thân SQL Server là một hệ quản trị cơ sở dữ liệu, chúng bao gồm cácđối tợng nh database, table, view, procedure nêu trên cùng một số cơ sở dữ liệuhỗ trợ khác.
Cơ sở dữ liệu SQL Server là cơ sở dữ liệu đa ngời dùng, với mỗi Server bạnchỉ có một hệ quản trị cơ sở dữ liệu Nếu muốn có nhiều hệ quản trị cơ sở dữliệu bạn cần có nhiều Server tơng ứng.
Truy cập cơ sở dữ liệu SQL Server dựa vào những tài khoản ngời dùng riêngbiệt và ứng với quyền truy nhập nhất định Cài đặt cơ sở dữ liệu SQL Serverbạn có 6 cơ sở dữ liệu mặc định sau:
- Master: Bất kỳ SQL Server nào đều có cơ sở dữ liệu Master (còn gọi là
master file), cơ sở dữ liệu này chứa đựng tất cả các bảng dữ liệu đặc biệt (bảnghệ hệ thống), chúng kiểm soát tất cả hoạt động của hệ quản trị cơ sở dữ liệuSQL Server.
Ví dụ: Khi ngời dùng cơ sở dữ liệu mới trong SQL Server, thêm hoặcxóa một Procedure thì tất cả thông tin này đều đợc lu trữ trong cơ sở dữliệu Master của hệ thống.
- Model: Cơ sở dữ liệu này chứa đựng tất cả Template dùng làm mẫu để tạo
cơ sở dữ liệu mới Khi bạn tạo một cơ sở dữ liệu thì SQL Server lấy tất cả cácmẫu (bao gồm bảng, view, ) từ cơ sở dữ liệu model này.
Xuất phát từ tính chất cơ sở dữ liệu mẫu giúp SQL Server thựchiện việc tao mới cơ sở dữ liệu cho ngời dùng khi có yêu cầu, bạnkhông đợc xóa cơ sở dữ liệu này.
Khi một cơ sở dữ liệu đợc tạo ra thì ít nhất cơ sở dữ liệu mới nàycũng bằng và giống nh cơ sở dữ liệu model.
- Msdb: Nh đã nêu, chúng ta có hai cơ sở dữ liệu hệ thống master và model,
nếu xóa một trong hai cơ sở dữ liệu này thì hệ thống SQL Server sẽ bị lỗi, nhngvới cơ sở dữ liệu Msdb thì khác Msdb chính là SQL Agent lu trữ tất cả các tácvụ xảy ra trong SQL Server.
- Tempdb: Là một trong những cơ sở dữ liệu chính trong SQL Server Cơ sở
dữ liệu này cho phép ngời dùng tạo những ứng dụng tham khảo hay thực tập ớc khi bạn bắt đầu với cơ sở dữ liệu thực Ngoài ra chúng còn giúp thực hiệnnhững thao tác về cơ sở dữ liệu mỗi khi SQL Server khởi động.
tr Pubs: Chứa hầu hết nội dung về hớng dẫn, trợ giúp và sách tham khảo về
SQL Server.
- Northwind: Cũng giống nh cơ sở dữ liệu Pubs, đây là cơ sở dữ liệu mẫu
cho ngời dùng tham khảo, hoặc cho các lập trình viên Visual Basic hay Asscesdùng truy cập dữ liệu SQL Server Cơ sở dữ liệu này đợc cài đặt nh một phầncủa SQL Server, nếu cần dùng cấu trúc của hai cơ sở dữ liệu này bạn có thể sửdụng hai file kịch bản script mang tên inspub.sql và insnwnd.sql.
- Tập tin Log: Tập tin chứa đựng những hoạt động, hay tất cả những chuyển
tác của cơ sở dữ liệu theo thời gian Thông thờng khi cần tìm hiểu sự cố xảy ravới cơ sở dữ liệu, ngời ta chỉ cần tham khảo tập tin log sẽ biết đợc nguyênnhân.
3 Giới thiệu một số đối tợng cơ sở dữ liệu SQL Server- Bảng - Table
Trang 7Trong cơ sở dữ liệu, bảng (Table) là phần chính của chúng Do bảng là đối
tợng lu trữ dữ liệu thực, khi cần giao tiếp với cơ sở dữ liệu khác bảng là đối t ợng căn bản nhất trong bất kỳ cơ sở dữ liệu nào, chúng đợc coi nh một miền dữliệu.
-Mỗi bảng đợc định nghĩa nhiều trờng, mỗi trờng (Field còn gọi là Columnname) ứng với mỗi loại kiểu dữ liệu Dữ liệu nhập vào có thể chấp nhận hoặctừ chối tùy thuộc vào nguyên tắc ràng buộc dữ liệu hoặc loại dữ liệu tơng thíchdo hệ thống hay ngời dùng định nghĩa.
Khi định nghĩa bảng cơ sở dữ liệu bạn cần quan tâm đến các yếu tố sau:+ Key: Trờng đó là khóa hay không (Primary key)?
+ ID: Trờng đó có thuộc tính Indentity hay không?+ Column name: Tên của trờng (cột )
+ Data type: Loại dữ liệu cho trờng tơng ứng+ Size: Kích thớc trờng dữ liệu
+ Allow null: Cho phép giá trị rỗng lu trong trờng này hay không+ Default: Giá trị mặc nhiên cho trờng
+ Identity: Nếu ta sử dụng một trờng có giá trị tự động nh autonumbertrong assces, trờng này Not Null và Identity: Yes(No)
+ Identity Seed: Nếu trờng (cột) này là Identity, cần số bắt đầu là 1hoặc 2
+ Identity Increament: Số nhảy cho mỗi lần tăng
- Chỉ Mục - Indexs
Đối tợng chỉ mục (Indexs) chỉ tồn tại trong bảng hay khung nhìn (view).Chỉ mục có ảnh hởng đến tốc độ truy nhập số liệu, nhất là khi cần tìm kiếmthông tin trên bảng Chỉ mục giúp tăng tốc cho việc tìm kiếm.
+ Clustered: ứng với loại chỉ mục này có một bảng có thể có nhiều chỉ mụcvà số liệu đợc sắp xếp theo trờng dữ liệu mà bạn trỏ đến.
- Bẫy lỗi - Triggers
Là đối tợng chỉ tồn tại trong bảng, cụ thể là một đoạn mã và tự độngthực hiện khi một hành động nào đó xảy ra đối với dữ liệu trong bảng nhInsert, Update, Delete, Trigger có thể bẫy rất nhiều tình huống nh copy dữliệu, xóa dữ liệu, cập nhật dữ liệu, kiểm tra dữ liệu theo một tiêu chuẩn nàođó
- Lợc đồ quan hệ - Diagram
Khi xây dựng cơ sở dữ liệu cho ứng dụng hay thơng mại điện tử, thờngđều phải dựa trên trình phân tích và thiết kế hệ thống Sau những bớc phân tíchvà thiết kế, chúng ta sẽ thiết lập quan hệ dữ liệu giữa các thực thể ERD (Entityrelationship diagram).
- Khung nhìn - View
View là khung nhìn (hay bảng ảo) của bảng Cũng giống nh bảng nhngview không thể chứa dữ liệu, bản thân view có thể tạo nên trờng mới dựa vàonhững phép toán biểu thức của SQL Server.
- Thủ tục lu trữ - Stored Procedure
Stored Procedure còn gọi là Spocs, tiếp tục phát triển nh một phần SQLtrên cơ sở dữ liệu Stored Procedure cho phép khai báo biến, nhận tham sốcũng nh thực thi các phát biểu có điều khiển Stored Procedure có các u điểmlớn nh sau.
+ Kế thừa tất cả các phát biểu của SQL, và là một đối tợng xử lý số liệuhiệu quả nhất khi dùng SQL Server.
+ Tiết kiệm thời gian thực thi trên dữ liệu.
+ Có thể gọi Stored Procedure theo cách gọi thủ tục hay hàm trongngôn ngữ lập trình truyền thống, đồng thời sử dụng lại khi yêu cầu.
Trang 8- Sử dụng kiểu dữ liệu Cursor (Cursor type)
Khi dùng cơ sở dữ liệu SQL Server, nếu có nhu cầu tính toán trên bảngsố liệu, chuyển tác thực hiện trên từng mẩu tin, ta nên nghĩ đến kiểu dữ liệuCursor.
4 Kiểu dữ liệu - Data Type
Bất kỳ trờng nào trong bảng (Table) của cơ sở dữ liệu đều phải có kiểu dữliệu Một số kiểu dữ liệu SQL Server cho phép định nghĩa chiều dài của kiểutrong khi một số kiểu khác thì không.
Cũng nh những ngôn ngữ lập trình khác SQL Server cung cấp đầy đủ kiểudữ liệu cần thiết, nh: Kiểu số nguyên (Binary, Int, TinyInt, ), kiểu tiền tệ(Money, SmallMoney, ), kiểu chuỗi (Char, nchar, Varchar, Text, ) và nhiềukiểu dữ liệu khác.
Ngoài ra SQL Server cong cho phép chuyển đổi qua lại giữa các kiểu dữliệu, tuy nhiên điều này cũng có một số hạn chế đối với một số kiểu dữ liệu Vídụ: kiểu binary không thể nhận sự chuyển đổi từ dữ liệu kiểu Float hay Real,
[WHERE <Các điều kiện ràng buộc>]
[GROUP BY <Tên cột hay biểu thức sử dụng cột trong SELECT>][HAVING <Điều kiện bắt buộc dựa trên GROUP BY>]
- Lệnh DELETE
Để xóa dữ liệu trong một bảng ta dùng câu lệnh truy vấn DELETE cú phápnh sau:
DELETE FROM <Tên bảng>WHERE <Điều kiện>
Ngoài ra trong SQL Server còn có những phát biểu cho phép kết nối nhiềubảng với nhau (JOIN, INNER JOIN, LEFT JOIN, RIGHT JOIN, CROSSJOIN)
Trang 96.Khái niệm về đối tợng trong SQL và cách tạo đối tợng trong SQLServer 2000
a Tạo cơ sở dữ liệu (CREATE DATABASE)
Để tạo một cơ sở dữ liệu trong SQL Server ta dùng cú pháp nh sau:CREATE DATABASE <Database_Name>
[COLLATE <Collation>][For Load | For Attach]Trong đó:
- ON: Định nghĩa nơi chứa dữ liệu và không gian chứa tập tin log
- Name: Tên tập tin cơ sở dữ liệu trên đĩa cứng, lu ý khi tạo cơ sở dữ
liệu ta đặt tập tin ở vị trí nào thì không thể di chuyển một cách thủcông đợc.
- SIZE: Cho biết dung lợng cơ sở dữ liệu khi tạo chúng Thông
th-ờng là 1 MB
- MAXSIZE: Dung lợng lớn nhất, khi dung lơng cơ sở dữ liệu tăng
đến mức Maxsize thì dừng lại.
- FILEGROWTH: Dung lợng khởi tạo cùng dung lợng tối đa trong
quá trình thêm dữ liệu vào cơ sở dữ liệu.
- Log ON: Cho phép quản lý chuyển tác xảy ra trong quá trình sử
dụng cơ sở dữ liệu của SQL Server Thông thờng chúng chiếmkhoảng 25% dung lợng tập tin dữ liệu.
Ngoài việc tạo cơ sở dữ liệu bằng mã lệnh trong SQL Server còn chophép tạo cơ sở dữ liệu bằng giao diện đồ họa Để tạo cơ sở dữ liệu ta dùng trìnhSQL Server Enterprise Manager Việc thực hiện bằng giao diện đồ họa có vẻđơn gian và hiệu quả hơn.
b Tạo bảng (CREATE TABLE)
Tạo bảng trong cơ sở dữ liệu cũng giống nh tạo các đối tợng khác trongSQL Server Cú pháp đầy đủ để tạo bảng nh sau:
CREATE TABLE [Database_name.[owner].table_name(<column name><data type>
[[DEFAULT <constant expression>]
[[IDENTITY (seed, increament) [NOT FOR REPLICATION]]]][ROWGUIDCOL]
Trang 10[NULL | NOT NULL][<column constraint>]
[column_name as computed_columns_expression
ON {<filegroup>> | DEFAULT}
- Tên cột (Column name): Tên cột cũng giống nh tên bảng và tên cơ
sở dữ liệu không có khoảng trắng, không bắt đầu bằng chữ số và các kýtự đặc biệt, tuy nhiên chúng ta nên đặt tên ngắn gọn dễ nhớ
- Kiểu dữ liệu (Data type): Khi xây dựng cơ sở dữ liệu tất cả các
tr-ờng trong bảng cần phải có kiểu dữ liệu cụ thể Vấn đề là chọn dữ liệunào cho phù hợp với dữ liệu mà ngời dùng sẽ nhập vào.
- Giá trị mặc nhiên (Default): Gán giá trị mặc nhiên cho những cột
không có giá trị.
- IDENTITY: Đây là giá trị cực kỳ quan trọng trong SQL Server.
Khi chúng ta muốn một cột có giá trị tự động tăng
- NULL | NOT NULL: Là trạng thái của một cột có cho phép null
hay không.
- Ràng buộc (Column constrain): Kiểm tra dữ liệu khi dữ liệu mới
đợc đa vào cột hoặc dữ liệu bị thay đổi.
- Ràng buộc bảng dữ liệu (TABLE CONSTRAINTS): Ràng buộc
bảng cũng giống nh ràng buộc cột trong bảng, là kiểm tra dữ liệu nhậpvào bảng theo một quy luật đã định sẵn.
Song cũng có thể tạo bảng bằng giao diện đồ họa nh tạo cơ sở dữ liệu.Trong khi xây dựng bảng dữ liệu cần chú ý đến các trờng khóa
c Tạo view
View là bảng ảo và cũng nh với bảng view cũng có thể tạo đợc bằng mãlệnh cũng nh giao diện đồ họa
View cho phép kết nối nhiều bảng với nhau để hiển thi thông tin.
d Tạo thủ tục lu trữ (Stored Procedure hay sp)
Stored Procedure là một phần cực kỳ quan trọng trong cơ sở dữ liệuSQL Server Nếu biết SQL Server mà không biết Stored Procedure là một thiếusót rất lớn Cú pháp để tạo một Stored Procedure nh sau:
CREATE PROCEDURE | PRO<Procedure name>[<Paramenters name><data type> [VARYING][=<default value>][OUT PUT],
[<Parameters><data type> [VARYING][=<default value>][OUT PUT][,
[WITH
RECOMPILE | ENCRIPTION | RECOMPILE,ENCRIPTION]
[FOR REPLICATION]AS
<cade>GO
Trang 11Đó là cú pháp đầy đủ để tạo một Stored Procedure song ta có thể tạo StoredProcedure bằng giao diện đồ họa
Ví dụ tạo một Stored Procedure đơn giảnUSE dbBENHNHAN
Create proc Sp_NhapXa @MaXa nchar(9),
@TenXa char(30),@MaHuyen nchar(6) AS
Insert Into tblXa(
MaXa, TenXa,MaHuyen)
@MaXa,@TenXa,@MaHuyen
-Trên đây ta trình bày một Stored Procedure dùng để nhập một xã vàobảng tblXa.
e Tạo hàm (Function)
Tơng tự nh Stored Procedure hàm cũng có thể tạo bằng giao diện đề họacũng nh mã lệnh, song với hàm giá trị trả về là đa dạng hơn và giá trị trả về nàycó thể là một bảng.
Ví dụ tạo hàm thống kê bệnh nhân theo tỉnh, hàm này trả về một bảng chứathông tin về các bệnh nhân trong tỉnh
CREATE FUNCTION udf_ThongKeBenhNhanTheoTinh(@TenTinh Char(30))
RETURNS Table
AS
-Return
Trang 12II.giới thiệu về Visual Basic 6.0 và cơ sở dữ liệu trong Visual Basic 6.0.
II.1 Giới thiệu chung về Visua Basic
Visua Basic là một trong những ngôn ngữ lập trình bậc cao thông dụngnhất hiện nay, là một sản phẩm của Microsoft Nó cũng giống nh hầu hết cácngôn ngữ lập trình bậc cao khác, trong Visua Basic chứa đầy đủ các câu lệnhcần thiết, các hàm xây dựng sẵn,… của dữ liệu bên trong các bảng một cách chặt chẽ
Ngoài ra Visual Basic chứa một số phơng tiện giúp cho việc áp dụng kỹthuật hớng đối tợng trong việc truy cập dữ liệu Trong Visual Basic có rấtnhiều phơng pháp truy cũng nh các đối tợng truy cập dữ liệu nh: ADO,ADODB, DAO, nói chung các đối tợng này có những thuộc tính tơng đốigiống nhau Trong luận văn này em chủ yếu đi sâu vào đối tợng ADO VìADO là một công cụ truy cập dữ liệu rất hữu hiệu và ADO cũng đợc cài đặttrong chơng trình.
II.2 ADO là gì ?
ADO (Activex Data Object hay đối tợng dữ liệu ActiveX) Ta có thể hìnhdung rằng ADO là một mô hình làm giảm kích thớc của mô hình RDO (Đối t-ợng dữ liệu từ xa) Mô hình đối tợng dữ liệu ActiveX rất gọn Nó đợc thiết kếđể cho phép lập trình viên lấy đợc một tập các Record từ nguồn dữ liệu mộtcách nhanh nhất nếu có thể Tốc độ và tính đơn giản là một trong những mụctiêu cốt lõi của ADO, mô hình này đợc thiết kế để cho phép tạo ra một đối tợngRecordset mà không cần phải di chuyển qua các đối tợng trung gian kháctrong quá trình lập trình Thực tế chỉ có ba đối tợng chính trong mô hình:
- Connection: Đại diện kết nối thực sự.
- Command: Đợc sử dụng để thực thi các query dựa vào kết nối dữliệu.
- Recordset: Đại diện cho một tập các Record đợc chọn query thôngqua đối tợng Command.
Đối tợng Connection chứa một tập các đối tợng còn gọi là các đối tợngErrors đối tợng này giữ lại bất kỳ một thông tin lỗi nào có liên quan đến kếtnối Đối tợng Command có một tập các đối tợng con là Paramenters để giữ bấtcứ tham số nào có thể thay thế cho query Recordset cũng có một tập các đối t-ợng con Properties để lu các thông tin chi tiết về đối tợng.
II.3 Các thuộc tính đặc biệt của đối tợng ADO
Mô hình ADO có một số thuộc tính mà các mô hình cơ sở dữ liệu khác nhDAO và RDO không có Các thuộc tính này điều khiển cách thức tạo raDataset và quyền hạn truy cập trong một kết nối dữ liệu, có bảy thuộc tính nhsau:
- Connection String (Chuỗi kết nối)- Command Texxt (Văn bản câu lệnh)- Command Type (Kiểu câu lệnh)
Sơ đồ mô hình ActiveX Data Object
Trang 13- Cursor Location (Định vị con trỏ)- Cursor Type (Kiểu con trỏ)- Look Type (Kiểu khóa)
- Mode Type (Kiểu chế độ làm việc)
Ví dụ: Để tạo kết nối đến cơ sở dữ liệu SQL Server với tên cơ sở dữ liệudbBenhNhan ta có mã lệnh nh sau:
Public Sub OpenConnection() ' Tạo kết nối đến nguồn dữ liệu Set cn = New ADODB.Connection cn.Provider = "SQLOLEDB.1;"
cn.ConnectionString = " Integrated Security=SSPI;Persist SecurityInfo=False;Initial Catalog=dbBenhNhan"
cn.OpenEnd Sub
Ngoài ra trong Visual Basic còn chứa một số kiểu dữ liệu thông dụngkhác cũng nh Visual Basic cho phép lập trình viên tự định nghĩa kiểu và cũngnh hầu hết các ngôn ngữ lập trình khác, ngoài ra Visual Basic còn có các câulệnh chuẩn khác,
Chơng III Phân Tích Và Thiết Kế HệThống
Sau khi tìm hiểu và phân tích hệ thông quản Lý bệnh nhân tại bệnh viện tỉnhKhánh Hòa em đã đa ra đợc biểu đồ phân cấp chức năng nh sau:
Quản lý bệnh nhân0
Cấp số1
Khám bệnh2
Thu viên phí3
Thu tạm ứng BN
Thanh toán với BHYT
3.2Cấp
Tiếp nhận BN
Cung cấp DV
Lập bệnh án
2.4
Trang 142 Đặc điểm của biểu đồ phân cấp chức năng:
- Cho một cách nhìn khái quát, dễ hiểu, từ đại thể đến chi tiết về cácchức năng, nhiệm vụ cần thực hiện (thờng ở mức diễn tả logic)- Rất dễ thành lập, bằng cách phân rã dần các chức năng từ trên xuống- Có tính chất tĩnh, bởi chúng chỉ cho thấy các chức năng mà không
cho thấy trình tự xử lý.
- Thiếu vắng sự trao đổi thông tin giữa các chức năng.
Vì những lý do trên nên biểu đồ phân cấp chức năng thờng đợc sử dụnglàm mô hình chức năng trong bớc đầu phân tích, hoặc cho các hệ thống đơngiản Nếu hệ thống phức tạp thì biểu đồ phân cấp chức năng là quá sơ lợc vàcòn thiếu sót nêu trên nên không thể châm trớc đợc Khi đó chúng ta thờngdùng biểu đồ luồng dữ liệu
I.2 Biểu đồ luồng dữ liệu1 Biểu đồ luồng dữ liệu là gì ?
Biểu đồ luồng dữ liệu là một loại biểu đồ nhằm mục đích diễn tả một quátrình xử lý thông tin với các yêu cầu sau:
- Sự diễn tả ở mức logic, nghĩa là nhằm trả lời câu hỏi “Làm gì”, màbỏ qua câu hỏi “làm nh thế nào ?”.
- Chỉ rõ các chức năng (con) phải thực hiện để hoàn tất quá trình xử lýcần mô tả
- Chỉ rõ các thông tin đợc chuyển giao giữa các chức năng đó, và quađó phần nào thấy đợc trình tự thực hiện của chúng.
2 Kỹ thuật phân mức
Kỹ thuật này còn đợc gọi là “Phân tích từ trên xuống” (top-down analysis)tiến hành phân tích chức năng của hệ thống bằng cách đi dần từ một mô tả đạithể đến những mô tả chi tiết thông qua nhiều mức Sự chuyển dịch từ một mứctới mức tiếp theo thực chất là phân ra một chức năng thành một số chức năngcon ở mức dới.
Với biểu đồ luồng dữ liệu thì quá trình phân tích trên xuống lại là quá trìnhthành lập dần dần các biểu đồ luồng dữ liệu diễn tả các chức năng của hệthống theo từng mức Mỗi mức là một tập hợp các biểu đồ luồng dữ liệu
Mức 0, hay mức bối cảnh chỉ gồm biểu đồ luồng dữ liệu, trong đó chỉ cómột chức năng duy nhất, trao đổi các luồng thông tin với các đối tác.
Trang 15Mức 1, còn gọi là mức đỉnh, cũng chỉ dùng một biểu đồ luồng dữ liệu, vàmức 2, 3, , mỗi mức gồm nhiều hơn 1 biểu đồ luồng dữ liệu đợc thành lậpnh sau:
- Cứ mỗi chức năng ở mức trên, ta thành lập một biểu đồ luồng dữ liệu, ởmức dới, gọi là biểu đồ luồng dữ liệu định nghĩa chức năng đó theo cách sau:
bệnh nhân
Quản lí bệnh nhân
0Yêu cầu KB
Kết quả
Chi phí khám chữa bệnh
Biểu đồ luồng dữ liệu mức bối cảnh
Phòng tài chínhKhoa điều trị
Chi phí của BNDanh
sách BN điều trịBệnh
ánKết
Danh sách BN nhập
viện
Trang 16Biểu đồ luồng dữ liệu mức đỉnh:
Chức năng quản lý bệnh nhân đợc phân ra thành các chức năng cấp số,khám bệnh, thanh toán viện phí Ngoài ra ở đây trong biểu đồ còn xuất hiệnthêm các tác nhân nh khoa điều trị, phòng tài chính và toàn bộ kết quả khámbệnh của bệnh nhân đợc lu vào một tệp có tên là hồ sơ bệnh nhân tất cả nhữngthông tin về bệnh nhân đợc lu trữ tại đây Thông qua tệp này phòng tài chínhsẽ gửi giấy thanh toán viện phí đến cho bệnh nhân và bảo hiểm y tế
bệnh nhân Cấp số1Yêu cầu KB
Vị trí KB
Khám bệnh
2Y/C KB tại
vị trí
bệnh nhânKết quả
Phòng Tài ChínhThanh toán V/P
3Xác
nhận TT
Đóng tạm ứng
Danh sách BN điều trịKhoa Điều Trị
Kết quả
Kết quả
Hồ sơ bệnh nhân
Danh sách BN đã đóng
Biểu đồ luồng dữ liệu mức đỉnh
Danh sách BN nhập viện
Bệnh án
Trang 17Biểu đồ luồng dữ liệu biểu diễn chức năng khám bệnh:
Lúc này chức năng khám bệnh đợc phân rã thành bốn chức năng: Cấpthuốc, cung cấp dịch vụ, tiếp nhận bệnh nhân nhập viện, lập bệnh án lú nàybệnh nhân đã có đợc kết quả khám bệnh Trong biểu đồ trên hầu hết các chứcnăng đợc thực hiện một cách thủ công và đợc lu lại trong tệp Hồ Sơ bệnh nhânnh vậy khi bệnh nhân mua thuốc thì tại phòng cấp thuốc sẽ lu lại đơn thuốc củabệnh nhân đã mua và tơng tự nh vậy khi bệnh nhân dùng dịch vụ cũng đợc lulại thông tin đó để phục vụ việc lu trữ và thanh toán tạm ứng sau này Song khibệnh nhân phải nhập viện thì tại khoa điều trị sẽ lập bệnh án cho bệnh nhân đóvà cũng đợc lu lại trong bệnh án ghi đầy đủ thông tin về bệnh nhân quá trìnhđiều trị tại bệnh viện
Đối với biểu đồ luồng dữ liệu phân cấp chức năng thanh toán viện phí:Tơng tự chức năng khám bệnh với chức năng thanh toán tạm ứng viện phí củabệnh nhân đợc phân ra thành hai chức năng là: thu tạm ứng, và thanh toán với
Hồ sơ Bênh NhânBệnh nhân
Cấp thuố
c2.1Đơn thuốc
Thuốc cấp
Khoa điểu trị
Cung cấp dịch vụ
2.3Yêu cầu
Dịc vụ dùng
Lập bệnh
án2.4 D/SBN
nhập viện
Bệnh án
Tiếp nhận BN N/V
2.2Giấy
NV Tiếp nhận
Biểu đồ luồng dữ liệu biểu diễn chức năng khám bệnh
Giấy NV
Trang 18bảo hiểm y tế Theo quy định của bệnh viện cứ ba ngày bệnh viện lại yêu cầubệnh nhân thanh toán tạm ứng viện phí một lần và theo chu kỳ mỗi tháng bệnhviện lại in danh sách bệnh nhân có bảo hiểm y tế đã điều trị tại bệnh viện trongtháng để thanh toán với bảo hiểm y tế Đối với bệnh nhân có bảo hiểm y tếcũng phải đóng một phần viện phí theo quy định phần trăm trên bảo hiểm y tế.Cả hai chức năng này đều đợc thực hiện một cách tự động
II.1 Mô hình thực thể/liên kết
1 Khái niêm mô hình thực thể/liên kết
Mô hình thực thể/ liên kết (Entity/Association Model) là mô hình dữ liệu doP.P Chen đa ra năm 1976 và sau đó đợc dùng khá phổ biến trên thế giới Nócó đặc điểm khá đơn giản và gần với t duy khách quan Khi xem xét các thôngtin, ngời ta thờng gom cụm chúng xung quanh các vật thể
2 Các loại mô hình E/A
- Mô hình E/A kinh điển
Mô hình E/A kinh điển xuất phát từ ba khái niệm cơ bản: thực thể, liên kết và thuộc tính.
+ Các thực thể: Là một vật thể cụ thể hay trừu tợng, tồn tại thực sự và khá ổn định trong thế giới thực, mà ta muốn phản ánh nó trong hệ thống thông tin.
+ Các thuộc tính: Thuộc tính (Property hay attribute) là một giá trị dùngđể mô tả khía cạnh nào đó của thực thể.
+ Các liên Kết: Một liên kết (association) là một sự gom nhóm các thựcthể trong đó mỗi thực thể có một vai trò nhất định.
- Mô hình thực thể/ Liên kết mở rộng.
Đối với những hệ thống phức tạp khi phân tích và thiết kế ngời ta thơng dùng đến mô hình E/A mở rộng Do các điểm mở rộng này chịu ảnh hởng từ xu hớng hiện đại của mô hình hóa hớng đối tợng, cũng nh các hệ quản trị cơ sởdữ liệu hớng đối tợng Các đặc điểm của mô hình E/A mở rộng
+ Các kiểu thuộc tính đa trị: Cho phép nhận giá trị có thể là một tập các giá trị
bệnh nhân
Thu tạm ứng 3.1Thanh toán viện phí
Phiếu thanh toán
Hồ sơ Bênh Nhân
Phòng tài chính
Thanh toán với
BHYT3.2Danh sách BN điều
trị có BHYT
Danh sách bệnh nhân điều trịXác nhận thanh toán
Danh sách BN đã đóng T.Ư
Biểu đồ luồng dữ liệu biểu diễn chức năng thanh toán viện phí
Trang 19+ Các kiểu thuộc tính phức hợp: Cho phép sử dụng các kiểu thuộc tính là tổhợp.
+ Các kiểu thực thể con: xuất hiện bởi yêu cầu chuyên biệt hóa và khái quát hóa khi cần phân cấp các sự vật
- Mô hình E/A hạn chế
Mô hình E/A hạn chế tuy bị hạn chế nhiều về các hình thức diễn tả (khó vậndụng), nhng lại rất gần với mô hình quan hệ do đó lại dễ dàng chuyển sang cài đặt với hệ quản trị cơ sở dữ liệu quan hệ hơn Các đặc điểm của mô hình E/A hạn chế.
+ Trong mô hình E/A hạn chế chỉ có kiểu liên kết 1-nhiều và đợc biểu diễn nh sau:
+ Trong mô hình E/A hạn chế các kiểu liên kết 0/1-nhiều đợc coi là trờnghợp đặc biệt của 1-nhiều
Trong báo cáo này Em chi sử dụng mô hình E/A hạn chế Vì bất cứ mô hìnhE/A kinh điển hay E/A mở rộng nào cũng có thể biến đổi thành mô hình E/Ahạn chế đợc, hơn nữa mô hình E/A hạn chế là mô hình gần với mô hình cơ sởdữ liệu quan hệ nhất.
Sau khi phân tích hệ thống em đã đa ra mô hình E/A hạn chế của bài toánnh sau (trang sau):
TỉnhMã tỉnhTên tỉnh
Huyện Mã huyệnTên huyệnMã tỉnh
XãMã xãTên xãMã huyện
Khoa Mã khoaTên khoa
Chuyên mônMã CMTên CM
Chức vụ
Mã CV
Tên CV
BệnhMã bệnhTên bệnh
Nhân viênMã Nhân viênHọ tên NVNgày sinh NVGiới tính NVSố nhà NVĐiện thoại NVMã xã
Mã khoaMã CM Mã CV
Vị TríMã vị tríTên vị trí
Dòng khám bệnhMã khám bệnhMã nhân viênMã bệnh nhânMã bệnhMã vị tríNgày KBNội dung KBChi phí KB Bệnh nhân
Mã bênh nhânHọ bệnh nhânTên bệnh nhânNgày sinh BNGiới tính BNMã xãbảo hiểm y tế
Mã bệnh nhânSố thẻ BHYTNgày bắt đầu Ngày kết thúcPhần trăm
Cán bộMã bệnh nhânMã cơ quan
Cơ quanMã cơ quanTên cơ quanĐiện thoại CQFax CQ
Tạm ứngMã tạm ứngLần tạm ứngSố tiền
Ngày tạm ứngMã bệnh nhân
Bệnh ánMã khám bệnhMã nhân viênMã bệnh nhânMã bệnhMã vị tríMã nơi Đ.TNgày vàoNgày raTình trạng ra
Nơi điều trịMã nơi Đ.TTên nơi Đ.TĐơn giá
Thuốc dùngMã khám bệnhMã nhân viênMã bệnh nhânMã bệnhMã vị tríMã thuốcSố l ợng Liều dùng
ThuốcMã thuốcTên thuốcĐơn giáDịch Vụ Dùng
Mã khám bệnhMã nhân viênMã bệnh nhânMã bệnhMã vị tríMã nơi Đ.TMã dịch Vụ
Lần dùng Mã dịch vụDịch vụTên dịch vụĐơn giá