数据库-校医门诊管理系统(共27页)_第1页
数据库-校医门诊管理系统(共27页)_第2页
数据库-校医门诊管理系统(共27页)_第3页
数据库-校医门诊管理系统(共27页)_第4页
数据库-校医门诊管理系统(共27页)_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、精选优质文档-倾情为你奉上 广西科技大学 校医院门诊管理系统 课程设计说明书 课程名称:广西科技大学校医院门诊管理系统班 级:姓 名:学 号:指导老师:原庆能 2016年1月14日1 实训目的1.掌握数据库基本原理,理解关系数据库的设计方法、设计思路。 初步掌握一种关系数据库语言,例如SQL  Server。2. 通过设计数据库系统应用课题,进一步熟悉数据库管理系统的操作技术,提高动手能 力,提高分析问题和解决问题的能力;3. 学习数据库应用系统开发方法。培养学生初步的软件设计能力,形成良好的编程风格二实训内容1 需求分析广西科技大学校医院门诊管理系统所要处理的数

2、据有:就诊卡号、姓名、性别、年龄、联系电话、所在部门、就诊科室、就诊大夫、就诊日期、病情描述、处方编号、药品编码、药品名称、类别、库存余量、规格、保质期、用量、数量、金额、医务人员的职工号、姓名、性别、年龄、职称、所在科室、专长、诊病时间,科室名称、科室位置、可容纳医生数等。完整性要求:就诊日期在药品的保质期前;使用的药品数量小于库存余量,在同一时间段、同一科室诊病的医生数小于或等于科室可容纳医生数。安全性要求:学生和教师持就诊卡就诊,可查阅医生的相关信息;医生可填写病例、开处方;药房护士可进行药品的出库、入库进行管理。2 概念设计1. 根据需求分析,可抽象出科室、医生、病人、处方和药品5个实

3、体,其中:科室有:科室名称、科室位置、可容纳医生数属性,科室名称为实体标识符。医生有:职工号、姓名、性别、年龄、所在部门、职称、专长、诊病时间属性,职工为实体标识符。病人有:就诊卡号、姓名、性别、年龄、联系电话属性,就诊卡号为实体标识符处方有:处方编号、病情描述、诊断日期属性,处方编号为实体标识符。药品有:药品编码、药品名称、类别、库存余量、规格、保质期、数量、金额属性,药品编码为实体标识符。实体之间的关系说明:1)一个科室可以容纳多个医生2)一个医生可以填写多个处方3)一个病人可以查看多个处方4)一个处方可以使用多个药品,一种药品可以用于不同是处方5)药房护士可以对药品进行出入库管理。2.

4、E-R图如下容纳科室医生病人1nm11填写查看管理nnn处方使用药品mn3、 逻辑设计将上述ER图转化为关系模式集1) 将5个实体转化为关系模式病人:就诊卡号、姓名、性别、年龄、联系电话医生:职工号、姓名、性别、年龄、所在部门、职称、专长、诊病时间科室:科室名称、科室位置、可容纳医生数药品:药品编码、药品名称、类别、库存余量、规格、保质期、数量、金额处方:处方编号、病情描述、诊断日期2) 对1:n关系“容纳”,“填写”,“查看”转化为关系模式医生:职工号、姓名、性别、年龄、所在部门、职称、专长、诊病时间、科室名称处方:处方编号、病情描述、诊断日期、职工号、就诊卡号3) 对m:n关系“填写”,“

5、使用”生成新的关系模式使用:处方编号、药品编码、用量、用法管理:职工号、药品编码、药品原数量、操作时间、数量、出入关系4) 所有关系如下病人:就诊卡号、姓名、性别、年龄、联系电话科室:科室名称、科室位置、可容纳医生数药品:药品编码、药品名称、类别、库存余量、规格、保质期、数量、金额医生:职工号、姓名、性别、年龄、所在部门、职称、专长、诊病时间、科室名称处方:处方编号、病情描述、诊断日期、职工号、就诊卡号使用:处方编号、药品编码、用量、用法管理:职工号、药品编码、操作时间、数量、出入关系4、 物理设计医生表doctor:属性数据类型长度或取值范围主键外键空值职工号varchar20是否姓名var

6、char10否性别varchar10年龄int所在部门varchar10职称varchar10专长varchar25诊病时间varchar20科室名称varchar10是病人表patient:属性数据类型长度或取值范围主键外键空值就诊卡号varchar20是否姓名varchar10否性别varchar5年龄varchar10联系电话varchar20科室表room:属性数据类型长度或取值范围主键外键空值科室名称varchar10是否科室位置varchar10否可容纳医生数Int否药品表drug:属性数据类型长度或取值范围主键外键空值药品编码varchar20是否药品名称varchar20否类别

