医院门诊信息管理系统设计与实现_第1页
医院门诊信息管理系统设计与实现_第2页
医院门诊信息管理系统设计与实现_第3页
医院门诊信息管理系统设计与实现_第4页
医院门诊信息管理系统设计与实现_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

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

文档简介

i-题目:医院门诊信息管理系统设计与实现摘要医院门诊管理系统是医院信息管理系统中重要组成部分,能够提高门诊部门的工作效率,规范收费流程,为患者提供更好的医疗服务。因此,本文详细阐述了医院门诊信息管理系统的分析、设计与实现的全过程。系统基于面向对象分析和设计思想,采用UML建模语言和B/S结构,利用MVC设计模式,应用JSP、JavaBean、Servlet、SQL等多种技术进行设计与开发。系统实现了挂号管理、医生看诊、划价收费、药房管理、权限管理、系统维护等功能,其内容主要包括:(1)描述了项目的背景与意义,对项目开发现状进行了分析,确定了项目的研究目标和范围。(2)引用中西方文献对于系统开发所采用的主要技术:B/S模式、JSP、Servlet、JavaBean、SQL语言及SQLServer2000数据库、UML标准建模等技术和原理进行了简要介绍。(3)对项目进行需求建模,分析了系统的功能性需求,划分了系统模块并给出系统用例图,然后对核心用例的设计进行了较为详细的阐述。(4)给出了系统的架构及原理,详细叙述了核心业务的实现,完成了数据库设计。(5)对系统核心模块的的实现进行算法描述。(6)说明系统运行环境,描述项目部署方法并对部分系统界面进行了演示。(7)对项目的整个完成过程进行了总结,提出优缺点,并对项目提出了改进方案以及前景展望。关键词: 门诊信息;药房;JSP;UML建模

