phân tí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ỉnh Hải Dương
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ông nghệ thông tin là một trong những lĩnh vực có nhiều đóng góp thiếtthực nhất Công nghệ thông tin có mặt trong hầu hết các lĩnh vực củacuộc sống đặc biệt công nghệ thông tin là một công cụ hỗ trợ rất đắc lựctrong công tác quản lý Chúng ta dễ dàng thấy đợc việc đa tin học vàotrong quản lý kinh doanh là một trong những ứng dụng quan trọng trongrấ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ôngviệc quản lý và điều hành doanh nghiệp tỏ ra rất nhanh chóng và hiệuquả Chính vì lẽ đó mà cơ sở dữ liệu nh là một giải pháp hữu hiệu nhấtcho các doanh nghiệp có thể tồn tại và phát triển một cách nhanh chóng.Bệnh viện đa khoa tỉnh Hải Dơng là một trong những trung tâm khámchữa bệnh lớn nhất tỉnh Hải Dơng 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àiphân tí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ỉnh Hải Dơng 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 , đợccài đặt trên môi trờng Visual Basic 6.0 và đợc thiết kế dữ liệu dựa trênngô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ánh khỏi những thiếu sót Rất mong đợc sự góp ý của quý thầy cô,anhchị cùng các bạn để báo cáo đợc hoàn thiện hơn
Em xin chân thành cảm ơn phòng Kế Hoạch Tổng Hợp bệnh viện đakhoa tỉnh Hải Dơng, quý thầy cô và các bạn đã tận tình giúp đỡ tôi hoànthành báo cáo này đặc biệt là thầy Lê Đức Trung ngời trực tiếp hớng dẫn
em trong suốt thời gian thực tập vừa qua
Trang 2Chơ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ìnhkhám chữa bệnh của bệnh nhân tại bệnh viện Quản lý việc thanh toántạm ứng của bệnh nhân với bệnh viện cũng nh của bệnh viện với bảohiểm y tế, quản lý lợng bệnh nhân đến điều trị tại bệnh viện trong nhữngkhoảng thời gian xác định Đồng thời chúng ta đi thống kê số lợng bệnhnhân mắc phải một số căn bệ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 Hải Dơng.
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ụcho việc quản lý bệnh nhân cũng nh quá trình khám chữa bệnh củabệnh nhân trong bệnh viện đợc dễ dàng hơn nh: khoa, chuyênmô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ảo hiểm y tế thì quản lý số thẻ bảo hiểm y tế và nếu bệnh nhân đó
đang làm việc tại một cơ quan nào đó thì Quản lý thêm cơ quan
mà bệnh nhâ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êu cầu dùng thêm một số dịch vụ, chúng ta quản lý thêm trongquá 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
đóng cho 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ố) để
2
Trang 3+ 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án sau đó 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
đơn thuốc trên đơn thuốc có ghi đầy đủ tên thuốc số lợng và cáchdùng Theo định kỳ bác sĩ sẽ khám bệnh lại cho bệnh nhân (tùytheo từng loại bệnh nhân) Trong quá trình điều trị tại bệnh việnbác sĩ sẽ lập một bệnh án của bệnh nhân trong đó ghi đầy đủ thôngtin về bệnh nhân, căn bệnh mà bệnh nhân mắc phải cũng nh diễnbiến quá trình điều trị tại bệnh viện
- Trong quá trình điều trị bệnh nhân có thể yêu cầu dùng thêmmột số dịch vụ nh: X_quang, Siêu âm việc sử dụng này cũngtheo 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ệnyêu cầu bệnh nhân đóng tạm ứng viện phí một lần Nếu bệnh nhân
có thẻ bảo hiểm y tế thì bệnh nhân chỉ phải đóng phần trăm việnphí theo quy định của bảo hiểm y tế Trong quá trình điều trị nếubệnh nhân không thanh toán viện phí mà tự ý xuất viện thì bệnhviệ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ộtphần việ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ủabệnh nhâ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ápchữa trị 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ột số phơng án hoạt động dự phòng một số bệnh theo từng mùahoặc theo từ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ố ờng hợ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óivới ngời nhà bệnh nhân)
tr-+ Có thể biết quá trình điều trị của ngời nhà mình cũng nh biết rõ đợcngời nhà 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àbao nhiêu)
+ Tổng số bệnh nhân điều trị trong tháng có bảo hiểm y tế, và tổng chiphí của những bệnh nhân này để thanh toán với bảo hiểm y tế
Trang 44 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àmthay đổ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ớc kia 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ăn trong việc tìm kiếm một hồ sơ về một ngời, cũng nh tìmkiếm một vấn đề nào đó trong rất nhiều hồ sơ lu trữ, cha kể đến việcthống kê theo một tiêu chí nào đó Ngày nay với sự trợ giúp của máytính chúng ta có thể thực hiện các công việc đó một cách dễ dàng, nhanhchó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 nh việc thống kê bệnh nhântheo những tiêu chí mà ban lãnh đạo bệnh viện đa ra một cách nhanhchó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êntrong bệnh viện (chủ yếu là những ngời dùng chuyên nghiệp, cónhững hiểu biết nhất định về chuyên môn cũng nh tin học) nên việcthiết kế một hệ thống sử 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ơngpháp có cấu trúc, vì các lẽ nh sau:
+ Phơng pháp có cấu trúc, trải qua thời gian đã chứng tỏ đợc tínhkinh điển của nó
+ Phơng pháp có cấu trúc là phơng pháp dung dị, không cầu kỳ nhmộ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ạc hậ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 nay có rất nhiều hệ quản trị cơ sở dữ liệu nh Oracle, Access,Fospro, SQL Server, Song để phù hợp với cách quản lý tại bệnhviện hiện nay và để cho hệ thống phát triển sau này (có thể đa lênmạng Internet cũng nh mạng liên bệnh viện ) Em đã lựa chọn ngônngữ SQL Server 2000 làm ngôn ngữ 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ề haingôn ngữ này sẽ đợc trình bày kỹ ở chơng giới thiệu ngôn ngữ (cácchơng tiếp theo) Tuy nhiên trong đề tài này em cài đặt hệ thông trênmáy đơn
4
Trang 5Chơng II Giới thiệu ngôn ngữ cài
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ớinhau bởi Database Engine khi có yêu cầu RDBMS là một trong nhữngmô hình cơ sở dữ liệu thô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ôngtin 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úngphát triển để sử dụng trên nhiều ấn bản nh: CE, Personal, DesktopEngine, Standard Developer, Enterprise
SQL Server 2000 hỗ trợ kiểm tra khóa chính, phụ thuộc tồn tại, miềngiá 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,
Những thành phần chính trong SQL Server 2000
Trang 6SQL Server
2000
Đây là phần chính của hệ thống, là trungtâm điều hành những phần thực thi khác
Với Desktop Engine bạn sẽ thấy các dịch
vụ trong hệ thống nh: SQL ServerProfiler, và một số công cụ khác
DesktopEnginePersonalStandardDeveloperEnterpriseFull – Text
Sarch Đây là phần tự chọn trong lúc cài đặt,nếu bạn muốn chức năng tìm kiếm thì nên
chọn hệ thống này vì chúng không làphần mặc nhiên
Full – Text Sarck cung cấp chức năngtìm kiếm (Word) rất mạnh, nếu sử dụngIternet để tìm kiếm thì đây là một giảipháp tuyệt vời Nếu bạn muốn tìm kiếmmột chuỗi con trong một văn bản lớn thì
đây là công cụ thích hợp cho công việc
đó
Personal(ExceptWin95)StandardDeveloperEnterprise
English Query English Query cho phép ngời sử dụng
không có kỹ thuật về SQL cũng có thể sửdụng SQL Server, bằng cách đặt câu hỏichuỗi English sau đó đợc dịch ra Query
mà có thể thực thi trên SQL Server
PersonalStandardDeveloperEnterprise
Analusis
Services
Phần này không bao gồm mặc địnhtrong phần cài đặt, chúng là dạng sảnphẩm tự chọn, là công cụ phân tích OLAP(Online Analysis Processing), sử dụngcho 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ờngdùng chức năng này cho các hệ thốngServer từ xa hay trong Network, nhằm đểlàm giảm trao đổi dữ liệu giữa các SQLServer với nhau
DesktopEnginePersonalStandardDeveloperEnterpriseData
Transformatio
n Servise
Data Transformation Servise (DTS) đợc
mở rộng trong phiên bản SQL Server
2000, bao gồm những chức năng trao đổidữ liệu giữa các cơ sở dữ liệu, và giao tiếpdữ liệu giữa các cơ sở dữ liệu khác nhau,
đây là những giải pháp lập trình trênVisual Basic
DesktopEnginePersonalStandardDeveloperEnterprise
1 Các thành phần của SQL Server 2000
RDBMS cũng nh SQL Server chứa đựng nhiều đối tợng bao gồm:
- Database: cơ sở dữ liệu SQL Server
- Tập tin log: Tập tin lu trữ những chuyển tát của SQL
Trang 7- 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
- 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ớiSQL Server, tuy nhiên những đối tợng con của cơ sở dữ liệu mới là thànhphần chính củ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ồmcác đối tợng nh database, table, view, procedure nêu trên cùng một số cơ
sở dữ liệu hỗ 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 Serverbạn chỉ 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ùngriêng biệt và ứng với quyền truy nhập nhất định Cài đặt cơ sở dữ liệuSQL Server bạ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 đặcbiệt (bảng hệ 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ệu SQL Server
Ví dụ: Khi ngời dùng cơ sở dữ liệu mới trong SQL Server, thêmhoặc xó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ấytất cả các mẫ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 Serverthực hiện việc tao mới cơ sở dữ liệu cho ngời dùng khi có yêu cầu,bạn khô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ớinày cũ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, nhng với cơ sở dữ liệu Msdb thì khác Msdb chính là SQLAgent lu trữ tất cả các tác vụ 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ảohay thực tập trớc khi bạn bắt đầu với cơ sở dữ liệu thực Ngoài ra chúngcòn giúp thực hiện những thao tác về cơ sở dữ liệu mỗi khi SQL Serverkhởi động
- 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
Trang 8- 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 Basichay Assces dùng truy cập dữ liệu SQL Server Cơ sở dữ liệu này đợc cài
đặt nh một phần củ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ìmhiểu sự cố xảy ra với cơ sở dữ liệu, ngời ta chỉ cần tham khảo tập tin log
sẽ biết đợc nguyên nhân
3 Giới thiệu một số đối tợng cơ sở dữ liệu SQL Server
- Bảng - Table
Trong 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àColumn name) ứ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ặc từ chối tùy thuộc vào nguyên tắc ràng buộc dữ liệu hoặcloại dữ liệu tơng thích do 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 nhautonumber trong 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à
- 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ự
động thực hiện khi một hành động nào đó xảy ra đối với dữ liệu trongbảng nh Insert, 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ộttiêu chuẩn nào đó
- Lợc đồ quan hệ - Diagram
8
Trang 9Khi 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ữngbớc phân tích và thiết kế, chúng ta sẽ thiết lập quan hệ dữ liệu giữa cácthực thể ERD (Entity relationship diagram).
- Khung nhìn - View
View là khung nhìn (hay bảng ảo) của bảng Cũng giống nh bảngnhng view không thể chứa dữ liệu, bản thân view có thể tạo nên trờngmới dựa vào nhữ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ầnSQL trên cơ sở dữ liệu Stored Procedure cho phép khai báo biến, nhậntham 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ểm lớ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ệu hiệ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àmtrong ngôn ngữ lập trình truyền thống, đồng thời sử dụng lại khi yêu cầu
- 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ênbảng số liệu, chuyển tác thực hiện trên từng mẩu tin, ta nên nghĩ đến kiểudữ liệu Cursor
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ểudữ liệu Một số kiểu dữ liệu SQL Server cho phép định nghĩa chiều dàicủa kiểu trong 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ểu dữ liệu cần thiết, nh: Kiểu số nguyên (Binary, Int, TinyInt, ), kiểutiền tệ (Money, SmallMoney, ), kiểu chuỗi (Char, nchar, Varchar, Text, ) và nhiều kiể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ểudữ 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ểudữ liệu Ví dụ: kiểu binary không thể nhận sự chuyển đổi từ dữ liệu kiểuFloat 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 trongSELECT>]
[HAVING <Điều kiện bắt buộc dựa trên GROUP BY>]
[ORDER BY <Danh sách cột>]
Trong đó tất cả các phát biểu nằm trong cặp dấu ngoặc [] thì có thể cóhoặc có thể không có
Trang 10ORDER BY dùng để hiển thị kết quả truy vấn theo tiêu chuẩn của
ng-ời dùng Nếu thiếu tham số này thì việc sắp xếp sẽ theo thứ tựALPHABET
Ngoài những câu lệnh truy vấn trên trong SQL Server còn cung cấpmột số hàm cũng nh một số biểu thức tính toán,
- Lệnh INSERT
Để thêm dữ liệu vào bảng (Table) ta dùng câu lệnh truy vấn INSERT
cú pháp nh sau:
INSERT INTO <Tên bảng> (danh sách cột)
VALUES (Danh sách giá trị)
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ốinhiều bảng với nhau (JOIN, INNER JOIN, LEFT JOIN, RIGHT JOIN,CROSS JOIN)
6 Khái niệm về đối tợng trong SQL và cách tạo đối tợng trong SQL Server 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>
[ON[PRIMARY](
[Name=<’Logical File name’>,]
File Name=<’FileName’>
[,SIZE=<Size in Megabyte or KiloByte]
[,MAXSIZE=<Size in Megabyte or Kilobyte]
FILEGROWTH=<NO of Kylobyte | Percentage]
)]
(LOG ON
[Name=<’ Logical File name’>,]
FileName=<’File Name’>
[,SIZE=<Size in Megabyte or Kylobyte>]
[,MAXSIZE=<Size in Megabyte or Kilobyte>]
FILEGROWTH=<NO of Kylobyte | Percentage>]
)]
[COLLATE <Collation>]
[For Load | For Attach]
10
Trang 11Trong đó:
- 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ộtcá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úngchiếm khoả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òncho phép tạo cơ sở dữ liệu bằng giao diện đồ họa Để tạo cơ sở dữ liệu tadùng trình SQL Server Enterprise Manager Việc thực hiện bằng giaodiệ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áctrong SQL 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]
[NULL | NOT NULL]
- 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ắngọ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ệu nào cho phù hợp với dữ liệu mà ngời dùng sẽ nhậpvà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
Trang 12- 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ập và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ằngmã 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ệu SQL Server Nếu biết SQL Server mà không biết Stored Procedure làmột thiếu só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][,
Insert Into tblXa(
12
Trang 13MaXa, TenXa,MaHuyen)
Values(
@MaXa,@TenXa,@MaHuyen
GO
-Trên đây ta trình bày một Stored Procedure dùng để nhập một xãvào bả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ọa cũ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ày có 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ảngchứa thông tin về các bệnh nhân trong tỉnh
CREATE FUNCTION udf_ThongKeBenhNhanTheoTinh
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ôngdụng nhất hiện nay, là một sản phẩm của Microsoft Nó cũng giống nhhầu hết các ngôn ngữ lập trình bậc cao khác, trong Visua Basic chứa đầy
đủ các câu lệnh cầ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 ápdụng kỹ thuật hớng đối tợng trong việc truy cập dữ liệu Trong VisualBasic có rất nhiều phơng pháp truy cũng nh các đối tợng truy cập dữ liệunh: ADO, ADODB, DAO, nói chung các đối tợng này có những thuộc
Trang 14tính tơng đối giống nhau Trong luận văn này em chủ yếu đi sâu vào đốitợng ADO Vì ADO là một công cụ truy cập dữ liệu rất hữu hiệu và ADOcũng đợc cài đặt trong 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ình dung rằng ADO là một mô hình làm giảm kích thớc của mô hìnhRDO (Đố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ột cách nhanh nhất nếu có thể Tốc độ và tính đơn giản
là một trong những mục tiê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ợng Recordset mà không cần phải di chuyểnqua các đối tợng trung gian khác trong 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ốidữ liệu
- Recordset: Đại diện cho một tập các Record đợc chọn querythông qua đố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 đốitợng Errors đố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ết nối Đối tợng Command có một tập các đối tợng con làParamenters để giữ bất cứ 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ôngtin chi tiết về đối tợng
14
Trang 15II.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
nh DAO và RDO không có Các thuộc tính này điều khiển cách thức tạo
ra Dataset và quyền hạn truy cập trong một kết nối dữ liệu, có bảy thuộctính nh sau:
- 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)
- 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ệu dbBenhNhan 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
Trang 16Là một loại biểu đồ diễn tả sự phân rã dần dần các chức năng từ
đại thể đến chi tiết Mỗi nút trong biểu đồ là một chức năng, và quan hệduy nhất giữa các chức năng, diễn tả bởi các cung nối liền các nút, làquan hệ bao hàm nh vậy biểu đồ phân cấp chức năng tạo thành một cấutrúc cây
Sau khi tìm hiểu và phân tích hệ thông quản Lý bệnh nhân tại bệnhviện tỉnh Khánh Hòa em đã đa ra đợc biểu đồ phân cấp chức năng nhsau:
2 Đặ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ác chứ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ênxuố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ụng làm mô hình chức năng trong bớc đầu phân tích, hoặc cho các hệthống đơn giả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ờng dùng biểu đồ luồng dữ liệu
I.2 Biểu đồ luồng dữ liệu
1 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ộtquá trình xử lý thông tin với các yêu cầu sau:
Thanh toán với BHYT 3.2
Cấp
thuốc
2.1
Tiếp nhận BN 2.2
Cung cấp DV 2.3
Lập bệnh án 2.4
Trang 17- 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
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ình thành lập dần dần các biểu đồ luồng dữ liệu diễn tả các chức năngcủ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ồngdữ 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.Mứ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 đợcthành lập nh 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 đó theocách sau:
+ Phân rã chức năng đó thành nhiều chức năng con
+ Vẽ lại luồng dữ liệu vào và ra chức năng trên, nhng nay phảivào hay ra chức năng con thích hợp
+ Nghiên cứu các quan hệ về dữ liệu giữa các chức năng con, nhờ
đó bổ sung các luồng dữ liệu nội bộ hoặc các kho dữ liệu nội bộ
- Các chức năng đợc đánh số theo ký pháp chấm, cho phép theodõi vệt triển khai trên xuống
Thông qua tìm hiểu hệ thống quản lý bệnh nhân tại bệnh viện tỉnhKhánh Hòa ta có biểu đồ luồng dữ liệu của hệ thống nh sau:
Biểu đồ luồng dữ liệu mức bối cảnh:
Trong biểu đồ luồng dữ liệu mức bối cảnh chỉ có một chức năng 0 (chứcnăng quản lý bệnh nhân), các tác nhân của hệ thống gồm: Bệnh nhân,khoa điều trị và phòng tài chính
17
bệnh nhân
Quản lí bệnh nhân 0 Yêu cầu KB
Kết quả
Chi phí khám chữa bệnh
Phòng tài chính Khoa điều trị
Chi phí của BN
Danh sách
BN
điều trị Bệnh
án
Kết quả
Danh sách
BN nhập viện
Trang 18Biể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ònxuất hiện thê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ám bệ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ững thông tin về bệnh nhân đợc lu trữ tại đây Thôngqua tệp này phòng tài chính sẽ gửi giấy thanh toán viện phí đến cho bệnhnhân và bảo hiểm y tế
18
Trang 19Biể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ày bệnh nhân đã có đợc kết quả khám bệnh Trong biểu đồ trên hầu hếtcác chức nă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ân nh 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ủa bệnh nhân đã mua và tơng tự nh vậy khi bệnh nhândùng dịch vụ cũng đợc lu lại thông tin đó để phục vụ việc lu trữ và thanhtoán tạm ứng sau này Song khi bệ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 ánghi đầy đủ thông tin về bệnh nhân quá trình điều trị tại bệnh viện
19
số 1 Yêu cầu KB
Vị trí KB
Khám bệnh 2
Y/C KB tại
vị trí
bệnh nhân Kết quả
Phòng Tài Chính
Thanh toán V/P 3
Xá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 T.Ư
Biểu đồ luồng dữ liệu mức đỉnh
Đơn thuốc
Thuốc cấp
Khoa điểu trị
Cung cấp dịch vụ 2.3
Giấy
NV Tiếp nhận
Giấy
NV
Trang 20Biể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 ứngviện phí của bệ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 bảo hiểm y tế Theo quy định của bệnh viện cứ bangày bệnh viện lại yêu cầu bệnh nhân thanh toán tạm ứng viện phí mộtlần và theo chu kỳ mỗi tháng bệnh việ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 trong tháng để thanh toán với bảohiể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ầnviện phí theo quy định phần trăm trên bảo hiểm y tế Cả hai chức năngnày đều đợc thực hiện một cách tự động
20
Trang 21II Phân tích hệ thống về dữ liệu
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 do P.P Chen đa ra năm 1976 và sau đó đợc dùng khá phổ biến trênthế giới Nó có đặc điểm khá đơn giản và gần với t duy khách quan Khixem xét các thông tin, ngời ta thờng gom cụm chúng xung quanh các vậtthể
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ực thể 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ị
+ 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
bệnh nhân
Thu tạm ứng 3.1 Thanh 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 BHYT 3.2
Danh sách BN điều trị có BHYT
Danh sách bệnh nhân điều trị