收藏 分销(赏)

学术讨论—JSP医院门诊取药功能实现全解.docx

上传人:Fis****915 文档编号:441398 上传时间:2023-09-27 格式:DOCX 页数:24 大小:6.79MB
下载 相关 举报
学术讨论—JSP医院门诊取药功能实现全解.docx_第1页
第1页 / 共24页
学术讨论—JSP医院门诊取药功能实现全解.docx_第2页
第2页 / 共24页
学术讨论—JSP医院门诊取药功能实现全解.docx_第3页
第3页 / 共24页
学术讨论—JSP医院门诊取药功能实现全解.docx_第4页
第4页 / 共24页
学术讨论—JSP医院门诊取药功能实现全解.docx_第5页
第5页 / 共24页
点击查看更多>>
资源描述

1、2022级本科数据库课程设计报告 摘 要 随着社会的进步和人类生产生活水平的提高,国内现有的医院不管从规模上还是效劳质量上都实现了显著增长。显然,如果医院门诊仍采用人工管理的方式显然无法应对庞大的病患需求。如今,科学与开展已成为时代的主题。在中国软件行业日益进步的今天,我们可以利用这些资源来帮助减轻医生和病人的负担,让病人能够尽快就医。一个高质量的医院门诊管理系统,能提高医院的社会效益与经济效益。本文采用结构化分析和设计方法,通过MVC模式用JSP页面实现医院的网络化,通过msql数据库来存储信息。运用数据流程图和E-R图等工具对小型医院门诊管理系统数据库进行分析和设计,实现登记挂号、诊断治疗

2、、收费挂号等医院门诊的根本业务。关键词:医院;门诊管理信息系统;JSP; 系统开发;数据库设计一、 概述1、1背景介绍随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已经进入人类社会的各个领域并发挥着越来越重要的作用。作为计算机应用的一局部,使用计算机对医院门诊信息进行管理,具有比手工管理所无法比较的优点。例如:检索迅速、查找方便、可靠性高、存储量大等。这些优点能够极大地提高人事劳资管理的效率,也是企业的科学化、正规化管理的重要条件。针对典型的管理系统,以医院门诊管理为载体,设计医院门诊管理系统。在传统的医院门诊信息管理中,其过程往往是很复杂的,繁琐的,医院门诊信息

3、管理以患者挂号、诊治、开药为核心,在此过程中又需要经过假设干道手续,因为整个过程都需要手工操作,效率十分低下,且由于他们之间关联复杂,统计和查询的方式各不相同;且会出现信息的重复传递问题,因此该过程必须实现信息化。近年来我国医疗事业开展迅速,手工管理方式在医院门诊信息管理等需要大量事务处理的应用中已显得不相适应,采用IT技术提高效劳质量和管理水平势在必行。目前,对外开放必然趋势使医疗行业直面外国同行单位的直接挑战,因此,医院必须提高其工作效率,改善其工作环境。这样,医院门诊信息管理的信息化势在必行。 我们的系统开发的整体任务是实现医院门诊信息管理的系统化、标准化、自动化和智能化,从而到达提高医

4、疗单位管理效率的目的。1、2系统目标本课题的目的是使医院门诊信息管理清晰化,透明化,便于操作,易于管理。通过功能模块的优化组合实现不同的管理细节,使管理过程实现最大程度的自动化与信息化,并能自动对人工操作环节进行复查,使医院门诊管理信息系统出错率降至最低。在传统的医院门诊信息管理中,各种管理工作往往是很复杂烦琐的。医院门诊信息管理的特点是信息处理量比较大,所管理的种类比较繁多,而且由于挂号、开药等单据发生量特别大,关联信息多,查询和统计的方式不尽相同。在管理过程中经常会出现信息的重复传递,因此医院门诊信息管理必须实现计算机化处理。对于后台数据库的建立和维护要求建立起数据的一致性和完整性强、数据

