Hệ quản trị cơ sở dữ liệu Quản lý phòng khám đa khoa

14 5.2K 22
Hệ quản trị cơ sở dữ liệu  Quản lý phòng khám đa khoa

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

1 VIỆN ĐẠI HỌC MỞ HÀ NỘI KHOA CÔNG NGHỆ THÔNG TIN ĐỀ CƯƠNG BÀI TẬP LỚN MÔN :HỆ QUẢN TRỊ CƠ SƠ DƯ LIỆU ĐỀ TÀI : QUẢN LÝ PHONGG KHÁM ĐA KHOA Giáo viên hướng dẫn: Sinh viên thưc hiện: Lê Hữu Dũng Đinh Trọng Tuyên Bùi Văn Tuân Ngô Đăng Nam Hà Nội Tháng năm 2014 2 1. Mô tả bài toán - Bài toán “Quản lý khám bệnh tại phòng khám đa khoa”. - Phạm vi dành cho các bác sĩ và bệnh nhân trong quá trình khám bệnh tại phòng khám . - khi bệnh nhân tới phòng khám, bệnh nhân sẽ được khám bởi các bác sĩ theo yêu cầu khám. - Sau khi khám bệnh xong, bệnh nhân được yêu cầu dịch vụ, bệnh nhân sử dụng dịch vụ để chuẩn đoán bệnh. - Khi bác sĩ đã biết được bệnh của bệnh nhân, bác sĩ sẽ viết đơn thuốc cho bệnh nhân, bệnh nhân lấy thuốc. - Sau đó sẽ nhận được hóa đơn để bệnh nhân thanh toán các khoản tài chính với phòng khám. - Bài toán giúp các bác sĩ có thể quản lý được thông tin bệnh nhân đến khám bệnh, những dịch vụ, đơn thuốc và các khoản tài chính mà bệnh nhân cần thanh toán. - Còn về phía bệnh nhân thì qua các hóa đơn có thể biết ai là người điều trị, điều trị những gì, cần mua những loại thuốc nào và đặc biệt biết được số tiền mình phải trả là bao nhiêu. 2. Thiết kế CSDL 2.1. Phân tích các thực thể dữ liệu & thuộc tính. • BENHNHAN ( MBN, TenBN, TuoiBN, GT, Diachi, Baohiem ) • BACSI ( MBS, TenBS, ChuyenNganh ) • THUOC ( MT, TenThuoc, HSD, GiaThuoc) • DONTHUOC (MDT, TenBS, TenBN, MT, TienThuoc, LieuDung ) • DONDV (MDDV, MBS, MBN, MDV, TienDV) • HOADON ( MHD, MDT, MDDV, MBN, Tongtien ) 2.2. Vẽ sơ đồ thực thể-liên kết & giải thích các mối liên kết. 3 1 N Giải thích: Một bệnh nhân phải thanh toán 1 hoặc nhiều hóa đơn. 1 N Giải thích: Một bệnh nhân nhận được nhiều đơn thuốc. 1 N Giải thích:Một hóa đơn bao gồm nhiều đơn thuốc. 1 N Giải thích: Một bác sĩ viết nhiều đơn thuốc. 1 N Giải thích: Một bác sĩ viết nhiều đơn dịch vụ. 1 N Giải thích: Một đơn thuốc bao gồm nhiều loại thuốc. 1 N Giải thích: Một đơn dịch vụ bao gồm nhiều dịch vụ. Thanh toán HOADON BENHNHAN Nhận DONTHUOC BENHNHAN Gồm DONTHUOC HOADON Viết DONTHUOC BACSI Viết DONDV BACSI Gồm THUOC DONTHUOC Gồm DICHVU DONDV 4 3. Nêu các lược đồ quan hệ (LĐQH) & xác định các phụ thuộc hàm (PTH). 4. Xác định các ràng buộc: • Giới tính chỉ nhận giá trị “nam”, “nữ”, “khác”. • Bảo hiểm nhận giá trị “có” hoặc “không”. • Chuyên ngành của bác sĩ chỉ gồm “khám răng hàm mặt”, “khám tai mũi họng”, “khám mắt”. • Tiền thuốc = tổng giá thuốc của các mã thuốc có trong đơn thuốc • Tiền dịch vụ = tổng giá dịch vụ của các mã dịch vụ có trong đơn dịch vụ • Tổng tiền = tiền thuốc + tiền dịch vụ. • Nếu bệnh nhân có bảo hiểm thì sẽ được miễn 100% tiền dịch vụ, tiền thuốc. Mô tả chức năng -Tao các bảng database -Tạo các khóa chính,khóa phụ -Viết các câu lệnh Index -Tạo view,thu tục -Tạo store procede -Truy vấn các câu lệnh select,truy vấn,trigger 5 Code chương trình create database phongkhamdakhoa; use phongkhamdakhoa; Tạo các Database Tạo Các Bảng Tạo Bảng Bệnh Nhân create table BENHNHAN( MBN varchar(5) not null, TenBN nvarchar(30) not null, TuoiBN int, GT bit, DiaChi nvarchar(30), BaoHiem bit, ); Tạo Bảng Bác Sĩ create table BACSI( MBS varchar(5) not null, TenBS nvarchar (30) not null, ChuyenNganh nvarchar (30), ); Tạo bảng Dịch vụ create table DICHVU( MDV varchar(5) not null, TenDV nvarchar(30), GiaDV numeric(10), ); Tạo Bảng Thuốc create table THUOC( MT varchar(5)not null, TenThuoc nvarchar(30), HSD datetime, GiaThuoc numeric(10), ); Tạo Bảng Đơn Thuốc create table DONTHUOC( MDT varchar(5) not null, MBS varchar(5) not null, MBN varchar(5) not null, MT varchar(5) not null, Tienthuoc numeric(10), LieuDung Nvarchar(20), 6 ); Tạo Bảng Đơn Dịch Vụ create table DONDV( MDDV varchar(5) not null, MBS varchar(5) not null, MBN varchar(5) not null, MDV varchar(5) not null, TienDV numeric(10), ); Tạo Bảng Hóa Đơn create table HOADON( MHD varchar(5) not null, MDT varchar(5)not null, MDDV varchar (5) not null, MBN varchar(5) not null, TongTien numeric(10), ); Tạo các ràng buộc PK bảng bệnh nhân ALTER TABLE BENHNHAN add constraint PK_benhnhan Primary key(MBN); bảng bác sĩ ALTER TABLE BACSI add constraint PK_bacsi Primary key(MBS); bảng dịch vụ ALTER TABLE DICHVU add constraint PK_dichvu Primary key(MDV); thuốc ALTER TABLE THUOC add constraint PK_thuoc Primary key (MT); đơn thuốc ALTER TABLE DONTHUOC add constraint PK_donthuoc Primary Key(MDT); da chinh sua đơn dịch vụ ALTER TABLE DONDV add constraint PK_dondv Primary Key(MDDV); da chinh sua hóa đơn ALTER TABLE HOADON add constraint PK_hoadon Primary Key(MHD); da chinh sua Tạo các ràng buộc FK bảng đơn thuốc ALTER TABLE DONTHUOC add constraint KF_bacsithuoc Foreign Key(MBS) references BACSI(MBS); ALTER TABLE DONTHUOC add constraint KF_thuocthuoc Foreign Key(MT) references THUOC(MT); ALTER TABLE DONTHUOC add constraint KF_bnhanthuoc Foreign Key(MBN) references BENHNHAN(MBN); bảng đơn dịch vụ ALTER TABLE DONDV add constraint KF_bacsidv Foreign Key(MBS) references BACSI(MBS); 7 ALTER TABLE DONDV add constraint KF_dichvudv Foreign Key(MDV) references DICHVU(MDV); ALTER TABLE DONDV add constraint KF_bnhandv Foreign Key(MBN) references BENHNHAN(MBN); bảng hóa đơn ALTER TABLE HOADON add constraint FK_bnhan Foreign Key(MBN) references BENHNHAN(MBN); ALTER TABLE HOADON add constraint FK_dondv Foreign Key(MDDV) references DICHVU(MDDV); ALTER TABLE HOADON add constraint FK_hdthuoc Foreign Key(MDT) references THUOC(MDT); Tạo các ràng buộc CK bảng bệnh nhân ALTER TABLE BENHNHAN add constraint CK_GT CHECK (GT IN (N'Nam',N'Nữ')); ALTER TABLE BENHNHAN add constraint CK_baohiem CHECK (BaoHiem IN (N'có',N'không')); bảng dịch vụ ALTER TABLE DICHVU add constraint CK_GiaDV CHECK (GiaDV>100000); bảng thuốc ALTER TABLE THUOC add constraint CK_Giathuoc CHECK (GiaThuoc>1000); bảng đơn thuốc ALTER TABLE DONTHUOC ALTER COLUMN Tienthuoc NUMERIC(30) NULL; ALTER TABLE DONTHUOC add constraint CK_tienthuoc CHECK (TienThuoc>10000); bảng đơn dịch vụ ALTER TABLE DONDV ALTER COLUMN TienDV NUMERIC(30) NULL; ALTER TABLE DONDV add constraint CK_tienDV CHECK (TienDV>10000); bảng đơn Hóa đơn ALTER TABLE HOADON ALTER COLUMN TongTien NUMERIC(30) NULL; ALTER TABLE HOADON add constraint CK_TongTien CHECK (TongTien>100000); Tao ca INDEX CREATE INDEX ID_Benhnhan ON BENHNHAN (MBN); CREATE INDEX ID_Bacsi ON BACSI(MBS); CREATE INDEX ID_Dichvu ON DICHVU(MDV); CREATE INDEX ID_Thuoc ON THUOC(MT); CREATE INDEX ID_Hoadon ON HOADON(MDV); CREATE INDEX ID_Donthuoc ON DONTHUOC(MT); Nhập dư liệu cho các bảng 8 TẠO DU LIEU CHO CAC BANG Tạo 5 ban ghi vao bang BENHNHAN INSERT INTO Benhnhan VALUES ( 'A01',N'Bùi Văn Hiệp',10,N'Nam',N'Hà Nội', N'có'); INSERT INTO Benhnhan VALUES ( 'A02',N'Đinh Trọng Tuyên',12,N'Nữ',N'Hải Phòng', N'không'); INSERT INTO Benhnhan VALUES ( 'A03',N'Nguyễn Ngọc Sáng',14,N'Nam',N'Hà Nội',N'có'); INSERT INTO Benhnhan VALUES ( 'A04',N'Lã Duy Tùng',15,N'Nữ',N'Hải Dương',N'không'); INSERT INTO Benhnhan VALUES ( 'A05',N'Hoàng Văn Ngân',17,N'Nam',N'Quảng Ninh',N'có'); Tạo 5 bản ghi vao bảng BACSI INSERT INTO Bacsi VALUES ('B01',N'Ngô Đăng Nam',N'Da liễu'); INSERT INTO Bacsi VALUES ('B02',N'Bùi Văn Tuân',N'Thần kinh'); INSERT INTO Bacsi VALUES ('B03',N'Phạm Quang Huy',N'Răng hàm mặt'); INSERT INTO Bacsi VALUES ('B04',N'Nguyễn Văn Quân',N'Bướu cổ'); INSERT INTO Bacsi VALUES ('B05',N'Bùi Chí Cường',N'Mắt'); Tạo 5 bản ghi vào bảng DICHVU INSERT INTO Dichvu VALUES ('DV01',N'Siêu âm dưới da',10000); INSERT INTO Dichvu VALUES ('DV02',N'Điện não đồ',20000); INSERT INTO Dichvu VALUES ('DV03',N'Siêu âm vòm miệng',30000); INSERT INTO Dichvu VALUES ('DV04',N'Siêu âm tuyến giáp',40000); INSERT INTO Dichvu VALUES ('DV05',N'Đo mắt',50000); Tạo 5 bản ghi vào bảng THUOC INSERT INTO Thuoc VALUES ('T01',N'Kem trị rám','05/24/2014',11000); INSERT INTO Thuoc VALUES ('T02',N'Thuốc đau đầu','09/23/2015',12000); INSERT INTO Thuoc VALUES ('T03',N'Thuốc sâu răng','10/30/2015',13000); INSERT INTO Thuoc VALUES ('T04',N'Thuốc viêm họng','11/29/2014',14000); 9 INSERT INTO Thuoc VALUES ('T05',N'Thuốc nhỏ mắt','04/25/2013',15000); Tạo 5 bản ghi vào bảng DONTHUOC INSERT INTO Donthuoc VALUES ('DT01','B01','A01','T01',100000,N'Một lần'); INSERT INTO Donthuoc VALUES ('DT02','B02','A02','T02',200000,N'Một lần'); INSERT INTO Donthuoc VALUES ('DT03','B03','A03','T03',300000,N'Một lần'); INSERT INTO Donthuoc VALUES ('DT04','B04','A04','T04',400000,N'Một lần'); INSERT INTO Donthuoc VALUES ('DT05','B05','A05','T05',500000,N'Một lần'); Tạo 5 ban ghi vào bảng DONDV INSERT INTO Dichvu VALUES ('DD01','B01','A01','DV01',110000); INSERT INTO Dichvu VALUES ('DD02','B02','A02','DV02',120000); INSERT INTO Dichvu VALUES ('DD03','B03','A03','DV03',130000); INSERT INTO Dichvu VALUES ('DD04','B04','A04','DV04',140000); INSERT INTO Dichvu VALUES ('DD05','B05','A05','DV05',150000); Tạo 5 bản ghi vào bảng HOADON INSERT INTO Dichvu VALUES ('HD01','DT01','DD01','A01',null); INSERT INTO Dichvu VALUES ('HD02','DT02',,'DD02','A02',null); INSERT INTO Dichvu VALUES ('HD03','DT03','DD03','A03',null); INSERT INTO Dichvu VALUES ('HD04','DT04','DD04','A04',null); INSERT INTO Dichvu VALUES ('HD05','DT05','DD05','A05',null); Viết các câu lênh truy vấn VIET CAC STORE PROCEDURE LAY DU LIEU MOI BANG THEO PK VA PARAMETER TRUYEN VAO benh nhan create procedure spBN_select_ck @MBN nvarchar(10) as begin select * from BENHNHAN where @MBN=MBN end bac si create procedure spBS_select_ck @MBS nvarchar(10) 10 as begin select * from BACSI where @MBS=MBS end thuoc create procedure spT_select_ck @MT nvarchar(10) as begin select * from THUOC where @MT=MT end VIET CAC CAU LENH SELECT Dua ra ds don thuoc co tien thuoc >200000 select DONTHUOC.MDT as [ma thuoc], COUNT (MBN) as [so don thuoc] From DONTHUOC INNER JOIN BENHNHAN ON DONTHUOC.MBN = BENHNHAN.MBN GROUP BY DONTHUOC.MT, BENHNHAN.TenBN HAVING COUNT (Tienthuoc) > 200000 lay ra thong tin benh nhan co ten dat dau = 'nguyen' select distinct MBN, TenBN from BENHNHAN where TenBN like N'Nguyễn%' Đua ra DSBN va tong so hoa đơn ma ho co SELECT BENHNHAN.TenBN as [Họ tên BN], COUNT (MHD) AS [Số Hoá Đơn] FROM BENHNHAN INNER JOIN HOADON ON BENHNHAN.MBN =HOADON.MBN GROUP BY BENHNHAN.MBN, HOADON.MHD TAO THU TUC benh nhan Create Proc thembenhnhan @MBN VARCHAR(5) ,@TenBN NVARCHAR(50),@TuoiBN INT,@GT BIT,@diachi_BN NVARCHAR(50),@BaoHiem BIT as insert into BENHNHAN(MBN,TenBN ,TuoiBN ,GT ,DiaChi,BaoHiem ) [...]... BENHNHAN(TenBN,MBN,TuoiBN,GT,Diachi,BaoHiem) values (@TenBN,@MBN,@TuoiBN,@GT,@DiaChi,@BaoHiem) print N'Server 1 cập nhật dữ liệu thành công' end else begin if @c=0 begin insert LKHQTCSDL.phongkhamdakhoa.BENHNHAN(TenBN,MBN,TuoiBN,GT,Diachi,Bao Hiem) values (@TenBN,@MBN,@TuoiBN,@GT,@DiaChi,@BaoHiem) print N'Server 2 cập nhật dữ liệu thành công' end end end end ... BACKUP DATABASE phongkhamdakhoa TO DISK = 'C:\Program Files\Microsoft SQL Server\MSSQL10_50.SQLEXPRESS\MSSQL\Backup\phongkhamdakhoa.bak' • Restore: RESTORE DATABASE phongkhamdakhoa FROM DISK = 'C:\Program Files\Microsoft SQL Server\MSSQL10_50.SQLEXPRESS\MSSQL\Backup\phongkhamdakhoa.bak' - chưa đc -Lien ket -CREATE PROCEDURE sp_ThemBN ( @MBN varchar(5), @TenBN nvarchar(30) @TuoiBN int, @GT bit, @DiaChi... quyen thực thi tren cơ so du liệu BẢg Bac Si n GRANT Select, Insert, Update, Delete 13 ON BACSI TO QL GRANT Select ON BACSI TO NV - BẢg Benh Nhan n GRANT Select, Insert, Update, Delete ON BENHNHAN TO QL GRANT Select ON BENHNHAN TO NV Hủy quyền đã cấp : REVOKE Select, Insert, Update, Delete ON BACSI FROM QL REVOKE Select ON BACSI FROM BS -• Backup: BACKUP DATABASE phongkhamdakhoa TO DISK = 'C:\Program... 'A11',N'Le Duy Trung',10,N'Nam',N'Nam Dinh', N'có'); Insert Into BENHNHAN VALUES ( 'A12',N'Nguyen Van Hieu',12,N'Nam',N'Hà Nội', N'khong'); Xoá DROP trigger chitietBN /*Tạo trigger hien thị du liệu moi khi có dữ lieu mới đưoc thêm vao bang don thuoc create trigger dl_DT on DONTHUOC after insert as select * from inserted Kiểm tra INSERT INTO Donthuoc (MDT,MBS,MBN,MT,Tienthuoc,LieuDung) VALUES ('DT06','B06','A06','T06',200000,N'Một

Ngày đăng: 08/08/2014, 10:38

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan