武夷学院
课程设计报告。
数学与计算机系
课程设计项目研究报告。
目录。第 1 章项目简介 1
1.1 项目名称 1
1.2 开发人员 1
1.3 指导教师 1
第 2 章项目研究意义 1
2.1 课程设计概述 1
2.2 需求分析 1
2.3 研究意义 2
第3 章课程设计项目进度表 2
第4章课程设计任务分配表 2
第5 章达到的效果 3
5.1 程序设计思想 3
5.2 程序最终实现功能 5
第6 章设计心得 11
第7 章参考文献 12
10计科2班章忠杰(组长)、陈益雄、刘建武。
连雁平讲师。
随着医疗体制改革的不断深入,医疗市场的竞争越加的激烈,因此医院迫切需要改变医院管理模式,提升医院形象,增强医院核心竞争力。住院管理信息系统是医院信息管理系统非常重要的信息源头,将患者的基本信息录入到计算机系统,为临床和医技等提供基础信息。
住院管理系统,由住院病人管理系统(用于进行病人入院登记及病人基本情况信息的记载,以及病人在住院过程中的流程控制和管理,为费用管理、病区护理站、医生工作站等模块提供病人的基本信息。病人办理住院手续时,给病人分配一个住院号,并建立病人住院首页。如果病人是首次住院,分配一个新的住院号;如果病人不是首次住院,系统通过检索病案管理系统,查找到病人所拥有的住院号,在此住院号下新建一份病案,并自动生成病案首页的相关内容)、住院费用管理系统(完成住院病人的费用和预收款的记录和监管,病人预收金的催缴,病人出院的费用清算及收据处理)、住院医生工作站(完成住院部医生病历基本指标的填写,病情和病史的记载,医嘱的开立、实施,以及相关辅助功能。
实现医生病历收发和医嘱作业的数字化)。
方便医生和病人搜索相关的住院信息,并且实现从住院、**到出院的全过程精确管理与监控,大幅度减少住院**事故。对于常出现的医疗和财务纠纷的细节,可以极大的节约成本,提升医院整体效益,赢得长足发展。
根据医院住院的管理系统的实际需要,创建与住院部内容有关的一些的基本信息的数据库,先对住院部需要的一些信息用视图描述,再用sql语句进行创建。
1、住院患者的基本信息。
组成:病人编号,姓名,性别,年龄,联系**,联系地址。
2、住院患者的主治医生信息。
组成:工作号,姓名,职位,性别,科室。
3、患者居住病房相关信息。
组成:病房号,病床号,人数。
4、患者出院**表。
组成:病人编号,病人姓名,年龄,药品编号,药品名称,药**,床位**,检查费,**费,总费用。
5、 药品信息表。
组成部分:药品**,**,产地,药品名称,进价,生产日期,数量。
1、数据库的创建。
a)创建数据库
create database 医院住院管理系统。
b)住院患者的基本信息表
create table patient
pno char(18) not null primary key,name char(6) not null,*** char(2) not null default'男' check (***='男'or ***='女'),age smallint check (age>=0),tel char(11) not null,address varchar(30) not null);
插入数据。use 医院住院管理系统。
goinsert into patient values ('20104012057','张小芳','女','21','14759950001','武夷新天地号')
c)医院的患者居住病房相关信息表。
d)医院医生基本信息。
e) 医生与病人间的关系表。
f)药品信息表。
g)病人出院表。
h) 患者入住表。
2、删除操作。
删除病人表中已出院病人的信息。
delete from patient
where
in(select pno,mno
from cost,medication
where =
3、更新操作。
修改病人号为***的病人的年龄。
update patient set page=22 where pno='20104012057';
4、查询操作
a)、查询病人所服用的药。
select
from cost,patient,medication
where and
结果图 1b)、查询主治医生及其对应病人的一些信息。
use 医院管理系统。
select
from doctor,patient,doctor_patient
where and doctor_
查询结果。结果图 2
5、触发器。
a)、添加病房的人数不能大于病房总床位数。
create trigger tr_s_rq_insert on phouse
for insert as
declare @rs char(4)
select @rs=rs from inserted
if @rs>@rs
beginraiserror('增加人数应该小于病房的总床位',16,1)
rollback transaction
endb)、病人的年龄必须大于0否则不允许插入数据。
create trigger tr_patient_rq on patient
for insert as
declare @page char(2)
select @page=page from inserted
if @page<1
beginraiserror('病人年龄应大于0.',16,1)
rollback transaction
end结果图 3
c)、不允许删除医生表的内容。
create trigger try_delete on doctor
after delete
asbegin
rollback;
print '不允许删除'
end结果图 4
6、 创建视图 view_doctor_patient
要求显示医生编号,医生姓名,小科目,大科目,病人编号,其命令为:
create view view_doctor_patient as
select
doctor_
from doctor inner join doctor_patient
on doctor_
视图创建结果。
结果图 57、存储过程(存储药品表中的信息并给予查询)
create procedure [查询药品信息]
asselect * from medication
结果图 6每次到课程设计的时候,就是最头疼的事情了,在这次的实验中,同样遇到了好多的问题,虽然前面的几个程序比较简单,比如:表的创建、查询、添加、修改、删除等,但是到了触发器的创建,还有存储过程,视图的时候问题就出现的比较明显了。把表联系起来的时候就很容易出现问题,要么就是数据类型的问题,要么就是字段的不一致,这可能是我们对那些创建的语句还是不太明白,理解的不是很深,不会很深入的去编写更有意义的**,只是很表层的描述问题。