5、平安性好、符合3NF范式。而前端应用程序的开发那么要求应用程序能提供强大的数据操纵功能,界面友好、使用简单方便等特点。我们系统开发的总体任务是实现医院门诊信息管理的系统化、标准化、自动化、信息化与智能化,从而到达提高医院门诊信息管理效率的目的。通过医院门诊收费系统的设计,熟练掌握MyEclipse,Mysql等工具软件,系统地掌握需求分析、数据库设计、编码实现、测试等软件开发的流程,提高自身分析问题、解决问题的能力。1、3系统功能框架图图1 医院门诊管理信息系统的系统结构图二、 技术简介2、1 java简介Java是一种简单的,跨平台的,面向对象的,分布式的,解释的,健壮的平安的,结构的中立的

6、,可移植的,性能很优异的多线程的,动态的语言。当1995年SUN推出Java语言之后,全世界的目光都被这个神奇的语言所吸引。 1.平台无关性平台无关性是指Java能运行于不同的平台。Java引进虚拟机 原理,并运行于虚拟机,实现不同平台的Java接口之间。使用Java编写的程序能在世界范围内共享。Java的数据类型与 机器无关,Java虚拟机Java Virtual Machine是建立在硬件和操作系统之上,实现Java二进制代码的解释执行功能, 提供于不同平台的接口的。 2.平安性Java的编程类似C+,学习过C+的读者将很快掌握Java的精髓。Java舍弃了C+的指针对存储器地址的直接操作

7、,程序运行时,内存由操作系统分配,这样可以防止病毒通过指针侵入系统。Java对程序提供了平安管理器,防止程序的非法访问。3.面向对象Java吸取了C+面向对象的概念,将数据封装于类中,利用类的优点,实现了程序的简洁性和便于维护性。类的封装性、继承性等有关对象的特性,使程序代码只需一次编译,然后通过上述特性反复利用。程序员只需把主要精力用在类和接口的设计和应用上。Java提供了众多的一般对象的类,通过继承即可使用父类的方法。在Java中,类的继承关系是单一的非多重的,一个子类只有一个父类,子类的父类又有一个父类。Java提供的Object类及其子类的继承关系如同一棵倒立的树形,根类为Object

8、类,Object类功能强大,经常会使用到它及其它派生的子类。4.分布式Java建立在扩展TCP/IP网络平台上。库函数提供了用 和FTP协议传送和接受信息的方法。这使得程序员使用网络上的文件和使用本机文件一样容易。5.健壮性Java致力于检查程序在编译和运行时的错误。类型检查帮助检查出许多开发早期出现的错误。Java自己操纵内存减少了内存出错的可能性。Java还实现了真数组,防止了覆盖数据的可能,这些功能特征大大提高了开发Java应用程序的周期。并且Java还提供了Null指针检测、数组边界检测、异常出口、Byte code校验等功能。6.解释型我们知道C,C+等语言,都是针对CPU芯片进行编

9、译,生成机器代码,该代码的运行就和特定的CPU有关。Java不像C或C+,它不针对CPU芯片进行编译,而是把程序编译成称为自字节码的一种“中间代码。字节码是很接近机器码的文件,可以在提供了java虚拟机JVM的任何系统上被解释执行。7.动态java程序的根本组成单元就是类,有些类是自己编写的,有些是从类库中引入的,而类又是运行时动态装载的,这就使得Java可以在分部环境中动态的维护程序及分类,而不像C+那样,没档期类库升级以后,如果想让程序具有新类库提供的功能,就需要修改程序,重新编译。2、2JSP简介JSP全名为Java Server Pages,中文名叫java效劳器页面,其根本是一个简化

10、的Servlet设计,它1 是由Sun Microsystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。JSP技术有点类似ASP技术,它是在传统的网页HTML标准通用标记语言的子集文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件,后缀名为(*.jsp)。 用JSP开发的Web应用是跨平台的,既能在Linux下运行,也能在其他操作系统上运行。它实现了Html语法中的java扩张以 形式。JSP与Servlet一样,是在效劳器端执行的。通常返回给客户端的就是一个HTML文本,因此客户端只要有浏览器就能浏览。JSP技术

