欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    数据库-校医门诊管理系统(共19页).doc

    • 资源ID:30233439       资源大小:396.50KB        全文页数:19页
    • 资源格式: DOC        下载积分:20金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要20金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    数据库-校医门诊管理系统(共19页).doc

    精选优质文档-倾情为你奉上 广西科技大学 校医院门诊管理系统 课程设计说明书 课程名称:广西科技大学校医院门诊管理系统班 级:姓 名:学 号:指导老师:原庆能 2016年1月14日一 实训目的1.掌握数据库基本原理,理解关系数据库的设计方法、设计思路。 初步掌握一种关系数据库语言,例如SQL  Server。2. 通过设计数据库系统应用课题,进一步熟悉数据库管理系统的操作技术,提高动手能 力,提高分析问题和解决问题的能力;3. 学习数据库应用系统开发方法。培养学生初步的软件设计能力,形成良好的编程风格二实训内容一 需求分析广西科技大学校医院门诊管理系统所要处理的数据有:就诊卡号、姓名、性别、年龄、联系电话、所在部门、就诊科室、就诊大夫、就诊日期、病情描述、处方编号、药品编码、药品名称、类别、库存余量、规格、保质期、用量、数量、金额、医务人员的职工号、姓名、性别、年龄、职称、所在科室、专长、诊病时间,科室名称、科室位置、可容纳医生数等。完整性要求:就诊日期在药品的保质期前;使用的药品数量小于库存余量,在同一时间段、同一科室诊病的医生数小于或等于科室可容纳医生数。安全性要求:学生和教师持就诊卡就诊,可查阅医生的相关信息;医生可填写病例、开处方;药房护士可进行药品的出库、入库进行管理。二 概念设计1. 根据需求分析,可抽象出科室、医生、病人、处方和药品5个实体,其中:科室有:科室名称、科室位置、可容纳医生数属性,科室名称为实体标识符。医生有:职工号、姓名、性别、年龄、所在部门、职称、专长、诊病时间属性,职工为实体标识符。病人有:就诊卡号、姓名、性别、年龄、联系电话属性,就诊卡号为实体标识符处方有:处方编号、病情描述、诊断日期属性,处方编号为实体标识符。药品有:药品编码、药品名称、类别、库存余量、规格、保质期、数量、金额属性,药品编码为实体标识符。实体之间的关系说明:1)一个科室可以容纳多个医生2)一个医生可以填写多个处方3)一个病人可以查看多个处方4)一个处方可以使用多个药品,一种药品可以用于不同是处方5)药房护士可以对药品进行出入库管理。2. E-R图如下容纳科室医生病人1nm11填写查看管理nnn处方使用药品mn三、 逻辑设计将上述ER图转化为关系模式集1) 将5个实体转化为关系模式病人:就诊卡号、姓名、性别、年龄、联系电话医生:职工号、姓名、性别、年龄、所在部门、职称、专长、诊病时间科室:科室名称、科室位置、可容纳医生数药品:药品编码、药品名称、类别、库存余量、规格、保质期、数量、金额处方:处方编号、病情描述、诊断日期2) 对1:n关系“容纳”,“填写”,“查看”转化为关系模式医生:职工号、姓名、性别、年龄、所在部门、职称、专长、诊病时间、科室名称处方:处方编号、病情描述、诊断日期、职工号、就诊卡号3) 对m:n关系“填写”,“使用”生成新的关系模式使用:处方编号、药品编码、用量、用法管理:职工号、药品编码、药品原数量、操作时间、数量、出入关系4) 所有关系如下病人:就诊卡号、姓名、性别、年龄、联系电话科室:科室名称、科室位置、可容纳医生数药品:药品编码、药品名称、类别、库存余量、规格、保质期、数量、金额医生:职工号、姓名、性别、年龄、所在部门、职称、专长、诊病时间、科室名称处方:处方编号、病情描述、诊断日期、职工号、就诊卡号使用:处方编号、药品编码、用量、用法管理:职工号、药品编码、操作时间、数量、出入关系四、 物理设计医生表doctor:属性数据类型长度或取值范围主键外键空值职工号varchar20是否姓名varchar10否性别varchar10年龄int所在部门varchar10职称varchar10专长varchar25诊病时间varchar20科室名称varchar10是病人表patient:属性数据类型长度或取值范围主键外键空值就诊卡号varchar20是否姓名varchar10否性别varchar5年龄varchar10联系电话varchar20科室表room:属性数据类型长度或取值范围主键外键空值科室名称varchar10是否科室位置varchar10否可容纳医生数Int否药品表drug:属性数据类型长度或取值范围主键外键空值药品编码varchar20是否药品名称varchar20否类别varchar10否库存余量varchar20否规格varchar否保质期datetime否数量smallmoney否金额int否处方表prescription:属性数据类型长度或取值范围主键外键空值处方编号varchar20是否病情描述datetime诊断日期varchar50职工号varchar20是否就诊卡号varchar20是否使用表userdrug:属性数据类型长度或取值范围主键外键空值处方编号varchar20是是否药品编码varchar20是是否用量int用法varchar20管理表inout:属性数据类型长度或取值范围主键外键空值职工号varchar20是是否药品编码varchar20是是否药品原数量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 INSERTAS 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 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创建药品日期触发器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 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(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_datetime_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 保质期 from 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='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 科室名称=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 roomno 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='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 drug 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 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 dbo.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 patient.就诊卡号=就诊卡号 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_prescriptionUSE 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),药品编号 char(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创建修改处方的存储过程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 药品编码=药品编码endelsebeginprint'处方或药品编码错误'endGO创建删除处方的存储过程delete_prescriptionUSE displayGOCREATE PROCEDURE delete_prescription处方号 char(20)ASdelete from prescriptionwhere 处方编号=处方号GO创建删除用药信息的存储过程delete_userdrugUSE displayGOCREATE PROCEDURE delete_userdrug处方号 char(20),药品编码 char(20)ASdelete from userdrugwhere 处方编号=处方号 and 药品编码=药品编码GO创建统计科室医生数的存储过程count_room_docUSE displayGOCREATE PROCEDURE count_room_doc科室名 char(20)ASSELECT *FROM dbo.doctor where 科室名称=科室名select dbo.doctor.科室名称,科室位置,可容纳医生数,COUNT(*) as 现有医生from dbo.doctor,dbo.roomwhere doctor.科室名称=科室名 and doctor.科室名称=room.科室名称group by doctor.科室名称,科室位置,可容纳医生数GO五、 测试1. 测试触发器1) .在userdrug中插入或修改,使药品用量大于库存余量2) .测试药品是否超过使用日期在userdrug中修改处方编号为“0045”的信息3) .测试出入库触发器执行存储过程insert_inout 将药品“001”出库55操作前:操作后:2. 测试存储过程1) .查询职工号为“”的医生信息2) .插入一条处方信息,处方编号为“”,就诊卡号为“”3) .插入处方编号为“”的用药信息4) .查询处方编号为“”的信息5) .查询就诊卡号为“”的信息6) .修改处方编号为“”的信息7).删除处方编号为“”的信息8) .查询在科室2中的医生人数单纯的课本内容,并不能满足学生的需要,通过补充,达到内容的完善 教育之通病是教用脑的人不用手,不教用手的人用脑,所以一无所能。教育革命的对策是手脑联盟,结果是手与脑的力量都可以大到不可思议。专心-专注-专业

    注意事项

    本文(数据库-校医门诊管理系统(共19页).doc)为本站会员(飞****2)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开