摘 要
当代的计算机自动化管理已被应用于各大行业中,这也同样是实现现代化管理的重要标志之一。计算机的自动化管理能有效减轻西药剂师进行西药房相关药品出入库、详细信息等管理的工作量,也能避免西药品管理不当或者落后所导致的西药品分发等的错误率问题。基于此,有必要建立一套西药房管理系统实现自动化管理。
本文的主要内容包括西药房管理系统中各模块的设计以及可行的方案。文中着重探讨了采用Java编程语言,基于SpringBoot的框架,并结合B/S模式以及利用MVC的三层架构设计完成系统开发,最终结合MySQL数据库进行数据信息存储的详细开发过程。本系统设计并实现了药品管理、药品出库管理、药品入库管理、库存信息管理以及供应商管理五大管理模块,依据此五大管理模块的功能设计实现自动化管理西药房内药品的出入库等过程。
最终,针对本系统的代码以及前端界面效果进行了展示评价与总结,并进一步阐述了此次设计的主要工作以及有待改进之处。该系统提供了逻辑清晰且简约的管理前端界面,方便药剂管理员进行管理操作,从而进一步保证了药房信息管理操作的正确率以及效率。
关键词:西药房管理系统; Java;B/S模式;MVC三层架构;MySQL
1.绪论
1.1研究背景
近年来,计算机系统在所有管理范围内发挥着至关重要的作用,用有效的方法以自动化以及便利化人工的工作[1]。此外,基础纸质化的管理在某些特定方面与情况下面临着复杂的问题,即访问信息时的耗时问题[2]。换言之,在人工管理的过程中,执行跟踪、匹配或存储文档等操作时,会损耗大量的时间成本[3][4]。
药房往往是医院中最繁忙的科室之一,只要是前往医院探诊的病症患者,即最终的门诊步骤都会指向于药房[4]。药房每天都面临着大规模的取药操作,而其中的工作人员均忙碌于各种事务性的工作中,人人均忙碌得不可开交。由于长时间的重复性工作以及各种主客观原因,其在药品的分发上均可能发生一定程度的混乱现象。尤其是针对大型省市型医院,其药品数量与品类纷繁复杂,要进行大规模药品的采购、分发以及出入库信息登记等操作,导致其手工操作的错误发生情况难以避免。这将进一步导致账目管理工作无法推进等等问题。而药理学是生物学的一个分支,该学科既研究化学物质的性质,又研究药物的使用、作用与副作用,药剂师也因此应运而生。如何提高药剂师们的工作效率,最常见的技术是条形码验证、电子处方技术和计算机处方的订单输入输出等[5]。
此外,集成上述智能化技术的药房管理系统是医院药房科室中所运用的一项自动化手段,其可运用计算机强大的数据存储库以及机械化设备以实现自动化配发药品予以患者个人。由于在信息化时代下传统的手工记录方式早已无法满足大数据以及规模化的信息膨胀,该系统的出现实现了新的药房管理目标,是药房管理现代化改革所跨出的关键一步[6]。
因此,本文设计并开发一套西药房管理系统用以实现西药品自动化统计以及管理的计算机系统,其中包括入库以及出库等管理操作。纯手工管理不仅给药剂师们带来了繁重的工作负担,而且也会导致药品管理分配的错误率升高。因此,有必要设计并开发出一套西药房管理系统,采取自动化的统计管理方式以替代人工文字记录西药品的入库出库数量、采购数量以及西药品资料信息等方式[7]。
1.2国内外研究现状
在国外近几年的药房管理系统发展历史中设计并开发出了一系列的系统。其中,在2010年,努鲁·穆罕默德提出了一个药物管理系统,以增加库存管理程序。拟议的系统配备了警报,提醒管理员关于所有达到最低数量的药物和已过期的药物[8]。2012年,卡莱尔·乔治在他的书中提出了不同的算法,并提供了关于发放药物和监测和控制患者的丰富信息[9]。2017年,Spyropoulos提出了第一个根据新兴的物联网的中断影响,对最重要的医院部门的服务进行排序的基本方法[10]。2018年,作者提出了一项研究,旨在描述了涉及医院药房功能的所有相关部分的现状。该方法提出了一种基于已构建的数据库和已设计的GUI框架的电子药房管理系统。其中包括关于患者和药物的信息以及住院和门诊的相关信息,均已存储在相关数据库中。该系统可分为病人登记病人、住院病人、门诊病人和内科病人几大模块。除了用于管理的GUI框架之外,上述每个部分还包括不同类型的操作与数据库表[11]。
在国内近几年的药房管理系统发展中,也开发出了一系列的系统。在2013年,玉子琳以主流的前端框架JSP为基础,利用B/S三层体系架构结合MySQL数据库存储技术开发并设计了一套药房管理系统。其实现了针对药房中各类药品的采购入库、信息清点以及分药发出等全方位的自动化管理,并依据操作对象的不同划分为了药品管理与用户管理两大主要管理模块[12]。随后于2016年,王子懿也开发并设计出了带有药品的采购入库、药品的分发出库等库存信息的统计与查询功能的药房管理系统[13]。在上述所开发的药房管理系统中,后两者的功能模块相较于2012年的菏泽市立药房管理系统而言,其功能较为单薄且不够丰富,此外后两者的系统开发难度相较而言则也更低。在2019年,苏茂泉等人针对基层医疗设备的设施条件有限、省市大型医院门诊人数较多以及优质医疗资源无法落地等问题,提出基于智慧云的“互联网+医院”药房管理系统。此系统实现了包括电子处方的流转审核、指纹或刷脸快捷支付、电子处方的统计查询、云病历的管理以及药品的出库分发及配送等六大业务功能模块[14]。在最近的四年时间内相继有学者不断设计并开发出新的医药方管理系统,在前人的系统功能的基础上进行着逐步地完善工作[15][22]。因此,本文借鉴上述国内外药房管理系统的总体框架设计以及功能模块设计进一步设计出一套更加完善的系统。
1.3论文研究主要内容
本文针对目前药房管理系统存在的弊病问题,并考虑到医院未来的自动化发展方向设计并开发出一套西药房管理系统。具体来说,本文首先分析并研究了该系统的背景与意义;其次针对开发本系统所涉及到的相关技术进行了简要概述,并进一步分析了系统的具体需求;明确具体需求后实现了系统的总体架构方案设计;最终具体细化每个功能模块的设计并落地与实现该系统。最后进行了系统的功能测试。借助此系统极大减轻了医务人员们的工作负担,便于工作效率的提升以及错误率的减少。本系统操作界面简单易学,信息的存储量足够大,运行环境安全可靠,系统维护较为便利,将为各大医院节约大量的人力以及管理成本。
1.4论文组织结构
本文由六章内容组成,其中:
第一章绪论。该章节阐述了本西药房管理系统开发与设计的背景目的与意义,并规整了国内外关于该系统各个功能模块设计与开发的研究现状,最终概括了本文的主要研究内容以及论文组织架构并予以章节总结。
第二章系统关键技术。该章节详细阐述了本系统开发中所涉及到的Java开发语言、B/S模式、MVC三层架构设计、SpringBoot框架以及MySQL数据库存储技术,并予以概括总结。
第三章系统需求分析。该章节为本系统的开发与设计提供了前提,即概括了本系统开发的实现目标,详细分析了本系统的业务流程、功能模块、系统性能以及可行性问题,最终并予以章节总结。
第四章系统总体设计。该章节为本系统开发与设计可行性方案的中枢核心,在完成系统中各类需求分析的基础之上,进一步确定了系统的全局功能架构与体系。此外,通过用例图、体系架构图、系统功能模块图以及E-R图等的细化设计进一步完善了本系统每个功能模块的内部流程逻辑,最终予以本章总结。
第五章系统详细设计与实现。该章节针对该系统的各大功能模块、代码部分以及界面展示部分进行了逐一分析与阐述,并最终予以本章的总结归纳。
第六章系统测试。该章节的目的主要是验证本系统在实施过程中的操作准确性、操作容错性以及对各个功能模块的功能测试,最终予以本章总结。
第七章总结与展望。针对西药房管理系统的整体工作予以总结,并提出未来的工作展望。
1.5本章小结
本章详细调研并分析了西药房管理系统开发与设计的背景与意义;其次针对国内外的研究开发现状进行了分析;接下来组织概括了本文主要研究工作所涵盖的范围;最终梳理了行文的全局组织架构并予以本章小结。
2.系统关键技术
2.1B/S模式
(Browser/Server)B/S模式顾名思义即浏览器/服务器模式,其本质为一种体系架构。具体来说,B/S架构必须以性能稳定的浏览器为基础的技术支撑,并集合多种ActiveX技术与Script语义的一种对客户端/服务器(Client/Server, C/S)结构改进后的体系结构。现如今的大多数软件应用系统均采用B/S三层体系架构,即数据信息的增删改查层、中间衔接层以及用户的前端展示界面层的三层系统架构。随着中间衔接层中中间件技术的日益革新与成熟,B/S三层架构才得以应运而生。这类架构则主要依赖于中间件以实现三种功能层的相互独立,其中三种功能层则包括业务逻辑层、数据存储层以及表示层。就逻辑而言,这种利用中间件划分出三个功能层的方法将应用软件系统拆解为了三个互不相干的层。在B/S三层架构中,用户可通过获取任意一款浏览器应用向分布于网络上的诸多服务器发出访问请求后所反馈响应的操作,将用户所聚焦的有关信息以前端页面友好的形式展现至用户的视野范围内。在这个过程中,不仅要求有关网络服务能实现数据库的访问以及应用程序的执行,还要求完成数据的更新,请求,执行结果的返回与动态页面的自动式生成等操作。
伴随移动互联科技的不断革新,网上冲浪早已成为私人计算机的常规操作与主要习惯。浏览器一直以来作为内嵌的基本应用软件被默认安装于各大操作系统中,因此浏览器也就成为了现如今应用软件的主流之一。追其溯源,B/S体系结构的突出优势在于其开发的开发者友好性以及共享性、分布性强、拥有成本低且维护难度较低等。但也存在一定的弊端,即数据传输速率较慢、软件的个性化程度并不高,对服务器的负载等要求较高、安全性能较差等,使某些特定的功能需求难以实现于一般的传统模式下。
综上所述,B/S体系结构具有分布性强、可维护性强、业务扩展性强、共享程序高的优势。基于此类优势,本西药房管理系统的开发与设计则采用B/S三层架构作为总体的体系结构搭建基础。
2.2MVC设计模式
模型视图控制器(ModelView Controller, MVC)是一种典型的软件设计范式,其是一种用于规整代码以业务逻辑以及数据显示独立开来的方法。其主要由模型、视图以及控制器所组成。
模型包括数据与业务的处理。模型在MVC三组件中承担着最繁重的任务处理工作。模型所生成的数据是各自独立的,换言之即模型与数据的格式之间并无关联,如此即一个模型则可提供数据予N个视图。又因为其模型的代码仅经过一次编写则可被重用于N个视图中,从而缓解了代码的编程冗余性问题。从模型的分类出发,亦可分为数据与业务模型。
视图为一种与用户交互友好型的界面。其中MVC具备一个优势即能提供各种不同的界面予系统。实际上,视图中并无相关的处理程序。换言之,对于视图而言,无论数据为何物,视图仅仅作为一种方式而出现。这种方式实现了显示数据与用户交互的操作。相关的组件包括JSP以及HTML。视图提供了可视化的数据模型界面以供用户发生交互。
控制器是一种调用模型以及视图以响应用户请求的工具。控制器在接收到用户所发出的请求时,均是由控制器以决定调用哪一种模型以处理请求并决定调用哪一个视图以显示模型处理完成所返回的数据。在这期间控制器并不会执行任何业务操作,同时也并不会输出任何数据。其对应的组件包括SERVLET。
综上所述,MVC框架的优势主要包括各司其职,独立性高、组件的利用率高以及分工的权责分明度高。因此,本西药房管理系统采用MVC作为设计模式。
2.3Spring Boot框架
Spring Boot是由Pivotal推出的一个全新框架,它也是Spring家庭的一个成员,可用于快速开发扩展性强、微小的项目,业界亲切地称为“微框架”。毋庸置疑,Spring Boot的诞生不仅给传统的企业项目与系统架构带来了全面改进以及升级的问题,同时也给Java程序员带来了诸多益处,可谓是Java程序员的一大利器。
Spring 框架从诞生以来就是一款非常优秀的框架,随着其发展,几乎集成了各种第三方中间件。根据个人观点,SpringBoot实际上就是Spring开源项目中的子集。Spring组件提供了一站式的解决方案,其目的旨在简化Spring应用初始框架的搭建与开发过程。言而总之,它具备所述的优势:能使代码更加简单、简化了配置、使部署更加便捷、使应用的监控变得更加简单和方便。其实就是简单、快捷、方便。
总的来说,Spring Boot的出现不仅使得项目的构建不再需要繁琐的XML配置以及大量重复性的样板代码,还使得整合第三方框架以及集成Spring家庭的其他成员变得更加简捷与高效,在很大程度上改善了开发的质量与效率。因此,本西药房管理系统以Spring Boot为框架进行设计与开发。
2.4Java编程语言
就广义的Java定义而言,其为Java面向对象程序设计语言与Java平台的总称。Java语言由JamesGosling主导并展开带头研发工作,于1995年发布正式的第一版本。HotJava浏览器即源自于Java开发,其也是一款带有跨平台特性的编程语言。也正是基于此原因,Java则被广泛推广并在各类Web开发与设计的社区中十分受开发者的欢迎,从而更进一步拓宽了Web服务未来的发展趋势与道路,目前市面上的浏览器均支持Javaapplet。2021年Oracle公司收购了Sun公司,将Java的两大组成改为了Java语言、Java类文件、Java虚拟机与Java应用程序接口的四大组成。Java主要分为三个版本构成,其中包括J2SEJ2EE,即平台企业版、J2ME,即平台微型版以及java平台标准版。
Java语言的代码语法风格与C以及C++的语法风格尤为类似。Java继承了面向对象的特性,是一款为面向对象而生的编程语言。其利用“引用”替换了C系列语言中易绕晕开发者头脑的“指针”操作,此外,还利用接口予以替换掉运算符重载以及多重继承等方法。此外,它能够及时释放不再被引用对象所霸占的内存空间腾出位置予当前的引用对象,能够减轻开发者的内存管理压力,具备此功能的工具即Java的垃圾回收器。在后续接连更新的Java版本发布中,Oracle公司为进一步提升开发者的程序开发性,又接连引入了泛型编程方法、类型安全的枚举方法、不定长参数的定义以及使用方法以及自动装拆箱等语言及方法特性。
Java能够区别于其他的编译以及解释执行的编程语言,其仅需一次编译过程,则可实现随处执行的操作。具体来说,它首先将源代码编译为二进制字节码格式,随即再通过各类操作系统上的虚拟机以解释编译完成的字节码文件,最终可直接于对应操作系统上运行解释完成的相关字节码文件。因此,本西药房管理系统采用Java语言实现代码编程。
2.5MySQL数据库
MySQL数据库被广泛应用于基于Web的中小型动态网站的搭建中,因其具备占用内存小、数据信息处理效率高、源码免费开源以及成体低廉等优势。选用该数据库作为系统后台数据信息的存储与管理工具能为企业提升其经济性,此外则是其开源性极大地增强了所开发网站的可移植性与通用性。
即使MySQL数据库有着区别于其他数据库存储工具无法替代的独特优势,但其也在某方面存在些许弊端,比如:该数据库所能够容纳的数据规模非常有限,无法实现海量数据的大规模数据管理;此外相较于其他数据库而言,该数据库的功能设置缺乏全方位的考量,其中所存在的局限性则会导致所开发系统的功能和效率相较而言更更加差劲一些。尽管,其应用上尚且存在不足,但还是作为广大程序开发者的最通用的数据库之一。伴随网络互联的快速普及,该数据库的使用范围也随之更广。
究其根本,MySQL数据库还是具备着一定的优势。具体来说,其是由C与C++语言所编写并采用了多种编译器进行过反复的测试及运行过程的,因此其源代码的开源性与可移植性较高;该数据库为如C以及Python等等市面上主流的程序开发语言提供了API接口,为开发者的程序编写提供了极大的便利;该数据库还支持并内置了一系列便于数据查询、统计、管理以及优化的工具与函数方法;该数据库对于各种如AIX、Windows、Linux、MacOS等在内的多种操作系统的开发提供了便利的开发环境;该数据库可利用SQL语句直接操作并处理中型规模中囊括上千万组数据项的数据库;该数据库支持多种常见的语言编码格式,并优化了SQL的查询语句,进一步改善了数据的查询效率;该数据库能够用于并支持多线程的运行,并能充分调动并利用计算机的所有CPU资源,提高了资源利用率;该数据库也提供TCP/IP以及ODBC等多种加载写入途径;该数据库不但能作为独立的应用程序应用于客户端的网络环境中,且还能作为一个独立的工具库嵌入至其他的软件应用开发系统中。因此,本西药房管理系统的设计与开发以MySQL数据库作为数据的存储库。
2.6本章小结
本章依据本西药房管理系统的构建角度出发,依据设计与开发过程中所涉及的B/S体系结构、MVC设计模式、Java编程语言、Spring Boot框架以及MySQL数据库存储等关键技术的概念以及优势进行了详细描述,更进一步为后续整体系统的设计与开发奠定了技术基础。
3.系统需求分析
3.1系统的实现目标
为更高效地管理西药房信息系统内的数据,通过药房管理、系统管理、用户管理以及系统工具维护管理四大管理模块进行了系统全局的目标设计。其中主要功能包括:
药房管理:药房管理是一个大模块,其中又划分为五个功能性模块,包括药品管理、供应商管理、药品库存信息管理、入库管理以及出库管理。药房管理是占整个系统的主导地位,因为开发此系统的目的就是能减轻医务人员在药房管理这方面的工作量,使少量的工作人员能处理大量复杂的信息。
系统管理:系统管理包括日志展示和字典管理,日志展示就是指系统在启动期间加载驱动程序及页面的记录,还包括其他系统组件的故障;字典管理的主要功能就是对数据的类型进行管理和节约内存。
用户管理:用户管理可以理解为对普通用户具有权限作用的管理,也即最高管理员可以进行所有操作,管理员不仅可以创建普通用户为普通用户赋予一些其他基本操作,也可以修改其密码,禁用普通用户的一切操作。
系统工具维护管理:系统工具包括系统监控,主要可以查看系统的运行时长、java版本以及服务器信息。
本文通过对具体的四大模块中的功能的阐述,为系统的实现提供了一定的指引性与目标。此外,对于该系统中各系统需求进行了分析,为了建设性能优良的西药房管理系统,必须遵循一些具体设计目标。结合本系统的设计要求,拟定了系统开发与设计过程中的目标,即界面流程性目标、安全性目标、适用性目标、实用性目标、约束性目标以及可维护性目标。
界面流程性目标:系统在设计初期考虑到药剂师们的所有可能遇到的使用情形以及条件,拟实现一个方便药剂师们理解与上手操作并处理的自动化界面。
安全性目标:药剂管理员只有输入正确的账号、密码及验证码之后才能进入后台管理界面,而且所设置的账号为独一无二的值,保证了每一个账号有且只能对应一个密码,进而提升了系统的安全性。
适用性目标:本系统考虑到各个医院或者科室操作平台的广泛适用性问题,采用可定制化的医院标志设计与界面形式组成。其系统首页的部分信息内容可直接进行可视化编辑、审核以及发布。其应用系统的数据结构也可以进行修改,在很大程度上为用户提供了个性化需求。
实用性目标:本系统旨在解决用户在实际软件应用过程中的生产生活问题。无论在各个子模块间的设计还是总体框架的设计方面,均实现了系统的全部功能。这些功能已足够药房管理的日常操作与处理。且系统的操作页面设计逻辑清晰,风格简约,易于使用。
约束性目标:一般情况下,拟定登录本系统的响应时间<1s,客户端请求响应时间<1.3s,页面交互信息的时间<1.3s,页面数据与后台数据交互<2s,操作页面的展示效果一定是高效的,因为这将是用户最直观的体验。
可维护性目标:普通用户执行错误操作时出现错误的数据结果可以由后台维护模块与管理员取得联系,删除错误数据。
3.2可行性分析
针对本系统的可行性分析,主要可从技术可行性、经济可行性以及操作可行性方面出发:
在技术可行性分析中,从设计系统所需要的软硬件方面进行分析。由于现在计算机技术越来越成熟,所以硬件方面无疑是可以的;反之来到软件这一成分,本系统采用B/S模式进行开发,另外相配合于强大的JAVA编程语言以及MySQL数据库存储的技术,在当今快速发展的社会,此种模式的存在为系统开发提供了一个全新的平台,成为技术超越的又一方向。
在经济可行性分析中,本项目开发中所涉及的软件,资源均属于开源项目且针对学生免费开放,因此从经济角度上看设计此项目完全可行。
在操作可行性分析中,操作可行性是对系统操作者而言的。操作者不用去管理后台复杂繁琐的数据库,只需在界面就能清晰了然地知道所有数据,并对数据准确记录。系统的各种操作也很简单,只要有一点计算机相关基础的人,不用别人指导自己摸索一段时间都能清楚地了解并正确使用该系统。本系统的优点是注册并授予权限的药剂师能完成药品信息的管理,操作容易上手,使用方便快捷。对于系统后台的管理与监督更为方便,高效。后台管理人员培训时间短,并且相对于年轻人上手并不困难。方便理解,在后台可以统一管理,统一操作。对于硬件来说,管理人员至于需要一台电脑就可以操作。
综上所述,本系统在操作上也是可行的。
3.3业务流程分析
确保系统灵活自动化地执行流程的关键性要素为其具备优质的业务流程设计,带有逻辑清晰的业务流程之间关系网络的定义可有效降低业务之间的耦合程度。本西药房管理系统的业务分析从两个角度出发分别为管理员以及普通用户管理,其具体的业务流程如下所述:
在管理员的管理中,管理员的业务流程具体包括针对身份认证表判断其药剂管理员的账号密码是否在库中以确认药剂管理员是否能登入系统;针对药品的资料数据以及出入库方式等资料进行周期性维护并针对整个系统的相关工作进行系统管理。
在普通用户管理中,它的权限是由管理员分配的,管理员可以给予它的角色有管理员、用户以及能修改用户密码角色。如分配普通用户的角色,所有的业务流程具体可分为供应商管理、药品出库管理、药品库存信息管理以及药品信息管理,便于普通用户针对需要分发和清点的处方药品、药品库存以及药品信息进行管理。
综上所述的业务流程,其具体的流程如图 31所示。
3.4功能模块分析
系统最主要的功能是药房管理下的五大功能模块,即:药品管理、供应商管理、库存信息管理、药品出库管理和入库管理。因此开发此西药房管理系统的目的是方便药剂管理员更高效地实现西药品的出入库以及管理工作。所以可将系统整体的功能性模块分为以上五大模块。
在药品管理模块中,药剂管理员可以查看药品的基本信息,一般药品应具有的属性,如:药品编号、药品名称、药品价格、药品作用、生产日期、生产产家等。
在药品入库管理模块中,药品入库管理一般包括药品的入库编号、入库数量、入库价格、入库时间、供应商名称、药品名称、药品编号等,入库管理的目的就是要保证药品质量完好、数量准确、减少差错。
在药品出库管理模块中,药品出库管理本质上是和药品入库管理一样的,所具备的属性大致相同,但要注意的是药品出库须遵循先产先出、近期先出、先进先出、易变先出和按批号发药的原则。
在药品库存管理模块中,药品库存管理可以说是出入库表的结果表,入库,库存增加;出库,库存减少。
在供应商管理模块中,顾名思义,供应商管理就是提供货物的一方,主要包括供应商ID、供应商电话号码、供应商名称,他主要承担着药品供应,配送,调拔等职能,为医院及药品零售企业供应病人所需的药物。
3.5系统性能分析
在本次西药房管理系统的设计与开发过程中,均操作于以下系统开发环境,具体性能配置如下表3-1所示:
表1-1 开发环境性能具体配置
设备名 | 版本型号 |
框架 | Java+MVC+MySQL+SpringBoot |
CPU | Inter(R) Core (TM) i7-9750H CPU @ 2.60GHz |
内存 | RAM axelDDR4 2667MHz |
操作系统 | Windows10 |
IDE | IntelliJ IDEA 2022.1 |
硬盘 | WDC PC SN730 SDBPNTY-1T00-1101 953GB |
如上表2-1所示的具体开发环境配置,其承载该系统的设计与开发的性能将较为良好。
3.6本章小结
本章节针对系统的实现目标进行了详细的拟实现功能以及设计原则阐述,其次针对药剂师以及管理员两种用户进行了业务流程的详细分析;再依据各个具体的功能模块进行了详细分析;最终进一步分析了系统的性能以及可行性。
4.系统总体设计
4.1用例图设计
每个系统的诞生都应该离不开用例图的设计,用例图是为软件系统建立之前设计的可视化模型。其代表着用户、需求以及系统的功能之间的相互关联关系。其具体系统用例图设计如图 41所示。
图 41系统用例图
4.2系统体系架构
本次西药房管理系统采用三层体系架构,它最大的优点就是安全,有利于后期的维护与升级。因此可以减少开发人员的工作量,使得开发者能够全神贯注于分析、设计并开发系统的中枢业务以及数据逻辑中。所谓三层体系架构则指代的是表示层(UI)、业务逻辑层(BBL)、数据访问层(DAL)。其细化的体系架构如图42所示。
图 42全局体系架构图
4.3功能结构设计
西药房管理系统的设计本着为医务人员减少大量复杂而繁琐的工作量,为了提高药房内部管理水平的原则来设计的。功能结构模块清晰明了、操作方便、简易快捷,一般人员都可以轻易上手、不用经过漫长的培训期。西药房管理系统包括:西药品的出入库、数量品类清点、数据资料信息管理及强大的报表查询与打印功能。
就一般情况而言,一个优良的层次系统由不同的功能模块所构成,而在每个功能模块中又包含相对应的各个子功能板块。在进行各个子功能板块的设计过程中,应遵循启发式规则,使得模块规模适当、中等、扇出和扇入都合适,此外需秉承着高内聚低耦合的原则最大化各个模块的相互独立性,并需关注系统信息的安全与本地化原则。
在功能结构设计的基础上,也联想到了程序自身编制的特点,实现以下几个细节性的功能:
登入功能:西药房管理系统的登入管理则是要求赋予最高权限的管理员用户以及一般管理员用户均通过账号密码的匹配后才能登录,当其账号密码匹配成功后,最高权限管理员可新增一般管理员并为其赋予权限功能。而一般管理员账号密码匹配成功后,也可像管理员一样正常操作药品的管理信息,例如:出库、入库、查询以及打印等,但是不能修改管理员的任何信息。
打印功能:在药房管理的五个功能管理模块中都包含打印功能,有打印就不需要去自制表单,明显提高了工作效率。
导出功能:导出功能和打印功能一样,都应用在药房管理的五个功能管理模块之中,本次系统包含的导出功能包括两种格式:CSV格式和EXCEL格式。两种格式文件均可使用EXCEL打开,CSV格式区别于EXCEL文件格式的地方在于CSV为纯本文文件,其内存占用率更小,使得该类文件格式的创建、收发、加载存储等操作更加便捷高效,更加适用于存储欧几里得类结构化数据信息,比如记录的导出,流量统计等,而EXCEL不是纯文本,它包含很多格式信息在里面。
筛选列功能:筛选列的功能就是为了查找信息方便,当要只查找某药品名称时,就可以隐藏其余属性,只查找需要的信息,这样一眼看上去就清晰明了,便于浏览。
其具体功能结构设计如图 43所示。
图 43功能结构设计图
4.4数据库设计
数据库设计是系统开发与设计中关乎数据信息存储及管理过程中不可或缺的关键性步骤,也是建构数据库以及其应用体系的核心技术之一。然而,由于数据库应用的复杂程度较高,所以再完美的设计也无法一步登天,只能是一个“反复摸索,逐步精简”的过程,即科学化规范与标准化数据库中数据项以及数据项之间相互关联性的过程。
就目前来看,由于数据库性能的优劣差异会对系统性能的优劣产生直接影响,因此数据库的设计对于系统开发是一个尤为重要的内容。
4.4.1 E-R图设计
E- R图即实体—联系图,它被用于展现系统开发与设计中数据项概念模型中的关联关系。也是表示概念关系模型的一种方法。其具体系统整体E-R图如图4-4所示。
图 44系统整体E-R图
4.4.2 数据表设计
本次系统的所有数据表就是在MySQL数据库中建立的,数据表是由表名、表中的字段和表的记录三个部分组成的。
1)、药品信息表
药品信息表是西药房管理系统的基础信息表,因为在日常的操作中都会调取药品的信息。其具体药品信息如错误!未找到引用源。所示。
表 41药品信息表
字段名 | 字段类型 | 长度 | 说明 | 备注 |
Ypbh | varChar | 255 | 药品编号 | 主键 |
Ypname | varChar | 255 | 药品名称 | |
Ypprice | double | 10 | 药品价格 | |
Ypzy | varChar | 255 | 药品作用 | |
Ypph | varChar | 255 | 药品批号 | |
Date | date | 生产日期 | ||
Sccj | varChar | 255 | 生产产家 | |
Gysid | varChar | 255 | 供应商ID |
2)、供应商信息表
供应商信息表旨在存储供应商的编号、名称、电话号码等备注信息。其保留供应商的基本信息是为了防止供货的药品出现了差错,还有利于财务部的结算。其具体供应商信息如表4-2所示。
表 42供应商信息表
字段名 | 字段类型 | 长度 | 说明 | 备注 |
Gysid | varChar | 255 | 供应商ID | 主键 |
Gysname | varChar | 255 | 供应商名称 | |
Number | varChar | 20 | 电话号码 | |
Bz | varChar | 255 | 备注 |
3)、库存信息表
库存信息表就是出入库一个结果表,通过它可以掌握仓库内现有商品的剩余数量。我们只需要记录好每一次的出库、入库,计算机系统会帮我们自动计算商品的实时库存。其具体库存信息如表4-3所示。
表 43库存信息表
字段名 | 字段类型 | 长度 | 说明 | 备注 |
kcbh | varChar | 255 | 库存编号 | 主键 |
ypbh | varChar | 255 | 药品编号 | |
ypname | varChar | 255 | 药品名称 | |
count | Integer | 20 | 库存数量 | |
price | double | 10 | 入库价格 | |
gg | varChar | 255 | 规格 |
4)、入库信息表
入库信息表指药品信息的录入,一方面有利于药房系统的管理,另一方面可以作为财务部登记账单的依据。其具体入库信息如表4-4所示。
表 44入库信息表
字段名 | 字段类型 | 长度 | 说明 | 备注 |
rkbh | varChar | 255 | 入库编号 | 主键 |
rkcount | Integer | 20 | 入库数量 | |
rkprice | double | 10 | 入库价格 | |
rktime | date | 入库时间 | ||
ypbh | varChar | 255 | 药品编号 | |
ypname | varChar | 255 | 药品名称 | |
gg | varChar | 255 | 规格 | |
gysname | varChar | 255 | 供应商名称 |
5)、出库信息表
出库信息表是指药品售出的情况,出库信息的显示更能反应出哪个药品的销量更高,这样药房的采购人员就可以提前做好备药准备。其具体出库信息如表4-5所示。
表 45出库信息表
字段名 | 字段类型 | 长度 | 说明 | 备注 |
ckbh | varChar | 255 | 出库编号 | 主键 |
ypbh | varChar | 255 | 药品编号 | |
ypname | varChar | 255 | 药品名称 | |
ypprice | double | 10 | 药品售价 | |
cktime | date | 出库时间 | ||
count | Integer | 20 | 出库数量 |
4.5本章小结
本章节内容主要是介绍了西药房管理系统总体设计的步骤。首行,对本系统的流程图及体系架构做了简单说明,其次,对其介绍了功能结构的设计理念以及对细节性的功能做了详细说明,最后,对整个系统中所应用到的全部数据库表一一阐述说明。
4.5.1库存信息管理的设计与实现
库存信息的显示可以清晰的看出近期药品的销量,当入库库存信息表中已有药品时,药品的数量就立即增加,当入库的药品是库存信息表中所没有的,库存信息表会将这个药品的所有信息即时输入进去;相反,出库库存信息表中已有药品时,药品的数量就立即减少,而当出库库存信息表中没有这项药物时,系统会提示“仓库无此药”,又或者库存信息表中有这项药品,但是数量比出库数量少,系统是提示“仓库库存不足”。不仅如此,药品信息的分页可以选择分页显示,有10条/页、20条/页等依次递增,如果有其它部门需要库存信息的报表,不需要重新制作,直接点击上面的打印功能即可。其中库存编号是随机数自动生成的,在系统中不会重复。其具体库存信息显示界面如图 45所示。
图 45库存信息显示界面图
库存信息功能添加核心代码如下:
public class YwKcController extends BaseController { private String prefix = “admin/ywKc”; private IYwKcService ywKcService; public String view(ModelMap model) { return prefix + “/list”; } public ResultTable list(Tablepar tablepar) { QueryWrapper<YwKc> queryWrapper = new QueryWrapper<YwKc>(); if (StrUtil.isNotEmpty(tablepar.getSearchText())) { queryWrapper.like(“自定义”, tablepar.getSearchText()); } if (StrUtil.isNotEmpty(tablepar.getOrderByColumn())) { queryWrapper.orderByAsc(tablepar.getOrderByColumn()); }} |
5.系统详细设计与实现
5.1系统的结构设计
5.1.1系统开发和运行环境
客户端操作系统:Windows10
数据库软件:MySQL数据库
中间件服务器:Tomcat服务器
开发工具:IntelliJ IDEA 2022.1
图形设计工具:Drawio
5.1.2类的结构与设计
西药房管理系统应用SpringBoot框架后,系统中的类可以为了边界类、实体类以及控制类。
边界类中的边界即指代系统与外界的交汇之处。而边界类的定义则可进一步延拓为表单及表示通信协议的类、直接与外部设备以及系统交互的类。其中,所需的边界类可通过用例图进一步确定下来。用例图中的每个参与者/用例对均至少需要一个边界类,但并非每个参与者/用例对均存在唯一的边界类。
实体类的工作职责旨在统计存储并管理系统的数据信息,需使得类的保存含有持久的信息存储性能。持久性存储是一种可以永久存储数据的介质,如数据库和文件。可以通过事件流和交互图发现类。实体类与数据库中数据项之间存在一一对应的映射关系,表中的每个实体类均对应一个信息表且实体类中的每一种属性均对应着信息表中的某个字段。
控制类的出现旨在控制其他类的工作职责。一般而言,每个用例会配备有一个控制类用以控制事件的逻辑发生顺序。此外,控制类也可共享于多个用例中。另外,其他类仅仅会向控制类发送少量数据信息,而控制类则相反会发送大规模的数据信息。
5.2系统的主要功能与实现
就目前医疗市场调查表明,绝大多数医院非常重视对药房的科学化与自动化的管理,因为通个这样一个信息化的管理,它才能提升医院的运转效率,从而为医院创造更多价值。本次系统设计的主要目的就是帮助医务人员减轻药房整理药品的工作量,使大量复杂而又繁琐的工作在计算机的帮助下变得简单快捷。西药房管理系统的主要功能包括药品所有信息的查询、药品出入库的管理、供应商药品信息的管理,也可以对药品的销售量进行查询及打印功能。
5.2.1登录功能的设计与实现
管理员和药剂管理员或其他工作员(管理员创建的用户)需要在登录界面中键入账号密码及实时刷新的验证码,随即用户点击登入按钮后,后台链接数据库中以匹配其中的账号密码,当身份验证通过之后则依据面向不同用户的权限展现出各异的功能界面。其具体登录界面如图 51所示。
图 51登录界面图
登录界面核心代码如下:
public AjaxResult login(TSysUser user, String captcha, RedirectAttributes redirectAttributes, boolean rememberMe,
HttpServletRequest request) { ModelAndView view =new ModelAndView(); Boolean yz = false; String verCode = (String) request.getSession().getAttribute(“captcha”); if(captcha!=null&&captcha.toLowerCase().equals(verCode.trim().toLowerCase()) CaptchaUtil.clear(request); yz = true; } |
5.2.2药品信息管理功能的设计与实现
为了确保整个系统的数据与完整性一致,管理员在药品信息管理功能下添加完药品的所有信息,才能够在出库、入库或其它操作中使用药品的有关信息。其具体药品信息添加界面如图 52所示。其中药品编号是随机数自动生成的,在系统中不会重复。
图 52药品信息添加界面图
药品信息添加核心代码如下:
public class YwYpController extends BaseController {
private String prefix = “admin/ywYp”; private IYwYpService ywYpService; public String view(ModelMap model) { return prefix + “/list”; } public AjaxResult remove(String ids) { return toAjax(ywYpService.deleteYwYpByIds(ids)); } } |
5.2.3供应商信息管理的设计与实现
药品入库时应提供供应商的基本信息,此功能的设计帮助系统获得了一个实时的信息库,有助于整理和保持各供应商基本情况和重要业务信息。也为后期采购部挑选一个好的供应商节约了大量时间。其中供应商ID是随机数自动生成的,在系统中不会重复。其具体供应商信息添加界面如图 53所示。
图 53供应商信息添加界面图
供应商信息添加核心代码如下:
public class YwGysController extends BaseController { private String prefix = “admin/ywGys”; private IYwGysService ywGysService; public String view(ModelMap model) { return prefix + “/list”; } public ResultTable list(Tablepar tablepar) { QueryWrapper<YwGys> queryWrapper = new QueryWrapper<YwGys>(); PageHelper.startPage(tablepar.getPage(), tablepar.getLimit()); PageInfo<YwGys>page=newPageInfo<YwGys>(ywGysService.selectYwGysList(queryWrapper)); return pageTable(page.getList(), page.getTotal()); public String add(ModelMap modelMap) { return prefix + “/add”; } |
5.2.4入库管理的设计与实现
药品入库时,应要填写入库信息,当入库的药品较多时,可以进行分页显示。如果录入药品的信息错误时,可以进行修改,也可以进行删除。又或者录入的信息出现过多错误,可以进行批量删除,随后再新增。其具体入库管理功能界面如图 54所示。
图 54入库管理功能界面图
入库管理功能添加核心代码如下:
public class YwRkController extends BaseController { private String prefix = “admin/ywRk”; private IYwRkService ywRkService; private IYwYpService ywYpService; private IYwKcService ywKcService; public String view(ModelMap model) { return prefix + “/list”; } public AjaxResult add(YwRk ywRk) { String ypbh = ywRk.getYpbh(); YwKc ywKc = new YwKc(); ywKc.setYpbh(ypbh); List<YwKc> ywKcs = ywKcService.selectYwKcList(ywKc); if(ywKcs.size()>0){ Integer count = ywKcs.get(0).getCount(); count=count+Integer.parseInt(ywRk.getRkcount()); ywKcs.get(0).setCount(count); ywKcService.updateYwKc(ywKcs.get(0)); }else { YwKc ywKc1 = new YwKc(); ywKc1.setYpbh(ywRk.getYpbh()); ywKc1.setName(ywRk.getName()); ywKc1.setCount(Integer.parseInt(ywRk.getRkcount())); ywKc1.setPrice(ywRk.getPrice()); ywKc1.setGg(ywRk.getGg()); ywKcService.insertYwKc(ywKc1); } return toAjax(ywRkService.insertYwRk(ywRk)); } } |
5.2.5出库管理的设计与实现
药品出库时,应要填写出库信息,药品的出库功能同药品的入库功能一样。药品出库的信息不仅可以分页显示、删除、修改,也可以进行打印、导出到EXCEL,还可以进行筛选列和查询以及重置功能。其具体出库管理功能界面如图 55所示。
图 55出库管理功能界面图
出库管理功能添加核心代码如下:
public class YwCkController extends BaseController {、 public AjaxResult add(YwCk ywCk) { String ypbh = ywCk.getYpbh(); YwKc ywKc = new YwKc(); ywKc.setYpbh(ypbh); List<YwKc> ywKcs = ywKcService.selectYwKcList(ywKc); if (ywKcs.size()>0){ if(ywKcs.get(0).getCount()-Integer.parseInt(ywCk.getCkcount())>0){ ywKcs.get(0).setCount(ywKcs.get(0).getCount()-Integer.parseInt(ywCk.getCkcount())); ywKcService.updateYwKc(ywKcs.get(0)); }else { return AjaxResult.error(“库存不足”); } }else { return AjaxResult.error(“仓库无此药”); } return toAjax(ywCkService.insertYwCk(ywCk)); } } |
5.3本章小结
本章节详细阐述了西药房管理系统的各功能模块细粒度的前端页面设计与后台逻辑源码实现。首先,详细阐明了系统的结构化设计方案,其中囊括其配置文件和类的结构设计;其次,给出了整个系统的所有功能界面图以及核心代码,更能让使用者清晰直观的了解每个功能整体流程。该系统界面设计友好、简易美观、色彩的舒适度也非常合适。更重要是的,统一的人机界面,它不会增加使用者的负担,使得使用者以“一条线”的思维方式实现其操作即可。
6.系统测试
6.1测试概述
软件测试的目的旨在验证系统应用软件过程中的操作准确性、操作容错率、数据信息安全及完整性等质量的过程。换言之,软件测试即依据系统的预测输出与实际输出内容之间的差异信息,而进行比较以评估系统性能的过程。在软件测试的典型解释中,专指有关程序执行过程中出现的错误,它是对软件质量的度量和对是否能满足设计要求的评估。软件测试过程的五个步骤可以分为:
单元测试:为软件设计的最基本单元——程序模块,进行正确性检验的测试工作。其目的在于发现每个程序模块内部可能存在的差错。此阶段的测试就是利用设计文档设计测试用例创建被测模块的桩模块或驱动模块来建立测试环境,进行测试。集成测试:又称为组装测试或联合测试,它是以单元测试为基础,全部模块需按概要设计说明书、详细设计说明书装配。当集成测试确定一个组合单元后,若有问题存在,则利用需要对该组合单元前面的各单元进行测试的测试计划来保证各单元生存能力,就能了解到该组合单元中所检测到的任何误差都极有可能和该单元间的接口相关。这一办法使可能出现的次数降低至较简单分析级别。确认测试:目的是验证该软件在功能,性能等方面是否满足用户需求。确认测试通常由有效性测试与软件配置复查两部分组成。系统测试:软件结合硬件、外设等等设备一起集成为一个完整的计算机系统。在实践环境中,测试计算机系统的目的旨在确保系统的需求以及功能设计是否完善,并及时挖掘出系统的问题并加以优化。验收测试:为软件部署之前的最后一关测试关卡。在系统软件完成了单元、集成、确认以及系统测试之后,软件发布之前所需完成的最后一关测试关卡,这最后一个关卡也被称为交付测试。验收测试核心面向的对象为用户,由用户选定于某特定条件下完成系统测试用例的过程,在这整个测试过程中软开工程师与质量保证人员则仅仅起到辅助的作用。其并不需要全覆盖式的功能测试,而仅仅需要对核心业务流程进行测试。表 61系统测试环境
软件环境要求 | |
测试操作系统 | Windows10 |
开发平台环境 | Windows10,IntelliJ IDEA 2022.1,MySQL5.7.26 |
辅助测试软件 | 系统自带的性能监测工具:如ping命令 |
硬件环境要求 |
续表6-1
软件环境要求 | |
服务器端 | 阿里云服务器:内存:2G,操作系统:CentOS8.5 64位,CPU:2核(vCPU)2GiB |
客户端 | 内存:RAM axelDDR4 2667MHz
硬盘:WDC PC SN730 SDBPNTY-1T00-1101 953GB CPU:Inter(R) Core (TM) i7-9750H CPU @ 2.60GHz |
网络环境要求 | |
服务器端 | 局域网10M专线 |
客户端 | 局域网10M专线 |
6.2功能测试
登录界面的功能测试
用户登录功能的测试用例及其结果如错误!未找到引用源。所示:
表 62用户登录功能的测试用例及结果
用例 | 输入/动作 | 测试方法 | 预期结果 | 测试结果 |
1 | 用户名、密码及验证码都为空,点击“登录”按钮 | 操作加观看 | 系统会提示“” | 符合预期 |
2 | 输入不正确的用户名时,点击“登录”按钮 | 操作加观看 | 系统会提示“未知账号” | 符合预期 |
3 | 输入不正确的密码时,点击“登录”按钮 | 操作加观看 | 系统会提示“用户名或密码不正确” | 符合预期 |
4 | 输入不正确的验证码时,点击“登录”按钮 | 操作加观看 | 系统会提示“验证码不正确” | 符合预期 |
5 | 输入正确的用户名,密码及验证码时,点击“登录”按钮 | 操作加观看 | 系统会验证成功,转入登录界面 | 符合预期 |
药品信息管理的功能测试
药品信息管理功能的测试用例及其结果如错误!未找到引用源。所示:
表 63药品信息管理功能的测试用例及结果
用例 | 输入/动作 | 测试方法 | 预期结果 | 测试结果 |
续表6-3
1 | 当不输入药品名称时,点击“提交”按钮 | 操作加观看 | 系统会提示“必填项不能为空” | 符合预期 |
2 | 当输入的药品价格不是数值,而是其它字符时,点击“提交”按钮 | 操作加观看 | 系统会提示“doubleforproperty‘price’” | 符合预期 |
3 | 当不输入药品作用时,点击“提交”按钮 | 操作加观看 | 系统会提示“必填项不能为空” | 符合预期 |
4 | 当不输入药品批号时,点击“提交”按钮 | 操作加观看 | 系统会提示“必填项不能为空” | 符合预期 |
5 | 当生产日期格式输入不正确时,点击“提交”按钮 | 操作加观看 | 系统会提示“incorrectdatevalue” | 符合预期 |
6 | 当不输入药品批号时,点击“提交”按钮 | 操作加观看 | 系统会提示“必填项不能为空” | 符合预期 |
(3)供应商信息管理的功能测试
供应商信息管理功能的测试用例及其结果如错误!未找到引用源。所示:
表 64供应商信息管理功能的测试用例及其结果
用例 | 输入/动作 | 测试方法 | 预期结果 | 测试结果 |
1 | 当不输入供应商名称时,点击“提交”按钮 | 操作加观看 | 系统会提示“必填项不能为空” | 符合预期 |
2 | 当输入的联系电话不是数字,而是其它字符时,点击“提交”按钮 | 操作加观看 | 系统会提示“只能填数字” | 符合预期 |
3 | 当备注中没有输入任何字符或数值,点击“提交”按钮 | 操作加观看 | 系统会提示“操作成功”,因为备注不是必填字段 | 符合预期 |
(4)库存信息管理的功能测试
库存信息管理功能的测试用例及其结果如错误!未找到引用源。所示:
表 65库存信息管理功能的测试用例及其结果
用例 | 输入/动作 | 测试方法 | 预期结果 | 测试结果 |
1 | 当不输入药品编号时,点击“提交”按钮 | 操作加观看 | 系统会提示“必填项不能为空” | 符合预期 |
2 | 当不输入药品编号时,点击“提交”按钮 | 操作加观看 | 系统会提示“必填项不能为空” | 符合预期 |
3 | 当库存数量输入的是字符而不是数字时,点击“提交”按钮 | 操作加观看 | 系统会提示“Integerforproperty‘count’” | 符合预期 |
4 | 当输入的入库价格不是数值,而是其它字符时,点击“提交”按钮 | 操作加观看 | 系统会提示“doubleforproperty‘price’” | 符合预期 |
5 | 当规格中没有输入任何字符或数值,点击“提交”按钮 | 操作加观看 | 系统会提示“操作成功”,因为备注不是必填字段 | 符合预期 |
(6)入库信息管理的功能测试
入库信息管理功能的测试用例及其结果如错误!未找到引用源。所示:
表 66入库信息管理功能的测试用例及其结果
用例 | 输入/动作 | 测试方法 | 预期结果 | 测试结果 |
1 | 当输入入库数量不是数值,而是其它字符时,点击“提交”按钮 | 操作加观看 | 系统会提示“运行时异常:for input string” | 符合预期 |
2 | 当输入入库价格不是数值,而是其它字符时,点击“提交”按钮 | 操作加观看 | 系统会提示“doubleforproperty‘price’” | 符合预期 |
3 | 当未输入供应商名称时,点击“提交”按钮 | 操作加观看 | 系统会提示“必填项不能为空” | 符合预期 |
4 | 当输入的入库价格不是数值,而是其它字符时,点击“提交”按钮 | 操作加观看 | 系统会提示“doubleforproperty‘price’” | 符合预期 |
5 | 当入库日期格式输入不正确时,点击“提交”按钮 | 操作加观看 | 系统会提示“incorrectdatevalue” | 符合预期 |
(7)出库信息管理的功能测试
出库信息管理功能的测试用例及其结果如错误!未找到引用源。所示:
表 67出库信息管理功能的测试用例及其结果
用例 | 输入/动作 | 测试方法 | 预期结果 | 测试结果 |
1 | 当输入的药品售价不是数值,而是其它字符时,点击“提交”按钮 | 操作加观看 | 系统会提示“doubleforproperty‘ypsj’” | 符合预期 |
2 | 当出库时间格式输入不正确时,点击“提交”按钮 | 操作加观看 | 系统会提示“incorrectdatevalue” | 符合预期 |
3 | 当出库数量输入的是字符而不是数字时,点击“提交”按钮 | 操作加观看 | 系统会提示“Integerforproperty‘count’” | 符合预期 |
4 | 当药品名称或药品编号任何一个没有输入时,点击“提交”按钮 | 操作加观看 | 系统会提示“必填项不能为空” | 符合预期 |
6.3本章小结
本章节主要介绍了西药房管理系统的环境测试以及功能测试,通过详细的系统测试验证,我们才能发现本系统是否满足用户的需求,进一步确保本系统在未来投入使用时的可靠性及稳定性。
7总结与展望
经过前期西药房管理系统开发的背景与意义、各项需求的分析、关键技术的简介、概要以及详细的系统设计与具体开发实现等各个环节的学习与研究工作,最终完成了西药房管理系统的设计与实现。本文在需求分析中详细阐述了系统的实现目标、业务流程分析、功能性需求分析、性能需求分析以及可行性需求分析。依据需求分析从而确定了系统的整体体系结构以及所采用的框架语言以及数据库存储等关键技术,最终决定采用B/S体系结构结合MVC设计模式的基础之上,利用Java编程语言链接数据库存储技术进行设计与开发,从而构建西药房管理系统。该系统实现了药品出入库以及药品资料信息的管理以及系统维护等管理工作。系统的主要功能包括:药品分发管理、药品库存管理、统计查询管理、系统维护管理以及系统管理五大管理模块。
由于现实生活中的问题层出不穷,结合实际情况以及具体的业务需求,其系统需要不断地更新迭代。由于考虑到此次设计中药房管理系统所涉及的本地数据库与应用程序在同一个系统中,当药品的数据信息量规模达到一定的数量时,其系统可能无法处理如此规模的大批量数据。因此可考虑更换如Oracle类的可处理大型数据的数据库进行数据存储;即使本系统采用较为成熟的B/S体系结构进行设计,其灵活性以及空间性不够限制且安全性高,也可考虑在未来工作中将C/S体系与B/S体系各取其精华进行融合,使得其能够适应大医院中规模庞大的数据量处理工作。
参考文献
[1]王子琳. 基于JSP的药房管理系统的设计与实现[D].中国海洋大学,2013.
[2]王子懿. 医院药房管理系统的设计与实现[D].东北大学,2016.
[3]苏茂泉,李志贤.智慧云药房管理系统的设计与实现[J].电子技术与软件工程,2019(17):1-2.
[4]刘素勤.计算机信息系统在医院药房管理中的应用[J].计算机产品与流通,2020(04):149.
[5]徐梦婕.药房管理中医院信息系统的应用研究[J].计算机产品与流通,2019(03):78.
致 谢
是结束,也是开始。大学的生活随着这篇论文止步于此,而我们的人生才刚刚开始。
回首匆匆两年,一切仿佛都是在昨天。感谢母校徐医,是你让我度过了这两年精彩的生活。我在“以德载医,博学创新”的校训下,一室生春的氛围中汲取知识,不断成长。未来,“以德载医,博学创新”的校训也会伴我终身,激励我秣兵历马,砥砺前行。
感谢我的指导老师,谢谢您的悉心教导和耐心教诲,才使我本次毕业设计能顺利完成。从完成选题至论文定稿,在这漫长的写作过程中,是老师一直给予我帮助和指导。小到论文里的错别字、标点符号,大到系统功能代码编写的完善程度。虽然有时候一个问题我要改三次才能符合要求,但您从未觉得我“孺子不可教也”,反而一遍遍的帮我检查,指出我问题的出处。我想用《春恨》里改编的一句诗赠予您:“天涯海角有尽处,只有恩师无穷期”。
感谢我的父母,我还清晰的记得,在我高考的时候,我父亲对我说:“你随便考,无论考多少分,都有学上”那是我第一次觉得我的父母和别的家长不一样,他们在教育我的方面从不会给我施加压力,也不会对我过多干涉。直到今年我快要毕业了,我父亲经常给我打电话,虽然聊天的时长不是很多,却很频繁。鲁迅先生曾经说过:“父母存在的意义不是给予孩子舒适和富裕的生活,而是当你想到父母的时候,你的内心就会充满力量,会感受到温暖,从而拥有克服困难的勇气和能力” 。
感谢我可爱的舍友们,是缘分让我们聚在一起,成为彼此生活中最难忘的回忆。希望在奔赴未来的路上,我们有着生生不息的热爱,如星璀璨,如风自由。即使后来的我们都在各自奔赴着不同的人生,我也希望能在我们都在各自奔赴不同人生的某一程中,再次,不期而遇。
最后感谢自己,谢谢你的努力,成就了现在的自己。我从来不后悔自己做的每个决定,在这风华正茂的年纪,我们一定要成为玫瑰吗?不,我们也可以是岁岁枯荣生生不息的野草。要知道生活是一场未知的旅途,不要因为眼前的困境,就丧失对未来的期盼。
六月滚烫的风,像一个亲呢的拥抱。雨水,或是飘渺的云,卷走了谁仓促的转身。那些一起走过的地方、看过的风景,都是一趟旅程中难忘的路标。亲爱的朋友们,愿我们在各自的征途上畅行无阻,此去乘风,一切顺利。
感谢所有相遇,愿山河无恙,愿亲友安康,愿青春不散,愿初心不改。
1、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“文章版权申述”(推荐),也可以打举报电话:18735597641(电话支持时间:9:00-18:30)。
2、网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
3、本站所有内容均由合作方或网友投稿,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务。
原创文章,作者:1158,如若转载,请注明出处:https://www.447766.cn/chachong/161557.html,