11、使用Java编程语言编写类XML的tags和scriptlets,来封装产生动态网页的处理逻辑。网页还能通过tags和scriptlets访问存在于效劳端的资源的应用逻辑。JSP将网页逻辑与网页设计的显示别离,支持可重用的基于组件的设计,使基于Web的应用程序的开发变得迅速和容易。 JSP(JavaServer Pages)是一种动态页面技术,它的主要目的是将表示逻辑从Servlet中别离出来。Java Servlet是JSP的技术根底,而且大型的Web应用程序的开发需要Java Servlet和JSP配合才能完成。JSP具备了Java技术的简单易用,完全的面向对象,具有平台无关性且平安可靠,

12、主要面向因特网的所有特点。语言组成:request:对象是 javax.servlet. ServletRequest类型的对象。 Response: 代表的是对客户端的响应,主要是将JSP容器处理过的对象传回到客户端。response对象也具有作用域,它只在JSP页面内有效。Session:从一个客户翻开浏览器并连接到效劳器开始,到客户关闭浏览器离开这个效劳器结束,被称为一个会话。当一个客户访问一个效劳器时,可能会在这个效劳器的几个页面之间反复连接,反复刷新一个页面,效劳器应当通过某种方法知道这是同一个客户,这就需要session对象。Application:效劳器启动后就产生了这个appl

13、ication对象,当客户在所访问的网站的各个页面之间浏览时,这个application对象都是同一个,直到效劳器关闭。但是与session不同的是,所有客户的application对象都是同一个,即所有客户共享这个内置的application对象。out :用于在Web浏览器内输出信息,并且管理应用效劳器上的输出缓冲区。在使用 out 对象输出数据时,可以对数据缓冲区进行操作,及时去除缓冲区中的剩余数据,为其他的输出让出缓冲空间。待数据输出完毕后,要及时关闭输出流。page :代表JSP本身,只有在JSP页面内才是合法的。 page隐含对象本质上包含当前 Servlet接口引用的变量,类似于

14、Java编程中的 this 指针。 Config:主要作用是取得效劳器的配置信息。通过 pageContext对象的 getServletConfig() 方法可以获取一个config对象。当一个Servlet 初始化时,容器把某些信息通过 config对象传递给这个 Servlet。 开发者可以在web.xml 文件中为应用程序环境中的Servlet程序和JSP页面提供初始化参数。Exception:java.lang.Throwable 的实例,该实例代表其他页面中的异常和错误。 pageContext :作用是取得任何范围的参数,通过它可以获取 JSP页面的out、request、rep

15、onse、session、application 等对象。pageContext对象的创立和初始化都是由容器来完成的,在JSP页面中可以直接使用 pageContext对象。2、3 MySQL简介MySQL是一个关系型数据库管理系统,由瑞典 MySQL AB 公司开发,目前属于Oracle公司。MySQL 最流行的关系型数据库管理系统,在 WEB 应用方面 MySQL 是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一。MySQL 是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在

16、一个大仓库内,这样就增加了速度并提高了灵活性。MySQL 所使用的 SQL 语言是用于访问数据库的最常用标准化语言。MySQL 软件采用了双授权政策,它分为社区版和商业版,由于其体积小、速度快、总体拥有本钱低,尤其是开放源码这一特点,一般中小型网站的开发都选择 MySQL 作为网站数据库。由于其社区版的性能卓越,搭配PHP和Apache可组成良好的开发环境。2、4 JDBC简介JDBC,全称为Java DataBase Connectivity standard, 是Sun公司注册了的商标,代表用来执行SQL语句的Java语言应用程序编程接口API,它包括一系列用Java语言编写的类和接口,是

17、J2EE访问数据库的标准接口技术,它与Microsoft开发的ODBC技术具有同样的成效,提供一组通用的API,通过数据库特定的驱动程序,访问数据库。不同之处是ODBC是用C语言编写的,主要用于在Windows平台下访问数据库,JDBC是完全用Java语言编写的,是Java程序访问数据库的接口技术。目标:JDBC API的目标是提供对关系数据库的厂商无关的访问。通过JDBC API的使用,可以将使用的各种数据库实现上的不同都为用户抽象出来。也就是说,采用JDBC可以很容易用SQL语句访问任何商用数据库,通过JDBC API,数据库应用开发者就不需要编写1个程序访问Sybase数据库,编写另1个