Abstract已根据上述中文摘要进行修改OutpatientServiceInformationManagementSystemisoneofthemostimportantcomponentsofHISS(HospitalInformationSystem).Itcanbeagreathelpforincreasingeconomicalbenefit,improvingworkefficiencyandprovidingbettermedicalservices.ThispapershowsallthedevelopmentprocessofasmallintegratedOutpatientServiceInformationManagementSystemwhichhasvariousfunctions.ObjectOrientedAnalyzeandDesign,B/Sstructure,MVCdesignpatternareappliedinthissystem.Andit’sdevelopedbysysthesistechnologiessuchasJSP,JavaBean,ServletandSQL.UMLisalsobeusedbythisproject.Thissystemimplementsmanyfunctionslikeregistrationmanagement,feesandpricingandmedicinemanagement.Themaincontentsofthispaperincludes:(1)Pointedoutthisproject’sbackground,meaningandthecurrentstudyingsituationbothathomeandabroad,indentifiedtheresearchobject.(2)IntroducedthemaintechnologiedthatincludesB/Smode,JSP,Servlet,JavaBean,SQLandUMLbyquotingreferences.(3)Didrequirementsmodelingfortheproject.Byanalyzingthefunctionalrequirements,finishedmoduleindentification.Elaboratedthecoreusercases.(4)Representedthearchitectureandprincipleofthissystem.Elaboratedtheimplementationofcorebusinesses.Finisheddatabasedesign.(5)Finishedthealgorithmdescriptionofthecoremodules.(6)Instructionsforrunningenvironmentofsystem.Explainedhowtodeploytheprojectandrepresentedsomesysteminterface.(7)Summarizedthewholedevelopmentprocess,analyzedthemeritandshortcoming,thenproposedsomeimprovementsolutionsandmadeaprospectforthisproject.Keywords: outpatientservice;information;JSP;Servlet;JavaBean;UMLPAGE8目录TOC\o"1-3"原创性声明 ii目录 v第一章前言 11.1项目的背景和意义 11.2研究开发现状分析 11.3研究目标和范围 21.4论文结构简介 3第二章技术与原理 42.1B/S模式 42.2JSP,Servlet以及JavaBean 42.3SQL语言及SQLSERVER2000数据库 62.4UML建模技术 6第三章需求建模 83.1 系统需求概述 83.1.1 功能性需求分析 83.1.2 系统模块划分 83.1.3 系统用例图 93.2核心用例设计 103.2.1 核心用例设计01:挂号 103.2.2 核心用例设计02:看诊 113.2.3 核心用例设计03:药房缴费取药 13第四章架构设计 144.1系统架构及原理 144.2业务用例的实现 144.2.1 挂号操作 144.2.2 看诊操作 154.2.3 药房收费操作 164.3数据库设计 174.3.1 E-R图 174.3.2 数据表设计 18第五章模块设计 215.1挂号模块算法描述 215.2看诊模块算法描述 235.3药房管理模块算法描述 24第六章部署与应用 256.1项目部署 256.2系统运行环境 256.3部分界面演示 25第七章结论 28致谢 30参考文献 31PAGE36-第一章前言(要居中)本章论文的第一部分,对项目的背景和意义进行了阐述,并对该项目的研究开发现状进行了分析,确立了研究目标和范围,最后对论文的整体结构进行了简介。1.1项目的背景和意义随着信息技术发展,计算机以及互联网的大范围普及,医院日常办公正在朝着规范化、自动化、系统化的方向发展,各种医院信息系统相继出现并被广泛应用于医院办公领域。医院门诊管理系统是为提高医院门诊部门的办公效率和规范化程度而为医院门诊部定做的信息管理系统。我国的医疗事业发展迅速,手工管理、文本记录的方式在医院门诊部这样有大量事务需要处理的环境中逐渐难以满足需求。而且随着医疗改革的深入,医疗机构将在一个日益公开,公平竞争的环境中寻求发展。内部管理讲求效率,外部服务追求质量,这不仅是医院管理层的新理念,而成为一种必须。只有合理降低运营成本,合理控制费用,提高医护人员专业水平和管理者的管理水平,才能够在激烈竞争的市场中得以生存和发展。信息科学技术的进步,可以为医院的发展助一臂之力。作为信息科技的重要代表,计算机网络技术日益显示出其信息共享、运转高速、计算准确、管理规范、数据统计客观等方面的优势,在医院的应用中发挥出其他工具所无法比拟的重大优势[1]。因此在此次系统的开发中,我们将实现医院门诊信息管理的系统化、规范化、自动化和智能化,从而达到减轻医务人员负担、提高医院管理效率、更好地为患者服务的目的。研究开发现状分析医院信息管理系统在不同历史时期下有着不同的发展阶段,按照国外的医院信息化建设的经历,可以把我国医院信息管理系统的发展阶段分为三个阶段:医院信息管理系统阶段:我国自20世纪70年代计算机在医疗行业中开始应用以来,医院的信息化建设一直是以提高管理工作效率、辅助财务核算为主要目的,“管理信息化”是这个阶段信息化医院建设的主要特色。到目前为止,我国90%以上的大型医院已经实现了科室的信息化管理,近40%的大中型医院正在建设全院的信息化管理信息系统。临床医疗信息管理系统(CIS)阶段:随着近几年影像归档和通讯系统PACS(PictureArchivingandCommuniucationSystem)的发展,以及麻醉监护系统、检验信息系统、电子病历系统等的兴起,“医疗信息化”逐渐成为医院信息化建设的核心。医院信息化建设不仅仅局限于对管理工作的信息化,还包括对医院所有医疗活动中所涉及的全部信息进行“以病人为中心”的信息数字化管理并综合利用。在目前已经应用信息系统的医院中,约有10%的医院正在尝试各类临床医疗信息管理系统的构建。区域医疗信息化(AMIS)阶段:随着各类区域性医疗网络、远程医疗以及社区医疗的发展,信息化数字化医院将超越实际的地域限制,通过各种医疗机构的网络互连以及信息交换,实现全社会范围的医疗信息化和数字化。目前在我国经济较发达的深圳,江苏部分地区开始在探索区域医疗的信息化建设[4]。(此部分已修改)门诊管理系统是医院信息系统(HospitalInformationSystem,简称HIS)的重要组成部分。目前国内大中型医疗机构都加紧建立自己的门诊信息管理系统。较发达的地区的部分医院已经有了较完善的门诊信息管理系统。但是对于二三线城市的小型医院或是乡镇医院,还一定程度上存在信息建设落后的情况。再加之这些地区的医务人员往往信息技术水平较低,对于大型的信息系统操作上存在一定的困难,因此开发一个简单,易用但是功能完备的门诊管理系统显得尤为必要。医院信息化的程度一定程度上反映了医院的医疗水平,门诊信息管理系统作为医院信息管理系统不可缺少的一块,更需要建设和完善。1.3研究目标和范围本系统是在现有的医疗信息管理系统的基础上,针对二三线城市的小型医院或是乡镇医院,开发符合其需求的门诊信息管理系统。通过本系统,医院的工作人员可以轻松简单地对患者从挂号到看诊到缴费取药的整个流程进行信息化管理,提高工作效率。本系统采用B/S(Browser/Server,浏览器/服务器模式),在技术方面,采用JSP,JavaBean,Servlet各种技术综合开发,使用SQLServer2000作为数据库,Tomcat作为服务器,和UML建模技术,在短期敏捷开发出预想中的简单、易用的门诊信息管理系统。同时力求系统实现系统可靠性、可用性、有效性、可维护性等非功能性需求。1.4论文结构简介本文旨在设计实现一个适用于二三线城市的小型或乡镇医院的门诊信息管理系统。论文共分为七章,从项目开发背景、相关技术与原理、需求建模、架构设计、模块设计及部署应用和项目总结等方面进行了详尽的阐述。各章大体内容如下::前言,包括项目背景和意义、研究与现状分析、项目的目标和范围以及论文的结构简介,阐明了项目来源、系统开发的动机、意义和可行性,界定了项目的目标和范围,简介了论文结构;:技术与原理,主要描述了系统所使用的相关技术和原理,简要介绍了JSP、JavaBean、Servlet、SQL语言及SQLServer2000、UML建模方法等技术原理;:需求建模,主要是提取项目的功能性需求概述,系统模块的划分,系统用例表和系统用例图的简单描述,给出系统领域模型,并且对系统的核心用例挂号、看诊、药房收费取药操作进行详细用例分析并画出活动图;:架构设计,主要是系统架构设计,描述系统各部分的组成以及各部分之间的通讯机制,还有核心用例实现的顺序图以及整个系统数据库的设计等;:模块设计,对系统主要模块进行详细设计,描述核心用例相关类设计和实现,以及算法的实现;:部署与应用,利用系统部署图对项目部署进行说明,描述了系统的运行环境,并选择若干典型界面说明系统的重要输入/输出;:结论,总结在设计和开发系统过程中工作的优点和不足之处,并提出系统的改进方案和前景展望。第二章技术与原理2.1B/S模式B/S模式即Brower/Server模式。随着Internet越来越广泛的应用,原来基于局域网的企业网开始采用Internet技术构筑和改建自己的企业网,即Intranet.于是,一种新兴的体系结构Browser/Server应运而生,并获得飞速发展,成为众多企业争相采用的新型体系结构.本质上,Browser/Server也是一种Client/Server结构,它是一种由传统的二层Client/Server结构发展而来的三层Client/Server结构在Web上应用的特例.在Browser/Server的系统中,用户可以通过浏览器向分布在网络上的许多服务器发出请求.Browser/Server结构极大地简化了客户机的工作,客户机上只需安装、配置少量的客户端软件即可,服务器将担负更多的工作,对数据库的访问和应用程序的执行将在服务器上完成[5].鉴于B/S模式的这种优点,因此本系统选择了采用B/S模式来进行开发。2.2JSP,Servlet以及JavaBeanJSP(JavaServerPages)技术是由Sun公司发布的用于开发动态Web应用的一项技术[7]。Servlet是一种服务器端的Java应用程序,具有独立于平台和协议的特性,可以生成动态的Web页面。它担当客户请求(Web浏览器或其他HTTP客户程序)与服务器响应(HTTP服务器上的数据库或应用程序)的中间层[6]。JSP与Servlet之间的关系与运行原理如下[7]:在一个JSP文件第一次被请求时,JSP引擎把该JSP文件转换成为一个Servlet。而这个引擎本身也是一个Servlet。JSP的运行过程有以下7个步骤:(1)JSP引擎先把该JSP文件转换成一个Java源文件(Servlet),在转换时如果发现JSP文件有任何语法错误,转换过程将中断,并向服务端和客户端输出出错信息。(2)如果转换成功,JSP引擎用javac把该Java源文件编译成相应的class文件。(3)创建一个该Servlet(JSP页面的转换结果)的实例,该Servlet的jspInit()方法被执行,jspInit()方法在Servlet的生命周期中只被执行一次。(4)jspService()方法被调用来处理客户端的请求。对每一个请求,JSP引擎创建一个新的线程来处理该请求。如果有多个客户端同时请求该JSP文件,则JSP引擎会创建多个线程。每个客户端请求对应一个线程。以多线程方式执行可以大大降低对系统的资源需求,提高系统的并发量及响应时间。但不过也应该注意多线程的编程限制,由于该Servlet始终驻于内存,所以响应是非常快的。(5)如果.jsp文件被修改了,服务器将根据设置决定是否对该文件重新编译,如果需要重新编译,则将编译结果取代内存中的Servlet,并继续上述处理过程。(6)虽然JSP效率很高,但在第一次调用时由于需要转换和编译而有一些轻微的延迟。此外,在任何时候如果由于系统资源不足的原因,JSP引擎将以某种不确定的方式将Servlet从内存中移去。当这种情况发生时jspDestroy()方法首先被调用。(7)然后Servlet实例便被标记加入“垃圾收集”处理。可在jspInit()中进行一些初始化工作,如建立与数据库的连接,或建立网络连接,从配置文件中取一些参数等,在jspDestory()中释放相应的资源。JavaBean,由于“Bean”汉译为“豆”,通常也被称为Java豆。JavaBean概念由Java语言的缔造者SunMicrosystems公司提出,其官方定义为“JavaBean是一个可重复使用的软件部件”。具体来说,JavaBean是一种特殊的Java类,是一种基于Java语言的可重用组件,是一种描述JavaWeb项目开发的软件组件结构模型,是MVC(Model-View-Controller)体系架构中“M”的体现。JavaBean在JavaWeb项目开发中,主要用来封装业务逻辑等,如同“豆”的包裹状态一样,JavaBean利用Java语言中“类”的特性,将某个业务逻辑(复杂计算统计功能、数据库连接查询功能等)包装起来,形成一个一个相对独立的模块组件,方便模块功能修改、扩充及重复使用,体现了JavaBean的封装性和重用性,实现了在JavaWeb项目开发中典型业务逻辑(JavaBean组件)与界面框架表现形式(JSP页面)的分离[8]。图2-1JavaBean组件与JSP页面交互2.3SQL语言及SQLSERVER2000数据库SQL(StructuredQueryLanguage)结构化查询语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统[11]。SQL是高级的非过程化编程语言,是沟通数据库服务器和客户端的重要工具,允许用户在高层数据结构上工作。它不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式,所以,具有完全不同底层结构的不同数据库系统,可以使用相同的SQL语言作为数据输入与管理的SQL接口。它以记录集合作为操作对象,所有SQL语句接受集合作为输入,返回集合作为输出,这种集合特性允许一条SQL语句的输出作为另一条SQL语句的输入,所以SQL语句可以嵌套,这使它具有极大的灵活性和强大的功能,在多数情况下,在其他语言中需要一大段程序实现的功能只需要一个SQL语句就可以达到目的,这也意味着用SQL语言可以写出非常复杂的语句[9]。SQLServer2000是Microsoft公司推出的SQLServer数据库管理系统的一个版本。该版本继承了SQLServer7.0版本的优点同时又比它增加了许多更先进的功能,具有使用方便,可伸缩性好与相关软件集成程度高等优点,可跨越从运行MicrosoftWindows98的膝上型电脑到运行MicrosoftWindowsXP的大型多处理器的服务器等多种平台使用。2.4UML建模技术UML(统一建模语言)是描述、构造和文档化系统制品的可视化语言[10]。标准建模语言UML的重要内容可以由下列五种类图来定义[11]:(已修改)第一类是用例图,从用户角度描述系统功能,并指出各功能的操作者。第二类是静态图(Staticdiagram),包括类图、对象图和包图。其中类图描述系统中类的静态结构。不仅定义系统中的类,表示类之间的联系如关联、依赖、聚合等,也包括类的内部结构(类的属性和操作)。类图描述的是一种静态关系,在系统的整个生命周期都是有效的。对象图是类图的实例,几乎使用与类图完全相同的标识。他们的不同点在于对象图显示类的多个对象实例,而不是实际的类。一个对象图是类图的一个实例。由于对象存在生命周期,因此对象图只能在系统某一时间段存在。包由包或类组成,表示包与包之间的关系。包图用于描述系统的分层结构。第三类是行为图(Behaviordiagram),描述系统的动态模型和组成对象间的交互关系。包括状态图、活动图、顺序图和协作图。其中状态图描述类的对象所有可能的状态以及事件发生时状态的转移条件。通常,状态图是对类图的补充。在实用上并不需要为所有的类画状态图,仅为那些有多个状态其行为受外界环境的影响并且发生改变的类画状态图。而活动图描述满足用例要求所要进行的活动以及活动间的约束关系,有利于识别并行活动。活动图是一种特殊的状态图,它对于系统的功能建模特别重要,强调对象间的控制流程。顺序图展现了一组对象和由这组对象收发的消息,用于按时间顺序对控制流建模。用顺序图说明系统的动态视图。协作图展现了一组对象,这组对象间的连接以及这组对象收发的消息。它强调收发消息的对象的结构组织,按组织结构对控制流建模。顺序图和协作图都是交互图,顺序图和协作图可以相互转换。第四类是交互图(Interactivediagram),描述对象间的交互关系,包括顺序图和和作图。其中顺序图显示对象之间的动态合作关系,它强调对象之间消息发送的顺序,同时显示对象之间的交互;合作图描述对象间的协作关系,合作图跟顺序图相似,显示对象间的动态合作关系。除显示信息交换外,合作图还显示对象以及它们之间的关系。如果强调时间和顺序,则使用顺序图;如果强调上下级关系,则选择合作图。这两种图合称为交互图。第五类是实现图(Implementationdiagram)。其中构件图描述代码部件的物理结构及各部件之间的依赖关系。

