版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
PAGE28PAGE28基于Java的电子病历系统的设计与实现摘要随着科学技术的不断发展,计算机在如今的各个领域均都得到了充分的利用。传统的人工记录的账目数据显得越来越费事费力,需要投入许多人力物力才得以实现,而且容易出错。因此,开发一个易于使用、查找方便、系统可靠性高、易于维护的电子病历系统是非常有必要的。本文首先介绍开发电子病历系统的意义和实现技术,并由需求分析来确定系统的功能模块,确定具体的设计任务和设计功能方法,同时介绍了使用JSP技术来开发具体的功能模块以及系统的发布方案,其次介绍了本系统所使用的数据及其数据结构,最后介绍了本系统的功能模块和系统的后期升级改造和维护方案。本系统使用Eclipse作为集成开发环境来编写代码,选用免费的MySQL数据库作为数据源,服务端软件使用Tomcat,本系统主要实现了如下三个功能模块:患者管理、用户管理、仓库管理,并根据角色展示不同功能菜单选项。关键字电子病历;MySQL;Tomcat;Java;Eclipse1绪论1.1课题简介计算机科学发展到如今,可以说各行各业都不可缺少的一个重要的工具,他能提高人们的工作效率,方便数据管理与维护。而对于医疗机构来说,电子病历管理系统的使用也是必不可少的一个工具,他能有效的管理患者的病历信息,为医护人员提供方便可靠的数据,也减轻了医护人员的工作负担。电子病历管理系统使医疗数据易于保存和维护,传统的人工病历管理模式面临许多无法克服的困难,首先,医院的病历数据不断的增加,存储的空间受到了很大的限制;其次,如果需要检索某一条数据,其效率很低;其三,数据的管理和维护方法比较落后。如何才能实现医院病历数据的现代化,首先我们要树立创新的意识,与时俱进,让数据不仅局限于传统的纸张数据,我们要使数据在网上及传播,使数据共享化、智能化。综合以上几点分析,本系统的功能实现使用比较流行的Java语言来编写,Java语言功能强大并是面向对象程序设计语言;集成开发环境选用EclipseIDE作为开发工具,Eclipse更易于使用,并且提供项目管理、调试、发布等功能;数据库使用MySQL作为数据源,MySQL是免费且开源的数据库软件;服务端软件使用Tomcat。1.2开发的意义随着医院接的诊病人不断增加,传统的手工记载病人的数据也越来不方便,而随着时间的推移,病历数据积攒的也会越来越多,查询时对控件和时间的要求也越来越高,因此,会出现各种各样的问题,传统方式的缺陷和弊端也会越来越明显。传统病案数据的管理和维护是一个非常困难的问题,存在以下几个问题:记录的检索,由于传统的方式是用纸张进行记录,随着时间的推移,数据越多就会难以准确查找出相应的数据,而且查找数据也会耗费很多的时间和人力。数据的存放,传统纸张存放数据记录,会浪费更多的资源,同时,如果数据量大,也会造成占用空间的浪费,而且在特殊的环境下,其物理设备会发质变,造成数据丢失和损坏。数据的共享,传统的方式不能数据共享,而利用计算机和互联网手段可以很容易的是使数据进行共享。患者挂号,患者就诊前要对患者进行个人资料的收集与记录,这一操作在传统的方式很繁琐且很浪费时间,也会影响医护人员的救治和患者治疗效率。针对以上几点,开发一个电子病历管理系统是有必要的,作为一名计算机专业的学生,设计与实现一个病历管理系统,来展示自己的专业所长。系统实现了病历的查找与管理,提供医护人员的工作效率。2开发环境以及实现技术2.1关于开发环境的简介硬件环境:英特尔酷睿i7、64G内存、4G独显卡。软件系统:Windows操作系统集成开发环境:EclipseIDEforEnterpriseJavaDevelopers服务端软件:Tomcat8.5数据库软件:MySQL2.2开发工具简介EclipseIDEforEnterpriseJavaDevelopers是Java项目集成开发环境IDE,它提供了完备的程序开发功能,比如程序的创建、维护、调试、发布、测试等功能,使用此版本的Eclipse,可以很容的开发JavaEE程序,并且它提供了很多功能强大的插件,例如SVN、ADT、STS等,使用者可以开发自己的插件,也可以使用三方提供的插件。Eclipse也提供了大量且使用方便的快捷键,开发者在使用时可以很容的使用快捷键来提高代码的编写的效率,我们利用Eclipse的程序发布功能可以很方便的把我们的程序发布到服务器上,且易于调试和维护。MySQL是目前最流行以及使用最多的关系型数据库管理系统,与其他数据库如SQLService、PostGreSQL、DB2等相比,MySQL是web应用中最好的应用软件之一,其开源和跨平台性使得它在web领域大显身手。MySQL使用易于安装和维护,且容易配置,它提供了完整的数据库功能,如数据库的CRUD功能和数据库的事务管理,正则,索引,函数等。MySQL只提供命令行管理的模式,为了使数据更容易维护,我们使用NavicatPremium来管理和维护数据,它提供了图形化的数据管理界面,使用户更易于操作。Tomcat是一款免费且开源和夸平台的服务端软件,它广泛应用于中小型系统和小并发项目中。它是一个servlet容器,支持jsp和servlet。由于Tomcat包含一个HTTP服务器,所以它也可以看作一个单独的web服务器。Tomcat包括一个配置管理工具,可以通过编辑web.xml配置文件来配置它。3关于系统设计3.1概要设计3.1.1系统功能分析根据得到的医院管理需求的信息,整理之后,本管理系统将要达到的以下功能目标:(1)患者就诊模块1)患者开始挂号,由窗口人员登记挂号信息。 2)患者挂号后到相应科室找医生说明病况,由医生登记相关信息并填写病历。 3)医生角色可根据患者的具体患病情况给病人开出相应的处方。 4)患者根据病历号找到窗口人员进行划价,划价后开始缴费,缴费完成后患者随时可以取药,患者完成就医。(2)仓库管理模块1)库管人员可以添加、修改、删除、查询药品的详细信息。2)库管人员进货后添加入库信息。根据以上功能模块的详细分析,将整个电子病历系统分解成如图3-1所示的模块结构图。(3)用户管理模块 1)管理员可以修改任何用户的详细信息。 2)非管理员只可以修正更改自己的详细信息。图3-1模块结构图同时,在系统的开发过程中,我也会尽量按照如上结构图来划分代码的模块,并减少各个功能模块的高内聚,这样才会降低后期系统投入使用的维护成本,同时也会使系统的整体性能提高。3.1.2概要设计阶段的主要任务1)第一步是根据项目的需求来认证分析相关文档,然后再根据当前项目的需求来提出针对该系统的最佳的开发方案,通过使用系统流程图,组成系统成本效益分析以及系统的进度计划,最后供指导老师审核,审核通过后项目的整体进入设计。2)根据上一步的审查结果确定模块结构,首先,根据项目需求,对各个大的功能模块进行划分,然后将项目的功能需求分配到系统中划分出的最小单元模块。再分析出不同模块之间的联系,根据其联系来确定出各个模块对应的数据结构以及相应的数据库结构,并最终确定出系统的测试方法。3)最后一个步骤是编写概要设计规范、系统操作规范和各模块的测试计划,并选择相应的软件工具来描述系统结构。3.1.3概要设计过程概要设计主要分为两个步骤,第一步是对系统进行设计,反复审核系统方案以及需求分析,最终确定系统开发的具体实施方案;第二步是对结构进行设计,从而确定具体的软件结构。3.1.4概要设计原则软件概要设计的三个原则,一是要划分系统成多个独立模块的依据,二是表示不同的模块内的功能和数据结构,三是统一的衡量软件设计中的技术质量。3.2详细的设计3.2.1详细的设计的任务完成设计首要任务就是在概要设计的基础上,分模块来仔细考虑未来应该如何去做这个系统以及实现相关功能模块,直到针对项目中的每一个功能模块我们都可以列出详细的计划书。对于本系统,我们的主要任务如下所述:1)第一步我们要为各个功能模块确定出对应需要用到的相关算法,然后根据算法需求来选择出适当的工具表达出算法的详细过程,并将其写出到相应模块的详细描述中;2)根据算法要求来确定出各个功能模块将要使用到的数据结构;3)这一步中我们需要确定出各个模块接口的详细细节,并对系统外部的接口例如使用第三方登录和用户界面、对系统内部其它模块的接口即不同功能模块之间的相互调用做一些相关调查,来确定出每个模块的输入输出数据等相关细节。4)系统的测试在系统中也占用很重要的地位,所以在这一步中主要是要为相关模块设计出对应的测试用例,这会在很大程度上减少系统后期出故障的概率以及后期维护的成本,测试通过包括不正常的输入数据,大量的请求等一些非正常的人为操作[8]。3.2.2详细的设计方法详细的设计方法分为程序流程图、N-S盒图以及下面我们将要用到的IPO图,通过这些图形模式,让我们的系统设计开发的流程更加清晰明了。1)病人及医生管理模块的IPO图如图3-2所示。图3-2病人医生IPO图2)各种相关查询的查询模块的IPO图如图3-3所示。图3-3查询IPO图3)收费管理模块的IPO图3-4所示。图3-4收费IPO图4)用户管理模块所对应的IPO图如图3-5所示。图3-5用户管理IPO图4数据库的设计4.1数据库的简介关于数据库的定义:数据库是指能够在计算机中长期组织、存储及共享的大量数据的集成。数据库基本特点:1)数据是按照具体的模型去存储的。2)数据库可以与各种用户及多个应用程序进行共享。3)数据之间的有较小的冗余度。4)数据之间的有较高的独立性。5)易扩展[4]。新建一个数据库:建立数据库的第一步是对需求的分析,得出需要建立的表,对应表中的字段,各个表之间的联系等,可以通过PowerDesigner先构建数据模型,然后转化成具体的数据结构,导入到相应的数据库中。修改已建的数据库:对于已经创建好的数据库,我们所要修改的,主要就是对该数据库中的数据表进行操作,这些修改主要分为添加、编辑和删除记录。这些操作我们都可以在Java代码中完成,基于JDBCAPI来操作数据库的方法的使用起来简单快捷,因而本系统采用了JDBC技术来对数据库进行一系列的操作。数据库之间联系的实现:一般来说,数据库之间的联系指明两个不同的表之间共享一个共同的关键字值。在数据库中一个表中有另一个表的主键,此时,这个表中的这个字段就是一个外键,它联系着两张不同的表,当然,也存在一个数据表中的外键同时也是这个表的主键。例如父子菜单ID,父菜单的ID字段指向子菜单的父ID字段。这种情况下,子菜单的父ID就是这个表的外键,但同时也是这个表的主键。关于MySQL数据库:MySQL是目前流行的中小型数据库管理系统,它可以适用于当前各种管理项目,同时也可以作为各种小型门户网站的后台数据存放地。MySQL相对于SQLServer和Oracle来说体积很小,占用的空间和内存也很小,它比较适合当前的大部分中小型项目。4.2数据库需求分析(1)通过对相关医院病案管理实际情况的调查,总结出病案管理系统中四个最重要的角色,分别为:1)系统管理员角色,其主要职责是管理所有用户。2)前台人员角色,主要负责前台接待患者,给患者挂号,处理处方的相关事务,包括划价,缴费,取药等。3)医生角色:主要负责治疗病人、填写病历、开处方。4)库管人员角色:主要负责药品的一些管理工作,包括药品信息收集、药品入库、药品销售等。(2)根据以上需求分析,得到如下数据库结构。1)系统用户表,在本系统中,有四种用户:系统管理员(其主要功能是管理所有其他用户的信息,还包括添加用户、查看和修改所有其他用户的信息、修改自己的相关信息)、窗口用户(可帮助患者挂号、管理处方,修改自己的相关信息)、医生(可以填写病例和处方,修改本人相关信息)、仓库管理员(管理仓库的药品信息,包括对自己的信息进行相关处理)。对于系统管理员,他可以管理每个人的信息,但对非管理员,他只能管理自己的详细信息。根据以上分析,可以得到该表的表结构如表4-1所示表4-1系统用户表字段名字段类型长度主键字段含义idint11主键(自增)用户编号unamevarchar2255用户名(登录名)upassvarchar2255密码Utypevarchar2255用户类别tnamevarchar2255姓名Sexvarchar2255性别Agevarchar2255年龄Telvarchar2255电话addrsvarchar2255地址Filenamevarchar2255相片Qqvarchar2255QQ2)库存表,管理着所有药品信息,包括药品的入库时间,入库数据,入库批次和总价,该表主要由库管人员进行相关的增加、删除、修改、查询操作,其他用户无权管理库存信息,如表4-2。表4-2库存表字段名字段类型长度主键字段含义idint11主键(自增)库存编号yaopinvarchar2255药品名称rkdatevarchar2255入库日期tnumvarchar2255数量pichivarchar2255批次totpricevarchar2255药品总价3)病历表,包含病历的主要相关信息,例如ID,病历号、相关患者身份证号等,主要由医生进行相关的增加、删除、修改、查询操作,其表结构如表4-3。表4-3病历表字段名字段类型长度主键字段含义idint11主键(自增)病历编号blnovarchar2255病历编号bingrvarchar2255患者sfidvarchar2255患者身份证号Sexvarchar2255性别续表4-3birthvarchar2255出生日期zsvarchar2255症状收费表,管理着所有的收费信息,包括此次收费额病历编号,药品信息,总价以及相关状态,该表主要由窗口人员进行相关增加,修改,查询操作,其他人员无法对该表进行相关操作,其表结构如表4-4。表4-4收费表字段名字段类型长度主键字段含义idInt11主键(自增)收费编号blnovarchar2255病历编号Yaopinxxvarchar2255药品信息totpricevarchar2255总价statusvarchar2255状态5)药品表,随着药品的不断增多,药品信息管理电子化已经非常有必要了,药品表管理着所有药品的相关信息,包括药品名称,药品制药厂,药品适应症状,药品的相关禁忌,药品单价和持有医保的价格,以及一些其他信息,该表由库管人员填写修改,其他人员不可改变该表相关信息,其表结构如表4-5。表4-5药品表字段名字段类型长度主键字段含义IdInt11主键(自增)药品编号ynamevarchar2255药品名称续表4-5factoryvarchar2255制药厂Syzvarchar2255适应症Jjvarchar2255相关禁忌pricevarchar2255单价isybvarchar2255是否医保ybpricevarchar2255医保单价beivarchar2255药品备注Filenamevarchar2255药品图片6)用药表,管理医生给患者开出的用药信息,包括相关的病历编号,药品信息,和相关状态,该表由医生进行管理,其他用户无权修改该表相关信息,其表结构如表4-6。表4-6用药表字段名字段类型长度主键字段含义Idint11主键(自增)用药编号blnovarchar2255病历编号yaopingvarchar2255对应药品numvarchar2255数量statusvarchar2255状态7)日志表,在任何管理系统中,日志信息都是系统的重要组成部分,本系统也不例外。在该系统中,日志信息记录了用户的相关操作,如登录、退出信息、医生添加和修改病历等,对以后的相关操作和维护具有重要意义。日志系统由关闭时自动创建的系统中的用户执行。根据以上分析,本表的表结构如表4-7所示。表4-7日志表字段名字段类型长度主键字段含义Idint11主键(自增)编号useridint11操作用户编号Unamevarchar2255操作用户姓名Blnovarchar2255病历编号Createtimevarchar2255创建时间Sfidvarchar2255相关病人的身份证号5系统的实现5.1系统登录模块的实现5.1.1流程图图5-0流程图流程图是流经一个系统的信息流、观点流或部件流的图形代表。流程图可以让我们更直观的看出整个软件的逻辑结构,把握整体框架,从宏观方向弄明白整个系统登录模块的实现,从而对程序的开发有个具体的把握,也就是说把握好主要的方向才可以更好的进行设计。同时,在系统的开发过程中,我也会尽量按照如上流图来进行相关操作,并减少各个功能模块的高内聚,这样才会降低后期系统投入使用的维护成本,同时也会使系统的整体性能提高。5.1.2界面图5-1登录界面相关功能:1)用户登录界面如图5-1所示。如我们所见,界面主要由两个输入框和两个按钮组成。用户在相应的输入框中输入信息后,单击登录按钮提交输入框中的数据。如果用户输入的信息正确,系统会让客户端跳转到主页面。如果有任何不一致,将给出相应的错误信息。2)输入的操作:用户名及其密码。3)相关操作:首先,通过前台JS验证用户名和密码的有效性,主要是防止用户输入非法字符。前台JS验证后,系统会在后天将用户提交的数据传输到服务器,验证用户名是否纯在或密码是否正确。4)输出的操作:如果用户登录成功,则进入用户系统主页面,显示相关菜单界面,并根据用户相关类型Utype提供相应的角色操作,如果登录不成功则显示错误信息页面。5.2主界面的具体操作5.2.1管理员的主界面管理员的主界面是通过菜单的形式来表现的,如图5-2。图5-2管理员界面具体功能:1)操作人员工作管理:操作人员除了管理系统管理员的其他角色,包括对其密码和其他详细信息的添加,修改和删除操作,也可以根据用户名和姓名对用户进行查询操作。2)管理员的信息:管理员可以管理日常普通员工的信息,还可以管理管理员自己的一些信息,例如新增管理员等操作。3)日志管理:管理员可以对系统中的日志信息进行查看和搜索,包括根据操作人进行搜索,根据操作病历号进行搜索,在本系统中,日志信息是在用进行相关操作后,系统自动在数据库中插入相关的日志信息,其中日志信息主要分为两类,一类是普通的登录等操作,一类是对病历的新增修改操作,日志中记录着操作人与时间等信息。4)修改个人信息:管理员可以修改自己的详细信息。5)修改个人密码:根据已有的密码管理员可以对自己的密码进行更新操作。个人可对自己的密码灵活掌握,不需要进行更新操作。5.2.2窗口人员主界面窗口人员主界面是用菜单形式表现的,如图5-3:图5-3窗口人员主界面主要功能如下:1)患者挂号:患者来到医院后在窗口人员挂号,窗口人员会登记相关信息并将病历号告知患者,患者可凭病历号找到相关科室的医生进行就诊。2)处方划价:当医生填写好病历并开好处方后好,患者来到窗口处凭借病例好即可进行处方划价操作。3)处方缴费:处方划价完成后,患者进行缴费操作,根据患者是否有医疗保险来计算不同的。4)处方取药:在患者完成看病缴费操作后,即可到窗口取药,但是如果患者还未缴费,则窗口人员在取药列表中无法找到该患者的取药信息。5)修改个人信息:窗口人员登录系统后可以修改自己的详细信息。6)修改登录密码:窗口人员登录系统后可以根据现有的密码来更新自己的密码。5.2.3医生主界面医生主界面是用菜单形式表现的,如图5-4。图5-4医生主界面主要功能如下:1)患者就诊:医生可以根据患者的病历号找到患者的病历,并填写病历的相关信息。2)病历查看:医生可以根据患者的不同信息来搜索相关的病历,包括患者的姓名,身份证号码,病历号等相关信息。3)处方管理:医生在给患者填写好病历后就可以给患者开处方药了,在此界面,医生可以添加处方信息,查看处方信息以及根据病历号和药品名来查找相关处方,修改和删除相关的处方信息。4)修改个人信息:医生登录系统后可以修改自己的详细个人信息。5)修改密码:和其他用户一样,医生也可以根据自己已有的密码来随时更新自己的密码。5.2.4药品管理员主界面药品管理员是用菜单形式表现的,如图5-5。图5-5药品管理主界面主要功能如下:1)药品基本信息管理:库管人员登录系统后,可以通过表单来添加新的药品或者修改已有的药品信息,同时也可以根据药品名称和适用症状来查询对应的药品。2)药品入库信息管理:库管人员可以添加药品的入库信息,包括入库时间,入库批次等信息,可以修改入库的相关信息,也可以根据药品名称和入库时间查询相关的入库信息。3)药品盘点:库管人员可以查看药品的盘点信息,包括入库数量,当前库存,总进货额和总销售额,并根据当前库存和销售额来适当进货。4)修改个人信息:库存人员在登录本系统以后可以更改自己的具体数据。5)修改密码:在库存人员进入系统以后可以根据现有的密码来更新自己的密码。5.3编码的实现5.3.1登录的实现登录是管理系统的必经之路,管理员管理数据,其他用户操作数据都需要先登录,本系统中的登录时校验用户名和密码,同时将角色信息返回到主页面,该部分的主要代码如下所示。if("login".equals(ac)){ Stringpagerandom=request.getParameter("pagerandom")==null?"":request.getParameter("pagerandom"); Stringrandom=(String)request.getSession().getAttribute("random"); if(!pagerandom.equals(random)&&request.getParameter("a")!=null){ request.setAttribute("random",""); go("/login.jsp",request,response); }else{ dao=newCommDAO(); Stringusername=request.getParameter("uname"); Stringpassword=request.getParameter("upass"); Stringutype=request.getParameter("utype"); request.getSession().setAttribute("utype",utype); List<HashMap>list=dao.select("select*fromsysuserwhereuname='"+username+"'"); if(list.size()==1){ HashMapmap=list.get(0); List<HashMap>ulist=dao .select("select*fromsysuserwhereuname='"+username+"'andupass='"+password+"'"); if(ulist.size()==1&&password.equals(map.get("upass").toString())){ request.getSession().setAttribute("admin",map); dao=newCommDAO(); HashMap<String,Object>ext=newHashMap<String,Object>(); ext.put("userid",map.get("id")); ext.put("tname",map.get("tname")); ext.put("oper","登录"); request.setAttribute("f","f"); dao.insert(request,response,"log",ext,false,true); gor("admin/index.jsp",request,response); }else{ request.setAttribute("error",""); go("/login.jsp",request,response); } }else{ request.setAttribute("error",""); go("/login.jsp",request,response); } } }5.3.2字符集过滤器WEB项目中经常存在的就是乱码问题,造成乱码的主要原因就是服务器端的数据编码和客服端不一致造成的,由于本系统主要采用JSP开发,所以在很多方面也存在乱码问题,经过查询以往的资料得知,字符集过滤器是一种能很好解决乱码问题的方法,其主要代码如下所示。publicclassCharsetFilterimplementsFilter{ privateStringencoding="UTF-8"; publicvoidinit(FilterConfigfilterConfig)throwsServletException{ Stringencoding=filterConfig.getInitParameter("encoding"); if(encoding!=null) this.encoding=encoding; } publicvoiddoFilter(ServletRequestrequest,ServletResponseresponse,FilterChainchain) throwsIOException,ServletException{ request.setCharacterEncoding(this.encoding); response.setCharacterEncoding(this.encoding); chain.doFilter(request,response); } publicvoiddestroy(){ }}5.3.3数据相关操作WEB系统中一个很重要的部分就是根据从数据库获取数据,这样才能让用户看到一个实时更新的界面[7]。在本系统中主要采用JDBC的方式连接数据库,通过JDBC的关键APIconnection对象的一些方法获取相关数据,其主要操作分为以下及几种。1)根据前端传入的ID和相应的表名来获取一条数据,通常用来根据表的主键得出相应的数据,其关键代码如下所示。publicHashMapgetmap(Stringid,Stringtable){ List<HashMap>list=newArrayList(); try{ Statementst=conn.createStatement(); System.out.println("select*from"+table+"whereid="+id); ResultSetrs=st.executeQuery("select*from"+table+"whereid="+id); ResultSetMetaDatarsmd=rs.getMetaData(); while(rs.next()){ HashMapmap=newHashMap(); inti=rsmd.getColumnCount(); for(intj=1;j<=i;j++){ if(!rsmd.getColumnName(j).equals("ID")){ Stringstr=rs.getString(j)==null?"":rs.getString(j); if(str.equals("null")) str=""; map.put(rsmd.getColumnName(j),str); }else map.put("id",rs.getString(j)); } list.add(map); } rs.close(); st.close(); }catch(SQLExceptione){ e.printStackTrace(); } returnlist.get(0); }2)在所有的管理系统中,都不可避免会存在图片上传的问题,本系统也,部分表单也存在图片上传的需求,例如药品信息的录入,该部分的主要带入如下所示。if(ac.equals("uploadimg")){ try{ Stringfilename=""; request.setCharacterEncoding("utf-8"); RequestContextrequestContext=newServletRequestContext(request); if(FileUpload.isMultipartContent(requestContext)){ DiskFileItemFactoryfactory=newDiskFileItemFactory(); factory.setRepository(newFile(request.getRealPath("/upfile/")+"/")); ServletFileUploadupload=newServletFileUpload(factory); upload.setSizeMax(100*1024*1024); Listitems=newArrayList(); items=upload.parseRequest(request); FileItemfileItem=(FileItem)items.get(0); if(fileItem.getName()!=null&&fileItem.getSize()!=0){ if(fileItem.getName()!=null&&fileItem.getSize()!=0){ FilefullFile=newFile(fileItem.getName()); filename=Info.generalFileName(fullFile.getName()); FilenewFile=newFile(request.getRealPath("/upfile/")+"/"+filename); try{ fileItem.write(newFile); }catch(Exceptione){ e.printStackTrace(); } }else{ } } } go("/js/uploadimg.jsp?filename="+filename,request,response); }catch(Exceptione1){ e1.printStackTrace(); } }3)由于本系统未使用一些开源框架,所以对事务的处理依然采用原始的JDBC的API进行处理,即先设置自动提交为false,只有所有的SQL脚本正确执行才进行提交操作,此时才会真正将数据写入数据库中,一旦发生异常直接回滚,一会造成对数据库错误的操作,主要代码如下所示。publicvoidcommOperSqls(ArrayList<String>sql){ try{ conn.setAutoCommit(false); for(inti=0;i<sql.size();i++){ Statementst=conn.createStatement(); System.out.println(sql.get(i)); st.execute(sql.get(i)); st.close(); } mit(); }catch(SQLExceptione){ try{ conn.rollback(); }catch(SQLExceptione1){ e1.printStackTrace(); } e.printStackTrace(); }finally{ try{ conn.setAutoCommit(true); }catch(SQLExceptione){ e.printStackTrace(); } } }6关于系统的评价6.1系统主要功能、特色介绍6.1.1系统的主要功能本课题主要解决基层医院病案管理系统日常管理中涉及的基本信息。该系统包括从病人进入医院挂号到病人服药的全过程。实现病案管理系统的快速、信息化和网络化管理。本系统主要包括用户管理、病历管理、处方管理、仓库管理、日志管理等模块。6.1.2系统的特色介绍1)该系统是根据基层医院病案管理的实际需要和需要而设计开发的一个轻量级系统,对计算机配置要求不高。2)在显示方面,系统采用JSP开发,系统数据管理采用MySQL管理,性能适中。数据库连接采用基本的JDBC,操作简单,系统的应用规模和功能结构也可以根据用户需求进行实时的更新与调整。3)各个模块的功能相对完善,符合基层医院实际的基本需求,可供小型医疗机构和部分基层医院使用,普及性和实用性较高。4)本系统的界面设计主要是简单的。同时,各种功能模块简单明了。用户可以很容易地理解他们想要的信息,而无需指导。5)该系统采用JSP技术开发,具有高效性和可扩展性。6)另外,Java语言功能非常强大,兼容性也非常好,通过Java虚拟机,其开发系统可以运行在各种不同的平台上,后期开发潜力巨大。因此,应用程序可以部署在各种平台之上。6.2系统的不足及改进方案6.2.1关于系统的不足系统不足:由于本学期准备二战花费了很多时间,在本系统的开发上投入的时间和精力还不够,所以本系统在很多地方还不是太完善,功能模块还不是很全面。具体的说,系统功能方面可以更加详细,主要是患者手术模块、患者住院模块等功能模块的实现,另外建立数据库的时候考虑的不是很全面,很多表字段信息量不足,数据库连接采用基础的JDBC,对事务的处理不能很好解决。因为页面是由简单的JS,CSS实现的,没有使用一些前台框架,所以有些界面不是很美观。有的问题是我个人考虑的,还有的是老师对我提出的宝贵意见,我会认真吸取并在后期努力改正。6.2.2改进方案改进方案主要将分别从外观功能以及技术三个方面考虑:第一个是外观,要加强CSS的应用,同时也可以使用一些UI框架来使界面更加美观,更加可视化并且方便使用;在功能方面要对系统功能进行扩大,比如需要添加住院模块,增强日志管理等;技术方面的改进最大,在诸多方面都需要使用一些其他技术,例如在数据库管理方面使用c3p0或者dbcp类似的数据库连接池,使用一些成熟的开源框架比如使用spring来进行一些事务控制,实现依赖注入,使用mybatis实现持久层的操作等,同时,在有些问题上考虑的比较笼统,代码写的不太灵活,可能会与实际存在一定的偏差,这些问题会在对更多医疗机构的运营方式了解之后进行改进。同时,在以后的工作的方方面面中,我也会根据自己所学的知识来不断完善该系统。7结论经过一个多月的设计和开发,基层医院门诊电子病历系统基本开发完毕。从收论文题目到系统的完成,再到论文的完成,这其中的每一个环节,对我来说不仅仅是个挑战,更是一个个学习知识的好机会。在此期间本人阅读了大量JSP及管理信息系统的教程,我学到了很多东西,也获益非浅,比如:之前本人对JDBC不熟悉,通过这次毕业论文的撰写,我能通过JDBC来操作数据库了;再比如说项目设计中的有一个难题就是乱码,也就是Servlet的多字符集的问题,通过查阅相关资料,最终通过使用过滤器filter来对request进行拦截,然后设置request和response的编码来解决了乱码问题。这些细节问题,让我了解到真正做一个可用的系统是多么不容易,所以在此我要感谢我的指导老师和同学们,没有他们的帮助,我很难完成这个项目。此外,在本篇毕业论文的撰写中,为掌握各个编程软件的使用方法、编程的各个难点及面向对象的编程思想,本人查阅了相关的教材、网站,也请教过指导教师。经过不停的探索、学习,最终才能完整的做出这个系统。参考文献[1]孙卫琴,李洪成.Tomcat与JavaWeb开发技术详解.[M].电子工业出版社,2003.[2]BruceEckel.Java编程思想.[M].机械工业出版社.2007.[3]FLANAGAN.Java技术手册.[M].中国电力出版社,2002.[4]萨师煊,王珊.数据库系统概论.[M].高等教育出版社,2006.[5]薛倩.基于JSP技术企业动态网站系统设计与实现[J].微型电脑应用,2014(2):14-17.[6]程凯.JSP中文问题及一套整体解决方案.[J].许昌学院学报,2002(8):23-29.[7]耿祥义,张跃平.JSP实用教程[M].清华大学出版社,2003.[8]孙涌.现代软件工程[M].北京希望电子出版社,2003.[9]萨师煊,王珊.数据库系统概论[M].高等教育出版社,2002.[10]张超.基于JSP的数据库连接技术浅析[J].福建电脑,2013(12):80-81.[11]清宏计算机工作室.JSP编程技巧[M].机械工业出版社,2004.[12]朱红,司光亚.JSPWeb编程指南[M].电子工业出版社,2001:34-37.[13]赛奎春.JSP工程应用与项目实践[M].机械工业出版社,2002:213-294.[14]强光平,刘才铭,赵静等.基于JSP的用户分组权限的设计和实现[J].计算机光盘软件与应用,2013(18):53-54.[15]孙一林,彭波.Java数据库编程实例[M].清华大学出版社,2002.[16]JoshuaBloch.EffectiveJava[M].Piscataway,N.J:IEEEPress,2009.MedicalRecordsManagementSystemLiuTongyi(CollegeofPhysicsandElectronicInformation,DezhouUniversity,Dezhou,253023)AbstractWiththecontinuousdevelopmentofscienceandtechnology,computershavebeenfullyutilizedinev
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二四年度股权转让合同标的及相关权益详细阐述
- 2024年度城市基础设施建设独家代理协议
- 塔吊出租合同范本2024律师
- 2024年度假山结构计算咨询合同3篇
- 物业服务礼仪礼貌培训
- 2024年度服装店广告投放合同2篇
- 税收合同范本
- 氯碱厂岗位职责培训
- 黄金购买合同模板
- 外出旅游免责协议书
- 九年级期中考试家长会
- 五年级数学下册 第一单元观察物体(三)检测卷(拓展卷)(含答案)(人教版)
- 2024年合同法下反担保条款解读
- 国开《液压传动和气压传动》实验报告1-4
- 绵阳市高中2022级(2025届)高三第一次诊断性考试(一诊)历史试卷
- 湖南省湘东十校联盟2024-2025学年高三上学期10月联考英语试卷 含答案
- 东方电影学习通超星期末考试答案章节答案2024年
- 2024-2025学年中职美术公共艺术(美术篇)人教版(2013)教学设计合集
- (新版)装订技能竞赛理论知识考试题库500题(含答案)
- 部编版道德与法治八年级上册8.2坚持国家利益至上(2)教案
- 生物尝试对生物进行分类课件 2024-2025学年人教版生物七年级上册
评论
0/150
提交评论