第一章 绪论
1.1 课题背景、目的及意义
近年来,随着医疗及保健系统在中国改革深度的加大,医药连锁经营在我国的大力推行以及在日益激烈的商业竞争,越来越多的医药经营企业意识到提高企业管理水平的重要性,由于药品品种数量繁多,商品流动性快等特点,生产、经营者对管理信息化的要求显得更为迫切。
在医药工业、制药企业中一直通过手工操作来对物流管理,并且进行相应的财务处理,但在新的市场竞争环境下,伴随着产业结构的调整, 企业成功的关键在于它的管理机制和运营效率,手工操作过时了,这就要求管理药品从繁琐的手工操作过程中转向对所有药品的管理实施智能数据管理,从而促进药品管理向科学、规范的方向前进。
随着计算机的快速发展,在医药工业、医药企业中赢得市场竞争的手段就依然成为通过对计算机技术的应用来改进医疗管理制度和提高相应的工作效率。这样的药品管理信息系统已成为制药企业实现药品管理网络和必要的信息工具,是医药管理企业经营规模的一个不可或缺的元件。与此同时,高度集成的软件开发环境和数据库技术变得越来越复杂的医学发展管理信息系统技术,大大降低了系统开发成本。智能系统开发工具,使该系统充分开发,以满足各种需求的制药企业,从医药管理企业的每一个环节成为为一个统一的管理体系。越来越突出的医药管理软件能在竞争的不断完善和优化,都是由于现代社会市场的需求和计算机各种技术支持。
1.2 国内外研究现状
医院药品管理系统的开发实现在欧美等发达国家,已经超过30年的历史,如今有了很大的进步,取得显著成果,现在很多人都承认,医院药品管理系统开发应用使医院药物制度得以有效运行。例如,像盐湖城市医院摩门教药物帮助系统、麻萨诸塞州综合医院药支持系统,退伍军人管理DHCP的系统。
美国药品管理的发展历史,总体可以分为三个阶段:第一阶段,对医院药学发展的管理职能相对专注,如财务管理、费用管理。但美国Collen在1972年还报道一个成功的完成日期与综合医院药(管理)的计算机系统。第二阶段,用计算机对医药管理信息继续实施的同时,像医疗体系、实验室系统已经被许多研究者的努力而成功进入了医疗信息处理领域。到1985年,美国国家药物调查数据处理工作,多个床位医院实现了计算机管理,80%的医院导入财务费用管,70%的医院药品管理系统能支持病人登记注册和管理,25%的医院药品管理信息系统(MIS)更完整。医院药品管理系统小型化体验(裁员),智能(情报学)和集成在重建过程。
近年来,随着医药科学的发展,药品种类多如牛毛,使药品管理工作相当繁重,如果管理不当造成巨大的经济损失,医药管理系统的开发实现,主要目的是加强医院及医药销售部门对药品的科学有效地管理,方便交易处理操作,减轻药品管理人在管理及交易处理时的劳动强度,提高劳动效率。同时为领导决策起到有很好协助效果,进一步提高管理的工作效率。都使得医院药物的管理可以输入到小进而取得更好的社会效益和经济效益。然而,不论是外国或中国,当一个医院药品管理中西医结合医院制度才刚刚起步,通常是第一个建立医院药品管理信息系统,这是因为:更少的资源需要医药管理信息系统显示质量要远远低于 CIS 的需求而所需的网络传输能力和磁盘容量。对医院药品管理信息系统的支持,使用计算机技术更简单。由于医院管理信息系统和数字数据处理文本、声音、图象、和较少参与多媒体数据传输和动态复杂的需求,进而达到更容易的程度。一般管理信息系统安全方面的要比中实时数据处理的要求低一点,临床信息系统提出了相应的速度。最后,从输入和输出的考虑,大部分医院药物制造商被认为使医院更直接、更清晰,访问系统更快速的回报。也就是说,用较少的投入,获得更大的利益。
随着互联网的快速发展,在我国互联网的运用越来越普及,给人们的生活和工作提供了极大的方便,虽然各行各业都使用了网络,但是在实际应用中还不能满足人们的需求,将网络作为平台,开发各行各业的应用软件迫在眉睫,作为医疗系统的管理软件将会极大的提高工作效率并提供用户的全面服务是网络工作人员和医务人员的共同任务。
我国医药企业信息失衡、药品经营企业起步较晚,与区域经济差异的影响。水平绝大多数企业仅有部分使用管理软件,尚未真正为企业信息管理、管理中存在这样或那样的漏洞,没有优势来满足日益激烈的国际竞争中,在国内市场,挑战。一些率先进入信息化商务主要适用于一般管理软件修改了基于非专用软件,制药企业管理功能目标不够。
第二章 可行性分析
2.1 社会可行性
现如今,使用计算机技术的使用已经渗透到生活中的各行各业。利用计算机软件辅助管理具有以下优势:人工成本大大降低,对于操作人员的要求大大降低;处理速度更加快速、准确,用户体验更佳;工作中的数据统计、信息管理更加方便快捷,准确性更高而花费人工更少;多任务协作的流程更快,各个任务间的信息传递更加实施,对于一些服务性行业的用户体验更号。综上所述,在医院医药药品管理中引入计算机软件来进行辅助管理也必将是一个必然趋势。因此医院医药药品管理系统的实现具有较强的社会可行性。
2.2 技术可行性
本次介绍的系统采用的是Jsp+SSM(Spring+SpringMVC+Mybaits)+MySQL框架进行开发,Windows XP Professional操作系统,前端网页主流易用的EasyUI轻量级框架。采用MyBatis与后台数据库进行连接,MyBatis是SSM中的M,是对Jdbc的封装,完成数据的添加、修改、删除、查询等功能。SSM框架是一个常用的Web项目框架,功能强大而且稳定,而MySQL灵活易维护在开发方面具有方便快捷、使用灵活的特点,以及目前的广泛实际应用,因此使用Jsp、SSM、MySQL来完成该系统整体开发,从而说明本系统在技术方面可行。
硬件方面,科技飞速发展的今天,硬件更新的速度越来越快,容量越来越大,可靠性越来越高,价格越来越低,其硬件平台完全能满足此系统的需要。
2.3 操作可行性
目前,大多数计算机都能运行该系统,该系统的安装、调试、运行不会改变原计算机系统的设置和布局,并且系统界面简单,提示信息完整,由相关人员指导便能够方便的操作此软件。
2.4 系统的技术介绍
2.4.1 Javascript
JavaScript是一种基于对象和事件驱动并具有相对安全性的客户端脚本语言。同时也是一种广泛用于客户端Web开发的脚本语言,常用来给HTML网页添加动态功能,比如响应用户的各种操作。它最初由网景公司(Netscape)的Brendan Eich设计,是一种动态、弱类型、基于原型的语言,内置支持类。
Javascript语言与Java语言在语法上比较相似,但随着对Javascript的深入了解后你会发现,它们说到底是两种语言!
2.4.2 jQuery
jQuery是一个兼容多浏览器的javascript框架,核心理念是write less,do more(写得更少,做得更多)。jQuery在2006年1月由美国人John Resig在纽约的barcamp发布,吸引了来自世界各地的众多JavaScript高手加入,由Dave Methvin率领团队进行开发。如今,jQuery已经成为最流行的javascript框架,在世界前10000个访问最多的网站中,有超过55%在使用jQuery。
jQuery是免费、开源的,使用MIT许可协议。jQuery的语法设计可以使开发者更加便捷,例如操作文档对象、选择DOM元素、制作动画效果、事件处理、使用Ajax以及其他功能。除此以外,jQuery提供API让开发者编写插件。其模块化的使用方式使开发者可以很轻松的开发出功能强大的静态或动态网页。
2.4.3 EasyUI
EasyUI是一种基于jQuery、Angular、Vue和React的用户界面插件集合。它为创建现代化、互动的JavaScript应用程序提供必要的功能。使用EasyUI不需要编写很多代码,你只需要通过编写一些简单HTML标记,就可以定义用户界面,虽然很简单但功能强大的。EasyUI完美支持HTML5网页框架,它的出现大大降低了开发者开发时间与规模。
2.4.4 MySQL
MySQL是一个开放源码的小型关联式数据库管理系统,开发者为瑞典MySQL AB公司。MySQL被广泛地应用在Internet上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。
自从Oracle公司收购了MySQL后不久,就发行了MySQL的企业版(不再免费)!
2.4.5 MVC
MVC即模型-视图-控制器,是Xerox PARC在八十年代为编程语言Smalltalk-80发明的一种软件设计模式,至今已被广泛使用。最近几年被推荐为Sun公司J2EE平台的设计模式,并且受到越来越多的使用ColdFusion和PHP的开发者的欢迎。
MVC是一种设计模式,它强制性的使应用程序的输入、处理和输出分开。使用MVC应用程序被分成三个核心部件:模型、视图、控制器。它们各自处理自己的任务.
(1)模型
模型表示企业数据和业务规则。在MVC的三个部件中,模型拥有最多的处理任务。例如它可能用象EJBs和ColdFusion Components这样的构件对象来处理数据库。被模型返回的数据是中立的,就是说模型与数据格式无关,这样一个模型能为多个视图提供数据。由于应用于模型的代码只需写一次就可以被多个视图重用,所以减少了代码的重复性。
(2)视图
视图是用户看到并与之交互的界面。对老式的Web应用程序来说,视图就是由HTML元素组成的界面,在新式的Web应用程序中,HTML依旧在视图中扮演着重要的角色,但一些新的技术已层出不穷,它们包括Macromedia Flash和象XHTML,XML/XSL,WML等一些标识语言和Web services.如何处理应用程序的界面变得越来越有挑战性。MVC一个大的好处是它能为你的应用程序处理很多不同的视图。在视图中其实没有真正的处理发生,不管这些数据是联机存储的还是一个雇员列表,作为视图来讲,它只是作为一种输出数据并允许用户操纵的方式。
(3)控制器
控制器接受用户的输入并调用模型和视图去完成用户的需求。所以当单击Web页面中的超链接和发送HTML表单时,控制器本身不输出任何东西和做任何的处理。它只是接收请求并决定调用哪个模型构件去处理请求,然后确定用哪个视图来显示模型处理返回的数据。
综上所述,MVC的处理过程是首先控制器接收用户的请求,并决定应该调用哪个模型来进行处理,然后模型用业务逻辑来处理用户的请求并返回数据,最后控制器用相应的视图格式化模型返回的数据,并通过表示层呈现给用户。
2.4.6 SSM
SSM为Spring+SpringMVC+ MyBatis的缩写,由Spring、MyBatis两个开源框架整合而成(SpringMVC是Spring中的部分内容)。
(1)Spring
Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson 在其著作Expert One-On-One J2EE Development and Design中阐述的部分理念和原型衍生而来。它是为了解决企业应用开发的复杂性而创建的。Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。 简单来说,Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。
(2)SpringMVC
Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。Spring MVC分离了控制器、模型对象、分派器以及处理程序对象的角色,这种分离让它们更容易进行定制。
(3)MyBatis
MyBatis本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation迁移到了google code,并且改名为MyBatis 。MyBatis是一个基于Java的持久层框架。iBATIS提供的持久层框架包括SQL Maps和Data Access Objects(DAO)MyBatis 消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。MyBatis 使用简单的 XML或注解用于配置和原始映射,将接口和 Java 的POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。
2.5 系统开发平台及运行环境
2.5.1 系统开发平台
系统的开发是在Tomcat环境下进行的。Tomcat是一个免费的开源的Servlet容器,它是Apache基金会的Jakarta项目中的一个核心项目,由Apache,Sun和其它一些公司及个人共同开发而成。由于有了Sun的参与和支持,最新的Servlet和Jsp规范总能在Tomcat中得到体现。Tomcat被Java World杂志的编辑选为2001年度最具创新的Java产品,可见其在业界的地位。
Tomcat的环境主要有以下几方面技术优势:
1.Tomcat中的应用程序是一个WAR(Web Archive)文件。WAR是Sun提出的一种Web应用程序格式,与JAR类似,也是许多文件的一个压缩包。
2.在Tomcat中,应用程序的部署很简单,你只需将你的WAR放到Tomcat的webapp目录下,Tomcat会自动检测到这个文件,并将其解压。
3.Tomcat不仅仅是一个Servlet容器,它也具有传统的Web服务器的功能:处理html页面。
4.Tomcat也可以与其它一些软件集成起来实现更多的功能。
2.5.2 运行环境
操作系统:Windows XP以上版本。
服务器软件:Tomcat6.0以上版本。
浏览器:IE、Fire Fox、Google Chrome。
第三章 需求分析
3.1 系统功能模块概述和分析
《医院医药药品管理系统》采用B/S架构,该系统主要实现了管理员对于客户(病人)信息、经办人(医生)信息、药品信息等的管理功能,实现了最基本的医药药品管理功能,其中客户(病人)与经办人(医生)和药品产生联系,即每一个顾客都有唯一对应的医生和药品及病症的基本信息。而这种信息的管理依靠管理员使用系统进行操作。
《医院医药药品管理系统》主要功能如下:
- 管理员:
- 登录系统:管理员需要输入正确的用户名和密码来登录系统,从而完成各类信息的管理工作;
- 信息查询:查询客户信息、查询经办人信息、查询药品信息;
- 信息录入:录入顾客信息、录入经办人信息、录入药品信息;
- 信息修改:删除顾客信息、删除经办人信息、删除药品信息;
- 信息浏览:浏览顾客信息、删除经办人信息、删除药品信息;
- 数据报表:顾客信息报表、经办人信息报表、药品信息报表;
- 用户管理:管理系统的各个管理员信息。
用例图是进行需求分析的很好的手段,它是从用户的角度来考虑,可以深入分析出系统的功能和动态行为,该系统的用例图如下所示:
管理员:
3.2 业务流程分析
整个系统的功能均是围绕管理员设计的,而管理员后台的管理不是以业务来划分,而是以对数据的增、删、改、查来进行分类的(这在上文以及后面的实现中都有体现),因此对于管理员的流程也按照增、删、改、查来设计。
管留言流程图如下所示:
3.3 系统功能模块分析
根据系统功能分析,将整个系统的功能模块规划为如下的功能模块图。
3.4 数据库分析
信息系统的主要任务是通过大量数据获得管理所需要的信息,这就要求系统本身能够存储和管理大量的数据,而这一功能的实现必须借助大型数据库系统。本系统的开发选择MySQL作为后台数据库开发工具。
- 概念模型设计
概念模型用于信息世界的建模,与具体的DBMS无关。为了把现实世界中的具体事物抽象、组织为某一DBMS支持的数据模型。人们常常首先将现实世界抽象为信息世界,然后再将信息世界转换为机器世界。也就是说,首先把现实世界中的客观对象抽象为某一种信息结构,这种信息结构并不依赖于具体的计算机系统和具体的DBMS,而是概念级的模型,然后再把模型转换为计算机上某一个DBMS支持的数据模型。实际上,概念模型是现实世界到机器世界的一个中间层次。
信息世界中包含的基本概念有实体和联系。
(1) 实体 (entity)
客观存在并可相互区别的事物称为实体。实体可以是具体的人、事、物,也可以是抽象的概念或联系。例如,一个学生、一门课、一个供应商、一个部门、一本 书、一位读者等都是实体。
(2) 联系 (relationship)
在现实世界中,事物内部以及事物之间是有联系的,这些联系在信息世界中反映为实体内部的联系和实体之间的联系。实体内部的联系通常是组成实体的各属性之间的联系。两个实体型之间的联系可以分为3类,一对一联系,(1:1);一对多联系(1 : n);多对多联系(m : n)。
概念模型是对信息世界建模,所以概念模型应该能够方便、准确地表示信息世界中的常用概念。概念模型的表示方法很多,其中最为常用的是P.P.S.Chen于1976年提出的实体,联系方法(Entity-Relationship Approach)简记为E-R表示法)。该方法用E-R图来描述现实世界的概念模型,称为实体-联系模型,简称E-R模型。
根据功能模块的设计,整个系统的E-R图设计如下所示:
根据整个系统的功能设计以及E-R图设计所规划的主要实体有:药品、客户、经办人、管理员。各个实体具体的描述属性图如下(由于实体属性较多,下图各个实体仅展示了与功能设计相关的属性):
- 管理员实体
- 药品实体
- 客户实体
- 经办人实体
- 数据库表设计
数据库表设计主要是把概念结构设计时设计好的基本E-R图转换为与选用DBMS产品所支持的数据模型相符合的逻辑结构。它包括数据项、记录及记录间的联系、安全性和一致性约束等等。导出的逻辑结构是否与概念模式一致,从功能和性能上是否满足用户的要求,要进行模式评价。
本系统数据库表如下:
- user表(管理员表)
字段名称 | 数据类型 | 主键 | 是否空 | 说明 |
uUsername | varchar(12) | Y | N | 用户名 |
uPassword | varchar(45) | N | N | 密码 |
uAccess | varchar(100) | N | N | 权限 |
- medicine表(药品表)
字段名称 | 数据类型 | 主键 | 是否空 | 说明 |
mno | char(20) | N | N | 药品编号 |
mname | varchar(50) | N | N | 药品名称 |
mmode | char(10) | N | N | 服用方法 |
mefficacy | varchar(1000) | N | N | 功效描述 |
mid | int(11) | Y | N | 药品ID |
- client表(客户表)
字段名称 | 数据类型 | 主键 | 是否空 | 说明 |
cno | char(10) | N | N | 客户编号 |
cname | archar(8) | N | N | 名称 |
csex | char(8) | N | N | 性别 |
cage | char(4) | N | N | 年龄 |
caddress | varchar(50) | N | N | 地址 |
cphone | varchar(20) | N | N | 电话 |
csymptom | varchar(50) | N | N | 症状 |
mno | char(12) | N | N | 药品ID |
ano | char(8) | N | N | 经办人ID |
cdate | datetime | N | N | 创建日期 |
cremark | varchar(45) | N | N | 备注 |
cid | int(11) | Y | N | 客户ID |
- agency表(经办人表)
字段名称 | 数据类型 | 主键 | 是否空 | 说明 |
ano | char(50) | N | N | 经办人编号 |
aname | char(50) | N | N | 姓名 |
asex | char(50) | N | N | 性别 |
aphone | char(12) | N | N | 电话 |
aremark | varchar(50) | N | N | 备注 |
aid | int(11) | Y | N | 经办人ID |