第三章需求建模(另起页)本章在系统的需求方面,显示对功能性需求进行了分析,给出系统模块的划分,并画出系统用例图。然后对于系统的核心用例进行了分析。最后再对本系统的领域模型进行了分析。系统需求概述功能性需求分析通过与医院门诊各类工作人员进行的沟通交流以及对现有的门诊信息管理系统的分析与研究,得出了该系统主要面对以下四种对象:门诊挂号人员,门诊看诊医生,药房收费人员以及系统管理员。按照提取需求的基本思路,根据本项目的特点,结合已有的研究成果,得出以下系统需求:门诊挂号人员角度:希望能够对前来的患者进行挂号,建立起基本的信息档案。门诊看诊医生角度:希望能够调取患者的挂号信息,并在诊治之后给患者开具处方。药房收费人员角度:希望能够获得并处理药房的药物信息。希望获得病人的处方信息,并对所开药物进行收费及出库操作。系统管理员角度:希望能够对系统进行维护,有效地管理科室,药房等信息,管理不同类型的系统使用人员(医生,挂号护士,药房会计等)。对冗余数据进行处理。系统模块划分门诊信息管理系统根据使用者和功能可以分为以下几大模块:门诊挂号模块:处理初诊及复诊病人不同类型的的挂号请求。医生处方模块:对挂号病人进行看诊,给出病历以及开具处方。药房收费模块:对病人处方进行收费和药物出库,对药物进行出入库管理。对药物销售数据进行记录和处理。后台管理模块:各类型系统使用人员的管理,病人病历管理,药房信息管理等。本系统的功能模块划分如图3-1:医院门诊信息管理系统医院门诊信息管理系统后抬管理后抬管理系统药房管理系统看诊管理系统挂号管理系统图3-1系统模块划分图系统用例图结合前文分析,该门诊信息管理系统主要是面向门诊挂号人员、门诊看诊医生、药房收费人员以及系统管理员四种对象。每一类人员都必须登录之后才能进行操作。在登录之后,每一类人员都只能在自己权限范围之内的模块进行操作。而系统管理员则可以对各类人员及信息进行管理。图3-2为门诊信息管理系统的用例图。图3-2系统用例图3.2核心用例设计在本节中主要选择了门诊挂号、看诊以及药房缴费取药三个用例进行详细阐述。核心用例设计01:挂号用例:挂号范围:门诊信息管理级别:用户目标主要参与者:门诊挂号人员涉众及其关注点:门诊挂号人员:希望能够为来访患者提供挂号服务,区分初诊病人及复诊患者,操作简单快捷,提高工作效率。前置条件:挂号人员具备权限,成功登入挂号页面。后置条件:病人挂号成功,转入为下一个病人挂号。主成功场景:挂号人员登入挂号页面,进行挂号挂号人员填入患者信息,确认信息后保存并提交。系统提示挂号成功并转入新的挂号页面。扩展:1a.挂号人员不具备权限系统提示用户权限错误,提示重新登录。2a.患者为复诊患者挂号人员输入患者以往病志号码。系统返回患者信息,挂号人员填写挂号要求并保存。2b.患者信息填写非法系统提示某项信息错误。挂号人员进行补充或修改。3a.系统保存信息失败挂号人员退回挂号页面。1a.页面缓存丢失挂号人员刷新页面重新填写挂号信息挂号人员重新进行保存特殊要求:系统的设计保障系统的健壮性发生频率:可能会不断地发生未解决问题:可否将采用刷卡来存储电子病历?可否采用储值卡进行挂号费用的缴纳?核心用例设计02:看诊用例:看诊范围:门诊信息管理级别:用户目标主要参与人员:门诊看诊医生涉众及其关注点:门诊看诊医生:希望可以通过挂号号码获得其病志,在对患者进行诊治之后,完成病历的填写,并为患者开具处方。前置条件:看诊医生具备权限,成功登陆看诊页面。后置条件:成功提交病人病志及处方。主成功场景:看诊医生登入看诊界面,进行看诊。从病人处获得病志号码并输入完成诊治并进行病志书写,开具处方,并提交。系统提示看诊成功并转入等待为下一位患者看诊状态。扩展场景:1a.看诊医生不具备权限系统提示用户权限错误,提示重新登录。2a.病志号码不存在医生重新输入病志号码3a.病志填写内容非法系统提示某项病志书写内容非法医生对内容进行修改医生重新提交病志内容3b医生所开药物库存不足系统提示药物库存不足医生对处方进行修改医生重新提交处方内容4a.系统保存信息失败看诊医生退回病志书写页面。1a.页面缓存丢失看诊医生刷新页面重新填写挂号信息看诊医生重新进行保存特殊要求:系统的设计保障系统的健壮性发生频率:可能会不断地发生未解决问题:病历保存时间多久?核心用例设计03:药房缴费取药用例:药房缴费取药范围:门诊信息管理级别:用户目标主要参与者:药房收费人员涉众及其关注点:药房收费人员:希望根据系统中患者的病志记录获得处方信息,得到应收费用,请患者缴费后,从药库出货交给患者。前置条件:药房收费人员具备权限,成功登陆药房管理页面。后置条件:患者缴清费用,且所需药物成功出库。主成功场景:药房收费人员成功登陆,选择收费操作。输入患者病志号,得到患者处方信息。患者缴费,核实信息无误之后,提交药费单。系统提示药物成功出库。扩展场景:1a.药房收费人员不具备权限系统提示用户权限错误,提示重新登录。2a.病志号码不存在药房收费人员重新输入病志号码。4a.药房提示药物数目不足药房人员调货,并将药物入库。药房收费人员重新进行收费操作。特殊要求:系统的设计保障系统的健壮性发生频率:可能会不断地发生未解决问题:若药房无足够的药,如何对处方进行处理?第四章架构设计(要另起页,剧中)4.1系统架构及原理本系统采用的是以JSP+JavaBean+Servlet实现的MVC架构模式进行的开发。所谓的MVC架构,通俗来讲,即是模型(Model)、试图(View)、控制器(Controller)的软件架构模式。MVC模式使应用程序的输入、处理和输出强制性分开,使得软件可维护性、可扩展性、灵活性以及封装性得到提高,兼顾了程序的“高内聚、低耦合”原则。本系统的总体架构图如图4-1:图4-1门诊信息管理系统架构在基于B/S(客户端/服务器)模式的MVC架构中,用户通过视图层(View)向系统发送页面请求,视图层将数据封装后传递给控制层,控制层通过与逻辑层(模型)的交互最终将数据处理结果反馈给视图层。4.2业务用例的实现本节以门诊信息管理系统中三个典型的用例为例,用顺序图来说明系统业务用例的实现过程。挂号操作图4-2描述了实现业务挂号操作的顺序图,其含义说明如下:挂号人员登录系统后,向页面register.jsp发出新建一个“挂号”对象的请求,register.jsp显示要求用户输入患者挂号所需要的信息,填写完毕以后,向RegisterServlet.java发出添加一个挂号对象的信息,RegisterServlet.java通过调用InsertUpdateDelBean.java请求向数据库添加一条挂号表条目,InsertUpdateDelBean.java通过调用DBConn.java连接数据库,并成功存入数据,然后返回成功信息,register.jsp向用户显示输入成功信息。图4-2挂号业务顺序图看诊操作图4-3描述了实现看诊操作的顺序图,其含义说明如下:医务人员登录系统之后,点击病情诊断,页面转向cases.jsp,页面显示要求输入病人病志号,医生输入后,cases.jsp通过AllBean.java检查数据库中是否存在该病志号,若不存在则返回cases.jsp页面重新输入病志号,若存在cases.jsp页面则显示病历填写页面以及prescription.jsp处方填写页面,医生填写完成后,点击提交,向CasesServlet.java发出添加一个病历对象的信息,并向PrescriptionServlet.java发出添加一个处方对象的信息,CasesServlet.java以及PrescriptionServlet.java通过调用InsertUpdateDelBean.java向数据库请求添加相应条目,InsertUpdateDelBean.java通过调用DBConn.java连接数据库,并成功存入数据,然后返回成功信息,cases.jsp向医生显示提交成功的信息。图4-3业务看诊的顺序图药房收费操作图4-4描述了实现了药房收费操作的顺序图,其含义说明如下:药房收费人员登录系统后,点击药费单项目,页面转向charge.jsp,页面显示要求药房收费人员输入患者病历号,输入后charge.jsp通过AllBean.java检查数据库中是否存在该病志号,若不存在则返回charge.jsp页面重新输入病志号,若存在charge.jsp则显示与该病志号相对应的药物处方信息,药房人员还可自由选择是否查看药物详细信息,如选择页面则转向medicine_show.jsp,页面显示药品的详细信息。收费人员确认信息无误并收到患者所缴纳的费用之后,就可以选择提交,charge.jsp则通过调用ChargeServlet.java来对药房的库存进行更新操作,ChargeServlet.java通过调用InsertUpdateDelBean.java向数据库请求更新相应条目,InsertUpdateDelBean.java通过调用DBConn.java连接数据库,并成功更新数据,然后返回成功信息,charge.jsp向医生显示提交成功的信息。图4-4业务药房收费的顺序图4.3数据库设计本系统使用SQLServer2000对数据库进行设计实现,然后采用JDBC技术与页面进行连接。E-R图针对本系统的需求分析以及用例设计,设计了相关的数据表格以及关系模式。本系统数据库的的E-R图4-5所示:图4-5门诊管理系统数据库E-R图数据表设计数据库表汇总如下表4-1所示:表4-1数据库表汇总表名功能说明admin管理员信息users用户信息medicine药品信息office科室信息prescription处方信息register_price挂号种类及价格信息entry药品出入库信息invalid挂号信息cases病历信息挂号信息表[invalid]主要用来保存患者的挂号信息,表的设计如表4-2所示:表4-2挂号信息表invalid的描述表名invalid列名数据类型描述idint挂号编号PathographyIDvarchar病志号,唯一标示病人身份namevarchar病人姓名sexvarchar病人性别agevarchar病人年龄addressvarchar病人住址officevarchar病人所需求诊科室typevarchar挂号类型pricevarchar挂号价格UserIDint挂号工作人员编号timedaytime挂号时间flagint就诊状态标记病历表[cases]主要用来保存患者的病历信息,表的设计如表4-3所示:表4-3病历表cases的描述表名cases列名数据类型描述idint病历编号PathographyIDvarchar病志号,唯一标示病人身份historytext病人病史allergytext病人过敏史symptomtext病人症状analyzetext医生诊断UserIDint看诊医生编号<4>处方表[prescription]主要用来保存病人的处方信息,表的设计如表4-4所示:表4-4处方表prescription的描述表名prescription列名数据类型描述idint处方编号PathographyIDvarchar病志号,唯一标示病人身份medicineIDint药品编号sumsint药品数量timesdaytime缴费时间UserIDint药房收费人员编号药品表[medicine]主要用来保存药品信息,表的设计如表4-5所示:表4-5药品表medicine的描述表名medicine列名数据类型描述idint药品编号namevarchar药品名称specvarchar药品种类factoryvarchar生产厂家pricevarchar药品价格stockint存货数量sumsint出入库数目captiontext说明用户表[users]主要用来保存用户的信息,表的设计如表4-6所示:表4-6用户表users的描述表名users列名数据类型描述UserIdint用户编号namevarchar登入系统的用户名pwdvarchar登入系统密码realnamevarchar用户姓名officevarchar用户所在科室statusvarchar用户权限