7、varchar10否库存余量varchar20否规格varchar否保质期datetime否数量smallmoney否金额int否处方表prescription:属性数据类型长度或取值范围主键外键空值处方编号varchar20是否病情描述datetime诊断日期varchar50职工号varchar20是否就诊卡号varchar20是否使用表userdrug:属性数据类型长度或取值范围主键外键空值处方编号varchar20是是否药品编码varchar20是是否用量int用法varchar20管理表inout:属性数据类型长度或取值范围主键外键空值职工号varchar20是是否药品编码varch

8、ar20是是否药品原数量int否操作时间datetime否数量int否出入关系varchar4否创建药品用量触发器tr_insert_user_drug/tr_update_user_drugUSE displayGOIF EXISTS (SELECT name FROM sysobjectsWHERE type='TR' AND name='tr_insert_user_drug')DROP TRIGGER tr_insert_user_drugGOCREATE TRIGGER tr_insert_user_drug ON userdrugFOR INSERT

9、AS DECLARE userDg intselect userDg=用量 from Insertedif(select 库存余量 from drugwhere 药品编码=(select 药品编码 from Inserted)<userDgBEGIN PRINT'药品余量不足' ROLLBACK TRANSACTIONENDUSE displayGOIF EXISTS (SELECT name FROM sysobjectsWHERE type='TR' AND name='tr_update_user_drug')DROP TRIGGER

10、 tr_update_user_drugGOCREATE TRIGGER tr_update_user_drug ON userdrugFOR UPDATEAS IF UPDATE(用量)DECLARE userDg int, drugno char(20)select userDg=用量 from insertedselect drugno=药品编码 from insertedif(select 库存余量 from drugwhere 药品编码=drugno)<userDgBEGIN PRINT'药品余量不足' ROLLBACK TRANSACTIONEND创建药品日期

11、触发器tr_insert_datetime_drug/tr_update_datetime_drugUSE displayGOIF EXISTS (SELECT name FROM sysobjectsWHERE type='TR' AND name='tr_insert_datetime_drug')DROP TRIGGER tr_insert_datetime_drugGOCREATE TRIGGER tr_insert_datetime_drug ON userdrugFOR INSERTAS DECLARE drugno char(20),presno

12、char(20),date1 datetime,drugname char(20)select presno=处方编号 from Insertedselect drugno=药品编码 from Insertedselect drugname=药品名称 from drug where 药品编码=drugnoselect date1=诊断日期 from prescription where 处方编号=presnoif(select 保质期 from drug where 药品编码=drugno and 药品编码 in(select 药品编码 from userdrug where 处方编号 in(

13、select 处方编号 from prescription)<date1BEGIN PRINT'药品:'+drugname+'超过使用日期' ROLLBACK TRANSACTIONENDUSE displayGOIF EXISTS (SELECT name FROM sysobjectsWHERE type='TR' AND name='tr_update_datetime_drug')DROP TRIGGER tr_update_datetime_drugGOCREATE TRIGGER tr_update_dateti

14、me_drug ON userdrugFOR UPDATEAS IF UPDATE(药品编码)DECLARE drugno char(20),presno char(20),date1 datetime,drugname char(20)select presno=处方编号 from Insertedselect drugno=药品编码 from Insertedselect drugname=药品名称 from drug where 药品编码=drugnoselect date1=诊断日期 from prescription where 处方编号=presnoif(select 保质期 fr

15、om drug where 药品编码=drugno and 药品编码 in(select 药品编码 from userdrug where 处方编号 in(select 处方编号 from prescription)<date1BEGIN PRINT'药品:'+drugname+'超过使用日期' ROLLBACK TRANSACTIONEND创建科室医生触发器tr_insert_room_doc/tr_update_room_docUSE displayGOIF EXISTS (SELECT name FROM sysobjectsWHERE type=&

16、#39;TR' AND name='tr_insert_room_doc')DROP TRIGGER tr_insert_room_docGOCREATE TRIGGER tr_insert_room_doc ON doctorFOR INSERTAS DECLARE roomno int,roomname char(10)select roomname=科室名称 from insertedselect roomno=可容纳医生数 from room where 科室名称=roomnameif(select count(*)from doctor where 科室名称=

17、roomname)>roomnoBEGIN PRINT'科室医生已满' ROLLBACK TRANSACTIONENDUSE displayGOIF EXISTS (SELECT name FROM sysobjectsWHERE type='TR' AND name='tr_update_room_doc')DROP TRIGGER tr_update_room_docGOCREATE TRIGGER tr_update_room_doc ON doctorFOR UPDATEAS IF UPDATE(科室名称)DECLARE roomn

18、o int,roomname char(10)select roomname=科室名称 from insertedselect roomno=可容纳医生数 from room where 科室名称=roomnameif(select count(*)from doctor where 科室名称=roomname)>roomnoBEGIN PRINT'科室医生已满' ROLLBACK TRANSACTIONEND创建出入库触发器tr_inout_drugUSE displayGOIF EXISTS (SELECT name FROM sysobjectsWHERE type

19、='TR' AND name='tr_inout_drug')DROP TRIGGER tr_inout_drugGOCREATE TRIGGER tr_inout_drug ON inoutFOR INSERTAS DECLARE userDg int,guanxi char(4),drugno char(20)select drugno=药品编码 from insertedselect userDg=数量 from Insertedselect guanxi=出入关系 from insertedif(guanxi='出库')update dr

20、ug set 库存余量=库存余量-userDg where 药品编码=drugnoif(guanxi='入库')update drug set 库存余量=库存余量+userDg where 药品编码=drugnoGO创建查看医生信息的存储过程select_doctorUSE displayGOCREATE PROCEDURE select_doctor职工号 char(20)ASSELECT *FROM dbo.doctorwhere 职工号=职工号GO创建查看处方信息的存储过程select_patient_pre_chu/select_patient_pre_kahaoUSE

21、 display /*通过处方编号查看*/GOCREATE PROCEDURE select_patient_pre_chu处方号 char(20)ASselect 处方编号,病情描述,诊断日期,doctor.姓名 as 诊断医生,patient.姓名 as 就诊人from dbo.prescription,dbo.doctor,dbo.patientwhere prescription.处方编号=处方号 and prescription.职工号=doctor.职工号 and prescription.就诊卡号=patient.就诊卡号select 处方编号,药品名称,用量,用法from db

22、o.userdrug,dbo.drugwhere 处方编号=处方号 and userdrug.药品编码=drug.药品编码GOUSE display /*通过就诊卡号查看*/GOCREATE PROCEDURE select_patient_pre_kahao就诊卡号 char(20)ASselect dbo.prescription.就诊卡号,patient.姓名 as 就诊人,病情描述,诊断日期,doctor.姓名 as 诊断医生from dbo.prescription,dbo.doctor,dbo.patientwhere prescription.就诊卡号=就诊卡号 and pati

23、ent.就诊卡号=就诊卡号 and prescription.职工号=doctor.职工号select userdrug.处方编号,药品名称,用量,用法,doctor.姓名 as 诊断医生from dbo.userdrug,dbo.drug,dbo.prescription,dbo.doctorwhere prescription.就诊卡号=就诊卡号 and userdrug.处方编号=prescription.处方编号 and userdrug.药品编码=drug.药品编码 and prescription.职工号=doctor.职工号GO创建插入处方的存储过程insert_prescrip

24、tionUSE displayGOCREATE PROCEDURE insert_prescription处方号 char(20),日期 datetime,病情描述 char(50),职工号 char(20),就诊号 char(20)ASinsert prescriptionvalues(处方号,日期,病情描述,职工号,就诊号)select * from prescription where 处方编号=处方号GO创建插入用药信息的存储过程insert_userdrugUSE displayGOCREATE PROCEDURE insert_userdrug处方号 char(20),药品编号 c

25、har(20),用量 int,用法 char(20)ASinsert userdrugvalues(处方号,药品编号,用量,用法)select * from userdrug where 处方编号=处方号GO创建插入药品出入库信息的存储过程insert_inoutUSE displayGOCREATE PROCEDURE insert_inout职工号 char(20),药品编码 char(20),药品原数量 int,操作时间 datetime,数量 int,出入库 char(4)ASinsert inoutvalues(职工号,药品编码,药品原数量,操作时间,数量,出入库)GO创建修改处方的

26、存储过程update_prescription/update_userdrugUSE display /*通过处方号修改病情描述*/GOCREATE PROCEDURE update_prescription处方号 char(20),病情描叙 char(50) ASif(select 处方编号 from prescription where 处方编号=处方号)=处方号)beginupdate prescriptionset 病情描述=病情描叙where 处方编号=处方号select * from prescription where 处方编号=处方号endelsebeginprint'此处方不存在'endGOUSE display /*通过处方号修改药品使用信息*/GOCREATE PROCEDURE update_userdrug处方号 char(20),药品编码 char(20),用量 int,用法 char(20) ASif(select 处方编号 from userdrug where 处方编号=处方号 and 药品编码=药品编码)=处方号)beginupdate userdrugset 用量=用量,用法=用法where 处方编号=处方号 and 药品编码=药品编码endels

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论