18、程序访问Oracle数据库,再编写第3个程序访问Informix数据库,而只需编写1个使用JDBC API的程序,就可以将SQL查询语句送往适宜的数据库。同时,采用Java语言编写应用程序,具有平台无关性,不需要为不同的平台编写不同的应用程序。因此,采用Java和JDBC编写数据库应用程序的开发者可以真正做到“编写一次,随处可用。虽然JDBC标准并没有指明JDBC API只用于关系数据库实际上,它们可以用于访问任何表格式的数据库,包括电子表格和文件但实际上它一直主要用于实施对关系数据库的访问。三、需求分析3、1角色描述医院门诊管理系统主要是为了病人就诊方便,医院管理简单快捷而设的。在病人从就诊

19、医生处的到开药处方单时,那么需要凭借处方单到药房从管理员那儿进行缴费取药,而药品拿去之后,药品管理员会给病人开出药品缴费单,上面注明日期说明病人已经领取药物。3、2功能描述1.顶层数据流图 2.总体DFD(第一层数据流图 本医院门诊管理系统主要实现:挂号、就诊、缴费取药、仓库药品管理和财务管理。总体的DFD图如3-1所示。图3-1 医院门诊管理系统总体DFD图3.门诊药房取药DFD 门诊药房取药主要实现:病人根据处方缴费取药,药品的缴费过程那么要参考药品信息,病人领取药品后获取缴费单信息。总体的DFD图如3-2所示。图3-2 医院门诊药房取药总体DFD图四、 概念结构设计概念设计阶段的任务是将

20、需求分析得到的用户需求抽象为信息结构概念模型的过程。要能充分的反响事物与事物之间的联系,是对现实世界的一个真实模型。在需求分析阶段得到的应用需求首先抽象为信息世界的结构才能更好的用某一DBMS实现这些需求。E-R模型是概念模型的有力工具。逐一设计分E-R图,再将所有的分E-R图综合成系统的总E-R图。下面是医院门诊管理系统子系统药房取药的概念结构设计的具体步骤。4、1抽象出系统的实体 根据分析,医院门诊管理系统子系统药房取药的根本实体为:处方,病人,药房管理员,药品,而它们之间的联系分别是处方对病人的“提醒联系,病人对收费员的“缴费联系以及药品管理员对药品的“管理联系。而每个实体应该具有如下所

21、列的根本属性,画出E-R图,如图4-1、图4-2、图4-3、图4-4所示。l 处方:处方号,药品名称,药品数量,就诊日期,病人姓名,医生编号。l 病人:病人编号,病人姓名,性别, ,地址。l 缴费单:缴费单号、总价、单价、日期,药品名称,药品数量,管理员编号,病人姓名。l 药品管理员:管理员编号,管理员姓名,性别。l 药品:药品编号,药品名称,单价,生产日期。 图4-1 处方实体 图4-2 病人实体 图4-3 药品管理员实体 图4-4 药品实体4、2设计分E-R图在医院门诊管理系统子系统药房取药中,有处方,病人,药品管理员和药品4个实体,这四个实体之间存在联系。一个病人可以拥有多个处方,一张处

22、方只属于一个病人。一个病人可以向不同的药品管理员缴费取药,一个管理员可以向多个病人收取药品费用。一个管理员能管理多种药品。由以上分析,将处方与病人之间的联系命名为提醒,将病人与药品管理员之间的联系命名为缴费,将药品管理员与药品之间的联系命名为管理,得到各个局部的E-R图。如图4-5,4-6,4-7所示。 1M 图4-5 处方与病人之间的E-R图 图4-6 药品管理员与药品之间的E-R图图4-7 药品管理员与病人之间的E-R图4、3合并分E-R图,生成初步E-R图 经过分析,将各个实体联系之间进行分析合并。因此,合并上述分E-R图,生成初步E-R图,如图4-8所示:图4-8 药房取药的初步E-R

23、图4、4生成全局E-R图根据上述列出的分E-R图,消除其中存在的冲突、冗余,建立全局E-R图详见图4-9,并列出所有实体和联系以及相关属性。图4-9 药房缴费取药总体E-R图五、逻辑结构设计逻辑结构设计的任务就是把概念结构设计阶段设计好的根本E-R图转换为与选用DBMS产品所支持的数据模型相符合的逻辑结构。根据DBMS产品以及不同系统的限制,设计逻辑结构时一般有以下三个步骤:首先将概念结构转换为一般的关系、网状、层次模型;将转换来的关系、网状、层次模型向特定DBMS支持下的数据模型转换;最后对数据模型进行优化。医院门诊管理系统的设计采用关系模型。E-R图转化为关系模型实际上就是要将实体型、实体

24、的属性和实体型之间的联系转换为关系模式。在概念结构设计阶段得到E-R图之后,下一步是进行数据库的逻辑结构设计,根据转换规那么将E-R图转换为关系模式,即将实体与联系转换为关系数据库的根本表,并标识各个表的主键。得到药房缴费取药的关系模式:关系模式的初步设计:l 处方处方号,就诊日期,药品名称,药品数量,病人姓名,医生编号处方号为主键,病人姓名和医生编号为外键。l 病人病人编号,病人姓名,性别, ,地址病人编号作为主键。l 缴费单缴费单号,药品名称,药品数量,单价,总价,管理员编号,日期,病人姓名缴费单号为主键,管理员编号和病人姓名为外键。l 药品管理员管理员编号,管理员姓名,性别。l 药品药品

25、编号,药品名称,单价,生产日期。 优化关系模式,在处方单和缴费单中均存在表中表的问题,这就需要分别生成二级表来保证数据库的平安性完整性设计:l 处方处方号,就诊日期,病人姓名,医生编号处方号为主键,病人姓名和医生编号为外键。经过消除传递性依赖和局部函数依赖,使得成为第三范式。l 处方二级表序号,药品名称,药品数量,处方号序号为主键,处方号为外键。l 缴费单缴费单号,管理员编号,日期,病人姓名缴费单号为主键,管理员编号和病人姓名为外键,经过消除传递性依赖和局部函数依赖,使得成为第三范式。l 缴费单二级表序列号,药品名称,药品数量,单价,总价,缴费单号序列号为主键,缴费单号为外键。 六、 数据库的

26、物理设计与实施6、1数据库表设计表6-1 处方表名类型长度允许空值是否为主键备注cfidvarchar20否是处方号cdatedate20否否就诊日期sicknamevarchar20否否病人姓名 doctoridvarchar20否否医生编号表6-2 处方二级表名类型长度允许空值是否为主键备注xuhaovarchar6否是序号ynamevarchar20否否药品名称qualityint8否否药品数量cfidvarchar20否否处方号 表6-3 病人表名类型长度允许空值是否为主键备注sickidvarchar8否是病人编号sicknamevarchar20否否病人姓名sexvarchar6否

27、否性别phonevarchar30否否 addressvarchar200否否地址 表6-4 药品管理员表名类型长度允许空值是否为主键备注aidvarchar20否是管理员编号anamevarchar20否否管理员姓名sexvarchar6否否性别表6-5 药品表名类型长度允许空值是否为主键备注yidvarchar20否是药品编号ynamevarchar20否是药品名称dpricedouble6否否单价scdatedate20否否生产日期表6-6 缴费单名类型长度允许空值是否为主键备注jidvarchar6否是缴费单号jdatedate20否是日期sicknamevarchar20否否病人姓名

28、anamevarchar20否否管理员编号表6-7 缴费单二级表名类型长度允许空值是否为主键备注xuliehaovarchar6否是序列号ynamevarchar20否是药品名称qualityint6否否药品数量dpricedouble8否否单价zpricedouble20否否总价jidint20否否缴费单号6、2数据库代码实现在把数据库设计完成之后,转而投入了实现了前台界面与后台数据库的交互,我此次用的是JSP实现的一个小型界面,这正是MVC模式的表达,通过程序与数据库连接,可以对数据库里面的信息进行修改,删除,查看等操作。连接数据库的BateDao.java实现代码如下:public cl

29、ass BateDao static Connection conn =null;Statement stmt=null;static ResultSet res=null;statictry Class.forName(com.mysql.jdbc.Driver); catch (ClassNotFoundException e) / TODO Auto-generated catch blocke.printStackTrace();System.out.println(加载驱动失败);public static Connection getConn() try conn = Driver

30、Manager.getConnection(jdbc:mysql:/localhost:3306/hospital,root,root); catch (SQLException e) / TODO Auto-generated catch blocke.printStackTrace();System.out.println(连接数据库失败);return conn;public void getStatement() if(conn=null)this.getConn();try stmt = conn.createStatement(); catch (SQLException e) e

31、.printStackTrace();System.out.println(创立句柄失败);public ResultSet getResult(String mysql) if(stmt = null)this.getStatement();try res = stmt.executeQuery(mysql); catch (SQLException e) e.printStackTrace();return res;public void release() if(res!=null)try res.close(); catch (SQLException e) / TODO Auto-g

32、enerated catch blocke.printStackTrace();if(stmt!=null)try stmt.close(); catch (SQLException e) / TODO Auto-generated catch blocke.printStackTrace();if(conn!=null )try conn.close(); catch (SQLException e) / TODO Auto-generated catch blocke.printStackTrace();public static Chufang find(String cid) Conn

33、ection conn = null;PreparedStatement pt = null;ResultSet rs = null;try conn = BateDao.getConn();String sql = select * from chufang where cid=?;pt = conn.prepareStatement(sql);pt.setString(1, cid);rs = pt.executeQuery();if(rs.next()Chufang b = new Chufang();b.setId(rs.getString(cid);b.setName(rs.getS

34、tring(name);b.setTime(rs.getDate(date);b.setQuality(rs.getString(quality);b.setDname(rs.getString(doctorid); return b;return null; catch (Exception e) throw new RuntimeException(e); public static Yao finddanjia(String cid) Connection conn = null;PreparedStatement pt = null;ResultSet rs = null;try co

35、nn = BateDao.getConn();String sql = select * from yao where name=?;pt = conn.prepareStatement(sql);pt.setString(1, cid);rs = pt.executeQuery();if(rs.next()Yao b = new Yao();b.setDanjia(rs.getDouble(danjia);return b;return null; catch (Exception e) throw new RuntimeException(e); 药房登录界面如下列图6-8所示: 图6-8

36、 登录界面1登录的JSP页面实现代码如下:门诊药房登录 管理员: 密码: 2登录验证的servlet使得连接到输入处方号的主界面,其中logincheck.java的servlet代码如下:public void doGet( ServletRequest request, ServletResponse response)throws ServletException, IOException response.setCharacterEncoding(UTF-8);request.setCharacterEncoding(UTF-8);String name= request.getPar

37、ameter(xm); BateDao db = null;ResultSet res = null;String mysql = select * from user where name=+name+ ;System.out.println(mysql); / request.setAttribute(cid,name); Session session=request.getSession();session.setAttribute(cid,name); / request.getRequestDispatcher(select.jsp).forward(request,respons

38、e); response.sendRedirect(select.jsp); response.setContentType(text/html);PrintWriter out = response.getWriter();out.println();out.println();out.println( A Servlet);out.println( );out.print( This is );out.print(this.getClass();out.println(, using the GET method);out.println( );out.println();out.flush();out.close(); 药房登录界面如下列图6-9所示:图6-9 输入处方号界面3病人手持处方向药品管理员购置药品,药品管理员在select.jsp页面输入处方号就可以知道病人所需要的药品,实现的JSP页面实现代码如下: 请输入处方号处方单号: 处方号 药品名称 就诊日期 药品数量 医生编号 $show.id $show.time $show.name $show.quality $show.dname/t

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 行业资料 > 医药制药

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服