第五章模块设计(另起页,剧中)在此次门诊信息管理系统的设计中,主要由患者挂号模块,医生看诊模块,药房管理及收费模块以及系统后台管理模块构成。本章节将选择患者挂号模块,医生看诊模块,药房管理及收费模块,以文字描述及代码展示的形式对其主要的类和接口进行说明,阐述主要类关键方法的算法。5.1挂号模块算法描述患者挂号的模块包含了对初诊病人、复诊病人的挂号操作,以及挂号工作人员账户密码修改等功能,这里选取挂号步骤作为详细描述。初诊患者挂号的程序实现思路是:挂号人员在前端页面请求为初诊患者挂号,系统自动生成信息表格供挂号人员填写,系统将接收到的信息打包到request对象中发送给服务器;用以响应该请求的用servlet编写的RegisterServlet接收request对象,并通过与门诊管理系统对应的JavaBean:InsertUpdateDelBean向数据库中存储信息。接收request对象的代码如下: Stringname=request.getParameter("name"); Stringsex=request.getParameter("sex"); Stringage=request.getParameter("age"); Stringaddress=request.getParameter("address"); Stringoffice=request.getParameter("office"); Stringtype=request.getParameter("type"); Stringprice=request.getParameter("price"); HttpSessionsession=request.getSession(); ArrayListuserlogin=(ArrayList)session.getAttribute("userlogin");利用InsertUpdateDelBean向数据库中存储代码如下: InsertUpdateDelBeanib=newInsertUpdateDelBean(); SelectBeansb=newSelectBean(); Stringsql="selectcount(*)asrowsfrominvalid"; Stringargs[]={"rows"}; ArrayListal=sb.select(args,sql); if(al.get(0).equals("0")){ sql="insertintoinvalid(pathographyid,name,sex,age,address,"+ "office,type,price,userid)values('1000','"+name+"','"+sex+"','"+age+"','"+ address+"','"+office+"','"+type+"','"+price+"','"+userlogin.get(0)+"')"; }else{ sql="selectmax(pathographyid)asmaxsfrominvalid"; Stringargs1[]={"maxs"}; ArrayListmaxs=sb.select(args1,sql); sql="insertintoinvalid(pathographyid,name,sex,age,address,"+ "office,type,price,userid)values('"+ (Integer.parseInt(maxs.get(0).toString())+1)+ "','"+name+"','"+sex+"','"+age+"','"+address+"','"+office+"','"+type+"','"+price+"','"+userlogin.get(0)+"')"; } ib.insertANDupdateANDdel(sql);返回成功信息: request.setAttribute("message","操作成功!"); request.getRequestDispatcher("/users/register.jsp").forward(request,response); 而复诊病人则需先检验其病历是否已经存在: publicArrayListgetInvalid(Stringpathographyid){Stringsql="select*frominvalidwherepathographyid='"+pathographyid+"'"; Stringargs[]={"id","pathographyid","name","sex","age", "address","office","type","price","userid","times","flag"}; al=sb.select(sql,args); returnal;}5.2看诊模块算法描述医生看诊模块包含了医生为病人填写病历,为病人开具药物处方,看诊医生账户密码修改等功能。这里选取医生为病人填写病历及开具处方这里流程作详细阐述。病人看诊首先通过输入pathographyid,系统首先验证该病历是否存在,若不存在,则直接返回输入病志页面。若存在,则系统将收到的信息打包为request对象发送给服务器,用以响应该请求的用servlet编写的CasesServlet接收request对象,并通过与门诊管理系统对应的JavaBean:InsertUpdateDelBean向数据库中存储信息。接受包含case信息的request的代码如下:Stringpathographyid=request.getParameter("pathographyid");Stringhistory=request.getParameter("history"); Stringallergy=request.getParameter("allergy"); Stringsymptom=request.getParameter("symptom"); Stringanalyze=request.getParameter("analyze"); HttpSessionsession=request.getSession(); ArrayListuserlogin=(ArrayList)session.getAttribute("userlogin");开具药物处方时,需将信息打包为request对象发送给服务器,用以响应该请求的是用Servlet编写的PrescriptionServlet接受request对象,并通过与门诊管理系统对应的JavaBean:InsertUpdateDelBean向数据库中存储信息。接受包含prescription信息的request的代码如下:Stringmedicine=request.getParameter("medicine"); Stringsums=request.getParameter("sums"); Stringpathographyid=request.getParameter("pathographyid");若药品的库存量不足,系统则会提示信息并返回开具处方页面:if(Integer.parseInt(sums)>Integer.parseInt(al.get(5).toString())){ str="/users/prescription.jsp"; request.setAttribute("message","库存量不足(库存为"+al.get(5)+")!");5.3药房管理模块算法描述药房管理模块包含了处方缴费并取药,药品的出入库管理,药品的销售记录,药品管理人员登录密码修改等功能。这里选取处方缴费功能进行详细阐述。系统通过患者的pathographyid取得了其处方信息之后,charge.jsp页面将收到的信息打包为request发送给由Servlet编写的服务器ChargeServlet上,然后再由其通过与系统进行对应可进行调用的JavaBean向数据库中存储信息。接受包含处方信息的request的代码如下:Stringpathographyid=request.getParameter("pathographyid"); HttpSessionsession=request.getSession(); ArrayListuserlogin=(ArrayList)session.getAttribute("userlogin"); Validatev=newValidate();然后标记处方已缴费并记录缴费时间,并在药品仓库中储存中减去已出货的药品,实现代码如下:InsertUpdateDelBeanib=newInsertUpdateDelBean();Stringsql="updateprescriptionsettimes1='"+v.getSystemDate().substring(0,16)+"',userid="+userlogin.get(0)+"wherepathographyid='"+pathographyid+"'andtimes='"+v.getSystemDate().substring(0,10)+"'";ib.insertANDupdateANDdel(sql);AllBeanab=newAllBean();ArrayListal=ab.getPrescription(pathographyid,v.getSystemDate().substring(0,10));for(inti=0;i<al.size();i++){ ArrayListalRow=(ArrayList)al.get(i); sql="updatemedicineset

温馨提示

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

评论

0/150

提交评论